IP Library › Granted Patent US 12,664,251
Granted Patent B2
US 12,664,251 · App. 18/854,418 · Granted Jun 23, 2026

Statement proof and verification

Inventor: Enrique Larraia (London, GB)
Assignee: nChain Licensing AG
G06F21/44G06F2221/2103
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,664,251
App. No.
18/854,418
Filed
Oct 4, 2024
Granted
Jun 23, 2026
Kind
B2
Art Unit
2431
USPC
726/4
Abstract

A method of providing proof that a statement is true keeping a secret input to the statement a secret, comprising: generating a proof using a public input, the secret input, and a proving key linked to an augmented verification circuit which comprises (i) a verification circuit arranged to receive the inputs, supply the secret input to a function circuit representing the statement to generate a function circuit output, and determine whether the public input corresponds to the function circuit output; and (ii) a multiplicative gate arranged to receive the secret input and a dummy value. The proof comprises a commitment to inputs of multiplicative gates of the augmented verification circuit, the commitment generated using a first vector comprising n components from a finite group of data elements. The secret input is a discrete logarithm of a public element of said finite group. The proof is transmitted to a verifying device.

Claims (44)

1 . A computer implemented method of providing proof that a statement is true while keeping a secret input to the statement a secret, the method performed on a computing device and comprising:

generating a zero knowledge proof using a public input, the secret input, and a proving key linked to an augmented verification circuit,

wherein the augmented verification circuit comprises (i) a verification circuit arranged to receive the public input and secret input, supply the secret input to a function circuit representing the statement to generate a function circuit output, and determine whether the public input corresponds to the function circuit output; and (ii) a multiplicative gate arranged to receive the secret input and a dummy value; and

wherein the zero knowledge proof comprises a batched commitment to inputs of multiplicative gates of the augmented verification circuit, the batched commitment generated using a first vector comprising n components from a finite group of data elements, wherein each of the n components of the first vector correspond to a respective input of the multiplicative gates of the augmented verification circuit and one of the n components of the first vector is at a position which corresponds to an input wire of the dummy multiplicative gate which is arranged to receive the secret input, and wherein the secret input is a discrete logarithm of a public element of said finite group of data elements; and

transmitting the zero knowledge proof to a verifying computing device to enable the verifying computing device to verify that the computing device has knowledge of the secret input.

2 . The computer implemented method of claim 1 , wherein the batched commitment is a batched Pedersen commitment.

3 . The computer implemented method of claim 1 , wherein the finite group of data elements are of an elliptic curve.

4 . The computer implemented method of claim 3 , wherein the public element of said finite group of data elements is a public key and the secret input is a signing key.

5 . The computer implemented method of claim 1 , wherein the method further comprises proving that the secret input is the discrete logarithm of the public element.

6 . The computer implemented method of claim 5 , wherein proving that the secret input is the discrete logarithm of the public element comprises:

generating a further batched commitment, and transmitting the further batched commitment to the verifying computing device;

receiving a random challenge from the verifying computing device;

generating a response to the random challenge, and transmitting the response to the verifying computing device to prove that the secret input is the discrete logarithm of the public element.

7 . The computer implemented method of claim 6 , wherein the further batched commitment is a batched Pedersen commitment.

8 . The computer implemented method of claim 6 , wherein generating the further batched commitment comprises:

generating a second vector comprising n components, wherein a component of the second vector at a predetermined position, corresponding to the position in the first vector, is set to zero; and

generating the further batched commitment by committing to the second vector.

9 . The computer implemented method of claim 8 , wherein remaining components of the second vector are random values.

10 . The computer implemented method of claim 8 , wherein the finite group of data elements are of an elliptic curve, and generating the further batched commitment to the second vector uses a commitment key vector comprising n components from the finite group of data elements and one of the n components of the commitment key vector is a base point of the elliptic curve at a predetermined position which corresponds to the position in the first vector, the public element obtained by multiplying said base point with the secret input.

11 . The computer implemented method of claim 8 , wherein in response to receiving the random challenge, the method comprises:

modifying the first vector by replacing the secret input at said position with a zero to generate a modified first vector;

wherein the response comprises a response vector generated by combining the modified first vector with the second vector using the random challenge; and

transmitting the response to the verifying computing device.

12 . The computer implemented method of claim 11 , wherein the method further comprises combining a random element used to generate the batched commitment with a further random element of the further batched commitment to generate a combined random element, wherein the response comprises the combined random element.

13 . The computer implemented method of claim 1 , wherein the method comprises transmitting the statement to the verifying computing device.

14 . A computer implemented method of verifying that a statement is true without knowledge of a secret input to the statement, the method performed on a computing device and comprising:

receiving a zero knowledge proof from a proving computing device;

obtaining the statement;

verifying that the zero knowledge proof is valid using the zero knowledge proof, a public input and a verification key linked to an augmented verification circuit,

wherein the augmented verification circuit comprises (i) a verification circuit arranged to receive the public input and secret input, supply the secret input to a function circuit representing the statement to generate a function circuit output, and determine whether the public input corresponds to the function circuit output; and (ii) a multiplicative gate arranged to receive the secret input and a dummy value; and

wherein the zero knowledge proof comprises a batched commitment to inputs of multiplicative gates of the augmented verification circuit, the batched commitment generated using a first vector comprising n components from a finite group of data elements, wherein each of the n components of the first vector correspond to a respective input of the multiplicative gates of the augmented verification circuit and one of the n components of the first vector is at a position which corresponds to an input wire of the dummy multiplicative gate which is arranged to receive the secret input, and wherein the secret input is a discrete logarithm of a public element of said finite group of data elements; and

determining that the proving computing device has knowledge of the secret input based on said verifying.

15 . The computer implemented method of claim 1 , wherein an output of the multiplicative gate is not linked to the verification circuit.

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

17 . A non-transitory computer readable storage medium comprising computer readable instructions that, when read by a computing device, cause the computing device to perform a method of providing proof that a statement is true while keeping a secret input to the statement a secret, the method performed on a computing device and comprising:

generating a zero knowledge proof using a public input, the secret input, and a proving key linked to an augmented verification circuit,

wherein the augmented verification circuit comprises (i) a verification circuit arranged to receive the public input and secret input, supply the secret input to a function circuit representing the statement to generate a function circuit output, and determine whether the public input corresponds to the function circuit output; and (ii) a multiplicative gate arranged to receive the secret input and a dummy value; and

wherein the zero knowledge proof comprises a batched commitment to inputs of multiplicative gates of the augmented verification circuit, the batched commitment generated using a first vector comprising n components from a finite group of data elements, wherein each of the n components of the first vector correspond to a respective input of the multiplicative gates of the augmented verification circuit and one of the n components of the first vector is at a position which corresponds to an input wire of the dummy multiplicative gate which is arranged to receive the secret input, and wherein the secret input is a discrete logarithm of a public element of said finite group of data elements; and

transmitting the zero knowledge proof to a verifying computing device to enable the verifying computing device to verify that the computing device has knowledge of the secret input.

18 . A computing device comprising a processor and memory, the memory storing instructions that, when executed by the processor cause the computing device to perform a method of providing proof that a statement is true while keeping a secret input to the statement a secret, the method performed on a computing device and comprising:

generating a zero knowledge proof using a public input, the secret input, and a proving key linked to an augmented verification circuit,

wherein the augmented verification circuit comprises (i) a verification circuit arranged to receive the public input and secret input, supply the secret input to a function circuit representing the statement to generate a function circuit output, and determine whether the public input corresponds to the function circuit output; and (ii) a multiplicative gate arranged to receive the secret input and a dummy value; and

wherein the zero knowledge proof comprises a batched commitment to inputs of multiplicative gates of the augmented verification circuit, the batched commitment generated using a first vector comprising n components from a finite group of data elements, wherein each of the n components of the first vector correspond to a respective input of the multiplicative gates of the augmented verification circuit and one of the n components of the first vector is at a position which corresponds to an input wire of the dummy multiplicative gate which is arranged to receive the secret input, and wherein the secret input is a discrete logarithm of a public element of said finite group of data elements; and

transmitting the zero knowledge proof to a verifying computing device to enable the verifying computing device to verify that the computing device has knowledge of the secret input.

Priority Claims (1)
GB 2205183 · Apr 8, 2022 · national
Continuity (1)
Related Publication 20250342239A1 · Nov 6, 2025
References Cited (21)
US 8654974B2 · Anderson et al. · 2014 [cited by applicant]
US 10491390B2 · Gurkan · 2019 [cited by examiner]
US 10846372B1 · Jayachandran · 2020 [cited by examiner]
US 11310060B1 · Poelstra · 2022 [cited by examiner]
US 11394550B2 · Youssef · 2022 [cited by examiner]
US 20150207630A1 · Shimoyama et al. · 2015 [cited by applicant]
US 20170279611A1 · Kraemer · 2017 [cited by examiner]
US 20170317834A1 · Smith · 2017 [cited by examiner]
US 20190295182A1 · Kfir · 2019 [cited by examiner]
US 20210028939A1 · Trevethan et al. · 2021 [cited by applicant]
US 20210226795A1 · Covaci · 2021 [cited by examiner]
US 20220075879A1 · Hamburg et al. · 2022 [cited by applicant]
US 20220085984A1 · Khandani · 2022 [cited by applicant]
US 20230071022A1 · Hong et al. · 2023 [cited by applicant]
US 20230254115A1 · Hamburg et al. · 2023 [cited by applicant]
US 20230401033A1 · Ikarashi · 2023 [cited by applicant]
US 20250117217A1 · Heinecke et al. · 2025 [cited by applicant]
GB2205173.4 Combined Search and Examination Report dated Sep. 30, 2022, 7 pages. [cited by applicant]
GB2205183.3 Combined Search and Examination Report dated Sep. 21, 2022, 5 pages. [cited by applicant]
PCT/EP2023/058236 International Search Report and Written Opinion dated Jul. 10, 2023, 10 pages. [cited by applicant]
PCT/EP2023/058242 International Search Report and Written Opinion dated Jul. 13, 2023, 10 pages. [cited by applicant]