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

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

Основа кожного блокчейну – це алгоритм Майнінг, в якості прикладу розглянемо алгоритм біткоін. Він називається SHA-256, скорочено від «Secure hash algorithm 256 bits» (Безпечний хеш алгоритм 256 біт). Він приймає вхідні дані, які можуть бути чим завгодно: текстом, числами або навіть комп’ютерним файлом будь-якого розміру. Отриманий результат називається «хеш» і кожен раз він буде мати однакову довжину – 256 біт в машинному коді.

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

1 шанс на 2 ^ 256, що практично неможливо, і отже, безпечно.

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

У нас є Аліса і Боб разом з їх балансом біткоін. Припустимо, Аліса повинна перерахувати Бобу 2 біткоіни.

Щоб Аліса відправила Бобу ці 2 біткоіни, вона передає повідомлення з транзакцією, яку вона хоче зробити, всім Майнерам в мережі.

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

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

Для того, щоб на початку створити вихідний хеш з бажаною кількістю 0, Майнери додають в блок те, що називається «nonce number» (є двійковий код, який шукається Майнерами в процесі PoW-Майнінгу.), Перед тим, як запустити його через алгоритм. Оскільки невелика зміна вхідних даних повністю змінює вихідні дані, Майнери пробують випадкові “nonce” числа, поки не знайдуть потрібний вихідний хеш.

Як тільки блок видобутий, майнер передає цей новий блок всім іншим Майнерам. Потім вони перевіряють, чи є блок дійсним, щоб додати його в свою копію ланцюжка блоків, і транзакція завершена. Але в блоці Майнер також повинні включити вихідний хеш з попереднього блоку, щоб всі блоки були пов’язані один з одним, звідси і назва: block-CHAIN. Це важлива частина, тому що cистема працює на доказі виконаної роботи.

У кожного Майнера є своя копія блокчейна на комп’ютері, і кожен довіряє блокчейну з найбільшою обчислювальною роботою, який є найдовшим (має найдовший ланцюжок блоків). Якщо майнер змінює транзакцію в попередньому блоці, вихідний хеш для цього блоку буде змінюватися, що призводить до того, що всі хеші після нього також змінюються через блоки, пов’язані з хешами. Майнеру довелося б переробляти всю роботу, щоб змусити кого-небудь визнати, що його блокчейн правильний. Тому, якщо майнер захоче схитрувати, йому буде потрібно більше 50% обчислювальної потужності мережі, що малоймовірно. Таким чином, мережеві атаки називаються 51% атаками.

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

Це основи того, як працює блокчейн!