IP Library Granted Patent US 11,711,202
Granted Patent B2
US 11,711,202 · App. 16/424,765 · Granted Jul 25, 2023

Committing data to blockchain based on approximate hash verification

Inventor: Praveen Jayachandran (Bangalore, IN)
Assignee: International Business Machines Corporation
H04L9/0643G06F16/1805G06F16/1824G06F16/1834G06F16/2246G06Q20/382H04L9/50
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,711,202
App. No.
16/424,765
Granted
Jul 25, 2023
Kind
B2
Abstract

An example operation may include one or more of receiving a data block for storage on a blockchain from an orderer node, the data block comprising a full-step hash of a storage request and a reduced-step hash of the storage request, performing an approximate hash verification on the data block based on the reduced-step hash of the storage request included in the data block, and in response to a success of the approximate hash verification, committing the data block among a hash-linked chain of data blocks stored within a distributed ledger of a blockchain.

Claims (47)

1. A computing system comprising:

a network interface configured to receive a message including a data block that is yet to be committed to a blockchain ledger of the computing system, where the message comprises a full-step hash of a blockchain transaction in the data block and a reduced-step hash of the blockchain transaction in the data block; and

a hardware processor configured to

determine whether to verify the blockchain transaction via the reduced-step hash instead of the full-step hash based on a notification included in the message,

in response to a determination to verify the blockchain transaction via the reduced-step hash, verify the data block against a current state of the blockchain ledger via execution of a reduced hash verification based on the reduced-step hash of the blockchain transaction included in the data block, and

in response to a success of the approximate hash verification, commit the data block including the blockchain transaction to a hash-linked chain of data blocks within the blockchain ledger of the computing system;

wherein the full-step hash of the blockchain transaction is generated by application of a function a first predetermined number of times and the reduced-step hash of the blockchain transaction is generated by application of the function a second predetermined number of times that is less than the first predetermined number of times.

2. The computing system of claim 1 , wherein the blockchain transaction is represented within a Merkle tree data structure of the data block.

3. The computing system of claim 1 , wherein the hardware processor is further configured to determine whether to perform the full-step hash verification or the reduced-step hash verification based on a policy of the blockchain ledger.

4. The computing system of claim 1 , wherein the reduced-step hash verification comprises generating a corresponding reduced-step hash of the blockchain transaction for verification without generation of the full-step hash of the blockchain transaction.

5. The computing system of claim 1 , wherein the hardware processor is further configured to, in response to a failure of the reduced-step hash verification, commit the data block to the blockchain ledger with an indicator that the verification of the blockchain transaction failed.

6. The computing system of claim 1 , wherein the hardware processor is configured to store the reduced-step hash verification in the data block of the hash-linked chain of blocks and store a file included in the blockchain transaction within an off-chain storage device.

7. A method comprising:

receiving a message including a data block that is yet to be committed to a blockchain ledger of a computing system, the message comprising a full-step hash of a blockchain transaction in the data block and a reduced-step hash of the blockchain transaction in the data block;

determining whether to verify the blockchain transaction via the reduced-step hash instead of the full-step hash based on a notification included in the message;

in response to a determination to verify the blockchain transaction via the reduced-step hash, verifying the data block against a current state of the blockchain ledger via execution of a reduced hash verification based on the reduced-step hash of the blockchain transaction included in the data block; and

in response to a success of the approximate hash verification, committing the data block including the blockchain transaction among a hash-linked chain of data blocks within the blockchain ledger;

wherein the full-step hash of the blockchain transaction is generated by application of a function a first predetermined number of times and the reduced-step hash of the blockchain transaction is generated by application of the function a second predetermined number of times that is less than the first predetermined number of times.

8. The method of claim 7 , wherein the blockchain transaction is represented within a Merkle tree data structure of the data block.

9. The method of claim 7 , further comprising determining whether to perform a full-step hash verification or a reduced-step hash verification based on a blockchain policy.

10. The method of claim 7 , wherein the reduced-step hash verification comprises generating the reduced-step hash of the blockchain transaction without generating the full-step hash of the blockchain transaction.

11. The method of claim 7 , further comprising in response to a failure of the reduced-step hash verification, committing the data block to the blockchain ledger with an indicator that the verification of the blockchain transaction failed.

12. The method of claim 7 , wherein the committing comprises storing the reduced-step hash verification in the data block of the hash-linked chain of blocks and storing a file included in the blockchain transaction within an off-chain storage device.

13. A non-transitory computer readable medium comprising instructions, that when read by a processor, cause the processor to perform a method comprising:

receiving a message including a data block that is yet to be committed to a blockchain ledger of a computing system, the data block comprising a full-step hash of a blockchain transaction in the data block and a reduced-step hash of the blockchain transaction in the data block;

determining whether to verify the blockchain transaction via the reduced-step hash instead of the full-step hash based on a notification included in the message;

in response to a determination to verify the blockchain transaction via the reduced-step hash, verifying the data block against a current state of the blockchain ledger via execution of a reduced hash verification based on the reduced-step hash of the blockchain transaction included in the data block; and

in response to a success of the approximate hash verification, committing the data block including the blockchain transaction among a hash-linked chain of data blocks within the blockchain ledger;

wherein a full-step hash value of a blockchain transaction is generated by application of a function a first predetermined number of times and a reduced-step hash value of a blockchain transaction is generated by application of the function a second predetermined number of times that is less than the first predetermined number of times.

14. A computing system comprising:

a hardware processor configured to receive a plurality of reduced-step hash values and a plurality of full-step hash values of a plurality of blockchain transactions which have yet to be committed to a blockchain ledger, respectively, arrange the plurality of reduced-step hash values and the plurality of full-step hash values of the plurality of blockchain transactions within a data block based on time information, and generate a message including the data block along with notifications which indicate whether to use the plurality of full-step hash values or the plurality of reduced-step hash values for verification of the plurality of blockchain transactions in the data block; and

a network interface configured to broadcast the data block with the plurality of ordered reduced-step hash values to a plurality of blockchain peer nodes of the blockchain ledger,

wherein a full-step hash value of a blockchain transaction is generated by application of a function a first predetermined number of times and a reduced-step hash value of a blockchain transaction is generated by application of the function a second predetermined number of times that is less than the first predetermined number of times.

15. The computing system of claim 14 , wherein the function comprises a non-linear hash function that is applied to content within the blockchain transaction.

16. The computing system of claim 14 , wherein a length of a data value created by a full-step hash operation on the blockchain transaction is equal to a length of a data value created by a reduced-step hash operation on the blockchain transaction.

17. The computing system of claim 14 , wherein the hardware processor is configured to arrange the plurality of reduced-step values within the data block in a chronological order of in which they were received.

18. The computing system of claim 14 , wherein the hardware processor is further configured to store the plurality of full-step values with the plurality of reduced-step hash values in the data block.

19. A method comprising:

receiving a plurality of reduced-step hash values and a plurality of full-step hash values of a plurality of blockchain transactions which have yet to be committed to a blockchain ledger, respectively;

arranging the plurality of reduced-step hash values and the plurality of full-step hash values within a data block based on timing information;

generating a message including the data block along with notifications which indicate whether to use the plurality of full-step hash values or the plurality of reduced-step hash values for verification of the plurality of blockchain transactions in the data block; and

broadcasting the message including the data block to a plurality of blockchain peer nodes of the blockchain ledger,

wherein a full-step hash value of a blockchain transaction is generated by application of a function a first predetermined number of times and a reduced-step hash value of the blockchain transaction is generated by application of the function a second predetermined number of times that is less than the first predetermined number of times.

20. The method of claim 19 , wherein the function comprises a non-linear hash function that is applied to content within the blockchain transaction.

21. The method of claim 19 , wherein a length of a data value created by a full-step hash operation on the blockchain transaction is equal to a length of a data value created by a reduced-step hash operation on the blockchain transaction.

22. The method of claim 19 , wherein the arranging comprises arranging the plurality of reduced-step hash values within the data block in a chronological order of in which they were received.

23. The method of claim 19 , wherein the method further comprises storing the plurality of full-step hash values with the reduced-step hash values in the data block.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2019
From: JAYACHANDRAN, PRAVEEN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 049303/0532 →
Continuity (1)
Related Publication 20200382280A1 · Dec 3, 2020
Cited By (2)
US 12,219,052 US 12,531,720