# US 2023/0056783 A1 · Verifiable privacy preserving computation

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

- Number: US 2023/0056783 A1
- Document ID: US20230056783A1
- Status: Published application
- Kind: A1
- Application number: 17/403,903
- Filed: 2021-08-17
- Published: 2023-02-23
- Earliest claimed: 2021-08-17
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Alexander Kofman; Artem Barger; Corville O. Allen; Jonathan Bnayahu; Pratul Gupta; Yacov Manevich
- Web page: https://patentgrep.com/patent/US20230056783A1

## CPC

- G06F 21/6245: {Protecting personal data, e.g. for financial or medical purposes}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 21/57: Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F 21/64: Protecting data integrity, e.g. using checksums, certificates or signatures
- H04L 9/3236: {using cryptographic hash functions}
- H04L 9/3247: {involving digital signatures}
- G06F 9/45533: {Hypervisors; Virtual machine monitors}
- G06F 2009/45587: {Isolation or security of virtual machine instances}
- G06F 2009/45595: {Network integration; Enabling network access in virtual machine instances}
- H04L 9/50: {using hash chains, e.g. blockchains or hash trees}
- 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

Disclosed herein are methods and systems for executing verifiable computation modules to process private data at private data owner platform, comprising obtaining a computation module having a unique identifier recorded in a distributed ledger controlled by a plurality of computing nodes, generating a key pair comprising a signing key and a verification key derived from the signing key, recording, in the distributed ledger, an execution record associating an execution instance of the computation module with the verification key, initiating the execution instance of the computation module to process a private dataset incorporated with the signing key. outputting a computation outcome, computing an execution result signature for the execution instance based on the unique identifier and the private data and the signing key, and recording the execution result signature in the distributed ledger to enable verification of the execution instance.

## Claims

### Claim 1

A computer implemented method of executing verifiable computation modules to process private data at private data owner platform, comprising:
using at least one processor of a private data owner for:
obtaining a computation module having a unique identifier recorded in a distributed ledger controlled by a plurality of computing nodes each maintaining a local copy of the distributed ledger;
generating a key pair comprising a signing key and a verification key derived from the signing key;
recording, in the distributed ledger, an execution record associating an execution instance of the computation module with the verification key;
initiating the execution instance of the computation module to process a private dataset incorporated with the signing key;
outputting a computation outcome;
computing an execution result signature for the execution instance based on the unique identifier and the private data and the signing key; and
recording the execution result signature in the distributed ledger to enable verification of the execution instance.

### Claim 2 (depends on 1)

The method of claim 1, wherein the computation module used to process the private dataset is verifiable based on its identification in the execution record, and the execution instance of the computation module to process the private dataset is:
verifiable based on the execution result signature and the verification key extracted from the execution record, and
repeatable by the at least one processor based on the execution result signature.

### Claim 3 (depends on 1)

The method of claim 1, wherein the signing key is discarded after the execution instance is complete and the execution result signature is recorded in the distributed ledger.

### Claim 4 (depends on 1)

The method of claim 1, wherein the computation module comprising at least one execution image is associated in the distributed ledger with the unique identifier and orchestration instructions, the unique identifier uniquely identifies the at least one execution image, wherein the at least one execution image is stored in one of:
the distributed ledger, and
at least one repository, wherein the at least one execution image is associated with the unique identifier of the computation module which is recorded in the distributed ledger.

### Claim 5 (depends on 4)

The method of claim 4, wherein the at least one execution image is packed in at least of:
at least one immutable portable container, and
at least one Docker container configured to execute independently.

### Claim 6 (depends on 1)

The method of claim 1, wherein the computation module is executed to process the private dataset in a hardware enclave configured to provide trusted execution environment (TEE), wherein the execution result signature is further indicative of the hardware enclave.

### Claim 7 (depends on 1)

The method of claim 1, wherein the computation module is controlled using a smart contract recorded in the distributed ledger.

### Claim 8

A system for executing verifiable computation modules to process private data at private data owner platform, comprising:
at least one processor of a private data owner, the at least one processor is configured to execute a code, the code comprising:
code instructions to obtain a computation module having a unique identifier recorded in a distributed ledger controlled by a plurality of computing nodes each maintaining a local copy of the distributed ledger;
code instructions to generate a key pair comprising a signing key and a verification key derived from the signing key;
code instructions to record in the distributed ledger an execution record associating an execution instance of the computation module with the verification key;
code instructions to initiate execution instance of the computation module to process a private dataset incorporated with the signing key;
code instructions to output a computation outcome;
code instructions to compute an execution result signature for the execution instance based on the unique identifier and the private data and the signing key; and
code instructions to record the execution result signature in the distributed ledger to enable verification of the execution instance.

### Claim 9 (depends on 8)

The system of claim 8, wherein the computation module used to process the private dataset is verifiable based on its identification in the execution record, and the execution instance of the computation module to process the private dataset is:
verifiable based on the execution result signature and the verification key extracted from the execution record, and
repeatable by the at least one processor based on the execution result signature.

### Claim 10 (depends on 8)

The system of claim 8, wherein the signing key is discarded after the execution instance is complete and the execution result signature is recorded in the distributed ledger.

### Claim 11 (depends on 8)

The system of claim 8, wherein the computation module comprising at least one execution image is associated in the distributed ledger with the unique identifier and orchestration instructions, the unique identifier uniquely identifies the at least one execution image, wherein the at least one execution image is stored in one of:
the distributed ledger, and
at least one repository, wherein the at least one execution image is associated with the unique identifier of the computation module which is recorded in the distributed ledger.

### Claim 12 (depends on 11)

The system of claim 11, wherein the at least one execution image is packed in at least of:
at least one immutable portable container, and
at least one Docker container configured to execute independently.

### Claim 13 (depends on 8)

The system of claim 8, wherein the computation module is executed to process the private dataset in a hardware enclave configured to provide trusted execution environment (TEE), wherein the execution result signature is further indicative of the hardware enclave.

### Claim 14 (depends on 8)

The system of claim 8, wherein the computation module is controlled using a smart contract recorded in the distributed ledger.

### Claim 15

A computer program product for executing verifiable computation modules to process private data at private data owner platform, comprising a non-transitory medium storing thereon computer program instructions which, when executed by at least one hardware processor, cause the at least one hardware processor to:
obtain a computation module having a unique identifier recorded in a distributed ledger controlled by a plurality of computing nodes each maintaining a local copy of the distributed ledger;
generate a key pair comprising a signing key and a verification key derived from the signing key;
record in the distributed ledger an execution record associating an execution instance of the computation module with the verification key;
initiate execution instance of the computation module to process a private dataset incorporated with the signing key;
output a computation outcome;
compute an execution result signature for the execution instance based on the unique identifier and the private data and the signing key; and
record the execution result signature in the distributed ledger to enable verification of the execution instance.

### Claim 16 (depends on 15)

The computer program product of claim 15, wherein the computation module used to process the private dataset is verifiable based on its identification in the execution record, and the execution instance of the computation module to process the private dataset is:
verifiable based on the execution result signature and the verification key extracted from the execution record, and
repeatable by the at least one processor based on the execution result signature.

### Claim 17 (depends on 15)

The computer program product of claim 15, wherein the signing key is discarded after the execution instance is complete and the execution result signature is recorded in the distributed ledger.

### Claim 18 (depends on 15)

The computer program product of claim 15, wherein the computation module comprising at least one execution image is associated in the distributed ledger with the unique identifier and orchestration instructions, the unique identifier uniquely identifies the at least one execution image, wherein the at least one execution image is stored in one of:
the distributed ledger, and
at least one repository, wherein the at least one execution image is associated with the unique identifier of the computation module which is recorded in the distributed ledger.

### Claim 19 (depends on 18)

The computer program product of claim 18, wherein the at least one execution image is packed in at least of:
at least one immutable portable container, and
at least one Docker container configured to execute independently.

### Claim 20 (depends on 8)

The system of claim 8, wherein the computation module is executed to process the private dataset in a hardware enclave configured to provide trusted execution environment (TEE), wherein the execution result signature is further indicative of the hardware enclave.
