Byzantine fault tolerance: Difference between revisions

From Decimal Wiki
Jump to navigation Jump to search
[checked revision][checked revision]
No edit summary
No edit summary
Line 1: Line 1:
{{#seo:
{{#seo:
                     |title= Византийская отказоустойчивость (BFT)
                     |title= Byzantine Fault Tolerance (BFT)
                     |titlemode= append  
                     |titlemode= append  
                     |keywords= Византийская отказоустойчивость (BFT)
                     |keywords= Byzantine Fault Tolerance (BFT)
                     |description= Византийская отказоустойчивость (BFT)
                     |description= Byzantine Fault Tolerance (BFT)
                     }}
                     }}
<div class="mikio-article-content">
<div class="mikio-article-content">
 
<div class="mikio-tags">
<div class="mikio-tags">




</div>
</div>
<span id="vizantijskaja_otkazoustojchivost_bft"></span>
<span id="vizantijskaja_otkazoustojchivost_bft"></span>
= Византийская отказоустойчивость (BFT) =
= Byzantine Fault Tolerance (BFT) =
 
<div class="level1">
<div class="level1">
 
'''«Византийская отказоустойчивость»''' (англ. Byzantine fault tolerance) — свойство системы, способной противостоять классу отказов, возникающих из-за «проблем византийских генералов». Обладая «византийской отказоустойчивостью», система может продолжать работать, даже если некоторые из узлов не функционируют или действуют злонамеренно.
'''Byzantine fault tolerance''' is a property of a system capable of resisting a class of failures arising from the "problems of Byzantine generals". Having "Byzantine fault tolerance", the system can continue to work even if some of the nodes do not function or act maliciously.
 
Участникам криптовалютной сети необходимо регулярно согласовывать текущее состояние блокчейна: это то, что мы называем достижением [[commoninfo:consensus|консенсуса]] , но что если некоторые из узлов будут действовать нечестно? Это фундаментальный вопрос о так называемой «проблеме византийских генералов», которая породила концепцию «византийской толерантности» (BFT).
The participants of the cryptocurrency network need to regularly coordinate the current state of the blockchain: this is what we call achieving [[commoninfo:consensus]], but what if some of the nodes act dishonestly? This is a fundamental question about the so-called "problem of Byzantine generals", which gave rise to the concept of "Byzantine tolerance" (BFT).
 
[[File:Wiki-zadacha_vizant_generalov.png|400px|class=mediacenter]]  
[[File:Wiki-zadacha_vizant_generalov.png|400px|class=mediacenter]]  
 
 
</div>
</div>
<span id="istorija"></span>
<span id="istorija"></span>
== История ==
== History ==
 
<div class="level2">
<div class="level2">
 
«Проблема византийских генералов» была придумана в 1982 году как логическая дилемма, которая иллюстрирует, как у группы из более чем двух человек, находящихся на большом расстоянии друг от друга, могут возникать проблемы с коммуникацией при попытке согласиться на следующий шаг.
The "Byzantine Generals Problem" was coined in 1982 as a logical dilemma that illustrates how a group of more than two people at a great distance from each other can have communication problems when trying to agree on the next step.
 
Дилемма предполагает, что у каждого генерала есть своя армия и каждая группа находится в разных местах вокруг города, намереваясь атаковать его. Генералам нужно согласиться либо на атаку, либо на отступление. Главная проблема заключается в том, что сообщения могут как-то задерживаться, теряться или быть уничтоженными. Кроме того, даже если информация успешно доставлена, один или несколько генералов могут поступить (по какой-либо причине) злонамеренно и отправить мошенническое сообщение, чтобы сбить с толку других, что приведёт к общему сбою.
The dilemma assumes that each general has his own army and each group is in different places around the city, intending to attack it. The generals need to agree either to attack or to retreat. The main problem is that messages can somehow be delayed, lost or destroyed. In addition, even if the information is successfully delivered, one or more generals may act (for whatever reason) maliciously and send a fraudulent message to confuse others, which will lead to a general failure.
 
 
</div>
</div>
<span id="zadacha_vizantijskix_generalov_isxodnaja_formulirovka"></span>
<span id="zadacha_vizantijskix_generalov_isxodnaja_formulirovka"></span>
== «Задача византийских генералов» (исходная формулировка) ==
== "The task of the Byzantine generals" (original wording) ==
 
<div class="level2">
<div class="level2">
 
Византия. Ночь перед великим сражением с противником. Византийская армия состоит из N легионов, каждым из которых командует свой генерал. Также у армии есть главнокомандующий, которому подчиняются генералы.
Byzantium. The night before the great battle with the enemy. The Byzantine army consists of N legions, each of which is commanded by its own general. The army also has a commander-in-chief, to whom the generals report.
 
В то же время империя находится в упадке, и любой из генералов и даже главнокомандующий могут быть предателями Византии, заинтересованными в её поражении.
At the same time, the empire is in decline, and any of the generals and even the commander-in-chief may be traitors to Byzantium, interested in its defeat.
 
Ночью каждый из генералов получает от главнокомандующего приказ, как стоит поступить в 10 часов утра (время одинаковое для всех и известно заранее). Варианты приказа — «атаковать противника» или «отступать».
At night, each of the generals receives an order from the commander-in-chief, what to do at 10 o'clock in the morning (the time is the same for everyone and is known in advance). Variants of the order are "attack the enemy" or "retreat".
 
'''Возможные исходы сражения:'''
'''Possible outcomes of the battle:'''
 
1. Если все верные генералы атакуют, Византия уничтожит противника (благоприятный исход). 2. Если все верные генералы отступят, Византия сохранит свою армию (промежуточный исход). 3. Если некоторые верные генералы атакуют, а некоторые — отступят, противник со временем по частям уничтожит всю армию Византии (неблагоприятный исход).
1. If all the loyal generals attack, Byzantium will destroy the enemy (a favorable outcome). 2. If all the loyal generals retreat, Byzantium will retain its army (intermediate outcome). 3. If some loyal generals attack and some retreat, the enemy will eventually destroy the entire Byzantine army in parts (an unfavorable outcome).
 
Также следует учитывать, что если главнокомандующий — предатель, то он может дать разным генералам противоположные приказы, чтобы обеспечить уничтожение армии. Следовательно, генералам надо учитывать такую возможность и не допускать несогласованных действий.
It should also be borne in mind that if the commander—in-chief is a traitor, then he can give different generals opposing orders to ensure the destruction of the army. Therefore, the generals need to take into account this possibility and prevent uncoordinated actions.
 
Если же каждый генерал будет действовать полностью независимо от других (например, сделает случайный выбор), то вероятность благоприятного исхода весьма низка.
If each general acts completely independently of the others (for example, makes a random choice), then the probability of a favorable outcome is very low.
 
Поэтому генералы нуждаются в обмене информацией между собой, чтобы прийти к единому решению.
Therefore, the generals need to exchange information among themselves in order to come to a common decision.
 
 
</div>
</div>
<span id="primenenie_v_blokchejne"></span>
<span id="primenenie_v_blokchejne"></span>
=== Применение в блокчейне ===
=== Application in blockchain ===
 
<div class="level3">
<div class="level3">
 
В контексте блокчейна генералы представляют собой сетевые узлы, и им необходимо достичь консенсуса относительно текущего состояния системы. Другими словами — большинство участников в распределённой сети должны согласиться и выполнить одно и то же действие, чтобы избежать полного отказа. Поэтому единственным способом достижения консенсуса в этих типах распределённой системы является наличие (по крайней мере, или более) надёжных и честных сетевых узлов. Это означает, что если большая часть сети решает действовать злонамеренно, то система подвержена ошибке (например, атака 51%).
In the context of blockchain, generals are network nodes, and they need to reach consensus on the current state of the system. In other words, the majority of participants in a distributed network must agree and perform the same action in order to avoid a complete failure. Therefore, the only way to achieve consensus in these types of distributed system is to have (at least or more) reliable and honest network nodes. This means that if a large part of the network decides to act maliciously, then the system is prone to error (for example, a 51% attack).
 
 
</div>
</div>
<span id="vyvody"></span>
<span id="vyvody"></span>
== Выводы ==
== Conclusions ==
 
<div class="level2">
<div class="level2">
 
Если «византийская отказоустойчивость» отсутствует в сети, то одноранговый узел может самостоятельно создавать и подтверждать ложные транзакции, тем самым дискредитируя всю систему. Так как в блокчейне нет контролирующего органа, который мог бы взять на себя ответственность подтвердить или отменить те или иные действия для исправления или предотвращения ущерба, то децентрализация сыграла бы негативную роль.
If there is no "Byzantine fault tolerance" in the network, then a peer can independently create and confirm false transactions, thereby discrediting the entire system. Since there is no regulatory body in the blockchain that could take responsibility to confirm or cancel certain actions to correct or prevent damage, decentralization would play a negative role.
 
«Проблема византийских генералов» — это дилемма, которая породила системы BPT, и теперь они широко применяются в различных системах. Помимо индустрии блокчейн, это авиационная и космическая сферы, а также ядерная энергетика.
The "Byzantine Generals problem" is a dilemma that gave rise to BPT systems, and now they are widely used in various systems. In addition to the blockchain industry, these are the aviation and space spheres, as well as nuclear energy.
 
«Византийскую отказоустойчивость» изучают многие криптовалютные стартапы алгоритмы модернизируют и успешно интегрируют в собственные распределенные системы.
"Byzantine fault tolerance" is being studied by many cryptocurrency startups algorithms are being upgraded and successfully integrated into their own distributed systems.
 
Decimal, Hyperledger, Cosmos Network, Minter, Zilliqa — все эти и не только проекты используют «византийскую отказоустойчивость» в качестве основного компонента своей инфраструктуры.
Decimal, Hyperledger, Cosmos Network, Minter, Zilliqa — all these and not only projects use "Byzantine fault tolerance" as the main component of their infrastructure.
 
 
</div>
</div>
<span id="zakljuchenie"></span>
<span id="zakljuchenie"></span>
== Заключение ==
== Conclusion ==
 
<div class="level2">
<div class="level2">
 
Эффективная коммуникация узлов сети и хороший механизм консенсуса имеют жизненно важное значение для любой блокчейн-экосистемы. Существующим алгоритмам консенсуса ещё предстоит преодолеть несколько барьеров (например, масштабируемость). Тем не менее PoW и PoS — очень интересные и рабочие подходы к BFT.
Effective communication of network nodes and a good consensus mechanism are vital for any blockchain ecosystem. Existing consensus algorithms have yet to overcome several barriers (e.g. scalability). Nevertheless, PoW and PoS are very interesting and working approaches to BFT.
 
 
</div>
</div>
<div style="clear:both">
<div style="clear:both">




</div>
</div>
 
</div>
</div>
[[commoninfo:consensus|консенсуса]]
[[File:Wiki-zadacha_vizant_generalov.png|400px|class=mediacenter]]
  [[Category:Commoninfo]]
  [[Category:Commoninfo]]

Revision as of 05:54, 22 June 2022


Byzantine Fault Tolerance (BFT)

Byzantine fault tolerance is a property of a system capable of resisting a class of failures arising from the "problems of Byzantine generals". Having "Byzantine fault tolerance", the system can continue to work even if some of the nodes do not function or act maliciously.

The participants of the cryptocurrency network need to regularly coordinate the current state of the blockchain: this is what we call achieving commoninfo:consensus, but what if some of the nodes act dishonestly? This is a fundamental question about the so-called "problem of Byzantine generals", which gave rise to the concept of "Byzantine tolerance" (BFT).

History

The "Byzantine Generals Problem" was coined in 1982 as a logical dilemma that illustrates how a group of more than two people at a great distance from each other can have communication problems when trying to agree on the next step.

The dilemma assumes that each general has his own army and each group is in different places around the city, intending to attack it. The generals need to agree either to attack or to retreat. The main problem is that messages can somehow be delayed, lost or destroyed. In addition, even if the information is successfully delivered, one or more generals may act (for whatever reason) maliciously and send a fraudulent message to confuse others, which will lead to a general failure.

"The task of the Byzantine generals" (original wording)

Byzantium. The night before the great battle with the enemy. The Byzantine army consists of N legions, each of which is commanded by its own general. The army also has a commander-in-chief, to whom the generals report.

At the same time, the empire is in decline, and any of the generals and even the commander-in-chief may be traitors to Byzantium, interested in its defeat.

At night, each of the generals receives an order from the commander-in-chief, what to do at 10 o'clock in the morning (the time is the same for everyone and is known in advance). Variants of the order are "attack the enemy" or "retreat".

Possible outcomes of the battle:

1. If all the loyal generals attack, Byzantium will destroy the enemy (a favorable outcome). 2. If all the loyal generals retreat, Byzantium will retain its army (intermediate outcome). 3. If some loyal generals attack and some retreat, the enemy will eventually destroy the entire Byzantine army in parts (an unfavorable outcome).

It should also be borne in mind that if the commander—in-chief is a traitor, then he can give different generals opposing orders to ensure the destruction of the army. Therefore, the generals need to take into account this possibility and prevent uncoordinated actions.

If each general acts completely independently of the others (for example, makes a random choice), then the probability of a favorable outcome is very low.

Therefore, the generals need to exchange information among themselves in order to come to a common decision.

Application in blockchain

In the context of blockchain, generals are network nodes, and they need to reach consensus on the current state of the system. In other words, the majority of participants in a distributed network must agree and perform the same action in order to avoid a complete failure. Therefore, the only way to achieve consensus in these types of distributed system is to have (at least ⅔ or more) reliable and honest network nodes. This means that if a large part of the network decides to act maliciously, then the system is prone to error (for example, a 51% attack).

Conclusions

If there is no "Byzantine fault tolerance" in the network, then a peer can independently create and confirm false transactions, thereby discrediting the entire system. Since there is no regulatory body in the blockchain that could take responsibility to confirm or cancel certain actions to correct or prevent damage, decentralization would play a negative role.

The "Byzantine Generals problem" is a dilemma that gave rise to BPT systems, and now they are widely used in various systems. In addition to the blockchain industry, these are the aviation and space spheres, as well as nuclear energy.

"Byzantine fault tolerance" is being studied by many cryptocurrency startups — algorithms are being upgraded and successfully integrated into their own distributed systems.

Decimal, Hyperledger, Cosmos Network, Minter, Zilliqa — all these and not only projects use "Byzantine fault tolerance" as the main component of their infrastructure.

Conclusion

Effective communication of network nodes and a good consensus mechanism are vital for any blockchain ecosystem. Existing consensus algorithms have yet to overcome several barriers (e.g. scalability). Nevertheless, PoW and PoS are very interesting and working approaches to BFT.