Що таке Proof-of-Work і Proof-of-Stake?
Proof-of-Work і Proof-of-Stake – два найбільш відомих алгоритму консенсусу в криптовалюті. Вони пропонують відмінні за своєю структурою механізми доказів виконаної роботи.
У чому суть Proof-of-Work?
Proof-of-Work (PoW – дослівно: доказ роботи) – алгоритм захисту розподілених систем від зловживань (DoS-атак, спам-розсилок і т.д.), суть якого зводиться до двох основних пунктів:
необхідності виконання певної досить складною і тривалою завдання;
можливості швидко і легко перевірити результат.
PoW-завдання спочатку не призначені для людини, їх рішення комп’ютером завжди досяжно в кінцеві терміни, однак вимагає великих обчислювальних потужностей. При цьому перевірка отриманого рішення потрібно набагато менше ресурсів і часу.
Хто придумав термін Proof-of-Work?
Вперше концепція Proof-of- Work була описана в 1993 році в роботі «Pricing via Processing, Or, Combatting Junk Mail, Advances in Cryptology» (автори – Синтія Дворко і Мони Наор). І хоча сам термін в статті ще не використовувався, автори запропонували наступну ідею:
«Щоб отримати доступ до загального ресурсу, користувач повинен обчислити деяку функцію: досить складну, але посильну; так можна захистити ресурс від зловживання ».
У 1997 році Адам Бек запустив проект Hashcash, присвячений тій же захист від спаму. Завдання формулювалася так: «Знайти таке значення x, що хеш SHA (x) містив би N старших нульових біт».
Система пропонувала хешування часткової інверсії при відправці по електронній пошті. Для розрахунку відповідного заголовка потрібно близько 252 хеш-обчислень, які треба перераховувати для кожної відправки. І якщо для відправки кількох звичайних листів додаткові розрахунки перешкод не створюють, то відправку спаму необхідність постійного перерахунку робить дуже ресурсномісткої. При цьому перевірка коректності обчисленого коду здійснюється дуже швидко: використовується одноразове обчислення SHA-1 із заздалегідь підготовленою міткою.
У 1999 році з’являється і сам термін Proof-of-Work – використаний він був в статті «Proofs of Work and Bread Pudding Protocols» (автори – Маркус Якобссон та Арі Джуелс) в журналі Communications and Multimedia Security.
Яке відношення Proof-of-Work має до криптовалют?
У мережі Bitcoin механізм PoW був використаний як засіб досягнення консенсусу (єдиної думки про те, скільки разів блокчейна вважати вірною). При цьому за основу творець першої криптовалюта Сатоши Накамото взяв ідею згаданого вище проекту Hashcash, додавши до неї механізм змінюється складності – зменшення або збільшення N (необхідного числа нулів) в залежності від сумарної потужності учасників мережі. Обчислюється функцією стала SHA-256.
Якщо говорити простими словами, механізм PoW забезпечує здатність вузла мережі (ноди) перевірити, що майнер (в ролі якого виступає вузол, який додає новий блок в блокчейн) фактично виконав розрахунки.
Даний процес включає в себе спробу знайти хеш заголовка блоку (частина блокчейна, яка містить посилання на попередній блок і підсумкова значення транзакцій, в нього включені), який буде за своїм значенням відповідати цьому рівню складності.
Чи дійсно складність обчислення «складна»?
Ці обчислення можуть проводитися тільки в інтерактивному режимі, і складність встановлюється на такому рівні, що вона дійсно виявляється складною. У той же час перевірка результатів обчислень залишається простий. Вузли завжди можуть упевнитися, що майнер знайшов коректне значення, проте, оскільки процес знаходження блоку вельми трудовитрат і випадковий, неможливо з точністю передбачити який саме майнер вирішить завдання і знайде блок.
Для того, щоб система визнала блок дійсним, необхідно, щоб значення його хешу було меншим у порівнянні з поточною метою. Таким чином, кожен блок показує, що була пророблена певна робота по його знаходження.
Кожен блок містить хеш попереднього блоку, утворюючи ланцюг. Змінити блок неможливо – можливо лише створити блок на тій же висоті, який буде містити в собі хеш попереднього блоку. Для проведення такого процесу необхідно виконати роботу по знаходженню всіх попередніх блоків. Висока складність цього процесу захищає блокчейн від несанкціонованого доступу і подвійних витрат.
Як Proof-of-Work вплинув на Майнінг?
Proof-of-Work біткоіни породив цілу індустрію Майнінгу і став імпульсом до розробки спеціалізованого обладнання, оскільки обчислювальні ресурси, що витрачаються на хешування блоків, величезні і набагато перевищують потужності найбільших суперкомп’ютерів.
У той же час не обійшлося і без горезвісної «зворотного боку медалі»: досить швидко PoW перетворився в монстра, що пожирає електрику в гонці за прибутковістю Майнінг.
У 2012 році сумарна потужність мережі Bitcoin вже перевищувала по продуктивності найпотужніший суперкомп’ютер у світі, а на горизонті з’явилася і перша альтернатива – Proof-of-Stake.
Що таке Proof-of-Stake?
Альтернативний механізм консенсусу, вперше реалізований в 2012 році в криптовалюта PPCoin (зараз відома під назвою PeerCoin). Ідея полягає у використанні «частки» (stake) в якості ресурсу, який визначає, яка саме нода отримує право видобутку наступного блоку.
У підході Proof-of-Stake Ноди також намагаються хешировать дані в пошуках результату менше певного значення, але складність в даному випадку розподіляється пропорційно і відповідно до балансу даного вузла. Іншими словами – відповідно до кількості монет (токенов) на рахунку користувача.
Таким чином, більше шансів згенерувати наступний блок має вузол з великим балансом. Схема виглядає досить привабливо насамперед через невеликі вимог до обчислювальних ресурсів, а також тому, що не стоїть питання «витрачені даремно» потужностей.
Які наводяться аргументи за і проти Proof-of-Stake?
Як правило, на користь використання PoS наводяться наступні аргументи:
Для проведення атаки потрібні значні кошти, що робить її недоцільною з фінансової точки зору.
Одночасно з цим, якщо в розпорядженні атакуючого є велика кількість токенов, він сам постраждає від атаки, оскільки це порушить стійкість криптовалюта.
Аргументи, що викликають побоювання:
PoS дає додаткову мотивацію до накопичення коштів в одних руках, що може негативно позначитися на децентралізації мережі.
Якщо утворюється невелика група, яка збере у себе чималі кошти, вона зможе нав’язувати свої правила роботи мережі іншим учасникам.
Додатково можна відзначити проблему Nothing-at-Stake (порожній стек), яка робить PoS-системи за своєю природою нестабільними в очах багатьох кріптовалютних ентузіастів. Атакуючий може спробувати зробити форк блокчейна, т. Е. Створити довшу альтернативну ланцюжок за допомогою витрачання «неіснуючих» ресурсів. Більш того, його можуть підтримати інші Майнер, оскільки вони також не витрачають «справжні» ресурси. За допомогою ФОРКОМ атакуючий може відхиляти певні транзакції і здійснювати атаку «подвійний витрати».
На чиєму боці чаша терезів?
Розбіжності між прихильниками Pow та PoS тривають вже довгий час, але природа цих суперечок більше теоретична. Практика показує, що роль розробника в питаннях забезпечення безпеки як і раніше дуже висока.
У той же час багато хто вважає найбільш безпечним рішенням гібридний варіант PoS- і PoW-систем. Такий підхід вже активно практикується – у багатьох криптовалюта існує етап PoW, коли валюта випускається через класичний Майнінг, і етап PoS, наступаючий після завершення емісії.
Проте, не дивлячись на те, що PoS-системи завжди будуть легшими для імплементації та в цілому такими ж надійними з точки зору безпеки, більшість серйозних криптовалюта, швидше за все, не стануть відмовлятися від PoW.
Де ще можна почитати про Proof-of-Work і Proof-of-Stake?
Свого часу ForkLog підготував адаптований переклад whitepaper, написаного BitFury Group, в якому порівнюється робота принципів захисту PoW- і PoS-систем.
Які ще механізми доказів є в криптовалюті?
Proof-of-Work і Proof-of-Stake можна вважати двома найбільш популярними алгоритмами консенсусу в світі криптовалюта, однак крім них, існує ще цілий ряд механізмів, що мають власні тонкощі і особливості.
Їх список може виявитися досить великим, тому перерахуємо кілька найбільш відомих:
Proof of Activity (доказ активності) – стандартна гібридна схема, що поєднує PoW і PoS;
Delegated Proof of Stake (делеговане підтвердження частки) – загальний термін, що описує еволюцію базових консенсус-протоколів на основі підтвердження частки. DPoS використовується в BitShares, а також в запропонованих алгоритмах, таких як Slasher і Tendermint;
Proof of Burn (доказ спалювання) – «спалювання» відбувається шляхом відправки монет на таку адресу, з якого гарантовано не можна їх витратити. Позбавляючись таким чином від своїх монет, користувач отримує право на довічний Майнінг, який також влаштований як лотерея серед всіх власників спалених монет;
Proof of Capacity (доказ ресурсів) – реалізація популярної ідеї «мегабайти як ресурси». Необхідно виділити суттєвий обсяг дискового простору, щоб включитися в Майнінг;
Proof of Storage (доказ зберігання) – схожа на попередню концепцію, при якій виділене місце використовується всіма учасниками як спільне хмарне сховище.