Using Homomorphic hashes in coded blockchains

Doriane Perard,Xavier Goffin,Jérôme Lacan
DOI: https://doi.org/10.48550/arXiv.2010.04607
2020-10-08
Abstract:One of the scalability issues of blockchains is the increase of their sizes which can prevent users from storing them and thus from contributing to the decentralization effort. Recent works developed the concept of coded blockchains, which allow users to store only some coded fragments of the blockchains. However, this solution is not protected against malicious nodes that can propagate erroneous coded fragments. We propose in the paper to add homomorphic hashes to this system. This allows for instantaneous detection of erroneous fragments and thus avoids decoding with wrong data. We describe the integration of this mechanism in coded blockchains and we evaluate its complexity theoretically and by simulation.
Cryptography and Security
What problem does this paper attempt to address?
The problem that this paper attempts to solve is, in blockchain technology, the limitations on node storage capacity and decentralization efforts as the blockchain size increases. Specifically, the paper focuses on how to detect and prevent malicious nodes from spreading incorrect coded fragments in coded blockchains, thereby avoiding decoding with incorrect data. To achieve this goal, the author proposes a method of adding homomorphic hashes to the coded blockchain system to instantly detect incorrect coded fragments and ensure the reliability and security of the system. ### Main Contributions 1. **Introduction of Homomorphic Hashes**: By introducing homomorphic hashes in the coded blockchain, incorrect coded fragments can be instantly detected, avoiding the problem of decoding with incorrect data. 2. **System Integration and Complexity Analysis**: It describes in detail how to integrate the homomorphic hash mechanism into the coded blockchain and evaluates its theoretical and simulation complexity. ### Specific Methods 1. **Data Encoding**: - **Block Segmentation**: Divide block \( B(j) \) into \( k \) fragments \( F(j)_l \), and each fragment consists of \( m \) finite - field elements. - **Homomorphic Hash Calculation**: Calculate the homomorphic hash \( h(F(j)_l) \) of each fragment. The formula is as follows: \[ h(F(j)_l)=\prod_{v = 1}^m g^{f(j)_{l,v}}_v\ mod\ p \] - **Generate Coded Fragments**: Generate coded fragments \( F(i,j)_u \) through linear combination. The formula is as follows: \[ F(i,j)_u=\alpha(i,j)_{k.u}\cdot F(j)_1+\cdots+\alpha(i,j)_{(k + 1).u - 1}\cdot F(j)_k \] - **Store Data**: The node deletes the original block \( B(j) \) and stores \( r \) coded fragments and their hash values. 2. **Data Recovery**: - **Download Coded Fragment Hashes**: The node downloads \( k(1+\epsilon) \) hash values from different nodes. - **Hash Verification**: Verify whether the downloaded hash values are correct. - **Download Coded Fragments**: If the hash value verification passes, the node downloads the corresponding coded fragments. - **Coded Fragment Verification**: Verify the hash value of each received coded fragment. - **Block Decoding**: Decode the block to recover the original data. ### Security and Scalability - **Scalability**: By adjusting parameters \( r \) and \( k \), nodes can flexibly participate in blockchain maintenance according to their own storage capacity. - **Malicious Node Identification**: Homomorphic hashes allow the identification and blacklisting of malicious nodes that provide incorrect coded fragments, improving the security of the system. ### Parameter Analysis - **Selection of Finite Field**: Selecting an appropriate finite field \( Z_p \) has an impact on both block recovery probability and coding - decoding complexity. - **Coding Complexity**: Coding complexity mainly depends on \( r \), while decoding complexity mainly depends on \( k \). - **Homomorphic Hash Complexity**: The time complexity of calculating the homomorphic hash is \( O(m) \), and the time complexity of verifying the coded fragment hash is \( O(m)+O(d) \). ### Conclusion The main contribution of the paper is to propose a method of using homomorphic hashes in coded blockchains to detect and prevent incorrect coded fragments, thereby improving the reliability and security of the system. Future work will focus on optimizing system parameters to find the best balance among compression, complexity, and security.