# US 11,909,859 B2 · Removing access to blockchain data

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

- Number: US 11,909,859 B2
- Document ID: US11909859B2
- Status: Granted
- Kind: B2
- Application number: 16/890,420
- Filed: 2020-06-02
- Published: 2021-12-02
- Granted: 2024-02-20
- Earliest claimed: 2020-06-02
- Assignees: Sap SE
- Applicants: Sap SE
- Inventors: Jan Schrage
- Web page: https://patentgrep.com/patent/US11909859B2

## CPC

- H04L 9/0637: {Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]}
- H04L 9/3297: {involving time stamps, e.g. generation of time stamps}
- H04L 9/0631: {Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms}
- H04L 9/088: {Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms (network architectures or network communication protocols for using time-dependent keys in a packet data network H04L63/068)}
- H04L 9/3239: {involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD}
- H04L 9/50: {using hash chains, e.g. blockchains or hash trees}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Access to blockchain data may be removed by deleting an encryption key held in a remote server. Incoming data is stored in the blockchain after being encrypted at the key server. An ordinary blockchain user gains access to the data, after forwarding the encrypted data to the remote key server for decryption. Upon receipt of an input (e.g., time stamp), the key server deletes the key. Thereafter, the encrypted data on the blockchain is rendered inaccessible to the ordinary blockchain data user. At no point, does the ordinary data user have access to the key stored in the remote server. Embodiments may find particular use in removing access to personal data stored in a blockchain following the elapse of a predetermined amount of time, as may be required by privacy laws. Granular control over data access can may be afforded through the use of composite keys and/or key hierarchies.

## Claims

### Claim 1

A method comprising:
receiving unencrypted data by a key server from a local source;
encrypting at least a portion of the unencrypted data with at least one composite key stored in a database on the key server to create encrypted data, wherein the at least one composite key comprises a first key associated with a first subset of the encrypted data and a second key associated with a second subset of the encrypted data, wherein the first key and the second key are generated by the key server;
storing the encrypted data in a block of a blockchain, wherein the blockchain is remote from the key server;
receiving an input to the key server;
processing the input to remove access to the encrypted data in the block, wherein the processing comprises:
deleting the first key or a pointer to the first key of the at least one composite key at a first time; and
deleting the second key or a pointer to the second key of the at least one composite key at a second time,
wherein the first time and the second time are independently selected; and
wherein prior to receiving the input, receiving the encrypted data from the blockchain, decrypting the encrypted data, and upon receiving a hold instruction, storing a copy of the decrypted data in a hold database outside of the database on the key server and the blockchain.

### Claim 2 (depends on 1)

The method as in claim 1 further comprising:
prior to receiving the input, receiving the encrypted data from the blockchain;
decrypting the encrypted data using the at least one composite key; and
communicating the decrypted data to a user of the blockchain.

### Claim 3 (depends on 1)

The method as in claim 1 wherein the input comprises an instruction associated with a timestamp.

### Claim 4 (depends on 1)

The method as in claim 1 wherein the encrypted data comprises a symmetrical cipher.

### Claim 5 (depends on 1)

The method as in claim 1 wherein the encrypted data is encrypted according to Advanced Encryption Standard (AES).

### Claim 6 (depends on 1)

The method as in claim 1 wherein:
the database comprises an in-memory database; and
the encryption is performed by an in-memory database engine of the in-memory database.

### Claim 7 (depends on 1)

The method of claim 1, wherein the first key is associated with a category in the encrypted data and the second key is associated with a user identity in the encrypted data.

### Claim 8 (depends on 1)

The method of claim 1, wherein the input comprises a periodic automatic input.

### Claim 9 (depends on 1)

The method of claim 1, wherein the key server and the hold database are located on a restricted side of a system that limits access to particular users, and the blockchain is located on an unrestricted side of the system that allows access to all users.

### Claim 10

A non-transitory computer readable storage medium embodying a computer program for performing a method, said method comprising:
receiving unencrypted data by a key server from a local source;
encrypting at least a portion of the unencrypted data with at least one composite key stored in a database on the key server to create encrypted data, wherein the at least one composite key comprises a first key associated with a first subset of the encrypted data and a second key associated with a second subset of the encrypted data, wherein the first key and the second key are generated by the key server;
storing the encrypted data in a block of a blockchain, wherein the blockchain is remote from the key server;
receiving the encrypted data from the block of the blockchain;
decrypting the encrypted data using the at least one composite key;
communicating the decrypted data to a user of the blockchain;
receiving an input to the key server; and
processing the input to remove access to the encrypted data in the block, wherein the processing comprises:
deleting the first key or a pointer to the first key of the at least one composite key at a first time; and
deleting the second key or a pointer to the second key of the at least one composite key at a second time,
wherein the first time and the second time are independently selected;
wherein prior to receiving the input, receiving the encrypted data from the blockchain, decrypting the encrypted data, and upon receiving a hold instruction, storing a copy of the decrypted data in a hold database outside of the database on the key server and the blockchain.

### Claim 11 (depends on 10)

The non-transitory computer readable storage medium as in claim 10 wherein the input comprises an instruction associated with a timestamp.

### Claim 12 (depends on 10)

The non-transitory computer readable storage medium of claim 10, wherein the first key is associated with a category in the encrypted data and the second key is associated with a user identity in the encrypted data.

### Claim 13 (depends on 10)

The non-transitory computer readable storage medium of claim 10, wherein the first time and the second time are selected by the user.

### Claim 14

A computer system comprising:
one or more processors; and
at least one non-transitory computer readable medium storing computer executable instructions that when executed by the one or more processors cause an in-memory database engine of an in-memory source database to:
receive unencrypted data by a key server from a local source;
encrypt at least a portion of the unencrypted data with at least one composite key stored in the in-memory source database on the key server to create encrypted data, wherein the at least one composite key comprises a first key associated with a first subset of the encrypted data and a second key associated with a second subset of the encrypted data, wherein the first key and the second key are generated by the key server;
store the encrypted data in a block of a blockchain, wherein the blockchain is remote from the key server;
receive an input to the key server; and
process the input to remove access to the encrypted data in the block, wherein the processing comprises:
delete the first key or a pointer to the first key of the at least one composite key at a first time; and
delete the second key or a pointer to the second key of the at least one composite key at a second time,
wherein the first time and the second time are independently selected;
wherein prior to receiving the input, receive the encrypted data from the blockchain, decrypt the encrypted data using the at least one composite key, and communicate the decrypted data to a user of the blockchain.

### Claim 15 (depends on 14)

The system of claim 14, further comprising:
a key server and a hold database located on a restricted side of the system limiting access to particular users, and
the blockchain located on an unrestricted side of the system allowing access to all users.

### Claim 16 (depends on 14)

The computer system as in claim 14 wherein the input comprises an instruction associated with a timestamp.

### Claim 17 (depends on 14)

The computer system of claim 14, wherein the first key is associated with a category in the encrypted data and the second key is associated with a user identity in the encrypted data.

### Claim 18 (depends on 14)

The computer system of claim 14, wherein the input comprises a periodic automatic input.
