Що таке алгоритм консенсусу на блокчейні?
Головна сторінка
Статті
Що таке алгоритм консенсусу на блокчейні?

Що таке алгоритм консенсусу на блокчейні?

Новачок
Опубліковано Dec 13, 2018Оновлено Jun 13, 2024
7m

Вступ

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

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

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

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


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

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

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

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


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

Proof of Work (PoW)

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

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

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

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

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

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


Proof of Stake (PoS)

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

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

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

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

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

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

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


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

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


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

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

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

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