IP Library Granted Patent US 11,888,976
Granted Patent B2
US 11,888,976 · App. 17/678,926 · Granted Jan 30, 2024

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/3236H04L9/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,888,976
App. No.
17/678,926
Granted
Jan 30, 2024
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 (34)

1. A computer-implemented method of executing a smart contract generated by a first computing entity and a second computing entity, the computer-implemented method implemented by a third computing entity different from both the first computing entity and the second computing entity, the computer-implemented method comprising:

receiving, at the third computing entity, the smart contract comprising a first transaction input and an evaluation key Ek provided by the first computing entity and a second transaction input provided by the second computing entity;

executing the smart contract by performing a computational task comprising the computation of a function on an input to the smart contract to produce an output of the smart contract;

producing a proof of correct execution of the smart contract, wherein the proof is based at least in part on the evaluation key Ek;

generating a blockchain transaction using the output of the smart contract; and

validating, by a fourth computing entity different from the first, second, and third computing entities, the generated transaction using a verification key Vk and the proof.

2. The computer-implemented method according to claim 1 , wherein the third computing entity is a node of a blockchain network.

3. The computer-implemented method according to claim 1 , wherein the input comprises information that attests to an identity of the third computing entity.

4. The computer-implemented method according to claim 3 , wherein the information comprises a digital signature generated by a private signature associated with the third computing entity.

5. The computer-implemented method according to claim 1 , wherein the third computing entity receives a transfer of digital assets from at least one of the first computing entity or the second computing entity.

6. The computer-implemented method according to claim 1 , wherein the input provided to the smart contract is provided by at least one of the first computing entity or the second computing entity.

7. The computer-implemented method according to claim 1 , wherein producing the proof of correct execution comprises using an evaluation key.

8. The computer-implemented method according to claim 1 , wherein executing the smart contract to produce the output comprises evaluating internal circuit wires of a quadratic arithmetic program to produce a quadratic arithmetic program output.

9. The computer-implemented method according to claim 8 , wherein the quadratic arithmetic program is of size m and degree d.

10. The computer-implemented method according to claim 1 , wherein the proof of correct execution of the smart contract is stored on a blockchain.

11. The computer-implemented method according to claim 1 , wherein the smart contract comprises a Pay-To-Script-Hash type (P2SH-type) unlocking script that allows the third computing entity to unlock a first digital asset and a second digital asset in response to producing the proof of correct execution.

12. The computer-implemented method according to claim 11 , wherein the P2SH-type unlocking script comprises at least one of: a verification key, an element of the verification key, or a hash of the verification key.

13. A system comprising:

a first processor executing first computing entity;

a second processor executing a second computing entity;

a third processor executing a third computing entity different from both the first computing entity and the second computing entity;

a smart contract generated by the first computing entity and the second computing entity; and

memory including executable instructions of the third computing entity that, as a result of execution by the third processor, causes the system to:

receive the smart contract comprising a first transaction input and an evaluation key Ek provided by the first computing entity and a second transaction input provided by the second computing entity;

execute the smart contract by performing a computational task comprising the computation of a function on an input to the smart contract to produce an output of the smart contract;

produce a proof of correct execution of the smart contract, wherein the proof is based at least in part on the evaluation key Ek;

generate a blockchain transaction using the output of the smart contract; and

validate, by a fourth computing entity different from the first, second, and third computing entities, the generated transaction using a verification key Vk and the proof.

14. 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:

receive a smart contract comprising a first transaction input and an evaluation key Ek provided by a first computing entity external to the processor and a second transaction input provided by a second computing entity external to the processor, the processor executing a third computing entity different form the first computing entity and the second computing entity;

execute the smart contract by performing a computational task comprising a computation of a function on an input to the smart contract to produce an output of the smart contract;

produce a proof of correct execution of the smart contract;

generate a blockchain transaction using the output of the smart contract; and

validate, by a fourth computing entity different from the first, second, and third computing entities, the generated transaction using a verification key Vk and the proof.

Assignments (4)
CHANGE OF NAME Recorded Jun 23, 2022
From: NCHAIN HOLDINGS LTD
To: NCHAIN LICENSING AG
Reel/Frame 060436/0241 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2022
From: COVACI, ALEXANDRA; MADEO, SIMONE; MOTYLINSKI, PATRICK; VINCENT, STEPHANE
To: NCHAIN HOLDINGS LTD.
Reel/Frame 059083/0141 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2022
From: COVACI, ALEXANDRA; MADEO, SIMONE; MOTYLINSKI, PATRICK; VINCENT, STEPHANE
To: NCHAIN HOLDINGS LTD.
Reel/Frame 059083/0327 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2022
From: COVACI, ALEXANDRA; MADEO, SIMONE; MOTYLINSKI, PATRICK; VINCENT, STEPHANE
To: NCHAIN HOLDINGS LTD.
Reel/Frame 059354/0001 →
Priority Claims (3)
GB 1720768 · Dec 13, 2017 · national
GB 1813770 · Aug 23, 2018 · national
GB 1813772 · Aug 23, 2018 · national
Continuity (2)
Continuation 16772136
Related Publication 20220271919A1 · Aug 25, 2022