KR102103179B1 - System and Method of Zero-Knowledge Proof for Privacy Preserving Oracle on Blockchain - Google Patents

System and Method of Zero-Knowledge Proof for Privacy Preserving Oracle on Blockchain Download PDF

Info

Publication number
KR102103179B1
KR102103179B1 KR1020190152094A KR20190152094A KR102103179B1 KR 102103179 B1 KR102103179 B1 KR 102103179B1 KR 1020190152094 A KR1020190152094 A KR 1020190152094A KR 20190152094 A KR20190152094 A KR 20190152094A KR 102103179 B1 KR102103179 B1 KR 102103179B1
Authority
KR
South Korea
Prior art keywords
tls
proof
blockchain
record
client
Prior art date
Application number
KR1020190152094A
Other languages
Korean (ko)
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 KR1020190152094A priority Critical patent/KR102103179B1/en
Application granted granted Critical
Publication of KR102103179B1 publication Critical patent/KR102103179B1/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/3263Cryptographic 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 involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • 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

Abstract

The present invention relates to a zero-knowledge proof system for privacy protection in a blockchain oracle and a method for the same. The zero-knowledge proof system comprises: a TLS server providing data; an oracle TLS client performing the function of requesting off-chain data and transporting the same to the blockchain; a verification contract performing the function of verifying a presented proof; and a TLS certchain performing the function of an authentication certificate of a website including the TLS server, wherein the TLS server and the TLS client establish a session through a handshake process, record in a record unit during a TLS communication process, and compare record sets to each other upon termination of a TLS session, and if the record sets are identical as a result of comparison, generate C_n including random ′r′ with respect to a record corresponding to personal information.

Description

블록체인 오라클에서의 프라이버시 보호를 위한 영지식 증명 시스템 및 그 방법{System and Method of Zero-Knowledge Proof for Privacy Preserving Oracle on Blockchain}System and Method of Zero-Knowledge Proof for Privacy Preserving Oracle on Blockchain}

본 발명은 블록체인 오라클에서의 프라이버시 보호를 위한 영지식 증명 시스템 및 그 방법에 관한 것으로 더욱 상세하게는, 오라클을 통해 블록체인 외부에서 발생한 이벤트나 데이터 수신을 제공하는 Transport Layer Security(TLS) 환경에서, 사용자의 프라이버시 보호를 위한 영지식 증명(Zero-knowledge proof)을 적용하는 기술에 관한 것이다.The present invention relates to a zero-knowledge proof system and method for privacy protection in a blockchain Oracle, and more specifically, in a Transport Layer Security (TLS) environment that provides an event or data reception outside the blockchain through Oracle. , It is related to the technology of applying zero-knowledge proof for the protection of user's privacy.

블록체인에서 외부(off-chain)에서 발생한 이벤트나 데이터를 가져올 때 신뢰성을 판단하는 것은 매우 어렵다. 예를 들어, 스포츠 경기 결과에 따라 돈을 배당하는 계약을 블록체인에 저장할 경우 계약의 이행자체는 스마트 컨트랙트로 보장되지만, 실제 경기 결과는 블록체인 외부에서 발생한 사건이기 때문에, 결과를 잘못 입력할 경우, 계약이 올바르게 실행되지 않을 수 있다.It is very difficult to judge reliability when fetching events or data from an off-chain blockchain. For example, if a contract that allocates money according to the results of a sports event is stored on the blockchain, the performance of the contract is guaranteed as a smart contract, but the actual match result is an event that occurred outside the blockchain. However, the contract may not be executed correctly.

이 같은 문제를 해결하기 위해 신뢰할 수 있는 데이터를 전달하는 역할 또는 방법으로 오라클(oracle)있으나, 이러한 오라클을 이용하여 인터넷에 존재하는 수많은 데이터를 활용하기 위해서는 HTTPS를 지원하는 TLS를 블록체인과 연결하해야 한다. 이를 위해 신뢰 실행 환경 Trusted Execution Environments(TEE) 내부에 TLS를 설치하여 신뢰성을 제공하는 Town Cricr, Chainlink, 또는 TLS 프로토콜을 수정하여 인증을 제공하는 TLS-N과 같은 방법이 제시되었다.In order to solve this problem, there is an Oracle as a role or method of delivering reliable data, but in order to utilize numerous data existing on the Internet using such Oracle, TLS supporting HTTPS is connected to the blockchain. Should be. For this, methods such as Town Cricr, Chainlink, which provides reliability by installing TLS inside Trusted Execution Environments (TEE), or TLS-N, which provides authentication by modifying the TLS protocol, have been proposed.

그러나, 종래에 제안된 방법들은 외부 데이터를 가져오기 위한 인증은 제공하지만, 외부 데이터가 개인의 민감한 데이터일 경우 프라이버시 보호 문제가 발생할 수 있다.However, the conventionally proposed methods provide authentication for fetching external data, but when the external data is sensitive data of an individual, a privacy protection problem may occur.

이에 본 출원인은 이러한 문제점을 해소하기 위해, TLS를 지원하는 환경에서 프라이버시 보호를 위해 영지식 증명을 적용하는 시스템과 그 방법을 제안하고자 한다.In order to solve this problem, the present applicant intends to propose a system and method for applying zero-knowledge proof for privacy protection in an environment supporting TLS.

한국공개특허 제10-2019-0076535호(2019.07.02)Korean Patent Publication No. 10-2019-0076535 (2019.07.02)

본 발명의 목적은, 오라클을 통해 블록체인 외부에서 발생한 이벤트나 데이터 수신을 제공하는 TLS 환경에 영지식 증명을 적용하여 데이터의 출처에 대한 인증과 조건 condition에 대한 정확성을 제공함으로써, 사용자의 프라이버시를 보호하는데 있다.The object of the present invention is to provide user data privacy by applying the zero-knowledge proof to the TLS environment that provides events or data received from outside the blockchain through Oracle to provide authentication of data origin and accuracy of condition conditions. To protect.

이러한 기술적 과제를 달성하기 위한 본 발명의 블록체인 오라클에서의 프라이버시 보호를 위한 영지식 증명 시스템은, 데이터를 제공하는 TLS 서버; 블록체인에 외부 데이터를 요청하여 전달하는 기능을 수행하는 오라클 TLS 클라이언트; 제시한 증거 proof를 검증하는 기능을 수행하는 Verification Contract; 및 TLS 서버를 포함한 웹 사이트의 인증서 기능을 수행하는 TLS Certchain을 포함하되, TLS 서버 및 TLS 클라이언트는, 각각이 handshake 과정을 거쳐 세션을 맺고, TLS 통신 과정에서 Record 단위로 각자 기록하고, TLS 세션 종료시 Record Set을 서로 비교하되, 비교 결과 Record Set이 동일할 경우, 개인정보에 해당하는 Record에 대해서 random 'r'을 포함한

Figure 112019120948794-pat00001
을 생성하는 것을 특징으로 한다.The zero-knowledge proof system for privacy protection in the blockchain Oracle of the present invention for achieving such a technical problem includes: a TLS server providing data; An Oracle TLS client that performs a function of requesting and delivering external data to the blockchain; Verification Contract that performs the function of verifying the proof of evidence presented; And a TLS Certchain that performs the certificate function of the website including the TLS server, wherein the TLS server and the TLS client each enter a session through a handshake process and record each in Record units in the TLS communication process, and when the TLS session ends Compare the Record Set, but if the Record Set is the same as a result of comparison, the random 'r' is included for the record corresponding to personal information.
Figure 112019120948794-pat00001
It is characterized by generating.

바람직하게는, TLS 클라이언트는

Figure 112019120948794-pat00002
을 블록체인에 commit하고, TLS 서버는 블록체인에 상기 TLS 클라이언트(200)가 제시한
Figure 112019120948794-pat00003
이 확인되면 상기 Record Set에 sk로 서명하는 것을 특징으로 한다.Preferably, the TLS client
Figure 112019120948794-pat00002
Commit to the blockchain, and the TLS server is presented by the TLS client 200 on the blockchain.
Figure 112019120948794-pat00003
When it is confirmed, it is characterized in that the Record Set is signed with sk.

TLS 클라이언트는, TLS 서버로부터 Record Set에 sk로 서명한 값을 수신하여 색인한 Record R 및 Commitment C를 결합한 proof를 생성하는 것을 특징으로 한다.The TLS client is characterized by receiving a value signed with sk in the Record Set from the TLS server and generating proof combining Index R and Commitment C.

Verification Contract는, 사전에 공유된 Circuit Verify()와 vk를 이용하여 proof가 참인지 거짓인지 여부를 TLS Certchain을 통해 검증하되, 검증결과 proof가 참일 경우, TLS 클라이언트가 조건 condition을 만족하면서 상기 TLS 서버로부터 수신한 서명이 확인된 것으로 판단하는 것을 특징으로 한다.Verification Contract verifies whether proof is true or false through TLS Certchain using Circuit Verify () and vk shared in advance, but if proof of verification is true, the TLS client satisfies the condition and the TLS server Characterized in that it is determined that the signature received from the verification.

전술한 시스템을 기반으로 하는 블록체인 오라클에서의 프라이버시 보호를 위한 영지식 증명 방법은, TLS 클라이언트가 TLS 서버로부터 Record Set에 sk로 서명한 값을 수신하는 (a) 단계; TLS 클라이언트가 기 생성된 Record R 및 Commitment C을 색인하는 (b) 단계; TLS 클라이언트가 Auth_D, 와 Record R, Commitment C를 결합한 proof를 생성하는 (c) 단계; TLS 클라이언트가 생성된 proof와 Public input x를 Verification Contract로 전송하는 (d) 단계; Verification Contract가 사전에 공유된 Circuit Verify()와 vk를 이용하여 proof가 참인지 거짓인지 여부를 검증하는 (e) 단계; 및 (e) 단계의 검증결과, proof가 참일 경우 TLS 클라이언트가 조건 condition을 만족하면서 TLS 서버로부터 수신한 서명이 확인된 것으로 판단하는 (f) 단계를 포함하는 것을 특징으로 한다.A zero-knowledge proof method for privacy protection in a blockchain Oracle based on the above-described system comprises: (a) receiving a value signed by the TLS client as sk in the Record Set from the TLS server; (B) indexing the previously generated Record R and Commitment C by the TLS client; (C) the TLS client generates proof combining Auth_D, Record R, and Commitment C; (D) the TLS client transmits the generated proof and Public input x to the Verification Contract; A step (e) of verifying whether the proof is true or false by using the Verification Contract shared circuit Verify () and vk in advance; And (f) verifying that the signature received from the TLS server is verified while the TLS client satisfies the condition condition when the proof of step (e) is true.

바람직하게는, (a) 단계 이전에 TLS 서버 및 TLS 클라이언트 각각이 handshake 과정을 거쳐 세션을 맺는 (g) 단계; TLS 서버 및 TLS 클라이언트가 TLS 세션 종료시 서로의 Record Set을 비교하는 (h) 단계; (h) 단계의 비교결과 Record Set이 동일할 경우, TLS 클라이언트가 개인정보에 해당하는 Record에 대해서 random r을 포함하는

Figure 112019120948794-pat00004
을 생성하는 (i) 단계; TLS 클라이언트가
Figure 112019120948794-pat00005
을 블록체인에 commit하는 (j) 단계; 및 TLS 서버가 블록체인에 commit된
Figure 112019120948794-pat00006
이 확인되면, Record Set에 sk로 서명한 값을 TLS 클라이언트로 전송하는 (k) 단계를 포함하는 것을 특징으로 한다.Preferably, before step (a), each of the TLS server and the TLS client (g) establishing a session through a handshake process; (H) the TLS server and the TLS client compare each other's record sets at the end of the TLS session; (h) If the record set of the comparison result in step is the same, the TLS client includes random r for the record corresponding to personal information.
Figure 112019120948794-pat00004
(I) generating; TLS client
Figure 112019120948794-pat00005
(J) committing to the blockchain; And TLS server is committed to the blockchain
Figure 112019120948794-pat00006
If it is confirmed, characterized in that it comprises the step (k) of transmitting the value signed with sk to the Record Set to the TLS client.

상기와 같은 본 발명에 따르면, 오라클을 통해 블록체인 외부에서 발생한 이벤트나 데이터 수신을 제공하는 TLS 환경에 영지식 증명을 적용하여 데이터의 출처에 대한 인증과 조건 condition에 대한 정확성을 제공함으로써, 사용자의 프라이버시를 보호하는 효과가 있다.According to the present invention as described above, by applying zero-knowledge proof to the TLS environment that provides events or data received from outside the blockchain through Oracle, it provides authentication of the source of data and accuracy of the condition, thereby It has the effect of protecting privacy.

도 1은 본 발명의 일 실시예에 따른 블록체인 오라클에서의 프라이버시 보호를 위한 영지식 증명 시스템의 오라클 환경을 도시한 블록도.
도 2는 본 발명의 일 실시예에 따른 블록체인 오라클에서의 프라이버시 보호를 위한 영지식 증명 시스템의 세부 절차를 도시한 도면.
도 3은 본 발명의 일 실시예에 따른 블록체인 오라클에서의 프라이버시 보호를 위한 영지식 증명 방법의 인증된 데이터 요청 절차를 도시한 순서도.
도 4는 본 발명의 일 실시예에 따른 블록체인 오라클에서의 프라이버시 보호를 위한 영지식 증명 방법의 proof 생성 절차를 도시한 순서도.
도 5는 본 발명의 일 실시예에 따른 블록체인 오라클에서의 프라이버시 보호를 위한 영지식 증명 방법의 proof 검증 절차를 도시한 순서도.
1 is a block diagram showing an Oracle environment of a zero-knowledge proof system for privacy protection in a blockchain Oracle according to an embodiment of the present invention.
2 is a diagram illustrating detailed procedures of a zero-knowledge proof system for privacy protection in a blockchain Oracle according to an embodiment of the present invention.
Figure 3 is a flow chart showing the authenticated data request procedure of the zero-knowledge proof method for privacy protection in a blockchain Oracle according to an embodiment of the present invention.
4 is a flowchart illustrating a proof generation procedure of a zero-knowledge proof method for privacy protection in a blockchain Oracle according to an embodiment of the present invention.
5 is a flowchart illustrating a proof verification procedure of a zero-knowledge proof method for privacy protection in a blockchain Oracle according to an embodiment of the present invention.

본 발명의 구체적인 특징 및 이점들은 첨부도면에 의거한 다음의 상세한 설명으로 더욱 명백해질 것이다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 발명자가 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야 할 것이다. 또한, 본 발명에 관련된 공지 기능 및 그 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는, 그 구체적인 설명을 생략하였음에 유의해야 할 것이다.The specific features and advantages of the present invention will become more apparent from the following detailed description based on the accompanying drawings. Prior to this, the terms or words used in the specification and claims are based on the principle that the inventor can appropriately define the concept of terms in order to best describe his or her invention in the technical spirit of the present invention. It should be interpreted as a matching meaning and concept. In addition, it should be noted that when it is determined that the detailed description of the known functions and configurations related to the present invention may unnecessarily obscure the subject matter of the present invention, the detailed description is omitted.

본 발명의 일 실시예에 따른 블록체인 오라클에서의 프라이버시 보호를 위한 영지식 증명 시스템(S)은 도 1에 도시된 바와 같이, 데이터를 제공하는 TLS 서버(100), 블록체인에 외부 데이터를 요청하여 전달하는 기능을 수행하는 오라클 TLS 클라이언트(200), 제시한 증거 proof를 검증하는 기능을 수행하는 Verification Contract(300), 및 TLS 서버(100)를 포함한 웹 사이트의 인증서 기능을 수행하는 TLS Certchain(400)을 포함하여 구성됨에 따라 종래와 달리 누구나 오라클 기능 수행이 가능한 환경으로 구성된다.As shown in FIG. 1, the zero-knowledge proof system S for privacy protection in a blockchain Oracle according to an embodiment of the present invention requests external data from the TLS server 100 that provides data. Oracle TLS client (200) that performs the function to deliver, the Verification Contract (300) that performs the function of verifying the proof of evidence presented, and TLS Certchain (which performs the certificate function of the website including the TLS server (100)) 400), it is configured as an environment where anyone can perform Oracle functions.

또한, 본 발명의 일 실시예에 따른 영지식 증명은 크게 증거(proof)를 생성하는 Prove 과정과 이를 검증하는 Verify 과정으로 구성된다.In addition, the zero-knowledge proof according to an embodiment of the present invention is largely composed of a Prove process for generating proof and a Verify process for verifying it.

여기서, Prove는 proving key(pk)와 비밀값이 포함된 w, 및 public input x를 입력받아 계산된 proof를 생성하고 이를 Proof(pk, w, x)로 표현하며, Verify는 Verifying key(vk), proof 및 x를 입력으로 proof가 참인지 거짓인지 여부를 판별하며 이를 Verify(vk, proof, x)로 표현한다.Here, Prove receives the proving key (pk), w containing the secret value, and public input x, generates the calculated proof, and expresses it as Proof (pk, w, x), and Verify is the Verifying key (vk) , It is determined whether proof is true or false by inputting proof and x, and expressed as Verify (vk, proof, x).

이때, Prove를 실행하는 기능은 Prover가 수행하고, Verify를 실행하는 기능은 Verifier가 수행하며, 도 1에서는 TLS 클라이언트(200)가 Prover이고, Verification Contract(300)가 Verifier인 것으로 이해함이 바람직하다.At this time, the function to execute the probe is performed by the Prover, and the function to perform the verification is performed by the Verifier. In FIG. 1, it is preferable to understand that the TLS client 200 is the Prover and the Verification Contract 300 is the Verifier.

본 발명의 일 실시예에서는 오라클 환경에서 영지식 증명을 위해 아래의 두 가지 조건을 상정하여 영지식 증명을 통해 처리하였다.In one embodiment of the present invention, the following two conditions are assumed for proof of zero knowledge in the Oracle environment and processed through zero knowledge proof.

이러한 영지식 증명을 구성하기 위한 사전 작업으로 아래의 조건 1의 Auth_D 생성을 위한 절차와, 2.를 위한 proof 생성 절차를 제안하며 proof를 검증함으로써, 1, 2가 만족됨을 보장한다.As a preliminary task for constructing this zero-knowledge proof, we propose the procedure for Auth_D generation under condition 1 below, and the proof generation procedure for 2. Prove proof, and ensure that 1 and 2 are satisfied.

1. 데이터의 출처에 대한 인증 : TLS 서버(100)의 개인키 sk로 서명한 Auth_D로 증명1.Authentication of the origin of data: Proof with Auth_D signed with the private key sk of the TLS server 100

2. 조건 condition에 대한 정확성 : (예를 들어 balance $1,000 > conditionPrice $500)2. Accuracy for condition conditions: (eg balance $ 1,000> conditionPrice $ 500)

이하, 도 2를 참조하여 본 발명의 일 실시예에 따른 블록체인 오라클에서의 프라이버시 보호를 위한 영지식 증명 시스템(S)의 세부 절차에 대해 살피면 아래와 같다.Hereinafter, a detailed procedure of the zero-knowledge proof system S for privacy protection in the blockchain Oracle according to an embodiment of the present invention will be described with reference to FIG. 2 as follows.

먼저, 인증된 데이터(Auth D) 요청 및 응답 절차를 수행하는 절차는, TLS 서버(100) 및 TLS 클라이언트(200) 각각이 handshake 과정을 거쳐 세션을 맺고, TLS 통신 과정에서 Record 단위로 각자 기록한다.First, in the procedure of performing the authenticated data (Auth D) request and response procedure, each of the TLS server 100 and the TLS client 200 establishes a session through a handshake process, and records each in a record unit in the TLS communication process. .

또한, TLS 서버(100) 및 TLS 클라이언트(200)는 TLS 세션 종료시 Record Set을 서로 비교하되, 비교 결과 Record Set이 동일할 경우, TLS 클라이언트(200)가 개인정보에 해당하는

Figure 112020024581792-pat00007
($1,000)과 같은 Record R에 대해서 random 'r'을 포함한
Figure 112020024581792-pat00008
을 생성한다.In addition, the TLS server 100 and the TLS client 200 compare the Record Set with each other at the end of the TLS session, but when the result of the comparison is the same, the TLS client 200 corresponds to personal information.
Figure 112020024581792-pat00007
For Record R such as ($ 1,000), including random 'r'
Figure 112020024581792-pat00008
Produces

이때, COMM() 함수는 SHA-256과 같은 해시를 사용할 수 있고, r값은 TLS 클라이언트(200)가 생성하여 TLS 서버(100)와 공유한다.At this time, the COMM () function can use a hash such as SHA-256, and the r value is generated by the TLS client 200 and shared with the TLS server 100.

또한, TLS 클라이언트(200)는

Figure 112019120948794-pat00009
을 블록체인에 commit하고, TLS 서버(100)는 블록체인에 TLS 클라이언트(200)가 제시한
Figure 112019120948794-pat00010
이 확인되면 Record Set에 sk로 서명한 Auth_D = Sign(sk, Record Set)을 TLS 클라이언트(200)로 전송한다.Also, the TLS client 200
Figure 112019120948794-pat00009
Commit to the blockchain, and the TLS server 100 is presented by the TLS client 200 on the blockchain.
Figure 112019120948794-pat00010
When this is confirmed, Auth_D = Sign (sk, Record Set) signed with sk in the Record Set is transmitted to the TLS client 200.

한편, proof를 생성하는 Prover(pk, w, x) 절차는 다음과 같다.Meanwhile, the Prover (pk, w, x) procedure for generating proof is as follows.

TLS 클라이언트(200)는 TLS 서버(100)로부터 수신한 Auth_D와 Record R, Commitment C을 바탕으로 proof를 생성한다. 이때, TLS 클라이언트(200)는 는 비밀값이 포함된 w, 및 public input x를 입력받아 계산된 Proof(pk, w, x)를 생성하는데, pk와 vk의 Key Generation과 Proof() 및 Verify()를 수행하는 Circuit은 사전에 Setup 단계로 구성된 것으로 상정한다.The TLS client 200 generates proof based on Auth_D, Record R, and Commitment C received from the TLS server 100. At this time, the TLS client 200 receives the w containing the secret value, and the public input x to generate the calculated Proof (pk, w, x). Key Generation and Proof () and Verify () of pk and vk It is assumed that the circuit that performs) consists of the Setup phase in advance.

또한, witnetss w는 [개인정보에 해당하는 Record R, random r]로 구성되고, Public input x는 [서버의 개인키 sk로 서명한 데이터인 Auth_D, TLS 통신 과정을 기록한 데이터인 Record Set, condition, Certchain]으로 구성된다. 여기서, condition은 secret Record R에 대해 증명하기 위한 조건을 의미한다.In addition, witnetss w is composed of [Record R, random r corresponding to personal information], and Public input x is [Auth_D, which is data signed with the server's private key sk, Record Set, condition, which is the data that records the TLS communication process, Certchain]. Here, condition means a condition for proving for Secret Record R.

또한, Prove() 함수는 비대화형 영지식 증명(Non Interactive Zero Knowledge Proof)의 어떤 알고리즘도 사용할 수 있다.In addition, the Prove () function can use any algorithm of Non Interactive Zero Knowledge Proof.

최종적으로 Prover(pk, w, x)의 결과로 proof가 생성되고, TLS 클라이언트(200)가 생성된 proof와 Public input x를 Verification Contract(300)로 전송한다.Finally, proof is generated as a result of Prover (pk, w, x), and the generated proof and Public input x are sent to the Verification Contract 300 by the TLS client 200.

그리고, proof를 검증하는 Verify(vk, proof, x) 절차는 아래와 같다.And, the Verify (vk, proof, x) procedure to verify the proof is as follows.

Verification Contract(300)은 TLS 클라이언트(200)로부터 전달받은 proof와 Public input x에 대한 검증을 수행하는데, 사전에 공유된 Circuit Verify()와 vk를 이용하여 proof가 참인지 거짓인지 여부를 검증한다. 이때, Certchain의 조작을 방지하기 위해 Public input x의 Certchain은 블록체인에 저장된 TLS Certchain(400)을 이용한다.The Verification Contract 300 verifies the proof and Public input x received from the TLS client 200, and verifies whether the proof is true or false using the previously shared Circuit Verify () and vk. At this time, to prevent manipulation of the Certchain, the Certchain of Public input x uses the TLS Certchain 400 stored in the blockchain.

Verification Contract(300)의 proof 검증결과 참인 경우, TLS 클라이언트(200)가 제시한 조건 condition을 만족하면서 TLS 서버(100)로부터 수신한 서명이 확인된 것으로 판단하고, proof가 거짓일 경우 폐기한다.If the verification result of the verification of the Verification Contract 300 is true, it is determined that the signature received from the TLS server 100 is verified while satisfying the condition condition suggested by the TLS client 200, and if the proof is false, it is discarded.

한편, 본 발명의 일 실시예에 따른 블록체인 오라클에서의 프라이버시 보호를 위한 영지식 증명 방법은, 인증된 데이터(Auth_D) 요청, proof 생성, 및 proof 검증 절차로 이루어지는데, 도 3 내지 도 5를 참조하여 살피면 아래와 같다.Meanwhile, the zero-knowledge proof method for privacy protection in a blockchain Oracle according to an embodiment of the present invention consists of an authenticated data (Auth_D) request, proof generation, and proof verification procedures. See below for reference.

1. 인증된 데이터(Auth D) 요청 (도 3)1.Authenticated Data (Auth D) Request (FIG. 3)

먼저, TLS 서버(100) 및 TLS 클라이언트(200) 각각이 handshake 과정을 거쳐 세션을 맺는다(S302).First, each of the TLS server 100 and the TLS client 200 enters a session through a handshake process (S302).

이어서, TLS 서버(100) 및 TLS 클라이언트(200)가 TLS 세션 종료시 서로의 Record Set을 비교한다(S304).Subsequently, the TLS server 100 and the TLS client 200 compare each other's Record Set at the end of the TLS session (S304).

제S304 단계의 비교결과 Record Set이 동일할 경우, TLS 클라이언트(200)가 개인정보에 해당하는 Record R에 대해서 random r을 포함하는 값(

Figure 112020024581792-pat00011
)을 생성한다(S306).As a result of the comparison in step S304, when the record set is the same, the TLS client 200 includes a random r for the record R corresponding to the personal information (
Figure 112020024581792-pat00011
) Is generated (S306).

뒤이어, TLS 클라이언트(200)가 random r을 포함하는 값(

Figure 112019120948794-pat00012
)을 블록체인에 commit한다(S308).Subsequently, the value including the random r by the TLS client 200 (
Figure 112019120948794-pat00012
) To the blockchain (S308).

그리고, TLS 서버(100)가 블록체인에 commit된

Figure 112019120948794-pat00013
이 확인되면, Record Set에 sk로 서명한 Auth_D를 TLS 클라이언트(200)로 전송한다(S310).And, the TLS server 100 is committed to the blockchain
Figure 112019120948794-pat00013
When this is confirmed, the Auth_D signed with sk in the Record Set is transmitted to the TLS client 200 (S310).

2. proof 생성 (도 4)2. Proof creation (Figure 4)

먼저, TLS 클라이언트(200)가 TLS 서버(100)로부터 Record Set에 sk로 서명한 값(Auth_D)을 수신한다(S402).First, the TLS client 200 receives a value (Auth_D) signed with sk in the Record Set from the TLS server 100 (S402).

이어서, TLS 클라이언트(200)가 기 생성된 Record R 및 Commitment C을 색인한다(S404).Subsequently, the TLS client 200 indexes the previously generated Record R and Commitment C (S404).

뒤이어, TLS 클라이언트(200)가 Auth_D와 Record R, Commitment C를 결합한 proof를 생성한다(S406).Subsequently, the TLS client 200 generates proof combining Auth_D, Record R, and Commitment C (S406).

그리고, TLS 클라이언트(200)가 생성된 proof와 Public input x를 Verification Contract(300)로 전송한다(S408).Then, the TLS client 200 transmits the generated proof and Public input x to the Verification Contract (300) (S408).

2. proof 검증 (도 5)2. Proof verification (Fig. 5)

먼저, Verification Contract(300)가 TLS 클라이언트(200)로부터 proof를 수신한다(S502).First, the Verification Contract 300 receives proof from the TLS client 200 (S502).

이어서, Verification Contract(300)가 사전에 공유된 Circuit Verify()와 vk를 이용하여 proof가 참인지 거짓인지 여부를 검증한다(S504). 이때, proof 검증은 블록체인에 저장된 TLS Certchain(400)을 통해 수행된다.Subsequently, the Verification Contract 300 verifies whether the proof is true or false by using the Circuit Verify () and vk shared in advance (S504). At this time, proof verification is performed through the TLS Certchain 400 stored in the blockchain.

제S504단계의 판단결과, proof가 참일 경우, Verification Contract(300)는 TLS 클라이언트(200)가 조건 condition을 만족하면서 TLS 서버(100)로부터 수신한 서명이 확인된 것으로 판단한다(S506).As a result of the determination in step S504, when the proof is true, the Verification Contract 300 determines that the signature received from the TLS server 100 is verified while the TLS client 200 satisfies the condition (S506).

반면에, 제S504단계의 검증결과 proof가 거짓일 경우, Verification Contract(300)가 proof를 폐기한다(S508).On the other hand, if the proof of the verification in step S504 is false, the verification contract 300 discards the proof (S508).

이처럼, 전술한 바와 같은 본 발명의 일 실시예에 따른 블록체인 오라클에서의 프라이버시 보호를 위한 영지식 증명 방법에 의하면, 오라클을 통해 블록체인 외부에서 발생한 이벤트나 데이터 수신을 제공하는 TLS 환경에 영지식 증명을 적용하여 데이터의 출처에 대한 인증과 조건 condition에 대한 정확성을 제공함으로써, 사용자의 프라이버시를 보호할 수 있다.As described above, according to the zero-knowledge proof method for privacy protection in the blockchain Oracle according to an embodiment of the present invention as described above, zero knowledge in the TLS environment providing events or data received from outside the blockchain through Oracle Proof can be applied to protect the user's privacy by providing authentication of the source of data and accuracy of the condition.

이상으로 본 발명의 기술적 사상을 예시하기 위한 바람직한 실시예와 관련하여 설명하고 도시하였지만, 본 발명은 이와 같이 도시되고 설명된 그대로의 구성 및 작용에만 국한되는 것이 아니며, 기술적 사상의 범주를 일탈함이 없이 본 발명에 대해 다수의 변경 및 수정이 가능함을 당업자들은 잘 이해할 수 있을 것이다. 따라서 그러한 모든 적절한 변경 및 수정과 균등 물들도 본 발명의 범위에 속하는 것으로 간주되어야 할 것이다.As described above, the present invention has been described and illustrated in connection with a preferred embodiment for illustrating the technical idea of the present invention, but the present invention is not limited to the configuration and operation as illustrated and described, and deviates from the scope of the technical idea. It will be understood by those skilled in the art that many changes and modifications to the present invention are possible without. Accordingly, all such suitable modifications and modifications and equivalents should be considered to be within the scope of the present invention.

S: 블록체인 오라클에서의 프라이버시 보호를 위한 영지식 증명 시스템
100: TLS 서버
200: TLS 클라이언트
300: Verification Contract
400: TLS Certchain
S: Zero-knowledge proof system for privacy protection in blockchain Oracle
100: TLS server
200: TLS client
300: Verification Contract
400: TLS Certchain

Claims (6)

데이터를 제공하는 TLS 서버;
블록체인에 외부 데이터를 요청하여 전달하는 기능을 수행하는 오라클 TLS 클라이언트;
제시한 증거 proof를 검증하는 기능을 수행하는 Verification Contract; 및
상기 TLS 서버를 포함한 웹 사이트의 인증서 기능을 수행하는 TLS Certchain을 포함하되,
상기 TLS 서버 및 TLS 클라이언트는,
각각이 handshake 과정을 거쳐 세션을 맺고, TLS 통신 과정에서 Record 단위로 각자 기록하고, TLS 세션 종료시 Record Set을 서로 비교하되, 비교 결과 Record Set이 동일할 경우, TLS클라이언트가 개인정보에 해당하는 Record R에 대해서 random 'r'을 포함한 Cn을 생성하고,
상기 TLS 클라이언트는,
상기 TLS 서버로부터 수신한 Record Set에 sk로 서명한 값, Record R 및
Figure 112020024581792-pat00026
을 이용한 proof를 생성하며,
상기 Verification Contract는,
사전에 공유된 Circuit Verify()와 vk를 이용하여 proof가 참인지 거짓인지 여부를 검증하되,
검증결과 proof가 참일 경우, 상기 TLS 클라이언트가 Record R을 증명하기 위한 조건 Condition을 만족하면서 상기 TLS 서버로부터 수신한 서명이 확인된 것으로 판단
하는 것을 특징으로 하는 블록체인 오라클에서의 프라이버시 보호를 위한 영지식 증명 시스템.
A TLS server providing data;
An Oracle TLS client that performs a function of requesting and delivering external data to the blockchain;
Verification Contract that performs the function of verifying the proof of evidence presented; And
Includes a TLS Certchain that performs the certificate function of the website including the TLS server,
The TLS server and TLS client,
Each concludes a session through a handshake process, records each in a record unit in the TLS communication process, compares the Record Set at the end of the TLS session, and when the result of the comparison is the same, the TLS client records R corresponding to personal information. Generates Cn containing random 'r' for,
The TLS client,
The value signed by sk in the Record Set received from the TLS server, Record R and
Figure 112020024581792-pat00026
Produce proof using
The Verification Contract,
Verify whether proof is true or false using Circuit Verify () and vk shared in advance,
If the proof result is true, it is determined that the signature received from the TLS server is verified while the TLS client satisfies the condition condition for proving Record R.
A zero-knowledge proof system for privacy protection in a blockchain Oracle, characterized in that.
제1항에 있어서,
상기 TLS 클라이언트는
Figure 112019120948794-pat00015
을 블록체인에 commit하고,
상기 TLS 서버는 블록체인에 상기 TLS 클라이언트(200)가 제시한
Figure 112019120948794-pat00016
이 확인되면 상기 Record Set에 sk로 서명
하는 것을 특징으로 하는 블록체인 오라클에서의 프라이버시 보호를 위한 영지식 증명 시스템.
According to claim 1,
The TLS client
Figure 112019120948794-pat00015
Commit to the blockchain,
The TLS server is proposed by the TLS client 200 on the blockchain.
Figure 112019120948794-pat00016
When confirmed, sign the above Record Set with sk
A zero-knowledge proof system for privacy protection in a blockchain Oracle, characterized in that.
삭제delete 삭제delete (a) TLS 서버 및 TLS 클라이언트 각각이 handshake 과정을 거쳐 세션을 맺는 단계;
(b) TLS 서버 및 TLS 클라이언트가 TLS 세션 종료시 서로의 Record Set을 비교하는 단계;
(c) 상기 (b) 단계의 비교결과 Record Set이 동일할 경우, TLS 클라이언트가 개인정보에 해당하는 Record R에 대해서 random r을 포함하는
Figure 112020024581792-pat00027
을 생성하는 단계;
(d) TLS 클라이언트가
Figure 112020024581792-pat00028
을 블록체인에 commit하는 단계;
(e) TLS 서버가 블록체인에 commit된
Figure 112020024581792-pat00029
이 확인되면, Record Set에 sk로 서명한 값을 TLS 클라이언트로 전송하는 단계;
(f) TLS 클라이언트가 TLS 서버로부터 수신한 Record Set에 sk로 서명한 값, Record R 및
Figure 112020024581792-pat00030
을 이용한 proof를 생성하는 단계;
(g) Verification Contract가 사전에 공유된 Circuit Verify()와 vk를 이용하여 proof가 참인지 거짓인지 여부를 검증하는 단계; 및
(h) 상기 (g) 단계의 검증결과, proof가 참일 경우 TLS 클라이언트가 Record R을 증명하기 위한 조건 Condition을 만족하면서 TLS 서버로부터 수신한 서명이 확인된 것으로 판단하는 단계를
포함하는 것을 특징으로 하는 블록체인 오라클에서의 프라이버시 보호를 위한 영지식 증명 방법.
(a) each of the TLS server and the TLS client establishes a session through a handshake process;
(b) the TLS server and the TLS client comparing each other's Record Set at the end of the TLS session;
(c) When the result of the comparison in step (b) is the same, the TLS client includes random r for Record R corresponding to personal information.
Figure 112020024581792-pat00027
Generating a;
(d) TLS client
Figure 112020024581792-pat00028
Committing to the blockchain;
(e) TLS server is committed to the blockchain
Figure 112020024581792-pat00029
If it is confirmed, transmitting the value signed with sk to the Record Set to the TLS client;
(f) The value signed by sk in the Record Set received from the TLS server by the TLS client, Record R and
Figure 112020024581792-pat00030
Generating a proof using;
(g) Verification Contract verifying whether the proof is true or false using Circuit Verify () and vk shared in advance; And
(h) As a result of the verification in step (g), if the proof is true, determining that the signature received from the TLS server is verified while the TLS client satisfies the condition condition for proving Record R.
A zero-knowledge proof method for privacy protection in a blockchain Oracle characterized by including.
삭제delete
KR1020190152094A 2019-11-25 2019-11-25 System and Method of Zero-Knowledge Proof for Privacy Preserving Oracle on Blockchain KR102103179B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190152094A KR102103179B1 (en) 2019-11-25 2019-11-25 System and Method of Zero-Knowledge Proof for Privacy Preserving Oracle on Blockchain

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190152094A KR102103179B1 (en) 2019-11-25 2019-11-25 System and Method of Zero-Knowledge Proof for Privacy Preserving Oracle on Blockchain

Publications (1)

Publication Number Publication Date
KR102103179B1 true KR102103179B1 (en) 2020-04-22

Family

ID=70472970

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190152094A KR102103179B1 (en) 2019-11-25 2019-11-25 System and Method of Zero-Knowledge Proof for Privacy Preserving Oracle on Blockchain

Country Status (1)

Country Link
KR (1) KR102103179B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111953648A (en) * 2020-06-22 2020-11-17 北京欧链科技有限公司 Data processing method and device based on block chain prediction machine and electronic equipment
CN112765268A (en) * 2020-12-31 2021-05-07 杭州趣链科技有限公司 Block chain-based data privacy protection method, device and equipment
KR20220101469A (en) * 2021-01-11 2022-07-19 충남대학교산학협력단 Zero-knowledge proof system and proof method that can be verified through dynamic calculation

Citations (2)

* Cited by examiner, † Cited by third party
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 (en) 2017-12-22 2019-07-02 충남대학교산학협력단 System and method for anonymous votes using block-chain

Patent Citations (2)

* Cited by examiner, † Cited by third party
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 (en) 2017-12-22 2019-07-02 충남대학교산학협력단 System and method for anonymous votes using block-chain

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111953648A (en) * 2020-06-22 2020-11-17 北京欧链科技有限公司 Data processing method and device based on block chain prediction machine and electronic equipment
CN112765268A (en) * 2020-12-31 2021-05-07 杭州趣链科技有限公司 Block chain-based data privacy protection method, device and equipment
CN112765268B (en) * 2020-12-31 2022-11-04 杭州趣链科技有限公司 Data privacy protection method, device and equipment based on block chain
KR20220101469A (en) * 2021-01-11 2022-07-19 충남대학교산학협력단 Zero-knowledge proof system and proof method that can be verified through dynamic calculation
KR102594655B1 (en) 2021-01-11 2023-10-27 충남대학교 산학협력단 Zero-knowledge proof system and proof method that can be verified through dynamic calculation

Similar Documents

Publication Publication Date Title
US11799656B2 (en) Security authentication method and device
KR101903620B1 (en) Method for authorizing peer in blockchain based distributed network, and server using the same
US11368445B2 (en) Local encryption for single sign-on
KR100823738B1 (en) Method for integrity attestation of a computing platform hiding its configuration information
US10523659B2 (en) Server authentication using multiple authentication chains
US9021552B2 (en) User authentication for intermediate representational state transfer (REST) client via certificate authority
KR102103179B1 (en) System and Method of Zero-Knowledge Proof for Privacy Preserving Oracle on Blockchain
JP2017530586A5 (en)
US20150172064A1 (en) Method and relay device for cryptographic communication
KR102137122B1 (en) Security check method, device, terminal and server
KR102284396B1 (en) Method for generating pki keys based on bioinformation on blockchain network and device for using them
CN111435913A (en) Identity authentication method and device for terminal of Internet of things and storage medium
CN113472790B (en) Information transmission method, client and server based on HTTPS protocol
TW201801491A (en) Public key certificate method can generate updated key pair matching the information security requirements without updating the digital certificate
KR20120091618A (en) Digital signing system and method using chained hash
CN110808953A (en) Cloud data verifiable backup method with position perception
CN116170144B (en) Smart power grid anonymous authentication method, electronic equipment and storage medium
CN117336092A (en) Client login method and device, electronic equipment and storage medium
CN111865761A (en) Social chat information evidence storing method based on block chain intelligent contracts
CN115296807B (en) Key generation method, device and equipment for preventing industrial control network viruses
US9882891B2 (en) Identity verification
CN114944921A (en) Login authentication method and device, electronic equipment and storage medium
TW201737152A (en) Digital signature verification system validating signature between customer C1 and customer C2
CN113381853A (en) Method and device for generating random password and authenticating client
TWI576779B (en) Method and Method of Payment Authentication System for Internet of Things

Legal Events

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