TEE-Based Blockchain Storage Using Error-Correcting Data Shards
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Distributed ledger systems (DLSs) face challenges in efficiently storing large amounts of blockchain data, leading to high storage resource consumption and data inequality among nodes, which can compromise data security and processing efficiency.
Innovation Solution
Implementing error correction coding in trusted execution environments (TEEs) to identify infrequently accessed blocks, encode them, and distribute the encoded data across nodes, allowing each node to store a portion and retrieve the rest as needed, while ensuring data authenticity and security.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If every node stores an entire copy of the blockchain, then data completeness is improved, but storage resource consumption increases
Solution Approach 1:
The patent segments the blockchain data into multiple shards, where each node stores only a portion of the data rather than complete copies. This is achieved through data sharding technology that divides the blockchain into manageable segments distributed across different nodes, reducing individual storage requirements while maintaining overall data completeness through the network.
Solution Approach 2:
The patent uses cryptographic copying mechanisms where nodes store cryptographic hashes and verification data instead of complete data copies. This allows nodes to verify data integrity without storing the entire blockchain, significantly reducing storage consumption while maintaining data completeness for verification purposes.
2Quantity of substance
If a few shared nodes store the entire copy of the blockchain, then storage resource consumption is reduced, but data security deteriorates
Solution Approach 1:
The patent implements data sharding that distributes blockchain data across multiple nodes rather than concentrating it in a few shared nodes. Each shard is stored by different nodes, creating a decentralized storage architecture that prevents single-point failures and maintains data security even if some nodes fail or are compromised.
Solution Approach 2:
The patent assigns different data segments to different nodes based on their capabilities and roles, creating a heterogeneous storage distribution. This allows the system to optimize storage allocation while maintaining security through diversity in node distribution and redundancy across the network.
3Reliability
If error correction coding is performed on all blocks, then data security is improved, but computational resource consumption increases
Solution Approach 1:
The patent applies error correction coding selectively rather than to all blocks. It identifies and applies ECC only to critical or frequently accessed blocks, leaving less critical blocks with simpler protection mechanisms. This partial application reduces overall computational overhead while maintaining adequate data security for the most important data.
Solution Approach 2:
The patent dynamically adjusts the error correction coding parameters based on block importance, access frequency, and network conditions. By changing the strength and type of ECC applied according to specific parameters, the system optimizes the balance between data security and computational resource consumption for different blocks.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Disclosed herein are methods, systems, and apparatus, including computer programs encoded on computer storage media, for storing blockchain data. One of the methods includes receiving a request from a blockchain node of the blockchain network to execute one or more software instructions in a trusted execution environment (TEE); determining one or more blocks that are infrequently accessed for executing the one or more software instructions; performing error correction coding of the one or more blocks in the TEE to generate one or more encoded blocks; dividing each of the one or more encoded blocks to a plurality of datasets based on the one or more software instructions; and sending the plurality of datasets and a data storage arrangement to blockchain nodes of the blockchain network based on the one or more software instructions, wherein the data storage arrangement indicates at least one of the plurality of datasets to be stored by each of the blockchain nodes.