# US 12,010,213 B2 · Pruning entries in tamper-evident data stores

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

- Number: US 12,010,213 B2
- Document ID: US12010213B2
- Status: Granted
- Kind: B2
- Application number: 17/033,459
- Filed: 2020-09-25
- Published: 2021-04-01
- Granted: 2024-06-11
- Earliest claimed: 2019-09-27
- Assignees: Schvey, Inc.
- Applicants: Schvey, Inc.
- Inventors: Jeffrey Schvey; George Rabanca; Joby Thundil; Josh Dillon
- Web page: https://patentgrep.com/patent/US12010213B2

## CPC

- H04L 9/0643: {Hash functions, e.g. MD5, SHA, HMAC or f9 MAC}
- H04L 9/3239: {involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD}
- G06F 9/45508: {Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation}
- G06F 9/466: {Transaction processing}
- G06F 16/9024: {Graphs; Linked lists (G06F16/9027 takes precedence)}
- H04L 9/0891: {Revocation or update of secret information, e.g. encryption key update or rekeying}
- H04L 9/12: Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
- H04L 9/3255: {using group based signatures, e.g. ring or threshold signatures}
- 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)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Provided is a process that includes pruning entries in a tamper-evident data store while maintaining tamper-evident properties of prior and subsequent entries after pruning. Operations include traversing a linked list of instances of program state of a smart contract in the tamper-evident data store and pruning identified instances of program state in the tamper-evident data store.

## Claims

### Claim 1

A tangible, non-transitory, machine-readable medium storing instructions that when executed by one or more processors effectuate operations comprising:
receiving, with a computer system, a request to prune data stored in a tamper-evident data store, wherein:
the data includes first program state of a first program at a first time,
the first program is one of a plurality of programs having program state stored in the tamper-evident data store,
the request uniquely identifies the first program with an identifier that distinguishes the first program from a second program among the plurality of programs,
the tamper-evident data store comprises a directed acyclic graph of cryptographic hash pointers,
a first subset of the cryptographic hash pointers have cryptographic hash values based on the first program state of the first program at the first time,
a second subset of the cryptographic hash pointers have cryptographic hash values based on second program state of the first program at a second time,
a third subset of the cryptographic hash pointers have cryptographic hash values based on the first program state of the first program at the first time, the second program state of the first program at the second time, and a program state of the second program from before the first time, and
the tamper-evident data store comprises or is associated with a record that links the first subset of the cryptographic hash pointers to the second subset of the cryptographic hash pointers;
in response to the request, based on the identifier and the record that links the first subset of the cryptographic hash pointers to the second subset of the cryptographic hash pointers, with the computer system, selecting:
a first subset of nodes of the directed acyclic graph having first content based on the first program state of the first program at the first time, the hash values of first subset of the cryptographic hash pointers being based on the first content, and
a second subset of nodes of the directed acyclic graph having second content based on the second program state of the first program at the second time, the hash values of second subset of the cryptographic hash pointers being based on the second content;
pruning, with the computer system, the first program state and the second program state from the tamper-evident data store by changing the first content and the second content in memory, wherein:
after the pruning, cryptographic hash values of the directed acyclic graph of cryptographic hash pointers are internally consistent, and
after the pruning, the program state of the second program from before the first time remains in the tamper-evident data store.

### Claim 2 (depends on 1)

The tangible, non-transitory, machine-readable medium of claim 1, wherein:
receiving comprises receiving an invocation of a subroutine of the first program sent to an address of the first program on a permissioned decentralized computing platform configured to persist state to the tamper-evident data store;
the address is based on an address of a creator of the first program and a count of programs previously deployed by the creator;
the subroutine, upon being interpreted to bytecode, invokes a pruning opcode of a virtual machine, upon replicated instances of which virtual machine the first program is redundantly executed on a plurality of computing nodes of the decentralized computing platform;
the record comprises a linked list of nodes in the tamper-evident data store based on program state of the first program at different times;
the first content comprises a cryptographic transaction hash of a transaction on the decentralized computing platform by which the first program was deployed;
pruning comprises changing the cryptographic transaction hash of the transaction on the decentralized computing platform by which the first program was deployed;
the second content comprises a cryptographic storage hash based on a root node of a first trie of cryptographic hash pointers having program state of the first program but not the second program;
pruning comprises changing the cryptographic storage hash;
the second content comprises a transaction by which the first program was invoked to mutate program state of the first program from the first program state to the second program state;
the transaction by which the first program was invoked to mutate program state of the first program is stored in a second trie of cryptographic hash pointers, the second trie of cryptographic hash pointers having transactions with programs among the plurality of programs other than the first program; and
pruning comprises changing, in the second trie of cryptographic hash pointers, the transaction by which the first program was invoked to mutate program state of the first program from the first program state to the second program state.

### Claim 3 (depends on 1)

The tangible, non-transitory, machine-readable medium of claim 1, wherein:
pruning comprises de-indexing entries in the tamper-evident data store and designating entries as having been pruned in the tamper-evident data store.

### Claim 4 (depends on 1)

The tangible, non-transitory, machine-readable medium of claim 1, wherein pruning comprises:
iterating through each instance of program state of the first program, including the first program state and the second program state and, at each of at least a plurality of iterations:
in a current-iteration entry in a state trie, changing a current-iteration cryptographic code hash value based on code of the first program;
in the current-iteration entry in a state trie, changing a current-iteration cryptographic storage hash value based on data stored by the first program;
changing values other than a current-iteration cryptographic receipt hash in a current-iteration transaction entry identified by a cryptographic transaction hash in the current-iteration entry in the state trie;
changing values in an entry in a receipt trie identified by the current-iteration cryptographic receipt hash; and
accessing a current-iteration pointer to a predecessor entry in a state trie.

### Claim 5 (depends on 1)

The tangible, non-transitory, machine-readable medium of claim 1, wherein pruning is executed synchronously between instances in which transaction tries are added to the directed acyclic graph of cryptographic hash pointers.

### Claim 6 (depends on 1)

The tangible, non-transitory, machine-readable medium of claim 1, the operations comprising synchronizing a new computing node with a network of computing nodes storing the tamper-evident data store by chronologically executing a history of transactions stored in the tamper-evident data, wherein synchronizing comprises:
determining that a first transaction has not been pruned, and in response, executing the first transaction; and
determining that a second transaction has been pruned, and in response, not executing the second transaction.

### Claim 7 (depends on 1)

The tangible, non-transitory, machine-readable medium of claim 1, wherein:
bytecode of the first program remains in the tamper-evident data store after pruning.

### Claim 8 (depends on 1)

The tangible, non-transitory, machine-readable medium of claim 1, the operations comprising:
before pruning and after receiving the request, determining that an amount of pruning within a threshold duration of time is less than a threshold.

### Claim 9 (depends on 1)

The tangible, non-transitory, machine-readable medium of claim 1, the operation comprising:
before pruning and after receiving the request, determining that an entity requesting pruning is authorized to cause the pruning based, in part, on which data is requested to be pruned.

### Claim 10 (depends on 1)

The tangible, non-transitory, machine-readable medium of claim 1, wherein pruning comprises:
changing local copies of the tamper-evident data store on each of a plurality of computing nodes of a decentralized computing platform with a local instance of a virtual machine executing at least part of the first program.

### Claim 11 (depends on 10)

The tangible, non-transitory, machine-readable medium of claim 10, wherein the at least part of the first program invokes an opcode of the virtual machine, the opcode being configured to receive as an argument an address of a smart contract to be pruned.

### Claim 12 (depends on 11)

The tangible, non-transitory, machine-readable medium of claim 11, wherein the opcode is configured to cause an event indicating pruning to be emitted during execution, the event including an identifier of the first program.

### Claim 13 (depends on 1)

The tangible, non-transitory, machine-readable medium of claim 1, wherein pruning comprises determining that pruned data is not referenced by another program among the plurality of programs.

### Claim 14 (depends on 1)

The tangible, non-transitory, machine-readable medium of claim 1, wherein pruning comprises recursing a graph of programs created by the first program or through programs crated by the first program and pruning data of programs in the graph of programs from the tamper-evident data store.

### Claim 15 (depends on 1)

The tangible, non-transitory, machine-readable medium of claim 1, wherein:
the tamper-evident data store comprises a plurality of channels; and
the plurality of programs execute on decentralized computing platform that persists program state to the tamper-evident data store in association with corresponding ones of the channels and prevents cross-channel access to stored data.

### Claim 16 (depends on 1)

The tangible, non-transitory, machine-readable medium of claim 1, wherein:
tamper-evident data store stores transactions in a relational database and renders transactions tamper-evident through multi-party cryptographic signatures based on content of the transactions.

### Claim 17 (depends on 1)

The tangible, non-transitory, machine-readable medium of claim 1, wherein:
the first program is a smart contract of a Turing-complete decentralized computing platform;
the decentralized computing platform executes the smart contract on a plurality of peer computing nodes; and
the plurality of peer computing nodes use means for determining consensus to determine a result of the smart contract execution.

### Claim 18 (depends on 1)

The tangible, non-transitory, machine-readable medium of claim 1, the operations comprising:
executing a third program that transfers a cryptographic token from a first account to a second account or associates an unspent transaction output including the cryptographic token with an address of a user.

### Claim 19 (depends on 1)

The tangible, non-transitory, machine-readable medium of claim 1, wherein:
pruning comprises steps for pruning.

### Claim 20

A method, comprising:
receiving, with a computer system, a request to prune data stored in a tamper-evident data store, wherein:
the data includes first program state of a first program at a first time,
the first program is one of a plurality of programs having program state stored in the tamper-evident data store,
the request uniquely identifies the first program with an identifier that distinguishes the first program from a second program among the plurality of programs,
the tamper-evident data store comprises a directed acyclic graph of cryptographic hash pointers,
a first subset of the cryptographic hash pointers have cryptographic hash values based on the first program state of the first program at the first time,
a second subset of the cryptographic hash pointers have cryptographic hash values based on second program state of the first program at a second time,
a third subset of the cryptographic hash pointers have cryptographic hash values based on the first program state of the first program at the first time, the second program state of the first program at the second time, and a program state of the second program from before the first time, and
the tamper-evident data store comprises or is associated with a record that links the first subset of the cryptographic hash pointers to the second subset of the cryptographic hash pointers;
in response to the request, based on the identifier and the record that links the first subset of the cryptographic hash pointers to the second subset of the cryptographic hash pointers, with the computer system, selecting:
a first subset of nodes of the directed acyclic graph having first content based on the first program state of the first program at the first time, the hash values of first subset of the cryptographic hash pointers being based on the first content, and
a second subset of nodes of the directed acyclic graph having second content based on the second program state of the first program at the second time, the hash values of second subset of the cryptographic hash pointers being based on the second content;
pruning, with the computer system, the first program state and the second program state from the tamper-evident data store by changing the first content and the second content in memory, wherein:
after the pruning, cryptographic hash values of the directed acyclic graph of cryptographic hash pointers are internally consistent, and
after the pruning, the program state of the second program from before the first time remains in the tamper-evident data store.

### Claim 21 (depends on 1)

The tangible, non-transitory, machine-readable medium of claim 1, wherein:
the record comprises a linked list of nodes in the tamper-evident data store based on program state of the first program at different times,
the first content comprises a cryptographic transaction hash of a transaction on the decentralized computing platform by which the first program was deployed,
the second content comprises a cryptographic storage hash based on a root node of a trie of cryptographic hash pointers having program state of the first program but not the second program, and
pruning comprises:
changing the cryptographic transaction hash of the transaction on the decentralized computing platform by which the first program was deployed, and
changing the cryptographic storage hash.

### Claim 22 (depends on 1)

The tangible, non-transitory, machine-readable medium of claim 1, wherein:
receiving comprises receiving an invocation of a subroutine of the first program sent to an address of the first program on a permissioned decentralized computing platform configured to persist state to the tamper-evident data store;
the address is based on an address of a creator of the first program and a count of programs previously deployed by the creator; and
the subroutine, upon being interpreted to bytecode, invokes a pruning opcode of a virtual machine, upon replicated instances of which virtual machine the first program is redundantly executed on a plurality of computing nodes of the decentralized computing platform.

### Claim 23 (depends on 1)

The tangible, non-transitory, machine-readable medium of claim 1, wherein:
the second content comprises a transaction by which the first program was invoked to mutate program state of the first program from the first program state to the second program state;
the transaction by which the first program was invoked to mutate program state of the first program is stored in a trie of cryptographic hash pointers, the second trie of cryptographic hash pointers having transactions with programs among the plurality of programs other than the first program; and
pruning comprises changing, in the trie of cryptographic hash pointers, the transaction by which the first program was invoked to mutate program state of the first program from the first program state to the second program state.

### Claim 24

A tangible, non-transitory, machine-readable medium storing instructions that when executed by one or more processors effectuate operations comprising:
receiving, with a computer system, a request to prune data stored in a tamper-evident data store, wherein:
the data includes first program state of a first program at a first time,
the first program is one of a plurality of programs having program state stored in the tamper-evident data store,
the request uniquely identifies the first program with an identifier that distinguishes the first program from a second program among the plurality of programs,
the tamper-evident data store comprises a directed acyclic graph of cryptographic hash pointers,
a first subset of the cryptographic hash pointers have cryptographic hash values based on the first program state of the first program at the first time,
a second subset of the cryptographic hash pointers have cryptographic hash values based on second program state of the first program at a second time,
a third subset of the cryptographic hash pointers have cryptographic hash values based on the first program state of the first program at the first time, the second program state of the first program at the second time, and a program state of the second program from before the first time, and
the tamper-evident data store comprises or is associated with a record that links the first subset of the cryptographic hash pointers to the second subset of the cryptographic hash pointers based on the first program state and the second program state of the first program at different times;
in response to the request, based on the identifier and the record that links the first subset of the cryptographic hash pointers to the second subset of the cryptographic hash pointers, with the computer system, selecting:
a first subset of nodes of the directed acyclic graph having first content based on the first program state of the first program at the first time, the first content comprising a cryptographic transaction hash of a first transaction on a decentralized computing platform by which the first program was deployed, and the hash values of first subset of the cryptographic hash pointers being based on the first content, and
a second subset of nodes of the directed acyclic graph having second content based on the second program state of the first program at the second time, the second content comprising a cryptographic transaction hash of a second transaction by which the first program was invoked to mutate program state of the first program from the first program state to the second program state, and the hash values of second subset of the cryptographic hash pointers being based on the second content;
pruning, with the computer system, the first program state and the second program state from the tamper-evident data store by changing the first content and the second content in memory, wherein:
pruning comprises changing the cryptographic transaction hash of the first transaction and the second transaction on the decentralized computing platform,
after the pruning, cryptographic hash values of the directed acyclic graph of cryptographic hash pointers are internally consistent, and
after the pruning, the program state of the second program from before the first time remains in the tamper-evident data store.
