Що таке блокчейн?
Коротше кажучи, блокчейн — це список записів даних, який працює як децентралізована цифрова книга. Дані організовані в блоки, які розташовані в хронологічному порядку та захищені криптографією.
Найперша модель блокчейну була створена на початку 1990-х років, коли вчений Стюарт Хабер і фізик В. Скотт Сторнетта застосували криптографічні методи в ланцюжку блоків як спосіб захисту цифрових документів від підробки даних.
Робота Хабера і Сторнетти, безсумнівно, надихнула на роботу багатьох інших комп’ютерників і ентузіастів криптографії, що зрештою призвело до створення біткойна як першої децентралізованої електронної грошової системи (або просто першої криптовалюти).
Хоча технологія блокчейн старша за криптовалюти, її потенціал почали визнавати лише після створення біткойна в 2008 році. З тих пір інтерес до технології блокчейн поступово зростає, і криптовалюти зараз визнаються в більших масштабах.
Технологія блокчейн здебільшого використовується для запису криптовалютних транзакцій, але вона підходить для багатьох інших видів цифрових даних і може бути застосована в широкому діапазоні випадків використання. Найстарішою, найбезпечнішою та найбільшою мережею блокчейнів є біткойн, яка була розроблена з ретельною та збалансованою комбінацією криптографії та теорії ігор.
Як працює блокчейн?
У контексті криптовалют блокчейн складається зі стабільного ланцюжка блоків, кожен з яких зберігає список раніше підтверджених транзакцій. Оскільки блокчейн-мережа підтримується безліччю комп’ютерів по всьому світу, вона функціонує як децентралізована база даних (або книга). Це означає, що кожен учасник (вузол) зберігає копію даних блокчейну, і вони спілкуються один з одним, щоб переконатися, що всі вони знаходяться на одній сторінці (або блоці).
Таким чином, блокчейн-транзакції відбуваються в одноранговій глобальній мережі, і саме це робить біткойн децентралізованою цифровою валютою, яка не має кордонів і стійка до цензури. Крім того, більшість блокчейн-систем вважаються ненадійними, оскільки вони не вимагають жодного виду довіри. Немає єдиної влади, яка контролює біткойн.
Центральною частиною майже кожного блокчейну є процес майнінгу, який базується на алгоритмах хешування. Bitcoin використовує алгоритм SHA-256 (Secure hash algorithm 256 bits). Він приймає вхід будь-якої довжини та генерує вихід, який завжди матиме однакову довжину. Отриманий результат називається «хеш» і в цьому випадку завжди складається з 64 символів (256 біт).
Тож той самий вхід призведе до того самого виходу, незалежно від того, скільки разів процес повторюється. Але якщо зробити невелику зміну вхідних даних, вихідні дані повністю зміниться. Таким чином, хеш-функції є детермінованими, і в світі криптовалют більшість із них розроблені як односторонні хеш-функції.
Будучи односторонньою функцією, це означає, що майже неможливо обчислити, що було вхідними даними на виході. Можна лише здогадуватися, що було введено, але ймовірність вгадати все правильно надзвичайно низька. Це одна з причин, чому блокчейн біткойна безпечний.
Тепер, коли ми знаємо, що робить алгоритм, давайте продемонструємо, як працює блокчейн, на простому прикладі транзакції.
Уявіть, що у нас є Аліса та Боб разом із їхнім балансом у біткойнах. Припустімо, Аліса винна Бобу 2 біткойни.
Щоб Аліса надіслала Бобу ці 2 біткойни, Аліса транслює повідомлення з трансакцією, яку вона хоче здійснити, усім майнерам у мережі.
У цій транзакції Аліса дає майнерам адресу Боба та суму біткойнів, яку вона хотіла б надіслати, а також цифровий підпис і свій відкритий ключ. Підпис зроблено за допомогою закритого ключа Аліси, і майнери можуть підтвердити, що Аліса насправді є власником цих монет.
Коли майнери переконаються, що транзакція дійсна, вони можуть помістити її в блок разом із багатьма іншими транзакціями та спробувати видобути блок. Це робиться шляхом проходження блоку через алгоритм SHA-256. Вихідні дані повинні починатися з певної кількості нулів, щоб вважатися дійсними. Необхідна кількість нулів залежить від того, що називається «складністю», яка змінюється залежно від обсягу обчислювальної потужності в мережі.
Щоб створити вихідний хеш із бажаною кількістю нулів на початку, майнери додають до блоку те, що називається «nonce», перед тим, як запускати його через алгоритм. Оскільки невелика зміна вхідних даних повністю змінює вихідні дані, майнери пробують випадкові нонси, доки не знайдуть дійсний вихідний хеш.
Після того, як блок видобуто, майнер транслює цей нещодавно видобутий блок усім іншим майнерам. Потім вони перевіряють, чи блок дійсний, щоб вони могли додати його до своєї копії блокчейну та транзакцію завершити. Але в блок майнери також повинні включити вихідний хеш із попереднього блоку, щоб усі блоки були пов’язані разом, звідси й назва blockchain. Це важлива частина через те, як працює довіра в системі.
Кожен майнер має власну копію блокчейну на своєму комп’ютері, і кожен довіряє тому блокчейну, який потребує найбільшої обчислювальної роботи, найдовшому блокчейну. Якщо майнер змінює транзакцію в попередньому блоці, вихідний хеш для цього блоку зміниться, що призводить до зміни всіх хешів після нього також через те, що блоки лайкаються хешами. Майнеру доведеться повторити всю роботу, щоб змусити будь-кого прийняти його блокчейн як правильний. Отже, якби майнер хотів шахраювати, йому знадобилося б більше 50% обчислювальної потужності мережі, що дуже малоймовірно. Подібні мережеві атаки називаються атаками 51%.
Модель, за допомогою якої комп’ютери працюють для створення блоків, називається Proof-of-Work (PoW). Існують також інші моделі, такі як Proof-of-Stake (PoS), які не вимагають стільки обчислювальної потужності та мають менше електроенергії. маючи можливість масштабувати для більшої кількості користувачів.