# 3.4.2 F-BFT: The Hierarchical Consensus Mechanism

### 3.4.2.1 **High-Level Protocol Overview**

In the decentralized ecosystem of the DGT network, a unique form of Byzantine Fault Tolerance (BFT) consensus called Federated BFT (F-BFT) is employed to ensure reliable and scalable consensus. F-BFT is a hierarchical and cluster-based consensus algorithm that addresses the scalability challenges faced by traditional BFT algorithms, including Practical Byzantine Fault Tolerance (PBFT). While PBFT offers notable advantages, it suffers from scalability issues due to its O(n2) communication complexity.

To overcome these challenges, F-BFT leverages a novel network topology and group-based approach to enhance the efficiency and scalability of achieving consensus in the DGT network. By utilizing this innovative approach, F-BFT significantly reduces communication times between nodes, resulting in an O(n) communication complexity. This optimization allows for improved scalability and efficiency in achieving consensus in distributed systems:

* The DGT network follows a uniform architecture for its on-chain nodes, which can process various types of transactions through the transaction processor. Validators play a crucial role in verifying transactions and making proposals, while arbitrators are responsible for certifying transaction packets and blocks. The level of decentralization in the network is determined by the number of independent arbitrators, which contributes to the overall security and resilience of the system. Moreover, the consensus engine in DGT has the flexibility to dynamically switch between different cluster-level consensus mechanisms.
* Within each cluster, a consensus is achieved by ensuring that the number of Byzantine replicas is less than one-third, denoted as . The collection of signatures during consensus can be performed using different modes:
  * The _LAZY\_MODE_ involves a simple vote count, like a threshold PBFT scheme, with leader rotation.
  * The _FAST\_RUN_ _mode_ assumes a constant leader and a synchronous network, resembling the HOT-STUFF scheme.
  * The _ALPINE mode_ utilizes an aggregated cluster signature based on the Lagrange Interpolant model, providing an efficient consensus mechanism.
* The transaction storage system in DGT adopts a hybrid approach, combining both block organization and a top-directed DAG graph that is maintained in topological order. The DAG plays a critical role in determining network time and fragmentation through the HEARTBEAT mechanism. This mechanism governs various events, including cluster leader rotation and token issuance order, ensuring proper coordination and synchronization within the network.
* At the top level, transaction certification takes place within the ring of arbitrators. An arbitrator located outside the cluster receives a transaction and verifies it by consulting one or more adjacent arbiter nodes. The confirmation process varies depending on the mode being used: For instance, in LAZY\_MODE, the transaction is immediately confirmed, while in FAST\_RUN, confirmation is based on the aggregated signature and its connection with the previous block. The participation of arbitrators in the ring is determined by a staking mechanism like TPOS (Transaction Proof of Stake) or the anchoring principle based on certificates, providing additional security and integrity to the overall transaction certification process.

The communication scheme allows for the propagation of transaction proposals from the lowest-level clusters to the higher-level clusters, where consensus is achieved at each level. The leaders/ or connection point of each level coordinate the communication and consensus process, ensuring the integrity and correctness of the proposed transactions. By following this hierarchical structure, the network can achieve consensus in a scalable and efficient manner, with each level contributing to the overall agreement on the transaction proposals.

![Figure 16 F-BFT Communication scheme](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2F4FRdtsmUiFnmQq284mNa%2F0.png?alt=media)

Here is a rough outline of the F-BFT consensus algorithm:

* Initialize the network into a "Cluster View" with a group of nodes, a set of connection points, leader selection, and permalink setup.
* For each cluster:
  * Use the F-BFT consensus algorithm, which combines a hierarchical and cluster-based Byzantine Fault Tolerance (BFT) approach, to reach consensus within the cluster.
  * Broadcast the result with permalinks to other Arbitrator Rings by randomly selecting an Arbitrator.
* Arbitrators collect the results of the F-BFT consensus from all clusters.
* Reach a final consensus by combining the results of the F-BFT consensus from all clusters.

This outline describes the high-level steps of the F-BFT consensus algorithm, where each cluster independently reaches consensus using the F-BFT approach, and the results are then combined by the arbitrators to reach a final consensus. The use of permalinks and random selection of arbitrators helps in achieving a decentralized and fault-tolerant consensus process within the F-BFT framework.

### **3.4.2.2 Protocol Correctness**

The proof of the correctness of the protocol follows from the basic properties of the protocol: Liveness and Safety. Liveness ensures that progress can be made in the consensus algorithm, meaning that transactions will eventually be agreed upon and added to the blockchain. Safety ensures that the consensus algorithm guarantees the integrity and consistency of the blockchain, meaning that once a transaction is agreed upon and added to the blockchain, it cannot be altered or removed.

**ASSUMPTION 1**: At the cluster level, conflicting messages are discarded based on the consensus reached within the cluster.

**DEFINITION 1**: The process we are considering is limited to an inter-block time, during which a series of Byzantine messages may be received, some of which may conflict or be incorrect. We discard messages that have reached the arbitrators but have not been explicitly accepted or included in an approved block of the network.

**ASSUMPTION 2**: During the inter-block time, all permalinks are functioning, ensuring that messages generated in any of the clusters will reach the arbitrators and propagate throughout the network.

**DEFINITION 2**: The digest of a TD message is a Boolean expression that represents the stack of message checks within the message: ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FOj3SZNoqWU9JbtyRtgfL%2Fimage.png?alt=media\&token=30c7618b-051b-4f5f-8ea4-3aa1200090c0). A message digest is considered to exist if ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FV8CkVVkBeu6grp4p0E6k%2Fimage.png?alt=media\&token=15b92422-b8ea-491c-b5fb-c2cfedcfa5d9).

**DEFINITION 3 (Liveness)**: A protocol is considered alive if it ensures that any transaction ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2F9vYf2yvk5YxpLBzcCygY%2Fimage.png?alt=media\&token=803570dd-515d-477f-bdbd-a9d15a5fdde0) and any subsequent transaction ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FFX5d9gTrwDhlTfNw8NFF%2Fimage.png?alt=media\&token=8269cf95-6be7-46a1-9c91-9d79d62396ec)(where ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FcqU6rXGHUXAULbUHMila%2Fimage.png?alt=media\&token=afe6c2ca-1abe-4827-851b-832986748180)) that have reached the arbitrators within the inter-block time can be negotiated and incorporated into the blockchain structure within the same epoch, given the condition that the number of arbitrators satisfies ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2Fsj7AuQsoMwgRLT3TRWI7%2Fimage.png?alt=media\&token=aed5fade-8156-4f99-889c-6963d7c865ba)(where![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2Fr1lE4be0m8eyeRnyeyjt%2Fimage.png?alt=media\&token=2f39511b-8623-433a-aa07-4b1be3454e52)is the number of Byzantine replicas among the arbitrators).

**LEMMA 1 (Liveness)**: Under the assumption that all permalinks exist and the number of arbitrators satisfies ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FnL3fHEsj8ukpezdlBgHv%2Fimage.png?alt=media\&token=c002e1c6-ac5a-4010-833a-7797eeb8a2d0), where ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FzEpLdgEpdB24AQyUjGew%2Fimage.png?alt=media\&token=34924f2d-90d6-4ffd-95ba-caccae33d574)is the number of Byzantine replicas among the arbitrators, the F-BFT consensus algorithm ensures liveness within the inter-block time.

**Proof**:

To prove liveness, we need to show that any transaction ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FbuElSddyoiRJ2n0w1wmv%2Fimage.png?alt=media\&token=fb7f6e8e-214d-4556-9bb5-b64f190e4ebf)and any subsequent transaction ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FR2GA4qgXo3ND6sQL6oTD%2Fimage.png?alt=media\&token=3ed8b8ae-fb75-40ff-a649-16b34135e3f9)(where ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FRGukFtWGxMy5bpxkgC9d%2Fimage.png?alt=media\&token=2d10b7ca-418a-4096-a805-abf7928c6c95)) that have reached the arbitrators within the inter-block time can be negotiated and incorporated within the epoch within the blockchain structure.

Since all permalinks exist, messages generated in any of the clusters are guaranteed to reach the arbitrators and propagate in the network. Within the inter-block time, the cluster-level consensus ensures that conflicting messages are discarded, and only approved messages are considered. By the assumption that the number of arbitrators satisfies ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FXTbTnVrugml5pbT2kAVR%2Fimage.png?alt=media\&token=9c9370d4-914d-4e84-8bf2-213626f2b88e), there are enough honest arbitrators to reach a consensus and include valid transactions in the blockchain structure. The F-BFT consensus algorithm leverages the cluster-level consensus and the ring of arbitrators to validate and certify transactions.

During the inter-block time, the arbitrators collaborate to achieve consensus on the validity and ordering of transactions. They reach an agreement on which transactions to include in the blockchain structure and ensure that any subsequent transactions can be negotiated and incorporated within the epoch. Therefore, by ensuring the presence of permalinks, enough honest arbitrators, and the collaboration among the arbitrators, the F-BFT consensus algorithm guarantees liveness within the inter-block time. ⬛

**LEMMA 2 (Safety)**: If any two conflicting transactions ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FIqk9QHaxnJA0eTwaB1jB%2Fimage.png?alt=media\&token=124ebf31-816f-499b-946b-30017f2412b7)and ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2F13ilbcAh69PAfMJHLEaP%2Fimage.png?alt=media\&token=55c002ca-9c1f-4682-b33b-2195ccd3314f)have reached the ring of arbitrators at ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FtqvBrwdYlA4J8Wu4WiVn%2Fimage.png?alt=media\&token=5d29a782-4981-4715-9059-21ba88031eb5), then the conflict is resolved by the arbitrators under the condition:

<figure><img src="https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FBjkLt2ldD06RPgn3JCJE%2Fimage.png?alt=media&#x26;token=f5933fd4-3980-4aad-8d78-d2cec74fde0a" alt=""><figcaption></figcaption></figure>

**Proof**:

Suppose there exist two conflicting transactions ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2Fd4R4MyqOBcK5pAwddWBw%2Fimage.png?alt=media\&token=976f4e90-c953-425f-8720-cdf21340a7d5)and ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FHAWqOyYksgqnrj3zdBcV%2Fimage.png?alt=media\&token=917bf159-4b3d-4928-9345-475075cd7671)that have reached inside inter-block time the ring of arbitrators at ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2F1DRQ3pO66Dira38aY66Z%2Fimage.png?alt=media\&token=34093809-ccd1-49bd-a19d-e6a69a1a5225), and the conflict is not resolved by the arbitrators. This implies that ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FA0qpKTq79dvdB4ESbpgc%2Fimage.png?alt=media\&token=e0611848-05ed-4e9f-966c-fd1869427895), meaning there is a common subset of checks that both messages pass.

However, since the conflict is not resolved, neither ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FxLqAnpACCyufnpLLqO8n%2Fimage.png?alt=media\&token=0592f7a3-0d07-4cfc-bcb4-8749539c2864)nor ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FSVVVngL90vur95GL9mt0%2Fimage.png?alt=media\&token=724a2c56-2972-4b55-97b8-0adf785b6001)is included in the blockchain. This contradicts the definition of liveness, which states that any transaction that has reached the arbitrators within the epoch should be negotiated and incorporated into the blockchain structure.

By the assumption that the number of arbitrators satisfies ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FquFkBTmDzuBdAH5b3HQM%2Fimage.png?alt=media\&token=d7b82e0a-2814-4f9c-8b99-1b5185d103e1), where ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2Fld9Lb4wgFhB0w4NCPs4I%2Fimage.png?alt=media\&token=101eae48-9d37-4fcb-9501-d993287f8838) is the number of Byzantine replicas among the arbitrators, we can guarantee that there are enough honest arbitrators to reach a consensus. Therefore, there must be at least one honest arbitrator who will ensure that one of the conflicting messages is included in the blockchain. Hence, by contradiction, we can conclude that if any two conflicting transactions ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2F3Me5bPsTM5VRHJZ0rQrq%2Fimage.png?alt=media\&token=29f915c2-597e-451f-8a4e-80afbdea9c08)and ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FQw8hdxFGix8LvliXNiDb%2Fimage.png?alt=media\&token=a5f2935f-7a85-4b46-9934-a8fc3c96a554)have reached the ring of arbitrators at ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2F1ETuSePSVz75NrUA7yF6%2Fimage.png?alt=media\&token=4d776c1a-f6fa-46ab-926f-b311f8b7bf2d), the conflict will be resolved by the arbitrators. At least one of the conflicting messages will be included in the blockchain, satisfying the conditions of Lemma 2. ⬛

**ASSUMPTION 3**: In the F-BFT consensus protocol, assume that the inter-block time, denoted as ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FXZtyrHi2xviL6UYHKgCr%2Fimage.png?alt=media\&token=f956ba34-a2f8-405d-a7dd-1582c52546ed), is sufficiently larger than the network delivery time of conflicting messages, denoted as![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2F8OL2NxkNwkPd6HyZnAjf%2Fimage.png?alt=media\&token=8b4626da-d389-4c0c-bda0-d37b5f803f56), and the time to negotiate a block in the ring of arbitrators, denoted as![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FtLwpC8QP5ZOkvup4Dpig%2Fimage.png?alt=media\&token=6a7c6d17-e8ab-4bb5-b2e9-8b6bd1dd17d9). Under the constraints of the F-BFT consensus algorithm, where the inter-block time could be presented:

<figure><img src="https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2F0BtALhMW3AMeisJL44lP%2Fimage.png?alt=media&#x26;token=acbb28b3-658e-406b-92cd-d965fd6b746d" alt=""><figcaption></figcaption></figure>

The reasonability of this assumption can be justified based on the following considerations:

* _Network Latency_: The network delivery time, ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FTaMPyklju2JCsiqtIQTH%2Fimage.png?alt=media\&token=03f1689a-297d-4438-a0a3-9ed21dca848f), represents the time it takes for messages to propagate through the network from one cluster to another. In a distributed network, network latency can vary depending on factors such as network congestion, distance, and communication protocols. By assuming that the inter-block time, ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2F6Z0RHWdFsX78M5a64TvI%2Fimage.png?alt=media\&token=7f520d12-d465-4e82-b993-5170535e75fb), is sufficiently larger than ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2F0oGICWoqG7lIaxd622JU%2Fimage.png?alt=media\&token=dbff755e-f369-4be2-b87a-c1e106a0b751), we can provide a buffer for potential delays and ensure that conflicting messages have enough time to reach the arbitrators.
* _Negotiation Time_: The negotiation time, ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FbhbM4sC8vMKe1V7B6ZkD%2Fimage.png?alt=media\&token=40541715-fb84-4173-8dcd-303901780df8), refers to the time it takes for the arbitrators to reach a consensus and finalize a block. This involves exchanging and validating transaction information, checking for conflicts, and reaching an agreement. By assuming that ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FD1Cb5IGE2Jujjp1Rszxz%2Fimage.png?alt=media\&token=111b9b40-c558-46fa-9cad-7a28efcc6420)is sufficiently larger than ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FKqQrk0y5DV99IYPEHpjh%2Fimage.png?alt=media\&token=069170ba-579f-4a3a-a497-61a586f1a908), we allow enough time for the arbitrators to perform the necessary computations and reach consensus on conflicting transactions.
* _System Scalability_: As the F-BFT consensus protocol operates in a hierarchical and cluster-based architecture, it is designed to handle large-scale distributed systems. By assuming that ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FYSDn8pR97EAHvkTKfIpG%2Fimage.png?alt=media\&token=706a9905-0124-4881-9ae9-f38c4c4675c1)is sufficiently larger than both ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FLsM4bFChD12Sd6TyUo13%2Fimage.png?alt=media\&token=4d0448d8-b263-4adc-80fc-76d04e165737)and ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FIJVHUbarKX9YYlg058xD%2Fimage.png?alt=media\&token=d9486a3a-71dc-454b-b1d9-3322ee1dd50a), we account for potential increases in the network size, complexity, and transaction volume. This ensures that the protocol can scale effectively and maintain a high level of safety.

Although this property is used to prove F-BFT, the assumption is true for a wide range of networks, including Bitcoin, Ethereum, Algorand, Avalanche. Below are averaged empirical data, a more rigorous proof can be made by taking into account models such as the Network-on-Chip (NoC) model (Matoussi, 2021).

Table 11 Inter-block time for [different network](#user-content-fn-1)[^1]

<table data-header-hidden data-full-width="true"><thead><tr><th></th><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Network</strong></td><td><strong>Inter-Block Time</strong></td><td><strong>Network Delivery Time</strong></td><td><strong>Negotiation Time</strong></td></tr><tr><td>Bitcoin</td><td>10 minutes</td><td>10 seconds</td><td>1 minute</td></tr><tr><td>Ethereum</td><td>15 seconds</td><td>2 seconds</td><td>5 seconds</td></tr><tr><td>Algorand</td><td>4.5 seconds</td><td>1 second</td><td>2 seconds</td></tr><tr><td>Avalanche</td><td>1-2 seconds</td><td>0.5 second</td><td>1 second</td></tr></tbody></table>

**LEMMA 3 (Safety)**: In the F-BFT consensus protocol, under the condition that the number of Byzantine replicas of the arbitrators satisfies ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2F9VZispzkY63skigwNVLY%2Fimage.png?alt=media\&token=61a64be5-bc10-48b7-8e5a-3f60716a2c95), where ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FrRPLsNNGvMtzzI3lidiZ%2Fimage.png?alt=media\&token=0f1763e1-f96c-449e-a679-19c44eb3f827)is the number of Byzantine replicas, if any two conflicting messages ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FmGz9bOjWHRUD2uozF5ya%2Fimage.png?alt=media\&token=9ab9dada-2861-4620-b3c5-824018e805a4)and ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FLKUSIfIxAk1MM9fygjjE%2Fimage.png?alt=media\&token=b94bca59-51ed-4d36-84d9-4bba964d6438)have reached the ring of arbitrators, then the conflict is resolved and at least one of the messages will be included in the blockchain.

**Proof**:

* _Case 1: Same Arbitrator_

If both ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FeCCH6afXXuyZh2oeOJBS%2Fimage.png?alt=media\&token=014c7928-fff3-437b-8899-5f4780ccfe06)and ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FXHl2ODe5SJcOaKF8kLAs%2Fimage.png?alt=media\&token=2429662c-fb7b-47a3-acb2-6857b841a53f)have reached the same arbitrator, according to Lemma 1, the conflict is resolved by the arbitrator under the condition ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FpcPXIwrS21WzLEMANCCb%2Fimage.png?alt=media\&token=c38acd35-d7e3-43ef-80fa-d4a762f1c679). Therefore, at least one of the conflicting messages will be included in the blockchain.

* _Case 2: Different Arbitrators_

If both ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2F9GqFoy5w7dyLNFRdYnQ0%2Fimage.png?alt=media\&token=d5c2aa93-b0df-4736-96b6-db4be1f32643)and ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FDroLG3zMmIYuSz4IzK4k%2Fimage.png?alt=media\&token=b7b3e4ba-20dd-45ab-b136-8ddea318f77f)have reached different arbitrators, let's assume without loss of generality that ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FH5wTwly2FFRMIQdxiOFa%2Fimage.png?alt=media\&token=c940083a-735a-419a-bd0c-fbf40557be88)has reached arbitrator A and ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FV5Xn4eK2fWAXiohpGmLm%2Fimage.png?alt=media\&token=6e39f2f4-b014-446d-995b-ad376d7f1681)has reached arbitrator B. By Assumption 3, the inter-block time ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FO8UZjFJ1NdxQ3wnuAxZg%2Fimage.png?alt=media\&token=2d5bab3f-850a-4370-848f-b497ca720d32)is larger than the network delivery time ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FGFUG3gaPP90I9q6gMcic%2Fimage.png?alt=media\&token=973e9eb3-f058-4091-96d8-40941d7f0220)and the negotiation time ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FYmBXz1mjEymcqM6DRRmp%2Fimage.png?alt=media\&token=9ed67263-b58c-482b-8e48-c8fc1d1c921a). Thus, it is guaranteed that both ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2F1Eu4MYi14243Lqfysip1%2Fimage.png?alt=media\&token=6defac59-3aa8-4581-8726-46445f327549)and ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FPnIW1hDSLeTar1W7M28W%2Fimage.png?alt=media\&token=ad90cbea-0f25-4c75-a8ed-52eef1f6f5ca)will be considered within the inter-block time ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FtNEpLuJQ44D9IC1g6ksR%2Fimage.png?alt=media\&token=9c712631-f841-48c7-a98f-c8c0e04b8dce).

Since Lemma 1 guarantees that conflicts are resolved within a single arbitrator, if ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FmNy847TebKD9MRQHkKi9%2Fimage.png?alt=media\&token=8fa7147e-2f81-4969-b19c-3fc4903ea359)and ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FSo9zV1oJ7ESFdliyDpkC%2Fimage.png?alt=media\&token=c67e64c2-5b4f-438b-81be-8f77867e3320)have conflicting digests ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FZC39Q44h5sdrUZaSfqCK%2Fimage.png?alt=media\&token=a1800d67-e277-4113-b834-d74169b3d6f6), then the conflict is resolved within each arbitrator. As a result, at least one of the conflicting messages will be included in the blockchain. Therefore, in both cases, Lemma 3 holds true, ensuring the safety of the F-BFT consensus protocol. ⬛

Note: Lemma 3 is based on Lemma 1, which ensures that conflicts are resolved within each arbitrator, and Assumption 3, which guarantees that the inter-block time is sufficiently larger than the network delivery time and negotiation time. This combination of assumptions and lemma provides a strong basis for the safety of the F-BFT consensus protocol.

### **3.4.2.3 Communication Model**

The communication model defines the assumptions and constraints on how messages are exchanged between nodes in the network. It determines the level of synchrony or asynchrony in message delivery and the assumptions about message delays and failures. All three modes of F-BFT utilize Partially Synchronous model. In this approach, the network is assumed to exhibit some degree of synchrony, but with the possibility of occasional delays or failures. The system assumes that most messages are delivered within a known and reasonable time frame, but some messages may experience delays or failures.

Estimating the communication complexity in F-BFT involves analyzing the number of messages exchanged between nodes during the consensus process. The complexity can be evaluated based on parameters such as the number of nodes, the number of rounds in the consensus protocol, and the size of messages exchanged.

In a two-level consensus scheme with a hierarchical clustered network, where the low-level consensus is achieved using PBFT within clusters and PoS is used for arbitrators at the high level, we can explore the minimum communication complexity (C) required for consensus.

**ASSUMPTION 4**. Let's assume the minimum configuration for the PBFT + PoS setup, where the total number of nodes in the network is denoted as _n_, and the minimum number of nodes per cluster is set to 4 as required by PBFT. Additionally, we consider a minimum number of arbitrators, denoted as a, with only 2 of them randomly selected for consensus.

**LEMMA 5**. Based on Assumption 4 the minimum communication complexity _C_ required to reach consensus is given by

<figure><img src="https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FJDzoG4OG73IXkYOPFmQN%2Fimage.png?alt=media&#x26;token=22df7847-7aff-44ce-ab01-4ad7fbd4feb4" alt=""><figcaption></figcaption></figure>

**Proof**:

To prove this lemma, we need to consider the communication complexity at each level of the consensus scheme.

At the low-level cluster consensus, with a minimum of 4 nodes per cluster, PBFT requires ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FwcMh4e6Lp2ggc1RS6H4S%2Fimage.png?alt=media\&token=3bb23287-5bbe-4781-ac6d-a6837e48a230)messages for complete consensus within each cluster. At the high-level arbitrator consensus, we have 2 randomly selected arbitrators participating in the consensus. In this case, we can assume that each arbitrator communicates with all other arbitrators, resulting in ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FX5jo6bzPest27rbYg9yL%2Fimage.png?alt=media\&token=0a4ba32e-1d98-4618-8a2b-990056fc445e)messages exchanged among the arbitrators.

Therefore, the total communication complexity is given by

![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FwyELR1rs4qWEFqjBM8n9%2Fimage.png?alt=media\&token=d27f23c8-d472-45a5-9351-e8c4da077a2e) ⬛

This minimum communication complexity ensures the secure operation of the hybrid/consortium architecture in the minimum configuration. By considering the minimum number of nodes per cluster and the minimum number of arbitrators, the system can maintain the necessary fault tolerance and security while minimizing the communication overhead associated with consensus protocols.

It's important to note that the specific values of _n, a_, and the minimum nodes per cluster can be adjusted according to the desired security and performance requirements of the system. The minimum communication complexity provides a baseline for achieving consensus in the most efficient manner while ensuring the integrity and availability of the network.

In more complex implementations, when all arbitrators are involved in communication or a two-level PBFT pass is used, the complexity of communication can be computed as (Li, et al., 2020):

<figure><img src="https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2F7fvk7SUUo4bt4BWSCWH6%2Fimage.png?alt=media&#x26;token=aefebe6d-5a92-4f6e-a20c-a43e16414fff" alt=""><figcaption></figcaption></figure>

Here is _n_ the total number, _m_ is the number of nodes in the cluster, and ![](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FtYWBYOd6lP9XiPE6LfeT%2Fimage.png?alt=media\&token=0fc7821f-db78-4aaa-ad39-32b4b3d255ee). It should also be noted that the number of arbitrators is excluded from this formula, since the ideal optimal is assumed:

<figure><img src="https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FH2V7vwHjy5lb3Wr5M6CI%2Fimage.png?alt=media&#x26;token=7aa30033-9163-4668-9797-33948b598ccd" alt=""><figcaption></figcaption></figure>

Omitting the details of the calculations for the remaining configurations, we present the main results of the comparative characteristics:

Table 12 Communication Model Parameters

<table data-header-hidden data-full-width="true"><thead><tr><th width="146"></th><th width="69"></th><th width="104"></th><th width="88"></th><th width="78"></th><th></th><th></th><th width="103"></th><th></th></tr></thead><tbody><tr><td><strong>Mode</strong></td><td><p><strong>Adv.</strong></p><p><strong>Tolerance</strong></p></td><td><strong>Communication Model</strong></td><td><strong>Communication Complexity</strong></td><td><strong>Throughput</strong></td><td><strong>Latency</strong></td><td><strong>Finality</strong></td><td><strong>Leader</strong></td><td><strong>Optimistic Responsive</strong></td></tr><tr><td>F-BFT (LAZY_MODE)</td><td>f &#x3C; n/3</td><td>Partially Synchronous</td><td>O(n2)</td><td>High</td><td>Low</td><td>Deterministic</td><td>Rotation</td><td>No</td></tr><tr><td>F-BFT (FAST_RUN)</td><td>f &#x3C; n/3</td><td>Partially Synchronous</td><td>O(n)</td><td>High</td><td>Low</td><td>Probabilistic</td><td>Stable</td><td>Yes</td></tr><tr><td>F-BFT (ALPINE)</td><td>f &#x3C; n/3</td><td>Partially Synchronous</td><td>O(n)</td><td>High</td><td>Low</td><td>Probabilistic</td><td>Stable</td><td>Yes</td></tr></tbody></table>

### **3.4.2.4 Transaction Validation**

Transaction validation is a critical component of the DGT network, ensuring the accuracy and integrity of transactions. It involves multiple stages and utilizes various technical solutions to achieve consensus and maintain network security. The following key elements contribute to the transaction validation process in the DGT network:

* **Permalinks**:
  * Permalinks serve as communication routes between nodes, facilitating efficient and reliable message exchange.
  * They allow nodes to establish connections and exchange information with one another.
  * Permalinks reduce the communication complexity and enable seamless transaction propagation across the network.
* **Ledger**:
  * The ledger in the DGT network is structured as a block-based system with a directed acyclic graph (DAG).
  * It serves as the primary storage mechanism for recording and managing transactions.
  * The DAG structure allows for additional connections between transactions, enhancing network flexibility and efficiency.
  * The ledger also incorporates the concept of a Journal component, similar to the Sawtooth blockchain, which enables parallel processing and advanced batching management.
* **Cluster-Based Consensus**:
  * The DGT network utilizes a cluster-based consensus mechanism.
  * Clusters are coordinated by a leader node that dynamically changes based on predefined criteria and timeouts.
  * Nodes within clusters participate in the validation process, voting on the correctness of transactions.
  * A sufficient number of votes, known as a quorum, is required to achieve consensus within a cluster.
* **External Arbitrators**:
  * External arbitrators play a crucial role in the final verification of transactions.
  * They form a separate layer of consensus and provide an additional level of validation.
  * Arbitrators approve transactions before they are included in the ledger.
  * The consensus mechanism involving arbitrators ensures the integrity and reliability of the transaction validation process.
* **Transaction Families and Processors**:
  * Different transaction types, known as transaction families, are supported in the DGT network.
  * Each transaction family has its own validation and processing requirements.
  * Transaction processors are responsible for validating and processing transactions within their respective families.
  * They ensure the correctness and compliance of transactions based on predefined rules and conditions.
* **Batching and Parallel Processing**:
  * Transactions within the DGT network are wrapped in batches before being sent to the ledger.
  * Batching allows for efficient processing and optimization of transaction handling.
  * Parallel processing techniques are employed to enhance transaction throughput and performance.
* **Block Publishing**:
  * Once transactions are validated and approved, they are included in blocks within the ledger.
  * The blocks are then published and distributed throughout the network.
  * Block publishing ensures the transparency and immutability of transactions within the DGT network.

![Figure 17 Transaction Validation](https://3210145376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSvanFNAf6Jf8kwvqcdRQ%2Fuploads%2FEHIJKE1wdZPZKPHTTFIv%2F1.png?alt=media)

[^1]: According [www.cryptoeq.io](http://www.cryptoeq.io) data
