С момента появления Биткойна в 2008 году как одноранговой электронной финансовой системы было создано множество цифровых валют, каждая из которых работает с помощью специального механизма. Но единственное, что объединяет все цифровые валюты, — это блокчейн как базовый элемент их структуры.

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

Использование цифровых валют в настоящее время рассматривается как жизнеспособная альтернатива традиционным банковским системам и методам оплаты, которые в значительной степени полагаются на доверие.

Как и в большинстве распределенных вычислительных систем, участникам криптовалютной сети необходимо регулярно договариваться о текущем состоянии, в котором работает блокчейн.Это то, что мы называем достижением консенсуса. Однако достижение консенсуса по распределенным сетям безопасным и надежным способом — очень сложная задача.

Итак, как же распределенная сеть компьютерных узлов может договориться о том, могут ли некоторые узлы выйти из строя или действовать незаконно? Это фундаментальный вопрос так называемой проблемы византийских генералов, из которой возникла концепция византийской отказоустойчивости.


В чем проблема византийских генералов?

Короче говоря, «Проблема византийских генералов» 1982 года была задумана как логическая дилемма, иллюстрирующая, как группа византийских генералов может столкнуться с проблемами в общении друг с другом при попытке договориться о следующем шаге своего плана.

Дилемма предполагает, что у каждого генерала есть своя армия, что каждая группа расположена в разных местах города, который он намеревается атаковать, и что каждый генерал должен согласиться либо атаковать, либо отступить. Не имеет значения, нападут они или отступят, пока все генералы достигнут консенсуса, т.е. договорятся о совместном решении, чтобы координировано его реализовать.

Таким образом, мы можем рассмотреть следующие цели:

  • Каждый генерал должен решить: атаковать или отступить (да или нет).

  • Если решение принято, его нельзя изменить.

  • Все генералы должны прийти к единому мнению и синхронно реализовать его.

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

Кроме того, даже если сообщение будет успешно доставлено, один или несколько генералов могут (по любой причине) решить действовать злонамеренно и отправить поддельное сообщение, чтобы сбить с толку других генералов, что приведет к полному провалу миссии.

Если мы применим эту дилемму в контексте блокчейна, каждый ген представляет собой узел сети, и узлы должны достичь консенсуса относительно текущего состояния системы. Другими словами, большинство участников распределенной сети должны согласиться и выполнить одно и то же действие, чтобы избежать полного сбоя.

Следовательно, единственный способ достичь консенсуса в таких типах распределенных систем — это иметь ⅔ (две трети) или более честных узлов. Это означает, что если большая часть сети решит действовать злонамеренно, система будет уязвима для сбоев и атак (например, атака 51%).


Византийская отказоустойчивость — BFT

Короче говоря, византийская отказоустойчивость (BFT) — это свойство системы, способной противостоять типу сбоев, вытекающему из проблемы византийских генералов. Это означает, что система BFT способна продолжать работу, даже если некоторые узлы выходят из строя или ведут себя злонамеренно.

Существует более одного возможного решения проблемы византийских генералов, а это означает, что существует несколько способов построения системы BFT. Аналогичным образом, существует множество различных подходов к достижению византийской отказоустойчивости блокчейнов, и это приводит нас к так называемым алгоритмам консенсуса.


Алгоритмы консенсуса блокчейна

Мы можем определить алгоритм консенсуса как механизм, с помощью которого сеть блокчейнов достигает консенсуса. Наиболее распространенными приложениями являются Proof of Work (PoW) и Proof of Stake (PoS). Но давайте возьмем в качестве примера случай Биткойна.

Хотя протокол Биткойна определяет основные правила системы, именно алгоритм консенсуса, известный как «Доказательство работы» (PoW),  определяет, как следует соблюдать эти правила для достижения консенсуса (например, во время проверки транзакции).

Хотя концепция Proof of Work старше криптовалют, Сатоши Накамото разработал ее модифицированную версию как алгоритм, который позволил создать Биткойн как систему BFT.

Обратите внимание, что алгоритм Proof of Work (PoW) не является на 100% устойчивым к византийским ошибкам, но из-за дорогостоящего процесса майнинга и криптографических методов PoW оказался одной из наиболее безопасных и надежных реализаций сетей блокчейн.

Поэтому алгоритм Proof of Work, разработанный Сатоши Накамото, используется многими как одно из самых гениальных решений византийских ошибок.


Заключение

Проблема византийских генералов представляет собой интересную дилемму, которая в конечном итоге привела к появлению систем BFT, которые широко применяются в различных сценариях. Даже за пределами индустрии блокчейнов некоторые варианты использования BFT включают авиационную, космическую и атомную энергетику.

В контексте цифровых валют наличие эффективной сети связи и механизма консенсуса жизненно важно для любой системы блокчейн. Обеспечение безопасности этих систем требует постоянных усилий, и существующие алгоритмы консенсуса все еще работают над преодолением некоторых ограничений (например, масштабируемости). Однако «Доказательство работы» (PoW) и «Доказательство доли» (PoS) — два очень интересных подхода к системам BFT, и потенциальные приложения, безусловно, являются источником широкого вдохновения.