Що таке блокчейн?

Блокчейн – це перелік записів даних, які працюють як децентралізований цифровий реєстр. Дані зберігаються в блоках у хронологічному порядку та захищені за допомогою криптографії.

Перша модель блокчейна була створена на початку 1990-х років, коли фахівець з інформатики Стюарт Хабер та фізик У. Скотт Сторнетта вирішили використати криптографію у ланцюжку блоків для захисту цифрових документів від фальсифікації.

Їхня робота надихнула багатьох програмістів і любителів криптографії, що зрештою призвело до створення Біткоіна як першої децентралізованої електронної грошової системи (або просто першої криптовалюти).

Хоча технологія блокчейну набагато старша за криптовалют, її потенціал почали усвідомлювати тільки після появи Біткоіна в 2008 році. З того часу інтерес до неї продовжує зростати з кожним днем, а криптовалюти набувають все більш широкого визнання.

Технологія блокчейна використовується в основному для запису криптовалютних транзакцій, але також підходить для різних видів цифрових даних і може виконувати безліч завдань. Найстаріша, безпечна та популярна блокчейн-мережа – це Біткоїн, що поєднує криптографію та теорію ігор.


Як працює блокчейн?

У контексті криптовалют блокчейн складається із стабільного ланцюжка блоків, кожен із яких містить перелік раніше підтверджених транзакцій. Оскільки мережа блокчейна підтримується безліччю комп'ютерів у світі, вона функціонує як децентралізована база даних, чи реєстр. Це означає, що кожен учасник (нода) зберігає копію даних блокчейна і взаємодіє з іншими нодами, щоб підтвердити збіг інформації в блоках.

Таким чином, транзакції блокчейна відбуваються в глобальній одноранговій мережі, і саме це робить Біткоїн децентралізованою цифровою валютою, яка не має обмежень і стійка до цензури. Крім того, більшість систем блокчейну не вимагають довіри та не контролюються єдиним органом управління.

В основі майже кожного блокчейна лежить процес майнінгу, що ґрунтується на алгоритмах хешування. Біткоїн використовує алгоритм SHA-256 (алгоритм безпечного хешування 256 біт). Він приймає вхід довільної довжини та генерує вихід з фіксованою довжиною. Вихідні дані називаються хешем і, у разі, завжди складаються з 64 символів (256 біт).

Однакові вхідні дані призведуть до того самого виходу незалежно від того, скільки разів повторюється процес. Однак, якщо трохи змінити вхідні дані, на виході вийде абсолютно інший результат. За рахунок цього у світі криптовалют більшість хеш-функцій мають детермінований та односпрямований характер.

Односпрямованість означає, що у вихідних даних майже неможливо обчислити вхідні. Можна лише здогадуватись, що було на вході, але шанси вгадати цю інформацію вкрай малі. За рахунок цього і забезпечується безпека блокчейна Біткоіна.

Давайте розглянемо роботу блокчейна з прикладу простої транзакції.

Уявимо, що на балансі Аліси та Боба є кілька біткоїнів. Аліса винна Бобу 2 біткоїна.

Для їхнього відправлення Аліса передає всім майнерам у мережі повідомлення з транзакцією.

У цій транзакції Аліса повідомляє майнерам адресу Боба та суму біткоїнів, яку вона хотіла б відправити, а також передає цифровий підпис та свій публічний ключ. Підпис зроблений за допомогою приватного ключа Аліси та підтверджує, що він є власником цих монет.

Майнери повинні переконатися насправді транзакції, після чого вони поєднують її з іншими транзакціями і намагаються створити блок за допомогою алгоритму SHA-256. Вихід повинен починатися з певної кількості 0, яка залежить від так званої складності та обчислювальної потужності мережі.

Щоб отримати вихідний хеш з правильною кількістю 0 на початку, перед запуском алгоритму майнери додають блок так зване число nonce. Оскільки невелика зміна на вході повністю змінює вихід, майнери пробують різні комбінації, доки знайдуть необхідний хеш.

Після створення блоку майнер транслює його іншим майнерам. Потім вони перевіряють дійсність блоку, щоб додати його до своєї копії блокчейна і завершити транзакцію. Також майнери включають блок вихідний хеш попереднього блоку, щоб зв'язати всі блоки разом у своєрідну ланцюг, тобто блокчейн. На цьому механізмі будується система довіри блокчейну.

Кожен майнер зберігає копію блокчейна на своєму комп'ютері, при цьому ступінь довіри до блокчейну залежить від вкладеної обчислювальної потужності та її довжини. Якщо майнер змінить транзакцію в попередньому блоці, вихідний хеш цього блоку також зміниться, що призведе до зміни всіх хеш після нього. Тоді майнер доведеться переробити всю роботу, щоб його блокчейн був прийнятий як дійсний. Щоб обдурити систему, зловмиснику потрібно було б заволодіти понад 50% обчислювальної потужності мережі, що майже неможливо. Подібні мережеві атаки називаються атаками 51%.

Модель, у якій виробництво блоків здійснюється з допомогою роботи комп'ютера, називається Proof-of-Work (PoW). Існують і інші моделі, наприклад Proof-of-Stake (PoS), які не вимагають великої обчислювальної потужності та споживають менше електроенергії, пропонуючи можливості масштабування для багатьох користувачів.