Византийская отказоустойчивость: различия между версиями

[досмотренная версия][досмотренная версия]
Нет описания правки
мНет описания правки
 
(не показаны 2 промежуточные версии этого же участника)
Строка 1: Строка 1:
{{#seo:
{{#seo:
                     |title= Византийская отказоустойчивость (BFT)
                     |title= Византийская отказоустойчивость —материал из Decimal Wiki
                     |titlemode= append  
                     |titlemode= append  
                     |keywords= Византийская отказоустойчивость (BFT)
                     |keywords= Byzantine fault tolerance, Византийская отказоустойчивость (BFT)
                     |description= Византийская отказоустойчивость (BFT)
                     |description= Византийская отказоустойчивость (BFT)
                     }}
                     }}
<div class="mikio-article-content">
'''«Византийская отказоустойчивость»''' (англ. ''Byzantine fault tolerance'') — свойство системы, способной противостоять классу [[отказ]]ов, возникающих из-за «проблем византийских генералов». Обладая «византийской отказоустойчивостью», система может продолжать работать, даже если некоторые из узлов не функционируют или действуют злонамеренно.


<div class="mikio-tags">
Участникам [[криптовалюта|криптовалютной сети]] необходимо регулярно согласовывать текущее состояние [[блокчейн]]а: это то, что мы называем достижением [[консенсус]]а. Но что если некоторые из узлов будут действовать нечестно? Это фундаментальный вопрос о так называемой «проблеме византийских генералов», которая породила концепцию «византийской толерантности» (BFT).


</div>
<span id="vizantijskaja_otkazoustojchivost_bft"></span>
= Византийская отказоустойчивость (BFT) =
<div class="level1">
'''«Византийская отказоустойчивость»''' (англ. Byzantine fault tolerance) — свойство системы, способной противостоять классу отказов, возникающих из-за «проблем византийских генералов». Обладая «византийской отказоустойчивостью», система может продолжать работать, даже если некоторые из узлов не функционируют или действуют злонамеренно.
Участникам криптовалютной сети необходимо регулярно согласовывать текущее состояние блокчейна: это то, что мы называем достижением [[commoninfo:consensus|консенсуса]] , но что если некоторые из узлов будут действовать нечестно? Это фундаментальный вопрос о так называемой «проблеме византийских генералов», которая породила концепцию «византийской толерантности» (BFT).
[[File:Wiki-zadacha_vizant_generalov.png|400px|class=mediacenter]]
</div>
<span id="istorija"></span>
== История ==
== История ==
 
[[Файл:Wiki-zadacha vizant generalov.png|400px|thumb|right|«Проблема византийских генералов»: варианты частных случаев]]
<div class="level2">
«Проблема византийских генералов» была придумана в 1982 году как логическая дилемма, которая иллюстрирует, как у группы из более чем двух человек, находящихся на большом расстоянии друг от друга, могут возникать проблемы с коммуникацией при попытке согласиться на следующий шаг.
 
«Проблема византийских генералов» была придумана в 1982 году как логическая дилемма, которая иллюстрирует, как у группы из более чем двух человек, находящихся на большом расстоянии друг от друга, могут возникать проблемы с коммуникацией при попытке согласиться на следующий шаг.


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


</div>
<span id="zadacha_vizantijskix_generalov_isxodnaja_formulirovka"></span>
== «Задача византийских генералов» (исходная формулировка) ==
== «Задача византийских генералов» (исходная формулировка) ==
 
[[w:Византия|Византия]]. Ночь перед великим сражением с противником. Византийская армия состоит из N легионов, каждым из которых командует свой генерал. Также у армии есть главнокомандующий, которому подчиняются генералы.
<div class="level2">
 
Византия. Ночь перед великим сражением с противником. Византийская армия состоит из N легионов, каждым из которых командует свой генерал. Также у армии есть главнокомандующий, которому подчиняются генералы.


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


Ночью каждый из генералов получает от главнокомандующего приказ, как стоит поступить в 10 часов утра (время одинаковое для всех и известно заранее). Варианты приказа — «атаковать противника» или «отступать».
Ночью каждый из генералов получает от главнокомандующего приказ, как стоит поступить в 10 часов утра (время одинаковое для всех и известно заранее). Варианты приказа — «атаковать противника» или «отступать».


'''Возможные исходы сражения:'''
'''Возможные исходы сражения:'''
# Если все верные генералы атакуют, Византия уничтожит противника (благоприятный исход).
# Если все верные генералы отступят, Византия сохранит свою армию (промежуточный исход).
# Если некоторые верные генералы атакуют, а некоторые — отступят, противник со временем по частям уничтожит всю армию Византии (неблагоприятный исход).


1. Если все верные генералы атакуют, Византия уничтожит противника (благоприятный исход). 2. Если все верные генералы отступят, Византия сохранит свою армию (промежуточный исход). 3. Если некоторые верные генералы атакуют, а некоторые — отступят, противник со временем по частям уничтожит всю армию Византии (неблагоприятный исход).
Также следует учитывать, что если главнокомандующий — предатель, то он может дать разным генералам противоположные приказы, чтобы обеспечить уничтожение армии. Следовательно, генералам надо учитывать такую возможность и не допускать несогласованных действий.
 
Также следует учитывать, что если главнокомандующий — предатель, то он может дать разным генералам противоположные приказы, чтобы обеспечить уничтожение армии. Следовательно, генералам надо учитывать такую возможность и не допускать несогласованных действий.


Если же каждый генерал будет действовать полностью независимо от других (например, сделает случайный выбор), то вероятность благоприятного исхода весьма низка.
Если же каждый генерал будет действовать полностью независимо от других (например, сделает случайный выбор), то вероятность благоприятного исхода весьма низка.
Строка 57: Строка 33:
Поэтому генералы нуждаются в обмене информацией между собой, чтобы прийти к единому решению.
Поэтому генералы нуждаются в обмене информацией между собой, чтобы прийти к единому решению.


== Применение в блокчейне ==
В контексте блокчейна «генералы» представляют собой [[нода|сетевые узлы]], которым необходимо достичь консенсуса относительно текущего состояния системы. Другими словами — большинство участников в распределённой сети должны согласиться и выполнить одно и то же действие, чтобы избежать полного отказа. Поэтому единственным способом достижения консенсуса в этих типах распределённой системы является наличие (по крайней мере, ⅔ или более) надёжных и честных сетевых узлов. Это означает, что если бо́льшая часть сети решает действовать злонамеренно, то система подвержена ошибке (например, атака 51 %).


</div>
<span id="primenenie_v_blokchejne"></span>
=== Применение в блокчейне ===
<div class="level3">
В контексте блокчейна генералы представляют собой сетевые узлы, и им необходимо достичь консенсуса относительно текущего состояния системы. Другими словами — большинство участников в распределённой сети должны согласиться и выполнить одно и то же действие, чтобы избежать полного отказа. Поэтому единственным способом достижения консенсуса в этих типах распределённой системы является наличие (по крайней мере, ⅔ или более) надёжных и честных сетевых узлов. Это означает, что если большая часть сети решает действовать злонамеренно, то система подвержена ошибке (например, атака 51%).
</div>
<span id="vyvody"></span>
== Выводы ==
== Выводы ==
Если «византийская отказоустойчивость» отсутствует в сети, то одноранговый узел может самостоятельно создавать и подтверждать ложные транзакции, тем самым дискредитируя всю систему. Так как в блокчейне нет контролирующего органа, который мог бы взять на себя ответственность подтвердить или отменить те или иные действия для исправления или предотвращения ущерба, то [[децентрализация]] сыграла бы негативную роль.


<div class="level2">
«Проблема византийских генералов» — это дилемма, которая породила системы BPT, и теперь они широко применяются в различных системах. Помимо индустрии блокчейн, это авиационная и космическая сферы, а также ядерная энергетика.
 
Если «византийская отказоустойчивость» отсутствует в сети, то одноранговый узел может самостоятельно создавать и подтверждать ложные транзакции, тем самым дискредитируя всю систему. Так как в блокчейне нет контролирующего органа, который мог бы взять на себя ответственность подтвердить или отменить те или иные действия для исправления или предотвращения ущерба, то децентрализация сыграла бы негативную роль.
 
«Проблема византийских генералов» — это дилемма, которая породила системы BPT, и теперь они широко применяются в различных системах. Помимо индустрии блокчейн, это авиационная и космическая сферы, а также ядерная энергетика.
 
«Византийскую отказоустойчивость» изучают многие криптовалютные стартапы — алгоритмы модернизируют и успешно интегрируют в собственные распределенные системы.


Decimal, Hyperledger, Cosmos Network, Minter, Zilliqa — все эти и не только проекты используют «византийскую отказоустойчивость» в качестве основного компонента своей инфраструктуры.
«Византийскую отказоустойчивость» изучают многие криптовалютные стартапы — алгоритмы модернизируют и успешно интегрируют в собственные распределенные системы.


[[Decimal]], [[w:Hyperledger|Hyperledger]], [[Cosmos Network]], [[Minter]], [[Zilliqa]] — все эти и не только проекты используют «византийскую отказоустойчивость» в качестве основного компонента своей инфраструктуры.


</div>
<span id="zakljuchenie"></span>
== Заключение ==
== Заключение ==
Эффективная коммуникация узлов сети и хороший механизм консенсуса имеют жизненно важное значение для любой блокчейн-экосистемы. Существующим алгоритмам консенсуса ещё предстоит преодолеть несколько барьеров (например, масштабируемость). Тем не менее PoW и PoS — очень интересные и рабочие подходы к BFT.


<div class="level2">
[[Категория:Терминология]]
 
[[Категория:Технология блокчейн]]
Эффективная коммуникация узлов сети и хороший механизм консенсуса имеют жизненно важное значение для любой блокчейн-экосистемы. Существующим алгоритмам консенсуса ещё предстоит преодолеть несколько барьеров (например, масштабируемость). Тем не менее PoW и PoS — очень интересные и рабочие подходы к BFT.
 
 
</div>
<div style="clear:both">
 
 
 
</div>
 
</div>
[[Category:Commoninfo]]

Текущая версия от 11:57, 14 апреля 2024

«Византийская отказоустойчивость» (англ. Byzantine fault tolerance) — свойство системы, способной противостоять классу отказов, возникающих из-за «проблем византийских генералов». Обладая «византийской отказоустойчивостью», система может продолжать работать, даже если некоторые из узлов не функционируют или действуют злонамеренно.

Участникам криптовалютной сети необходимо регулярно согласовывать текущее состояние блокчейна: это то, что мы называем достижением консенсуса. Но что если некоторые из узлов будут действовать нечестно? Это фундаментальный вопрос о так называемой «проблеме византийских генералов», которая породила концепцию «византийской толерантности» (BFT).

История

 
«Проблема византийских генералов»: варианты частных случаев

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

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

«Задача византийских генералов» (исходная формулировка)

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

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

Ночью каждый из генералов получает от главнокомандующего приказ, как стоит поступить в 10 часов утра (время одинаковое для всех и известно заранее). Варианты приказа — «атаковать противника» или «отступать».

Возможные исходы сражения:

  1. Если все верные генералы атакуют, Византия уничтожит противника (благоприятный исход).
  2. Если все верные генералы отступят, Византия сохранит свою армию (промежуточный исход).
  3. Если некоторые верные генералы атакуют, а некоторые — отступят, противник со временем по частям уничтожит всю армию Византии (неблагоприятный исход).

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

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

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

Применение в блокчейне

В контексте блокчейна «генералы» представляют собой сетевые узлы, которым необходимо достичь консенсуса относительно текущего состояния системы. Другими словами — большинство участников в распределённой сети должны согласиться и выполнить одно и то же действие, чтобы избежать полного отказа. Поэтому единственным способом достижения консенсуса в этих типах распределённой системы является наличие (по крайней мере, ⅔ или более) надёжных и честных сетевых узлов. Это означает, что если бо́льшая часть сети решает действовать злонамеренно, то система подвержена ошибке (например, атака 51 %).

Выводы

Если «византийская отказоустойчивость» отсутствует в сети, то одноранговый узел может самостоятельно создавать и подтверждать ложные транзакции, тем самым дискредитируя всю систему. Так как в блокчейне нет контролирующего органа, который мог бы взять на себя ответственность подтвердить или отменить те или иные действия для исправления или предотвращения ущерба, то децентрализация сыграла бы негативную роль.

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

«Византийскую отказоустойчивость» изучают многие криптовалютные стартапы — алгоритмы модернизируют и успешно интегрируют в собственные распределенные системы.

Decimal, Hyperledger, Cosmos Network, Minter, Zilliqa — все эти и не только проекты используют «византийскую отказоустойчивость» в качестве основного компонента своей инфраструктуры.

Заключение

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