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