US 12,294,644 B2
System and method for multi-party generation of blockchain-based smart contract
Alexandra Covaci, London (GB); Simone Madeo, London (GB); Patrick Motylinski, London (GB); and Stephane Vincent, Luxembourg (LU)
Assigned to NCHAIN LICENSING AG, Zug (CH)
Filed by nChain Licensing AG, Zug (CH)
Filed on Dec. 13, 2023, as Appl. No. 18/539,095.
Application 18/539,095 is a continuation of application No. 17/678,926, filed on Feb. 23, 2022, granted, now 11,888,976.
Application 17/678,926 is a continuation of application No. 16/772,136, granted, now 11,271,729, issued on Mar. 8, 2022, previously published as PCT/IB2018/059918, filed on Dec. 12, 2018.
Claims priority of application No. 1720768 (GB), filed on Dec. 13, 2017; application No. 1813770 (GB), filed on Aug. 23, 2018; and application No. 1813772 (GB), filed on Aug. 23, 2018.
Prior Publication US 2024/0195611 A1, Jun. 13, 2024
Int. Cl. H04L 9/08 (2006.01); G06F 7/72 (2006.01); G06F 17/17 (2006.01); H04L 9/00 (2022.01); H04L 9/14 (2006.01); H04L 9/30 (2006.01); H04L 9/32 (2006.01)
CPC H04L 9/085 (2013.01) [G06F 7/725 (2013.01); G06F 17/17 (2013.01); H04L 9/14 (2013.01); H04L 9/3066 (2013.01); H04L 9/3093 (2013.01); H04L 9/3218 (2013.01); H04L 9/0841 (2013.01); H04L 9/3236 (2013.01); H04L 9/50 (2022.05)] 12 Claims
OG exemplary drawing
 
1. A computer implemented method of executing a smart contract generated by a first computing entity and a second computing entity, the method implemented by a third computing entity different from both the first computing entity and the second computing entity, the method comprising:
determining, based at least in part on exchanging powers of a secret using elliptic curve points, a common reference string comprising a verification key, wherein the power of the secret is based at least in part on a first set of the elliptic curve points generated by the first computing entity and a second set of the elliptic curve points generated by the second computing entity;
receiving, at the third computing entity, 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;
executing the smart contract by performing an evaluation of values of a plurality of internal circuit wires of a quadratic arithmetic program to produce an output of the quadratic arithmetic program;
producing a proof of correct execution of the smart contract;
generating a blockchain transaction using an output of the smart contract; and
validating, by a fourth computing entity, the generated blockchain transaction using the verification key and the proof of correct execution.