# LBFT: An Asynchronous Committee-Based Blockchain Storage Strategy on Zero Trust Model
## 4 Design
### Detailed Construction  
The construction of LBFT is elaborated in this section. We assume an asynchronous network with \(n=r\cdot f+1\) nodes (where \(r\) is the fault factor, \(f\) is the threshold of the Byzantine nodes, and \(n\) is the number of nodes), and more assumptions are illustrated in Section 2. **Encoding and Consensus. ** Similar to the HB-BFT [25], LBFT employs the critical building block ACS to achieve consensus; nevertheless, the original blocks are partitioned and encoded before reaching agreement. Algorithm 1 presents the details of encoding and consensus process in LBFT for a certain block \(B(h)\) with hash \(h\), which is implemented on a node \(N_{s}\). Figure 2: The consensus of encoded values and recovery of blocks flows in LBFT. For the original block \(B(h)\), each node \(N_{s}\) first partitions it into \(c\) data pieces \(\mathcal{B}=\{\mathcal{B}_{1}(h),...,\mathcal{B}_{c}(h)\}\) using the function \(Partition()\) to decrease the computational complexity and number of communication bits during encoding and decoding (Line 1) [3,6]. Then, node \(N_{s}\) encodes the pieces into \(n\) values: \(\mathcal{B}=\{f_{h}(1),...f_{h}(n)\}\) within the \((c,n)\)-RS schema through function \(RSEncode()\) and meanwhile signs each encoded piece (Line 2-5). After that, node \(N_{s}\) acts as the sender to activate the corresponding \(RBC_{s}\) instance with the input signature set \(\mathcal{H}\) (Line 6). If Node \(N_{s}\) has received \(f+1\) messages from other different nodes and has affirmed that the signatures are valid, it informs others which values are signed by enough nodes through the ABA protocol and aggregates the signatures into a single aggregate signature (Line 7-19). In more detail, node \(N_{s}\) firstly extracts the \(f+1\) signatures on the value \(f_{h}(s)\) which it needs to store from the signature sets: \(\mathcal{H}_{1},...,\mathcal{H}_{f+1}\), respectively (Line 8-9); it then compresses them into a single signature with the function \(Aggregate()\) (Line 10). To achieve consensus on the encoded values, node \(N_{s}\) inputs \(b=1\) to \(ABA_{i}\) instance after it collects at least \(f+1\) signatures from different nodes on the value \(f_{h}(i)\) (Line 12-13); otherwise, it inputs \(b=0\) to \(ABA_{i}\) instance (Line 14-15). The \(ABA_{i}\) instance outputs \(b=1\) if it has received at least \(f+1\) inputs \(b=1\), indicating that a majority of nodes have verified the value \(f_{h}(s)\). After the consensus of all the encoded values is achieved, each node \(N_{s}\) preserves the corresponding value \(f_{h}(s)\) together with the aggregate signature \(\sigma_{h,s}\) as the proof, discarding the other redundant data (Line 18). ```
0: node \(N_{s}\), original block \(\mathcal{B}(h)\)
1:\(\mathcal{B}=\{\mathcal{B}_{1}(h),...,\mathcal{B}_{c}(h)\}\leftarrow\text{ Partition}(\mathcal{B}(h),\,c)\)
2:for\(i\) from \(1\) to \(n\)do
3:\(\mathcal{F}=\mathcal{F}\cup\{f_{h}(i)\leftarrow\)RSencode(\(\mathcal{B},\,c,\,n,\,i\) )
4:\(\mathcal{H}\leftarrow\mathcal{H}\cup\text{Sign}(f_{h}(i),s)\)
5:endfor
6: activate \(RBC_{s}\) with the input \(\mathcal{H}\)
7:if receive\(f+1\) messages then
8:\(\mathcal{H}_{1},...,\mathcal{H}_{f+1}\gets f+1\) signature sets
9:\(signs\leftarrow\{\mathcal{H}_{1}[f_{h}(s)],...,\mathcal{H}_{f+1}[f_{h}(s)]\}\)
10:\(\sigma_{h,s}\leftarrow\text{Aggregate(\(\emph{signs}))}\)
11:for\(i\) from \(1\) to \(n\)do
12:if more than \(f+1\) valid signatures on \(f_{h}(i)\) then
13: activate \(ABA_{i}\) with the input \(b=1\)
14:else
15: activate \(ABA_{i}\) with the input \(b=0\)
16:endif
17:endfor
18: store \(\sigma_{h,s}\) together with \(f_{h}(s)\)
19:endif
```  
**Algorithm 1** Encoding and Consensus in LBFT. **Recovery of Blocks. ** When a client requests to access data, LBFT randomly selects \(c\cdot k\) nodes, avergely placing them into \(k\) committees. Each committee nominates a leader (by some algorithms such as Round-Robin scheduling [44]) to be in charge of the decoding process, while the remaining nodes in the committee are termed followers.