# US 12,010,237 B2 · System and method for digital proof generation

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

- Number: US 12,010,237 B2
- Document ID: US12010237B2
- Status: Granted
- Kind: B2
- Application number: 17/583,880
- Filed: 2022-01-25
- Published: 2023-07-27
- Granted: 2024-06-11
- Earliest claimed: 2022-01-25
- Assignees: QPQ Ltd.
- Applicants: QPQ Ltd.
- Inventors: Emanuele Ragnoli; Roberto Ripamonti
- Web page: https://patentgrep.com/patent/US12010237B2

## CPC

- G06F 16/2365: {Ensuring data consistency and integrity}
- H04L 9/3221: {interactive zero-knowledge proofs}
- G06F 16/2255: {Hash tables}
- G06F 16/24524: {Access plan code generation and invalidation; Reuse of access plans}
- G06F 16/2455: Query execution
- H04L 9/008: {involving homomorphic encryption}
- H04L 9/3236: {using cryptographic hash functions}
- H04L 9/3297: {involving time stamps, e.g. generation of time stamps}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A system and a method for digital proof generation are provided. The system includes a data management module to manage dataset having plurality of data rows and a query execution and verification module including a commitment storage sub-module, a query execution sub-module and a result verification sub-module. The data management module receives query from the query execution sub-module, related to operation on data rows of plurality of data rows, which is processed to generate execution result associated with data rows. The execution result is transferred along with data rows to the query execution sub-module. A set of commitments associated with execution result is transferred to the commitment storage sub-module. The query execution sub-module transfers set of commitments, from the commitment storage sub-module, and data rows to the result verification sub-module for verification, and receives a verification result from the result verification sub-module.

## Claims

### Claim 1

A system for digital proof generation, comprising:
a data management module configured to manage a dataset having a plurality of data rows, wherein each data row of the plurality of data rows includes data entries and each data row possess a hash value and a commitment for the hash value associated with corresponding data entries;
a query execution and verification module comprising:
a commitment storage sub-module configured to store a plurality of commitments of the dataset;
a query execution sub-module configured to enable access to the dataset; and
a result verification sub-module configured to verify an execution of a query,
wherein the data management module is configured to:
receive a query from the query execution sub-module, the query being related to an operation on one or more data rows of the plurality of data rows of the dataset;
process the query to generate an execution result associated with the said one or more data rows;
transfer the execution result associated with the one or more data rows of the dataset along with the one or more data rows to the query execution sub-module; and
transfer a set of commitments associated with the execution result to the commitment storage sub-module, wherein the set of commitments includes at least one of: a homomorphic hash value of the dataset, a zero-knowledge proof associated with the execution result and a timestamp associated with each commitment of the set of commitments; and
wherein in the query execution and verification module, the query execution sub-module is configured to:
transfer the set of commitments, from the commitment storage sub-module, and the said one or more data rows to the result verification sub-module for verification; and
receive a verification result from the result verification sub-module, based on the verification.

### Claim 2 (depends on 1)

The system according to claim 1, wherein the set of commitments correspond to one of: Pedersen commitments or Generalized Pedersen commitments.

### Claim 3 (depends on 1)

The system according to claim 1, wherein the query execution sub-module is configured to check that a first timestamp of a first commitment value of the set of commitments to be preceding a time of a generation of the execution result and a second timestamp of a second commitment value of the set of commitments to be succeeding the time of the generation of the execution result, to indicate a successful verification.

### Claim 4 (depends on 1)

The system according to claim 1, wherein the query corresponds to at least one of: update of the one or more data rows of the dataset and an analysis of the one or more data rows of the dataset.

### Claim 5 (depends on 4)

The system according to claim 4, wherein, in case of the query being the update of the one or more data rows of the dataset, the result verification sub-module is configured to:
apply a homomorphic hash technique on the execution result to generate a first update hash value;
apply one of: an addition operation or a subtraction operation to a first commitment value and a second commitment value of the set of commitments to obtain a second update hash value;
compare the first update hash value and the second update hash value; and
generate the verification result indicative of a successful verification, if the first update hash value matches the second update hash value.

### Claim 6 (depends on 5)

The system according to claim 5, wherein the result verification sub-module is configured to generate the verification result indicative of a failed verification, if the first update hash value does not match the second update hash value.

### Claim 7 (depends on 4)

The system according to claim 4, wherein, in case of the query being the analysis of the one or more data rows of the dataset, the result verification sub-module is configured to:
apply a homomorphic hash technique to the one or more data rows included in the execution result and verify that they are included in a set of homomorphic hash values related to the data rows of the dataset included in the execution result;
apply an addition operation on the one or more homomorphic hash values related to the data rows of the dataset to generate a first analysis hash value;
retrieve a latest commitment value of the set of commitments from the commitment storage sub-module;
generate a first validation based on confirming that the first analysis hash value matches a latest analysis hash value included in the retrieved latest commitment value;
generate a second validation based on confirming that a zero-knowledge proof associated with the execution result is valid; and
generate the verification result indicative of a successful verification, in response to generation of the first validation and the second validation.

### Claim 8 (depends on 7)

The system according to claim 7, wherein the result verification sub-module is configured to generate the verification result indicative of a failed verification, in response to at least one of: failure of generation of the first validation or failure of generation of the second validation.

### Claim 9 (depends on 1)

The system according to claim 1, wherein the dataset is a private dataset.

### Claim 10

A method for digital proof generation, comprising:
receiving a query from a query execution sub-module, the query being related to an operation on one or more data rows of a plurality of data rows of a dataset;
processing the query to generate an execution result associated with the said one or more data rows;
transfer the execution result associated with the one or more data rows of the dataset along with the one or more data rows to the query execution sub-module; and
transferring a set of commitments associated with the execution result to a commitment storage sub-module, wherein the set of commitments includes at least one of: a homomorphic hash value of the dataset, a zero-knowledge proof associated with the execution result and a timestamp associated with each commitment of the set of commitments; and
transferring, by the query execution sub-module, the set of commitments, from the commitment storage sub-module, and the said one or more data rows to a result verification sub-module for verification; and
receiving a verification result from the result verification sub-module, based on the verification.

### Claim 11 (depends on 10)

The method according to claim 10, wherein the query corresponds to at least one of: update of the one or more data rows of the dataset and an analysis of the one or more data rows of the dataset.

### Claim 12 (depends on 11)

The method according to claim 11, wherein in case of the query being the update of the one or more data rows of the dataset, the method comprises:
applying a homomorphic hash technique on the execution result to generate a first update hash value;
applying one of: an addition operation or a subtraction operation to a first commitment value and a second commitment value of the set of commitments to obtain a second update hash value;
comparing the first update hash value and the second update hash value; and
generating the verification result indicative of a successful verification, if the first update hash value matches the second update hash value.

### Claim 13 (depends on 12)

The method according to claim 12, wherein the method comprises generating the verification result indicative of a failed verification, if the first update hash value does not match the second update hash value.

### Claim 14 (depends on 11)

The method according to claim 11, wherein in case of the query being the analysis of the one or more data rows of the data set, the method includes:
applying a homomorphic hash technique to the one or more data rows included in the execution result and verify that they are included in a set of homomorphic hash values related to the data rows of the dataset included in the execution result;
applying an addition operation on the one or more homomorphic hash values related to the data rows of the dataset to generate a first analysis hash value;
retrieving a latest commitment value of the set of commitments from the commitment storage sub-module;
generating a first validation based on confirming that the first analysis hash value matches a latest analysis hash value included in the retrieved latest commitment value;
generating a second validation based on confirming that a zero-knowledge proof associated with the execution result is valid; and
generating the verification result indicative of a successful verification, in response to generation of the first validation and the second validation.

### Claim 15 (depends on 14)

The method according to claim 14, wherein the method includes generating the verification result indicative of a failed verification, in response to at least one of: failure of generation of the first validation or failure of generation of the second validation.

### Claim 16

A non-transitory computer readable medium having stored thereon software instructions that, when executed by a processor, cause the processor to be implemented for digital proof generation, by executing the steps comprising:
receiving a query from a query execution sub-module, the query being related to an operation on one or more data rows of a plurality of data rows of a dataset;
processing the query to generate an execution result associated with the said one or more data rows;
transfer the execution result associated with the one or more data rows of the dataset along with the one or more data rows to the query execution sub-module; and
transferring a set of commitments associated with the execution result to a commitment storage sub-module, wherein the set of commitments includes at least one of: a homomorphic hash value of the dataset, a zero-knowledge proof associated with the execution result and a timestamp associated with each commitment of the set of commitments; and
transferring, by the query execution sub-module, the set of commitments, from the commitment storage sub-module, and the said one or more data rows to a result verification sub-module for verification; and
receiving a verification result from the result verification sub-module, based on the verification.

### Claim 17 (depends on 16)

The non-transitory computer-readable medium according to claim 16, wherein the query corresponds to at least one of: update of the one or more data rows of the dataset and an analysis of the one or more data rows of the dataset.

### Claim 18 (depends on 17)

The non-transitory computer-readable medium according to claim 17, wherein in case of the query being the update of the one or more data rows of the dataset, the processor is configured to execute the steps comprising:
applying a homomorphic hash technique on the execution result to generate a first update hash value;
applying one of: an addition operation or a subtraction operation to a first commitment value and a second commitment value of the set of commitments to obtain a second update hash value;
comparing the first update hash value and the second update hash value; and
generating the verification result indicative of a successful verification, if the first update hash value matches the second update hash value.

### Claim 19 (depends on 17)

The non-transitory computer-readable medium according to claim 17, wherein in case of the query being the analysis of the one or more data rows of the dataset, the processor is configured to execute the steps comprising:
applying a homomorphic hash technique to the one or more data rows included in the execution result and verify that they are included in a set of homomorphic hash values related to the data rows of the dataset included in the execution result;
applying an addition operation on the one or more homomorphic hash values related to the data rows of the dataset to generate a first analysis hash value;
retrieving a latest commitment value of the set of commitments from the commitment storage sub-module;
generating a first validation based on confirming that the first analysis hash value matches a latest analysis hash value included in the retrieved latest commitment value;
generating a second validation based on confirming that a zero-knowledge proof associated with the execution result is valid; and
generating the verification result indicative of a successful verification, in response to generation of the first validation and the second validation.
