# US 12,008,569 B2 · Transaction verification system and method of operation thereof

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

- Number: US 12,008,569 B2
- Document ID: US12008569B2
- Status: Granted
- Kind: B2
- Application number: 17/792,997
- Filed: 2021-01-15
- Published: 2023-04-06
- Granted: 2024-06-11
- Earliest claimed: 2020-01-17
- Applicants: Fetch.Ai Limited
- Inventors: Lum Ramabaja
- Web page: https://patentgrep.com/patent/US12008569B2

## CPC

- G06Q 20/401: {Transaction verification}
- H04L 9/3239: {involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD}
- G06Q 20/3827: {Use of message hashing}
- G06Q 20/389: {Keeping log of transactions for guaranteeing non-repudiation of a transaction}
- H04L 9/50: {using hash chains, e.g. blockchains or hash trees}
- G06Q 2220/00: Business processing using cryptography
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A transaction verification system that, when in operation, verifies and provides tamper-proof recordation of data entities of one or more transactions in a blockchain with an efficient memory space management. The system comprises a plurality of computing nodes, wherein each computing node executes a pre-processing operation to obtain and store therein a corresponding bloom block. The bloom blocks of the computing nodes are different from any block of the blockchain, wherein, via its bloom block, each computing node includes a plurality of root hashes of a plurality of bloom trees and one distributed bloom filter. In order to verify a presence of a first transaction, a given computing node of the plurality of computing nodes initiates an interactive proof by interacting with certain computing nodes. The verification is performed without storing a copy of the blockchain in the plurality of computing nodes to reduce memory use in computing nodes.

## Claims

### Claim 1

A transaction verification system that, when in operation, verifies and provides tamper-proof recordation of data entities of one or more transactions in a blockchain, the transaction verification system comprising:
plurality of computing nodes that are mutually communicatively coupled via a data communication network to exchange data therebetween, wherein a given computing node of the plurality of computing nodes is configured to:
verify a presence of the one or more transactions in the blockchain,
execute a pre-processing operation to obtain and stow therein a corresponding bloom block, wherein the bloom blocks of the computing nodes air different from any block of the blockchain,
include, via its corresponding bloom block, a plurality of root hashes of a plurality of bloom trees and a distributed bloom filter, wherein the plurality of bloom trees have distributed bloom filters that are distributed within the plurality of computing nodes, wherein the distributed bloom filters define a set of transactions, and the plurality of bloom trees are associated with different distributed bloom filters spread across the plurality of computing nodes,
in order to verify a presence of a first transaction of the one or more transactions, initiate an interactive proof by interacting with a specified number of computing nodes from the plurality of computing nodes, wherein the interactive proof is initiated post-completion of the pre-processing operation at each computing node, and
wherein the given computing node initiates the interactive proof by being configured to:
(i) communicate a request for a multi-proof to the specified number of computing nodes from the plurality of computing nodes; and
(ii) obtain a proof of absence from one of the specified number of computing nodes, or proofs of presence from the specified number of computing nodes, to verify the presence of the first transaction,
wherein verifying the presence of the first transaction is performed without storing a copy of the blockchain in the plurality of computing nodes to reduce memory use in each of the plurality of computing nodes.

### Claim 2 (depends on 1)

The transaction verification system of claim 1, wherein each computing node of the plurality of computing nodes is further configured to:
communicate a request of block headers up to a first defined constant value to other computing nodes of the plurality of computing nodes; and
compute a plurality of distributed bloom filters up to a second defined constant value using a unique seed value.

### Claim 3 (depends on 2)

The transaction verification system according to claim 2, wherein each computing node of the plurality of computing nodes is further configured to:
calculate the plurality of root hashes of the plurality of bloom trees up to the defined second constant value for the plurality of distributed bloom filters; and
compute a threshold value at each computing node using its own public identifier.

### Claim 4 (depends on 3)

The transaction verification system according to claim 3, wherein each computing node of the plurality of computing nodes is further configured to:
compute a bloom tree of the plurality of bloom trees by dividing a distributed bloom filter of the plurality of plurality of distributed bloom filters into a set of chunks of bits.

### Claim 5 (depends on 4)

The transaction verification system according to claim 4, wherein each computing node is further configured to utilize the set of chunks of bits to compute the bloom tree, wherein each chunk of the set of chunks are hashed, and the hashes of each chunk are further hashed in a multitier structure until a root hash of the bloom tree is obtained.

### Claim 6 (depends on 5)

The transaction verification system according to claim 5, wherein each computing node of the plurality of computing nodes is further configured to:
execute deletion of distributed bloom filters from the plurality of distributed bloom filters that are less than the computed threshold value to obtain the bloom block; and
store the bloom block that includes the one distributed bloom filter and the plurality of root hashes of the plurality of bloom trees, in each computing node after the executed deletion of the distributed bloom filters.

### Claim 7 (depends on 1)

The transaction verification system according to claim 1, wherein the plurality of computing nodes comprises a different bloom block which differs in at least the stored distributed bloom filter post completion of the pre-processing operation at each computing node of the plurality of computing nodes.

### Claim 8 (depends on 1)

The transaction verification system according to claim 1, wherein the given computing node is further configured to terminate the interaction with the specified number of computing nodes on receipt of the proof of absence from one of the specified number of computing nodes or on receipt of the proofs of presence from the specified number of computing nodes.

### Claim 9 (depends on 1)

The transaction verification system according to claim 1, wherein the one distributed bloom filter has a first false positive value, and wherein the one distributed bloom filter is a data structure having an array that stores one of the binary bit values of “0” or “1” at each index of the array, wherein the one or more transactions are inserted in the one distributed bloom filter based on a position the “1” bit value at specified indices of the array.

### Claim 10 (depends on 9)

The transaction verification system according to claim 9, wherein the obtaining of the proofs of presence from the specified number of computing nodes during the interactive proof at least reduces the first false positive value by at least the specified number so that the presence of the first transaction is successfully confirmed.

### Claim 11

A method for operating a transaction verification system to verify and provide tamper-proof recordation of data entities of one or more transactions in a blockchain,
wherein the system comprises a plurality of computing nodes that are mutually communicatively coupled via a data communication network to exchange data therebetween, wherein a given computing node of the plurality of computing nodes is configured to verify a presence of the one or more transactions in the blockchain,
wherein the method includes:
(i) arranging for each computing node to execute a pre-processing operation to obtain and store therein a corresponding bloom block,
wherein the bloom blocks of the computing nodes are different from any block of the blockchain,
wherein, via its bloom block, each computing node includes a plurality of root hashes of a plurality of bloom trees and a distributed bloom filter,
wherein the plurality of bloom trees have distributed bloom filters that are distributed within the plurality of computing nodes,
wherein the distributed bloom filters define a set of transactions, and the plurality of bloom trees are associated with different distributed bloom filters spread across the plurality of computing nodes,
(ii) arranging for, in order to verify a presence of a first transaction of the one or morn transactions, a given computing node of the plurality of computing nodes to initiate an interactive proof by interacting with a specified number of computing nodes from the plurality of computing nodes, wherein the interactive proof is initiated post-completion of the pre-processing operation at each computing node, and
wherein the given computing node initiates the interactive proof by:
(i) communicating a request for a multi-proof to the specified number of computing nodes from the plurality of computing nodes; and
(ii) obtaining a proof of absence from one of the specified number of computing nodes, or proofs of presence from the specified number of computing nodes, to verify the presence of the first transaction,
wherein verifying the presence of the first transaction is performed without storing a copy of the blockchain in the plurality of computing nodes to reduce memory use in each of the plurality of computing nodes.

### Claim 12 (depends on 11)

The method according to claim 11, wherein the method further comprises:
communicating, by each computing node of the plurality of computing nodes, a request of block headers up to a first defined constant value to other computing nodes of the plurality of computing nodes; and
computing, by each computing node of the plurality of computing nodes, a plurality of distributed bloom filters up to a second defined constant value using a unique seed value.

### Claim 13 (depends on 12)

The method according to claim 12, wherein the method further comprises:
calculating, by each computing node of the plurality of computing nodes, the plurality of root hashes of the plurality of bloom trees up to the defined constant value for the plurality of distributed bloom filters; and
computing, by each computing node of the plurality of computing nodes, a threshold value at each computing node using its own public identifier.

### Claim 14 (depends on 13)

The method according to claim 13, wherein the method further comprises:
executing, by each computing node of the plurality of computing nodes, deletion of distributed bloom filters from the plurality of distributed bloom filters that are less than the computed threshold value to obtain the bloom block; and
storing, by each computing node of the plurality of computing nodes, the bloom block that includes the one distributed bloom filter and the plurality of root hashes of the plurality of bloom trees, in each computing node after the executed deletion of the distributed bloom filters.

### Claim 15 (depends on 11)

A computer program product comprising non-transitory computer readable storage media having computer-readable instructions stored thereon, the computer-readable instructions being executable by a computerized device comprising processing hardware to execute a method of claim 11.
