위키 구독하기

Share wiki

Byzantine Fault Tolerance (BFT)

Wiki Powered byIconIQ
Byzantine Fault Tolerance (BFT)

Byzantine Fault Tolerance (BFT)

Byzantine Fault Tolerance (BFT) is an algorithm designed to allow distributed systems to tolerate faulty or malicious nodes while maintaining among the remaining nodes. It allows systems or networks to continue functioning by resisting an attack like a or a denial-of-service (DoS) attack stemming from some nodes transmitting information about false transactions. [1][2][3]

Overview

operate on a decentralized model, utilizing a network of distributed nodes to independently verify and record transactions. Consensus is vital for the integrity of this decentralized framework, and Byzantine Fault Tolerance (BFT) assumes a pivotal role in its establishment. [1][4]

BFT, inherent to distributed systems, ensures the proper operation of the network even in the presence of faulty or malicious nodes. Byzantine failures, triggered when a node disseminates inaccurate information, can result from factors such as malicious attacks, software defects, or challenges in nodes reaching a consensus. Recognizing the inevitability of Byzantine failures in distributed systems, the implementation of Byzantine Fault Tolerance becomes essential. Its function is to enable the system to reach a consensus, even when confronted with nodes providing erroneous information. [5]

History

Byzantine fault tolerance in technology originates from the Byzantine general problem, initially conceptualized by Leslie Lamport, Marshall Pease, and Robert Shostak. Their seminal 1982 paper, "The Byzantine Generals Problem," presented a scenario involving Byzantine army generals needing to coordinate a unanimous decision on whether to attack or retreat. Compromised generals created an obstacle, termed the Byzantine fault, and a system effectively dealing with this issue is deemed Byzantine fault-tolerant. [2]

This concept found application in blockchain networks, where nodes, akin to the army generals, validate transactions, forming a Byzantine fault-tolerant system capable of functioning despite node failures or intentional deception. [2][4]

In 2008, Byzantine fault tolerance started gaining widespread attention when released the Bitcoin white paper, introducing a consensus approach resilient to Byzantine faults that utilizes the ) protocol. After inception, blockchain researchers have advanced these principles, giving rise to various consensus methods like (PoS), all aimed at achieving Byzantine fault tolerance. [3]

BFT Technology

Byzantine fault tolerance algorithms work by dividing network nodes into groups and compelling them to communicate through message exchanges. This communication allows nodes to authenticate information shared by other nodes, guaranteeing unanimous consensus among all nodes concerning the system's present condition. [1]

Blockchains employ Byzantine fault tolerance mechanisms through consensus algorithms to establish a collective agreement regarding the current state of the distributed ledger. These consensus algorithms regulate who has the authority to add a block to the . In certain blockchains, this involves solving a complex mathematical problem (), while in others, it necessitates staking a certain amount of the blockchain's native currency to facilitate the addition of a new block (). [6]

Furthermore, every new block to be included in the blockchain is disseminated to all nodes within the network. Each node subsequently verifies these blocks and their transactions before incorporating them into their local version of the blockchain. Blockchain technology commonly employs various BFT algorithms, such as practical Byzantine fault tolerance (pBFT), Federated Byzantine Agreement (FBA), and delegated Byzantine fault tolerance (dBFT), among others. [6][7]

The algorithm requires miners in a network to solve cryptographic puzzles to verify and create blocks that store transaction data. The miner who successfully solves the puzzle first gets the privilege of adding the transaction to the block and receiving the block reward, but they need to prove that they solved the puzzle to confirm the addition of the block. in PoW involves using expensive computers or mining rigs, which discourages miners from spreading false information, as other participants would reject it. This also reduces the risk of malicious actors taking control of the majority of nodes in the system. [2]

consensus mechanism, on the other hand, requires the of a specific quantity of cryptocurrency tokens to gain permission to validate transactions. Once a network protocol accepts an individual, the transaction can be included in the expanding block for the receipt of a block reward. [2]

Types of BFT Algorithms

Practical Byzantine fault tolerance (pBFT)

pBFT is a consensus algorithm designed to operate efficiently in asynchronous systems, where there is no defined upper limit on when the response to a request will be received. It functions by ensuring all nodes in the network have a copy of the blockchain and can validate new transactions and blocks before they are added to the . [1][8]

In pBFT, nodes are categorized into three groups: a leader node, which assumes the responsibility of suggesting new transactions or blocks to the network and also receives requests from the client; a set of replica nodes, which play a crucial role in validating the proposal by engaging in message exchanges with one another; and a group of client nodes, which are responsible for sending transaction requests. [1][8][9]

Federated Byzantine Fault Tolerance (FBA)

FBA is a consensus mechanism developed to attain BFT in a more decentralized and flexible manner compared to traditional BFT algorithms. Before any user requests, nodes must be pre-established and verified within the FBA network. Nodes have the autonomy to select and trust other nodes, leading to quorums forming, representing the minimum number of nodes required for a solution to be deemed correct. Once a quorum is established, the corresponding block is validated and incorporated into the blockchain. The FBA consensus algorithm follows these steps: [10][11]

  • Node Selection: Each node picks its quorum slices based on its trust in other nodes, and these slices are locally defined, varying from node to node.
  • Voting: Nodes cast votes on statements, such as transaction validity or ledger version. A node acknowledges a statement if it believes a quorum supports it.
  • Acceptance and Ratification: Nodes disseminate accepted statements to other nodes in the network. When a node observes that a quorum backs a statement, it considers the statement ratified and takes appropriate action. [10][11]

Delegated Byzantine fault Tolerance (dBFT)

The dBFT (delegated Byzantine Fault Tolerance) consensus algorithm serves the purpose of achieving agreement within the blockchain and cryptocurrency communities, although its intricacies may pose challenges for newcomers. Its complexity stems from its adeptness in handling untrustworthy participants on the blockchain, surpassing other algorithms in this aspect. [12]

, often referred to as the "Ethereum of China," introduced the Delegated Byzantine Fault Tolerance consensus, emphasizing its commitment to creating a "smart economy" through digitizing assets and implementing on the blockchain. The dBFT consensus mechanism operates as a state machine, utilizing a round-robin scheme to define Primary/Backup nodes and manage network messages. The following are dBFT states: [12][13]

  • Initial: Represents the initial machine state.
  • Primary: Depends on block height and view number.
  • Backup: True if the node is not primary, false otherwise.
  • Request Sent Or Received: True if a valid signature from the primary node has been received, false otherwise.
  • Response Sent: True if block header confirmation has been sent.
  • Commit Sent: True if the block signature has been sent.
  • Block Sent: True if the block has been sent, false otherwise.
  • View Changing: True if the view change mechanism has been triggered, false otherwise.
  • More Than F Nodes Committed Or Lost: True if more than f nodes are locked in the committed phase or considered lost.
  • Is Recovering: True if a valid recovery payload was received and is currently being processed.

Examples of BFT

Zilliqa

Zilliqa is software designed to offer high throughput with the ability to complete thousands of transactions per second. It aims to solve the blockchain scalability issue and speed by using as a scaling solution, which splits its infrastructure into several interconnected blockchains to support more transactions. With the platform allowing for and , many , including Zilswap, Avely Finance, and LunarCrush, integrate Zilliqa into their protocols. [14][15][16][17]

The Zilliqa network provides a range of features, including , transaction settlement, and token issuance. Its operation relies on two main principles: sharding, a method that divides the network into shards, enabling nodes to process only a portion of transactions, and pBFT, an algorithm ensuring network security and synchronization. With pBFT, consensus is reached when at least two-thirds of nodes agree on the accuracy of a record before it's added to the blockchain. This consensus process applies to specific shards, where all nodes must agree before a microblock is finalized and merged into a transaction block. Additionally, Zilliqa employs a algorithm to assign node identities and create shards, enhancing the security of the platform's transaction records. [15][16]

Stellar

, also called Stellar Lumens, is a decentralized (P2P) network aimed at bridging global financial systems and establishing a standardized protocol for payment providers and financial institutions. Its purpose is to facilitate the movement of financial assets, connecting individuals, banks, and payment processors. In addition, Stellar enables users to create, send, and trade various cryptocurrencies. [20]

uses a network of decentralized servers and a distributed ledger updated every two to five seconds across all nodes while employing a consensus protocol known as the FBA algorithm. This protocol achieves faster transaction processing by utilizing quorum slices, or specific network portions, to validate transactions. Each node in the Stellar network selects a set of "trusted" nodes, and once a transaction gains approval from all nodes in this set, it is considered validated. This streamlined process has significantly enhanced Stellar's network speed, enabling it to handle up to 1,000 network operations per second. [21]

Neo (NEO)

is a network designed to automate the management of digital assets through , to establish a distributed smart economy system using decentralized applications. The platform allows the creation of for purposes such as (DEXs), prediction markets, and social networks. [18]

In addition to these capabilities, Neo provides users with features like a decentralized file storage system, an identity system, and an system for integrating external information, such as price data. [18][19]

The Neo has two native cryptocurrencies: , which is utilized for voting on protocol changes, and GAS, used to cover computation costs on the network. The platform employs dBFT consensus mechanism to ensure blockchain security and synchronization across its distributed network of computers. [18]

dBFT functions similarly to and employs a real-time voting system to determine which computers running the software can generate the next block on the Neo blockchain. This means that anyone holding NEO can participate in network operations. Each , (or Neo coin), can be to represent a vote and more staked NEO equals greater voting power. All NEO owners who stake their tokens vote for the consensus nodes responsible for creating blocks. In return for proposing and adding new blocks to the Neo blockchain, these consensus nodes receive the network's transaction fees, paid in the GAS cryptocurrency. [18][19]

See something wrong?

편집자

Profile picture of Anonymous uservzbrv

편집 날짜

January 2, 2024

참고 문헌.

[1]

Medium - learn with whiteboard

Nov 8, 2023

[2]

Make use of - bft

Nov 8, 2023

[3]

Bit stamp - bft

Nov 8, 2023

[4]

Fool.com - bft

Nov 8, 2023

[5]

Cointelegrapgh - bft

Nov 8, 2023

[6]

Educative.io

Nov 8, 2023

[7]

Technopedia

Nov 8, 2023

[8]

Geeks for geeks

Nov 8, 2023

[9]

LinkedIn handle of Pulse - pBFT

Nov 8, 2023

[10]

LinkedIn handle of Pulse - FBA

Nov 8, 2023

[11]

towards data science - fba

Dec 19, 2023

[12]

Yahoo Finance

Nov 9, 2023

[13]

LinkedIn handle of pulse - dBFT

Nov 9, 2023

[14]

Shiksha

Nov 9, 2023

[15]

Coinmarketcap

Nov 9, 2023

[16]

Kranken -Zilliqa

Nov 9, 2023

[17]

dApp radar

Nov 9, 2023

[18]

Investopedia - Neo

Nov 9, 2023

[19]

Kranken - Neo

Nov 9, 2023

[20]

Coinmarketcap - Stellar

Nov 9, 2023

[21]

Investopedia - Stellar

Nov 9, 2023