# US 2021/0176038 A1 · Efficient threshold storage of data object

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2021/0176038 A1
- Document ID: US20210176038A1
- Status: Published application
- Kind: A1
- Application number: 16/705,207
- Filed: 2019-12-05
- Published: 2021-06-10
- Earliest claimed: 2019-12-05
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Vita Bortnikov; Michael Factor; Jason Resch
- Web page: https://patentgrep.com/patent/US20210176038A1

## CPC

- H04L 9/0637: {Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]}
- H04L 9/3239: {involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD}
- G06F 9/54: Interprogram communication
- G06F 21/602: {Providing cryptographic facilities or services}
- G06F 21/64: Protecting data integrity, e.g. using checksums, certificates or signatures
- H04L 9/0643: {Hash functions, e.g. MD5, SHA, HMAC or f9 MAC}
- H04L 9/085: {Secret sharing or secret splitting, e.g. threshold schemes}
- H04L 9/0894: {Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage}
- H04L 9/50: {using hash chains, e.g. blockchains or hash trees}
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- H04L 67/104: Peer-to-peer [P2P] networks
- H04L 67/1055: {involving connection limits (involving dynamic management of active down- or uploading connections H04L67/1085)}
- H04L 2209/56: Financial cryptography, e.g. electronic payment or e-cash
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## 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

### Claim 1

An apparatus comprising:
a 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 the hashed data object and a different respective hashed part; and
a network interface configured to distribute the plurality of slices across a plurality of blockchain peers, respectively.

### Claim 2 (depends on 1)

The apparatus of claim 1, wherein the processor divides the data object into N parts that correspond to N blockchain peers, where reconstruction of the data object can be performed with any k of the N parts, and k is less than N.

### Claim 3 (depends on 2)

The apparatus of claim 2, wherein the 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.

### Claim 4 (depends on 2)

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

### Claim 5 (depends on 1)

The apparatus of claim 1, wherein the 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.

### Claim 6 (depends on 1)

The apparatus of claim 1, wherein in response to a request for the data object, the 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.

### Claim 7 (depends on 6)

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

### Claim 8 (depends on 6)

The apparatus of claim 6, wherein the 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.

### Claim 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 the hashed data object and a different respective hashed part; and
distributing the plurality of slices across a plurality of blockchain peers, respectively.

### Claim 10 (depends on 9)

The method of claim 9, wherein the dividing comprises breaking-up the data object into N parts that correspond to N blockchain peers, where reconstruction of the data object can be performed with any k of the N parts, and k is less than N.

### Claim 11 (depends on 10)

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.

### Claim 12 (depends on 10)

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

### Claim 13 (depends on 9)

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.

### Claim 14 (depends on 9)

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.

### Claim 15 (depends on 14)

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

### Claim 16 (depends on 14)

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.

### Claim 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 the hashed data object and a different respective hashed part; and
distributing the plurality of slices across a plurality of blockchain peers, respectively.

### Claim 18 (depends on 17)

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 reconstruction of the data object can be performed with any k of the N parts, and k is less than N.

### Claim 19 (depends on 18)

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.

### Claim 20 (depends on 18)

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.
