Proof-of-work (PoW)
Останні оновлення сторінки: 26 лютого 2026 р.
Мережа Ethereum почала з використання механізму консенсусу, який передбачав підтвердження роботи (PoW). Це дозволяло вузлам мережі Ethereum узгоджувати стан усієї інформації, записаної в блокчейні Ethereum, і запобігало певним видам економічних атак. Однак у 2022 році Ethereum відмовився від підтвердження роботи й натомість почав використовувати доказ частки.
Передумови
Щоб краще зрозуміти цю сторінку, рекомендуємо спочатку ознайомитися з транзакціями, блоками та механізмами консенсусу.
Що таке Proof-of-work (PoW)?
Консенсус Накамото, який використовує підтвердження роботи, — це механізм, який колись дозволяв децентралізованій мережі Ethereum досягати консенсусу (тобто всі вузли погоджуються) щодо таких речей, як баланси рахунків і порядок транзакцій. Це не дозволяло користувачам здійснювати "подвійні витрати" своїх монет і гарантувало, що ланцюжок Ethereum було надзвичайно важко атакувати чи маніпулювати ним. Тепер ці властивості безпеки натомість забезпечуються доказом частки з використанням механізму консенсусу, відомого як Gasper.
Підтвердження роботи та майнінг
Підтвердження роботи — це базовий алгоритм, який встановлює складність і правила для роботи, яку виконують майнери в блокчейнах на основі підтвердження роботи. Майнінг - це сама «робота». Це акт додавання дійсних блоків до ланцюжка. Це важливо, оскільки довжина ланцюжка допомагає мережі слідувати правильному форку блокчейну. Чим більше "роботи" зроблено, чим довший ланцюжок, і чим вище номер блоку, тим більш певною може бути мережа щодо поточного стану речей.
Як працював механізм підтвердження роботи Ethereum?
Транзакції Ethereum обробляються в блоки. У застарілому механізмі підтвердження роботи Ethereum кожен блок містив:
- складність блоку – наприклад: 3,324,092,183,262,715
- mixHash — наприклад:
0x44bca881b07a6a09f83b130798072441705d9a665c5ac8bdf2f39a3cdf3bee29 - nonce — наприклад:
0xd3ee432b4fb3d26b
Ці дані блоку були безпосередньо пов’язані з підтвердженням роботи.
Робота в механізмі підтвердження роботи
Протокол підтвердження роботи Ethash вимагав від майнерів брати участь в інтенсивній гонці спроб і помилок, щоб знайти nonce для блоку. Лише блоки з дійсним nonce могли бути додані до ланцюжка.
У гонці за створення блоку майнер неодноразово пропускав набір даних, який можна було отримати, лише завантаживши та запустивши повний ланцюжок (як це робить майнер), через математичну функцію. Набір даних використовувався для генерації mixHash нижче цільового значення, яке визначалося складністю блоку. Набір даних використовується для генерування mixHash нижче цільового одноразового номера, що диктується складністю блоку.
Складність визначала цільове значення для хешу. Чим нижча ціль, тим менший набір дійсних хешів. Після створення це було неймовірно легко перевірити іншим майнерам і клієнтам. Навіть якби одна транзакція змінилася, хеш був би зовсім іншим, сигналізуючи про шахрайство.
Хешування дозволяє легко виявити шахрайство. Але підтвердження роботи як процес також було значним стримувальним фактором для атаки на ланцюжок.
Підтвердження роботи та безпека
Майнери були зацікавлені виконувати цю роботу в основному ланцюжку Ethereum. У підгрупи майнерів було мало стимулів створювати власний ланцюжок — це підриває систему. Блокчейни покладаються на наявність єдиної держави як джерела істини.
Метою підтвердження роботи було розширення ланцюжка. Найдовший ланцюжок вважався найбільш достовірним як дійсний, оскільки для його створення було виконано найбільше обчислювальної роботи. У системі PoW мережі Ethereum було майже неможливо створювати нові блоки, які стирають транзакції, створюють підроблені або підтримують другий ланцюжок. Це тому, що зловмисному майнеру потрібно було б завжди знаходити nonce блоку швидше, ніж усі інші.
Щоб постійно створювати зловмисні, але дійсні блоки, зловмисному майнеру знадобилося б понад 51% майнінгової потужності мережі, щоб випередити всіх інших. Такий обсяг "роботи" вимагав великої кількості дорогої обчислювальної потужності, і витрачена енергія могла б навіть перевищити вигоду, отриману від атаки.
Економіка підтвердження роботи
Підтвердження роботи також відповідало за введення нової валюти в систему та стимулювання майнерів до виконання роботи.
Після оновлення Constantinople майнери, які успішно створювали блок, отримували винагороду у вигляді двох щойно викарбуваних ETH і частини комісій за транзакції. Блоки Ommer також компенсували 1,75 ETH. Блоки Ommer були дійсними блоками, створеними одним майнером практично одночасно з тим, як інший майнер створив канонічний блок, що в кінцевому підсумку визначалося тим, на якому ланцюжку було побудовано перший наступний блок. Блоки Ommer зазвичай з’являлися через затримку в мережі.
Завершеність
Транзакція має "кінцевість" в Ethereum, коли вона є частиною блоку, який не може змінитися.
Оскільки майнери працювали децентралізовано, два дійсні блоки могли бути видобуті одночасно. Це створює тимчасову розгалуження. Зрештою, один із цих ланцюжків ставав прийнятим після того, як наступні блоки були видобуті та додані до нього, що робило його довшим.
Щоб ще більше ускладнити ситуацію, транзакції, відхилені в тимчасовому форку, могли не бути включені до прийнятого ланцюжка. Це означає, що його можна змінити. Таким чином, остаточність відноситься до часу, який ви повинні чекати, перш ніж вважати транзакцію незворотною. У попередньому механізмі підтвердження роботи Ethereum, чим більше блоків видобувалося поверх певного блоку N, тим вищою була впевненість у тому, що транзакції в N були успішними та не будуть скасовані. Тепер, з доказом частки, завершеність є явною, а не імовірнісною властивістю блоку.
Енергоспоживання підтвердження роботи
Серйозною критикою доказів роботи є кількість енергії, необхідної для забезпечення безпеки мережі. Для підтримки безпеки та децентралізації Ethereum на основі підтвердження роботи споживав велику кількість енергії. Незадовго до переходу на доказ частки майнери Ethereum спільно споживали близько 70 ТВт·год/рік (приблизно стільки ж, скільки Чеська Республіка — за даними digiconomistopens in a new tab станом на 18 липня 2022 року).
Переваги та недоліки
| Переваги | Недоліки |
|---|---|
| Доказ виконаної роботи є нейтральним. Вам не потрібен ETH, щоб почати, а нагороди за блокування дозволяють перейти від 0 ETH до позитивного балансу. З доказом частки для початку вам потрібні ETH. | Доказ роботи споживає стільки енергії, що це шкідливо для навколишнього середовища. |
| Proof-of-work — це перевірений механізм консенсусу, який протягом багатьох років забезпечував захист і децентралізацію Bitcoin та Ethereum. | Якщо ви хочете займатися видобутком, вам потрібне таке спеціалізоване обладнання, що для початку це великі інвестиції. |
| У порівнянні з proof-of-stake його відносно легко реалізувати. | Через збільшення кількості необхідних обчислень майнінгові пули потенційно можуть домінувати в грі, що призведе до централізації та ризиків безпеки. |
Порівняння з доказом частки
На високому рівні proof-of-stake має ту ж кінцеву мету, що й proof-of-work: допомогти децентралізованій мережі безпечно досягти консенсусу. Але він має деякі відмінності в процесі та персоналі:
- Підтвердження ставки вимикає важливість обчислювальної потужності для ставок ETH.
- Підтвердження ставки замінює майнерів валідаторами. Валідатори ставлять свій ETH, щоб активувати можливість створення нових блоків.
- Валідатори не змагаються за створення блоків, натомість вони вибираються випадковим чином за допомогою алгоритму.
- Кінцевість зрозуміліша: на певних контрольних точках, якщо 2/3 валідаторів погоджуються щодо стану блоку, це вважається остаточним. Валідатори повинні поставити на це всю свою ставку, тому, якщо вони спробують вступити в змову, вони втратять всю свою ставку.