Ця стаття пояснює, як доказ роботи (Proof of Work, PoW) і доказ частки (Proof of Stake, PoS) вирішують, хто додає наступний блок до блокчейну, як кожен із них захищає ланцюг і як кожен створює нові монети. Як приклад протягом усієї статті використано Blocknet — монету на доказі роботи, яку можна майнити на звичайному комп’ютері.
У чому різниця між доказом роботи й доказом частки?
Доказ роботи й доказ частки — це два способи, якими блокчейн вирішує, хто додає наступний блок. У доказі роботи майнери витрачають обчислювальну потужність, щоб знайти правильний хеш. У доказі частки валідатори блокують монети як депозит і обираються для того, щоб пропонувати блоки й голосувати за них. Обидва роблять шахрайство дорогим.
Кожен блокчейн має розв’язати ту саму проблему. Тисячі комп’ютерів, які не довіряють одне одному, мають погодитися щодо однієї історії платежів, щоб ніхто не міг витратити ту саму монету двічі. Хтось має пропонувати кожен новий блок, а всі інші мають мати причину його прийняти. Це правило називається механізмом консенсусу, і доказ роботи та доказ частки — дві найвідоміші його схеми.
| Доказ роботи | Доказ частки | |
|---|---|---|
| Хто створює блок | Майнер, який першим знайде хеш, що не перевищує ціль мережі | Валідатор, обраний серед тих, хто заблокував монети |
| Що вони вкладають | Обладнання й електроенергію | Монети, внесені як стейк |
| Який ланцюг перемагає | Ланцюг із найбільшою накопиченою роботою | Ланцюг, за який проголосувала найбільша частка валідаторів, з контрольними точками фінальності |
| Куди йдуть нові монети | Винагорода за блок майнеру, який знайшов блок | Винагороди валідаторам за пропонування блоків і голосування |
| Що потрібно, щоб долучитися | Комп’ютер, який може обчислювати хеші | Монети для стейкінгу (32 ETH для валідатора Ethereum) |
| Приклади | Bitcoin, Monero, Blocknet | Ethereum з 2022 року |
Як доказ роботи вибирає наступний блок?
У доказі роботи майнери змагаються в розв’язанні задачі, яку важко розв’язати й легко перевірити. Майнер бере блок, який хоче опублікувати, додає число під назвою nonce і хешує результат. Якщо хеш, прочитаний як число, не перевищує ціль мережі, блок дійсний. Якщо ні, майнер змінює nonce і пробує знову. Єдиний спосіб перемогти — перебрати багато значень nonce, тож шанс майнера знайти наступний блок відповідає його частці обчислювальної потужності мережі.
У статті про Bitcoin 2008 року Сатоші Накамото сформулював це так: «Доказ роботи — це, по суті, один CPU — один голос». Ноди йдуть за ланцюгом, у який вкладено найбільше роботи, а налаштування складності зсуває ціль угору чи вниз, щоб блоки з’являлися зі сталим темпом, скільки б обчислювальної потужності не долучилося. Стаття про те, як працює майнінг криптовалют, крок за кроком пояснює хеші, складність і пули.
Blocknet працює так само, з параметрами, заданими в коді консенсусу:
- Хеш — це Argon2id з 2 GiB пам’яті, тож кожен хеш потребує реальної пам’яті, а не лише процесорного часу. Пояснення Argon2id показує, як він працює.
- Ціль — це (2^256 − 1), поділене на складність, тож складність приблизно дорівнює кількості хешів, які мережа має обчислити, щоб знайти один блок.
- Блок з’являється приблизно кожні п’ять хвилин, 288 блоків на добу. Складність відстежує час останніх блоків через зважене ковзне середнє за 60 блоків (LWMA).
- Ноди йдуть за найважчим ланцюгом. Кожна нода підсумовує складність усіх блоків ланцюга й переходить на конкурентний ланцюг, лише якщо його загальна робота більша.
Як доказ частки вибирає наступний блок?
Доказ частки замінює хешування депозитом. Щоб узяти участь, валідатор блокує монети в протоколі, а протокол обирає валідаторів, які пропонують і схвалюють блоки. Peercoin, запущений у 2012 році, був першою криптовалютою, яка його використала, а Ethereum перейшов на нього 15 вересня 2022 року в оновленні під назвою The Merge.
Схема Ethereum показує, з чого він складається. За даними ethereum.org:
- Валідатор вносить 32 ETH у депозитний контракт.
- Час поділено на слоти по 12 секунд, згруповані в епохи по 32 слоти.
- У кожному слоті один валідатор обирається випадково, щоб запропонувати блок, а інші голосують за нього атестаціями.
- Контрольні точки стають фінальними, коли за них голосують валідатори, які утримують щонайменше дві третини всього застейканого ETH.
- Валідатора, який пропонує два блоки для одного слота або подає суперечливі голоси, штрафують слешингом: частину його стейку, аж до всього стейку, знищують.
Стейк виконує ту роль, яку в доказі роботи виконує електроенергія. Порушення правил коштує валідатору монет, якими він уже володіє.
Як доказ роботи й доказ частки забезпечують безпеку?
Обидві схеми роблять атаку дорожчою, ніж вона могла б принести, але розміщують ці витрати в різних місцях.
У доказі роботи витрати — це безперервні обчислення. Щоб переписати минулий блок, атакувальник має повторити роботу цього блоку й кожного наступного, а потім обігнати чесну мережу. Накамото показав, що шанс повільнішого атакувальника наздогнати мережу зменшується експоненційно з кожним новим блоком. Щоб захопити контроль над ланцюгом надалі, потрібно мати більше обчислювальної потужності, ніж усі інші разом, і утримувати її весь час атаки.
У доказі частки витрати — це капітал під ризиком. Документація Ethereum зазначає, що атакувальнику «знадобилося б 51% застейканого ETH», щоб контролювати ланцюг, що однієї третини стейку достатньо, щоб блоки не ставали фінальними, і що скасування фіналізованого блоку означало б втрату через слешинг щонайменше третини всього застейканого ETH.
Blocknet також встановлює два пороги поверх свого доказу роботи. Мережа вважає безпечними 10 підтверджень, приблизно 50 хвилин, а ноди відхиляють будь-яку реорганізацію глибшу за 100 блоків, приблизно вісім годин, тож блок на глибині 100 є фінальним.
Як дві моделі випускають нові монети?
Монети на доказі роботи виплачують нові монети майнеру, який знаходить кожен блок, тож будь-хто, хто вкладає обчислювальну потужність, може заробляти монети, не володіючи ними заздалегідь. Монети на доказі частки виплачують нові монети валідаторам пропорційно до їхнього стейку, тож винагороди отримують ті, хто вже має монети. Кожен протокол встановлює власний графік.
У доказі роботи перша транзакція в кожному блоці створює нові монети для майнера, який його знайшов. Стаття про Bitcoin описує це як «спосіб початково ввести монети в обіг, оскільки немає центрального органу, який би їх випускав». Винагорода Bitcoin зменшується вдвічі кожні 210 000 блоків, приблизно раз на чотири роки, а загальна пропозиція залишається трохи нижче 21 мільйона.
У доказі частки Ethereum винагороди раз на епоху додаються до балансів валідаторів за атестації, пропонування блоків і участь у комітеті синхронізації. Базова винагорода зменшується зі зростанням загального стейку, тоді як загальна емісія зростає, коли долучається більше валідаторів.
Емісія Blocknet повністю відбувається через майнінг. Його генезис-блок узагалі не містить транзакцій, тож до початку майнінгу монет не існувало, а консенсус не має ні преміну, ні скарбниці, ні виходу для засновників. Кожен блок виплачує всю винагороду одним виходом майнеру, який його знайшов. Винагорода почалася з 723,25 BNT за блок, знижується щоразу через 30-денний місяць за експоненційною кривою протягом 48 місяців, а потім назавжди залишається на рівні 2 BNT за блок.
Чому Blocknet використовує доказ роботи?
Blocknet вибрав доказ роботи, щоб будь-хто з комп’ютером міг заробляти нові монети з першого блоку, нічого не купуючи заздалегідь. Його демон описує Argon2id як «вимогливий до пам’яті PoW для протидії ASIC і забезпечення чесного майнінгу» і виконує кожен хеш в одному потоці «заради чесності».
Саме вимога до пам’яті зберігає майнінг відкритим. Кожен хеш заповнює 2 GiB пам’яті, тож кожному потоку майнінгу потрібно близько 2 GB ОЗП, а комп’ютери, які люди вже мають, — настільні ПК, ноутбуки й сервери — мають і цю пам’ять, і контролери, щоб її живити. Blocknet належить до родини монет на доказі роботи, створених під обладнання загального призначення: Monero, наприклад, з листопада 2019 року використовує RandomX, «оптимізований для CPU загального призначення».
Доказ роботи залишається в планах Blocknet. Оновлення Faraday, заплановане приблизно на лютий 2027 року за даними blocknetcrypto.com, принесе «легший доказ роботи», щоб нові ноди швидше наздоганяли ланцюг.
Як почати майнити монету на доказі роботи?
Для Blocknet вам потрібні адреса гаманця й seine — безкоштовний майнер з відкритим кодом:
- Отримайте адресу в офіційному гаманці. Посібник із гаманця проведе вас крок за кроком.
- Завантажте seine для Windows, macOS або Linux і запустіть його.
- Вставте свою адресу або
@nameі прийміть пул за замовчуванням, bntpool.com.
seine вибирає кількість потоків за вашою ОЗП, порівнює обчислювальні ядра CPU під час майнінгу й залишає найшвидше, а у Windows і Linux додає до процесора будь-яку відеокарту NVIDIA. Посібник з майнінгу докладно розповідає про обладнання й виплати.
Поширені запитання
Blocknet працює на доказі роботи чи на доказі частки?
Blocknet використовує доказ роботи. Майнери обчислюють хеші Argon2id, кожен з яких потребує 2 GiB пам'яті, новий блок знаходиться приблизно кожні п'ять хвилин, і вся винагорода за блок дістається майнеру, який його знайшов. Стейкінгу немає. Майнити його можна за допомогою seine на звичайному комп'ютері через пул bntpool.com.
Коли Ethereum перейшов із доказу роботи на доказ частки?
Ethereum перейшов на доказ частки в оновленні під назвою The Merge, виконаному 15 вересня 2022 року. Відтоді блоки пропонують і голосують за них не майнери, а валідатори, які внесли депозит 32 ETH. Bitcoin, Monero і Blocknet і далі використовують доказ роботи, де нові блоки з'являються завдяки обчислювальній роботі.
Що таке атака 51%?
Атака 51% — це спроба контролювати, які блоки приймає ланцюг, утримуючи більшість ресурсу, від якого це залежить. У доказі роботи це більшість обчислювальної потужності мережі. У доказі частки — більшість застейканих монет. В обох випадках атакувальник має задіяти більшість реальних ресурсів.
Чи можна майнити монету на доказі частки?
Ні. Монета на чистому доказі частки не має майнінгу. Нові монети виплачуються валідаторам, які блокують наявні монети як стейк, тож щоб заробити монети, їх спершу треба мати. Щоб заробляти нові монети на комп'ютері, який у вас уже є, потрібна монета на доказі роботи, як-от Blocknet.