IP Library Granted Patent US 9,992,028
Granted Patent B2
US 9,992,028 · App. 14/957,634 · Granted Jun 5, 2018

System, method, and computer program product for privacy-preserving transaction validation mechanisms for smart contracts that are included in a ledger

Inventors: Elli Androulaki (Zurich, CH); Angelo DeCaro (Zurich, CH); Thorsten Kramp (Kichberg, CH); Alessandro Sorniotti (Zurich, CH); Marko Vukolic (Zurich, CH)
Assignee: International Business Machines Corporation
H04L9/3263G06Q20/0658G06Q20/3829H04L9/006H04L9/14H04L9/30H04L9/3242H04L9/3247H04L63/0428H04L63/06H04L63/0823G06Q2220/00H04L2209/56
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,992,028
App. No.
14/957,634
Granted
Jun 5, 2018
Kind
B2
Abstract

The system, method, and computer program product described herein may provide the capability to handle a variety of types of transactions, not just payment transactions. In addition, system, method, and computer program product described herein may provide the capability for users to be able to control the confidentiality of their transactions, for the system to control access to transactions, for the system to be capable of auditing transactions, and to provide accountability of the validating entities.

Claims (57)

1. A method of processing digital transactions in a network of computer systems comprising:

creating a digital message including:

a specification of a set of validator computer systems to validate computer program instructions and results of execution of the computer program instructions, wherein each validator computer system is provided with a public signing key and private key pair and is associated with a blockchain network, and

computer program instructions to be executed to perform at least one function relating to a digital transaction, wherein the computer program instructions are encrypted so that only validator computer systems in the specified set of validator computer systems have access to the computer program instructions; and

a specification of a set of user computer systems to be parties to the transaction, wherein each user computer system is provided with a public signing key and private key pair, wherein only user computer systems in the specified set of user computer systems have access to the computer program instructions, access to the computer program instructions by each user computer system in the set of user computer systems being based on its respective public signing key and private key pair;

signing a portion of the digital message including identities of the specified computer systems using a user-private system key, wherein the specified validator computer systems do not have access to the identities of the specified user computer systems;

generating a copy of the digital message, including the signed portion, for each specified validator computer system and signing the copy for each specified validator computer system with that validator computer system's public signing key;

transmitting the digital messages over the network to at least the set of validator computer systems; and

receiving a validation result from at least two of the set of validator computer systems, wherein the validation result is generated at a validator computer system of the set of validator computer systems by:

decrypting the signed digital message using the respective validator computer system's private key,

executing the computer program instructions in the digital message;

determining, based on the execution of the computer program instructions, whether the computer program instructions are valid, and

generating the validation result indicating whether the computer program instructions are valid;

determining that at least a threshold number of the validation results received from the at least two of the set of validator computer systems indicate that the computer program instructions are valid;

determining that the digital message is valid based on the determination that at least the threshold number of validation results indicate that the computer program instructions are valid; and

adding the digital message to a ledger of the blockchain network in response to determining that the digital message is valid.

2. The method of claim 1 , wherein the digital message further comprises a specification of a computer program instruction execution role for each of the specified user computer systems.

3. The method of claim 1 , wherein the validation result further comprises a result of execution of the computer program instructions.

4. The method of claim 1 , wherein the validation result is encrypted so that only authorized parties can see the result.

5. A system for processing digital transactions in a network of computer systems, the system comprising a processor, memory accessible by the processor, and instructions stored in the memory and executable by the processor to perform:

creating a digital message including:

a specification of a set of validator computer systems to validate computer program instructions and results of execution of the computer program instructions, wherein each validator computer system is provided with a public signing key and private key pair and is associated with a blockchain network, and

computer program instructions to be executed to perform at least one function relating to a digital transaction, wherein the computer program instructions are encrypted so that only validator computer systems in the specified set of validator computer systems have access to the computer program instructions; and

a specification of a set of user computer systems to be parties to the transaction, wherein each user computer system is provided with a public signing key and private key pair, wherein only user computer systems in the specified set of user computer systems have access to the computer program instructions, access to the computer program instructions by each user computer system in the set of user computer systems being based on its respective public signing key and private key pair;

signing a portion of the digital message including identities of the specified computer systems using a user-private system key, wherein the specified validator computer systems do not have access to the identities of the specified user computer systems;

generating a copy of the digital message, including the signed portion, for each specified validator computer system and signing the copy for each specified validator computer system with that validator computer system's public signing key;

transmitting the digital messages over the network to at least the set of validator computer systems; and

receiving a validation result from at least two of the set of validator computer systems, wherein a validation result is generated at a validator computer system of the set of validator computer systems by:

decrypting the signed digital message using the respective validator computer system's private key,

executing the computer program instructions in the digital message;

determining, based on the execution of the computer program instructions, whether the computer program instructions are valid, and

generating a result indicating whether the computer program instructions are valid;

determining that at least a threshold number of the validation results received from the at least two of the set of validator computer systems indicate that the computer program instructions are valid;

determining that the digital message is valid based on the determination that at least the threshold number of validation results indicate that the computer program instructions are valid; and

adding the digital message to a ledger of the blockchain network in response to determining that the digital message is valid.

6. The system of claim 5 , wherein the digital message further comprises a specification of a computer program instruction execution role for each of the specified user computer systems.

7. The system of claim 5 , wherein the validation result further comprises a result of execution of the computer program instructions.

8. The system of claim 5 , wherein the validation result is encrypted so that only authorized parties can see the result.

9. A computer program product for processing digital transactions in a network of computer systems, the computer program product comprising a non-transitory computer readable medium and instructions stored on the non-transitory computer readable medium and executable by a processor to perform:

creating a digital message including:

a specification of a set of validator computer systems to validate computer program instructions and results of execution of the computer program instructions, wherein each validator computer system is provided with a public signing key and private key pair and is associated with a blockchain network, and

computer program instructions to be executed to perform at least one function relating to a digital transaction, wherein the computer program instructions are encrypted so that only validator computer systems in the specified set of validator computer systems have access to the computer program instructions; and

a specification of a set of user computer systems to be parties to the transaction, wherein each user computer system is provided with a public signing key and private key pair, wherein only user computer systems in the specified set of user computer systems have access to the computer program instructions, access to the computer program instructions by each user computer system in the set of user computer systems being based on its respective public signing key and private key pair;

signing a portion of the digital message including identities of the specified computer systems using a user-private system key, wherein the specified validator computer systems do not have access to the identities of the specified user computer systems;

generating a copy of the digital message, including the signed portion, for each specified validator computer system and signing the copy for each specified validator computer system with that validator computer system's public signing key;

transmitting the digital messages over the network to at least the set of validator computer systems; and

receiving a validation result from at least two of the set of validator computer systems, wherein a validation result is generated at a validator computer system of the set of validator computer systems by:

decrypting the signed digital message using the respective validator computer system's private key,

executing the computer program instructions in the digital message;

determining, based on the execution of the computer program instructions, whether the computer program instructions are valid to determine if the computer program instructions are valid, and

generating a result indicating whether the computer program instructions are valid;

determining that at least a threshold number of the validation results received from the at least two of the set of validator computer systems indicate that the computer program instructions are valid;

determining that the digital message is valid based on the determination that at least the threshold number of validation results indicate that the computer program instructions are valid; and

adding the digital message to a ledger of the blockchain network in response to determining that the digital message is valid.

10. The computer program product of claim 9 , wherein the digital message further comprises a specification of a computer program instruction execution role for each of the specified user computer systems.

11. The system of claim 9 , wherein the validation result further comprises a result of execution of the computer program instructions.

12. The system of claim 9 , wherein the validation result is encrypted so that only authorized parties can see the result.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 18, 2016
From: ANDROULAKI, ELLI; DE CARO, ANGELO; KRAMP, THORSTEN; SORNIOTTI, ALESSANDRO; VUKOLIC, MARKO
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 037763/0299 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2015
From: ANDROULAKI, ELLI; DE CARO, ANGELO; KRAMP, THORSTEN; SORNIOTTI, ALESSANDRO; VUKOLIC, MARKO
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 037232/0567 →
Continuity (2)
Provisional Application 62260269 · Nov 26, 2015
Related Publication 20170155515A1 · Jun 1, 2017