KR102170820B1 - 일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 시스템 - Google Patents

일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 시스템 Download PDF

Info

Publication number
KR102170820B1
KR102170820B1 KR1020200082417A KR20200082417A KR102170820B1 KR 102170820 B1 KR102170820 B1 KR 102170820B1 KR 1020200082417 A KR1020200082417 A KR 1020200082417A KR 20200082417 A KR20200082417 A KR 20200082417A KR 102170820 B1 KR102170820 B1 KR 102170820B1
Authority
KR
South Korea
Prior art keywords
verification
proof
circuit
key
evidence
Prior art date
Application number
KR1020200082417A
Other languages
English (en)
Inventor
안병태
정순형
Original Assignee
주식회사 온더
안병태
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 온더, 안병태 filed Critical 주식회사 온더
Priority to KR1020200082417A priority Critical patent/KR102170820B1/ko
Application granted granted Critical
Publication of KR102170820B1 publication Critical patent/KR102170820B1/ko
Priority to US17/092,467 priority patent/US10951410B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • H04L9/3221Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs interactive zero-knowledge proofs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3026Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to polynomials generation, e.g. generation of irreducible polynomials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • H04L2209/38
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Discrete Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명의 일 실시예에 따른 일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 시스템은 기준 명령어의 개수, 기준 머신 스텝의 개수 및 기준 시스템의 크기를 갖는 일반연산 검증용 서킷을 생성하고, 상기 일반연산 검증용 서킷 및 zk-SNARK(Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) 알고리즘을 이용하여 증명 키 및 검증 키를 생성하는 일반연산 검증용 서킷 생성기, 상기 일반연산 검증용 서킷을 포함하는 증명 키, 상기 zk-SNARK 알고리즘을 통해 획득된 다항함수의 계수, 상기 일반연산 검증용 서킷 중 검증과 증명에 필요한 정보를 이용하여 증거를 생성하는 증명자 단말 및 상기 검증 키, 상기 일반연산 검증용 서킷 중 검증과 증명에 필요한 정보 및 상기 증거를 이용하여 상기 증거가 유효한지 검증을 실행하는 검증자 단말을 포함한다.

Description

일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 시스템{A SYSTEM TO IMPLEMENT A VIRTUAL MACHINE BASED ON A ZERO-KNOWLEDGE PROOF CIRCUIT FOR GENERAL OPERATION VERIFICATION}
본 발명은 일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 시스템에 관한 것으로, 보다 구체적으로 블록체인 참여자가 블록의 내용을 알지 못하더라도 전체 노드 중 증명 및 보고의 역할을 수행하는 노드가 블록의 내용이 위/변조 되지 않았음을 빠르게 검증할 수 있도록 하는 일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 시스템에 관한 것이다.
블록체인은 P2P(Peer to Peer) 네트워크에서 신뢰할 수 있는 제 3자 (Trusted Third Parity)의 개입 없이, 거래 내역들의 무결성을 확보하고 참여자들이 내역들을 공유하는 분산형 디지털 장부를 의미한다.
블록체인을 응용한 대표적인 사례는 비트코인 및 이더리움 등과 같은 암호화폐이다. 이더리움은 이더리움 가상머신(이하 EVM)을 도입한 후, EVM을 통해 사용자들은 사전 정의된 일련의 작업을 수행하기보다 사용자가 원하는 방식에 맞게 직접 프로그래밍을 할 수 있다.
하지만 EVM은 JVM(Java Virtual Machine)과 같은 기존 가상머신에 비해 효율이 매우 떨어지고, 또한 복잡한 어플리케이션 환경을 지원하기 어렵다는 문제점이 있다.
지난 10년간 수많은 블록체인 구현체들이 등장했지만, 트랜잭션을 누적시켜 저장한다는 측면에서 별다른 혁신이 일어나지 않았고, 이럴 경우 모든 트랜잭션 내용을 검증해야하기 때문에 확장성에 한계가 존재한다.
즉, 트랜잭션 종류마다 별도의 검증 알고리즘을 사용하기 때문에, 트랜잭션의 크기가 커질수록 검증 부담이 커지는 문제가 발생하며, 앞으로 등장할 다양한 블록체인 플랫폼에서 공통적으로 쓰일 수 있는 검증 모듈을 제작해 블록체인의 구조적인 혁신을 선도할 필요가 있다.
블록체인은 비트코인으로 대표되는 UTXO(Unspent Transaction Output)로 만들어진 단순한 형태의 블록체인과 이더리움과 같이 상태 트리(State Tree)를 다루는 복잡한 형태의 블록체인으로 나뉜다.
현재는 단순한 형태의 블록체인에서 일부 트랜잭션을 처리하는 경우에만 영지식 증명이 활용된다. 이때, 영지식 증명은 증명자가 자신이 알고 있는 지식과 정보를 공개하지 않으면서, 그 지식을 알고 있다는 사실을 검증자에게 증명하는 시스템을 의미한다.
본 발명은 일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 시스템을 제공하는 것을 목적으로 한다.
또한, 본 발명은 사전에 정의된 형태의 트랜잭션뿐만 아니라, 사용자가 원하는 다양한 형태의 트랜잭션에도 영지식 증명을 활용 수 있도록 하는 일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 시스템을 제공하는 것을 목적으로 한다.
또한, 본 발명은 블록체인 참여자가 블록의 내용을 알지 못하더라도 전체 노드 중 증명 및 보고의 역할을 수행하는 노드가 블록의 내용이 위/변조 되지 않았음을 빠르게 검증할 수 있도록 하는 일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 시스템을 제공하는 것을 목적으로 한다.
또한, 본 발명은 참여자들에게 블록 싱크 속도를 급격하게 높여주어 새로운 참여자들이 빠르게 네트워크에 참여할 수 있도록 하는 일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 시스템을 제공하는 것을 목적으로 한다.
또한, 본 발명은 영지식 증명 기술을 트랜잭션 데이터 저장에 적용할 경우 실제 데이터를 가지치기(pruning)하고 오직 데이터에 대한 증명만 남기는 방식으로 데이터를 압축시켜 데이터 저장 공간을 절약할 수 있도록 하는 일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 시스템을 제공하는 것을 목적으로 한다.
본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시예에 의해 보다 분명하게 이해될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
이러한 목적을 달성하기 위한 일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 시스템은 기준 명령어의 개수, 기준 머신 스텝의 개수 및 기준 시스템의 크기를 갖는 일반연산 검증용 서킷을 생성하고, 상기 일반연산 검증용 서킷 및 zk-SNARK(Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) 알고리즘을 이용하여 증명 키 및 검증 키를 생성하는 일반연산 검증용 서킷 생성기, 상기 일반연산 검증용 서킷을 포함하는 증명 키, 상기 zk-SNARK 알고리즘을 통해 획득된 다항함수의 계수, 상기 일반연산 검증용 서킷 중 검증과 증명에 필요한 정보를 이용하여 증거를 생성하는 증명자 단말 및 상기 검증 키, 상기 일반연산 검증용 서킷 중 검증과 증명에 필요한 정보 및 상기 증거를 이용하여 상기 증거가 유효한지 검증을 실행하는 검증자 단말을 포함한다.
상기 일반연산 검증용 서킷 생성기는 기준 명령어의 개수, 기준 머신 스텝의 개수 및 기준 시스템의 크기를 갖는 어떤 프로그램에서도 동작하는 일반연산 검증용 서킷을 생성하는 서킷 생성 모듈 및 상기 키 생성자 정보, 증명자 정보 및 검증자 정보를 수신한 후, 시큐리티 파라미터 및 상기 서킷 생성 모듈에 의해 생성된 일반연산 검증용 서킷을 이용하여 증명 키 및 검증 키를 생성하는 zk-SNARK 키 생성 모듈을 포함한다.
상기 zk-SNARK 키 모듈은 검증 규칙을 트리플 벡터를 지시하는 수학적 형태로 변환한 후, 상기 트리플 벡터로 변환된 검증 규칙을 라그랑주 다항식 또는 고속 푸리에 변환하여 다항함수를 생성하고, 상기 서킷 생성 모듈은 수학식 1을 이용하여 일반연산 검증용 서킷을 생성한다.
[수학식 1]
C =
Figure 112020069549751-pat00001
C: 서킷
Figure 112020069549751-pat00002
: 기준 명령어의 개수,
T: 기준 머신 스텝의 개수,
n: 기준 시스템의 크기
또한, 이러한 목적을 달성하기 위한 일반 연산 검증용 영지식 증명 서킷 생성 방법은 일반연산 검증용 서킷 생성기가 기준 명령어의 개수, 기준 머신 스텝의 개수 및 기준 시스템의 크기를 갖는 일반연산 검증용 서킷을 생성하는 단계, 상기 일반연산 검증용 서킷 생성기가 상기 일반연산 검증용 서킷 및 zk-SNARK(Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) 알고리즘을 이용하여 증명 키 및 검증 키를 생성하는 단계, 증명자 단말이 상기 일반연산 검증용 서킷을 포함하는 증명 키, 상기 zk-SNARK 알고리즘을 통해 획득된 다항함수의 계수, 상기 일반연산 검증용 서킷 중 검증과 증명에 필요한 정보를 이용하여 증거를 생성하는 단계 및 검증자 단말이 상기 검증 키, 상기 일반연산 검증용 서킷 중 검증과 증명에 필요한 정보 및 상기 증거를 이용하여 상기 증거가 유효한지 검증을 실행하는 단계를 포함한다.
상기 증명 키 및 검증 키를 생성하는 단계는 상기 일반연산 검증용 서킷 생성기가 상기 키 생성자 정보, 증명자 정보 및 검증자 정보를 수신한 후, 시큐리티 파라미터 및 상기 서킷 생성 모듈에 의해 생성된 일반연산 검증용 서킷을 이용하여 증명 키 및 검증 키를 생성하는 단계를 포함하며, 상기 서킷 생성 모듈은 수학식 1을 이용하여 일반연산 검증용 서킷을 생성한다.
[수학식 1]
C =
Figure 112020069549751-pat00003
C: 서킷
Figure 112020069549751-pat00004
: 기준 명령어의 개수,
T: 기준 머신 스텝의 개수,
n: 기준 시스템의 크기
상기 증명 키 및 검증 키를 생성하는 단계는 검증 규칙을 트리플 벡터를 지시하는 수학적 형태로 변환한 후, 상기 트리플 벡터로 변환된 검증 규칙을 라그랑주 다항식 또는 고속 푸리에 변환하여 다항함수를 생성하는 단계 및 검증 규칙을 트리플 벡터를 지시하는 수학적 형태로 변환한 후, 상기 트리플 벡터로 변환된 검증 규칙을 라그랑주 다항식 또는 고속 푸리에 변환하여 다항함수를 생성하는 단계를 포함한다.
전술한 바와 같은 본 발명에 의하면, 일반연산 검증이 가능하다는 장점이 있다.
또한 본 발명에 의하면, 사전에 정의된 형태의 트랜잭션뿐만 아니라, 사용자가 원하는 다양한 형태의 트랜잭션에도 영지식 증명을 활용 수 있다는 장점이 있다.
또한 본 발명에 의하면, 블록체인 참여자가 블록의 내용을 알지 못하더라도 전체 노드 중 증명 및 보고의 역할을 수행하는 노드가 블록의 내용이 위/변조 되지 않았음을 빠르게 검증할 수 있다는 장점이 있다.
또한 본 발명에 의하면, 참여자들에게 블록 싱크 속도를 급격하게 높여주어 새로운 참여자들이 빠르게 네트워크에 참여할 수 있다는 장점이 있다.
또한 본 발명에 의하면, 영지식 증명 기술을 트랜잭션 데이터 저장에 적용할 경우 실제 데이터를 가지치기(pruning)하고 오직 데이터에 대한 증명만 남기는 방식으로 데이터를 압축시켜 데이터 저장 공간을 절약할 수 있다는 장점이 있다.
도 1은 본 발명의 일 실시예에 따른 일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 시스템의 내부 구조를 설명하기 위한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 일반 연산 검증용 서킷 생성기의 내부 구조를 설명하기 위한 블록도이다.
도 3은 본 발명에 따른 일반 연산 검증용 영지식 증명 서킷 생성 방법의 일 실시예를 설명하기 위한 흐름도이다.
도 4는 본 발명에 따른 일반 연산 검증용 영지식 증명 서킷 생성 과정을 설명하기 위한 예시도이다.
전술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술되며, 이에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 상세한 설명을 생략한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다. 도면에서 동일한 참조부호는 동일 또는 유사한 구성요소를 가리키는 것으로 사용된다.
본 명세서에서 사용된 용어 중 “영지식 증명(zero knowledge proof; ZKP)”은 암호학에서 어느 증명자가 상대방 검증자에게 어떤 명제가 참이라는 것을 증명할 때, 그 명제의 참 거짓 여부를 제외한 어떤 지식도 노출시키지 않는 상호 작용의 절차를 의미한다.
어떠한 명제가 참이라는 것을 증명하려는 쪽을 증명자(prover)라고 하고, 증명 과정에 참여하여 증명자와 정보를 주고 받는 쪽을 검증자(verifier)라고 한다. 영지식 증명에 참여하는 당사자들이 상대방을 속이려는 목적으로 프로토콜을 임의로 변경하는 경우, 당사자들이 부정직하다 또는 정직하지 않다고 한다. 그 외의 경우에는 정직하다고 한다.
도 1은 본 발명의 일 실시예에 따른 일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 시스템의 내부 구조를 설명하기 위한 블록도이다. 도 2는 본 발명의 일 실시예에 따른 일반연산 검증용 서킷 생성기의 내부 구조를 설명하기 위한 블록도이다.
도 1을 참조하면, 일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 시스템은 일반연산 검증용 서킷 생성기(100), 증명자 단말(200) 및 검증자 단말(300)을 포함한다.
일반연산 검증용 서킷 생성기(100)는 일반연산 검증용 서킷을 생성하는 장치이다. 이러한 일반연산 검증용 서킷 생성기(100)는 도 2와 같이 서킷 생성 모듈(110) 및 zk-SNARK 키 생성 모듈(120)을 포함한다.
서킷 생성 모듈(110)은 기준 명령어의 개수, 기준 머신 스텝의 개수 및 기준 시스템의 크기을 수신하고, 기준 명령어의 개수, 기준 머신 스텝의 개수 및 기준 시스템의 크기를 갖는 어떤 프로그램에서도 동작하는 일반연산 검증용 서킷을 생성한 후 일반연산 검증용 서킷을 zk-SNARK 키 생성 모듈(120)에 제공한다.
일 실시예에서, 서킷 생성 모듈(110)은 하기의 [수학식 1]을 만족하는 일반연산 검증용 서킷을 생성한다. 즉, 일반연산 검증용 서킷 생성기(100)는 이하의 명령어, T 이하의 머신 스텝, n 이하의 크기를 갖는 어떤 프로그램에서도 동작하는 서킷을 생성할 수 있다.
[수학식 1]
C =
Figure 112020069549751-pat00005
C: 서킷
Figure 112020069549751-pat00006
: 기준 명령어의 개수,
T: 기준 머신 스텝의 개수,
n: 기준 시스템의 크기
상기와 같이 [수학식 1]을 기초로
Figure 112020069549751-pat00007
이하의 명령어, T 이하의 머신 스텝, n 이하의 크기를 갖는 어떤 프로그램에서도 동작하는 서킷 C는 프로그램이나 주요 입력 값에 의존하지 않고,
Figure 112020069549751-pat00008
, T, n 값에만 의존하기 때문에 유니버셜. zk-SNARK 키 생성 모듈(120)과 결합한다면 검증 시스템의 파라미터 또한 유니버셜하게 된다.
상기와 같은 경우, 한 번의 키 생성으로 모든 프로그램을 검증할 수 있으며, 이후에는 주어진 계산 범위에 맞는 키를 선택 가능하기 때문에 이를 통해 프로그램 별로 키를 생성하는 비용의 소모를 줄일 수 있다는 장점이 있다.
zk-SNARK 키 생성 모듈(120)은 키 생성자 정보, 증명자 정보 및 검증자 정보를 수신한 후 시큐리티 파라미터(
Figure 112020069549751-pat00009
) 및 서킷 생성 모듈(110)에 의해 생성된 서킷(
Figure 112020069549751-pat00010
)를 이용하여 증명 키(pk) 및 검증 키(vk)를 생성한다.
먼저, zk-SNARK 키 생성 모듈(120)은 zk-SNARK(Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) 알고리즘을 이용하여 정보를 공개하지 않고 비밀 키와 같은 특정 정보의 소유를 증명할 수 있는 증거를 생성한다.
즉, zk-SNARK 키 생성 모듈(120)은 검증 규칙을 트리플 벡터를 지시하는 수학적 형태로 변환한 후, 상기 트리플 벡터로 변환된 검증 규칙을 라그랑주 다항식 또는 고속 푸리에 변환하여 다항함수를 생성할 수 있다.
보다 구체적으로, zk-SNARK 키 생성 모듈(120)은 검증 규칙을 R1CS(rank-1 constraint system) 형식으로 변환한 후, R1CS를 QAP(Quadratic Arithmetic Program)로 변환한다. 이때, 검증 규칙은 입력 금액이 출력 금액보다 큰지, 트랜잭션이 적절한 서명이 있는지 또는 입력이 UTXO에 속하는지 여부 등에 관한 것이다.
그런 다음, zk-SNARK 키 생성 모듈(120)은 랜덤 엘리먼트
Figure 112020069549751-pat00011
를 통해 각
Figure 112020069549751-pat00012
를 값을 산출할 수 있다.
여기에서,
Figure 112020069549751-pat00013
는 QAP 인스턴스이며 증명 키(pk) 및 검증 키(vk)를 생성하는데 사용된다. 즉, 본 발명은 증명 키(pk)의 크기를 줄이기 위해 산술 회로로부터 파생된 QAP의 구조적 특성을 이용한 것이다.
또한, R1CS이란 트리플 벡터 (A, B, C)이다. 이러한 트리플 벡터는 검증 규칙의 수학적 형태를 의미하고, QAP 는 라그랑주 다항식 또는 고속 푸리에 변환을 통해 [수학식 2]와 같이 표현된다.
이때, zk-SNARK 키 생성 모듈(120)은 서킷 당 증명 키(pk) 및 검증 키(vk)를 한번만 생성하게 된다.
따라서, 한번 생성된 후에는 어느 증명자 단말(200)이 증명 키(pk)를 이용하여 증거(
Figure 112020069549751-pat00014
)를 생성할 수 있고, 어느 검증자 단말(300)이 검증 키(vk)를 이용하여 증거(
Figure 112020069549751-pat00015
)를 검증할 수 있는 것이다.
본 발명은 시간이 아닌 공간에서의 추가적인 효율성을 달성할 것. 구체적으로는, 증명 키 pk의 크기를 줄이기 위해 산술 회로로부터 파생된 QAP의 구조적 특성을 이용한 것이다.
따라서, 한번의 서킷 생성으로 모든 프로그램을 검증할 수 있으며, 이후에는 주어진 계산 범위에 맞는 키를 선택 가능. 이를 통해 프로그램 별로 키를 생성하는 비용의 소모를 줄일 수 있다.
증명자 단말(200)은 일반연산 검증용 서킷 생성기(100)에서 생성된 증명 키(pk)를 이용하여 증거(
Figure 112020069549751-pat00016
)를 생성하는 단말이다. 이러한 증명자 단말(200)은 일반연산 검증용 서킷 생성기(100)에서 생성된 증명 키(pk), zk-SNARK 알고리즘을 통해 획득된 다항함수의 계수 및 검증과 증명에 필요한 정보()를 이용하여 증거()를 생성한다.
일 실시예에서, 증명자 단말(200)은 하기의 [수학식 2]를 참조로 증거(
Figure 112020069549751-pat00017
)를 생성할 수 있다.
[수학식 2]
Figure 112020069549751-pat00018
Figure 112020069549751-pat00019
: QAP 인스턴스인
Figure 112020069549751-pat00020
와 QAP의 증거 에서 파생
즉, 증명자 단말(200)은 [수학식 2]를 통해 산출된 계수 (
Figure 112020069549751-pat00021
), QAP의 증거 (
Figure 112020069549751-pat00022
) 및 공개키 (
Figure 112020069549751-pat00023
) 를 이용해서 증거(
Figure 112020069549751-pat00024
)를 생성할 수 있다.
검증자 단말(300)은 검증 키(vk), 검증과 증명에 필요한 정보(
Figure 112020069549751-pat00025
) 및 증거(
Figure 112020069549751-pat00026
)를 수신하면 증거(
Figure 112020069549751-pat00027
)가 유효한지 검증하는 역할을 수행한다.
먼저, 검증자 단말(300)은 검증 키(vk)의 일부 및 검증과 증명에 필요한 정보(
Figure 112020069549751-pat00028
) 를 이용하여 [수학식 3]을 산출하고, 검증 키(vk) 및 [수학식 3]의 결과 값을 이용하여 12개의 페어링을 계산하고 필요한 점검을 수행한다.
[수학식 3]
Figure 112020069549751-pat00029
vk: 검증 키,
n: 입력 크기,
C: 서킷
[수학식 3]의 산출 과정에서 가변 기반 다중 스칼라 곱셈 기법을 사용하여 [수학식 3]의 계산 결과인
Figure 112020069549751-pat00030
의 계산에 필요한 연산 량을 줄일 수 있고, 페어링 평가에는 입력 크기 n과 무관하게 일정한 시간이 걸리더라도, 이러한 평가는 매우 비싸고 작은 서킷에 대해 지배적이다.
일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 시스템에는 증거에 대한 검증을 수행하면 해당 트랜잭션이 올바른 트랜잭션인지 확인한다. 이때, 가상 머신의 옵코드 실행 모듈에는 일반 연산 검증이 가능한 영지식 증명 기술이 적용되어 있기 때문에 트랜잭션을 실행하지 않아도, 영지식 증거에 대한 검증을 수행하면 해당 트랜잭션이 올바른 트랜잭션인지 알 수 있는 것이다.
이를 위한 일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 시스템은 코드 생성부, 컴파일러, 저장부, 스택 및 코드 실행부를 포함한다.
코드 생성부는 저장부에는 저장된 영지식 증거를 솔리디터 언어로 코딩된 코드를 생성한다. 이때, 솔리디터는 사람이 이해하기 위해 만들어진 언어이기 때문에 가상머신에서 동작하기 위해서는 가상머신이 이해할 수 있는 기계어로 변경 필요하다. 따라서, 코드 생성부에 의해 생성된 코드는 컴파일러에 의해 컴파일되어 가상머신에서 동작하기 위한 이더리움 바이트코드로 변환된다.
컴파일러는 코드 실행부에 의해 생성된 코드를 컴파일하여 이더리움 바이트코드를 생성하고, 이더리움 바이트코드를 코드 실행부에 제공한다.
저장부에는 증명자 단말에 의해 생성된 영지식 증거가 저장된다.일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 시스템은 저장부에 저장된 영지식 증거에 대한 검증을 수행하면 해당 트랜잭션이 올바른 트랜잭션인지 알 수 있다. 즉, 본 발명의 일 실시예에 따른 가상 머신은 영지식 증명 기술이 적용되어 있기 때문에 트랜잭션을 실행하지 않아도 영지식 증거에 대한 검증을 통해 해당 트랜잭션이 올바른 트랜잭션인지 알 수 있다.
스택에는 코드 실행부에 의해 이더리움 바이트코드가 실행되는 과정에서 이더리움 바이트코드에서 분리된 옵코드가 저장된다.
코드 실행부는 컴파일부에 의해 생성된 이더리움 바이트코드를 실행하여 영지식 증거에 대한 검증을 수행한다. 이때, 코드 실행부는 이더리움 바이트코드를 옵코드로 분리한 후 스택에 저장하며, 스택에 저장된 옵코드는 순차적으로 실행된다.
본 발명은 코드 실행부에 영지식 증명 기술이 적용됨으로써 트랜잭션을 실행하지 않아도, 영지식 증거에 대한 검증을 수행하면 해당 트랜잭션이 올바른 트랜잭션인지 알 수 있다.
상기와 같이 일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 시스템의 옵코드 실행 모듈에 일반 연산 검증이 가능한 영지식 증명 기술이 적용되면 스토리지 모듈에 저장되는 데이터 중 TX 데이터가 영지식 증명으로 대체된다. 따라서, 본 발명은 일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 시스템의 옵코드 실행 모듈에는 일반 연산 검증이 가능한 영지식 증명 기술이 적용되어 있기 때문에 트랜잭션을 실행하지 않아도, 영지식 증거에 대한 검증을 수행하면 해당 트랜잭션이 올바른 트랜잭션인지 알 수 있는 것이다.
도 3은 본 발명에 따른 일반 연산 검증용 영지식 증명 서킷 생성 방법의 일 실시예를 설명하기 위한 흐름도이다.
도 3을 참조하면, 일반연산 검증용 서킷 생성기(100)는 기준 명령어의 개수, 기준 머신 스텝의 개수 및 기준 시스템의 크기를 갖는 일반연산 검증용 서킷을 생성한다(단계 S310).
단계 S310에 대한 일 실시예에서, 일반연산 검증용 서킷 생성기(100)는 기준 명령어의 개수, 기준 머신 스텝의 개수 및 기준 시스템의 크기을 수신하고, 기준 명령어의 개수, 기준 머신 스텝의 개수 및 기준 시스템의 크기를 갖는 어떤 프로그램에서도 동작하는 일반연산 검증용 서킷을 생성할 수 있다.
이때, 일반연산 검증용 서킷 생성기(100)는 [수학식 1]과 같이
Figure 112020069549751-pat00031
이하의 명령어, T 이하의 머신 스텝, n 이하의 크기를 갖는 어떤 프로그램에서도 동작하는 서킷을 생성할 수 있다.
상기와 같이 [수학식 1]을 기초로
Figure 112020069549751-pat00032
이하의 명령어, T 이하의 머신 스텝, n 이하의 크기를 갖는 어떤 프로그램에서도 동작하는 서킷 C는 프로그램이나 주요 입력 값에 의존하지 않고,
Figure 112020069549751-pat00033
, T, n 값에만 의존하기 때문에 유니버셜. zk-SNARK 키 생성 모듈(120)과 결합한다면 검증 시스템의 파라미터 또한 유니버셜하게 된다.
상기와 같은 경우, 한 번의 키 생성으로 모든 프로그램을 검증할 수 있으며, 이후에는 주어진 계산 범위에 맞는 키를 선택 가능하기 때문에 이를 통해 프로그램 별로 키를 생성하는 비용의 소모를 줄일 수 있다는 장점이 있다.
일반연산 검증용 서킷 생성기(100)는 상기 일반연산 검증용 서킷 및 zk-SNARK(Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) 알고리즘을 이용하여 증명 키 및 검증 키를 생성한다(단계 S320).
단계 S320에 대한 일 실시예에서, 일반연산 검증용 서킷 생성기(100)는 키 생성자 정보, 증명자 정보 및 검증자 정보를 수신한 후, 시큐리티 파라미터 및 상기 서킷 생성 모듈에 의해 생성된 일반연산 검증용 서킷을 이용하여 증명 키 및 검증 키를 생성한다.
이때, 일반연산 검증용 서킷 생성기(100)는 검증 규칙을 트리플 벡터를 지시하는 수학적 형태로 변환한 후, 상기 트리플 벡터로 변환된 검증 규칙을 라그랑주 다항식 또는 고속 푸리에 변환하여 다항함수를 생성할 수 있다.
증명자 단말은 상기 일반연산 검증용 서킷을 포함하는 증명 키, 상기 zk-SNARK 알고리즘을 통해 획득된 다항함수의 계수, 상기 일반연산 검증용 서킷 중 검증과 증명에 필요한 정보를 이용하여 증거를 생성한다(단계 S330).
검증자 단말은 상기 검증 키, 상기 일반연산 검증용 서킷 중 검증과 증명에 필요한 정보 및 상기 증거를 이용하여 상기 증거가 유효한지 검증을 실행한다(단계 S340).
도 4는 본 발명에 따른 일반 연산 검증용 영지식 증명 서킷 생성 과정을 설명하기 위한 예시도이다.
도 4를 참조하면, 주어진 증거 한 개(a single proof)의 정당성을 증명하는 것은 그것과 연관된 다른 증거(many proofs)들의 정당성을 증명하는 것이다. 예를 들어, 검증자가 증명자에게 제시한 5가지 문제를 증명자가 올바르게 해결했는지 확인하는 시나리오를 참조하여 설명하기로 한다.
종래의 영지식 증명은 도 4a와 같이 증명자 A는 4개의 증거를 만들어 제출해야 한다. 그리고, 그리고 검증자 B, C, D, E는 자신들이 받은 Proof를 이용해 검증해야 한다.
하지만, 본 발명에 따른 도 4b와 같이 재귀 영지식 증명을 이용하면 증명자 A는 최종적으로 산출된 마지막 Proof_4만 제출하고, 검증자 B, C, D, E는 이것을 이용해 검증한다.
이를 도 4b를 참고하여 상세히 설명하면, 상기 검증자 단말(300)이 증명자 단말(200)에 복수의 문제를 제시하면, 상기 증명자 단말(200)은 재귀 영지식 증명을 이용하여 상기 복수의 문제 중 첫 번째 문제(Question 1)에 해당하는 증거 1(Proof 1)을 생성하고, 복수의 문제 중 두 번째 문제(Question 2)와 상기 증거 1(Proof 1)을 이용하여 증거 2(Proof 2)를 생성하고, 복수의 문제 중 최종 세 번째 문제(Question 3)와 상기 증거 2(Proof 2)를 이용하여 최종 세 번 째 문제(Question 3)에 대한 최종 증거 3(Proof 3)을 생성하고,
상기 증명자 단말(200)은 첫 번째 문제(Question 1)에 해당하는 증거 1(Proof 1)을 이용하여 최종 세 번 째 문제(Question 3)에 해당하는 최종 증거 3(Proof 3)을 생성하여 상기 복수의 문제들에 대한 각각의 증거들을 제출하지 않고 증거 1, 2, 3을 제외한 상기 최종 증거 3(Proof 3)만을 상기 검증자 단말(300)에 제출하며,
상기 검증자 단말(300)은 상기 최종 증거 3(Proof 3)만을 검증하여 상기 최종 증거 3(Proof 3) 및 최종 증거 3(Proof 3)과 연관된 나머지 증거 1, 2, 3의 정당성을 증명한다.
한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명 사상은 아래에 기재된 특허청구범위에 의해서만 파악되어야 하고, 이의 균등 또는 등가적 변형 모두는 본 발명 사상의 범주에 속한다고 할 것이다.
100: 일반연산 검증용 서킷 생성기
110: 서킷 생성 모듈
120: zk-SNARK 키 생성 모듈
200: 증명자 단말
300: 검증자 단말

Claims (6)

  1. 기준 명령어의 개수, 기준 머신 스텝의 개수 및 기준 시스템의 크기를 갖는 일반연산 검증용 서킷을 생성하고, 상기 일반연산 검증용 서킷 및 zk-SNARK(Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) 알고리즘을 이용하여 증명 키 및 검증 키를 생성하는 일반연산 검증용 서킷 생성기(100);와, 상기 일반연산 검증용 서킷을 포함하는 증명 키, 상기 zk-SNARK 알고리즘을 통해 획득된 다항함수의 계수, 상기 일반연산 검증용 서킷 중 검증과 증명에 필요한 정보를 이용하여 증거를 생성하는 증명자 단말(200); 및 상기 일반연산 검증용 서킷을 포함하는 검증 키, 상기 일반연산 검증용 서킷 중 검증과 증명에 필요한 정보 및 상기 증거를 이용하여 상기 증거가 유효한지 검증을 실행하는 검증자 단말(300);을 포함하며, 상기 일반연산 검증용 서킷 생성기(100)는 하기 수학식 1을 이용하여 기준 명령어의 개수, 기준 머신 스텝의 개수 및 기준 시스템의 크기를 갖는 어떤 프로그램에서도 동작하는 일반연산 검증용 서킷을 생성하는 서킷 생성 모듈(110)과, 키 생성자 정보, 증명자 정보 및 검증자 정보를 수신한 후 시큐리티 파라미터 및 상기 서킷 생성 모듈(110)에 의해 생성된 서킷을 이용하여 증명 키 및 검증 키를 생성하는 zk-SNARK 키 생성 모듈(120)을 포함하며, 상기 zk-SNARK 키 생성 모듈(120)은 검증 규칙을 트리플 벡터를 지시하는 수학적 형태로 변환한 후, 상기 트리플 벡터로 변환된 검증 규칙을 라그랑주 다항식 또는 고속 푸리에 변환하여 다항함수를 생성하며, 상기 증명자 단말(200)은 일반연산 검증용 서킷 생성기(100)에서 생성된 증명 키, zk-SNARK 알고리즘을 통해 획득된 다항함수의 계수 및 검증과 증명에 필요한 정보를 이용하여 증거를 생성하되, 하기 수학식 2를 참조로 증거를 생성하고, 상기 검증자 단말(300)은 검증 키의 일부 및 검증과 증명에 필요한 정보를 이용하여 하기 수학식 3을 산출하되, 수학식 3의 산출과정에서 결과값에 필요한 연산량을 줄이기 위해 가변 기반 다중 스칼라 곱셈 기법을 이용하고, 검증 키 및 수학식 3의 결과값을 이용하여 12개의 페어링을 계산하고 필요한 점검을 수행하는 일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 시스템에 있어서,
    상기 일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 시스템은 트랜잭션을 실행하지 않아도 증거에 대한 검증을 수행하면 해당 트랜잭션이 올바른 트랜잭션인지 확인할 수 있도록 저장부, 코드 생성부, 컴파일러, 스택 및 코드 실행부를 더 포함하며,
    상기 저장부는 증명자 단말(200)에 의해 생성된 증거가 저장되고,
    상기 코드 생성부는 상기 저장부에 저장된 증거를 솔리디티 언어로 코딩된 코드를 생성하고, 상기 코드 생성부에 의해 생성된 코드는 상기 컴파일러에 의해 컴파일되어 가상머신에서 동작하기 위한 이더리움 바이트코드로 변환되며,
    상기 컴파일러는 상기 코드 생성부에 의해 생성된 코드를 컴파일하여 이더리움 바이트코드를 생성하고, 이더리움 바이트코드를 코드 실행부에 제공하며,
    상기 코드 실행부는 상기 컴파일러에 의해 생성된 이더리움 바이트코드를 실행하여 증거에 대한 검증을 수행하고, 이더리움 바이트코드를 옵코드로 분리한 후 스택에 저장하며,
    상기 스택에는 상기 코드 실행부에 의해 이더리움 바이트코드가 실행되는 과정에서 이더리움 바이트코드에서 분리된 옵코드가 저장되며,
    상기 검증자 단말(300)이 증명자 단말(200)에 복수의 문제를 제시하면, 상기 증명자 단말(200)은 재귀 영지식 증명을 이용하여 상기 복수의 문제 중 첫 번째 문제(Question 1)에 해당하는 증거 1(Proof 1)을 생성하고, 복수의 문제 중 두 번째 문제(Question 2)와 상기 증거 1(Proof 1)을 이용하여 증거 2(Proof 2)를 생성하고, 복수의 문제 중 최종 세 번째 문제(Question 3)와 상기 증거 2(Proof 2)를 이용하여 최종 세 번 째 문제(Question 3)에 대한 최종 증거 3(Proof 3)을 생성하고,
    상기 증명자 단말(200)은 첫 번째 문제(Question 1)에 해당하는 증거 1(Proof 1)을 이용하여 최종 세 번 째 문제(Question 3)에 해당하는 최종 증거 3(Proof 3)을 생성하여 상기 복수의 문제들에 대한 각각의 증거들을 제출하지 않고 증거 1, 2, 3을 제외한 상기 최종 증거 3(Proof 3)만을 상기 검증자 단말(300)에 제출하며,
    상기 검증자 단말(300)은 상기 최종 증거 3(Proof 3)만을 검증하여 상기 최종 증거 3(Proof 3) 및 최종 증거 3(Proof 3)과 연관된 나머지 증거 1, 2, 3의 정당성을 증명하는 것을 특징으로 하는 일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 시스템.

    [수학식 1]
    C =
    Figure 112020502712823-pat00042

    (C: 서킷,
    Figure 112020502712823-pat00043
    : 기준 명령어의 개수, T: 기준 머신 스텝의 개수, n: 기준 시스템의 크기)

    [수학식 2]
    Figure 112020502712823-pat00044

    (
    Figure 112020502712823-pat00045
    : QAP 인스턴스인
    Figure 112020502712823-pat00046
    와 QAP의 증거
    Figure 112020502712823-pat00047
    에서 파생)

    [수학식 3]
    Figure 112020502712823-pat00048

    vk: 검증 키,
    n: 입력 크기,
    C: 서킷
  2. 제1항에 있어서,
    상기 zk-SNARK 키 생성 모듈(120)은 검증 규칙을 R1CS(rank-1 constraint system) 형식으로 변환한 후, R1CS를 QAP(Quadratic Arithmetic Program)로 변환하는 것을 특징으로 하는 일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 시스템.
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
KR1020200082417A 2020-07-03 2020-07-03 일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 시스템 KR102170820B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200082417A KR102170820B1 (ko) 2020-07-03 2020-07-03 일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 시스템
US17/092,467 US10951410B1 (en) 2020-07-03 2020-11-09 System for implementing a virtual machine based on a zero-knowledge proof circuit for general operation verification

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200082417A KR102170820B1 (ko) 2020-07-03 2020-07-03 일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 시스템

Publications (1)

Publication Number Publication Date
KR102170820B1 true KR102170820B1 (ko) 2020-10-28

Family

ID=73018334

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200082417A KR102170820B1 (ko) 2020-07-03 2020-07-03 일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 시스템

Country Status (2)

Country Link
US (1) US10951410B1 (ko)
KR (1) KR102170820B1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113095827A (zh) * 2021-04-09 2021-07-09 杭州复杂美科技有限公司 匿名多重签名方法、计算机设备和存储介质
KR102372111B1 (ko) 2021-10-25 2022-03-10 주식회사 온더 영지식 증명 기반 블록체인 가상머신 검증 시스템
KR102398543B1 (ko) * 2021-11-09 2022-05-17 주식회사 온더 영지식 증명 알고리즘이 적용된 검증 가능한 블록체인 가상머신
WO2022107971A1 (ko) * 2020-11-23 2022-05-27 부산대학교 산학협력단 프라이버시 블록체인 플랫폼 기반 물류 방법 및 물류 시스템
KR102519490B1 (ko) * 2021-11-09 2023-04-10 주식회사 온더 영지식 증명 기반 블록체인 가상머신의 검증방법
KR20230121466A (ko) * 2022-02-11 2023-08-18 광주과학기술원 스택 머신 프로그램을 위한 범용 영 지식 스나크 증명 시스템 및 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113592493B (zh) * 2021-08-02 2023-11-24 杭州复杂美科技有限公司 一种基于隐私的资产找回方法、设备及储存介质
CN114553443B (zh) * 2022-04-25 2022-07-12 湖南三湘银行股份有限公司 一种对接第三方数据模型的方法及系统
US11882216B1 (en) * 2023-06-08 2024-01-23 Auradine, Inc. End-to-end hardware acceleration for ZKP from witness generation to proof generation

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7245718B2 (en) * 2003-08-26 2007-07-17 Mitsubishi Electric Research Laboratories, Inc. Low bandwidth zero knowledge authentication protocol and device
US9292692B2 (en) * 2014-05-05 2016-03-22 Sypris Electronics, Llc System and device for verifying the integrity of a system from its subcomponents
US20180331832A1 (en) * 2015-11-05 2018-11-15 Allen Pulsifer Cryptographic Transactions System
US11444769B2 (en) * 2018-07-02 2022-09-13 Ares Technologies, Inc. Systems, devices, and methods for signal localization and verification of sensor data
US20200302434A1 (en) * 2019-03-20 2020-09-24 Hewlett Packard Enterprise Development Lp Virtual network function services usage tracking using a distributed trust-based network
US11176273B2 (en) * 2019-05-03 2021-11-16 International Business Machines Corporation Privacy-preserving anomalous behavior detection
US11177957B2 (en) * 2019-06-12 2021-11-16 International Business Machines Corporation Hardware security modules for executing zero-knowledge proofs
US11277406B2 (en) * 2019-06-28 2022-03-15 Intel Corporation MTS-based mutual-authenticated remote attestation

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Ben-Sasson, Eli, et al. "Succinct Non-Interactive Zero Knowledge for a von Neumann Architecture."(2019.02.05.) 1부.* *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022107971A1 (ko) * 2020-11-23 2022-05-27 부산대학교 산학협력단 프라이버시 블록체인 플랫폼 기반 물류 방법 및 물류 시스템
CN113095827A (zh) * 2021-04-09 2021-07-09 杭州复杂美科技有限公司 匿名多重签名方法、计算机设备和存储介质
CN113095827B (zh) * 2021-04-09 2023-11-28 杭州复杂美科技有限公司 匿名多重签名方法、计算机设备和存储介质
KR102372111B1 (ko) 2021-10-25 2022-03-10 주식회사 온더 영지식 증명 기반 블록체인 가상머신 검증 시스템
WO2023074984A1 (ko) * 2021-10-25 2023-05-04 주식회사 온더 영지식 증명 기반 블록체인 가상머신 검증 시스템
KR102398543B1 (ko) * 2021-11-09 2022-05-17 주식회사 온더 영지식 증명 알고리즘이 적용된 검증 가능한 블록체인 가상머신
KR102519490B1 (ko) * 2021-11-09 2023-04-10 주식회사 온더 영지식 증명 기반 블록체인 가상머신의 검증방법
KR20230121466A (ko) * 2022-02-11 2023-08-18 광주과학기술원 스택 머신 프로그램을 위한 범용 영 지식 스나크 증명 시스템 및 방법
KR102662756B1 (ko) * 2022-02-11 2024-05-03 광주과학기술원 스택 머신 프로그램을 위한 범용 영 지식 스나크 증명 시스템 및 방법

Also Published As

Publication number Publication date
US10951410B1 (en) 2021-03-16

Similar Documents

Publication Publication Date Title
KR102170820B1 (ko) 일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 시스템
Groth et al. Updatable and universal common reference strings with applications to zk-SNARKs
Wang et al. Blockchain-based fair payment smart contract for public cloud storage auditing
Fuchsbauer Subversion-zero-knowledge SNARKs
CN107862216B (zh) 用于匿名跨链交易的隐私保护方法、装置和存储介质
Chen et al. From 5-pass-based identification to-based signatures
Groth et al. One-out-of-many proofs: Or how to leak a secret and spend a coin
US10846372B1 (en) Systems and methods for trustless proof of possession and transmission of secured data
EP3219050A1 (en) Manicoding for communication verification
Schröder et al. Security of blind signatures revisited
CN113037479B (zh) 数据验证方法和装置
Čapko et al. State of the art of zero-knowledge proofs in blockchain
CN111640018B (zh) 一种区块链交易存在性验证方法及装置
Bellini et al. MR-DSS–smaller MinRank-based (ring-) signatures
CN112436938A (zh) 数字签名的生成方法、装置和服务器
Faust et al. Financially backed covert security
CN112529550A (zh) 一种基于区块链的匿名转账方法及装置、电子设备
Abe et al. Non-interactive composition of sigma-protocols via share-then-hash
KR20220041334A (ko) 일반 연산 검증이 가능한 영지식 증명 기반 가상 머신이 적용된 블록체인 시스템
KR102372111B1 (ko) 영지식 증명 기반 블록체인 가상머신 검증 시스템
Gupta et al. Towards computationally sound symbolic analysis of key exchange protocols
KR102494873B1 (ko) 일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 거래 수행장치
CN114553407A (zh) 基于秘密分享的数据处理方法及设备
Schoenmakers et al. Trinocchio: Privacy-friendly outsourcing by distributed verifiable computation
Abe et al. Acyclicity programming for sigma-protocols

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant