WO2021101023A1 - 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템 및 그 방법 - Google Patents

블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템 및 그 방법 Download PDF

Info

Publication number
WO2021101023A1
WO2021101023A1 PCT/KR2020/011093 KR2020011093W WO2021101023A1 WO 2021101023 A1 WO2021101023 A1 WO 2021101023A1 KR 2020011093 W KR2020011093 W KR 2020011093W WO 2021101023 A1 WO2021101023 A1 WO 2021101023A1
Authority
WO
WIPO (PCT)
Prior art keywords
proof
verification
unit
blockchain
zero
Prior art date
Application number
PCT/KR2020/011093
Other languages
English (en)
French (fr)
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 US17/261,895 priority Critical patent/US20220116218A1/en
Publication of WO2021101023A1 publication Critical patent/WO2021101023A1/ko

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
    • 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
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/26Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm

Definitions

  • the present invention relates to a system and method for selective verification of zero-knowledge proof for scalability of a blockchain, and more specifically, selective verification of zero-knowledge proof in a verification system using a blockchain. It relates to a technology that guarantees the privacy of users with a small fee.
  • Blockchain's smart contract ensures transparent execution without the need for trust in a distributed environment.
  • Ethereum is one of the public blockchains that support smart contract systems that run programs on the blockchain. In Ethereum, it is possible to develop decentralized applications (DApps) using a programming language called Solidity.
  • DApps decentralized applications
  • Ethereum's DApp has a problem in that input parameters and execution results are exposed to all users when executing.
  • the information on the blockchain is open to everyone and cannot be deleted, it can be a big problem for user information to be uploaded to the blockchain.
  • the information disclosed in the blockchain will reveal not only the information of the smart contract, but also the transactions between users. Every transaction on the blockchain reveals the sender, the recipient, and the amount sent. However, it is not revealed who the owner of the address on the blockchain is, but information about the owner of the address is inevitably revealed in the process of cashing through the exchange.
  • zero-knowledge proof is widely used in the blockchain, and users upload only the proof value to the blockchain without revealing their value. At this time, in the blockchain, even if the actual value is not known, it is verified on-chain using only the proof value to prove that the user has the value.
  • This zero-knowledge proof is a cryptographic method that proves that it has a value without revealing one's information.Prover that proves that it has a secret value without revealing the value, and proves that the prover has a value without the secret value of the prover. It consists of a verifier.
  • the prover creates a proof through its own secret value.
  • the verifier verifies that it has a secret value through verification of proofs.
  • Prover converts the statement, which is the task to be proved, into a mathematical circuit such as Arithmetic Circuit and Boolean Circuit, and then applies a mathematical problem to the circuit to create a proof that is difficult to calculate without knowing the secret value.
  • the verifier can verify the validity of the proof at low verification cost rather than generating the proof.
  • the prover can prove that his/her personal information is hidden and has the value by placing only his/her proof value on the blockchain and verifying the proof value on the blockchain.
  • implementations such as zk-SNARK, zk-STARK, and Bulletproofs.
  • zk-SNARK has a fast verification speed, but since it receives the Common Reference String (CRS) value as an input in the context of creating a verification contract, if this value is revealed, it can generate a fake proof, so a trusted setup of a trusted third party is possible. need.
  • CRS Common Reference String
  • zk-STARK or bulletproofs don't require Trusted setup.
  • zk-STARK has a disadvantage that the size of proof for verification is very large compared to zk-SNARK, and bulletproofs have a high verification cost compared to zk-SNARK.
  • the blletproofs or VC of zk-STARK implement the verification method of implementation as solidity, and the proof generated externally can be verified in ethereum.
  • verification of the proof value of a zero-knowledge proof has a disadvantage in that it consumes a lot of cost and the proof value is heavy, and the zk-SNARK, which has a low verification cost among zero-knowledge proofs, is also compared with ECDSA (Elliptic Curve Digital Signature Algorithm) verification. There is a problem that the verification cost is very high.
  • ECDSA Elliptic Curve Digital Signature Algorithm
  • TPS Transaction Per Second
  • the proof value was not stored in the storage, so only the cost of verification was incurred, but the user who uploaded the wrong proof value in SVZK stores the proof value in the storage and executes the verification as a result. If you increase the value, more fees will be incurred, resulting in a problem of poor performance.
  • the present applicant intends to propose a system that protects privacy at a low cost through selective verification of zero-knowledge proof.
  • the proof value is uploaded to the blockchain, but verification is performed off-chain by other validators, and only if the proof value is not true, it is not necessary to verify and verify on-chain. Extensibility can be obtained by not performing verification on the proof value that is being performed on-chain.
  • An object of the present invention is to store the proof value of the zero-knowledge proof in the blockchain, but only the proof value where the proof is incorrect is verified in the on-chain, that is, after storing the proof without verifying, only the invalid verification is actually
  • SVZK Selective Verification of Zero-knowledge proof
  • the selective verification system of zero-knowledge proof for the scalability of the blockchain of the present invention to achieve this technical problem generates a proof as a result of Prove() for the fact to be proved, and generates a transaction in the blockchain to deposit And a proof unit for storing proof;
  • a verification unit that executes Verify() in the off-chain targeting the contract, vk, and proof, but determines that the proof is true when a preset time elapses if the result is true;
  • an operation unit that executes Verify() in on-chain according to the verification request of the verification unit.
  • the verification unit is characterized in that when the verification () execution result is false, transmits a verification request for the proof to the operation unit.
  • the calculation unit imposes a preset penalty in the deposit of the verification unit.
  • the selective verification method of zero-knowledge proof for the scalability of the blockchain based on the above-described system includes the steps of: (a) generating a proof as a result of Prove() for the fact that the proof unit wants to prove; (B) step of storing the proof by generating a transaction in the blockchain by the proof unit; (C) step of executing Verify() in off-chain targeting the contract, vk, and proof when a new proof is registered by the verification unit; And (d) determining that the proof is true when a predetermined time elapses by the verification unit if the result of executing Verify() in step (c) is true.
  • step (e) sending a verification request to the operation unit by the verification unit;
  • step (G) the operation unit executes Verify() in the on-chain;
  • step (f) imposing a preset penalty from the deposit of the proof.
  • SVZK selective verification zero-knowledge proof
  • SVZK selective verification zero-knowledge verification
  • FIG. 1 is a block diagram showing a system for selective verification of zero-knowledge proof for scalability of a block chain according to an embodiment of the present invention.
  • FIG. 2 is a block diagram showing an overview of three types of tasks: setup, proof, and challenger of a system for selective verification of zero-knowledge proof for scalability of a block chain according to an embodiment of the present invention.
  • FIG. 3 is a graph showing the results of an experiment by increasing the number of if statements according to the verification of a system for selective verification of zero-knowledge proof for scalability of a block chain according to an embodiment of the present invention.
  • FIG. 4 shows the result of experiment by changing only private and public input of sudoku program given as an example in zokrates according to the verification of the selective verification system of zero-knowledge proof for the scalability of the block chain according to an embodiment of the present invention.
  • FIG. 5 is a flowchart showing a proof registration and verification procedure of a method for selective verification of zero-knowledge proof for scalability of a block chain according to an embodiment of the present invention.
  • FIG. 6 is a flowchart illustrating a false proof verification procedure of a method for selectively verifying zero-knowledge proof for scalability of a block chain according to an embodiment of the present invention.
  • Zero-knowledge proof largely consists of a Prove process for generating a proof and a Verify process for verifying it.
  • Prove generates a calculated proof by receiving the proving key (pk) and w containing the secret value, and public input x, and Verify is the proof by inputting the Verifying key (vk), proof and x. Whether or not it is determined, at this time, the function of executing Prove is performed by the Prover, and the function of executing Verify is performed by the Verifier.
  • the smart contract that is stored in the blockchain and plays the role of a verifier is stored with vk and transmits the proof to the contract to determine whether the proof is true or false from the execution result.
  • a zero-knowledge proof selective verification system (S) for scalability of a block chain includes Prover (verification unit) 100, Validators (validation unit) 200, And it is configured to include a Verification Contract (operation unit) (300).
  • the proof unit 100 generates a proof as a result of Prove() for the fact to be proved, and stores the proof by generating a transaction in the blockchain.
  • the verification unit 200 executes Verify() in the off-chain targeting the contract, vk, and proof, but if the result is true, it determines that the proof is true when a preset time elapses, If the result of executing Verify() is false, a verification request is sent to the operation unit 300.
  • the operation unit 300 executes Verify() in the on-chain according to the verification request of the verification unit 200, and if the result of executing Verify() is false, a penalty set in the deposit of the verification unit 100 is Impose.
  • the calculation unit 300 may return a portion of the imposed penalty to the verification unit 200 as a compensation.
  • FIG. 2 is a block diagram showing an overview of three types of tasks of setup, proof, and challenger of a selective verification system (S) of zero-knowledge proof for scalability of a block chain according to an embodiment of the present invention. to be.
  • S selective verification system
  • a setup user who wants to make their VC can be verified inexpensively by users using the SVZK system, a prover who wants to prove their proof to the VC, and a challenger who wants to verify that the proof of the prover is correct. It can consist of several types of users.
  • a verification contract In order to verify various verification values in the SVZK system, a verification contract must be registered. To create a VC, you can use a program that creates VC such as Zokrates, and stores the address of the VC uploaded on the blockchain in SVZK so that challengers can know the contract verifying the proof. Through the registered VC, proof and VC can be connected in the SVZK system.
  • VC such as Zokrates
  • the prover uploads his proof value to the storage of SVZK and confirms the proof value without executing the verification on-chain after a certain period (epoch) without receiving any challenge. To this end, the prover matches and stores the proof value to be proved and the VC that verifies the proof value.
  • the block number of the proposed block is also configured to be stored because the proof value needs to be confirmed when a certain period of time passes in the block that has proposed the proof value.
  • the challenger can get the deposit of the prover that discards the proof value and raises the proof value.
  • the verification result is True, the proof value is confirmed even if you do not wait for the epoch, and the deposit is returned to the prover. Even if the challenger objected to the true proof value, the wrong challenge does not adversely affect the system because it advances the confirmation time of the Prover and pays the verification cost that the Prover has to pay.
  • Inexpensive zero-knowledge proofs using SVZK can be used in external smart contracts or programs. At this time, the user may try to check whether the proof value has been confirmed. If the proof value has passed or is confirmed for a certain period of time since the proof was created before, it returns true, and if it is not confirmed, returns false.
  • constraints are not related to the number of public and private values, and are added only when calculations are added.
  • FIG. 3 is a graph showing an experiment result by increasing the number of if statements. As shown in FIG. 3, it can be seen that even if the if statement increases and the constraint increases, the verification cost in the on-chain does not increase.
  • FIG. 4 is a graph showing an experiment result by changing only private and public inputs of the sudoku program given as an example in zokrates.
  • the verification cost is greater than the storage cost, so the cost of SVZK can save about 275,727 fees in one transaction compared to the existing zero-knowledge proof verification method, and as a result, scalability for transactions that verify zero-knowledge proof. This increases by 1.6 times.
  • the selective verification method of zero-knowledge proof for scalability of the block chain consists of a proof registration and verification procedure and a false proof verification procedure. .
  • the proof unit 100 generates a proof as a result of Prove() for the fact to be proved (S502).
  • the proof unit 100 stores the proof by generating a transaction in the block chain (S504).
  • the verification unit 200 executes Verify() in off-chain targeting the contract, vk, and proof (S506).
  • the verification unit 200 determines whether it is true or false as a result of executing Verify() (S508).
  • step S508 if the result of executing Verify() is true, the verification unit 200 determines that the proof is true when a preset time elapses (S510).
  • step S508 if the result of executing Verify() is false, the verification unit 200 sends a verification request to the calculation unit 300 (S512).
  • step S508 if the execution result of Verify() is false, the verification unit 200 sends a verification request to the calculation unit 300 (S602).
  • the operation unit 300 executes Verify() in on-chain according to the verification request from the verification unit 200 (S604).
  • step S604 when the execution result of step S604 and the verification result of the proof are false, the operation unit 300 imposes a preset penalty from the deposit of the proof unit 100 (S606).
  • the cost incurred in selective verification zero-knowledge proof is all proofs. It is possible to reduce the cost of proof by verifying only false proofs on the blockchain, not proofs on the blockchain.
  • the proof is verified in the blockchain to confirm that it is a false proof.
  • the calculation that verifies in the chain must be performed, and the verifier who proves that the proof is false in the blockchain is configured to receive the deposit of the user who saved the proof.
  • the deposit is returned to the account of the user who saved the proof, and the validator pays for the fee used for verification on the blockchain.

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에서 실행하지 않아 확장성을 얻을 수 있다.
[선행기술문헌]
[특허문헌]
대한민국공개특허 제10-2019-0076535호(2019.07.02)
본 발명의 목적은, 영지식 증명의 증명값은 블록체인에 저장하되, 검증이 틀린 증명값에 대해서만 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 검증 절차를 도시한 순서도.
본 발명의 구체적인 특징 및 이점들은 첨부도면에 의거한 다음의 상세한 설명으로 더욱 명백해질 것이다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 발명자가 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야 할 것이다. 또한, 본 발명에 관련된 공지 기능 및 그 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는, 그 구체적인 설명을 생략하였음에 유의해야 할 것이다.
본 발명의 일 실시예에 따른 영지식 증명은 크게 증거(proof)를 생성하는 Prove 과정과 이를 증명하는 Verify 과정으로 구성된다.
여기서, Prove는 proving key(pk)와 비밀값이 포함된 w, 및 public input x를 입력받아 계산된 proof를 생성하고, Verify는 Verifying key(vk), proof 및 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: 연산부

Claims (5)

  1. 증명하고자 하는 사실에 대한 Prove() 결과로 proof를 생성하고, 블록체인에 트랜잭션을 발생시켜 proof를 저장하는 증명부;
    신규한 proof가 등록되면 컨트랙트와 vk, proof를 대상으로 off-chain에서 Verify()를 실행하되, 결과가 참일 경우 대기하다가 기 설정된 시간이 경과하면 proof가 참인 것으로 판단하는 검증부; 및
    상기 검증부의 검증 요청에 따라 on-chain에서 Verify()를 실행하는 연산부를
    포함하는 것을 특징으로 하는 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템.
  2. 제1항에 있어서,
    상기 검증부는,
    상기 Verify() 실행 결과가 거짓일 경우, 상기 연산부로 proof에 대한 검증 요청을 전송하는 것을 특징으로 하는 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템.
  3. 제1항에 있어서,
    상기 연산부는,
    상기 Verify() 실행 결과가 거짓일 경우, 상기 증명부의 Deposit에서 기 설정된 패널티를 부과하는 것을 특징으로 하는 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템.
  4. (a) 증명부가 증명하고자 하는 사실에 대한 Prove() 결과로 proof를 생성하는 단계;
    (b) 증명부가 블록체인에 트랜잭션을 발생시켜 proof를 저장하는 단계;
    (c) 검증부가 신규한 proof가 등록되면 컨트랙트와 vk, proof를 대상으로 off-chain에서 Verify()를 실행하는 단계; 및
    (d) 상기 (c) 단계의 Verify() 실행 결과 참일 경우, 검증부가 기 설정된 시간이 경과하면 proof가 참인 것으로 판단하는 단계를
    포함하는 것을 특징으로 하는 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 방법.
  5. 제4항에 있어서,
    (e) 상기 (c) 단계의 Verify() 실행 결과가 거짓일 경우, 검증부가 연산부로 검증 요청을 보내는 단계;
    (f) 연산부가 검증부로의 검증 요청에 따라 연산부가 on-chain에서 Verify()를 실행하는 단계; 및
    (h) proof의 검증결과가 거짓일 경우, 연산부가 증명부의 Deposit에서 기 설정된 패널티를 부과하는 단계를
    포함하는 것을 특징으로 하는 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 방법.
PCT/KR2020/011093 2019-11-20 2020-08-20 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템 및 그 방법 WO2021101023A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
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

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190149544A KR102103177B1 (ko) 2019-11-20 2019-11-20 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템 및 그 방법
KR10-2019-0149544 2019-11-20

Publications (1)

Publication Number Publication Date
WO2021101023A1 true WO2021101023A1 (ko) 2021-05-27

Family

ID=70472975

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2020/011093 WO2021101023A1 (ko) 2019-11-20 2020-08-20 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템 및 그 방법

Country Status (3)

Country Link
US (1) US20220116218A1 (ko)
KR (1) KR102103177B1 (ko)
WO (1) WO2021101023A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023135217A1 (en) * 2022-01-13 2023-07-20 Nchain Licensing Ag Proving and verifying an ordered sequence of events

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102103177B1 (ko) * 2019-11-20 2020-04-22 충남대학교 산학협력단 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템 및 그 방법
KR20220082308A (ko) 2020-12-10 2022-06-17 서강대학교산학협력단 영지식 증명 시스템의 탈중앙화 방법
KR102519490B1 (ko) 2021-11-09 2023-04-10 주식회사 온더 영지식 증명 기반 블록체인 가상머신의 검증방법
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
KR20240022891A (ko) 2022-08-12 2024-02-20 재단법인대구경북과학기술원 랜덤 위상 랩핑에 기반한 익명성이 보장된 영 지식 증명 장치 및 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018205729A1 (zh) * 2017-05-11 2018-11-15 上海点融信息科技有限责任公司 基于零知识证明的区块链数据处理
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
US10298395B1 (en) * 2018-09-26 2019-05-21 Accenture Global Solutions Limited Interoperability of zero-knowledge proof enabled blockchains
US20190190701A1 (en) * 2017-12-18 2019-06-20 Adobe Inc. Cooperative platform for generating, securing, and verifying device graphs and contributions to device graphs
KR102000244B1 (ko) * 2019-04-02 2019-07-16 주식회사 한국정보보호경영연구소 형태보존 암호화가 적용된 영지식증명 기반의 블록체인 시스템 및 그의 제어 방법
KR102103177B1 (ko) * 2019-11-20 2020-04-22 충남대학교 산학협력단 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템 및 그 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190076535A (ko) 2017-12-22 2019-07-02 충남대학교산학협력단 블록체인을 이용한 익명 투표 시스템 및 그 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018205729A1 (zh) * 2017-05-11 2018-11-15 上海点融信息科技有限责任公司 基于零知识证明的区块链数据处理
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
US20190190701A1 (en) * 2017-12-18 2019-06-20 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 충남대학교 산학협력단 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템 및 그 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023135217A1 (en) * 2022-01-13 2023-07-20 Nchain Licensing Ag Proving and verifying an ordered sequence of events

Also Published As

Publication number Publication date
US20220116218A1 (en) 2022-04-14
KR102103177B1 (ko) 2020-04-22

Similar Documents

Publication Publication Date Title
WO2021101023A1 (ko) 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템 및 그 방법
WO2018124857A1 (ko) 블록체인 기반의 모바일 아이디를 이용하여 사용자를 비대면 인증하는 방법, 단말 및 이를 이용한 서버
WO2017192007A2 (ko) 블록 검증을 위한 복수의 일방향 함수를 지원하는 블록 체인
CN110574059A (zh) 关于区块链的快速分布式共识
WO2018197491A1 (en) Method and system for settling a blockchain transaction
EP3314812A1 (en) System, apparatus and method for performing cryptographic operations in a trusted execution environment
CN112541757A (zh) 使区块链系统的第一实体能向其它实体证明的方法
CN110612547A (zh) 一种用于信息保护的系统和方法
Ma et al. Redactable blockchain in decentralized setting
CN111316615A (zh) 使用调解器计算机系统确保计算机程序正确执行的系统和方法
WO2019074326A1 (en) SECURE OFFLINE PAYMENT METHOD AND APPARATUS
EP3419210A1 (en) Method for generating a transaction of a blockchain and method for validating a block of a blockchain
CN112487468B (zh) 基于区块链的可追踪的完全匿名电子投票方法及系统
CN107094077A (zh) 一种不限制签名算法的许可链账户系统
CN109547193B (zh) 一种基于区块链且抗量子计算机攻击的电子投票方法
WO2020117020A1 (ko) 생체 정보 기반의 pki 키 생성 방법 및 이를 이용한 키 생성 장치
US11831761B2 (en) Computer-implemented systems and methods for an accumulator-based protocol for the distribution of tasks across a computer network
WO2020158973A1 (ko) 가설 수락 프로토콜-2 방식의 블록체인 합의 시스템 및 방법
CN110867012A (zh) 一种基于智能合约的去中心电子投票方法、装置、系统及存储介质
Dorsala et al. Fair protocols for verifiable computations using bitcoin and ethereum
CN110990790A (zh) 一种数据处理方法及设备
JP2002529778A (ja) 共有無作為性の分散暗号化への組み込み
WO2021137391A1 (ko) 비밀 공유를 이용한 블록 체인 생성 방법
CN111566681A (zh) 快速且分区弹性的区块链
Kumar et al. VOTEETH: An E-voting system using blockchain

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20891153

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20891153

Country of ref document: EP

Kind code of ref document: A1