IP Library Granted Patent US 11,271,729
Granted Patent B2
US 11,271,729 · App. 16/772,136 · Granted Mar 8, 2022

System and method for multi-party generation of blockchain-based smart contract

Inventors: Alexandra Covaci (London, GB); Simone Madeo (London, GB); Patrick Motylinski (London, GB); Stephane Vincent (Luxembourg, LU)
Assignee: nChain Licensing AG
H04L9/085G06F7/725G06F17/17H04L9/14H04L9/3066H04L9/3093H04L9/3218H04L9/0841H04L9/3236H04L2209/38
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,271,729
App. No.
16/772,136
Granted
Mar 8, 2022
Kind
B2
Abstract

Systems and methods described herein relate to techniques that allow for multiple parties to jointly generate or jointly agree upon the parameters for generation of a smart contract, such as a verification key. Execution of the smart contract may be performed by a third party, for example, a worker node on a blockchain network. Techniques described herein may be utilised as part of a protocol in which parties of a smart contract share powers of a secret in a manner that allows each party to determine an identical common reference string, agree on parameters for a smart contract agree and/or make proportionate contributions the smart contract, and combinations thereof. The smart contract may be published to a blockchain network (e.g., Bitcoin Cash). The protocol may be a zero-knowledge protocol.

Claims (39)

1. A computer-implemented method comprising, at a first computing entity:

determining, based at least in part on a first polynomial and at least two elliptic curve points, a first set of elliptic curve points for a second computing entity;

making a subset of the first set of elliptic curve points available to the second computing entity;

receiving a second set of elliptic curve points generated using a second polynomial;

determining a power of a secret based at least in part on the first set and the second set;

determining, based at least in part on the power of the secret, a common reference string comprising a verification key and an evaluation key, wherein the common reference string is also determinable by the second computing entity as a result of the first computing entity providing the subset to the second computing entity; and

generating a smart contract comprising a first transaction input provided by the first computing entity and a second transaction input provided by the second computing entity, wherein correct execution of the smart contract by a third computing entity results in the third computing entity being able to generate a blockchain transaction using an output of the smart contract.

2. The method according to claim 1 , wherein the first set of elliptic curve points comprises corresponding elliptic curve points for powers of the first polynomial.

3. The method according to claim 1 , wherein the first polynomial is of at least order 2.

4. The method according to claim 1 , wherein the subset is the first set of elliptic curve points.

5. The method according to claim 1 , wherein the secret is shared between the first computing entity and the second computing entity without using a cryptographically protected communications channel.

6. The method according to claim 1 , wherein the first computing entity and the second computing entity collectively determine a first digital asset and a second digital asset to be transferred by the blockchain transaction.

7. The method according to claim 1 , further comprising:

determining, based on a third polynomial and the at least two elliptic curve points, a third set of elliptic curve points for the second computing entity;

making a second subset of the third set of elliptic curve points available to the second computing entity;

receiving a fourth set of elliptic curve points;

determining a parameter based at least in part on the third set and the fourth set, the parameter also determinable by the second computing entity as a result of the first computing entity providing the second subset to the second computing entity; and

wherein the determining of the common reference string is based further at least in part on the parameter.

8. The method according to claim 1 , further comprising sharing an elliptic curve parameter between the first computing entity and the second computing entity using Shamir's Secret Sharing Scheme.

9. The method according to claim 1 , further comprising exchanging a scalar parameter between the first computing entity and the second computing entity using a Diffie-Hellman scheme.

10. The method according to claim 1 , wherein the smart contract comprises a P2SH type unlocking script that allows the third computing entity to unlock a first digital asset and a second digital asset in response to providing a proof of correct execution.

11. The method according to claim 1 , wherein the first computing entity makes the subset available to the second computing entity via an off-chain communications channel.

12. The method according to claim 1 , wherein the second polynomial is inaccessible to the first computing entity.

13. The method according to claim 1 , wherein the at least two elliptic curve points are two different elliptic curve points.

14. A system, comprising:

a processor; and

memory including executable instructions that, as a result of execution by the processor, cause the system to perform the computer-implemented method according to claim 1 .

15. A non-transitory computer-readable storage medium having stored thereon executable instructions that, as a result of being executed by a processor of a computer system, cause the computer system to at least perform the computer-implemented method according to claim 1 .

16. A system, comprising:

a processor; and

memory including executable instructions that, as a result of execution by the processor, cause the system to perform the computer-implemented method according to claim 2 .

17. A system, comprising:

a processor; and

memory including executable instructions that, as a result of execution by the processor, cause the system to perform the computer-implemented method according to claim 3 .

18. A system, comprising:

a processor; and

memory including executable instructions that, as a result of execution by the processor, cause the system to perform the computer-implemented method according to claim 4 .

19. A non-transitory computer-readable storage medium having stored thereon executable instructions that, as a result of being executed by a processor of a computer system, cause the computer system to at least perform the computer-implemented method according to claim 2 .

20. A non-transitory computer-readable storage medium having stored thereon executable instructions that, as a result of being executed by a processor of a computer system, cause the computer system to at least perform the computer-implemented method according to claim 3 .

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2022
From: COVACI, ALEXANDRA; MADEO, SIMONE; MOTYLINSKI, PATRICK; VINCENT, STEPHANE
To: NCHAIN HOLDINGS LTD
Reel/Frame 058761/0594 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2022
From: COVACI, ALEXANDRA; MADEO, SIMONE; MOTYLINSKI, PATRICK; VINCENT, STEPHANE
To: NCHAIN HOLDINGS LTD
Reel/Frame 058762/0387 →
CHANGE OF NAME Recorded Jan 25, 2022
From: NCHAIN HOLDINGS LTD
To: NCHAIN LICENSING AG
Reel/Frame 058854/0038 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2022
From: COVACI, ALEXANDRA; MADEO, SIMONE; MOTYLINSKI, PATRICK; VINCENT, STEPHANE
To: NCHAIN HOLDINGS LTD
Reel/Frame 058950/0044 →
Priority Claims (3)
GB 1720768 · Dec 13, 2017 · national
GB 1813770 · Aug 23, 2018 · national
GB 1813772 · Aug 23, 2018 · national
Continuity (1)
Related Publication 20210075610A1 · Mar 11, 2021
Cited By (2)
US 12,341,908 US 12,512,986