вступ

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

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

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

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


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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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


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

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

Однак це не завжди так. Вам також потрібен певний капітал. У механізмі proof-of-stake, хоча не потрібно споживати зовнішні ресурси (наприклад, електроенергію чи апаратне забезпечення), внутрішні ресурси, а саме криптовалюта, повинні бути надані. Правила кожного протоколу відрізняються, але зазвичай існує мінімальна сума інвестицій, яку ви повинні досягти, щоб мати право робити ставки.

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

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

Загалом винагороди валідатора не видаватимуться у формі щойно викарбуваних токенів. Тому національна валюта блокчейну повинна випускатися іншим способом. Це може бути зроблено через початкову пропозицію (тобто ICO або IEO) або шляхом запуску протоколу з Proof-of-Work, а потім переходу на Proof-of-Stake.

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

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

Незабаром Proof of Stake буде протестовано в масштабах, і мережа Ethereum збирається запровадити серію оновлень (загально відомих як Ethereum 2.0), включаючи впровадження Casper.


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

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

  • «Докладне пояснення доказу відкладеного робочого навантаження»

  • «Детальне пояснення консенсусу щодо підтвердження орендних відсотків»

  • «Докладне пояснення авторитетного доказу»

  • «Детальне пояснення сертифіката про знищення»

  • «Докладне пояснення доказу делегованого капіталу»

  • «Детальне пояснення консенсусу гібридного підтвердження роботи/доказу частки»


Підведіть підсумки

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

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

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