IP Library › Granted Patent US 10,951,410
Granted Patent B1
US 10,951,410 · App. 17/092,467 · Granted Mar 16, 2021

System for implementing a virtual machine based on a zero-knowledge proof circuit for general operation verification

Inventors: Soonhyeong Jeong (Gyeonggi-do, KR); Byeong-tae Ahn (Gyeonggi-do, KR)
Assignees: Onther, Inc.; Byeong-Tae Ahn
H04L9/3221G06F9/30134G06F9/45558H04L9/3026G06F2009/45562
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 10,951,410
App. No.
17/092,467
Granted
Mar 16, 2021
Kind
B1
Abstract

A system for implementing a virtual machine based on a zero-knowledge proof circuit for general operation verification is disclosed, which includes a general operation verification circuit generator that generates a general operation verification circuit having a base number of commands, a base number of machine steps, and a base system size and generates proof keys and verification keys by using the general operation verification circuit and a zk-SNARK algorithm, a prover terminal that generates a proof by using a proof key included in the general operation verification circuit, coefficients of a polynomial function obtained through the zk-SNARK algorithm, and information required for verifying and proving from the general operation verification circuit; and a verifier terminal that performs verification of whether or not the proof is valid by using the verification key, the information required for verifying and proving from the general operation verification circuit, and the proof.

Claims (82)

1. A system for implementing a virtual machine based on a zero-knowledge proof circuit for general operation verification, the system comprising: a general operation verification circuit generator configured to generate a general operation verification circuit having a base number of commands, a base number of machine steps, and a base system size and to generate proof keys and verification keys by using the general operation verification circuit and a zk-SNARK (zero-knowledge succinct non-interactive argument of knowledge) algorithm; a prover terminal configured to generate a proof by using a proof key included in the general operation verification circuit, coefficients of a polynomial function obtained through the zk-SNARK algorithm, and information required for verifying and proving from the general operation verification circuit; and a verifier terminal configured to perform verification of whether or not the proof is valid by using a verification key included in the general operation verification circuit, the information required for verifying and proving from the general operation verification circuit, and the proof, wherein:

the general operation verification circuit generator comprises a circuit generation module configured to generate a general operation verification circuit capable of operating under any program having the base number of commands, the base number of machine steps, and the base system size by using Equation 1 below; and a zk-SNARK key generation module configured to generate the proof keys and the verification keys by using a security parameter and the circuit generated by the circuit generation module after receiving key generator information, prover information, and verifier information;

the zk-SNARK key generation module generates the polynomial function by converting a verification rule into a mathematical form indicating a triple vector and afterwards subjecting the verification rule that has been converted into the triple vector to a Lagrange polynomial or fast Fourier transformation, the prover terminal generates the proof by using the proof key generated at the general operation verification circuit generator, the coefficients of the polynomial function obtained through the zk-SNARK algorithm, and the information required for verifying and proving according to Equation 2 below, the verifier terminal computes Equation 3 below by using a portion of the verification keys and the information required for verifying and proving and uses the verification keys and a resultant value of Equation 3 to calculate twelve pairings and perform a required inspection, wherein a variable-based multi-scalar product technique is used during a computation of Equation 3 to reduce an amount of computation;

the system for implementing a virtual machine based on a zero-knowledge proof circuit for general operation verification further comprises a storage unit, a code generation unit, a compiler, a storage unit, a stack, and a code execution unit in order to allow an ascertaining of whether or not a transaction is proper by performing verification on a proof without having to execute the transaction,

the storage unit stores the proof generated by the prover terminal;

the code generation unit generates code written in a Solidity language to represent the proof stored in the storage unit, the code generated by the code generation unit compiled by the compiler and converted into Ethereum Bytecode;

the compiler compiles the code generated by the code generation unit to generate the Ethereum Bytecode and provides the Ethereum Bytecode to the code execution unit;

the code execution unit executes the Ethereum Bytecode generated by the compiler to perform verification for the proof and separates the Ethereum Bytecode into opcodes and stores the opcodes in the stack;

the stack stores the opcodes separated from the Ethereum Bytecode during an execution of the Ethereum Bytecode;

when the verifier terminal presents a plurality of questions to the prover terminal, the prover terminal uses recursive zero-knowledge proof to generate Proof 1 corresponding to Question 1 among the plurality of questions, generate Proof 2 by using Question 2 among the plurality of questions and said Proof 1, generate Proof 3 by using Question 3 among the plurality of questions and said Proof 2, generate a final Proof 4 for a final Question 4 among the plurality of questions by using said Question 4 and said Proof 3;

the prover terminal presents only the final Proof 4 to the verifier terminal with Proofs 1, 2, and 3 excluded instead of presenting a proof for each of the plurality of questions by using said Proof 1 corresponding to said Question 1 to generate the final Proof 4 corresponding to the final Question 4; and

the verifier terminal verifies only the final Proof 4 to prove a legitimacy of the final Proof 4 and the remaining Proofs 1, 2, and 3 associated with the final Proof 4, where said Equation 1, said Equation 2, and said Equation 3 are as below:

C=O (( l+n+T )·log( l+n+T ))gates,  [Equation 1]

(C: circuit, l: base number of commands, T: base number of machine steps, n: base system size)

H

⁡

(

z

)

:=

A

⁡

(

z

)

⁢

B

⁡

(

z

)

-

C

⁡

(

z

)

Z

⁡

(

z

)

[

Equation

⁢

⁢

2

]

(A, B, C∈F r [z]: derived from a QAP instance ({right arrow over (A)}, {right arrow over (B)}, {right arrow over (C)},Z):=QAPinst(C) and a proof of the QAP)

vk

x

→

:=

vk

IC

,

0

+

∑

i

=

1

n

⁢

⁢

x

i

⁢

vk

IC

,

i

[

Equation

⁢

⁢

3

]

vk verification key,

n: input size,

C: circuit.

2. The system for implementing a virtual machine based on a zero-knowledge proof circuit for general operation verification according to claim 1 , wherein the zk-SNARK key generation module converts the verification rule into a RICS (rank-1 constraint system) format and then converts the RICS to a QAP (quadratic arithmetic program).

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 29, 2021
From: AHN, BYEONG-TAE
To: ONTHER, INC.
Reel/Frame 056700/0154 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2020
From: JEONG, SOONHYEONG; AHN, BYEONG-TAE
To: ONTHER, INC.; AHN, BYEONG-TAE
Reel/Frame 054311/0620 →
Priority Claims (1)
KR 10-2020-0082417 · Jul 3, 2020 · national
Cited By (1)
US 12,627,487