Автодосматривающие, Бюрократы, Патрулирующие, Администраторы интерфейса, Project members, Управляющие подписками push-уведомлений, Выверяющие, Скрывающие, Администраторы, Редакторы виджетов
5805
правок
| [непроверенная версия] | [досмотренная версия] |
м (CryptoUser переименовал страницу Commoninfo:vizantyfaulttolerance в Византийская отказоустойчивость) |
Нет описания правки |
||
| Строка 1: | Строка 1: | ||
{{#seo: | {{#seo: | ||
|title= Византийская отказоустойчивость | |title= Византийская отказоустойчивость —материал из Decimal Wiki | ||
|titlemode= append | |titlemode= append | ||
|keywords= Византийская отказоустойчивость (BFT) | |keywords= Byzantine fault tolerance, Византийская отказоустойчивость (BFT) | ||
|description= Византийская отказоустойчивость (BFT) | |description= Византийская отказоустойчивость (BFT) | ||
}} | }} | ||
'''«Византийская отказоустойчивость»''' (англ. ''Byzantine fault tolerance'') — свойство системы, способной противостоять классу [[отказ]]ов, возникающих из-за «проблем византийских генералов». Обладая «византийской отказоустойчивостью», система может продолжать работать, даже если некоторые из узлов не функционируют или действуют злонамеренно. | |||
Участникам [[криптовалюта|криптовалютной сети]] необходимо регулярно согласовывать текущее состояние [[блокчейн]]а: это то, что мы называем достижением [[консенсус]]а. Но что если некоторые из узлов будут действовать нечестно? Это фундаментальный вопрос о так называемой «проблеме византийских генералов», которая породила концепцию «византийской толерантности» (BFT). | |||
== История == | == История == | ||
[[Файл:Wiki-zadacha vizant generalov.png|400px|thumb|right|«Проблема византийских генералов»: варианты частных случаев]] | |||
«Проблема византийских генералов» была придумана в 1982 году как логическая дилемма, которая иллюстрирует, как у группы из более чем двух человек, находящихся на большом расстоянии друг от друга, могут возникать проблемы с коммуникацией при попытке согласиться на следующий шаг. | |||
«Проблема византийских генералов» была придумана в | |||
Дилемма предполагает, что у каждого генерала есть своя армия и каждая группа находится в разных местах вокруг города, намереваясь атаковать его. Генералам нужно согласиться либо на атаку, либо на отступление. Главная проблема заключается в том, что сообщения могут как-то задерживаться, теряться или быть уничтоженными. Кроме того, даже если информация успешно доставлена, один или несколько генералов могут поступить (по какой-либо причине) злонамеренно и отправить мошенническое сообщение, чтобы сбить с толку других, что приведёт к общему сбою. | Дилемма предполагает, что у каждого генерала есть своя армия и каждая группа находится в разных местах вокруг города, намереваясь атаковать его. Генералам нужно согласиться либо на атаку, либо на отступление. Главная проблема заключается в том, что сообщения могут как-то задерживаться, теряться или быть уничтоженными. Кроме того, даже если информация успешно доставлена, один или несколько генералов могут поступить (по какой-либо причине) злонамеренно и отправить мошенническое сообщение, чтобы сбить с толку других, что приведёт к общему сбою. | ||
== «Задача византийских генералов» (исходная формулировка) == | == «Задача византийских генералов» (исходная формулировка) == | ||
[[w:Византия|Византия]]. Ночь перед великим сражением с противником. Византийская армия состоит из N легионов, каждым из которых командует свой генерал. Также у армии есть главнокомандующий, которому подчиняются генералы. | |||
Византия. Ночь перед великим сражением с противником. Византийская армия состоит из N легионов, каждым из которых командует свой генерал. Также у армии есть главнокомандующий, которому подчиняются генералы. | |||
В то же время империя находится в упадке, и любой из генералов и даже главнокомандующий могут быть предателями Византии, заинтересованными в её поражении. | В то же время империя находится в упадке, и любой из генералов и даже главнокомандующий могут быть предателями Византии, заинтересованными в её поражении. | ||
Ночью каждый из генералов получает от главнокомандующего приказ, как стоит поступить в 10 часов утра (время одинаковое для всех и известно заранее). Варианты | Ночью каждый из генералов получает от главнокомандующего приказ, как стоит поступить в 10 часов утра (время одинаковое для всех и известно заранее). Варианты приказа — «атаковать противника» или «отступать». | ||
'''Возможные исходы сражения:''' | '''Возможные исходы сражения:''' | ||
# Если все верные генералы атакуют, Византия уничтожит противника (благоприятный исход). | |||
# Если все верные генералы отступят, Византия сохранит свою армию (промежуточный исход). | |||
# Если некоторые верные генералы атакуют, а некоторые — отступят, противник со временем по частям уничтожит всю армию Византии (неблагоприятный исход). | |||
Также следует учитывать, что если главнокомандующий — предатель, то он может дать разным генералам противоположные приказы, чтобы обеспечить уничтожение армии. Следовательно, генералам надо учитывать такую возможность и не допускать несогласованных действий. | |||
Также следует учитывать, что если | |||
Если же каждый генерал будет действовать полностью независимо от других (например, сделает случайный выбор), то вероятность благоприятного исхода весьма низка. | Если же каждый генерал будет действовать полностью независимо от других (например, сделает случайный выбор), то вероятность благоприятного исхода весьма низка. | ||
| Строка 57: | Строка 34: | ||
Поэтому генералы нуждаются в обмене информацией между собой, чтобы прийти к единому решению. | Поэтому генералы нуждаются в обмене информацией между собой, чтобы прийти к единому решению. | ||
== Применение в блокчейне == | |||
В контексте блокчейна «генералы» представляют собой [[нода|сетевые узлы]], которым необходимо достичь консенсуса относительно текущего состояния системы. Другими словами — большинство участников в распределённой сети должны согласиться и выполнить одно и то же действие, чтобы избежать полного отказа. Поэтому единственным способом достижения консенсуса в этих типах распределённой системы является наличие (по крайней мере, ⅔ или более) надёжных и честных сетевых узлов. Это означает, что если бо́льшая часть сети решает действовать злонамеренно, то система подвержена ошибке (например, атака 51 %). | |||
== Выводы == | == Выводы == | ||
Если «византийская отказоустойчивость» отсутствует в сети, то одноранговый узел может самостоятельно создавать и подтверждать ложные транзакции, тем самым дискредитируя всю систему. Так как в блокчейне нет контролирующего органа, который мог бы взять на себя ответственность подтвердить или отменить те или иные действия для исправления или предотвращения ущерба, то [[децентрализация]] сыграла бы негативную роль. | |||
«Проблема византийских генералов» — это дилемма, которая породила системы BPT, и теперь они широко применяются в различных системах. Помимо индустрии блокчейн, это авиационная и космическая сферы, а также ядерная энергетика. | |||
«Византийскую отказоустойчивость» изучают многие криптовалютные стартапы — алгоритмы модернизируют и успешно интегрируют в собственные распределенные системы. | |||
[[Decimal]], [[w:Hyperledger|Hyperledger]], [[Cosmos Network]], [[Minter]], [[Zilliqa]] — все эти и не только проекты используют «византийскую отказоустойчивость» в качестве основного компонента своей инфраструктуры. | |||
== Заключение == | == Заключение == | ||
Эффективная коммуникация узлов сети и хороший механизм консенсуса имеют жизненно важное значение для любой блокчейн-экосистемы. Существующим алгоритмам консенсуса ещё предстоит преодолеть несколько барьеров (например, масштабируемость). Тем не менее PoW и PoS — очень интересные и рабочие подходы к BFT. | |||
[[Категория:Терминология]] | |||
[[Категория:Технология блокчейн]] | |||