KR102103177B1 - 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템 및 그 방법 - Google Patents
블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템 및 그 방법 Download PDFInfo
- Publication number
- KR102103177B1 KR102103177B1 KR1020190149544A KR20190149544A KR102103177B1 KR 102103177 B1 KR102103177 B1 KR 102103177B1 KR 1020190149544 A KR1020190149544 A KR 1020190149544A KR 20190149544 A KR20190149544 A KR 20190149544A KR 102103177 B1 KR102103177 B1 KR 102103177B1
- Authority
- KR
- South Korea
- Prior art keywords
- proof
- verification
- unit
- blockchain
- result
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3218—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3218—Cryptographic 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/3221—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/26—Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm
-
- H04L2209/38—
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
본 발명은 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템 및 그 방법에 관한 것으로서, 증명하고자 하는 사실에 대한 Prove() 결과로 proof를 생성하고, 블록체인에 트랜잭션을 발생시켜 proof를 저장하는 증명부; 신규한 proof가 등록되면 컨트랙트와 vk, proof를 대상으로 off-chain에서 Verify()를 실행하되, 결과가 참일 경우 대기하다가 기 설정된 시간이 경과하면 proof가 참인 것으로 판단하는 검증부; 및 검증부의 검증 요청에 따라 on-chain에서 Verify()를 실행하는 연산부를 포함하여 거짓일 경우 패널티를 부과한다.
Description
본 발명은 블록체인(blockchain)의 확장성을 위한 영지식 증명의 선택적 검증 시스템 및 그 방법에 관한 것으로 더욱 상세하게는, 블록체인을 이용한 검증 시스템에 영지식 증명(Zero-knowledge proof)의 선택적 검증을 통해 적은 수수료로 사용자의 프라이버시를 보장하는 기술에 관한 것이다.
블록체인의 스마트 컨트랙트(smart contract)는 분산 환경에서 신뢰가 필요없이 투명성을 가진 실행을 보장한다. 이더리움(Ethereum)은 블록체인에서 프로그램을 실행하는 스마트 컨트랙트 시스템을 지원하는 퍼블릭 블록체인 중 하나이다. 이더리움에서는 Solidity라는 프로그래밍 언어를 이용하여 분산화된 어플리케이션(Decentralized Application, DApp)의 개발이 가능하다.
하지만, 이더리움의 DApp은 실행시 입력인자와 실행 결과가 모든 사용자에게 노출되는 문제점이 있다. 또한, 블록체인의 정보는 모든 사람들에게 공개되고 삭제할 수 없기 때문에 사용자 정보가 블록체인에 업로드되는 것은 큰 문제가 될 수 있다.
이처럼, 블록체인에서는 프라이버시가 보장되지 못하기 때문에 블록체인을 이용한 어플리케이션에서 사용자 정보를 다루거나 인증해야하는 상황에 DApp이 사용되기는 어렵다.
또한, 블록체인에서 공개되는 정보는 스마트 컨트랙트의 정보만이 아니라 사용자들간의 트랜잭션 또한 드러나게 된다. 블록체인 상에서 이루어지는 모든 트랜잭션은 보내는 사람과 받는 사람, 보내는 금액이 모두 드러난다. 다만, 블록체인의 주소의 주인이 누구인지 드러나지는 않지만 거래소를 통해 현금화하는 과정에서 주소의 주인에 대한 정보가 드러날 수밖에 없다.
전술한 바와 같은 프라이버시 문제를 해결하기 방법으로 블록체인에서 영지식 증명(Zero-knowledge proof)이 많이 사용되고 있으며, 사용자는 자신의 값을 드러내지 않고 증명값만을 블록체인에 올리게 된다. 이때, 블록체인에서는 실제 값은 알지 못하더라도 증명값만을 이용하여 on-chain에서 검증하여 사용자가 값을 가지고 있음을 증명한다.
이러한 영지식 증명은 자신의 정보를 드러내지 않고 값을 가지고 있음을 증명하는 암호학적인 방법으로, 값을 드러내지 않고 비밀 값을 가지고 있음을 증명하는 prover와 prover의 비밀 값 없이 prover가 값을 가지고 있음을 증명하는 verifier로 구성된다.
이는 prover와 verifier의 여러 번의 상호작용을 통해 이루어질 수도 있지만 블록체인 상에서는 여러 번의 통신을 하기 어려우므로 통신이 없는 Non-Interactive Zero-knowledge proofs을 이용하여 prover는 자신의 비밀 값을 통해 proof을 생성하고, verifier는 proofs의 검증을 통해 비밀값을 가지고 있음을 검증하게 된다.
Prover는 증명하고자 하는 작업인 statement를 Arithmetic Circuit, Boolean Circuit과 같은 수학적인 Circuit으로 변경한 후, Circuit 에 대해 수학적인 문제를 적용하여 비밀값을 모르고서는 계산하기 어려운 proof을 생성한다. 검증자는 proof의 생성보다는 저렴한 검증비용으로 proof의 유효성을 검증할 수 있다.
또한, 증명자는 프라이버시를 보장하기 위해 자신의 증명값만을 블록체인에 올리고 블록체인에서 증명 값을 검증하는 방법으로 자신의 개인 정보는 숨기고 값을 가지고 있음을 증명할 수 있다. 이러한 방법을 이용하기 위해 zk-SNARK, zk-STARK, Bulletproofs 등의 implementation이 있다.
이중에 zk-SNARK는 검증 속도가 빠르지만 검증 컨트랙트를 만드는 상황에서 Common Reference String(CRS) 값을 입력으로 받기 때문에 이 값이 드러날 경우 fake proof을 생성할 수 있어 신뢰할 수 있는 제 3자의 trusted setup이 필요하다. 그에 반해 zk-STARK나 bulletproofs는 Trusted setup이 필요없다. 하지만 zk-STARK는 검증을 위한 proof의 크기가 zk-SNARK에 비해 매우 크고 bulletproofs는 zk-SNARK에 비해 검증 비용이 크다는 단점이 있다. blletproofs나 zk-STARK의 VC는 Implementation의 검증 방법을 solidity로 구현하여 외부에서 생성한 proof을 ethereum에서 검증할 수 있다.
그러나, 영지식 증명의 증명값을 검증하는 작업에는 많은 비용이 소모되고 증명값이 무겁다는 단점이 있으며, 영지식 증명 중 검증 비용이 저렴한 zk-SNARK도 ECDSA(Elliptic Curve Digital Signature Algorithm) 검증과 비교하면 검증 비용이 매우 크다는 문제점이 있다.
만일, 이더리움에서 ECDSA로 된 서명 대신 영지식 증명으로 변경할 경우 트랜잭션 처리 속도(Transaction Per Second, TPS)가 크게 감소하여 확장성이 매우 떨어지는 문제가 발생한다.
또한, 종래의 영지식 증명은 증명값은 storage에 저장하지 않았기 때문에 검증하는 비용만 발생하였으나, SVZK에서 잘못된 증명값을 올리는 사용자는 증명값이 storage에 저장되고 검증도 실행하기 때문에 결과적으로 잘못된 증명값을 올리면 더 많은 수수료가 발생해 성능이 떨어지는 문제가 발생한다.
또한, 잘못된 증명값을 올린 사용자를 신고하여 시스템을 안전하게 유지할 수 있지만 만약 epoch가 지나기 전에 신고하지 못한다면, 잘못된 증명값이 확정될 수 있다. 때문에 잘못된 증명값을 올렸을 때 패널티보다 더 큰 이득을 얻을 수 있는 경우 위험할 수 있다. 전술한바와 같은 이유로 현재 영지식 증명을 이용하는 Dapp이 많이 사용되지 못하고 있는 실정이다.
이에 본 출원인은 이러한 문제점을 해소하기 위해, 영지식 증명의 선택적인 검증을 통해 적은 비용으로 프라이버시를 지키는 시스템을 제안하고자 한다. 이러한 본 발명의 일 실시예에 의하면, 증명값은 블록체인에 업로드하지만 검증은 다른 검증자들에 의해 off-chain에서 검증한 후 증명값이 참이 아닌 경우에만 on-chain에서 검증하여 검증하지 않아도 되는 증명값에 대하여 검증을 on-chain에서 실행하지 않아 확장성을 얻을 수 있다.
본 발명의 목적은, 영지식 증명의 증명값은 블록체인에 저장하되, 검증이 틀린 증명값에 대해서만 on-chain내에서 검증을 수행 즉, proof를 검증하지 않고 저장한 후 유효하지 않는 검증만을 실제로 검증하는 선택적 검증 영지식 증명(Selective Verification of Zero-knowledge proof, SVZK)을 제공함으로써, 연산량에 소모되는 비용을 줄여 확장성을 향상시키는데 있다.
이러한 기술적 과제를 달성하기 위한 본 발명의 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템은, 증명하고자 하는 사실에 대한 Prove() 결과로 proof를 생성하고, 블록체인에 트랜잭션을 발생시켜 deposit 및 proof를 저장하는 증명부; 신규한 proof가 등록되면 컨트랙트와 vk, proof를 대상으로 off-chain에서 Verify()를 실행하되, 결과가 참일 경우 기 설정된 시간이 경과하면 proof가 참인 것으로 판단하는 검증부; 및 검증부의 검증 요청에 따라 on-chain에서 Verify()를 실행하는 연산부를 포함하는 것을 특징으로 한다.
바람직하게는, 검증부는 Verify() 실행 결과가 거짓일 경우, 연산부로 proof에 대한 검증 요청을 전송하는 것을 특징으로 한다.
그리고, 연산부는 Verify() 실행 결과가 거짓일 경우, 상기 증명부의 Deposit에서 기 설정된 패널티를 부과하는 것을 특징으로 한다.
전술한 시스템을 기반으로 하는 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 방법은, 증명부가 증명하고자 하는 사실에 대한 Prove() 결과로 proof를 생성하는 (a) 단계; 증명부가 블록체인에 트랜잭션을 발생시켜 proof를 저장하는 (b) 단계; 검증부가 신규한 proof가 등록되면 컨트랙트와 vk, proof를 대상으로 off-chain에서 Verify()를 실행하는 (c) 단계; 및 (c) 단계의 Verify() 실행 결과 참일 경우, 검증부가 기 설정된 시간이 경과하면 proof가 참인 것으로 판단하는 (d) 단계를 포함하는 것을 특징으로 한다.
그리고, (c) 단계의 Verify() 실행 결과가 거짓일 경우, 검증부가 연산부로 검증 요청을 보내는 (e) 단계; 연산부가 on-chain에서 Verify()를 실행하는 (g) 단계; 및 proof의 검증 결과가 거짓일 경우, 연산부가 증명부의 Deposit에서 기 설정된 패널티를 부과하는 (f) 단계를 포함하는 것을 특징으로 한다.
상기와 같은 본 발명에 따르면, 영지식 증명의 증명값은 블록체인에 저장하지만 검증이 틀린 증명값에 대해서만 on-chain내에서 검증을 수행하는 선택적 검증 영지식 증명(SVZK)을 제공함으로써, 종래의 영지식 증명을 사용하는 방법에 비해 on-chain에 저장하는 비용을 절감하고, 한 블록에 더 많은 트랜잭션에 대한 저장이 가능해 확장성을 증대하면서도, 사용자도 또한 기존 영지식 증명을 이용한 검증 방법보다 더 저렴한 비용으로 동일한 수준의 서비스 이용이 가능한 효과가 있다.
본 발명에 따르면, 선택적 검증 영지식 증명(SVZK)을 통해 하나의 주제를 검증하는 것만이 아닌 여러 주제를 적은 비용으로 검증함으로써, 프라이버시를 보장하는 거래, 개인정보를 드러내지 않고 개인 정보 증명(학벌을 드러내지 않고 자신의 학위 증명)과 같은 on-chain에서 NIZK의 proof 검증작업을 하는 어플리케이션에서도 사용이 가능한바, SVZK 시스템을 이용한 검증이 거래에만 국한된 것이 아닌 영지식 증명을 사용해 자신의 개인정보를 숨기려는 상황에서 모두 사용이 가능한 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템을 도시한 블록도.
도 2는 본 발명의 일 실시예에 따른 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템의 setup, proof, 및 challenger의 세 유형의 작업에 대한 overview를 도시한 블록도.
도 3은 본 발명의 일 실시예에 따른 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템 검증에 따라, if statement의 수를 증가시켜 실험한 결과를 도시한 그래프.
도 4는 본 발명의 일 실시예에 따른 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템 검증에 따라, zokrates에서 예시로 주어진 sudoku 프로그램의 input을 private, 및 public만 변경하여 실험한 결과를 도시한 그래프.
도 5는 본 발명의 일 실시예에 따른 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 방법의 proof 등록 및 검증 절차를 도시한 순서도.
도 6은 본 발명의 일 실시예에 따른 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 방법의 false proof 검증 절차를 도시한 순서도.
도 2는 본 발명의 일 실시예에 따른 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템의 setup, proof, 및 challenger의 세 유형의 작업에 대한 overview를 도시한 블록도.
도 3은 본 발명의 일 실시예에 따른 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템 검증에 따라, if statement의 수를 증가시켜 실험한 결과를 도시한 그래프.
도 4는 본 발명의 일 실시예에 따른 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템 검증에 따라, zokrates에서 예시로 주어진 sudoku 프로그램의 input을 private, 및 public만 변경하여 실험한 결과를 도시한 그래프.
도 5는 본 발명의 일 실시예에 따른 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 방법의 proof 등록 및 검증 절차를 도시한 순서도.
도 6은 본 발명의 일 실시예에 따른 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 방법의 false proof 검증 절차를 도시한 순서도.
본 발명의 구체적인 특징 및 이점들은 첨부도면에 의거한 다음의 상세한 설명으로 더욱 명백해질 것이다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 발명자가 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야 할 것이다. 또한, 본 발명에 관련된 공지 기능 및 그 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는, 그 구체적인 설명을 생략하였음에 유의해야 할 것이다.
본 발명의 일 실시예에 따른 영지식 증명은 크게 증거(proof)를 생성하는 Prove 과정과 이를 증명하는 Verify 과정으로 구성된다.
여기서, Prove는 proving key(pk)와 비밀값이 포함된 w, 및 public input x를 입력받아 계산된 proof를 생성하고, Verify는 Verifying key(vk), froof 및 x를 입력으로 proof가 참인지 거짓인지 여부를 판별하는데 이때, Prove를 실행하는 기능은 Prover가 수행하고, Verify를 실행하는 기능은 Verifier가 수행한다.
또한, 블록체인에 저장되어 Verifier의 역할을 수행하는 스마트 컨트랙트는 vk와 함께 저장되어 proof를 컨트랙트로 전송하여 실행결과로부터 proof가 참인지 거짓인지 여부를 판별한다.
이때, 스마트 컨트랙트의 연산에 따라 실행 비용이 발생하는데, 영지식 증명은 알고리즘마다 상이하겠으나 일반적으로 proof 검증은 매우 비싼 수수료가 발생한다.
이하에서는 본 발명의 일 실시예에 따른 선택적 검증 영지식 증명(SVZK)을 통해 Verification Contract의 연산에 소모되는 연산 수수료를 줄여 확장성을 향상시키는 구성에 대해 설명하기로 한다.
도 1을 참조하면 본 발명의 일 실시예에 따른 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템(S)은, Prover(증명부)(100), Validators(검증부)(200), 및 Verification Contract(연산부)(300)를 포함하여 구성된다.
먼저, 증명부(100)는 증명하고자 하는 사실에 대한 Prove() 결과로 proof를 생성하고, 블록체인에 트랜잭션을 발생시켜 proof를 저장한다.
또한, 검증부(200)는 신규한 proof가 등록되면 컨트랙트와 vk, proof를 대상으로 off-chain에서 Verify()를 실행하되, 결과가 참일 경우 기 설정된 시간이 경과하면 proof가 참인 것으로 판단하고, Verify() 실행 결과가 거짓일 경우, 연산부(300)로 검증 요청을 보낸다.
그리고, 연산부(300)는 검증부(200)의 검증 요청에 따라 on-chain에서 Verify()를 실행하고, Verify() 실행 결과가 거짓일 경우, 증명부(100)의 Deposit에서 기 설정된 패널티를 부과한다.
이때, 연산부(300)는 부과된 패널티 일부를 검증부(200)에 보상으로 반환할 수 있다.
한편, 도 2는 본 발명의 일 실시예에 따른 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템(S)의 setup, proof, 및 challenger의 세 유형의 작업에 대한 overview를 도시한 블록도이다.
도 2에 도시된 바와 같이, SVZK 시스템을 이용하여 자신의 VC를 사용자들이 저렴하게 검증할 수 있게 만들려는 setup 유저, VC에 자신의 proof을 증명하려는 prover, prover의 proof이 올바른지 확인하려는 challenger의 3가지 유형의 사용자로 구성될 수 있다.
Setup
먼저, Setup에서는 SVZK 시스템에서 증명하고자 하는 값을 설정하는 과정이다. 증명 값을 검증하는 검증 컨트랙트를 on-chian에서 deploy한 후 SVZK에 등록한다. 이 작업을 통해 하나의 proof만을 검증할 수 있는 시스템이 아닌 다양한 proof을 검증할 수 있고, SVZK의 사용자는 on-chain에 deploy된 자신의 VC를 등록하여 저렴한 가격으로 증명값을 확정받을 수 있다.
Register Verification Contract
SVZK 시스템에서 여러가지 검증값을 검증하기 위해서는 검증 컨트랙트를 등록해야한다. VC를 만들기 위해서는 Zokrates와 같은 VC를 생성해주는 프로그램을 이용할 수 있고, SVZK에서 블록체인에 올린 VC의 주소를 저장하여 challenger들이 proof을 검증하는 Contract를 알 수 있게 한다. 등록된 VC를 통해 SVZK 시스템에서 proof과 VC를 연결할 수 있다.
Prover - Suggest
본 발명의 일 실시예에 따른 SVZK에서는 증명자가 자신의 증명값을 SVZK의 Storage에 올리고 아무런 challenge도 받지 않고 일정 기간(epoch)이지나면 on-chain에서 검증을 실행하지 않고 증명 값을 확정시킨다. 이를 위해 증명자는 증명하고자 하는 증명 값과 증명값을 검증하는 VC를 매칭해 저장한다.
또한, 증명자가 거짓된 증명 값을 올릴 수도 있기 때문에 이러한 상황에서는 패널티를 주기 위하여 일정 금액을 예치한다. 증명값을 제안한 블록에서 일정 기간이 지날 경우 증명 값을 확정시켜야 하기 때문에 제안된 블록의 블록 번호도 저장하도록 구성된다.
Challenger - Off-chain Computation
Challenger는 ProofList에 올라온 증명 값들을 off-chain에서 검증할 수 있다. 만약 ProofList에 올라온 증명 값이 off-chain에서 검증해본 결과 False라면 이를 on-chain에서 실행시켜 증명 값이 잘못되었음을 확인할 수 있다.
또한, Proof의 검증을 on-chain에서 실행하는 것은 비용이 들지만 off-chain에서 확인해보는 것은 비용이 들지 않기 때문에 off-chain에서 verification 결과가 참인 proof은 결과적으로 epoch가 지나면 확정될 것이므로 on-chain에서 실행할 필요가 없다. 하지만 결과가 False인 proof은 잘못된 proof임을 드러내기 위해 Challenge를 실행할 수 있다.
Challenge
Challenger가 On-chain에서 proof의 검증을 실행했을 때 결과가 False라면 증명 값을 폐기시키고 그 증명 값을 올린 prover의 예치금을 challenger가 얻을 수 있다. 하지만 검증을 실행한 결과가 True일 경우 증명 값은 epoch를 기다리지 않더라도 확정되고 prover에게 예치금이 돌아간다. Challenger가 True인 증명 값에 이의제기 하더라도 오히려 Prover의 확정 시간을 앞당겨주고 Prover가 지불해야 하는 검증 비용을 지불하기 때문에 잘못된 Challenge가 시스템에 악영향을 주지 않는다.
Confirm
증명자의 증명 값을 on-chain에서 검증하는 것은 비용이 높기 때문에 일정 기간의 검증 기간을 두고 이 기간 내에 다른 사람들에 의해 신고되지 않는 증명 값은 옳은 증명 값으로 확정시킨다. ProofList에 있는 증명 값 중 challenger에 의해 검증되었을 때 참이 나온 경우와 proof이 생성된 후 일정 블록 이상이 지난 경우 proof의 isConfirm값을 true로 변경하여 증명 값을 확정시킨다.
이하, 도 3 및 도 4를 참조하여 본 발명의 일 실시예에 따른 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템(S)의 실험 결과에 대해 살피면 아래와 같다.
외부 스마트 컨트랙트나 프로그램에서 SVZK를 이용한 저렴한 영지식 증명을 사용할 수 있다. 이 때 사용자는 증명 값이 확정되었는지 확인하려 할 수 있다. 만약 proof값이 이전에 proof 생성 이후 블록이 일정 기간이 지났거나 확정되어 있으면 참을 Return하고 확정되어 있지 않은 경우 거짓을 반환한다. 직접 VC를 deploy하여 실험한 결과 constraint는 public, private 값의 수와는 관련 없고 계산이 추가되는 경우에만 추가된다.
도 3은 if statement의 수를 증가시켜 실험한 결과를 도시한 그래프이다. 도 3에 도시된 바와 같이 if statement가 늘어 Constraint가 증가하더라도 on-chain에서의 검증 비용은 증가하지 않는 것을 확인할 수 있다.
한편, 도 4는 zokrates에서 예시로 주어진 sudoku 프로그램의 input을 private, 및 public만 변경하여 실험한 결과를 도시한 그래프이다.
public 값의 수가 증가할 경우 verification의 비용이 증가하는데, 이때 기존 검증방법은 memory에서만 public값을 다루었기 때문에 public 값을 storage에 저장해야하는 SVZK의 방식보다 public값이 증가하더라도 영향이 적다.
하지만 public 값이 적은 경우 Verification 비용이 Storage비용보다 크기 때문에 SVZK의 비용이 기존 영지식증명 검증방법보다 한 트랜잭션에서 약 275,727 수수료를 절약할 수 있고, 이 결과 영지식 증명을 검증하는 트랜잭션에 대하여 확장성이 1.6배 증가한다.
한편, 본 발명의 일 실시예에 따른 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 방법은 proof 등록 및 검증 절차와 false proof 검증 절차로 이루어지는데, 도 5 및 도 6을 참조하여 살피면 아래와 같다.
1. proof 등록 및 검증 (도 5)
먼저, 증명부(100)가 증명하고자 하는 사실에 대한 Prove() 결과로 proof를 생성한다(S502).
이어서, 증명부(100)가 블록체인에 트랜잭션을 발생시켜 proof를 저장한다(S504).
뒤이어, 검증부(200)가 신규한 proof가 등록되면 컨트랙트와 vk, proof를 대상으로 off-chain에서 Verify()를 실행한다(S506).
이어서, 검증부(200)가 Verify() 실행 결과 참인지 거짓인지 여부를 판단한다(S508).
제S508단계의 판단결과 Verify() 실행 결과가 참일 경우, 검증부(200)가 기 설정된 시간이 경과하면 proof가 참인 것으로 판단한다(S510).
반면에, 제S508단계의 판단결과 Verify() 실행 결과가 거짓일 경우, 검증부(200)가 연산부(300)로 검증 요청을 보낸다(S512).
2. false proof 검증 (도 6)
제S508단계의 판단결과 Verify() 실행 결과가 거짓일 경우, 검증부(200)가 연산부(300)로 검증 요청을 보낸다(S602).
이어서, 연산부(300)가 검증부(200)로의 검증 요청에 따라 연산부(300)가 on-chain에서 Verify()를 실행한다(S604).
반면에, 제S604단계의 실행결과, proof의 검증 결과가 거짓일 경우, 연산부(300)가 증명부(100)의 Deposit에서 기 설정된 패널티를 부과한다(S606).
그리고, 연산부(300)가 부과된 패널티 일부를 검증부(200)에 보상으로 반환한다(S608).
이처럼, 전술한 바와 같은 본 발명의 일 실시예에 따른 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템 및 그 방법에 의하면, 선택적 검증 영지식 증명(SVZK)에서 발생하는 비용은 모든 proof을 블록체인에서 증명하는 것이 아닌, false proof만을 블록체인에서 검증하게 됨에 따라 증명에 소요되는 비용을 절감할 수 있다.
즉, 블록체인에 일정 deposit과 함께 모든 proof를 저장하지만 블록체인에 참여하는 유저가 off-chain에서 검증한 결과 참인 proof은 블록체인에서 실행하지 않으며, 기 설정된 기간 동안 블록체인에서 검증되지 않은 proof은 참인 것으로 확정하고 예치금을 돌려받게 된다.
또한, off-chain에서 검증시 proof의 검증 결과가 거짓이라면 블록체인에서 해당 proof를 검증하여 거짓된 proof임을 확정하는데 이 과정에서 proof가 거짓임을 검증하는 검증자는, 참인지 거짓인지 알 수 없는 proof을 off-chain에서 검증해보는 계산을 수행해야 하는바, 블록체인에서 proof가 거짓임을 증명한 검증자는 proof을 저장한 사용자의 예치금을 돌려받도록 구성된다.
반면에, 블록체인에서 검증한 proof가 참인 경우, 예치금은 proof을 저장한 사용자의 계좌로 반환되고, 검증자는 블록체인에서의 검증에 사용된 수수료에 대한 비용을 지불하게 된다.
이상으로 본 발명의 기술적 사상을 예시하기 위한 바람직한 실시예와 관련하여 설명하고 도시하였지만, 본 발명은 이와 같이 도시되고 설명된 그대로의 구성 및 작용에만 국한되는 것이 아니며, 기술적 사상의 범주를 일탈함이 없이 본 발명에 대해 다수의 변경 및 수정이 가능함을 당업자들은 잘 이해할 수 있을 것이다. 따라서 그러한 모든 적절한 변경 및 수정과 균등 물들도 본 발명의 범위에 속하는 것으로 간주되어야 할 것이다.
S: 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템
100: 증명부
200: 검증부
300: 연산부
100: 증명부
200: 검증부
300: 연산부
Claims (5)
- 증명하고자 하는 사실에 대한 Prove() 결과로 proof를 생성하고, 블록체인에 트랜잭션을 발생시켜 proof를 저장하는 증명부;
신규한 proof가 등록되면 컨트랙트와 vk, proof를 대상으로 off-chain에서 Verify()를 실행하되, 결과가 참일 경우 대기하다가 기 설정된 시간이 경과하면 proof가 참인 것으로 판단하는 검증부; 및
상기 검증부의 검증 요청에 따라 on-chain에서 Verify()를 실행하는 연산부를 포함하되,
상기 검증부는,
상기 Verify() 실행 결과가 거짓일 경우, 상기 연산부로 proof에 대한 검증 요청을 전송하는 것을 특징으로 하는 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템. - 삭제
- 제1항에 있어서,
상기 연산부는,
상기 Verify() 실행 결과가 거짓일 경우, 상기 증명부의 Deposit에서 기 설정된 패널티를 부과하는 것을 특징으로 하는 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템. - (a) 증명부가 증명하고자 하는 사실에 대한 Prove() 결과로 proof를 생성하는 단계;
(b) 증명부가 블록체인에 트랜잭션을 발생시켜 proof를 저장하는 단계;
(c) 검증부가 신규한 proof가 등록되면 컨트랙트와 vk, proof를 대상으로 off-chain에서 Verify()를 실행하는 단계; 및
(d) 상기 (c) 단계의 Verify() 실행 결과 참일 경우, 검증부가 기 설정된 시간이 경과하면 proof가 참인 것으로 판단하는 단계를 포함하되,
상기 (c) 단계의 Verify() 실행 결과가 거짓일 경우,
검증부가 연산부로 검증 요청을 보내는 (e) 단계; 연산부가 검증부로의 검증 요청에 따라 연산부가 on-chain에서 Verify()를 실행하는 (f) 단계; 및 proof의 검증결과가 거짓일 경우, 연산부가 증명부의 Deposit에서 기 설정된 패널티를 부과하는 (h) 단계를 포함하는 것을 특징으로 하는 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 방법. - 삭제
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190149544A KR102103177B1 (ko) | 2019-11-20 | 2019-11-20 | 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템 및 그 방법 |
US17/261,895 US20220116218A1 (en) | 2019-11-20 | 2020-08-20 | Selective verification system of zero-knowledge proofs for scalability of blockchain and method thereof |
PCT/KR2020/011093 WO2021101023A1 (ko) | 2019-11-20 | 2020-08-20 | 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템 및 그 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190149544A KR102103177B1 (ko) | 2019-11-20 | 2019-11-20 | 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템 및 그 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102103177B1 true KR102103177B1 (ko) | 2020-04-22 |
Family
ID=70472975
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190149544A KR102103177B1 (ko) | 2019-11-20 | 2019-11-20 | 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템 및 그 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220116218A1 (ko) |
KR (1) | KR102103177B1 (ko) |
WO (1) | WO2021101023A1 (ko) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021101023A1 (ko) * | 2019-11-20 | 2021-05-27 | 충남대학교산학협력단 | 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템 및 그 방법 |
CN114374554A (zh) * | 2021-12-30 | 2022-04-19 | 杭州趣链科技有限公司 | 区块链隐私保护方法、电子设备及计算机可读存储介质 |
KR20220082308A (ko) | 2020-12-10 | 2022-06-17 | 서강대학교산학협력단 | 영지식 증명 시스템의 탈중앙화 방법 |
KR20220101576A (ko) * | 2021-01-11 | 2022-07-19 | 충남대학교산학협력단 | 프라이버시 보호가 가능한 블록체인 기반의 영지식 검증 방법 |
KR102519490B1 (ko) | 2021-11-09 | 2023-04-10 | 주식회사 온더 | 영지식 증명 기반 블록체인 가상머신의 검증방법 |
KR20240022891A (ko) | 2022-08-12 | 2024-02-20 | 재단법인대구경북과학기술원 | 랜덤 위상 랩핑에 기반한 익명성이 보장된 영 지식 증명 장치 및 방법 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW202329668A (zh) * | 2022-01-13 | 2023-07-16 | 瑞士商區塊鏈授權股份有限公司 | 證明及驗證有序事件序列之技術 |
WO2023215930A1 (en) * | 2022-05-07 | 2023-11-16 | Blue Eighty Pty Ltd | Systems and methods for the zero-knowledge verification of personally identifiable information between organisations as enablers for the implementation of novel inter-organisational identity verification, anti money laundering, anti fraud, payee kyc enforcement, confirmation of payee and payment authorisation schemes |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019092552A1 (en) * | 2017-11-09 | 2019-05-16 | nChain Holdings Limited | Systems and methods for ensuring correct execution of computer program using a mediator computer system |
KR20190076535A (ko) | 2017-12-22 | 2019-07-02 | 충남대학교산학협력단 | 블록체인을 이용한 익명 투표 시스템 및 그 방법 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107274184A (zh) * | 2017-05-11 | 2017-10-20 | 上海点融信息科技有限责任公司 | 基于零知识证明的区块链数据处理 |
GB201709188D0 (en) * | 2017-06-09 | 2017-07-26 | Nchain Holdings Ltd | Computer-Implemented system and method |
US11115204B2 (en) * | 2017-12-18 | 2021-09-07 | Adobe Inc. | Cooperative platform for generating, securing, and verifying device graphs and contributions to device graphs |
US10298395B1 (en) * | 2018-09-26 | 2019-05-21 | Accenture Global Solutions Limited | Interoperability of zero-knowledge proof enabled blockchains |
KR102000244B1 (ko) * | 2019-04-02 | 2019-07-16 | 주식회사 한국정보보호경영연구소 | 형태보존 암호화가 적용된 영지식증명 기반의 블록체인 시스템 및 그의 제어 방법 |
KR102103177B1 (ko) * | 2019-11-20 | 2020-04-22 | 충남대학교 산학협력단 | 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템 및 그 방법 |
-
2019
- 2019-11-20 KR KR1020190149544A patent/KR102103177B1/ko active IP Right Grant
-
2020
- 2020-08-20 US US17/261,895 patent/US20220116218A1/en active Pending
- 2020-08-20 WO PCT/KR2020/011093 patent/WO2021101023A1/ko active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019092552A1 (en) * | 2017-11-09 | 2019-05-16 | nChain Holdings Limited | Systems and methods for ensuring correct execution of computer program using a mediator computer system |
KR20190076535A (ko) | 2017-12-22 | 2019-07-02 | 충남대학교산학협력단 | 블록체인을 이용한 익명 투표 시스템 및 그 방법 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021101023A1 (ko) * | 2019-11-20 | 2021-05-27 | 충남대학교산학협력단 | 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템 및 그 방법 |
KR20220082308A (ko) | 2020-12-10 | 2022-06-17 | 서강대학교산학협력단 | 영지식 증명 시스템의 탈중앙화 방법 |
KR20220101576A (ko) * | 2021-01-11 | 2022-07-19 | 충남대학교산학협력단 | 프라이버시 보호가 가능한 블록체인 기반의 영지식 검증 방법 |
KR102716337B1 (ko) * | 2021-01-11 | 2024-10-15 | 충남대학교 산학협력단 | 프라이버시 보호가 가능한 블록체인 기반의 영지식 검증 방법 |
KR102519490B1 (ko) | 2021-11-09 | 2023-04-10 | 주식회사 온더 | 영지식 증명 기반 블록체인 가상머신의 검증방법 |
CN114374554A (zh) * | 2021-12-30 | 2022-04-19 | 杭州趣链科技有限公司 | 区块链隐私保护方法、电子设备及计算机可读存储介质 |
KR20240022891A (ko) | 2022-08-12 | 2024-02-20 | 재단법인대구경북과학기술원 | 랜덤 위상 랩핑에 기반한 익명성이 보장된 영 지식 증명 장치 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
WO2021101023A1 (ko) | 2021-05-27 |
US20220116218A1 (en) | 2022-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102103177B1 (ko) | 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템 및 그 방법 | |
CN108418689B (zh) | 一种适合区块链隐私保护的零知识证明方法和介质 | |
CN110781521B (zh) | 基于零知识证明的智能合约认证数据隐私保护方法及系统 | |
CN110419053B (zh) | 用于信息保护的系统和方法 | |
US20240249280A1 (en) | Computer-implemented system and method for trustless zero-knowledge contingent payment | |
US11416854B2 (en) | System and method for information protection | |
Miller et al. | Zero-collateral lotteries in bitcoin and ethereum | |
Garman et al. | Decentralized anonymous credentials | |
US20200193432A1 (en) | Method and system for settling a blockchain transaction | |
US20200127813A1 (en) | Method and system for creating a user identity | |
CN111971930A (zh) | 适于提高即时离线区块链交易安全性的计算机实现的系统和方法 | |
EP3419210A1 (en) | Method for generating a transaction of a blockchain and method for validating a block of a blockchain | |
US10171249B2 (en) | Privacy friendly location based services | |
CN112487468A (zh) | 基于区块链的可追踪的完全匿名电子投票方法及系统 | |
JP2024029184A (ja) | コンピュータネットワークの間のタスクの分配のためのアキュムレータに基づくプロトコルのためのコンピュータ実施システム及び方法 | |
Liu et al. | Enhancing anonymity of bitcoin based on ring signature algorithm | |
US20240303652A1 (en) | Method and system for a central bank digital currency with unlinkable transactions and privacy preserving regulation | |
Li et al. | AvecVoting: Anonymous and verifiable E-voting with untrustworthy counters on blockchain | |
Hou et al. | Blockchain-based efficient verifiable outsourced attribute-based encryption in cloud | |
JP2024506720A (ja) | 匿名署名スキームのユーザ制御のリンク可能性 | |
Wang | Another look at ALGORAND | |
Team | Styx: Unlinkable Anonymous Atomic Payment Hub For Viacoin | |
AU2019101598A4 (en) | System and method for information protection | |
Cramer et al. | On electronic payment systems | |
KR102018144B1 (ko) | 가상화폐의 비밀키 관리방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |