С момента создания Биткойна в 2008 году, в качестве одноранговой (peer-to-peer) электронной системы денежных средств, было создано много других криптовалют, каждая из которых имеет конкретный механизм. Но единственный элемент, с которым связана почти вся криптовалюта, это блокчейн как основной элемент их архитектуры.
За некоторыми исключениями, блокчейн намеренно предназначается для децентрализации, работая как цифровой реестр, который поддерживается распределенной сетью компьютерных узлов. По этой причине технология blockchain позволила создать надежные экономические системы, в которых прозрачные и надежные финансовые транзакции могли бы выполняться без необходимости участия посредников. Криптовалюта воспринимается как жизнеспособная альтернатива традиционным банковским и платежным системам, которые в значительной степени зависят от доверия.
Так же, как и большинство распределенных вычислительных систем, участникам криптовалютной сети необходимо регулярно согласовывать текущее состояние блокчейна, и это то, что мы называем достижением консенсуса. Однако достижение консенсуса в отношении распределенной сети, в безопасной и доверительной форме, далеко не простая задача.
Так как распределенная сеть компьютерных узлов соглашается на решение, что если некоторые из узлов, теоретически потерпят неудачу или будут действовать нечестно? Это фундаментальный вопрос о проблеме так называемых византийских генералов, которая породила концепцию византийской толерантности.
Что такое Проблема Византийских Генералов?
В нескольких словах, Проблема Византийских Генералов была придумана в 1982 году, как логическая дилемма, которая иллюстрирует, как у группы Византийских Генералов могут возникать проблемы с коммуникацией, пытаясь согласиться на следующий шаг.
Дилемма предполагает, что у каждого генерала есть своя армия, и каждая группа находится в разных местах вокруг города, намереваясь атаковать ее. Генералам нужно согласиться либо на атаку, либо на отступление. Не имеет значения, нападают они или отступают, пока все генералы достигают консенсуса, т.е. принимают общее решение, чтобы согласованно его выполнить.
Поэтому мы можем рассмотреть следующие цели:
Каждый генерал должен решить: атаковать или отступать (да или нет);
После принятия решения его нельзя будет изменить;
Все генералы должны согласится и принять одно и то же решение, и синхронно выполнить его.
Вышеупомянутые коммуникационные проблемы, связаны с тем фактом, что один генерал может общаться с другими только посредством сообщений, которые отправляются курьером. Следовательно, главная Проблема Византийских Генералов заключается в том, что сообщения могут как-то задерживаться, теряться или быть уничтоженными.
Кроме того, даже если сообщение успешно доставлено, один или несколько генералов могут поступить (по какой-либо причине) злонамеренно и отправить мошенническое сообщение, чтобы сбить с толку других генералов, что приведет к общему сбою.
Если данную дилемму применить к контексту блокчейна, то каждый генерал представляет собой сетевой узел, и этим узлам необходимо достичь консенсуса относительно текущего состояния системы. Другими словами, большинство участников в распределенной сети должны согласиться и выполнить одно и то же действие, чтобы избежать полного отказа.
Поэтому единственным способом достижения консенсуса в этих типах распределенной системы, является наличие, по крайней мере ⅔ или более, надежных и честных сетевых узлов. Это означает, что если большая часть сети решает действовать злонамеренно, то система подвержена ошибкам и различным атакам (например, атака 51%).
Византийская Отказоустойчивость (BFT)
В нескольких словах Византийская Отказоустойчивость (BFT) является свойством системы, способной противостоять классу отказов, возникающих из-за Проблем Византийских Генералов. Это означает, что система BFT может продолжать работать, даже если некоторые из узлов не работают или действуют злонамеренно.
Существует более чем одно возможное решение проблемы Византийских Генералов и следовательно несколько способов построения системы BFT. Аналогичным образом, существуют различные подходы к блокчейну для достижения византийской отказоустойчивости, и это приводит нас к так называемым алгоритмам консенсуса.
Алгоритм Консенсуса Blockchain
Мы можем определить алгоритм консенсуса, как механизм, с помощью которого блокчейн сеть достигает консенсуса. Наиболее распространенными являются Proof of Work (PoW) и Proof of Stake (PoS). Но мы рассмотрим Биткойн в качестве примера.
В то время как протокол Bitcoin предписывает основные правила системы, алгоритм консенсуса PoW определяет, как эти правила будут соблюдаться для достижения консенсуса (например, во время проверки и подтверждения транзакций).
Хотя концепция Proof of Work старше самой криптовалюты, Сатоши Накамото разработал модифицированную версию, как алгоритм, который позволил создать Биткойн как систему BFT.
Обратите внимание, что алгоритм PoW не является на 100% толерантным к Византийским ошибкам, но из-за дорогостоящего процесса майнинга и основных криптографических методов, PoW зарекомендовала себя, как одна из самых безопасных и надежных для блокчейна. В этом смысле, алгоритм консенсуса Proof of Work разработанный Сатоши Накамото, многими рассматривается как одно из самых гениальных решений Византийских ошибок.
Заключение
Проблема Византийских генералов - это интригующая дилемма, которая в конечном итоге породила системы BPT, которые широко применяются в различных системах. Помимо индустрии блокчейн, несколько вариантов использования систем BFT включают в себя авиационную, космическую и ядерную энергетику.
В контексте криптовалют, эффективная сетевая коммуникация наряду с хорошим механизмом консенсуса, имеет жизненно важное значение для любой блокчейн экосистемы. Обеспечение безопасности этих систем является постоянные усилия, и существующим алгоритмам консенсуса еще предстоит преодолеть несколько барьеров (например, масштабируемость). Тем не менее, PoW и PoS - очень интересные подходы к BFT, и безусловно вдохновляет потенциально заинтересованные приложения, на внедрение широко распространенных инновационных технологий.