KR102074381B1 - Method, device and recording medium for processing confidential transaction based on blockchain - Google Patents

Method, device and recording medium for processing confidential transaction based on blockchain Download PDF

Info

Publication number
KR102074381B1
KR102074381B1 KR1020190043604A KR20190043604A KR102074381B1 KR 102074381 B1 KR102074381 B1 KR 102074381B1 KR 1020190043604 A KR1020190043604 A KR 1020190043604A KR 20190043604 A KR20190043604 A KR 20190043604A KR 102074381 B1 KR102074381 B1 KR 102074381B1
Authority
KR
South Korea
Prior art keywords
value
transaction
blockchain
node
smart contract
Prior art date
Application number
KR1020190043604A
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 KR1020190043604A priority Critical patent/KR102074381B1/en
Application granted granted Critical
Publication of KR102074381B1 publication Critical patent/KR102074381B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0607Regulated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators

Abstract

According to one embodiment of the present disclosure, a method for performing anonymous transactions on general purpose blockchain comprises the steps of: checking whether a value encrypted and stored in each note is included within a preset valid range when a transaction is requested on blockchain; checking whether a sum of values of input notes and a sum of values of output notes are the same while the value is encrypted; and deleting the input notes stored in a note registry and newly storing the output notes when the value is identified.

Description

블록체인 기반의 익명 거래 수행 방법, 장치 및 기록 매체{METHOD, DEVICE AND RECORDING MEDIUM FOR PROCESSING CONFIDENTIAL TRANSACTION BASED ON BLOCKCHAIN}METHOD, DEVICE AND RECORDING MEDIUM FOR PROCESSING CONFIDENTIAL TRANSACTION BASED ON BLOCKCHAIN}

본 개시는 블록체인 기반의 익명 거래 수행 방법, 장치 및 기록 매체에 관한 것으로, 더욱 상세하게는, 스마트 컨트랙트 및 영지식 증명을 이용하여 범용 목적의 블록체인 상에서 익명 거래를 수행하는 방법, 장치 및 기록 매체에 관한 것이다.The present disclosure relates to a blockchain based anonymous transaction method, apparatus and recording medium, and more particularly, to a method, apparatus and record for performing anonymous transaction on a general purpose blockchain using smart contract and zero-knowledge proof. It is about the medium.

최근, 블록체인 기술에 관심이 집중되면서, 블록체인이 다양한 분야에 활용되고 있다. 이러한 블록체인은 퍼블릭 블록체인(Public Blockchain)과 프라이빗 블록체인(Private Blockchain)으로 구분될 수 있다.Recently, as the interest in blockchain technology has been concentrated, blockchain has been utilized in various fields. Such blockchains can be divided into public blockchains and private blockchains.

퍼블릭 블록체인은 불특정 다수가 네트워크에 참여하는 것으로, 거래를 하는 모든 사람이 기록을 가지고 있어 신뢰도가 높다는 장점이 있지만 최초 규칙을 바꾸기 어렵고 속도가 느리다는 단점이 있다.The public blockchain is an unspecified number of people participating in the network, which has the advantage of high reliability because everyone who trades has a record, but has the disadvantage of changing the initial rules and being slow.

프라이빗 블록체인은 참여자가 제한된 블록체인으로, 퍼블릭에 비해 시간이 빠르고 효율도 높다는 장점이 있지만 접근성이 떨어지는 단점이 있다.Private blockchain is a blockchain with limited participants, which has the advantage of faster time and higher efficiency than public, but has a disadvantage of poor accessibility.

이에 따라, 퍼블릭 블록체인과 프라이빗 블록체인의 문제점을 해결하고자 하는 요구가 증대되고 있다.Accordingly, there is an increasing demand for solving the problems of the public blockchain and the private blockchain.

한편, 블록체인 기반으로 금융거래, 부동산 계약, 공증 등 다양한 형태의 계약을 체결하고 이행하기 위해, 스마트 컨트랙트(Smart Contract) 기능이 등장하였다. 이는, 계약 조건을 블록체인에 기록하고 조건이 충족됐을 경우 자동으로 계약이 실행되게 하는 프로그램으로, 개발자가 직접 계약 조건과 내용을 코딩할 수 있기 때문에, 원칙적으로 인간이 상상할 수 있는 모든 종류의 계약을 구현할 수 있다. 예를 들면, 이더리움 플랫폼을 이용해 다양한 종류의 계약이 구현될 수 있다.Meanwhile, the smart contract function has emerged to conclude and implement various types of contracts such as financial transactions, real estate contracts, and notaries on a blockchain basis. This is a program that records the contract terms on the blockchain and automatically executes the contract when the terms are met. In principle, developers can code the contract terms and contents themselves, so in principle, any kind of contract that humans can imagine. Can be implemented. For example, various kinds of contracts can be implemented using the Ethereum platform.

하지만, 스마트 컨트랙트를 이용할 시 정보가 모두 공개되어버리는 문제가 있으며, 거래 시 사용자가 원하는 항목만 비공개로 하여 거래를 수행하고자 하는 요구가 증대되고 있다.However, there is a problem that all the information is disclosed when using the smart contract, and the demand to perform a transaction by making only a desired item private during the transaction is increasing.

본 개시는 전술한 종래기술의 문제점을 해결하기 위한 것으로, 스마트 컨트랙트 및 영지식 증명을 이용하여 범용 목적의 블록체인 상에서 익명 거래를 수행하는 방법, 장치 및 기록 매체를 제공하는 것을 목적으로 한다.The present disclosure is to solve the above-mentioned problems of the prior art, and to provide a method, an apparatus and a recording medium for performing anonymous transactions on a general-purpose blockchain using smart contract and zero-knowledge proof.

본 개시의 목적은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 명확하게 이해될 수 있을 것이다.The purpose of the present disclosure is not limited to the above-mentioned objects, and other objects not mentioned will be clearly understood from the following description.

본 개시의 일 실시 예에 따르면, 범용 목적의 블록체인 상에서 익명 거래를 수행하는 방법에 있어서, 블록체인 상에서 거래가 요청되면, 각 노트(note)에 암호화하여 저장된 가치(value)가 미리 설정된 유효 범위 내에 포함되는지 여부를 확인하는 단계; 상기 가치가 암호화된 상태에서 입력 노트의 가치 합과 출력 노트의 가치 합이 동일한지 여부를 확인하는 단계; 및 상기 가치가 확인되면, 노트 등록소에 저장된 상기 입력 노트를 삭제하고, 상기 출력 노트를 새로 저장하는 단계;를 포함하는, 블록체인 기반의 익명 거래 수행 방법이 제공된다.According to an embodiment of the present disclosure, in the method for performing anonymous transactions on a blockchain for general purpose, when a transaction is requested on the blockchain, a value stored by encrypting each note within a preset valid range is set. Checking whether it is included; Checking whether the sum of the values of the input notes and the sum of the values of the output notes are equal when the value is encrypted; And if the value is confirmed, deleting the input note stored in the note register and newly storing the output note. A blockchain-based anonymous transaction performing method is provided.

상기 가치의 유효 범위 확인 단계는, 상기 노트의 가치, 암호화하는데 사용될 임의값(viewing key) 및 서명 데이터베이스에 등록된 가치에 대응되는 서명(reference common string)을 이용하여 생성된 암호 정보(commitment)를 기초로, 상기 가치가 공개되지 않은 상태에서 상기 가치가 유효 범위 내에 포함되는지 여부를 확인하는 단계;를 포함할 수 있다.The validity verification step of the value may include encryption information generated using a reference common string corresponding to a value of the note, a viewing key to be used for encryption, and a value registered in a signature database. On the basis, the step of checking whether the value is included in the valid range in the state where the value is not disclosed.

상기 가치 합의 동일 여부 확인 단계는, 상기 가치의 개인 정보(witness)가 공개되지 않은 상태에서, 영지식 증명(Zero-Knowledge Proof) 프로토콜을 통해 상기 개인 정보에 대한 증명이 승인되면, 상기 가치가 공개되지 않은 상태에서도, 상기 가치 합의 동일 여부에 대한 확인 결과가 정상이라고 판단하는 단계;를 포함할 수 있다.In the step of checking whether the value agreement is the same, if the proof of the personal information is approved through a Zero-Knowledge Proof protocol without the witness of the value being disclosed, the value is disclosed. Even if it is not, the step of determining whether the value agreement is the same or not, the normal result; may include.

상기 개인 정보에 대한 증명의 승인 여부는, 증명자 노드로부터 검증자 노드로 메시지 a가 전송되는 단계; 상기 검증자 노드로부터 상기 증명자 노드로 임의의 도전값 c가 전송되는 단계; 및 상기 증명자 노드로부터 상기 검증자 노드로 상기 도전값 c에 대한 응답 z가 전송되면, 상기 증명자 노드와 상기 검증자 노드 사이의 공통된 입력값 x, 상기 메시지 a, 상기 도전값 c, 상기 응답 z를 기초로, 상기 증명자 노드에서 공개되지 않은 상기 개인 정보에 대한 증명의 승인 여부를 결정하는 단계;를 포함할 수 있다.Whether or not the approval of the personal information is approved, transmitting a message a from the prover node to the verifier node; Transmitting an arbitrary challenge value c from the verifier node to the prover node; And when a response z for the challenge value c is transmitted from the prover node to the verifier node, a common input value x between the prover node and the verifier node, the message a, the challenge value c, the response based on z, determining whether to approve the proof of the personal information that is not disclosed at the prover node.

상기 도전값은, 암호학적 해시 함수(Cryptographic Hash Function)를 이용하여 산출될 수 있다.The challenge value may be calculated using a cryptographic hash function.

상기 가치 합의 동일 여부 확인 단계는, 상기 가치가 공개되지 않은 상태에서, 타원 곡선 암호(Elliptic Curve Cryptosystem) 방식을 통해, 암호화된 상태의 상기 가치에 대한 더하기 연산을 수행하는 단계;를 포함할 수 있다.The step of checking whether the value agreement is the same may include performing an addition operation on the value of the encrypted state through an elliptic curve cryptosystem in the state where the value is not disclosed. .

본 개시의 다른 실시 예에 따르면, 범용 목적의 블록체인 상에서 익명 거래를 수행하는 장치에 있어서, 블록체인 상에서 정보를 공유하는 복수의 노드를 포함하되, 상기 복수의 노드 중 어느 하나에서 거래가 요청되면, 상기 복수의 노드 중 적어도 하나는, 각 노트에 암호화하여 저장된 가치가 미리 설정된 유효 범위 내에 포함되는지 여부를 확인하고, 상기 가치가 암호화된 상태에서 입력 노트의 가치 합과 출력 노트의 가치 합이 동일한지 여부를 확인하고, 상기 가치가 확인되면, 노트 등록소에 저장된 상기 입력 노트를 삭제하고, 상기 출력 노트를 새로 저장하는, 블록체인 기반의 익명 거래 수행 장치가 제공된다.According to another embodiment of the present disclosure, in the apparatus for performing anonymous transactions on a blockchain for general purpose, comprising a plurality of nodes sharing information on the blockchain, if a transaction is requested from any of the plurality of nodes, At least one of the plurality of nodes checks whether or not the stored value encrypted in each note is within a preset valid range, and if the sum of values of the input notes and the sum of the values of the output notes are the same while the value is encrypted. A blockchain-based anonymous transaction performing apparatus is provided which checks whether or not and if the value is confirmed, deletes the input note stored in the note register and newly stores the output note.

상기 복수의 노드 중 적어도 하나는, 상기 노트의 가치, 암호화하는데 사용될 임의값 및 서명 데이터베이스에 등록된 가치에 대응되는 서명을 이용하여 생성된 암호 정보를 기초로, 상기 가치가 공개되지 않은 상태에서 상기 가치가 유효 범위 내에 포함되는지 여부를 확인할 수 있다.At least one of the plurality of nodes is configured to display the value in the undisclosed state based on cryptographic information generated using a signature corresponding to a value of the note, an arbitrary value to be used for encryption, and a value registered in a signature database. You can check whether the value falls within the valid range.

상기 복수의 노드 중 적어도 하나는, 상기 가치의 개인 정보가 공개되지 않은 상태에서, 영지식 증명 프로토콜을 통해 상기 개인 정보에 대한 증명이 승인되면, 상기 가치가 공개되지 않은 상태에서도, 상기 가치 합의 동일 여부에 대한 확인 결과가 정상이라고 판단할 수 있다.At least one of the plurality of nodes is equal to the value agreement, even if the personal information of the value is not disclosed and the proof of the personal information is approved through a zero-knowledge proof protocol, even if the value is not disclosed. It can be determined that the result of checking whether or not is normal.

상기 복수의 노드 중 어느 하나인 증명자 노드는 상기 복수의 노드 중 다른 하나인 검증자 노드로 메시지 a를 전송하고, 상기 검증자 노드는 상기 증명자 노드로 임의의 도전값 c를 전송하고, 상기 증명자 노드는 상기 검증자 노드로 상기 도전값 c에 대한 응답 z를 전송하고, 상기 검증자 노드는 상기 증명자 노드와 상기 검증자 노드 사이의 공통된 입력값 x, 상기 메시지 a, 상기 도전값 c, 상기 응답 z를 기초로, 상기 증명자 노드에서 공개되지 않은 상기 개인 정보에 대한 증명의 승인 여부를 결정할 수 있다.The prover node, which is one of the plurality of nodes, sends a message a to the verifier node, which is the other one of the plurality of nodes, the verifier node sends a random challenge value c to the prover node, and A prover node sends a response z to the challenge value c to the verifier node, the verifier node having a common input value x between the prover node and the verifier node, the message a, the challenge value c. On the basis of the response z, it is possible to determine whether to approve the proof for the personal information that is not disclosed in the prover node.

상기 도전값은, 암호학적 해시 함수를 이용하여 산출될 수 있다.The challenge value may be calculated using a cryptographic hash function.

상기 복수의 노드 중 적어도 하나는, 상기 가치가 공개되지 않은 상태에서, 타원 곡선 암호 방식을 통해, 암호화된 상태의 상기 가치에 대한 더하기 연산을 수행할 수 있다.At least one of the plurality of nodes may perform an addition operation on the value of an encrypted state by using an elliptic curve cryptography method while the value is not disclosed.

본 개시의 또 다른 실시 예에 따르면, 범용 목적의 블록체인 상에서 익명 거래를 수행하는 방법에 있어서, 거래에 이용되는 복수개의 항목 중 암호화가 요구되는 일부 항목을 사용자의 입력에 따라 결정하는 단계; 타원 곡선 암호 방식을 이용하여 상기 일부 항목이 암호화되도록 스마트 컨트랙트(Smart Contract)를 구성하는 단계; 상기 일부 항목에 대해서는 영지식 증명을 통해 증명을 수행하여 상기 스마트 컨트랙트를 이용한 제 1 거래를 수행하는 단계; 및 상기 제 1 거래의 수행 결과 획득된 복수의 결과값을 저장하는 단계;를 포함하는, 블록체인 기반의 익명 거래 수행 방법이 제공된다.According to another embodiment of the present disclosure, a method of performing an anonymous transaction on a blockchain for general purpose, comprising: determining, according to a user's input, some items that require encryption among a plurality of items used for a transaction; Configuring a smart contract to encrypt the partial items using an elliptic curve cryptography; Performing a first transaction using the smart contract by performing proof through zero-knowledge proof for the some items; And storing a plurality of result values obtained as a result of the performance of the first transaction.

상기 블록체인 기반의 익명 거래 수행 방법은, 상기 복수의 결과값에 대해서 연산을 수행하여 갱신된 결과값을 획득하는 단계; 및 상기 갱신된 결과값을 이용하여 상기 스마트 컨트랙트를 이용한 제 2 거래를 수행하는 단계;를 더 포함할 수 있다.The blockchain based anonymous transaction performing method may include: performing an operation on the plurality of result values to obtain an updated result value; And performing a second transaction using the smart contract by using the updated result value.

본 개시의 또 다른 실시 예에 따르면, 범용 목적의 블록체인 상에서 익명 거래를 수행하는 장치에 있어서, 사용자 입력을 수신하는 리시버; 및 거래에 이용되는 복수개의 항목 중 암호화가 요구되는 일부 항목을 상기 사용자의 입력에 따라 결정하고, 타원 곡선 암호 방식을 이용하여 상기 일부 항목이 암호화되도록 스마트 컨트랙트를 구성하고, 상기 일부 항목에 대해서는 영지식 증명을 통해 증명을 수행하여 상기 스마트 컨트랙트를 이용한 제 1 거래를 수행하고, 상기 제 1 거래의 수행 결과 획득된 복수의 결과값을 저장하는 프로세서를 포함하는, 블록체인 기반의 익명 거래 수행 장치가 제공된다.According to another embodiment of the present disclosure, an apparatus for performing an anonymous transaction on a blockchain for general purpose, comprising: a receiver for receiving a user input; And determining some items requiring encryption among the plurality of items used for the transaction according to the user's input, and configuring a smart contract to encrypt the some items by using an elliptic curve cryptography method. The blockchain-based anonymous transaction performing apparatus includes a processor configured to perform a first transaction using the smart contract by performing proof through knowledge proof and to store a plurality of result values obtained as a result of the first transaction. Is provided.

상기 프로세서는 상기 복수의 결과값에 대해서 연산을 수행하여 갱신된 결과값을 획득하고, 상기 갱신된 결과값을 이용하여 상기 스마트 컨트랙트를 이용한 제 2 거래를 수행할 수 있다.The processor may perform an operation on the plurality of result values to obtain an updated result value, and perform a second transaction using the smart contract using the updated result value.

본 개시의 또 다른 실시 예에 따르면, 블록체인 기반의 익명 거래 수행 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 비일시적 기록 매체는 상기 각 단계 중 어느 한 항에 따른 방법을 실행할 수 있다.According to another embodiment of the present disclosure, a computer-readable non-transitory recording medium having a program recorded thereon for executing a blockchain based anonymous transaction method may execute the method according to any one of the above steps.

본 개시의 일 실시 예에 따르면, 퍼블릭 블록체인 및 영지식 증명을 이용하여 프라이빗 블록체인을 실질적으로 구현할 수 있으므로, 누구나 프라이빗 블록체인을 범용적으로 이용 가능하도록 함으로써, 부동산, 금융, 기타 모든 영역에서 용이하게 이용할 수 있는 효과가 있다.According to one embodiment of the present disclosure, since the private blockchain can be substantially implemented using the public blockchain and zero-knowledge proof, anyone can make the private blockchain universally available, thereby realizing real estate, finance, and all other areas. There is an effect that can be easily used.

또한, 본 개시의 일 실시 예에 따르면, 스마트 컨트랙트 및 영지식 증명을 이용함으로써, 범용적으로 이용할 수 있는 블록체인을 통해 일반 거래가 가능하다는 효과가 있다.In addition, according to an embodiment of the present disclosure, by using the smart contract and zero-knowledge proof, there is an effect that general trading is possible through a blockchain that can be used universally.

또한, 본 개시의 일 실시 예에 따르면, 스마트 컨트랙트에서 일부 암호화되는 항목을 암호화할 때 타원 곡선 암호 방식을 이용하여 결과값에 대한 연산을 수행하여 추가적인 거래를 수행할 수 있다.In addition, according to an embodiment of the present disclosure, when encrypting a part of an encrypted item in a smart contract, an additional transaction may be performed by performing an operation on a result value using an elliptic curve cryptography.

또한, 본 개시의 일 실시 예에 따르면, 블록체인에 올라가는 데이터를 장부로 한정하지 않고 스마트 컨트랙트로 넓히고, 일부를 암호화하고, 암호화한 것을 영지식 증명을 통해 증명하여 거래가 이루어질 수 있도록 하여, 스마트 컨트랙트를 만드는 사람이 원하는 부분을 선택적으로 선택해서 암호화하도록 함으로써, 범용적으로 이용하는 것이 가능하며, 이더리움 인프라를 통해 이를 쉽게 이용할 수 있다.In addition, according to an embodiment of the present disclosure, the data is not limited to the book, but the data is not limited to the book, widen the smart contract, encrypts a portion, and proves that the encrypted through the zero-knowledge proof so that transactions can be made, smart contract By selectively selecting and encrypting the desired parts, the creators of the software can use it universally and can easily use it through the Ethereum infrastructure.

본 개시의 효과는 상기한 효과로 한정되는 것은 아니며, 본 개시의 상세한 설명 또는 특허청구범위에 기재된 발명의 구성으로부터 추론 가능한 모든 효과를 포함하는 것으로 이해되어야 한다.The effects of the present disclosure are not limited to the above-described effects, but should be understood to include all the effects deduced from the configurations of the invention described in the detailed description or claims of the present disclosure.

도 1은 본 개시의 일 실시 예에 따른 블록체인 기반의 익명 거래 수행 장치를 도시한 도면이다.
도 2는 본 개시의 일 실시 예에 따른 범용 목적의 블록체인 상에서 익명 거래를 수행하는 과정을 도시한 도면이다.
도 3은 본 개시의 일 실시 예에 따른 입력 노트의 가치 합과 출력 노트의 가치 합이 동일한지 여부를 확인하는 과정을 도시한 도면이다.
도 4는 본 개시의 일 실시 예에 따른 타원곡선 암호를 도시한 도면이다.
도 5는 본 개시의 다른 실시 예에 따른 범용 목적의 블록체인 상에서 익명 거래를 수행하는 과정을 도시한 도면이다.
1 is a block diagram of an anonymous transaction performing device based on an embodiment of the present disclosure.
2 is a diagram illustrating a process of performing an anonymous transaction on a general-purpose blockchain according to an embodiment of the present disclosure.
FIG. 3 is a diagram illustrating a process of checking whether a value sum of an input note and a value sum of an output note are the same according to an embodiment of the present disclosure.
4 illustrates an elliptic curve cryptogram according to an embodiment of the present disclosure.
5 is a diagram illustrating a process of performing an anonymous transaction on a general-purpose blockchain according to another embodiment of the present disclosure.

이하에서는 첨부한 도면을 참조하여 본 개시를 설명하기로 한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며, 따라서 여기에서 설명하는 실시 예로 한정되는 것은 아니다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, the present disclosure will be described with reference to the accompanying drawings. As those skilled in the art would realize, the described embodiments may be modified in various different ways, all without departing from the spirit or scope of the present invention. In the drawings, parts irrelevant to the description are omitted for simplicity of explanation, and like reference numerals designate like parts throughout the specification.

이하 첨부된 도면을 참고하여 본 개시의 실시 예를 상세히 설명하기로 한다.Hereinafter, exemplary embodiments of the present disclosure will be described in detail with reference to the accompanying drawings.

도 1은 본 개시의 일 실시 예에 따른 블록체인 기반의 익명 거래 수행 장치를 도시한 도면이다.1 is a block diagram of an anonymous transaction performing device based on an embodiment of the present disclosure.

도 1을 참조하면, 본 개시의 일 실시 예에 따른 블록체인 기반의 익명 거래 수행 장치는 통신망을 통해 서로 통신 가능한 복수의 노드(100)로 구성될 수 있으며, 복수의 노드(100)는 블록체인 상에서 정보를 공유할 수 있다.Referring to FIG. 1, the blockchain-based anonymous transaction execution apparatus according to an embodiment of the present disclosure may be configured with a plurality of nodes 100 that can communicate with each other through a communication network, and the plurality of nodes 100 may be blockchains. Information can be shared on the web.

먼저, 블록체인(Block Chain)에 대해 설명하기로 한다. 블록체인이란 블록에 데이터를 담아 체인 형태로 연결하고, 수많은 컴퓨터에 동시에 이를 복제해 저장하는 분산형 데이터 저장 기술로, 공공 거래 장부라고 부른다. 중앙 집중형 서버에 거래 기록을 보관하지 않고 거래에 참여하는 모든 사용자에게 거래 내역을 보내주며, 거래 때마다 모든 거래 참여자들이 정보를 공유하고 이를 대조해 데이터 위조나 변조를 할 수 없도록 되어 있다.First, the block chain will be described. Blockchain is a decentralized data storage technology that stores data in blocks, connects them in a chain, and replicates and stores them on many computers at the same time. The transaction is sent to all users who participate in the transaction without having to maintain transaction records on a centralized server.Each trader can not share information and collate data to forge or tamper with each other.

블록체인은 중앙 집중형 서버에 거래 기록을 보관, 관리하지 않고 거래에 참여하는 개개인의 서버들이 모여 네트워크를 유지 및 관리하는데, 이 개개인의 서버, 즉 참여자를 노드라고 한다. 중앙 관리자가 없기 때문에 블록을 배포하는 노드의 역할이 중요하며, 참여하는 노드들 가운데 절반 이상의 동의가 있어야 새 블록이 생성된다. 노드들은 블록체인을 컴퓨터에 저장해 놓고 있는데, 일부 노드가 해킹을 당해 기존 내용에 오류가 발생해도 다수의 노드에 데이터가 남아 있어 계속적으로 데이터를 보존할 수 있다.Blockchain maintains and manages the network of individual servers participating in a transaction without keeping and managing transaction records in a centralized server. The individual server, or participant, is called a node. Because there is no central administrator, the role of the node distributing the block is important, and at least half of the participating nodes must agree to create a new block. Nodes have their blockchains stored on their computers, and even if some nodes are hacked and the existing contents fail, data remains on multiple nodes, so that data can be preserved continuously.

본 개시에서는, 복수의 노드(100)를 참여자로 하여 블록체인을 구현하고 있으며, 복수의 노드(100)는 제1 노드(110), 제2 노드(120) 등을 포함하고 있으며, 복수의 노드(100) 각각은 단말 형태로 구현될 수 있고, 서버 형태로 구현될 수도 있다.In the present disclosure, a block chain is implemented using a plurality of nodes 100 as participants, and the plurality of nodes 100 includes a first node 110, a second node 120, and the like. Each 100 may be implemented in the form of a terminal, or may be implemented in the form of a server.

또한, 본 개시에서는, 익명 거래를 범용 목적의 블록체인 위에서도 가능하게 하는 프로토콜을 제공하여, 복수의 노드(100)는 범용 목적의 블록체인 상에서 익명 거래를 수행할 수 있다. 이때, 익명 거래(Confidential Transaction)란 퍼블릭 블록체인 네트워크에서 일어나는 가치(value)가 감춰진 거래를 의미할 수 있다.In addition, in the present disclosure, by providing a protocol that enables anonymous transactions even on a general purpose blockchain, the plurality of nodes 100 may perform anonymous transactions on a general purpose blockchain. In this case, an anonymous transaction may refer to a transaction in which a value occurring in the public blockchain network is hidden.

도 2는 본 개시의 일 실시 예에 따른 범용 목적의 블록체인 상에서 익명 거래를 수행하는 과정을 도시한 도면이다.2 is a diagram illustrating a process of performing an anonymous transaction on a general-purpose blockchain according to an embodiment of the present disclosure.

먼저, 모든 노트(note)들은 노트 등록소에 저장될 수 있으며, 각 노트는 그에 해당하는 가치(value)와 누가 소유하고 있는지를 암호화하여 저장할 수 있다.First, all notes can be stored in the note registry, and each note can be stored encrypted with its value and who owns it.

도 2를 참조하면, 익명 거래가 일어날 때, 블록체인 상에서 복수의 노드(100) 중 어느 하나에서 거래가 요청되면, 범위 증명 단계(S201)에서, 복수의 노드(100) 중 적어도 하나는, 각 노트에 암호화하여 저장된 가치가 미리 설정된 유효 넘위 내에 포함되는지 여부를 확인할 수 있다. 즉, 각 노트의 가치가 유효한 범위에 있는지 확인할 수 있다.Referring to FIG. 2, when an anonymous transaction occurs, if a transaction is requested from any one of the plurality of nodes 100 on the blockchain, at step S201, at least one of the plurality of nodes 100 is assigned to each note. You can check whether the stored value is encrypted within the preset validity level. In other words, you can verify that the value of each note is within the valid range.

합분 거래 단계(S202)에서, 복수의 노드(100) 중 적어도 하나는, 가치가 암호화된 상태에서 입력 노트의 가치 합과 출력 노트의 가치 합이 동일한지 여부를 확인할 수 있다. 즉, 입력 노트의 가치 합과 출력 노트의 가치 합이 같은지 확인할 수 있다.In the transaction transaction step S202, at least one of the plurality of nodes 100 may determine whether the sum of the values of the input notes and the sum of the values of the output notes are the same while the values are encrypted. That is, it is possible to check whether the sum of values of the input notes and the sum of the values of the output notes are the same.

결과 저장 단계(S203)에서, 복수의 노드(100) 중 적어도 하나는, 가치가 확인되면, 노트 등록소에 저장된 입력 노트를 삭제하고, 출력 노트를 새로 저장할 수 있다. 즉, 범위 증명과 합분 거래가 모두 확인되면, 노트 등록소의 입력 노트들을 지우고 출력 노트를 만들어 등록할 수 있다.In a result storing step S203, at least one of the plurality of nodes 100 may delete the input note stored in the note registry and newly store the output note when the value is confirmed. In other words, once both the proof of range and the transaction of merging are confirmed, the input notes of the note registry can be deleted and the output notes can be created and registered.

상술한 바와 같이, 익명 거래를 범용 목적의 블록체인 위에서도 가능하게 하는 프로토콜에 대한 전체 흐름을 설명하였으며, 이하에서는, 블록체인 상에서 익명 거래를 수행하기 위해 필요한 구성을 기능 별로 구분하여 자세히 설명하기로 한다.As described above, the overall flow of the protocol for enabling anonymous transactions on a general-purpose blockchain has been described. Hereinafter, the configuration required to perform anonymous transactions on the blockchain will be described in detail by function. .

암호화된 노트Encrypted notes

사용자가 하나의 지갑을 갖고 거래하는 방식이 아닌, 각각의 노트마다 가치가 정해져 있으며, 사용자가 여러 개의 노트를 소유하는 방식으로, 각 노트가 갖고 있어야 하는 정보는 얼마만큼의 가치가 있는지에 대한 '가치' 정보, 누구의 소유인지에 대한 '소유권' 정보이다.Rather than the way a user transacts with one wallet, each note has a value, and the way a user owns multiple notes, how much information each note should have, Value 'information, and' ownership 'information about who owns it.

가치(value) 관련하여 공개된 정보는 가치를 암호화한 것에 해당하는 암호 정보(commitment)이고, 가치의 개인 정보(witness)로 노트의 가치, viewing key 등이 포함될 수 있다.The information disclosed in relation to the value is encryption information corresponding to the encryption of the value, and the value of the note may include a note value, a viewing key, and the like.

소유권(ownership) 관련하여 공개된 정보는 spending key에 해당하는 public key이고, 소유권의 개인 정보(witness)로 spending key가 포함될 수 있다.Information disclosed in relation to ownership is a public key corresponding to a spending key, and the spending key may be included as the witness of ownership.

한편, 블록체인 상에서 익명 거래를 수행하기 위해서는 가치를 노트의 형태로 암호화하는 기술과 가치가 암호화된 상태에서 [입력 노트의 가치 합 = 출력 노트의 가치 합]을 증명하는 기술이 필요하다.On the other hand, in order to perform anonymous transactions on the blockchain, a technique for encrypting values in the form of notes and a technique for proving [sum of values of input notes = sum of values of output notes] while the values are encrypted are required.

가치를 노트의 형태로 암호화하는 기술과 관련하여, 후술할 "범위 증명" 과정을 통해 가치를 암호화하는 것이 가능해지며, 입력 노트의 가치 합과 출력 노트의 가치 합이 동일한 것은 합분 프로토콜을 통해 확인될 수 있다.With respect to the technique of encrypting the value in the form of a note, it is possible to encrypt the value through the "prove range" procedure described below, and that the sum of the values of the input notes and the sum of the values of the output notes is the same through the sum protocol. Can be.

도 3은 본 개시의 일 실시 예에 따른 입력 노트의 가치 합과 출력 노트의 가치 합이 동일한지 여부를 확인하는 과정을 도시한 도면이다.FIG. 3 is a diagram illustrating a process of checking whether a value sum of an input note and a value sum of an output note are the same according to an embodiment of the present disclosure.

도 3에 도시된 바와 같이, 합분 프로토콜에는 다음과 같은 수식이 사용될 수 있다.As shown in FIG. 3, the following equation may be used in the summation protocol.

Figure 112019038278002-pat00001
Figure 112019038278002-pat00001

이와 같이, 본 개시의 일 실시 예에 따르면, 복수의 노드(100) 중 적어도 하나는 상기 수식으로 나타난 합분 프로토콜을 이용하여, 가치가 암호화된 상태에서, 입력 노트의 가치 합과 출력 노트의 가치 합이 동일한지 여부를 확인할 수 있다.As described above, according to an embodiment of the present disclosure, at least one of the plurality of nodes 100 uses the summation protocol represented by the above formula, and in the state where the value is encrypted, the sum of the values of the input notes and the values of the output notes. You can check whether this is the same.

타원곡선 암호Elliptic Curve Password

각 노트의 암호화된 가치를 공개하지 않고 더하기 연산을 수행하는데 있어, 동형 암호(homomorphic encryption)가 필요한데, 대표적으로 사용되는 것이 타원 곡선 암호(Elliptic Curve Cryptosystem) 방식이다.In order to perform the addition operation without revealing the encrypted value of each note, homomorphic encryption is required. An elliptic curve cryptosystem is typically used.

도 4는 본 개시의 일 실시 예에 따른 타원곡선 암호를 도시한 도면이다.4 illustrates an elliptic curve cryptogram according to an embodiment of the present disclosure.

먼저, 더하기에는 다음과 같은 수식이 사용될 수 있다.First, the following equation may be used to add.

Figure 112019038278002-pat00002
Figure 112019038278002-pat00002

타원곡선 위의 점 P와 Q를 더하기 연산하면, R이 산출될 수 있다.R can be calculated by adding the points P and Q on the elliptic curve.

스칼라곱(Scalar Multiplication)에는 다음과 같은 수식이 사용될 수 있다.The following formula can be used for Scalar Multiplication.

Figure 112019038278002-pat00003
Figure 112019038278002-pat00003

스칼라곱은 일방향 함수로, 정수 x와 타원곡선 위의 점 P가 주어지면, x·P는 쉽게 계산할 수 있지만, 타원곡선 위의 점 P와 그의 스칼라곱 x·P가 주어지면 암호화되어 있어 x를 알아내긴 어렵다.The scalar product is a one-way function, given the integer x and the point P on the elliptic curve. It's hard to bet.

동형 덧셈에는 다음과 같은 수식이 사용될 수 있다.For equation addition, the following equation can be used.

Figure 112019038278002-pat00004
Figure 112019038278002-pat00004

동형 덧셈을 통해, 암호화된 상태에서 덧셈이 가능해질 수 있다.Homogeneous addition allows for addition in the encrypted state.

이와 같이, 본 개시의 일 실시 예에 따르면, 복수의 노드(100) 중 적어도 하나는 가치가 공개되지 않은 암호화된 상태에서, 타원 곡선 암호 방식을 통해, 암호화된 상태의 가치에 대한 더하기 연산을 수행할 수 있다.As such, according to an embodiment of the present disclosure, at least one of the plurality of nodes 100 performs an addition operation on the value of the encrypted state through an elliptic curve cryptography method in an encrypted state where the value is not disclosed. can do.

하지만, 타원곡선 암호는 나머지 연산(modulo)을 이용하기 때문에, 범위를 초과하는 연산을 수행하는 경우, 문제가 발생한다. 이를 해결하기 위해, 후술할 범위 증명을 통해 실제 사용되는 값의 범위를 제한할 수 있다.However, since elliptic curve cryptography uses modulo, problems arise when performing operations that are out of range. In order to solve this problem, it is possible to limit the range of values actually used through the range proof to be described later.

범위 증명Scope proof

범위 증명(Range Proof)은 모든 암호화된 가치가 미리 설정된 값(k_max) 보다 더 작도록 하는데, 계산량이 매우 많은 연산이다. 이를 해결하기 위해, 가능한 모든 가치에 대해 전자 서명을 만들어 서명 데이터베이스에 등록해놓고, 그것을 이용하여 가치가 유효한 범위 안에 있음을 증명할 수 있다.Range Proof ensures that all encrypted values are smaller than the preset value (k_max), which is a very computationally expensive operation. To solve this, you can create an electronic signature for all possible values, register them in a signature database, and use them to prove that the values are in the valid range.

각 노트에 있는 암호 정보(commitment)는 노트의 가치 k, 가치를 암호화하는데 사용될 임의의 값(viewing key에 해당), 서명 데이터베이스에 있는 가치 k에 해당하는 서명(reference common string)를 이용하여 만들어질 수 있으며, 노트의 가치 k를 공개하진 않지만 가치 k가 유효한 범위 안에 있음을 증명하는데 사용될 수 있으며, 이를 통해, 가치를 암호화하는 것이 가능해질 수 있다.The password information in each note is created using the value k of the note, an arbitrary value to be used to encrypt the value (corresponding to the viewing key), and a reference common string corresponding to the value k in the signature database. Can be used to prove that the value k is within the valid range, but does not disclose the value k of the note, thereby making it possible to encrypt the value.

이와 같이, 본 개시의 일 실시 예에 따르면, 복수의 노드(100) 중 적어도 하나는 노트의 가치, 암호화하는데 사용될 임의값 및 서명 데이터베이스에 등록된 가치에 대응되는 서명을 이용하여 생성된 암호 정보를 기초로, 가치가 공개되지 않은 상태에서 가치가 유효 범위 내에 포함되는지 여부를 확인할 수 있다.As such, according to an embodiment of the present disclosure, at least one of the plurality of nodes 100 may generate cryptographic information generated by using a signature corresponding to a value of a note, an arbitrary value to be used for encryption, and a value registered in a signature database. On the basis, it can be checked whether the value falls within the validity range without the value being disclosed.

영지식 증명Proof of knowledge

암호화된 각 노트의 가치를 밝히지 않으면서, 합분 프로토콜에서 입력 노트의 가치 합과 출력 노트의 가치 합이 같음을 증명하고 싶은 상황에서 영지식 증명(Zero-Knowledge Proof)이 필요하다.Zero-Knowledge Proof is required in situations where you want to prove that the sum of the values of the input notes and the sum of the values of the output notes is the same, without revealing the value of each encrypted note.

예를 들어, R = (w, x, crs)의 witness w, public input string x, common reference string crs 사이의 관계에서, 증명자 P는 검증자 V에게 이미 주어진 x에 대하여 (w, x, crs) ∈ R을 만족하는 w를 알고 있음을 증명하고 싶어하지만, w를 공개하고 싶지 않을 때, 영지식 증명을 이용하여 w를 알고 있다는 것을 증명할 수 있다.For example, in the relationship between witness w of R = (w, x, crs), public input string x, common reference string crs, prover P is equal to (w, x, crs for x already given to verifier V. When we want to prove that we know w that satisfies R, but we don't want to release w, we can prove that we know w using zero-knowledge proof.

이와 같이, 본 개시의 일 실시 예에 따르면, 복수의 노드(100) 중 적어도 하나는 가치의 개인 정보(witness)가 공개되지 않은 상태에서, 영지식 증명 프로토콜을 통해 개인 정보에 대한 증명이 승인되면, 가치가 공개되지 않은 상태에서도, 가치 합의 동일 여부에 대한 확인 결과가 정상이라고 판단할 수 있다.As such, according to one embodiment of the present disclosure, if at least one of the plurality of nodes 100 is authorized for proof of personal information through a zero-knowledge proof protocol while the witness of the value is not disclosed, However, even if the value is not disclosed, it can be judged that the result of checking whether the value agreement is the same is normal.

시그마 프로토콜Sigma protocol

시그마 프로토콜은 요청(commitment) 단계, 도전(challenge) 단계, 응답(response) 단계로 이루어진 증명 프로토콜로, 증명자 P와 검증자 V 사이의 공통된 입력값 x, 증명자 P의 공개되지 않은 입력값 w를 통해, w 값을 알고 있다고 증명할 수 있다.The sigma protocol is a proof protocol consisting of a request phase, a challenge phase, and a response phase. The sigma protocol is a common input value x between the prover P and the verifier V, and the undisclosed input value of the prover P. , We can prove that we know the value of w.

먼저, 요청(commitment) 단계에서, 증명자 P는 검증자 V로 메시지 a를 전송할 수 있다.First, in the commitment phase, the verifier P may send a message a to the verifier V.

도전(challenge) 단계에서, 검증자 V는 증명자 P로 임의의 도전값 c를 전송할 수 있다.In the challenge phase, the verifier V can send any challenge value c to the prover P.

응답(response) 단계에서, 증명자 P는 검증자 V로 도전값 c에 대한 응답 z를 전송할 수 있으며, 검증자 V는 공통된 입력값 x, 메시지 a, 도전값 c, 응답 z로부터 증명을 승인할지 여부를 결정할 수 있다.In the response phase, the verifier P may send a response z to the challenge value c to the verifier V, which verifies whether to accept the proof from the common input value x, the message a, the challenge value c, and the response z. You can decide whether or not.

예를 들어, 이산 로그 문제(discrete logarithm problem)에서, P는 이미 공개되어 있는 y와 g에 대하여, 자신이 y = gx를 만족하는 x를 알고 있다고 증명하고 싶은데, x 값은 밝히고 싶지 않을 때, 다음과 같은 과정이 수행될 수 있다.For example, in the discrete logarithm problem, P wants to prove that he knows that x satisfies y = g x , but does not want to reveal the value of x for y and g that are already public. The following process can be performed.

증명자 P는 임의의 값 v를 고르고, t = gv를 계산하여 검증자 V에게 t를 전송할 수 있다.The prover P can pick any value v, calculate t = g v and send t to the verifier V.

검증자 V는 도전값 c를 고르고, 이를 증명자 P에게 전송할 수 있다. 이때, 검증자 V가 도전값을 전송하지 않고, 증명자 P 스스로 도전값 c 값을 만든다면, 증명자 P와 검증자 V 사이의 통신을 줄일 수 있다.The verifier V may pick a challenge value c and send it to the verifier P. At this time, if the verifier V does not transmit the challenge value and the prover P makes the challenge value c by itself, communication between the prover P and the verifier V can be reduced.

증명자 P는 r = v - cx를 계산하여 검증자 V에게 r을 전송할 수 있다.The prover P can send r to the verifier V by calculating r = v-cx.

검증자 V는 t ≡ gryc인지 확인하여, 맞는 값을 받았다면, gryc = gv-cxgxc = gv = t로 성립되어, x값을 밝히지 않으면서, x를 알고 있다는 것이 증명될 수 있다. The verifier V checks if t ≡ g r y c, and if a correct value is obtained, then g r y c = g v-cx g x c = g v = t, so that x cannot be given without revealing the value of x. Knowing can be proved.

이와 같이, 본 개시의 일 실시 예에 따르면, 복수의 노드(100) 중 어느 하나인 제1 노드(110)는 증명자 노드이고, 복수의 노드(100) 중 다른 하나인 제2 노드(120)는 검증자 노드인 경우, 제1 노드(110)는 제2 노드(120)로 메시지 a를 전송할 수 있으며, 제2 노드(120)는 제1 노드(110)로 임의의 도전값 c를 전송할 수 있으며, 제1 노드(110)는 제2 노드(120)로 도전값 c에 대한 응답 z를 전송할 수 있다.As such, according to an embodiment of the present disclosure, the first node 110, which is one of the plurality of nodes 100, is the prover node, and the second node 120 which is the other one of the plurality of nodes 100. If is a verifier node, the first node 110 can send a message a to the second node 120, the second node 120 can send any challenge value c to the first node (110). In addition, the first node 110 may transmit a response z to the conductivity value c to the second node 120.

제2 노드(120)는 제1 노드(110)와 제2 노드(120) 사이의 공통된 입력값 x, 메시지 a, 도전값 c, 응답 z를 기초로, 제1 노드(110)에서 공개되지 않은 개인 정보에 대한 증명의 승인 여부를 결정할 수 있다.The second node 120 is not published at the first node 110 based on the common input value x, the message a, the challenge value c, the response z between the first node 110 and the second node 120. You can decide whether to approve proof of personal information.

한편, 도전값은 암호학적 해시 함수를 이용하여 산출될 수 있다.Meanwhile, the challenge value may be calculated using a cryptographic hash function.

예를 들어, 이산 로그 문제(discrete logarithm problem)에서, P는 이미 공개되어 있는 y와 g에 대하여, 자신이 y = gx를 만족하는 x를 알고 있다고 증명하고 싶은데, x 값은 밝히고 싶지 않을 때, 증명자 P는 임의의 값 v를 고르고, t = gv를 계산하고, 증명자 P는 암호학적 해시 함수 H()를 이용하여 도전값 c = H(g, y, t)를 계산하고, 증명자 P는 r = v - cx를 계산하고 (t, r)를 공개하여, 누구나 t ≡ gryc임을 확인할 수 있다.For example, in the discrete logarithm problem, P wants to prove that he knows that x satisfies y = g x , but does not want to reveal the value of x for y and g that are already public. , The prover P chooses a random value v, computes t = g v , the prover P computes the challenge value c = H (g, y, t) using the cryptographic hash function H (), The prover P calculates r = v-cx and publishes (t, r), so anyone can see that t ≡ g r y c .

도 5는 본 개시의 다른 실시 예에 따른 범용 목적의 블록체인 상에서 익명 거래를 수행하는 과정을 도시한 도면이다.5 is a diagram illustrating a process of performing an anonymous transaction on a general-purpose blockchain according to another embodiment of the present disclosure.

먼저, 복수의 노드(100) 각각은 사용자 입력을 수신하는 리시버(미도시) 및 실질적인 연산을 수행하는 프로세서(미도시)를 포함할 수 있다.First, each of the plurality of nodes 100 may include a receiver (not shown) that receives a user input and a processor (not shown) that performs a substantial operation.

도 5를 참조하면, 암호화 항목 결정 단계(S501)에서, 거래에 이용되는 복수개의 항목 중 암호화가 요구되는 일부 항목이 리시버를 통한 사용자의 입력에 따라 결정되면, 프로세서는 암호화 항목을 결정할 수 있다.Referring to FIG. 5, in the step of determining an encryption item (S501), if some items requiring encryption among a plurality of items used for a transaction are determined according to a user's input through a receiver, the processor may determine an encryption item.

이후, 스마트 컨트랙트 구성 단계(S502)에서, 프로세서는 타원 곡선 암호 방식을 이용하여 암호화 항목으로 결정된 일부 항목이 암호화되도록 스마트 컨트랙트를 구성할 수 있다.Then, in the smart contract configuration step (S502), the processor may configure the smart contract so that some items determined as encryption items are encrypted using an elliptic curve cryptography.

스마트 컨트랙트(Smart Contract)란 스마트 계약 시스템에 거래 조건과 내용을 등록하면 그에 해당되는 법률 및 절차 등이 자동으로 적용되어 거래 당사자에게 결과가 전달된다. 따라서, 거래 절차가 간소화되고 거래상 발생되는 비용도 절감될 뿐만 아니라, 거래 당사자 간에 안전한 계약이 이뤄질 수 있다.Smart Contract is a smart contract system that registers the terms and conditions of the contract and the applicable laws and procedures are automatically applied and the results are sent to the trading parties. Thus, the transaction procedure is simplified and the costs incurred in the transaction can be reduced, as well as a secure contract between the trading parties.

예를 들어, 보험회사와 병원은 스마트 계약을 통해 환자 의무기록은 보호하면서 보험료를 자동 지급함으로써 지급 결제 시스템을 간소화하고, 위변조가 어려운 원장을 만들어 보험 사기를 방지할 수 있으며, 스마트 계약을 지원하는 대표적인 플랫폼으로 이더리움(Ethereum)이 있다.For example, smart contracts allow insurers and hospitals to automate premium payments while protecting patient medical records, simplifying the payment settlement system, creating insurance ledgers that are hard to forge, and supporting smart contracts. Ethereum is a representative platform.

이후, 영지식 증명 단계(S503)에서, 프로세서는 암호화된 일부 항목에 대해 영지식 증명을 통해 증명을 수행할 수 있다.Then, in the zero knowledge proof step (S503), the processor may perform proof through zero knowledge proof for some encrypted items.

이후, 거래 수행 단계(S504)에서, 프로세서는 스마트 컨트랙트를 이용한 제1 거래를 수행할 수 있다.Then, in the transaction execution step (S504), the processor may perform a first transaction using the smart contract.

이후, 결과 저장 단계(S505)에서, 프로세서는 제 1 거래의 수행 결과 획득된 복수의 결과값을 저장할 수 있다.Subsequently, in a result storing step S505, the processor may store a plurality of result values obtained as a result of performing the first transaction.

이후, 프로세서는 복수의 결과값에 대해서 연산을 수행하여 갱신된 결과값을 획득할 수 있으며, S504 단계를 다시 수행하여, 갱신된 결과값을 이용하여 스마트 컨트랙트를 이용한 제2 거래를 수행할 수 있다.Thereafter, the processor may perform an operation on the plurality of result values to obtain an updated result value, and perform step S504 again to perform a second transaction using the smart contract using the updated result value. .

한편, 본 개시의 일 실시 예에 따르면, 암호화된 항목의 종류 또는 개수에 따라 스마트 컨트랙트를 이용한 거래가 상이하게 수행될 수 있다. 예를 들어, 제1 항목이 암호화되어 스마트 컨트랙트를 구성한 경우, 제1 거래와 제2 거래 모두 수행될 수 있고, 제2 항목이 암호화되어 스마트 컨트랙트를 구성한 경우, 제1 거래만 수행되고, 제2 거래는 수행되지 않도록 제한할 수 있다. 즉, 스마트 컨트랙트를 구성할 때 사용자가 암호화 항목을 선택하는 것만으로, 스마트 컨트랙트를 이용한 거래 횟수를 조절할 수 있다.Meanwhile, according to an embodiment of the present disclosure, a transaction using a smart contract may be performed differently according to the type or number of encrypted items. For example, when the first item is encrypted to form a smart contract, both the first transaction and the second transaction may be performed. When the second item is encrypted to form the smart contract, only the first transaction is performed. Transactions can be restricted from being performed. In other words, when the smart contract is configured, the user only selects an item to be encrypted to adjust the number of transactions using the smart contract.

이와 같이, 본 개시의 일 실시 예에 따르면, 퍼블릭 블록체인 및 영지식 증명을 이용하여 프라이빗 블록체인을 실질적으로 구현할 수 있으므로, 누구나 프라이빗 블록체인을 범용적으로 이용 가능하도록 함으로써, 부동산, 금융, 기타 모든 영역에서 이용할 수 있다.As such, according to an embodiment of the present disclosure, since the private blockchain can be substantially implemented using the public blockchain and zero-knowledge proof, anyone can use the private blockchain universally, such as real estate, finance, and the like. Available in all areas.

예를 들면, 통장 잔고의 잔액을 감준 채로 송금하고자 하는 금액 보다 잔고가 더 크다는 것 만을 영지식 증명을 통해 증명한다. 여기서 타원곡선 암호가 이용되는데, 타원곡선 암호를 통해 암호화한 결과의 사칙연산 결과가 암호화 전 수치의 사칙연산의 결과가 서로 대응된다.For example, the proof of zero knowledge proves that the balance is larger than the amount to be remitted while the balance of the account balance is hidden. Here, an elliptic curve cipher is used, and the result of the arithmetic operation of the result encrypted by the elliptic curve cipher corresponds to each other.

즉, 암호화 전 수치인 100, 50을 각각 A, B로 암호화하면, 100+50 = 150이므로, A+B = C일 때 150의 암호화 결과가 C가 되므로, 암호화한 상태에서의 사칙연산이 가능해지기 때문에, 원래 값은 공개하지 않고 암호화된 값만으로 비교가 가능해진다.In other words, if 100 and 50 before encryption are encrypted with A and B, respectively, 100 + 50 = 150, the result of encryption becomes 150 when C is A + B = C. Since the original value is not disclosed, only the encrypted value can be compared.

스마트 컨트랙트를 이용함에 있어서, 일부 정보들이 암호화되는 것이 필수적인데, 이 경우, 모든 정보를 공유하여 위·변조가 불가능하다는 블록체인의 장점을 잃어버리게 된다. 따라서, 영지식 증명을 이용하여 이런 문제점을 해결할 수 있다.In using smart contracts, it is essential that some information be encrypted, in which case all of the information is shared and the advantage of blockchain is that it cannot be forged or forged. Thus, zero-proof proof can be used to solve this problem.

그러나, 범용적으로 영지식 증명을 이용하는 방식은 존재하지 않으며, 타원곡선 암호화를 블록체인에 접목한 기술도 존재하지 않는다.However, there is no general way of using zero-knowledge proof, and there is no technology that incorporates elliptic curve encryption into the blockchain.

본 개시에서는 블록체인에 올라가는 데이터를 장부로 한정하지 않고 스마트 컨트랙트로 넓히고, 일부를 암호화하고, 암호화한 것을 영지식 증명을 통해 증명하여 거래가 이루어질 수 있도록 하여, 스마트 컨트랙트를 만드는 사람이 원하는 부분을 선택적으로 선택해서 암호화하도록 함으로써, 범용적으로 이용하는 방법, 장치 및 기록매체가 제공된다.In the present disclosure, the data going up on the blockchain is not limited to books, but the smart contract is widened, partly encrypted, and the encrypted part is proved through proof of knowledge so that transactions can be made. By selectively selecting and encrypting, a method, apparatus, and recording medium for universal use are provided.

또한, 종래 구현되어있는 플랫폼에 본 개시에 따른 방식을 적용함으로써 보다 쉽게 본 개시에 따른 방식을 구현할 수 있다. 예를 들면, 이더리움 인프라를 이용해서 보다 쉽게 현실에서 본 개시에 따른 방법을 구현할 수 있다는 점에서 큰 효과가 예상된다.In addition, it is possible to implement the scheme according to the present disclosure more easily by applying the scheme according to the present disclosure to the platform that is conventionally implemented. For example, a great effect is expected in that the Ethereum infrastructure makes it easier to implement the method according to the present disclosure in reality.

전술한 본 개시의 설명은 예시를 위한 것이며, 본 개시가 속하는 기술분야의 통상의 지식을 가진 자는 본 개시의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The foregoing description of the disclosure is provided by way of example, and it will be understood by those skilled in the art that the present disclosure may be easily modified into other specific forms without changing the technical spirit or essential features of the present disclosure. will be. Therefore, it should be understood that the embodiments described above are exemplary in all respects and not restrictive. For example, each component described as a single type may be implemented in a distributed manner, and similarly, components described as distributed may be implemented in a combined form.

본 개시의 범위는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 개시의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present disclosure is indicated by the following claims, and it should be construed that all changes or modifications derived from the meaning and scope of the claims and equivalent concepts thereof are included in the scope of the present disclosure.

한편, 상술한 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 방법에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 램, USB, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.On the other hand, the above-described method can be written in a program that can be executed in a computer, it can be implemented in a general-purpose digital computer to operate the program using a computer-readable recording medium. In addition, the structure of the data used in the above-described method can be recorded on the computer-readable recording medium through various means. The computer readable recording medium may include a storage medium such as a magnetic storage medium (eg, ROM, RAM, USB, floppy disk, hard disk, etc.), an optical reading medium (eg, CD-ROM, DVD, etc.). do.

본 실시 예와 관련된 기술 분야에서 통상의 지식을 가진 자는 상기된 기재의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 방법들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.Those skilled in the art will appreciate that the present invention may be embodied in a modified form without departing from the essential characteristics of the above-described substrate. Therefore, the disclosed methods should be considered in descriptive sense only and not for purposes of limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.

100 : 복수의 노드
110 : 제1 노드
120 : 제2 노드
100: multiple nodes
110: first node
120: second node

Claims (17)

범용 목적의 블록체인 상에서 익명 거래를 수행하는 방법에 있어서,
블록체인 상에서 거래가 요청되면, 각 노트(note)에 암호화하여 저장된 가치(value)가 미리 설정된 유효 범위 내에 포함되는지 여부를 확인하는 단계;
상기 가치가 암호화된 상태에서 입력 노트의 가치 합과 출력 노트의 가치 합이 동일한지 여부를 확인하는 단계; 및
상기 가치가 확인되면, 노트 등록소에 저장된 상기 입력 노트를 삭제하고, 상기 출력 노트를 새로 저장하는 단계를 포함하며,
상기 요청된 거래를 수행하는데 있어,
거래에 이용되는 복수개의 항목 중 암호화가 요구되는 일부 항목을 사용자의 입력에 따라 결정하는 단계;
타원 곡선 암호 방식을 이용하여 상기 일부 항목이 암호화되도록 스마트 컨트랙트(Smart Contract)를 구성하는 단계;
상기 일부 항목에 대해서는 영지식 증명을 통해 증명을 수행하여 상기 스마트 컨트랙트를 이용한 제 1 거래를 수행하는 단계;
상기 제 1 거래의 수행 결과 획득된 복수의 결과값을 저장하는 단계;
상기 복수의 결과값에 대해서 연산을 수행하여 갱신된 결과값을 획득하는 단계;
상기 갱신된 결과값을 이용하여 상기 스마트 컨트랙트를 이용한 제 2 거래를 수행하는 단계; 및
상기 사용자의 입력에 따라 결정된 암호화 항목의 종류 또는 개수에 따라 상기 스마트 컨트랙트를 이용한 거래 횟수를 조절하는 단계를 더 포함하고,
상기 복수개의 항목 중 제1항목이 암호화되어 스마트 컨트랙트를 구성한 경우, 상기 제1거래와 상기 제2거래 모두 수행될 수 있고, 상기 복수개의 항목 중 제2항목이 암호화되어 스마트 컨트랙트를 구성한 경우, 상기 제1거래만 수행되고, 상기 제2거래는 수행되지 않도록 제한되는, 블록체인 기반의 익명 거래 수행 방법.
In the method of performing anonymous transaction on a general purpose blockchain,
If a transaction is requested on the blockchain, verifying whether the stored value is encrypted in each note to be included in a preset valid range;
Checking whether the sum of the values of the input notes and the sum of the values of the output notes are equal when the value is encrypted; And
If the value is verified, deleting the input note stored in the note registry, and storing the output note newly;
In carrying out the requested transaction,
Determining a portion of the plurality of items used for the transaction according to a user's input;
Configuring a smart contract to encrypt the partial items using an elliptic curve cryptography;
Performing a first transaction using the smart contract by performing proof through zero-knowledge proof for the some items;
Storing a plurality of result values obtained as a result of performing the first transaction;
Performing an operation on the plurality of result values to obtain updated result values;
Performing a second transaction using the smart contract using the updated result value; And
And controlling the number of transactions using the smart contract according to the type or number of encryption items determined according to the user's input.
When the first item of the plurality of items is encrypted to form a smart contract, both the first transaction and the second transaction may be performed, and when the second item of the plurality of items is encrypted to form a smart contract, Only the first transaction is performed, the second transaction is limited to not be performed, blockchain based anonymous transaction performing method.
제1항에 있어서,
상기 가치의 유효 범위 확인 단계는,
상기 노트의 가치, 암호화하는데 사용될 임의값(viewing key) 및 서명 데이터베이스에 등록된 가치에 대응되는 서명(reference common string)을 이용하여 생성된 암호 정보(commitment)를 기초로, 상기 가치가 공개되지 않은 상태에서 상기 가치가 유효 범위 내에 포함되는지 여부를 확인하는 단계;를 포함하는, 블록체인 기반의 익명 거래 수행 방법.
The method of claim 1,
Validation step of the value is,
Based on the value of the note, a viewing key to be used for encryption, and a reference common string corresponding to the value registered in the signature database, the value is not disclosed. Checking whether the value is within a valid range in a state; and a blockchain-based anonymous transaction performing method.
제1항에 있어서,
상기 가치 합의 동일 여부 확인 단계는,
상기 가치의 개인 정보(witness)가 공개되지 않은 상태에서, 영지식 증명(Zero-Knowledge Proof) 프로토콜을 통해 상기 개인 정보에 대한 증명이 승인되면, 상기 가치가 공개되지 않은 상태에서도, 상기 가치 합의 동일 여부에 대한 확인 결과가 정상이라고 판단하는 단계;를 포함하는, 블록체인 기반의 익명 거래 수행 방법.
The method of claim 1,
The step of checking whether the value agreement is the same,
If the proof of the personal information is approved through Zero-Knowledge Proof protocol with the witness of the value not disclosed, the value agreement is the same, even if the value is not disclosed. Determining whether or not the check result is normal; A blockchain-based anonymous transaction performing method.
제3항에 있어서,
상기 개인 정보에 대한 증명의 승인 여부는,
증명자 노드로부터 검증자 노드로 메시지 a가 전송되는 단계;
상기 검증자 노드로부터 상기 증명자 노드로 임의의 도전값 c가 전송되는 단계; 및
상기 증명자 노드로부터 상기 검증자 노드로 상기 도전값 c에 대한 응답 z가 전송되면, 상기 증명자 노드와 상기 검증자 노드 사이의 공통된 입력값 x, 상기 메시지 a, 상기 도전값 c, 상기 응답 z를 기초로, 상기 증명자 노드에서 공개되지 않은 상기 개인 정보에 대한 증명의 승인 여부를 결정하는 단계;를 포함하는, 블록체인 기반의 익명 거래 수행 방법.
The method of claim 3,
Whether the approval of the personal information is approved,
Sending a message from the prover node to the verifier node;
Transmitting an arbitrary challenge value c from the verifier node to the prover node; And
When the response z for the challenge value c is transmitted from the prover node to the verifier node, a common input value x between the prover node and the verifier node, the message a, the challenge value c, and the response z And determining whether to approve the attestation for the personal information that is not disclosed at the attestor node.
제4항에 있어서,
상기 도전값은, 암호학적 해시 함수(Cryptographic Hash Function)를 이용하여 산출되는 것을 특징으로 하는, 블록체인 기반의 익명 거래 수행 방법.
The method of claim 4, wherein
The challenge value is calculated using a cryptographic hash function (Cryptographic Hash Function), blockchain based anonymous transaction performing method.
제1항에 있어서,
상기 가치 합의 동일 여부 확인 단계는,
상기 가치가 공개되지 않은 상태에서, 타원 곡선 암호(Elliptic Curve Cryptosystem) 방식을 통해, 암호화된 상태의 상기 가치에 대한 더하기 연산을 수행하는 단계;를 포함하는, 블록체인 기반의 익명 거래 수행 방법.
The method of claim 1,
The step of checking whether the value agreement is the same,
And performing an addition operation on the value of an encrypted state through an elliptic curve cryptosystem in the state where the value is not disclosed.
범용 목적의 블록체인 상에서 익명 거래를 수행하는 장치에 있어서,
블록체인 상에서 정보를 공유하는 복수의 노드를 포함하되,
상기 복수의 노드 중 어느 하나에서 거래가 요청되면, 상기 복수의 노드 중 적어도 하나는, 각 노트에 암호화하여 저장된 가치가 미리 설정된 유효 범위 내에 포함되는지 여부를 확인하고, 상기 가치가 암호화된 상태에서 입력 노트의 가치 합과 출력 노트의 가치 합이 동일한지 여부를 확인하고, 상기 가치가 확인되면, 노트 등록소에 저장된 상기 입력 노트를 삭제하고, 상기 출력 노트를 새로 저장하며,
상기 복수의 노드 중 어느 하나는,
사용자 입력을 수신하는 리시버; 및
거래에 이용되는 복수개의 항목 중 암호화가 요구되는 일부 항목을 상기 사용자의 입력에 따라 결정하고,
타원 곡선 암호 방식을 이용하여 상기 일부 항목이 암호화되도록 스마트 컨트랙트를 구성하고,
상기 일부 항목에 대해서는 영지식 증명을 통해 증명을 수행하여 상기 스마트 컨트랙트를 이용한 제 1 거래를 수행하고,
상기 제 1 거래의 수행 결과 획득된 복수의 결과값을 저장하는 프로세서를 포함하고,
상기 프로세서는
상기 복수의 결과값에 대해서 연산을 수행하여 갱신된 결과값을 획득하고,
상기 갱신된 결과값을 이용하여 상기 스마트 컨트랙트를 이용한 제 2 거래를 수행하고,
상기 사용자의 입력에 따라 결정된 암호화 항목의 종류 또는 개수에 따라 상기 스마트 컨트랙트를 이용한 거래 횟수를 조절하고,
상기 복수개의 항목 중 제1항목이 암호화되어 스마트 컨트랙트를 구성한 경우, 상기 제1거래와 상기 제2거래 모두 수행될 수 있고, 상기 복수개의 항목 중 제2항목이 암호화되어 스마트 컨트랙트를 구성한 경우, 상기 제1거래만 수행되고, 상기 제2거래는 수행되지 않도록 제한되는, 블록체인 기반의 익명 거래 수행 장치.
An apparatus for performing anonymous transactions on a blockchain for general purpose,
Including a plurality of nodes sharing information on the blockchain,
When a transaction is requested at any one of the plurality of nodes, at least one of the plurality of nodes checks whether the value stored by encrypting each note is included in a preset valid range, and inputs the note with the value encrypted. Determine whether the sum of the values of and the sum of the values of the output notes are the same; if the value is found, delete the input notes stored in the note registry;
Any one of the plurality of nodes,
A receiver for receiving user input; And
Determining a part of the plurality of items used for the transaction is required according to the user's input,
Configure the smart contract to encrypt some of the items using an elliptic curve cryptography,
Performing a first transaction using the smart contract by performing proof through zero-knowledge proof for the some items,
And a processor configured to store a plurality of result values obtained as a result of performing the first transaction.
The processor is
Perform an operation on the plurality of result values to obtain updated result values,
Perform a second transaction using the smart contract using the updated result value,
Adjust the number of transactions using the smart contract according to the type or number of encryption items determined according to the user's input,
When the first item of the plurality of items is encrypted to form a smart contract, both the first transaction and the second transaction may be performed, and when the second item of the plurality of items is encrypted to form a smart contract, Only a first transaction is performed, the second transaction is limited to not be performed, blockchain based anonymous transaction performing apparatus.
제7항에 있어서,
상기 복수의 노드 중 적어도 하나는, 상기 노트의 가치, 암호화하는데 사용될 임의값 및 서명 데이터베이스에 등록된 가치에 대응되는 서명을 이용하여 생성된 암호 정보를 기초로, 상기 가치가 공개되지 않은 상태에서 상기 가치가 유효 범위 내에 포함되는지 여부를 확인하는, 블록체인 기반의 익명 거래 수행 장치.
The method of claim 7, wherein
At least one of the plurality of nodes is configured to display the value in the undisclosed state based on cryptographic information generated using a signature corresponding to a value of the note, an arbitrary value to be used for encryption, and a value registered in a signature database. A blockchain-based anonymous transaction execution device that checks whether a value falls within the validity range.
제7항에 있어서,
상기 복수의 노드 중 적어도 하나는, 상기 가치의 개인 정보가 공개되지 않은 상태에서, 영지식 증명 프로토콜을 통해 상기 개인 정보에 대한 증명이 승인되면, 상기 가치가 공개되지 않은 상태에서도, 상기 가치 합의 동일 여부에 대한 확인 결과가 정상이라고 판단하는, 블록체인 기반의 익명 거래 수행 장치.
The method of claim 7, wherein
At least one of the plurality of nodes is equal to the value agreement, even if the personal information of the value is not disclosed and the proof of the personal information is approved through a zero-knowledge proof protocol, even if the value is not disclosed. Device for performing anonymous transaction based on blockchain, which determines whether the result of the check is normal.
제9항에 있어서,
상기 복수의 노드 중 어느 하나인 증명자 노드는 상기 복수의 노드 중 다른 하나인 검증자 노드로 메시지 a를 전송하고,
상기 검증자 노드는 상기 증명자 노드로 임의의 도전값 c를 전송하고,
상기 증명자 노드는 상기 검증자 노드로 상기 도전값 c에 대한 응답 z를 전송하고,
상기 검증자 노드는 상기 증명자 노드와 상기 검증자 노드 사이의 공통된 입력값 x, 상기 메시지 a, 상기 도전값 c, 상기 응답 z를 기초로, 상기 증명자 노드에서 공개되지 않은 상기 개인 정보에 대한 증명의 승인 여부를 결정하는, 블록체인 기반의 익명 거래 수행 장치.
The method of claim 9,
The prover node, which is one of the plurality of nodes, sends a message a to the verifier node, which is the other one of the plurality of nodes,
The verifier node sends any challenge value c to the prover node,
The prover node sends a response z to the challenge value c to the verifier node,
The verifier node is based on the common input value x between the prover node and the verifier node, the message a, the challenge value c, and the response z, for the personal information not disclosed by the prover node. Blockchain-based anonymous transaction execution device that determines whether to approve proof.
제10항에 있어서,
상기 도전값은, 암호학적 해시 함수를 이용하여 산출되는 것을 특징으로 하는, 블록체인 기반의 익명 거래 수행 장치.
The method of claim 10,
And the challenge value is calculated using a cryptographic hash function.
제7항에 있어서,
상기 복수의 노드 중 적어도 하나는, 상기 가치가 공개되지 않은 상태에서, 타원 곡선 암호 방식을 통해, 암호화된 상태의 상기 가치에 대한 더하기 연산을 수행하는, 블록체인 기반의 익명 거래 수행 장치.
The method of claim 7, wherein
And at least one of the plurality of nodes performs an addition operation on the value in an encrypted state, using an elliptic curve cryptography, while the value is not disclosed.
삭제delete 삭제delete 삭제delete 삭제delete 제 1 항 내지 제 6 항 중 어느 한 항의 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 비일시적 기록 매체.A non-transitory computer-readable recording medium having recorded thereon a program for implementing the method of any one of claims 1 to 6.
KR1020190043604A 2019-04-15 2019-04-15 Method, device and recording medium for processing confidential transaction based on blockchain KR102074381B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190043604A KR102074381B1 (en) 2019-04-15 2019-04-15 Method, device and recording medium for processing confidential transaction based on blockchain

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190043604A KR102074381B1 (en) 2019-04-15 2019-04-15 Method, device and recording medium for processing confidential transaction based on blockchain

Publications (1)

Publication Number Publication Date
KR102074381B1 true KR102074381B1 (en) 2020-02-06

Family

ID=69569210

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190043604A KR102074381B1 (en) 2019-04-15 2019-04-15 Method, device and recording medium for processing confidential transaction based on blockchain

Country Status (1)

Country Link
KR (1) KR102074381B1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102267735B1 (en) * 2020-11-18 2021-06-22 주식회사 케이사인 Decentralized Identity verification system using zero-knowledge proof and method thereof
KR102295113B1 (en) * 2020-11-20 2021-08-31 주식회사 마크애니 Electronic contract management system using zero knowledge proof based on blockchain, and method thereof
KR20220027335A (en) 2020-08-26 2022-03-08 논스랩 주식회사 Zero-knowledge proof system for validating transactions of blockchain digital assets using ASCII computation technique and method thereof
KR20220056036A (en) * 2020-10-27 2022-05-04 주식회사 온더 Transaction execution device to implement a virtual machine based on a zero-knowledge proof circuit for general operation verification
CN116132049A (en) * 2023-01-04 2023-05-16 声龙(新加坡)私人有限公司 Data encryption method, device, equipment and storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180041054A (en) * 2017-09-06 2018-04-23 주식회사 코인플러그 Method for providing certificate service based on smart contract and server using the same
JP2018132931A (en) * 2017-02-15 2018-08-23 富士通株式会社 Approval system, approval method, and approval program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018132931A (en) * 2017-02-15 2018-08-23 富士通株式会社 Approval system, approval method, and approval program
KR20180041054A (en) * 2017-09-06 2018-04-23 주식회사 코인플러그 Method for providing certificate service based on smart contract and server using the same

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220027335A (en) 2020-08-26 2022-03-08 논스랩 주식회사 Zero-knowledge proof system for validating transactions of blockchain digital assets using ASCII computation technique and method thereof
KR102389522B1 (en) * 2020-08-26 2022-04-25 논스랩 주식회사 Zero-knowledge proof system for validating transactions of blockchain digital assets using ASCII computation technique and method thereof
KR20220056036A (en) * 2020-10-27 2022-05-04 주식회사 온더 Transaction execution device to implement a virtual machine based on a zero-knowledge proof circuit for general operation verification
KR102494873B1 (en) * 2020-10-27 2023-02-06 주식회사 온더 Transaction execution device to implement a virtual machine based on a zero-knowledge proof circuit for general operation verification
KR102267735B1 (en) * 2020-11-18 2021-06-22 주식회사 케이사인 Decentralized Identity verification system using zero-knowledge proof and method thereof
KR102295113B1 (en) * 2020-11-20 2021-08-31 주식회사 마크애니 Electronic contract management system using zero knowledge proof based on blockchain, and method thereof
CN116132049A (en) * 2023-01-04 2023-05-16 声龙(新加坡)私人有限公司 Data encryption method, device, equipment and storage medium
CN116132049B (en) * 2023-01-04 2023-09-08 声龙(新加坡)私人有限公司 Data encryption method, device, equipment and storage medium

Similar Documents

Publication Publication Date Title
TWI706275B (en) System and method for information protection
JP6841911B2 (en) Information protection systems and methods
CN110419053B (en) System and method for information protection
CN110337665B (en) System and method for information protection
KR102074381B1 (en) Method, device and recording medium for processing confidential transaction based on blockchain
US11341487B2 (en) System and method for information protection
RU2736447C1 (en) Asset cross-trade in networks of blockchains
TW202018572A (en) Blockchain data protection based on account note model with zero-knowledge proof
CN110730963B (en) System and method for information protection
CN113595726A (en) Method for controlling and distributing blockchain implementation of digital content
CN115176441A (en) Identity-based public key generation protocol
CN113875186A (en) Proof of knowledge
WO2019186978A1 (en) Electronic transaction system, transaction server, verification server, electronic transaction method and program
EP4035305A1 (en) Partitioning a request into transactions for a blockchain
KR102494873B1 (en) Transaction execution device to implement a virtual machine based on a zero-knowledge proof circuit for general operation verification
CN111523892B (en) Block chain cross-chain transaction method and device
AU2019101590A4 (en) System and method for information protection
AU2019101598A4 (en) System and method for information protection
US20230403161A1 (en) Aggregate anonymous credentials for decentralized identity in blockchain

Legal Events

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