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

Один из терминов, который довольно часто употребляется, - "механизм консенсуса BFT". BFT означает Byzantine Fault Tolerance, и он представляет собой теоретическую проблему в компьютерных системах, существовавшую задолго до появления Биткойна.

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

Проблема византийских генералов объяснена

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

Впервые эта проблема была признана в работе 1982 года под названием "Проблема византийских генералов" Лесли Лэмпорта, Роберта Шостака и Маршалла Пиза. В статье говорится следующее:

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

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

Источник: Википедия

Поэтому генералы должны найти способ гарантировать это:

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

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

По сути, византийская отказоустойчивость - это условие, которое не позволяет системе пострадать от ненадежных (нелояльных) участников.

Решение проблемы византийского генерала

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

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

Большинство блокчейнов, работающих по принципу доказательства доли, могут допускать неисправность до одной трети своих узлов, что дает свободу действий по правилу 3f+1, где F - это количество нелояльных узлов, а формула дает количество лояльных узлов, которые должны быть у системы.

Например, в системе с 4 узлами только один из них может быть неисправен, чтобы соответствовать критерию (3f+1).

В феврале 1999 года Мигель Кастро и Барбара Лисков из Лаборатории компьютерных наук Массачусетского технологического института (MIT) опубликовали работу, в которой представили решение этой проблемы с помощью так называемой практической византийской отказоустойчивости.

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

Технология блокчейн представляет собой несколько решений проблемы византийских генералов. Различия обусловлены назначенным алгоритмом консенсуса и их подходом к BFT, но и Proof-of-Work, и Proof-of-Stake обеспечивают жизнеспособные решения.

Как биткойн решает проблему византийских генералов?

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

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

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

Биткойн установил четкие и окончательно объективные правила для блокчейна, которым он должен следовать, чтобы преодолеть византийскую проблему генералов. Участник сети должен опубликовать доказательство того, что он выполнил работу, чтобы иметь возможность добавить информацию в блокчейн (отсюда - доказательство работы). Это влечет за собой высокую цену для участника и лишает его стимула делиться ошибочной информацией, поскольку она будет опровергнута другими участниками сети.

Все правила четкие и объективные, что означает невозможность подтасовки информации.

Как Proof-of-Stake решает проблему византийских генералов?

Сети, управляемые алгоритмом консенсуса proof-of-stake, не зависят от майнинга - они зависят от ставок. Чтобы стать валидатором сети, пользователь должен сначала внести средства в систему. Тот, кто владеет большей долей, может подтвердить больше блоков и получить большее вознаграждение. Те, кто пытается подделать информацию, рискуют потерять свою ставку.

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

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

Источник