IP Library › Granted Patent US 11,556,925
Granted Patent B2
US 11,556,925 · App. 16/129,530 · Granted Jan 17, 2023

Ensuring information fairness and input privacy using a blockchain in a competitive scenario governed by a smart contract

Inventors: Pralhad Dinesh Deshpande (Singapore, SG); Muhammad Tayyab Asif (Singapore, SG); Yuan Yuan (Singapore, SG)
Assignee: International Business Machines Corporation
G06Q20/3829H04L9/30H04L63/0428G06Q2220/00H04L9/50
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 11,556,925
App. No.
16/129,530
Granted
Jan 17, 2023
Kind
B2
Abstract

An example operation may include one or more of initializing a smart contract (SC) and appending it to a blockchain, registering each of a plurality of participants as a party to the SC, receiving from at least some of the participants an encrypted confidential input commitment, appending the encrypted input commitments to the blockchain, decrypting the encrypted input commitments, executing by the SC at least one business rule using the decrypted input commitments to obtain a business rule result, and identifying a prevailing participant based at least in part on the business rule result.

Claims (91)

1. A method, comprising:

initializing a smart contract and appending it to a blockchain;

registering each of a plurality of participants as a party to the smart contract;

generating a system-wide public/private key pair and storing the generated system-wide public key in a genesis block of the blockchain;

calculating a unique share of the system-wide private key for each participant who provided a confidential input commitment, and encrypting the unique share using the public key of one of the participants;

sending each of the encrypted unique shares to the participant having the private key corresponding to the public key used to encrypt the share;

opening a bidding window for the plurality of participants and begin counting block events that occur on the blockchain;

receiving from at least some of the participants an encrypted confidential input commitment during the open bidding window, each encrypted confidential input being encrypted with the system-wide public key;

terminating, via the smart contract, the open bidding window when the counting reaches a predetermined threshold and denying any other encrypted input commitments received after the termination of the open bidding window via the smart contract;

appending the encrypted input commitments to the blockchain;

recovering the private key based on decrypted unique shares of the system-wide private key that are shared by a predetermined number of participants;

decrypting the encrypted input commitments based on the recovered private key and storing the decrypted input commitments on the blockchain;

executing, by the smart contract, at least one business rule using the decrypted input commitments to obtain a business rule result; and

identifying a prevailing participant based at least in part on the business rule result.

2. The method of claim 1 , wherein:

parameters for initializing the smart contract are obtained from a dealer;

the terms of the smart contract pertain to the plurality of participants and the dealer, each of which controls their own computing environment; and

the blockchain is implemented at least in part on the computing environments.

3. The method of claim 1 , wherein the registering of each of the plurality of participants includes:

receiving identification information of a participant;

obtaining a public key of a public/private key pair for which the participant has the corresponding private key; and

storing the public key in association with identification information of the participant.

4. The method of claim 1 , further comprising:

generating a message including information for identifying the prevailing participant of a bidding process;

encrypting the message using the system-wide public key; and

making the encrypted message available to the plurality of participants.

5. The method of claim 1 , wherein the recovering comprises:

receiving decrypted unique shares from at least a predetermined threshold number of the plurality of participants using their respective private keys; and

combining the decrypted unique shares to reconstruct the system-wide private key.

6. The method of claim 5 , further comprising:

calculating a string PROOF D that can be used to prove the shares of the system-wide private key are valid, sending the string PROOF D with each of the encrypted shares, and appending the string PROOF D to the blockchain.

7. A system, comprising:

a processor configured to:

initialize a smart contract and append it to a blockchain;

register each of a plurality of participants as a party to the smart contract;

generate a system-wide public/private key pair and storing the generated system- wide public key in a genesis block of the blockchain;

calculate a unique share of the system-wide private key for each participant who provided a confidential input commitment, and encrypting the unique share using the public key of one of the participants;

send each of the encrypted unique shares to the participant having the private key corresponding to the public key used to encrypt the share;

open a bidding window for the plurality of participants and begin counting block events that occur on the blockchain;

receive from at least some of the participants an encrypted confidential input commitment during the open bidding window, each encrypted confidential input being encrypted with the system-wide public key;

terminate, via the smart contract, the open bidding window when the counting reaches a predetermined threshold and deny any other encrypted input commitments received after the termination of the open bidding window via the smart contract;

append the encrypted input commitments to the blockchain;

recover the private key based on decrypted unique shares of the system-wide private key that are shared by a predetermined number of participants;

decrypt the encrypted input commitments based on the recovered private key and storing the decrypted input commitments on the blockchain;

execute, by the smart contract, at least one business rule based on the decrypted input commitments to obtain a business rule result; and

identify a prevailing participant based at least in part on the business rule result.

8. The system of claim 7 , wherein:

parameters to initialize the smart contract are obtained from a dealer;

terms of the smart contract pertain to the plurality of participants and the dealer, each of which controls their own computing environment; and

the blockchain is implemented at least in part on the computing environments.

9. The system of claim 7 , wherein the processor is further configured to:

receive identification information of a participant;

obtain a public key of a public/private key pair for which the participant has the private key; and

store the public key in association with identification information of the participant.

10. The system of claim 7 , wherein the processor is further configured to:

generate a message that includes information that identifies a prevailing participant of a bidding process;

encrypt the message based on the system-wide public key; and

make the encrypted message available to the plurality of participants.

11. The system of claim 7 , wherein the processor is further configured to:

receive decrypted unique shares from at least a predetermined threshold number of the plurality of participants based on their respective private keys; and

combine the decrypted unique shares to reconstruct the system-wide private key.

12. The system of claim 11 , wherein the processor is further configured to:

calculate a string PROOF D that can be used to prove the shares of the system-wide private key are valid, send the string PROOF D with each of the encrypted shares, and append the string PROOF D to the blockchain.

13. A computer program product comprising a non-transitory computer readable medium and instructions stored on the non-transitory computer readable medium which when executed by a processor cause a computer to perform a method comprising:

initializing a smart contract and appending it to a blockchain;

registering each of a plurality of participants as a party to the smart contract;

generating a system-wide public/private key pair and storing the generated system-wide public key in a genesis block of the blockchain;

calculating a unique share of the system-wide private key for each participant who provided a confidential input commitment, and encrypting the unique share using the public key of one of the participants;

sending each of the encrypted unique shares to the participant having the private key corresponding to the public key used to encrypt the share;

opening a bidding window for the plurality of participants and begin counting block events that occur on the blockchain;

receiving from at least some of the participants an encrypted confidential input commitment during the open bidding window, each encrypted confidential input being encrypted with the system-wide public key;

terminating, via the smart contract, the open bidding window when the counting reaches a predetermined threshold and denying any other encrypted input commitments received after the termination of the open bidding window via the smart contract;

appending the encrypted input commitments to the blockchain;

recovering the private key based on decrypted unique shares of the system-wide private key that are shared by a predetermined number of participants;

decrypting the encrypted input commitments based on the recovered private key and storing the decrypted input commitments on the blockchain;

executing by the smart contract, at least one business rule using the decrypted input commitments to obtain a business rule result.

14. The computer program product of claim 13 , wherein:

parameters for initializing the smart contract are obtained from a dealer;

the terms of the smart contract pertain to the plurality of participants and the dealer, each of which controls their own computing environment; and

the blockchain is implemented at least in part on the computing environments.

15. The computer program product of claim 13 , wherein the registering of each of the plurality of participants includes:

receiving identification information of a participant;

obtaining a public key of a public/private key pair for which the participant has the corresponding private key; and

storing the public key in association with identification information of the participant.

16. The computer program product of claim 13 , wherein the method further comprises:

generating a message including information for identifying a prevailing participant of a bidding process;

encrypting the message using the system-wide public key; and

making the encrypted message available to the plurality of participants.

17. The computer program product of claim 13 , wherein the recovering comprises:

receiving decrypted unique shares from at least a predetermined threshold number of the plurality of participants using their respective private keys; and

combining the decrypted shares to reconstruct the system-wide private key.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 12, 2018
From: DESHPANDE, PRALHAD DINESH; ASIF, MUHAMMAD TAYYAB; YUAN, YUAN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 046857/0614 →
Continuity (1)
Related Publication 20200082399A1 · Mar 12, 2020
Cited By (1)
US 12,706,762