Введение

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

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

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

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


Это обычная византийская проблема?

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

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


Поэтому необходимо определить несколько вещей:

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

  • После того как каждое решение принято, его нельзя изменить;

  • Каждый генерал должен согласиться с одним и тем же решением и одновременно выполнить его в рамках установленных правил.

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

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

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

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


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

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

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


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

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

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

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

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


Заключение

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

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