Як працює блокчейн, найпростіше зрозуміти, якщо простежити один переказ від натискання «Надіслати» до запису, який уже не виправиш. У цьому уроці поговоримо про блоки, хеші, підписи й консенсус. Після нього стане зрозуміло, чому переказам потрібні підтвердження і звідки в мережі беруться комісії.
- Блокчейн — це спільний журнал записів, поділений на блоки, де кожен блок посилається на хеш попереднього.
- Переказ підписується приватним ключем, а мережа перевіряє підпис і баланс, перш ніж включити його в блок.
- Порядок блоків учасники узгоджують через консенсус: доказ роботи (PoW) або доказ частки (PoS).
- Що більше блоків побудовано поверх вашого, то надійніший переказ, тому біржі чекають підтверджень.
Спільний журнал, який ніхто не може переписати
По суті блокчейн — це база даних, але не у звичному розумінні. Звичайну базу веде один власник, чи то банк, чи магазин, чи державний реєстр, і він має право виправити запис, видалити його або закрити доступ. Блокчейн же зберігається на тисячах незалежних комп’ютерів — нод, і кожна повна нода має копію всіх записів із першого дня.
Записи додаються порціями — блоками. Блок нагадує сторінку бухгалтерської книги: на ній зібрано перекази за певний період. Заповнену сторінку підшивають до попередніх, і виходить ланцюжок — звідси й назва.
Головне: у цю книгу можна лише дописувати. Старі сторінки не виривають і не виправляють. Помилилися адресою? Виправленням стане новий запис зі зворотним переказом, а не правка старого, і зробити його може лише одержувач.
Комп’ютер із програмою мережі, який зберігає копію блокчейну й перевіряє нові блоки за правилами. Запустити таку ноду може будь-хто, дозволу ні в кого питати не потрібно.
З чого складається блок і навіщо потрібен хеш
Блок складається з двох частин. У заголовку — службова інформація: час створення, хеш попереднього блоку й короткий відбиток усіх транзакцій, що в ньому містяться. У тілі — самі транзакції: хто, кому і скільки переказав.
Хеш — результат роботи хеш-функції, своєрідний цифровий відбиток даних. Подайте їй на вхід хоч одну літеру, хоч цілу книгу — на виході завжди вийде рядок фіксованої довжини. Змініть у вихідних даних одну кому, і відбиток стане зовсім іншим. При цьому відновити дані за ним неможливо.
Саме тому історію не переписати непомітно. Припустімо, зловмисник вирішив змінити суму в 100-му блоці. Хеш цього блоку зміниться, а 101-й і далі зберігатиме старий, тож зв’язок порушиться. Щоб підробка виглядала правдоподібно, зловмисникові доведеться перерахувати всі наступні блоки, причому швидше, ніж решта мережі будує нові.
Корінь Меркла має інше завдання: він дає змогу гаманцю переконатися, що ваша транзакція справді потрапила в блок, не завантажуючи весь блок. Для цього досить короткого ланцюжка проміжних хешів. На цьому й побудовані так звані легкі гаманці: їм не потрібно зберігати весь блокчейн.
| Частина блоку | Що містить | Навіщо |
|---|---|---|
| Хеш попереднього блоку | Відбиток блоку, що стоїть перед цим | Пов’язує блоки в ланцюжок |
| Корінь Меркла | Один спільний хеш від усіх транзакцій блоку | Дає змогу швидко перевірити, що транзакція входить у блок |
| Мітка часу | Коли блок було створено | Упорядковує події |
| Список транзакцій | Перекази з підписами відправників | Основний вміст блоку |
Знайдіть в інтернеті будь-який онлайн-калькулятор SHA-256 і введіть слово «блокчейн», а потім «Блокчейн». Однієї великої літери досить, щоб результат став зовсім іншим, і жодного зв’язку між двома хешами ви не побачите.
Шлях одного переказу: від кнопки до блоку
Подивімося, що відбувається, коли ви надсилаєте монети. До першого підтвердження зазвичай минає від кількох секунд до десятків хвилин — залежно від мережі, її завантаження та комісії.
Підпис гарантує, що переказ не підроблять: підписати його може лише власник приватного ключа, а перевірити підпис — будь-хто за публічною адресою. Нодам не потрібно довіряти відправникові, їм досить математики. Як із ключів, адрес і балансів складаються монети, розповідаємо в уроці про те, як працюють криптовалюти.
- Гаманець формує транзакцію: адресу одержувача, суму й комісію мережі.
- Транзакція підписується вашим приватним ключем просто на пристрої, сам ключ нікуди не надсилається.
- Підписану транзакцію розсилають нодам, вони перевіряють підпис і наявність коштів.
- Перевірена транзакція потрапляє в чергу очікування — мемпул — і чекає, поки її включать у блок.
- Майнер або валідатор збирає блок, зазвичай віддаючи пріоритет транзакціям з вищою комісією.
- Блок приймають інші ноди, і ваш переказ отримує перше підтвердження.
Консенсус: як тисячі комп’ютерів домовляються
Оскільки центрального власника немає, потрібне правило: хто додасть наступний блок і яку версію ланцюжка вважати правильною. Таке правило називають механізмом консенсусу. Найпоширеніші — доказ роботи (Proof of Work) і доказ частки (Proof of Stake).
У доказі роботи майнери перебирають числа, доки не знайдуть таке, за якого хеш блоку відповідає заданій умові. На це йдуть електроенергія і спеціальне обладнання. Хто першим знайшов розв’язок, той додає блок і отримує винагороду. Так працює біткоїн: новий блок з’являється в середньому раз на 10 хвилин.
Доказ частки обходиться без перегонів обчислень: учасники блокують власні монети в заставу й стають валідаторами. Мережа обирає, хто запропонує наступний блок, а за обман можна втратити частину застави. Ethereum перейшов на цю схему 2022 року, і енергії вона потребує незрівнянно менше.
В обох випадках нечесному учасникові потрібно взяти під контроль більшість ресурсів мережі — обчислювальної потужності або монет у заставі. У великих мережах це дуже дорого, а в дрібних такі атаки — їх називають атаками 51% — уже траплялися.
| Proof of Work | Proof of Stake | |
|---|---|---|
| Хто створює блоки | Майнери | Валідатори |
| Чим ризикує учасник | Витратами на обладнання й електроенергію | Своїми монетами в заставі |
| Енергоспоживання | Високе | Низьке |
| Приклади | Bitcoin, Litecoin | Ethereum, Solana, Cardano |
Якими бувають блокчейни
Блокчейни відкриті різною мірою. У публічних мережах, як-от Bitcoin та Ethereum, читати дані, надсилати транзакції й запускати ноду може будь-хто. У приватних і консорціумних мережах учасників заздалегідь відбирає компанія або група компаній. Такі рішення застосовують для розрахунків між банками чи обліку постачань, але до криптовалют для приватних осіб вони зазвичай не мають стосунку.
Ще блокчейни поділяють за рівнями. Основну мережу називають першим рівнем, L1. Коли вона перевантажена й комісії зростають, частину операцій виносять у мережі другого рівня, L2: там транзакції обробляються швидше й дешевше, а підсумки періодично записуються в основну мережу. В Ethereum це, наприклад, Arbitrum, Optimism і Base, у біткоїна — Lightning Network.
Для вас із цього випливає одне: перед переказом потрібно знати, в якій саме мережі лежать монети. Той самий токен може існувати і в основній мережі, і на кількох L2, а швидкість і комісія в них будуть різними.
- Публічні мережі: брати участь може будь-хто, усі дані відкриті.
- Приватні й консорціумні: учасників обирає власник мережі.
- Мережі другого рівня: пришвидшують і здешевлюють перекази поверх основної мережі.
Підтвердження, комісії і що з цього випливає для вас
Щойно переказ потрапив у блок, він має одне підтвердження. Кожен новий блок зверху додає ще одне, і скасувати операцію стає дедалі дорожче й малоймовірніше. Тому біржа й не поспішає зараховувати депозит: вона чекає потрібної для цієї мережі кількості підтверджень.
Комісія мережі йде не біржі й не гаманцю: її отримують ті, хто включає транзакції в блоки (в Ethereum базова частина комісії ще й спалюється). Місце в блоці обмежене, і за великого попиту комісії зростають. Якщо поставити надто низьку комісію, переказ може надовго застрягнути в мемпулі.
Практичних висновків кілька. Надісланий переказ не відкличеш, тож перевіряйте адресу й мережу до надсилання. Публічний блокчейн нічого не приховує: в оглядачі блоків за будь-якою адресою видно всю історію операцій. І хоча сам блокчейн надійний, від фішингу, зламів бірж і ваших власних помилок він не врятує.
USDT, наприклад, існує в кількох блокчейнах, і адреси в них мають різний вигляд. Якщо надіслати монети в мережі, якої одержувач не підтримує, кошти можна втратити. Під час виведення завжди звіряйте мережу.
Відкрийте оглядач блоків Ethereum etherscan.io, перейдіть до розділу останніх блоків і відкрийте найсвіжіший. Подивіться його номер, час і кількість транзакцій, потім натисніть «More Details» і скопіюйте хеш попереднього блоку (Parent Hash). Відкрийте блок із номером на одиницю меншим і переконайтеся, що його власний хеш збігається з тим, що ви скопіювали: це і є той самий ланцюжок, про який ішлося в уроці.
Вхід безкоштовний, торгівля на демо-рахунку — власні гроші не потрібні. У безкоштовних турнірах виграють Tour Pass, а з ними заходять у турніри з призами в USDT. Найкращі йдуть далі — до funded-рахунку на $5 000.
Часті запитання
Чи можна зламати блокчейн?
Сам журнал великої мережі зламати практично неможливо: для цього потрібно взяти під контроль більшість її ресурсів. Тому атакують усе, що навколо: біржі, гаманці, смартконтракти й самих користувачів — через фішинг.
Чому переказ іде так довго?
Переказ чекає, доки його включать у блок, а потім — доки він набере потрібну кількість підтверджень. Якщо мережа завантажена або комісія низька, очікування розтягується, та й швидкість у різних блокчейнах дуже різниться.
Блокчейн і біткоїн — це одне й те саме?
Не варто їх плутати. Блокчейн — технологія ведення спільного журналу, а біткоїн — перша криптовалюта, побудована на ній. Сьогодні існують сотні блокчейнів із власними правилами.
Хто зберігає блокчейн і скільки він важить?
Його зберігають ноди по всьому світу, і повна копія є в кожної з них. Розмір залежить від мережі й постійно зростає, тож звичайному користувачеві вистачає гаманця, який звертається до чужих нод.
Обговорення
Обговорення цієї статті — у BuyCrypt Live у застосунку. Увійдіть через Google або Apple, і акаунт BuyCrypt створиться автоматично.