Byzantine generals problem blockchain wikipedia


A blockchain[1] [2] [3] originally block chain[4] [5] byzantine generals problem blockchain wikipedia a continuously growing list of recordscalled blockswhich are linked and secured using cryptography. It is "an open, distributed ledger that can record transactions between two parties efficiently and in a verifiable and permanent way". Once recorded, the data in any given block cannot be altered retroactively without the alteration of all subsequent blocks, which requires collusion of the network majority.

Blockchains are secure by design and exemplify a distributed computing system with high Byzantine fault tolerance. Decentralized consensus has therefore been achieved with a blockchain. Blockchain was invented by Satoshi Nakamoto in for use in the cryptocurrency bitcoinas its public transaction ledger. The bitcoin design has been the inspiration for byzantine generals problem blockchain wikipedia applications.

The first work on a cryptographically secured chain of blocks was described in by Stuart Haber and W. InBayer, Haber and Stornetta incorporated Merkle trees to the design, which improved its efficiency by byzantine generals problem blockchain wikipedia several documents to be collected into one block.

The first blockchain was conceptualized by a person or group of people known as Satoshi Nakamoto in It was implemented the following year by Nakamoto as a core component of the cryptocurrency bitcoin, where it serves as the public ledger for all transactions on the network.

The words block and chain were used separately in Satoshi Nakamoto's original paper, but were eventually popularized as a single word, blockchain, by The term blockchain 2. Second-generation blockchain technology makes it possible to store an individual's "persistent digital Byzantine generals problem blockchain wikipedia and persona" and provides an avenue to help solve the problem of social inequality by "potentially changing the way wealth is distributed".

Inthe central securities depository of the Russian Federation NSD announced a pilot project, based on the Nxt blockchain 2. A blockchain is byzantine generals problem blockchain wikipedia decentralized, distributed and public digital ledger that is used to record transactions across many computers so that the record cannot be altered retroactively without the alteration of all subsequent blocks and the collusion of the network.

They are authenticated by mass collaboration powered by collective self-interests. The use of a blockchain removes the characteristic of infinite reproducibility from a digital asset. It confirms that each unit of value was transferred only once, solving the long-standing problem of double spending.

Blockchains have been described as a value -exchange protocol. Blocks hold batches of valid transactions that are hashed and encoded into a Merkle tree. The linked blocks form a chain. Sometimes separate blocks can be byzantine generals problem blockchain wikipedia concurrently, creating a temporary fork. In addition to a secure hash-based history, any blockchain has a specified algorithm for scoring different versions of the history so that one with a higher value can be selected over others.

Blocks not selected for inclusion in the chain are called orphan blocks. They keep only the highest-scoring version of the database known to them. Whenever a peer receives a higher-scoring version usually the old version with a single new block added they extend or overwrite their own database and retransmit the improvement to their peers. There is never an absolute guarantee that any particular entry will remain in the best version of the history forever. Because blockchains are typically built to add the score of new blocks onto old blocks and because there are incentives to work only on extending with new blocks rather than overwriting old blocks, the probability of an entry becoming superseded goes down exponentially [37] as more blocks are built on top of it, eventually becoming very low.

There are a number of methods that can be used to demonstrate a sufficient level of computation. Within a blockchain the computation is carried out redundantly rather than in the traditional segregated and parallel manner.

The block time is the average time it takes for the network to generate one extra block in the blockchain. In cryptocurrency, this is practically when the money transaction takes place, so a shorter block time means faster transactions. The block time for Ethereum is set to between 14 and 15 seconds, byzantine generals problem blockchain wikipedia for bitcoin it is 10 minutes. A hard fork is a rule change such that the software validating according to the old rules will see the blocks produced according to the new rules as invalid.

In case of a hard fork, all nodes meant to work in accordance with the new rules need to upgrade their software. If one group of nodes continues to use the old software while the other nodes use the new software, a split can occur.

For example, Ethereum has hard-forked to "make whole" the investors in The DAOwhich had been hacked by exploiting a vulnerability in its code. In the Nxt community was asked to consider a hard fork that would have led to a rollback of the blockchain records to mitigate the effects of a theft of 50 million NXT from a major cryptocurrency exchange.

The hard fork proposal was rejected, and some of the funds were recovered after negotiations and ransom payment. Alternatively, to prevent a permanent split, a majority of nodes using the new software may byzantine generals problem blockchain wikipedia to the old rules, as was the case of bitcoin split on 12 March By storing data across its peer-to-peer network, the blockchain eliminates a number of risks that come with data being held centrally. Peer-to-peer blockchain networks lack centralized points of vulnerability that computer crackers can exploit; likewise, it has no central point of failure.

Blockchain security methods include the use of public-key cryptography. Value tokens sent across the network are recorded as belonging to that address. A private key is like a password that gives its owner access to their digital assets or the means to otherwise interact with the various capabilities that blockchains now support. Data stored on the blockchain is generally considered incorruptible.

While centralized data is more easily controlled, information and data manipulation are possible. By decentralizing data on an accessible ledger, public blockchains make block-level data transparent to everyone involved. Every node in a decentralized system has a copy of the blockchain. Data quality is maintained by massive database replication [9] and computational trust.

No centralized "official" copy exists and no user is "trusted" more than any other. Messages are delivered on a best-effort basis. Mining nodes validate transactions, [36] add them to the block they are building, and then broadcast the completed block to other nodes. Open blockchains are more user-friendly than some traditional ownership records, byzantine generals problem blockchain wikipedia, while open to the public, still require physical access to view.

Because all early blockchains were permissionless, controversy has arisen over the blockchain definition. An issue in this ongoing debate is whether a private system with verifiers tasked and authorized permissioned by a central authority should be considered a blockchain.

These blockchains serve as a distributed version of multiversion concurrency control MVCC in byzantine generals problem blockchain wikipedia. The great advantage to an open, permissionless, or public, blockchain network is that guarding against bad actors is not required and no access control is needed. Bitcoin and other cryptocurrencies currently secure their blockchain by requiring new entries to include a proof of work.

To prolong byzantine generals problem blockchain wikipedia blockchain, bitcoin byzantine generals problem blockchain wikipedia Hashcash puzzles. Financial companies have not prioritised decentralized blockchains. Permissioned blockchains use an access control layer to govern who has access to the network.

They do not rely on anonymous nodes to validate transactions nor do they benefit from the network effect. The New York Times noted in both and that many corporations are using blockchain networks "with private blockchains, independent of the public system. Nikolai Hampton pointed out in Computerworld that "There byzantine generals problem blockchain wikipedia also no need for a '51 percent' attack on a private blockchain, as the private blockchain most likely already controls percent of all block creation resources.

If you could attack or damage the blockchain creation tools on a private corporate server, you could effectively control percent of their network and alter transactions however you wished.

It's unlikely that any byzantine generals problem blockchain wikipedia blockchain will try to protect records using gigawatts of computing power—it's time consuming and expensive. This means that many in-house blockchain solutions will be nothing more than cumbersome databases.

Data interchange between participants in a blockchain is a technical challenge that could inhibit blockchain's adoption and use. This has not yet become an issue because thus far participants in a blockchain have agreed either tacitly or actively on metadata standards.

Standardized metadata will be the best approach for permissioned blockchains such as payments and securities trading with high transaction volumes and a limited number of participants. Such standards reduce the transaction overhead for the byzantine generals problem blockchain wikipedia without imposing burdensome mapping and translation requirements on the participants.

However, Robert Kugel of Ventana Research points out that general purpose commercial blockchains require a system of self-describing data to permit automated data interchange. According to Kugel, by enabling universal data interchange, self-describing data can greatly expand the number of participants in permissioned commercial blockchains without having to concentrate control of these blockchains to a limited number of behemoths. Self-describing data also facilitates the integration of data between disparate blockchains.

Blockchain technology can be integrated into multiple areas. The primary use of blockchains today is as a distributed ledger for cryptocurrencies, most notably bitcoin. Blockchain technology has a large potential to transform business operating models in the long term.

Blockchain distributed ledger technology is more byzantine generals problem blockchain wikipedia foundational technology —with the potential to create new foundations for global economic and social systems—than a disruptive technologywhich typically "attack a traditional business model with a lower-cost solution and overtake incumbent firms quickly".

As of [update]some observers remain skeptical. Steve Wilson, of Constellation Research, believes the technology has been hyped with unrealistic claims. This means specific blockchain applications may be a disruptive innovation, because substantially lower-cost solutions can be instantiated, which can disrupt existing business models.

Blockchains alleviate the need for a trust service provider and are predicted to result in less capital being tied up in disputes. Blockchains have the potential to reduce systemic risk and financial fraud. They automate processes that were previously time-consuming and done manually, such as the incorporation of businesses. As a distributed ledger, blockchain reduces the costs involved in verifying transactions, and by removing the need for trusted "third-parties" such as banks to complete transactions, the technology also lowers the cost of networking, therefore allowing several applications.

Starting with a strong focus on financial applications, blockchain byzantine generals problem blockchain wikipedia is extending to activities including decentralized applications and collaborative organizations that eliminate a middleman. Frameworks and trials such as the one at the Sweden Land Registry aim to demonstrate the effectiveness of the blockchain at speeding land sale deals.

The Government of India is fighting land fraud with the help of a blockchain. In Octoberone of the first international property transactions was completed successfully using a blockchain-based smart contract. Each of the Big Four accounting firms is testing byzantine generals problem blockchain wikipedia technologies in various formats. It is important to us that everybody gets on board and prepares themselves for the revolution set to take place in the business world through blockchains, [to] smart contracts and digital currencies.

Blockchain-based smart contracts are contracts that can be partially or fully executed or enforced without human interaction. The Byzantine generals problem blockchain wikipedia believes smart contracts based on blockchain technology could reduce moral hazards and optimize the use of contracts in general.

Some blockchain implementations could enable the coding of contracts that will execute when specified conditions are met. A blockchain smart contract would be enabled by extensible programming instructions that define and execute an agreement.

Companies have supposedly been suggesting blockchain-based currency solutions in the following two countries:. Some countries, especially Australia, are providing keynote participation in identifying the various technical issues associated with developing, governing and using blockchains:.

Byzantine fault tolerance BFT is the dependability of a fault-tolerant computer systemparticularly distributed computing systems, where components may fail and there is imperfect information on whether a component is failed.

In a byzantine generals problem blockchain wikipedia failure", a component such as a server can inconsistently appear both failed and functioning to failure-detection systems, presenting different symptoms to different observers.

It is difficult for the other components to declare it failed and shut it out of the network, because they need to first reach a consensus regarding which component is failed in the first place. The term is derived from the Byzantine Generals' Problem[1] where actors must agree on a concerted strategy to avoid catastrophic system failure, but some of the actors are unreliable.

Byzantine fault tolerance has been byzantine generals problem blockchain wikipedia referred to with the phrases interactive consistency or source congruencyerror avalancheByzantine agreement problemByzantine generals problemand Byzantine failure.

A Byzantine fault is any fault presenting different symptoms to different observers. The objective of Byzantine fault tolerance is to be able to defend against failures of system components with or without symptoms that byzantine generals problem blockchain wikipedia other components of the system from reaching an agreement among themselves, where such an agreement is needed for the correct operation of the system.

Remaining correctly operational components of a Byzantine fault tolerant system will be able to continue providing the system's service as originally intended, assuming there are sufficient accurately operating components to maintain the service. Byzantine failures are considered the most general and most difficult class of failures among the failure modes. The so-called fail-stop failure mode occupies the simplest end of the spectrum.

Whereas fail-stop failure model simply means that the only way to fail is a node crash, detected by other nodes, Byzantine failures imply no restrictions, which means that the failed node can generate arbitrary data, pretending to be a correct one. Thus, Byzantine failures can confuse failure detection systems, which makes fault tolerance difficult. Despite the analogy, a Byzantine generals problem blockchain wikipedia failure is not necessarily a security problem involving hostile human interference: Byzantine refers to the Byzantine Generals' Problem, an agreement problem, described by Leslie LamportByzantine generals problem blockchain wikipedia Shostak and Byzantine generals problem blockchain wikipedia Pease in their paper, "The Byzantine Generals Problem"[1] in which a group of generals, each commanding a portion of the Byzantine armyencircle a city.

These generals wish to formulate a plan for attacking the city. In its simplest form, the generals must decide only whether to attack or retreat. Some generals may prefer to attack, while others prefer to retreat. The important thing is that every general agree on a common decision, for a halfhearted attack by a few generals would become a rout and be worse than a coordinated attack or a coordinated retreat.

The problem is complicated by the presence of treacherous generals who may not only cast a vote for a suboptimal strategy, they may byzantine generals problem blockchain wikipedia so selectively.

For instance, if nine generals are voting, four of whom support attacking while four others are in favor of retreat, the ninth general may send a vote of retreat to those generals in favor of retreat, and a vote of attack to the rest.

Those who received a retreat vote from the ninth general will retreat, while the rest will attack which may not go well for the attackers. The problem is complicated further by the generals being physically separated and having to send their votes via messengers who may fail to deliver votes or may forge false votes. Byzantine fault tolerance can be achieved if the loyal non-faulty generals have a majority agreement on their strategy. There can be a default vote value given to missing messages.

The typical mapping of this story onto computer systems is that the computers are the generals and their digital communication system links are the messengers. Although the problem is formulated in the analogy as a decision-making and security problem, in electronics, it cannot be solved simply by cryptographic digital signaturesbecause failures such as incorrect voltages can propagate through the encryption process.

Thus, a component may appear functioning to one component and faulty to another, which prevents forming a consensus whether the component is faulty or not. Several examples of Byzantine failures that have occurred are given in two equivalent journal papers. Byzantine errors were observed infrequently and at irregular points during endurance testing for the newly constructed Virginia class submarinesat least through when the issues were publicly reported.

A similar problem faces honeybee swarms. They have to find a new home, and the many scouts and wider participants have to reach consensus about which of perhaps several candidate homes to fly to. And then byzantine generals problem blockchain wikipedia all have to fly there, with their queen. Several solutions were described by Lamport, Shostak, and Pease in Several system architectures were byzantine generals problem blockchain wikipedia c.

InMiguel Castro and Barbara Liskov introduced the "Practical Byzantine Fault Tolerance" PBFT algorithm, [15] which provides high-performance Byzantine state machine replication, processing thousands of requests per second with sub-millisecond increases in latency. Furthermore, Adapt [22] tried to make use of existing BFT protocols, through switching between them in an adaptive way, to improve system robustness and performance as the underlying conditions change.

Furthermore, BFT protocols were introduced that byzantine generals problem blockchain wikipedia trusted byzantine generals problem blockchain wikipedia to reduce the number of byzantine generals problem blockchain wikipedia, e. UpRight [25] is an open source library for constructing services that tolerate both crashes "up" and Byzantine behaviors "right" that incorporates many of these protocols' innovations.

This library implements a protocol very similar to PBFT's, plus complementary protocols which offer state transfer and on-the-fly reconfiguration of hosts. BFT-SMaRt is the most recent effort to implement state machine replication, still being actively maintained. Archistar [27] utilizes a slim BFT layer [28] for communication. Focus lies on simplicity and readability, it aims to be the foundation for further research projects.

Askemos [29] is a concurrent, garbage-collected, persistent programming platform atop of replicated state machines which tolerates Byzantine faults.

It prototypes an execution environment facilitating Smart contracts. Tendermint [30] is general purpose software for BFT state machine replication. Using a socket protocol, it enables state machines to be written in any programming language, and provides means for the state machine to influence elements of the consensus, such as the list of active processes. Tendermint is implemented in the style of a blockchainwhich amortizes the overhead of BFT and allows for faster recovery from failure.

One example of BFT in use is bitcoina peer-to-peer digital cash system. The bitcoin network works in parallel to generate a blockchain with byzantine generals problem blockchain wikipedia. The proof-of-work chain is the key to overcome Byzantine failures and to reach a coherent global view of the system state. Because these are real-time systems, their Byzantine fault tolerance solutions must have very low latency.

For example, SAFEbus can achieve Byzantine fault tolerance within the order of a microsecond of added latency. Some spacecraft such as the SpaceX Dragon flight system [34] consider Byzantine fault tolerance in their design. Byzantine fault tolerance mechanisms use components that repeat an incoming message or just its signature to other recipients of that incoming message. All these mechanisms make the assumption that the act of repeating a message blocks the propagation of Byzantine symptoms.

For systems that have a high degree of safety or security criticality, these assumptions must be proven to be true to an acceptable level of fault coverage. When providing proof through testing, one difficulty is creating a sufficiently wide range of signals with Byzantine symptoms.

From Wikipedia, the free encyclopedia. For military generals of the Byzantine empire, see Category: Atomic commit Brooks—Iyengar algorithm List of mathematical concepts named after places List of terms relating to algorithms and data structures Byzantine Paxos Quantum Byzantine agreement Two Armies Problem.

Archived from byzantine generals problem blockchain wikipedia original PDF on 7 February Association for Computing Machinery. Speculative Byzantine Fault Tolerance". Proceedings of the 5th European conference on Computer systems. Symposium on Networked Systems Design and Implementation. Redundant Byzantine Fault Tolerance. International Conference on Distributed Computing Systems.

Archived from the original on August 5, Making Adversaries Stick to Their Word". Google Code repository for the UpRight replication library. Kirsch 26 September SpaceX lessons learned [LWN. Driscoll, "Method for testing the sensitive input range of Byzantine filters", issuedassigned to Honeywell International Inc. Retrieved from " https: Public-key cryptography Distributed computing problems Fault-tolerant computer systems Theory of computation. All articles with unsourced statements Articles with unsourced statements from February Views Read Edit View history.

In other projects Wikimedia Commons. This page was last edited on 22 Mayat By using this site, you agree to the Terms of Use and Privacy Policy.

In computing, the Two Generals Problem is a thought experiment meant to illustrate the pitfalls and design challenges of attempting to coordinate an action by communicating over an unreliable link. It is related to the more general Byzantine Generals Problem though published long before that later generalization and appears often in introductory classes about computer networking particularly with regard to the Transmission Control Protocol where it shows that TCP can't guarantee state consistency between endpoints and whythough it applies to any type of two party communication where failures of communication are possible.

A key concept in epistemic logicthis problem highlights the importance of common knowledge. An important consequence of this proof is that generalizations like the Byzantine Generals byzantine generals problem blockchain wikipedia are also unsolvable in the face of arbitrary communication failures, thus providing a base of realistic expectations for any distributed consistency protocols.

Two byzantine generals problem blockchain wikipediaeach led by a different generalare preparing to attack a fortified city. The armies are encamped near the city, each in its own valley.

A third valley separates the two hills, and the only way for the two generals to communicate is by sending messengers through the valley. Unfortunately, the valley is occupied by the city's byzantine generals problem blockchain wikipedia and there's a chance that any given messenger sent through the valley will be captured.

While the two generals have agreed that they will attack, they haven't agreed upon a time for attack. It is required that the two generals have their armies attack the city at the same time in order to succeed, else the lone attacker army will die trying.

They must thus communicate with each other to decide on a time to attack and to agree to attack at that time, and each general must know that the other general knows that they have agreed to the attack plan. Because acknowledgement of message receipt can be lost as easily as the original message, a potentially infinite series of messages is required to come to consensus.

The thought experiment involves considering how they might go about coming to consensus. In its simplest form one general is known to be the leader, decides on the time of attack, and must byzantine generals problem blockchain wikipedia this time to the other general. The problem is to come up with algorithms that the generals can use, including sending messages and processing received messages, that can allow them to correctly conclude:. Allowing that it is quite simple for the generals to come to an agreement on the time to attack i.

The first general may start by sending a message "Attack at on August 4. This uncertainty may lead the first general to hesitate to attack due to the risk of being the sole attacker. To be sure, the second general may send a confirmation back to the first: Further confirmations may seem like a solution—let the first general send a second confirmation: Thus it quickly becomes evident that no matter how many rounds of confirmation are made, there is no way to guarantee the second requirement that each general be sure the other has agreed to the attack plan.

Both generals will always be left wondering whether their last messenger got through. Because this protocol is deterministicsuppose there is a sequence of a fixed number of messages, one or more successfully delivered and one or more not. The assumption is that there should be a byzantine generals problem blockchain wikipedia certainty for both generals to attack. Consider the last such message that was successfully delivered.

If that last message had not been successfully delivered, then one general at least presumably the receiver would decide not to attack. Since the protocol is deterministicthe general sending that last message will still decide to attack.

We've now created a situation where the suggested protocol leads one general to attack and the other not to attack—contradicting the assumption that the protocol was a solution to the problem.

Byzantine generals problem blockchain wikipedia nondeterministic protocol with a variable message count can be compared to a finite treewhere each leaf or branch node in the tree represents an explored example up to a specified point. The roots of this tree are labeled with the possible starting messages, and the branch nodes stemming from these roots are labeled with the possible next messages. Leaf nodes represent examples which end after sending the last message. A protocol that terminates before sending any messages is represented by a null tree.

Suppose there exists a nondeterministic protocol which solves the problem. Then, by a similar argument to the deterministic example in the previous section, where the one can be obtained from the other by removing byzantine generals problem blockchain wikipedia leaf nodes, the deterministic protocol must then also solve the problem. Since the nondeterministic protocol is finiteit then follows that the protocol represented by the empty tree would solve the problem.

Byzantine generals problem blockchain wikipedia this is not possible. Therefore a nondeterministic protocol which solves the problem cannot exist. A pragmatic approach to dealing with the Two Generals' Problem is to use schemes that accept the uncertainty of the communications channel and not attempt to eliminate it, but rather mitigate it to an acceptable degree. For example, the first general could send messengers, anticipating that the probability of all being captured is low.

With this approach the first general will attack no matter what, and the second general will attack if any message is received. Alternatively the first general could send a stream of messages and the second general could send acknowledgments to each, with each general feeling more comfortable with every message received.

As seen in the proof, however, neither can be certain that the attack will be coordinated. There's no algorithm that they can use e. Also, the first general can send a marking on each message saying it is message 1, 2, This method will allow the second general to know how reliable the channel is and send an appropriate number of messages back to ensure a high probability of at least one byzantine generals problem blockchain wikipedia being byzantine generals problem blockchain wikipedia.

If the channel can be made to be reliable, then one message will suffice and additional messages do not help. The last is as likely to get lost as the first.

Assuming that the generals must sacrifice lives every time a messenger is sent and intercepted, an algorithm can be designed to minimize the number of messengers required to achieve the maximum amount of confidence the attack is coordinated.

To save them from sacrificing hundreds of lives to achieve a very high confidence in coordination, the generals could agree to use the absence of messengers as an indication that the general who began the transaction has received at least one confirmation, and has promised to attack. Suppose it takes a messenger 1 minute to cross the danger zone, allowing minutes of silence to occur after confirmations have been received will allow us to achieve extremely high confidence while not sacrificing messenger lives.

In this case messengers are used only in the case where a party has not received the attack time. At the end of minutes, each general can reason: The Two Generals Problem and its impossibility proof was first published by E. Huber in in "Some Constraints and Trade-offs in the Design of Network Communications", [4] where it is described starting on page 73 in the context of communication between two groups of gangsters.

This reference is widely given as a source for the definition of the problem and the impossibility proof, though both were published previously as above. From Wikipedia, the free encyclopedia. Proceedings of the first international conference on Artificial intelligence planning systems. Retrieved 27 December byzantine generals problem blockchain wikipedia Retrieved 15 September Retrieved from " https: Distributed computing problems Theory of computation Thought experiments.

All articles with unsourced statements Articles with unsourced statements from May Views Read Edit View history. This page was last edited on 2 Aprilat By using this site, you agree to the Terms of Use and Privacy Policy.