IP Library Granted Patent US 11,057,190
Granted Patent B2
US 11,057,190 · App. 17/082,339 · Granted Jul 6, 2021

Data security of shared blockchain data storage based on error correction code

Inventors: Zhonghao Lu (Hangzhou, CN); Haizhen Zhuo (Hangzhou, CN)
Assignee: Alipay (Hangzhou) Information Technology Co., Ltd.
H04L9/0637G06F21/602G06F21/64H04L9/0643H04L2209/38
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,057,190
App. No.
17/082,339
Granted
Jul 6, 2021
Kind
B2
Abstract

Disclosed herein are methods, systems, and computer-readable media for storing blockchain data. Exemplary methods includes receiving a request from a blockchain node requesting removal from a blockchain network; identifying a plurality of blocks associated with blockchain data stored by the blockchain node; determining: a first difference between a number of remaining blockchain nodes excluding the blockchain node requesting removal and a maximum number of tolerable faulty blockchain nodes, a second difference between the number of remaining blockchain nodes storing a dataset of information bits or redundant bits divided from an ECC-encoded version of the block and the number of remaining blockchain nodes storing a dataset of redundant bits divided from the ECC-encoded version of the block, and smaller of the first and second difference; and retrieving blockchain data associated with the block from the blockchain node in response to determining that the first difference is less than the second difference.

Claims (67)

1. A computer-implemented method for processing blockchain data in a trusted execution environment (TEE) executing on a computing device communicably coupled to a blockchain network, the method comprising:

receiving a request from a blockchain node to be removed from the blockchain network;

identifying a plurality of blocks associated with blockchain data stored by the blockchain node;

determining, for each block in the plurality of blocks:

a first difference between a total number of remaining blockchain nodes of the blockchain network excluding the blockchain node requesting to be removed and a maximum number of faulty blockchain nodes tolerable by the remaining blockchain nodes,

a second difference between a first number of the remaining blockchain nodes that store a dataset of information bits or redundant bits divided from an error correction coding (ECC) encoded version of the block and a second number of the remaining blockchain nodes that store a dataset of redundant bits divided from the ECC encoded version of the block, and

whether the first difference is less than the second difference;

retrieving blockchain data associated with the block from the blockchain node in response to determining that the first difference is less than the second difference; and

allowing the request from the blockchain node to be removed from the blockchain network after the retrieving the blockchain data.

2. The method of claim 1 , further comprising:

determining that the blockchain data associated with the block is the block itself; and

encoding the block using ECC to generate an encoded block, wherein a code rate of the block equals a minimum number of honest blockchain nodes required by the remaining blockchain nodes divided by a total number of the remaining blockchain nodes, and wherein the minimum number of honest blockchain nodes required and the maximum number of faulty blockchain nodes tolerable add up to a total number of the remaining blockchain nodes.

3. The method of claim 1 , further comprising:

determining that the blockchain data associated with the block is a dataset divided from an ECC encoded version of the block;

retrieving a remainder of datasets divided from the ECC encoded version of the block from a plurality of blockchain nodes;

decoding the block based on the dataset and the remainder of datasets; and

encoding the block using ECC to generate an encoded block, wherein a code rate of the block equals a minimum number of honest blockchain nodes required by the remaining blockchain nodes divided by a total number of remaining blockchain nodes, and wherein the minimum number of honest blockchain nodes required and the maximum number of faulty blockchain nodes tolerable add up to a total number of the remaining blockchain nodes.

4. The method of claim 2 , further comprising:

dividing the encoded block into a plurality of datasets after the encoding the block using the ECC, wherein a number of the plurality of datasets equals the total number of the remaining blockchain nodes;

calculating hash values of the plurality of datasets; and

sending one of the plurality of datasets and hash values of the selected dataset to each of the remaining blockchain nodes.

5. The method of claim 2 , wherein the ECC is performed when utilization rate of computational resource of the computing device is less than or equal to a predetermined value.

6. The method of claim 2 , wherein the ECC is erasure coding performed by adding redundant bits to one or more blocks.

7. The method of claim 1 , wherein the maximum number of faulty blockchain nodes tolerable is determined based on a practical Byzantine fault tolerance (PBFT) consensus protocol.

8. A system communicating shared blockchain data, comprising:

one or more processors; and

one or more computer-readable devices coupled to the one or more processors and having tangible, non-transitory, machine-readable media storing one or more instructions that, when executed by the one or more processors, perform operations comprising:

receiving a request from a blockchain node to be removed from a blockchain network;

identifying a plurality of blocks associated with blockchain data stored by the blockchain node;

determining, for each block in the plurality of blocks:

a first difference between a total number of remaining blockchain nodes of the blockchain network excluding the blockchain node requesting to be removed and a maximum number of faulty blockchain nodes tolerable by the remaining blockchain nodes,

a second difference between a first number of the remaining blockchain nodes that store a dataset of information bits or redundant bits divided from an error correction coding (ECC) encoded version of the block and a second number of the remaining blockchain nodes that store a dataset of redundant bits divided from the ECC encoded version of the block, and

whether the first difference is less than the second difference;

retrieving blockchain data associated with the block from the blockchain node in response to determining that the first difference is less than the second difference; and

allowing the request from the blockchain node to be removed from the blockchain network after the retrieving the blockchain data.

9. The system of claim 8 , the operations further comprising:

determining that the blockchain data associated with the block is the block itself; and

encoding the block using ECC to generate an encoded block, wherein a code rate of the block equals a minimum number of honest blockchain nodes required by the remaining blockchain nodes divided by a total number of the remaining blockchain nodes, and wherein the minimum number of honest blockchain nodes required and the maximum number of faulty blockchain nodes tolerable add up to a total number of the remaining blockchain nodes.

10. The system of claim 8 , the operations further comprising:

determining that the blockchain data associated with the block is a dataset divided from an ECC encoded version of the block;

retrieving a remainder of datasets divided from the ECC encoded version of the block from a plurality of blockchain nodes;

decoding the block based on the dataset and the remainder of datasets; and

encoding the block using ECC to generate an encoded block, wherein a code rate of the block equals a minimum number of honest blockchain nodes required by the remaining blockchain nodes divided by a total number of remaining blockchain nodes, and wherein the minimum number of honest blockchain nodes required and the maximum number of faulty blockchain nodes tolerable add up to a total number of the remaining blockchain nodes.

11. The system of claim 9 , the operations further comprising:

dividing the encoded block into a plurality of datasets after the encoding the block using the ECC, wherein a number of the plurality of datasets equals the total number of the remaining blockchain nodes;

calculating hash values of the plurality of datasets; and

sending one of the plurality of datasets and hash values of the selected dataset to each of the remaining blockchain nodes.

12. The system of claim 9 , wherein the ECC is performed when utilization rate of computational resource of the computing device is less than or equal to a predetermined value.

13. The system of claim 9 , wherein the ECC is erasure coding performed by adding redundant bits to one or more blocks.

14. The system of claim 8 , wherein the maximum number of faulty blockchain nodes tolerable is determined based on a practical Byzantine fault tolerance (PBFT) consensus protocol.

15. A non-transitory, computer-readable medium storing one or more instructions executable by a computer system to perform operations comprising:

receiving a request from a blockchain node to be removed from a blockchain network;

identifying a plurality of blocks associated with blockchain data stored by the blockchain node;

determining, for each block in the plurality of blocks:

a first difference between a total number of remaining blockchain nodes of the blockchain network excluding the blockchain node requesting to be removed and a maximum number of faulty blockchain nodes tolerable by the remaining blockchain nodes,

a second difference between a first number of the remaining blockchain nodes that store a dataset of information bits or redundant bits divided from an error correction coding (ECC) encoded version of the block and a second number of the remaining blockchain nodes that store a dataset of redundant bits divided from the ECC encoded version of the block, and

whether the first difference is less than the second difference;

retrieving blockchain data associated with the block from the blockchain node in response to determining that the first difference is less than the second difference; and

allowing the request from the blockchain node to be removed from the blockchain network after the retrieving the blockchain data.

16. The non-transitory, computer-readable medium of claim 15 , the operations further comprising:

determining that the blockchain data associated with the block is the block itself; and

encoding the block using ECC to generate an encoded block, wherein a code rate of the block equals a minimum number of honest blockchain nodes required by the remaining blockchain nodes divided by a total number of the remaining blockchain nodes, and wherein the minimum number of honest blockchain nodes required and the maximum number of faulty blockchain nodes tolerable add up to a total number of the remaining blockchain nodes.

17. The non-transitory, computer-readable medium of claim 15 , the operations further comprising:

determining that the blockchain data associated with the block is a dataset divided from an ECC encoded version of the block;

retrieving a remainder of datasets divided from the ECC encoded version of the block from a plurality of blockchain nodes;

decoding the block based on the dataset and the remainder of datasets; and

encoding the block using ECC to generate an encoded block, wherein a code rate of the block equals a minimum number of honest blockchain nodes required by the remaining blockchain nodes divided by a total number of remaining blockchain nodes, and wherein the minimum number of honest blockchain nodes required and the maximum number of faulty blockchain nodes tolerable add up to a total number of the remaining blockchain nodes.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2021
From: LU, ZHONGHAO; ZHUO, HAIZHEN
To: ALIPAY (HANGZHOU) INFORMATION TECHNOLOGY CO., LTD.
Reel/Frame 055592/0376 →
Continuity (2)
Continuation PCTCN2019115878 · Nov 6, 2019
Related Publication 20210044422A1 · Feb 11, 2021
Cited By (1)
US 12,306,709