# A Survey on Network Optimization Techniques for Blockchain Systems
## 5 Network Optimization Techniques Used in Blockchain Networks
### Data Layer  
Optimizations at the data layer primarily apply a form of compression to blockchain data or traffic to reduce the bandwidth consumed when blocks or transactions are shared in the network. A summary of these approaches has been presented in Table 8.  
[PERSON] et al. [95] used a simple packet aggregation scheme to compress the traffic generated in the network. Their approach required a blockchain node in the network to have multiple network interfaces. They then used an XOR operation to join the blockchain traffic with the same destination. The authors reported that their technique reduced the PBFT processing time by 23%; a corresponding increase in transactional throughput was also realized. The results presented also showed a reduction in bandwidth by about 1.87%. These improvements may not be achieved in a real network (especially at a large scale) since it requires all peers to have multiple network interfaces. [PERSON] et al. [96] devised an erasure-coding technique to compress blocks before transmission. Their technique works by first clustering the blockchain nodes; each cluster needs a cluster head, as shown in Figure 9. If, for instance, a node has a new block to share, it transmits the block's headers and id's of its transactions. The cluster head then broadcasts this received data in its cluster. Next, cluster members send all the transactions they lack; their leader relays them to the originating peer. The originating peer then encodes all requested transactions and sends them back to each cluster member to recover the transactions they need. The clustering of nodes leads to an improved throughput, whereas the coding technique greatly reduced bandwidth by about 82%. However, the coding technique is only effective when dealing with a few transactions. It will, therefore, not scale well with an increase in transactions. [PERSON] et al. [97] proposed a similar approach, although not in a clustered network. [PERSON] et al. [98] also used a coding technique to minimize the size of blocks before it is transmitted to other peers in the network. The authors, first of all, split a block into chunks. Then, a group of chunks, called a generation, is combined into one packet and transmitted to other peers. In their experimental setup, consisting of five wireless IoT peers, the total traffic transmitted per node was reduced from about 51 kB to about 9 kB. However, when \begin{table}
\begin{tabular}{c c c c c c} \hline \hline
**Ref.** & **PC** & **PR** & **BI** & **BW** & **Main Contributions** & **Limitations** \\ \hline
[95] & & ✓ & 1.87\% & XOR-based compression of blockchain traffic & Requires peers to have multiple network interfaces \\ \hline
[96] & ✓ & & & 82\% &
\begin{tabular}{c} Erasure coding technique to compress transactions before transmission \\ \end{tabular} & Only effective when dealing with a few transactions \\ \hline
[97] & ✓ & & & &
\begin{tabular}{c} Erasure coding technique to compress compact blocks \\ \end{tabular} & \\ \hline
[98] & & ✓ & ✓ & \(>\)100\% &
\begin{tabular}{c} Network coding technique to compress compact blocks \\ \end{tabular} & \\ \hline
[99] & ✓ & & & &
\begin{tabular}{c} A block structure with transactions replaced by their \\ hashes \\ \end{tabular} & Requires peers to have a similar transaction pool. Will consume higher bandwidth if dissimilarity is high \\ \hline \hline \end{tabular}
\end{table} 
Table 8: Comparison of Data Layer Techniques. PC = Public Blockchain, PR = Private Blockchain, BI = Blockchain-IoT, BW = Bandwidth. Bandwidth = Reduction in Total Network Bandwidth due to Minimization of Duplicates or Reducing Overhead Caused by Distributed P2P Topology Management. Figure 9: Clustering Technique used by [PERSON] et al. [96]. the number of transactions or peers increases, the task of decoding and reassembling blocks could burden peers. [PERSON] et al. [99] proposed lightblock, a modified and lighter block structure.