IP Library › Granted Patent US 12,737,753
Granted Patent B2
US 12,737,753 · App. 18/603,863 · Granted Sep 15, 2026

Computer-implemented system and method for trustless zero-knowledge contingent payment

Inventor: Thomas Trevethan (London, GB)
Assignee: nChain Licensing AG
G06Q20/3829G06F16/2365G06F16/2379G06F16/2465G06Q20/0655G06Q20/1235G06Q20/38215G06Q20/3825G06Q20/3827G06Q20/389G06Q20/401G06Q30/0185G06Q30/0215G06Q40/04H04L9/008H04L9/0637H04L9/0819H04L9/0869H04L9/3066H04L9/3073H04L9/3221G06F7/725G06F2216/03G06Q2220/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 12,737,753
App. No.
18/603,863
Granted
Sep 15, 2026
Kind
B2
Abstract

This invention relates to a computer-implemented method for enabling zero-knowledge proof or verification of a statement (S) in which a prover proves to a verifier that a statement is true while keeping a witness (W) to the statement a secret. The method includes sending to the verifier a statement (S) represented by an arithmetic circuit configured to implement a function circuit and determine whether a function circuit output (h) and an elliptic curve point (P), the function circuit input (s) to a wire of the function circuit is equal to the corresponding elliptic curve point multiplier (s); individual wire commitments and a batched commitment for wires of the circuit; a function circuit output (h); proving key (PrK) to enable the verifier to determine that the circuit is satisfied and calculate the elliptic curve point (P) to validate the statement, determin that the prover holds the witness (w) to the statement.

Claims (176)

1 . A computer-implemented method executed by a computing device associated with a seller or prover for enabling a trustless zero-knowledge contingent payment or exchange of reward data from a buyer or verifier in exchange for access data from the seller or prover, wherein the reward data is data associated with a payment, the method including:

receiving from the buyer a buyer public key (pk B ) derived from multiplying a buyer secret key (sk B ) with an elliptic curve generator point (G), wherein the elliptic curve generator point (G) is defined on an elliptic curve and is selected from elliptic curves used in blockchain network cryptographic operations;

generating a seller public key (pk s ) determined from multiplying a seller secret key (i) with the elliptic curve generator point (G), wherein the seller secret key is the access data or is used to secure the access data required by the buyer;

generating a zero-knowledge proof statement using a Sigma protocol with batched wire commitments for an arithmetic circuit representing the zero-knowledge proof statement, wherein the zero-knowledge proof statement uses publicly verifiable elliptic curve parameters with a prover-generated proving key computed from random numbers, which for a function circuit output of an arithmetic circuit representing the zero-knowledge proof statement, and an elliptic curve point, an input of the function circuit is equal to the seller secret key (i), wherein said zero-knowledge proof statement enables the buyer to determine that the arithmetic circuit is satisfied and validate the zero-knowledge proof statement through verification of the batched wire commitments, thus determining that the seller holds the required seller secret key that unlocks the access data;

preparing and sending a data set to the buyer, the data set including the zero-knowledge proof statement and a hash value computed by applying a hash function to the seller secret key (i);

receiving from the buyer a first transaction Tx 1 that contains an output including a hash-locked output script that specifies a hash value computed by applying a hash function to the seller secret key that allocates the reward data to the buyer, which is accessible using the seller secret key (i) as a preimage to the hash value specified in the hash-locked output script;

responsive to observing the first transaction Tx 1 being broadcast on a blockchain, such that the first transaction Tx 1 is mined into a block by distributed blockchain nodes, accessing the reward data from the output of the first transaction Tx 1 ; and

generating, signing and broadcasting a second transaction Tx 2 that includes a digital signature from the seller or prover and the seller secret key (i) in plaintext form as the preimage to satisfy the hash-locked output script to unlock the reward data, wherein the seller secret key (i) is revealed on the blockchain through publicly recorded inclusion of the plaintext seller secret key in an input script of the second transaction Tx 2 that is stored in a subsequent block on the blockchain, thus enabling the buyer to retrieve the seller secret key (i) by reading the input script of the second transaction Tx 2 from the blockchain and to obtain the access data offered by the seller by deriving the access data from the retrieved seller secret key (i).

2 . A computer-implemented method executed by a computing device associated with a buyer or verifier for enabling a trustless zero-knowledge contingent payment or exchange of reward data from a buyer or verifier in exchange for access data from a seller or prover, wherein the reward data is data associated with a payment, the method including:

sending the seller a buyer public key (pk B ) derived from multiplying a buyer secret key (sk B ) with an elliptic curve generator point (G), wherein the elliptic curve generator point (G) is defined on an elliptic curve and is selected from elliptic curves used in blockchain network cryptographic operations;

receiving from the seller a data set, the data set including a zero-knowledge proof statement using a Sigma protocol with batched wire commitments for an arithmetic circuit representing the zero-knowledge proof statement, wherein the zero-knowledge proof statement uses publicly verifiable elliptic curve parameters with a prover-generated proving key computed from random numbers, which for a function circuit output of an arithmetic circuit representing the statement, and an elliptic curve point, an input of the function circuit input is equal to a seller secret key (i), wherein a seller's public key (pk s ) is derived from multiplying the seller secret key (i) with the elliptic curve generator point (G), wherein the seller secret key is the access data or is used to secure the access data, wherein said zero-knowledge proof statement enables the buyer to determine that the arithmetic circuit is satisfied and validate the zero-knowledge proof statement through verification of the batched wire commitments, thus determining that the seller holds the seller secret key (i) required for unlocking the access data;

receiving from the seller the data set including the zero-knowledge proof statement and a hash value computed by applying a hash function to the seller secret key (i);

verifying the zero-knowledge proof statement;

generating, signing and broadcasting a first transaction Tx 1 , which contains an output including a hash-locked output script that specifies a hash value computed by applying a hash function to the seller secret key that allocates the reward data to the buyer in exchange for obtaining the access data, which is accessible using the seller secret key (i) as a preimage to the hash value specified in the hash-locked output script;

monitoring on a blockchain, for an indication that the seller has signed and broadcasted a second transaction that includes a digital signature from the seller or prover and the seller secret key (i) in plaintext form as the preimage to satisfy the hash-locked output script to unlock the reward data from the output of the first transaction, wherein the seller secret key (i) is revealed on the blockchain through publicly recorded inclusion of the plaintext seller secret key in the input script of the second transaction that is stored in a subsequent block on the blockchain;

retrieve the seller secret key (i) by reading the input script of the second transaction from the blockchain; and

obtaining the access data offered by the seller by deriving the access data from the retrieved seller secret key (i).

3 . The computer-implemented method according to claim 1 , wherein the access data to be provided by the seller is a secret key of a vanity address or enables the determination of a secret key of a vanity address.

4 . The computer-implemented method according to claim 1 , for enabling zero-knowledge proof or verification of a statement (S) in which a prover proves to a verifier that a statement is true while keeping a witness (w) to the statement a secret, the method including:

the prover sending to the verifier:

a statement (S) represented by an arithmetic circuit with m gates and n wires configured to implement a function circuit and determine whether for a given function circuit output (h) and an elliptic curve point (P), the function circuit input (s) to a wire of the function circuit is equal to the corresponding elliptic curve point multiplier (s);

individual wire commitments and/or a batched commitment for wires of the arithmetic circuit;

a function circuit output (h); and

a proving key (PrK),

which enables the verifier to determine that the arithmetic circuit is satisfied and calculate the elliptic curve point (P) and validate the statement, thus determining that the prover holds the witness (w) to the statement.

5 . The computer-implemented method according to claim 4 , wherein the prover sends an individual wire commitment and communicates with the verifier using the sigma protocol to prove knowledge of the witness (W).

6 . The computer-implemented method according to claim 4 , wherein the prover receives from the verifier a challenge value (x) and responds with an opening.

7 . The computer-implemented method according to claim 4 , wherein the prover sends to the verifier a random value (x) for enabling the verifier to determine that the statement is true and calculate the elliptic curve point (P).

8 . The computer-implemented method according to claim 7 , wherein the random value (x) is computed by hashing the concatenation of all the individual wire commitments generated and sent to the verifier by the prover.

9 . The computer-implemented method according to claim 4 , wherein the commitment W i is:

W

i

=

Com

⁡

(

w

i

,

r

i

)

wherein:

Com is the commitment to the function circuit,

w i is the wire value,

r i is a random number—different for each wire commitment, and

i is the wire denomination,

such that

Com

⁡

(

w

,

r

)

=

w

×

G

+

r

×

F

wherein:

F and G are elliptic curve points.

10 . The computer-implemented method according to claim 9 , wherein an input to a wire l in the arithmetic circuit is:

ko

=

r

1

×

F

,

wherein:

ko is a key-opening input,

n is a random number, and

F is a point on an elliptic curve.

11 . The computer-implemented method according to claim 10 , wherein the verifier confirms that the circuit is satisfied, and is able to calculate the public key for the wire l via elliptic curve point subtraction:

pk

l

=

Com

⁡

(

w

l

,

r

l

)

-

ko

l

.

12 . The computer-implemented method according to claim 4 , wherein the prover sends a batch of wire commitments and generates random numbers to compute elliptic curve points for each wire to form the proving key (PrK).

13 . The computer-implemented method according to claim 12 , wherein the batched commitment for the witness is:

Com

⁡

(

w

)

=

r

×

F

+

∑

i

=

1

n

-

1

w

i

×

K

i

+

w

n

×

G

wherein:

r is a random number generated by the prover,

the prover computes the commitment to a vector w of wire values w i (for i=1, . . . , n) where w n is to be a key-opened,

K i are computed elliptic curve points,

F is a point on an elliptic curve, and

G is an elliptic curve generator point.

14 . The computer-implemented method according to claim 13 , wherein an input for the wire n in the arithmetic circuit is:

ko

n

=

r

×

F

+

∑

i

=

1

n

-

1

w

i

×

K

i

wherein:

ko n is a key-opening input,

r is a random number, and

F is a point on the elliptic curve.

15 . The computer-implemented method according to claim 14 , wherein the verifier calculates a public key opening of the key-statement wire, via elliptic curve arithmetic:

pk

n

=

Com

⁡

(

w

)

-

ko

n

.

16 . The computer-implemented method according to claim 1 , wherein the prover additionally sends a fully opened commitment as an input to at least one wire of the function circuit of the arithmetic circuit.

17 . The computer-implemented method according to claim 1 , wherein the function circuit implements a hash function and, preferably, an SHA-256 hash function.

18 . A non-transitory computer-readable storage medium comprising computer-executable instructions that, when executed, configure a processor to perform the method of claim 1 .

19 . An electronic device comprising:

an interface device;

one or more processor(s) coupled to the interface device; and

a memory coupled to the one or more processor(s), the memory having stored thereon computer executable instructions that, when executed, configure the one or more processor(s) to perform the method of claim 1 .

20 . A node of a blockchain network, a node configured to perform the method of claim 1 .

21 . A blockchain network having the node according to claim 20 .

22 . The computer-implemented method of claim 1 , wherein the distributed blockchain nodes validate the second transaction Tx 2 by executing verification that confirms a hash of the seller secret key (i) supplied in the input script of the second transaction Tx 2 matches the hash value specified in the hash-locked output script of the first transaction Tx 1 .

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2024
From: TREVETHAN, THOMAS
To: NCHAIN HOLDINGS LTD
Reel/Frame 066790/0583 →
CHANGE OF NAME Recorded Mar 15, 2024
From: NCHAIN HOLDINGS LTD
To: NCHAIN LICENSING AG
Reel/Frame 066801/0131 →
Priority Claims (3)
GB 1804739 · Mar 23, 2018 · national
GB 1804740 · Mar 23, 2018 · national
GB 1804742 · Mar 23, 2018 · national
Continuity (2)
Continuation 17040482 · Mar 18, 2019
Related Publication 20240249280A1 · Jul 25, 2024
References Cited (74)
US 5581615A · Stern · 1996 [cited by examiner]
US 6282295B1 · Young · 2001 [cited by examiner]
US 8751806B1 · Adler · 2014 [cited by examiner]
US 9602285B2 · Sakumoto · 2017 [cited by examiner]
US 11049128B1 · Olson · 2021 [cited by examiner]
US 11055707B2 · Lingappa · 2021 [cited by examiner]
US 11151558B2 · Ferenczi · 2021 [cited by examiner]
US 11310060B1 · Poelstra · 2022 [cited by examiner]
US 11496309B2 · del Pino · 2022 [cited by examiner]
US 11645658B2 · Mohassel et al. · 2023 [cited by applicant]
US 11831748B1 · Fisher · 2023 [cited by examiner]
US 20070121933A1 · Futa · 2007 [cited by examiner]
US 20150341792A1 · Walsh · 2015 [cited by examiner]
US 20160358165A1 · Maxwell · 2016 [cited by examiner]
US 20170278100A1 · Kraemer · 2017 [cited by examiner]
US 20170279611A1 · Kraemer · 2017 [cited by examiner]
US 20170286717A1 · Khi · 2017 [cited by examiner]
US 20170346833A1 · Zhang · 2017 [cited by examiner]
US 20170366347A1 · Smith · 2017 [cited by examiner]
US 20180034634A1 · Benarroch Guenun · 2018 [cited by examiner]
US 20180159689A1 · Keuffer · 2018 [cited by examiner]
US 20180270065A1 · Brown · 2018 [cited by examiner]
US 20190026821A1 · Bathen · 2019 [cited by examiner]
US 20190034923A1 · Greco · 2019 [cited by examiner]
US 20190213584A1 · Shanmugam · 2019 [cited by examiner]
US 20200053054A1 · Ma · 2020 [cited by examiner]
US 20200219099A1 · Mohassel · 2020 [cited by examiner]
US 20200342452A1 · Diamond · 2020 [cited by examiner]
US 20210027294A1 · Trevethan · 2021 [cited by examiner]
US 20210158342A1 · Bartolucci · 2021 [cited by examiner]
US 20230412358A1 · Bartolucci · 2023 [cited by examiner]
FR 3076152A1 · 2019 [cited by examiner]
FR 3097093A1 · 2020 [cited by examiner]
JP H08160857A · 1996 [cited by applicant]
WO 2016200885A1 · 2016 [cited by applicant]
WO 2017079652A1 · 2017 [cited by applicant]
WO WO2017095671A1 · 2017 [cited by examiner]
WO 2018007828A2 · 2018 [cited by applicant]
WO WO2023046409A1 · 2023 [cited by examiner]
Matteo Campanelli et al_Zero-Knowledge Contingent Payments Revisited (Year: 2017) (Year: 2017) (Year: 2017). [cited by examiner]
Bootle, Jonathan, et al. “Efficient zero-knowledge proof systems.” Foundations of security analysis and design VIII. Springer, Cham, 2016. 1-31. (Year: 2016) (Year: 2016) (Year: 2016). [cited by examiner]
Wahby, R. S. et al.: “Double-efficient zkSNARKs without trusted setup,” Cryptology ePrint Archive, Paper 2017/1132 ver:20180209:012456, [online], Feb. 9, 2018, pp. 1-29. [cited by applicant]
Danezis, G. et al.: “Pinocchio Coin: Building Zerocoin from a Succinct Pairing-based Proof System,” PETShop'13: Proceedings of the First ACM workshop on Language support for privacy-enhancing technologies, Nov. 2013, pp… [cited by applicant]
Antonopoulos, “Mastering Bitcoin—Unlocking Digital Cryptocurrencies,” O'Reilly Media, Inc., Dec. 20, 2014, 282 pages. [cited by applicant]
Banasik et al., “Efficient Zero-Knowledge Contingent Payments in Cryptocurrencies Without Scripts,” European Symposium on Research in Computer Security, Sep. 15, 2016, 25 pages. [cited by applicant]
Bartok et al., “Trouble Understanding Range Proof of Greg Maxwell's Confidential Transaction,” https://crypto.stackexchange.com/questions/47392/trouble-understanding-range-proof-of-greg-maxwells-confidential-transaction… [cited by applicant]
Bootle et al., “Efficient Zero-Knowledge Arguments for Arithmetic Circuits in the Discrete Log Settings”, Annual International Conference on the Theory and Applications of Cryptographic Techniques. Springer, Berlin, Hei… [cited by applicant]
Bootle et al., “Efficient Zero-Knowledge Proof Systems,” Foundations of Security Analysis and Design, Aug. 14, 2016, 32 pages. [cited by applicant]
Bowe, “Pay-to-Sudoku,” GitHub, retrieved from https://github.com/zcash-hackworks/pay-to-sudoku/blob/master/README.md, 2016, 2 pages. [cited by applicant]
Buterin, “Chain Interoperability,” Sep. 9, 2016, 25 pages. [cited by applicant]
Campanelli et al., “Zero-knowledge contingent payments revisited: Attacks and payments for services,” Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security, Oct. 30, 2017, 28 pages. [cited by applicant]
Chase et al., “Efficient Zero-Knowledge Proof of Algebraic and Non-Algebraic Statements with Applications to Privacy and Preserving Credentials,” Advances in Cryptology, Jul. 21, 2016, 30 pages. [cited by applicant]
Chatch, “Stellar XLM to Ethereum ETH Cross-chain Trades,” retreived from https://github.com/chatch/xcat/blob/master/docs/protocol_stellar_xlm_to_ethereum_et on Sep. 27, 2018, 4 pages. [cited by applicant]
Covaci et al., “NECTAR: Non-Interactive Smart Contract Protocol using Blockchain Technology,” arXiv preprint arXiv:1803.04860, Mar. 13, 2018, 8 pages. [cited by applicant]
Fuchsbauer et al., “Proofs on Encrypted Values in Bilinear Groups and an Applicaiton to Anonymity of Signatures,” Third International Conference on Pairing-based Cryptography, Aug. 2009, 26 pages. [cited by applicant]
Fuhr, Lessons from Vanity Zero-Knowledge Work or What to Trust the C[Ir]o[uw]d With, Confidence.org presentation, 2016, 46 pages. [cited by applicant]
Ganesh, “Zero-Knowledge Proofs: Efficient Techniques for Comnination Statements and Their Applications,” Partial PhD Dissertation, New York University, Sep. 2017, 128 pages. [cited by applicant]
Gibson, “From Zero (Knowledge) to Bulletproofs,” 2018, 48 pages. [cited by applicant]
International Search Report and Written Opinion mailed Jun. 6, 2019, Patent Application No. PCT/IB2019/052185, 14 pages. [cited by applicant]
International Search Report and Written Opinion mailed Jun. 6, 2019, Patent Application No. PCT/IB2019/052186, 13 pages. [cited by applicant]
International Search Report and Written Opinion mailed May 28, 2019 Patent Application No. PCT/IB2019/052184, 14 pages. [cited by applicant]
Jawurek et al., “Zero-Knowledge Using Garbled Circuits or How to Prove Non-Algebraic Statements Efficiently,” Acm Sigsac conference on Computer & communications security, Nov. 2013, 23 pages. [cited by applicant]
Maxwell, “Confidential Transaction, the Initial Investigation,” Retrieved May 9, 2018 from https://elementsproject.org/features/confidential-transactions/investigation, 9 pages. [cited by applicant]
Maxwell, “The First Successful Zero-Knowledge Contingent Payment,” Bitcoin Core, retrieved from https://bitcoincore.org/en/2016/02/26/zero-knowledge-contingent-payments-announcement/, Feb. 26, 2016, 5 pages. [cited by applicant]
Nakamoto, “Bitcoin: A Peer-to-Peer Electronic Cash System,” Bitcoin, Oct. 31, 2008, https://bitcoin.org/bitcoin.pdf, 9 pages. [cited by applicant]
Satoshi et al., “Connection Limits,” Bitcoin Forum, Aug. 9, 2010, https://bitcointalk.org/index.php?topic=741.0;prev_next=prev, 2 pages. [cited by applicant]
UK Commercial Search Report mailed Sep. 6, 2018, Patent Application No. GB1804739.9, 9 pages. [cited by applicant]
UK IPO Search Report mailed Sep. 24, 2018, Patent Application No. GB1804739.9, 5 pages. [cited by applicant]
UK IPO Search Report mailed Sep. 24, 2018, Patent Application No. GB1804742.3, 5 pages. [cited by applicant]
UK IPO Search Report mailed Sep. 7, 2018, Patent Application No. GB1804740.7, 7 pages. [cited by applicant]
Wikipedia, “Atomic Swap,” retrieved from https://en.bitcoin.it/wiki/Atomic_swap, Dec. 2018, 3 pages. [cited by applicant]
Wikipedia, “Zero Knowledge Contingent Payment,” Bitcoin Wiki, retrieved from https://en.bitcoin.it/wiki/Zero_Knowledge_Contingent_Payment, Apr. 8, 2020, 3 pages. [cited by applicant]
Wikipedia, “Zero-Knowledge Proof,” retrieved from https://en.wikipedia.org/w/index.php?title=Zero-knowledge_proof&oldid=826583201 on May 29, 2019, 9 pages. [cited by applicant]
Zarquan et al., “How Woul I convert Committed Coordinates x and y to a Commitment of the EC POint Without Revealing the Point (in Zero Knowledge) or Vice Versa?” https://crypto.stackexchange.com/questions/52494/how-woul… [cited by applicant]