вступ

Алгоритм консенсусу — це механізм, який дозволяє користувачам або машинам координувати роботу в розподілених умовах. Він повинен гарантувати, що всі агенти в системі можуть узгодити єдине джерело правди, навіть якщо деякі агенти зазнають невдачі. Іншими словами, система має бути відмовостійкою (див. також: Пояснення візантійської відмовостійкості).

У централізованих налаштуваннях одна сутність має владу над системою. У більшості випадків вони можуть вносити зміни, як їм заманеться – не існує якоїсь складної системи управління для досягнення консенсусу між багатьма адміністраторами. 

Але в децентралізованому налаштуванні це зовсім інша історія. Скажімо, ми працюємо з розподіленою базою даних – як нам досягти згоди щодо того, які записи додавати?

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

Алгоритми консенсусу та криптовалюта

У криптовалютах баланси користувачів записуються в базу даних – блокчейн. Важливо, щоб кожен (а точніше, кожен вузол) підтримував ідентичну копію бази даних. Інакше незабаром ви отримаєте суперечливу інформацію, що підриває всю мету мережі криптовалют.

Криптографія з відкритим ключем гарантує, що користувачі не можуть витрачати монети один одного. Але все одно потрібне єдине джерело правди, на яке покладаються учасники мережі, щоб мати змогу визначити, чи кошти вже витрачені.

Сатоші Накамото, творець Bitcoin, запропонував систему Proof of Work для координації учасників. Незабаром ми розберемося, як працює PoW, а поки що визначимо деякі спільні риси багатьох існуючих консенсусних алгоритмів.

По-перше, ми вимагаємо, щоб користувачі, які хочуть додати блоки (ми будемо називати їх валідаторами), надали ставку. Ставка — це певна цінність, яку повинен висунути валідатор, що перешкоджає йому діяти нечесно. Якщо вони обманюють, вони втратять свою частку. Приклади включають обчислювальну потужність, криптовалюту або навіть репутацію. 

Навіщо їм ризикувати власними ресурсами? Ну, також доступна винагорода. Зазвичай він складається з рідної криптовалюти протоколу та комісії, сплаченої іншими користувачами, щойно згенерованих одиниць криптовалюти або обох.

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

Типи консенсусних алгоритмів

Підтвердження роботи (PoW)

Proof of Work (PoW) є хрещеним батьком консенсусних алгоритмів блокчейну. Вперше це було реалізовано в Bitcoin, але фактична концепція існує вже деякий час. У Proof of Work валідатори (іменовані майнерами) хешують дані, які вони хочуть додати, доки не створять певне рішення.

Хеш — це, здавалося б, випадковий рядок літер і цифр, який створюється, коли ви запускаєте дані через хеш-функцію. Але якщо ви знову пропустите через нього ті самі дані, ви завжди матимете той самий результат. Змініть хоча б одну деталь, і ваш хеш буде зовсім іншим.

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

У Proof of Work протокол визначає умови, які роблять блок дійсним. Це може сказати, наприклад, що дійсним буде тільки блок, хеш якого починається з 00. Єдиний спосіб для майнера створити такий, який відповідає цій комбінації, — це вводити грубою силою. Вони можуть налаштувати параметр у своїх даних, щоб отримати інший результат для кожного припущення, доки не отримають правильний хеш. 

З основними блокчейнами планка встановлена ​​неймовірно високо. Щоб конкурувати з іншими майнерами, вам знадобиться склад, наповнений спеціальним обладнанням для хешування (ASIC), щоб мати шанс створити дійсний блок.

Ваша ставка під час майнінгу – це вартість цих машин і електроенергія, необхідна для їх роботи. ASIC створені для однієї мети, тому їх не можна використовувати в програмах, окрім майнінгу криптовалюти. Ваш єдиний спосіб окупити свої початкові інвестиції — це майнінг, який принесе значну винагороду, якщо ви успішно додасте новий блок до блокчейну.

Мережі просто перевірити, що ви дійсно створили правильний блок. Навіть якщо ви перепробували трильйони комбінацій, щоб отримати правильний хеш, вам достатньо лише один раз пропустити ваші дані через функцію. Якщо ваші дані дають дійсний хеш, вони будуть прийняті, і ви отримаєте винагороду. Інакше мережа його відхилить, і ви даремно витратите час і електроенергію.

Доказ участі (PoS)

Proof of Stake (PoS) було запропоновано на початку існування біткойна як альтернатива Proof of Work. У системі PoS немає поняття майнерів, спеціалізованого обладнання чи великого споживання енергії. Все, що вам потрібно, це звичайний ПК.

Ну не всі. Вам все одно потрібно додати скін у гру. У PoS ви не висуваєте зовнішній ресурс (наприклад, електрику чи обладнання), а внутрішній – криптовалюту. Правила відрізняються для кожного протоколу, але зазвичай існує мінімальна сума коштів, яку ви повинні мати, щоб мати право на ставку.

Звідти ви зберігаєте свої кошти в гаманці (їх не можна перемістити, поки ви робите ставку). Як правило, ви погоджуєтеся з іншими валідаторами щодо того, які транзакції перейдуть до наступного блоку. У певному сенсі ви робите ставку на блок, який буде вибрано, і протокол вибере один.

Якщо ваш блок вибрано, ви отримаєте частину комісії за транзакцію залежно від вашої ставки. Чим більше коштів ви заблокували, тим більше ви отримаєте. Але якщо ви спробуєте обдурити, пропонуючи недійсні транзакції, ви втратите частину (або всю) своєї частки. Тому у нас подібний до PoW механізм – діяти чесно вигідніше, ніж діяти нечесно.

Як правило, свіжо створені монети не є частиною винагороди для валідаторів. Таким чином, національна валюта блокчейну має бути випущена іншим способом. Це можна зробити або через початкове розповсюдження (тобто ICO або IEO), або шляхом запуску протоколу з PoW перед пізнішим переходом на PoS.

На сьогоднішній день чисте підтвердження частки дійсно було розгорнуто лише в невеликих криптовалютах. Тому незрозуміло, чи може він служити життєздатною альтернативою PoW. Хоча теоретично це здається обґрунтованим, на практиці воно буде зовсім іншим. 

Після розгортання PoS у мережі з великою кількістю цінностей система стає полем для теорії ігор і фінансових стимулів. Будь-хто, хто має ноу-хау «зламувати» систему PoS, швидше за все, зробить це лише в тому випадку, якщо зможе отримати від цього вигоду, тому єдиний спосіб дізнатися, чи можливо це зробити, — у живій мережі.

Незабаром ми побачимо масове тестування PoS — Casper буде впроваджено як частину серії оновлень мережі Ethereum (відомої як Ethereum 2.0).

Інші алгоритми консенсусу

Proof of Work і Proof of Stake є найбільш обговорюваними консенсусними алгоритмами. Але є багато інших, кожен зі своїми перевагами та недоліками. Перегляньте наступні статті:

  • Пояснення про відкладене підтвердження роботи

  • Роз’яснення консенсусу щодо підтвердження участі в оренді

  • Пояснення підтвердження повноважень

  • Пояснення доказу опіку

  • Пояснення делегованого підтвердження участі

  • Пояснення гібридного консенсусу PoW/PoS

Заключні думки

Механізми досягнення консенсусу є життєво важливими для функціонування розподілених систем. Багато хто вважає, що найбільшим нововведенням у біткойнах було використання Proof of Work, щоб дозволити користувачам погоджуватися щодо спільного набору фактів.

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

З усіх консенсусних алгоритмів Proof of Work залишається домінуючою пропозицією. Надійнішої та безпечнішої альтернативи ще не запропоновано. Тим не менш, існує величезна кількість досліджень і розробок щодо заміни PoW, і ми, ймовірно, побачимо більше з них у найближчі роки.