С момента создания Биткойна в 2008 году как одноранговой (одноранговой) системы электронных денег было создано несколько других криптовалют, каждая из которых имеет определенный механизм. Но что-то общее почти у всех из них — это сеть Blockchain как центральный элемент их архитектуры.
За некоторыми исключениями, сети Blockchain намеренно спроектированы так, чтобы быть децентрализованными и функционировать как цифровой реестр, который поддерживается распределенной сетью узлов, представленных компьютерами. По этой причине технология Blockchain позволила создать экономическую систему, в которой финансовые операции прозрачны и надежны без необходимости использования посредников. Криптовалюты завоевывают все больше места, представляя себя альтернативой традиционной банковской системе, которая очень зависит от доверия, оказываемого третьим лицам.
В большинстве распределенных компьютерных систем участникам криптовалютной сети необходимо регулярно договариваться о текущем состоянии своих блокчейнов, и это то, что мы называем достижением консенсуса. Однако достижение консенсуса в распределенных сетях безопасным и надежным способом — далеко не простая задача.
Следовательно, как распределенная сеть компьютеров может принять решение, если некоторые узлы обречены действовать ошибочно или нечестно? Это фундаментальный вопрос известной проблемы византийских генералов, породившей концепцию Byzantine Fault Tolerance (BFT) — или Byzantine Fault Tolerance по-португальски.
В чем проблема с византийскими генералами?
Вкратце, она была задумана в 1982 году как логическая дилемма, которая иллюстрировала, как группа византийских генералов могла столкнуться с трудностями в общении при попытке достичь соглашения о следующем военном шаге.
Дилемма предполагает, что у каждого генерала есть своя армия и что каждая группа расположена в разных местах города, который они хотят атаковать. Генералам необходимо договориться о том, когда атаковать или отступить. Неважно, нападают они или отступают, необходимо, чтобы все они договорились, например, вместе пришли к консенсусу относительно выполнения тактики.
Поэтому мы должны рассмотреть следующие цели:
Каждому генералу необходимо решить: атаковать или отступить (да или нет);
Как только вы приняли решение, его нельзя изменить;
Всем генералам необходимо согласовать одну и ту же тактику и выполнять ее синхронно.
Уже упомянутые проблемы связи связаны с тем, что один генерал может общаться с другим только посредством сообщений, которые доставляются по почте. Следовательно, главная проблема «Проблемы византийского генерала» заключается в том, что сообщения могут каким-то образом быть задержаны, уничтожены или потеряны.
Более того, даже если сообщение будет успешно доставлено, один или несколько генералов могут решить (по какой-либо причине) действовать злонамеренно или отправить мошенническое сообщение, чтобы сбить с толку других генералов, что приведет к полной катастрофе.
Если мы применим эту дилемму к контексту сетей Blockchain, каждый генерал представляет собой узел в сети, и узлы должны достичь консенсуса, когда дело доходит до текущего состояния системы. Другими словами, большинству участников распределенной сети необходимо согласовать один и тот же процесс, чтобы избежать широкомасштабных сбоев.
Однако единственный способ достичь консенсуса в таких типах распределенных систем — это иметь в сети как минимум ⅔ или более узлов, заслуживающих доверия и честных. Это означает, что если большая часть сети решит действовать злонамеренно, система будет подвержена сбоям и атакам (например, атаке 51%).
Византийская отказоустойчивость
Вкратце, BFT — это свойство системы противостоять различным типам сбоев, которые могут быть вызваны дилеммой византийских генералов. Это означает, что система BFT способна продолжать работать, даже если некоторые узлы в сети ведут себя неправильно или злонамеренно.
Существует несколько способов решения проблемы византийских генералов и, следовательно, несколько методов построения системы БФТ. Точно так же можно изучить множество подходов, чтобы система Блокчейн могла заставить BFT работать правильно, что приведет нас к столь желаемому алгоритму консенсуса.
Алгоритм консенсуса блокчейна
Мы можем определить алгоритм консенсуса как механизм, с помощью которого каждая сеть блокчейна достигает соглашения о своем состоянии. Наиболее известными реализациями являются Доказательство работы (PoW) и Доказательство доли (PoS). Но давайте в качестве примера возьмем случай с Биткойном.
В то время как протокол Биткойн предписывает основные правила системы, алгоритм консенсуса PoW определяет, как эти правила будут соблюдаться в попытке достичь консенсуса (например, во время проверки и проверки транзакций).
Хотя концепция PoW в криптовалютах очень старая, Сатоши Накамото разработал модифицированную версию, которая позволила создать Биткойн как систему BFT.
Обратите внимание, что алгоритм PoW не на 100% устойчив к византийским ошибкам, но, учитывая высокую стоимость процесса майнинга и лежащие в его основе криптографические методы, PoW уже доказал, что это одна из наиболее безопасных и надежных реализаций для сетей Blockchain. В этом аспекте алгоритм консенсуса PoW, разработанный Сатоши Накамото, многими считается гениальным решением византийской проблемы.
Заключительные соображения
Византийская проблема — это интригующая дилемма, которая в конечном итоге привела к появлению систем BFT, которые применяются в различных сценариях. Помимо мира блокчейна, система BFT используется в авиационной, космической и атомной энергетической отраслях.
В контексте криптовалют наличие эффективной сети связи и хорошего механизма консенсуса жизненно важно для любой экосистемы блокчейна. Обеспечение безопасности этих систем требует постоянных усилий, и многие существующие алгоритмы консенсуса еще не преодолели некоторые ограничения (например, масштабируемость). Однако алгоритмы PoW и PoS представляют собой интересные подходы к функционированию в качестве систем BFT, и их возможные применения, безусловно, стимулируют широкомасштабные инновации.
