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

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

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

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


Что не так с византийскими генералами?

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

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

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

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

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

  • Все генералы должны принять одно и то же решение и выполнить его синхронно.

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

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

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

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


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

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

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


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

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

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

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

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


Заключение

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

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