З моменту створення Bitcoin у 2008 році як peer-to-peer електронної готівкової системи було створено багато інших криптовалют, кожна з яких має певний механізм. Але майже всі криптовалюти мають одну спільну особливість – це блокчейн, який є основним елементом їхньої архітектури.
За кількома винятками, блокчейни розробляються саме як децентралізовані. Вони працюють як цифровий реєстр, який підтримується розподіленою мережею комп'ютерних нод. Завдяки технології блокчейну стало можливим створення економічних систем "без довіри", де прозорі та надійні фінансові транзакції можуть виконуватися без посередників. Криптовалюти впроваджуються як життєздатна альтернатива традиційним банківським і платіжним системам, які значною мірою залежать від довіри.
Як і в більшості розподілених обчислювальних систем, учасникам криптовалютної мережі необхідно регулярно погоджувати поточний стан блокчейну. Саме це й називається досягненням консенсусу. Однак досягнення консенсусу щодо розподілених мереж безпечним і ефективним способом – завдання не з простих.
Тож як розподілена мережа комп'ютерних нод може узгодити рішення, якщо деякі з них можуть вийти з ладу або будуть діяти з якимось зловмисним наміром? Це фундаментальне питання так званої проблеми візантійських генералів, яка породила концепцію візантійської відмовостійкості.
Що таке проблема візантійських генералів?
Коротко кажучи, поняття проблеми візантійських генералів виникло в 1982 році як логічна дилема, що ілюструє, як група візантійських генералів може стикнутися з проблемою домовленості щодо наступного кроку.
За цією дилемою допускається припущення, що кожен генерал має власну армію та кожна з них розташована в різних місцях навколо міста, яке вони мають намір атакувати. Генерали повинні узгодити план атаки або відступу. Неважливо, чи вирішать вони атакувати чи відступати, головне, щоб усі генерали досягли консенсусу, тобто дійшли єдиного рішення щодо того, як будуть діяти їхні армії.
З огляду на це, розглянемо такі вимоги:
Кожен генерал повинен вирішити: атакувати чи відступати (так чи ні).
Після прийняття рішення воно не може бути змінене.
Усі генерали мають погодитися з єдиним рішенням та виконувати його синхронно.
Зазначені вище проблеми щодо узгодження рішення пов'язані з тим, що один генерал може спілкуватися з іншим лише за допомогою повідомлень, які передаються з гінцем. Як наслідок, суть проблеми візантійських генералів полягає в тому, що повідомлення можуть бути якимось чином затримані, знищені або втрачені.
Крім того, навіть якщо повідомлення буде доставлено, один або кілька генералів можуть вирішити (з будь-якої причини) діяти зловмисно та надіслати хибне повідомлення, щоб заплутати інших генералів, що призведе до повного провалу операції.
Якщо ми застосуємо цю дилему до контексту блокчейнів, кожен генерал представляє ноду мережі, де всі ноди повинні досягти консенсусу щодо поточного стану системи. Іншими словами, щоб не сталося повного провалу операції (в нашому випадку функціонування), більшість учасників розподіленої мережі повинні узгодити та виконати однакові дії.
Таким чином, єдиний спосіб досягти консенсусу в цих типах розподілених систем – це мати принаймні ⅔ або більше надійних нод у мережі, які діятимуть чесно. Це означає, що якщо більша частина нод у мережі вирішить діяти зловмисно, система стане вразливою до збоїв і атак (таких як атака 51%).
Візантійська відмовостійкість (BFT)
Якщо пояснювати коротко, то візантійська відмовостійкість (BFT) – це властивість системи, яка здатна протистояти певному класу збоїв, що можуть статися через проблему візантійських генералів. Це означає, що система BFT може продовжувати роботу, навіть якщо деякі з нод вийдуть із ладу або діятимуть зі зловмисним наміром.
Існує більше одного можливого вирішення проблеми візантійських генералів і, отже, кілька способів побудови системи BFT. До того ж для досягнення візантійської відмовостійкості існують різні підходи до створення та функціонування блокчейну, в результаті чого й з'явилися так звані алгоритми консенсусу.
Алгоритми консенсусу на блокчейні
Ми можемо дати алгоритму консенсусу таке визначення: це механізм, за допомогою якого мережа блокчейну досягає консенсусу. Найпоширенішими прикладами є Proof of Work (PoW) і Proof of Stake (PoS). Але давайте як приклад розглянемо Bitcoin.
Основні правила системи визначаються протоколом Bitcoin, а алгоритм консенсусу PoW визначає, як ці правила будуть дотримуватись для досягнення консенсусу (наприклад, під час верифікації та перевірки транзакцій).
Хоча концепція Proof of Work з'явилася раніше за криптовалюти, Сатоші Накамото розробив її модифіковану версію як алгоритм, завдяки якому Bitcoin вдалося створити як систему BFT.
Зауважте, що алгоритм PoW не є на 100% відмовостійким за візантійською схемою, але через високу вартість майнінгу та криптографічні методи, що лежать в його основі, PoW виявився одним із найбезпечніших і надійніших реалізацій для блокчейн-мереж. У цьому сенсі алгоритм консенсусу Proof of Work, розроблений Сатоші Накамото, вважається багатьма одним із найгеніальніших рішень проблеми візантійських генералів.
Підсумки
Проблема візантійських генералів – це дилема, яка врешті призвела до появи систем BFT, що широко застосовуються в різних галузях. Крім блокчейн-індустрії, системи BFT також використовуються в авіаційній, космічній і ядерній промисловості.
У контексті криптовалют ефективний зв'язок між учасниками мережі та надійний механізм консенсусу є життєво необхідними для будь-якої екосистеми блокчейну. Захист цих систем – це постійна робота, а в наявних алгоритмах консенсусу все ще існують обмеження (наприклад, існує проблема масштабованості). Тим не менш, PoW і PoS, як системи BFT, є досить цікавим рішенням, а можливі варіанти їхнього застосування, безумовно, надихають на розробку інновацій, які захоплять увесь світ.