IP Library Granted Patent US 11,368,285
Granted Patent B2
US 11,368,285 · App. 16/705,207 · Granted Jun 21, 2022

Efficient threshold storage of data object

Inventors: Vita Bortnikov (Haifa, IL); Michael Factor (Haifa, IL); Jason Resch (Chicago, IL)
Assignee: International Business Machines Corporation
H04L9/0637G06F9/54G06F21/602H04L9/0643H04L9/0894H04L67/104
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,368,285
App. No.
16/705,207
Granted
Jun 21, 2022
Kind
B2
Abstract

An example operation may include one or more of dividing a data object into a plurality of parts, hashing the data object to generate a hashed data object and hashing the plurality of parts to generate a plurality of hashed parts, generating a plurality of slices where each slice includes the hashed data object and a different respective hashed part, and distributing the plurality of slices across a plurality of blockchain peers, respectively.

Claims (33)

1. An apparatus comprising:

a hardware processor configured to

divide a data object into a plurality of parts,

hash the data object to generate a hashed data object and hash the plurality of parts to generate a plurality of hashed parts, and

generate a plurality of slices where each slice includes a copy of the hashed data object and a different respective hashed part from among the plurality of hashed parts; and

a network interface configured to distribute a plurality of blockchain transactions with the plurality of slices to a plurality of blockchain peers, respectively, such that each blockchain peer receives a blockchain transaction with a different slice.

2. The apparatus of claim 1 , wherein the hardware processor divides the data object into N parts that correspond to N blockchain peers, where any k of the N parts are capable of reconstructing the data object, and k is less than N.

3. The apparatus of claim 2 , wherein the hardware processor is further configured to assign indices between 1 and N to the N blockchain peers, respectively, and control the network interface to distribute N slices to the N blockchain peers based on the assigned indices.

4. The apparatus of claim 2 , wherein the hardware processor is configured to divide the data object into m equal-sized parts and add k additional parts of data for resiliency to loss to generate the N parts.

5. The apparatus of claim 1 , wherein the hardware processor is further configured to encrypt the plurality of slices with an encryption key, where only a partial portion of the encryption key is held by each of the blockchain peers such that no single blockchain peer stores the encryption key in its entirety.

6. The apparatus of claim 1 , wherein in response to a request for the data object, the hardware processor is configured to retrieve a subset of slices from among a subset of the blockchain peers, and reconstruct the data object from hashed parts included in the subset of slices.

7. The apparatus of claim 6 , wherein the hardware processor is further configured to verify the reconstructed data object based on the copy of the hashed data object stored in one of the retrieved slices.

8. The apparatus of claim 6 , wherein the hardware processor is configured to retrieve the subset of slices via a slice retrieval application programming interface (API) that runs on the subset of blockchain peers.

9. A method comprising:

dividing a data object into a plurality of parts;

hashing the data object to generate a hashed data object and hashing the plurality of parts to generate a plurality of hashed parts;

generating a plurality of slices where each slice includes a copy of the hashed data object and a different respective hashed part from among the plurality of hashed parts; and

distributing a plurality of blockchain transactions with the plurality of slices to a plurality of blockchain peers, respectively, such that each blockchain peer receives a blockchain transaction with a different slice.

10. The method of claim 9 , wherein the dividing comprises breaking-up the data object into N parts that correspond to N blockchain peers, where any k of the N parts are capable of reconstructing the data object, and k is less than N.

11. The method of claim 10 , wherein the distributing comprises assigning indices between 1 and N to the N blockchain peers, respectively, and distributing N slices to the N blockchain peers based on the assigned indices.

12. The method of claim 10 , wherein the dividing comprises dividing the data object into m equal-sized parts and adding k additional parts of data for resiliency to loss to generate the N parts.

13. The method of claim 9 , further comprising encrypting the plurality of slices with an encryption key, where only a partial portion of the encryption key is held by each of the blockchain peers such that no single blockchain peer stores the encryption key in its entirety.

14. The method of claim 9 , wherein in response to a request for the data object, the method further comprises retrieving a subset of slices from among a subset of the blockchain peers, and reconstructing the data object from hashed parts included in the subset of slices.

15. The method of claim 14 , further comprising verifying the reconstructed data object based on the copy of the hashed data object stored in one of the retrieved slices.

16. The method of claim 14 , wherein the retrieving of the subset of slices is performed via a slice retrieval application programming interface (API) that runs on the subset of blockchain peers.

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

dividing a data object into a plurality of parts;

hashing the data object to generate a hashed data object and hashing the plurality of parts to generate a plurality of hashed parts;

generating a plurality of slices where each slice includes a same copy of the hashed data object and a different respective hashed part from among the plurality of hashed parts; and

distributing a plurality of blockchain transactions with the plurality of slices to a plurality of blockchain peers, respectively, such that each blockchain peer receives a blockchain transaction with a different slice.

18. The non-transitory computer-readable medium of claim 17 , wherein the dividing comprises breaking-up the data object into N parts that correspond to N blockchain peers, where any k of the N parts are capable of reconstructing the data object, and k is less than N.

19. The non-transitory computer-readable medium of claim 18 , wherein the distributing comprises assigning indices between 1 and N to the N blockchain peers, respectively, and distributing N slices to the N peers based on the assigned indices.

20. The non-transitory computer-readable medium of claim 18 , wherein in response to a request for the data object, the method further comprises retrieving a subset of slices from among a subset of the blockchain peers, and reconstructing the data object from hashed parts included in the subset of slices.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2019
From: BORTNIKOV, VITA; FACTOR, MICHAEL; RESCH, JASON
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 051197/0073 →
Continuity (1)
Related Publication 20210176038A1 · Jun 10, 2021