KR102671062B1 - Method and system for secret transaction - Google Patents

Method and system for secret transaction Download PDF

Info

Publication number
KR102671062B1
KR102671062B1 KR1020210088830A KR20210088830A KR102671062B1 KR 102671062 B1 KR102671062 B1 KR 102671062B1 KR 1020210088830 A KR1020210088830 A KR 1020210088830A KR 20210088830 A KR20210088830 A KR 20210088830A KR 102671062 B1 KR102671062 B1 KR 102671062B1
Authority
KR
South Korea
Prior art keywords
note
transaction
security
secure
balance
Prior art date
Application number
KR1020210088830A
Other languages
Korean (ko)
Other versions
KR20230008322A (en
Inventor
소홍섭
이용우
토라오 타카미
마리코 쇼자와
Original Assignee
라인플러스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 라인플러스 주식회사 filed Critical 라인플러스 주식회사
Priority to KR1020210088830A priority Critical patent/KR102671062B1/en
Priority to JP2022108358A priority patent/JP2023010648A/en
Publication of KR20230008322A publication Critical patent/KR20230008322A/en
Application granted granted Critical
Publication of KR102671062B1 publication Critical patent/KR102671062B1/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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • 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/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • 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/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

보안 거래를 위한 방법 및 시스템을 개시한다. 일실시예에 따른 거래 방법은 공개 밸런스에서 보안 밸런스로의 송금을 위한 숨김 보안 거래, 보안 밸런스에서 공개 밸런스로의 송금을 위한 공개 보안 거래 및 보안 밸런스들간의 송금을 위한 보안 거래 중 적어도 하나의 거래를 생성하는 단계, 적어도 하나의 거래에 대해 비공개되는 정보를 알고 있음을 증명하기 위한 영지식증명 기반의 증거를 생성하는 단계, 영지식증명 기반의 증거를 포함하는 거래를 블록체인 네트워크로 요청하는 단계 및 거래를 증명하는 단계를 포함할 수 있다. 여기서 블록체인은 공개 밸런스들간의 거래를 위한 어카운트(account)와 보안 밸런스를 사용하는 UTXO(Unspent Transaction Output) 모델이 공존할 수 있다.Disclose a method and system for secure transactions. A transaction method according to an embodiment includes at least one of a hidden security transaction for transfer from a public balance to a secure balance, a public security transaction for transfer from a security balance to a public balance, and a security transaction for transfer between security balances. A step of generating a zero-knowledge proof-based proof to prove that you know the information that is not disclosed about at least one transaction, a step of requesting a transaction containing the zero-knowledge proof-based proof to the blockchain network. And it may include steps to prove the transaction. Here, in blockchain, an account for transactions between public balances and a UTXO (Unspent Transaction Output) model that uses a security balance can coexist.

Description

보안 거래를 위한 방법 및 시스템{METHOD AND SYSTEM FOR SECRET TRANSACTION}{METHOD AND SYSTEM FOR SECRET TRANSACTION}

아래의 설명은 보안 거래를 위한 방법 및 시스템에 관한 것이다.The description below relates to methods and systems for secure transactions.

중앙은행 디지털 화폐(Central Bank Digital Currency, CBDC)는 중앙은행이 발행하는 전자적 형태의 화폐로서, CBDC 구현방식은 중앙은행 또는 은행이 CBDC 계좌 및 관련 거래정보를 보관 및 관리하는 단일원장방식과, 다수의 거래참가자가 동일한 거래기록을 관리하는 분산원장방식으로 분류할 수 있다.Central Bank Digital Currency (CBDC) is an electronic form of currency issued by the central bank. CBDC implementation methods include a single ledger method in which the central bank or banks store and manage CBDC accounts and related transaction information, and multiple It can be classified as a distributed ledger method in which transaction participants manage the same transaction records.

[선행문헌번호][Prior document number]

한국등록특허 제10-1862637호Korean Patent No. 10-1862637

특정 계좌의 모든 거래 또는 특정 거래를 숨길 수 있는 거래 방법 및 시스템을 제공한다.It provides a trading method and system that can hide all or specific transactions in a specific account.

적어도 하나의 프로세서를 포함하는 컴퓨터 장치의 거래 방법에 있어서, 상기 적어도 하나의 프로세서에 의해, 공개 밸런스에서 보안 밸런스로의 송금을 위한 숨김 보안 거래, 보안 밸런스에서 공개 밸런스로의 송금을 위한 공개 보안 거래 및 보안 밸런스들간의 송금을 위한 보안 거래 중 적어도 하나의 거래를 생성하는 단계; 상기 적어도 하나의 프로세서에 의해, 상기 적어도 하나의 거래에 대해 비공개되는 정보를 알고 있음을 증명하기 위한 영지식증명 기반의 증거를 생성하는 단계; 상기 적어도 하나의 프로세서에 의해, 상기 영지식증명 기반의 증거를 포함하는 거래를 블록체인 네트워크로 요청하는 단계; 및 상기 적어도 하나의 프로세서에 의해, 상기 거래를 증명하는 단계를 포함하는 거래 방법을 제공한다.A method of trading on a computer device comprising at least one processor, comprising, by said at least one processor, a hidden security transaction for a transfer from a public balance to a secure balance, a public security transaction for a transfer from a secure balance to a public balance; and creating at least one transaction of a security transaction for transfer between security balances; Generating, by the at least one processor, zero-knowledge proof-based evidence to prove that the at least one transaction is known to the public; requesting, by the at least one processor, a transaction including the zero-knowledge proof-based proof to a blockchain network; and verifying the transaction by the at least one processor.

일측에 따르면, 공개 밸런스는 블록체인상에 공개된 정보로 저장되는 공개 노트에 기록되고, 보안 밸런스는 블록체인상에 암호화되어 저장되는 보안 노트에 기록되는 것을 특징으로 할 수 있다.According to one side, the public balance may be recorded in a public note stored as public information on the blockchain, and the secure balance may be recorded in a secure note encrypted and stored on the blockchain.

다른 측면에 따르면, 상기 숨김 보안 거래는 수신자 계좌가 송금을 받는 보안 노트에 암호화되어 비공개되고, 상기 영지식증명 기반의 증거를 생성하는 단계는, 상기 송금을 받는 보안 노트의 암호화된 정보를 알고 있음을 증명하는 증거를 생성하는 것을 특징으로 할 수 있다.According to another aspect, the hidden secure transaction is encrypted and kept private in the secure note in which the recipient's account receives the remittance, and the step of generating the zero-knowledge proof-based evidence involves knowing the encrypted information in the secure note that receives the remittance. It may be characterized by generating evidence that proves.

또 다른 측면에 따르면, 상기 거래를 증명하는 단계는, 상기 수신자 계좌, 상기 숨김 보안 거래의 거래 금액 및 랜덤시드를 기록하는 노트를 생성하는 단계; 상기 생성된 노트를 수신자의 암호화키로 암호화하여 보안 노트를 생성하는 단계; 및 상기 생성된 보안 노트를 해싱한 노트 해시가 상기 송금을 받는 보안 노트의 노트 해시와 같은지 확인하는 단계를 포함하는 것을 특징으로 할 수 있다.According to another aspect, the step of verifying the transaction includes creating a note recording the recipient account, the transaction amount of the hidden security transaction, and a random seed; Encrypting the generated note with the recipient's encryption key to create a secure note; And it may be characterized by including a step of checking whether the note hash obtained by hashing the generated secure note is the same as the note hash of the secure note receiving the remittance.

또 다른 측면에 따르면, 상기 블록체인 네트워크의 검증자에 의해 상기 숨김 보안 거래의 서명, 상기 송금을 받는 보안 노트의 노트 해시의 존재 여부와 사용 여부 및 상기 영지식증명 기반의 증거가 각각 검증되는 것을 특징으로 할 수 있다.According to another aspect, the signature of the hidden security transaction, the existence and use of the note hash of the secure note receiving the transfer, and the zero-knowledge proof-based proof are each verified by the verifier of the blockchain network. It can be characterized.

또 다른 측면에 따르면, 상기 검증자에 의한 검증이 성공적으로 완료됨에 따라, 상기 블록체인 네트워크에서, 변환되는 공개 밸런스의 정보를 가진 공개 노트가 생성되고, 상기 생성된 공개 노트에 상기 송금을 수신하기 위해 새로 생성된 보안 노트의 노트 해시가 기록되고, 송신자의 공개 밸런스에서 거래 금액이 차감되는 것을 특징으로 할 수 있다.According to another aspect, upon successful completion of verification by the verifier, a public note with information of the public balance to be converted is created in the blockchain network, and the remittance is received in the created public note. The note hash of the newly created secure note may be recorded, and the transaction amount may be deducted from the sender's public balance.

또 다른 측면에 따르면, 상기 공개 보안 거래는 송신자 계좌가 비공개되고, 상기 공개 보안 거래에 따른 거래 금액의 송금 이후에 상기 송금을 하는 제1 보안 노트의 보안 밸런스가 남아 있는 경우, 상기 남아있는 보안 밸런스를 위한 제2 보안 노트가 생성되며, 상기 영지식증명 기반의 증거를 생성하는 단계는, 상기 제1 보안 노트가 송신자의 소유이고, 상기 제1 보안 노트의 잔액이 상기 공개 보안 거래의 거래 금액 이상인지를 증명하는 증거를 생성하되, 상기 제2 보안 노트가 생성되는 경우에 상기 제2 보안 노트의 암호화된 정보를 알고 있다는 것을 증명하는 증거를 더 생성하는 것을 특징으로 할 수 있다.According to another aspect, in the public security transaction, if the sender's account is private and the security balance of the first security note making the transfer remains after the transfer of the transaction amount according to the public security transaction, the remaining security balance A second security note is created for, and the step of generating zero-knowledge proof-based evidence includes: the first security note is owned by the sender, and the balance of the first security note is greater than or equal to the transaction amount of the public security transaction. It may be characterized by generating evidence proving recognition, and further generating evidence proving that the encrypted information of the second secure note is known when the second secure note is created.

또 다른 측면에 따르면, 상기 거래를 증명하는 단계는, 상기 제1 보안 노트의 보안 밸런스가 상기 거래 금액보다 크거나 같은지 검증하는 단계; 상기 제1 보안 노트가 송신자의 소유인지 검증하는 단계; 상기 제1 보안 노트의 유효성을 검증하는 단계; 상기 제1 보안 노트의 보안 밸런스가 상기 거래 금액보다 큰 경우에 생성되는 제2 보안 노트의 유효성을 검증하는 단계; 상기 제2 보안 노트의 보안 밸런스가 상기 제1 보안 노트의 보안 밸런스와 상기 거래 금액의 차이인지 검증하는 단계; 상기 제2 보안 노트가 송신자 소유인지 검증하는 단계; 및 상기 공개 보안 거래의 서명이 송신자의 서명인지 검증하는 단계를 포함하는 것을 특징으로 할 수 있다.According to another aspect, verifying the transaction includes verifying whether the security balance of the first security note is greater than or equal to the transaction amount; verifying whether the first secure note belongs to the sender; verifying the validity of the first secure note; Verifying the validity of a second security note created when the security balance of the first security note is greater than the transaction amount; Verifying whether the security balance of the second security note is the difference between the security balance of the first security note and the transaction amount; Verifying whether the second secure note belongs to the sender; and verifying whether the signature of the public security transaction is the sender's signature.

또 다른 측면에 따르면, 상기 블록체인 네트워크의 검증자에 의해 상기 제1 보안 노트의 존재 여부와 사용 여부, 상기 제2 보안 노트의 존재 여부 및 상기 영지식증명 기반의 증거가 각각 검증되는 것을 특징으로 할 수 있다.According to another aspect, the existence and use of the first security note, the existence of the second security note, and the zero-knowledge proof-based evidence are each verified by the verifier of the blockchain network. can do.

또 다른 측면에 따르면, 상기 검증자에 의한 검증이 성공적으로 완료됨에 따라, 상기 블록체인 네트워크에서, 상기 제1 보안 노트가 상기 제1 보안 노트의 널러파이어(nullifier)에 사용된 노트로서 등록되고, 상기 제2 보안 노트가 생성되는 경우, 상기 제2 보안 노트의 노트 해시가 상기 널러파이어에 기록되고, 공개 밸런스를 위한 수신자의 공개 노트가 생성되고, 수신자의 공개 밸런스가 상기 공개 보안 거래의 거래 금액만큼 증가되는 것을 특징으로 할 수 있다.According to another aspect, upon successful completion of verification by the verifier, in the blockchain network, the first secure note is registered as a note used in a nullifier of the first secure note, When the second secure note is created, the note hash of the second secure note is recorded in the nullifier, the recipient's public note for the public balance is created, and the recipient's public balance is the transaction amount of the public security transaction. It can be characterized as increasing by as much as.

또 다른 측면에 따르면, 상기 보안 거래는 송신자 계좌, 수신자 계좌 및 거래 금액이 비공개되고, 상기 영지식증명 기반의 증거를 생성하는 단계는, 상기 보안 거래에 따른 송금을 하는 제1 보안 노트가 송신자의 소유이고, 상기 제1 보안 노트의 잔액의 합과 상기 보안 거래를 통해 새로 생성되는 제2 보안 노트의 잔액의 합이 같은지 증명하는 증거, 상기 제1 보안 노트 및 상기 제2 보안 노트가 유효한지 증명하는 증거 및 상기 보안 거래의 서명이 송신자의 서명인지 증명하는 증거를 생성하는 것을 특징으로 할 수 있다.According to another aspect, in the secure transaction, the sender's account, the recipient's account, and the transaction amount are kept private, and in the step of generating the zero-knowledge proof-based evidence, the first secure note for remittance according to the secure transaction is the sender's owned, evidence proving that the sum of the balance of the first security note and the sum of the balance of the second security note newly created through the security transaction are the same, proof that the first security note and the second security note are valid It may be characterized by generating evidence that proves that the signature of the secure transaction is the sender's signature.

또 다른 측면에 따르면, 상기 거래를 증명하는 단계는, 상기 제1 보안 노트 및 상기 제2 보안 노트가 유효한지 검증하는 단계; 상기 제1 보안 노트의 보안 밸런스의 합과 상기 제2 보안 노트의 보안 밸런스의 합이 같은지 검증하는 단계; 상기 제1 보안 노트가 모두 송신자 소유인지 검증하는 단계; 상기 제2 보안 노트가 적어도 하나의 수신자의 소유인지 검증하는 단계; 및 상기 보안 거래의 서명이 송신자의 서명인지 검증하는 단계를 포함하는 것을 특징으로 할 수 있다.According to another aspect, verifying the transaction includes verifying whether the first security note and the second security note are valid; Verifying whether the sum of the security balances of the first security note and the sum of the security balances of the second security note are the same; Verifying whether all of the first secure notes belong to the sender; verifying whether the second secure note belongs to at least one recipient; and verifying whether the signature of the secure transaction is the sender's signature.

또 다른 측면에 따르면, 상기 블록체인 네트워크의 검증자에 의해 상기 제1 보안 노트의 존재 여부와 사용 여부, 상기 제2 보안 노트의 존재 여부 및 상기 영지식증명 기반의 증거가 각각 검증되는 것을 특징으로 할 수 있다.According to another aspect, the existence and use of the first security note, the existence of the second security note, and the zero-knowledge proof-based evidence are each verified by the verifier of the blockchain network. can do.

또 다른 측면에 따르면, 상기 검증자에 의한 검증이 성공적으로 완료됨에 따라, 상기 블록체인 네트워크에서, 상기 제1 보안 노트가 상기 제1 보안 노트의 널러파이어(nullifier)에 사용된 노트로서 등록되고, 상기 제2 보안 노트가 생성되는 경우, 상기 제2 보안 노트의 노트 해시가 상기 널러파이어에 기록되는 것을 특징으로 할 수 있다.According to another aspect, upon successful completion of verification by the verifier, in the blockchain network, the first secure note is registered as a note used in a nullifier of the first secure note, When the second secure note is created, the note hash of the second secure note may be recorded in the nullifier.

또 다른 측면에 따르면, 상기 거래 방법은 상기 적어도 하나의 프로세서에 의해, 상기 적어도 하나의 거래를 생성하기 이전에 오프-체인(off-chain)을 통해 수신자의 암호화키 및 수신자 계정을 공유하는 단계를 더 포함할 수 있다.According to another aspect, the transaction method includes sharing, by the at least one processor, the recipient's encryption key and the recipient's account through off-chain before creating the at least one transaction. More may be included.

컴퓨터 장치와 결합되어 상기 방법을 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램을 제공한다.A computer program stored on a computer-readable recording medium is provided in conjunction with a computer device to execute the method on the computer device.

상기 방법을 컴퓨터 장치에 실행시키기 위한 프로그램이 기록되어 있는 컴퓨터 판독 가능한 기록매체를 제공한다.Provided is a computer-readable recording medium on which a program for executing the above method on a computer device is recorded.

컴퓨터 장치에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서에 의해, 공개 밸런스에서 보안 밸런스로의 송금을 위한 숨김 보안 거래, 보안 밸런스에서 공개 밸런스로의 송금을 위한 공개 보안 거래 및 보안 밸런스들간의 송금을 위한 보안 거래 중 적어도 하나의 거래를 생성하고, 상기 적어도 하나의 거래에 대해 비공개되는 정보를 알고 있음을 증명하기 위한 영지식증명 기반의 증거를 생성하고, 상기 영지식증명 기반의 증거를 포함하는 거래를 블록체인 네트워크로 요청하고, 상기 거래를 증명하는 것을 특징으로 하는 컴퓨터 장치를 제공한다.At least one processor configured to execute instructions readable by a computer device, said at least one processor to perform a hidden security transaction for a transfer from a public balance to a secure balance, a transfer from a secure balance to a public balance; Generate at least one transaction among a public security transaction and a security transaction for transfer between security balances, and generate zero-knowledge proof-based evidence to prove that you know non-public information about the at least one transaction, A computer device is provided that requests a transaction including the zero-knowledge proof-based evidence to a blockchain network and proves the transaction.

특정 계좌의 모든 거래 또는 특정 거래를 숨길 수 있다.You can hide all or specific transactions from a specific account.

도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 컴퓨터 장치의 예를 도시한 블록도이다.
도 3 및 도 4는 본 발명의 일실시예에 따른 UTXO의 구조의 예를 도시한 도면들이다.
도 5는 본 발명의 일실시예에 따른 숨긴 보안 거래의 예를 도시한 도면이다.
도 6은 본 발명의 일실시예에 따른 공개 보안 거래의 예를 도시한 도면이다.
도 7 및 도 8은 본 발명의 일실시예에 따른 보안 거래의 예를 도시한 도면들이다.
도 9는 본 발명의 일실시예에 따른 거래 방법의 예를 도시한 흐름도이다.
1 is a diagram illustrating an example of a network environment according to an embodiment of the present invention.
Figure 2 is a block diagram showing an example of a computer device according to an embodiment of the present invention.
Figures 3 and 4 are diagrams showing an example of the structure of a UTXO according to an embodiment of the present invention.
Figure 5 is a diagram illustrating an example of a hidden security transaction according to an embodiment of the present invention.
Figure 6 is a diagram illustrating an example of a public security transaction according to an embodiment of the present invention.
Figures 7 and 8 are diagrams showing an example of a secure transaction according to an embodiment of the present invention.
Figure 9 is a flowchart showing an example of a transaction method according to an embodiment of the present invention.

이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings.

본 발명의 실시예들에 따른 거래 시스템은 적어도 하나의 컴퓨터 장치에 의해 구현될 수 있다. 이때, 컴퓨터 장치에는 본 발명의 일실시예에 따른 컴퓨터 프로그램이 설치 및 구동될 수 있고, 컴퓨터 장치는 구동된 컴퓨터 프로그램의 제어에 따라 본 발명의 실시예들에 따른 거래 방법을 수행할 수 있다. 상술한 컴퓨터 프로그램은 컴퓨터 장치와 결합되어 거래 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장될 수 있다.The trading system according to embodiments of the present invention may be implemented by at least one computer device. At this time, the computer program according to an embodiment of the present invention may be installed and driven in the computer device, and the computer device may perform the transaction method according to the embodiments of the present invention under the control of the driven computer program. The above-described computer program can be combined with a computer device and stored in a computer-readable recording medium to execute the transaction method on the computer.

도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다. 도 1의 네트워크 환경은 복수의 전자 기기들(110, 120, 130, 140), 복수의 서버들(150, 160) 및 네트워크(170)를 포함하는 예를 나타내고 있다. 이러한 도 1은 발명의 설명을 위한 일례로 전자 기기의 수나 서버의 수가 도 1과 같이 한정되는 것은 아니다. 또한, 도 1의 네트워크 환경은 본 실시예들에 적용 가능한 환경들 중 하나의 예를 설명하는 것일 뿐, 본 실시예들에 적용 가능한 환경이 도 1의 네트워크 환경으로 한정되는 것은 아니다.1 is a diagram illustrating an example of a network environment according to an embodiment of the present invention. The network environment in FIG. 1 shows an example including a plurality of electronic devices 110, 120, 130, and 140, a plurality of servers 150 and 160, and a network 170. Figure 1 is an example for explaining the invention, and the number of electronic devices or servers is not limited as in Figure 1. In addition, the network environment in FIG. 1 only explains one example of environments applicable to the present embodiments, and the environment applicable to the present embodiments is not limited to the network environment in FIG. 1.

복수의 전자 기기들(110, 120, 130, 140)은 컴퓨터 장치로 구현되는 고정형 단말이거나 이동형 단말일 수 있다. 복수의 전자 기기들(110, 120, 130, 140)의 예를 들면, 스마트폰(smart phone), 휴대폰, 네비게이션, 컴퓨터, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 태블릿 PC 등이 있다. 일례로 도 1에서는 전자 기기(110)의 예로 스마트폰의 형상을 나타내고 있으나, 본 발명의 실시예들에서 전자 기기(110)는 실질적으로 무선 또는 유선 통신 방식을 이용하여 네트워크(170)를 통해 다른 전자 기기들(120, 130, 140) 및/또는 서버(150, 160)와 통신할 수 있는 다양한 물리적인 컴퓨터 장치들 중 하나를 의미할 수 있다.The plurality of electronic devices 110, 120, 130, and 140 may be fixed terminals or mobile terminals implemented as computer devices. Examples of the plurality of electronic devices 110, 120, 130, and 140 include smart phones, mobile phones, navigation devices, computers, laptops, digital broadcasting terminals, PDAs (Personal Digital Assistants), and PMPs (Portable Multimedia Players). ), tablet PC, etc. For example, in FIG. 1, the shape of a smartphone is shown as an example of the electronic device 110. However, in embodiments of the present invention, the electronic device 110 actually communicates with other devices through the network 170 using a wireless or wired communication method. It may refer to one of various physical computer devices capable of communicating with electronic devices 120, 130, 140 and/or servers 150, 160.

통신 방식은 제한되지 않으며, 네트워크(170)가 포함할 수 있는 통신망(일례로, 이동통신망, 유선 인터넷, 무선 인터넷, 방송망)을 활용하는 통신 방식뿐만 아니라 기기들간의 근거리 무선 통신 역시 포함될 수 있다. 예를 들어, 네트워크(170)는, PAN(personal area network), LAN(local area network), CAN(campus area network), MAN(metropolitan area network), WAN(wide area network), BBN(broadband network), 인터넷 등의 네트워크 중 하나 이상의 임의의 네트워크를 포함할 수 있다. 또한, 네트워크(170)는 버스 네트워크, 스타 네트워크, 링 네트워크, 메쉬 네트워크, 스타-버스 네트워크, 트리 또는 계층적(hierarchical) 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있으나, 이에 제한되지 않는다.The communication method is not limited, and may include not only a communication method utilizing a communication network that the network 170 may include (for example, a mobile communication network, wired Internet, wireless Internet, and a broadcast network), but also short-range wireless communication between devices. For example, the network 170 may include a personal area network (PAN), a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), a wide area network (WAN), and a broadband network (BBN). , may include one or more arbitrary networks such as the Internet. Additionally, the network 170 may include any one or more of network topologies including a bus network, star network, ring network, mesh network, star-bus network, tree or hierarchical network, etc. Not limited.

서버(150, 160) 각각은 복수의 전자 기기들(110, 120, 130, 140)과 네트워크(170)를 통해 통신하여 명령, 코드, 파일, 컨텐츠, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있다. 예를 들어, 서버(150)는 네트워크(170)를 통해 접속한 복수의 전자 기기들(110, 120, 130, 140)로 서비스(일례로, 거래(일례로, 송금) 서비스, 결제 서비스, 가상 거래소 서비스, 리스크 모니터링 서비스, 인스턴트 메시징 서비스, 게임 서비스, 그룹 통화 서비스(또는 음성 컨퍼런스 서비스), 메시징 서비스, 메일 서비스, 소셜 네트워크 서비스, 지도 서비스, 번역 서비스, 금융 서비스, 검색 서비스, 컨텐츠 제공 서비스 등)를 제공하는 시스템일 수 있다.Each of the servers 150 and 160 is a computer device or a plurality of computers that communicate with a plurality of electronic devices 110, 120, 130, 140 and a network 170 to provide commands, codes, files, content, services, etc. It can be implemented with devices. For example, the server 150 provides services (e.g., transaction (e.g., remittance) service, payment service, virtual service) to a plurality of electronic devices (110, 120, 130, and 140) connected through the network 170. Exchange service, risk monitoring service, instant messaging service, game service, group call service (or voice conference service), messaging service, mail service, social network service, map service, translation service, financial service, search service, content provision service, etc. ) may be a system that provides.

도 2는 본 발명의 일실시예에 따른 컴퓨터 장치의 예를 도시한 블록도이다. 앞서 설명한 복수의 전자 기기들(110, 120, 130, 140) 각각이나 서버들(150, 160) 각각은 도 2를 통해 도시된 컴퓨터 장치(200)에 의해 구현될 수 있다.Figure 2 is a block diagram showing an example of a computer device according to an embodiment of the present invention. Each of the plurality of electronic devices 110, 120, 130, and 140 described above or each of the servers 150 and 160 may be implemented by the computer device 200 shown in FIG. 2.

이러한 컴퓨터 장치(200)는 도 2에 도시된 바와 같이, 메모리(210), 프로세서(220), 통신 인터페이스(230) 그리고 입출력 인터페이스(240)를 포함할 수 있다. 메모리(210)는 컴퓨터에서 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 디스크 드라이브와 같은 비소멸성 대용량 기록장치는 메모리(210)와는 구분되는 별도의 영구 저장 장치로서 컴퓨터 장치(200)에 포함될 수도 있다. 또한, 메모리(210)에는 운영체제와 적어도 하나의 프로그램 코드가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(210)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 메모리(210)로 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신 인터페이스(230)를 통해 메모리(210)에 로딩될 수도 있다. 예를 들어, 소프트웨어 구성요소들은 네트워크(170)를 통해 수신되는 파일들에 의해 설치되는 컴퓨터 프로그램에 기반하여 컴퓨터 장치(200)의 메모리(210)에 로딩될 수 있다.As shown in FIG. 2, this computer device 200 may include a memory 210, a processor 220, a communication interface 230, and an input/output interface 240. The memory 210 is a computer-readable recording medium and may include a non-permanent mass storage device such as random access memory (RAM), read only memory (ROM), and a disk drive. Here, non-perishable large-capacity recording devices such as ROM and disk drives may be included in the computer device 200 as a separate permanent storage device that is distinct from the memory 210. Additionally, an operating system and at least one program code may be stored in the memory 210. These software components may be loaded into the memory 210 from a computer-readable recording medium separate from the memory 210. Such separate computer-readable recording media may include computer-readable recording media such as floppy drives, disks, tapes, DVD/CD-ROM drives, and memory cards. In another embodiment, software components may be loaded into the memory 210 through the communication interface 230 rather than a computer-readable recording medium. For example, software components may be loaded into memory 210 of computer device 200 based on computer programs installed by files received over network 170.

프로세서(220)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(210) 또는 통신 인터페이스(230)에 의해 프로세서(220)로 제공될 수 있다. 예를 들어 프로세서(220)는 메모리(210)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.The processor 220 may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input/output operations. Commands may be provided to the processor 220 by the memory 210 or the communication interface 230. For example, processor 220 may be configured to execute received instructions according to program code stored in a recording device such as memory 210.

통신 인터페이스(230)는 네트워크(170)를 통해 컴퓨터 장치(200)가 다른 장치(일례로, 앞서 설명한 저장 장치들)와 서로 통신하기 위한 기능을 제공할 수 있다. 일례로, 컴퓨터 장치(200)의 프로세서(220)가 메모리(210)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청이나 명령, 데이터, 파일 등이 통신 인터페이스(230)의 제어에 따라 네트워크(170)를 통해 다른 장치들로 전달될 수 있다. 역으로, 다른 장치로부터의 신호나 명령, 데이터, 파일 등이 네트워크(170)를 거쳐 컴퓨터 장치(200)의 통신 인터페이스(230)를 통해 컴퓨터 장치(200)로 수신될 수 있다. 통신 인터페이스(230)를 통해 수신된 신호나 명령, 데이터 등은 프로세서(220)나 메모리(210)로 전달될 수 있고, 파일 등은 컴퓨터 장치(200)가 더 포함할 수 있는 저장 매체(상술한 영구 저장 장치)로 저장될 수 있다.The communication interface 230 may provide a function for the computer device 200 to communicate with other devices (eg, the storage devices described above) through the network 170. For example, a request, command, data, file, etc. generated by the processor 220 of the computer device 200 according to a program code stored in a recording device such as memory 210 is transmitted to the network ( 170) and can be transmitted to other devices. Conversely, signals, commands, data, files, etc. from other devices may be received by the computer device 200 through the communication interface 230 of the computer device 200 via the network 170. Signals, commands, data, etc. received through the communication interface 230 may be transmitted to the processor 220 or memory 210, and files, etc. may be stored in a storage medium (as described above) that the computer device 200 may further include. It can be stored as a permanent storage device).

입출력 인터페이스(240)는 입출력 장치(250)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 마이크, 키보드 또는 마우스 등의 장치를, 그리고 출력 장치는 디스플레이, 스피커와 같은 장치를 포함할 수 있다. 다른 예로 입출력 인터페이스(240)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. 입출력 장치(250) 중 적어도 하나는 컴퓨터 장치(200)와 하나의 장치로 구성될 수도 있다. 예를 들어, 스마트폰과 같이 터치스크린, 마이크, 스피커 등이 컴퓨터 장치(200)에 포함된 형태로 구현될 수 있다. The input/output interface 240 may be a means for interfacing with the input/output device 250. For example, input devices may include devices such as a microphone, keyboard, or mouse, and output devices may include devices such as displays and speakers. As another example, the input/output interface 240 may be a means for interfacing with a device that integrates input and output functions, such as a touch screen. At least one of the input/output devices 250 may be configured as one device with the computer device 200. For example, like a smart phone, a touch screen, microphone, speaker, etc. may be included in the computer device 200.

또한, 다른 실시예들에서 컴퓨터 장치(200)는 도 2의 구성요소들보다 더 적은 혹은 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 컴퓨터 장치(200)는 상술한 입출력 장치(250) 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다.Additionally, in other embodiments, computer device 200 may include fewer or more components than those of FIG. 2 . However, there is no need to clearly show most prior art components. For example, the computer device 200 may be implemented to include at least some of the input/output devices 250 described above, or may further include other components such as a transceiver, a database, etc.

본 발명의 실시예들에 따른 거래 방법 및 거래 시스템은 중앙은행 디지털 화폐(Central Bank Digital Currency, CBDC)를 이용하는 거래와 관련하여, 영지식증명(Zero-Knowledge Proof, ZKP)을 이용하여 특정 계좌의 모든 거래 또는 특정 거래를 숨길 수 있다. 여기서, 거래를 숨긴다는 것은 송금인(송신자), 수취인(수신자) 및 거래 금액 중 적어도 하나를 비공개 상태로 거래를 처리하는 것을 의미할 수 있다.The transaction method and transaction system according to embodiments of the present invention uses zero-knowledge proof (ZKP) in relation to transactions using central bank digital currency (CBDC), You can hide all transactions or specific transactions. Here, hiding the transaction may mean processing the transaction with at least one of the sender (sender), the recipient (receiver), and the transaction amount kept private.

영지식증명은 암호학에서 누군가가 상대방에게 어떤 사항(statement)이 참이라는 것을 증명할 때, 그 문장의 참 거짓 여부를 제외한 어떤 것도 노출되지 않는 인터랙티브한 절차를 뜻한다. 어떤 문장이 참이라는 것을 증명하려는 쪽을 증명자(prover)라 하고, 증명 과정에 참여하여 증명자와 정보를 주고 받는 쪽을 검증자(verifier)라고 한다. 영지식증명에 참여하는 당사자들이 상대방을 속이려는 목적으로 프로토콜을 임의로 변경하는 경우, 당사자들이 부정직하다 또는 정직하지 않다(dishonest, 혹은 cheating)고 한다. 그 외의 경우에는, 정직하다고 한다. 영지식 증명은 다음과 같은 세가지 성질을 만족시켜야 한다.In cryptography, a zero-knowledge proof refers to an interactive procedure in which when someone proves to the other party that a statement is true, nothing is revealed except whether the statement is true or false. The person who tries to prove that a statement is true is called a prover, and the person who participates in the proof process and exchanges information with the prover is called a verifier. When parties participating in a zero-knowledge proof arbitrarily change the protocol for the purpose of deceiving the other party, the parties are said to be dishonest or cheating. In other cases, it is said to be honest. A zero-knowledge proof must satisfy the following three properties:

- 완전성(completeness): 어떤 문장이 참이면, 정직한 증명자는 정직한 검증자에게 이 사실을 납득시킬 수 있어야 한다.- Completeness: If a statement is true, an honest prover must be able to convince an honest verifier of this fact.

- 건실성(soundness): 어떤 문장이 거짓이면, 어떠한 부정직한 증명자라도 정직한 검증자에게 이 문장이 사실이라고 납득시킬 수 없어야 한다.- Soundness: If a statement is false, no dishonest prover should be able to convince an honest verifier that this statement is true.

- 영지식성(zero-knowledgeness): 어떤 문장이 참이면, 검증자는 문장의 참 거짓 이외에는 아무것도 알 수 없어야 한다.- Zero-knowledgeness: If a sentence is true, the verifier should not know anything other than the truth or falsity of the sentence.

본 발명의 실시예들에 따른 거래 방법 및 거래 시스템은 이러한 영지식증명을 이용하여 특정 계좌의 모든 거래 또는 특정 거래를 숨길 수 있다.The transaction method and transaction system according to embodiments of the present invention can hide all transactions or specific transactions of a specific account using such zero-knowledge proof.

본 발명의 실시예들에 따른 거래 방법 및 거래 시스템은 어카운트(account) 기반이면서 공개 거래와 비공개 거래가 모두 하나의 블록체인에서 이루어지도록 할 수 있으며, 어카운트 기반의 장점과 UTXO(Unspent Transaction Output) 기반의 장점을 모두 가질 수 있다. 이더리움은 누구나 인터넷만 연결되어 있으면 DApp(Decentralized application) 네트워크에 참여할 수 있는 구조이며, 스마트 컨트랙트의 사용이 가능한 장점이 있다. 이러한 이더리움은 계좌잔고모델(account balance model)을 사용한다. 여기서, 어카운트는 이더리움(Ethereum)의 상태를 구성하는 오브젝트일 수 있다. 한편, 비트코인은 이더리움과 달리 UTXO 기반으로 거래의 유효성을 검사하고 코인의 존재여부를 확인하는 보안 및 익명성을 가질 수 있는 장점이 있다.The transaction method and transaction system according to embodiments of the present invention are account-based and can enable both public and private transactions to be carried out in one blockchain, with the advantages of account-based and UTXO (Unspent Transaction Output)-based. You can have all the advantages. Ethereum has a structure that allows anyone to participate in the DApp (Decentralized application) network as long as they are connected to the Internet, and has the advantage of being able to use smart contracts. Ethereum uses an account balance model. Here, the account may be an object that constitutes the state of Ethereum. Meanwhile, unlike Ethereum, Bitcoin has the advantage of security and anonymity by validating transactions and confirming the existence of coins based on UTXO.

본 발명의 실시예들에 따른 거래 방법 및 거래 시스템은 기본 어카운트 모델에 UTXO 모델을 추가하여 공개 거래에는 어카운트 모델을 보안 거래에는 UTXO 모델을 사용한다. 보안 거래시에는 송금인, 수취인 및 거래 금액을 모두 숨길 수 있다. 이를 위해, UTXO 모델에 지캐시(zcash) 방식이 적용될 수 있다. 이때, 밸런스(balance, 잔액)는 공개 밸런스(공개 밸런스)와 보안 밸런스(보안 밸런스)로 구분될 수 있다. 공개 밸런스는 소유자의 밸런스를 확인할 수 있는 공개된 정보로 어카운트 모델이며, 보안 밸런스는 소유자 자신만 알 수 있는 밸런스로 UTXO 모델이다. 공개 밸런스와 보안 밸런스는 하나의 계정이 모두 가지고 있을 수도 있고, 한 계정이 공개 밸런스와 보안 밸런스 중 하나의 밸런스 방식만 사용하도록 구성할 수도 있다. 공개 밸런스에서 보안 밸런스로 송금될 경우, 공개 밸런스는 송금 금액만큼 소각되고 보안 밸런스는 송금 금액만큼 발행된다. 반대로 보안 밸런스에서 공개 밸런스로 송금될 경우, 보안 밸런스는 송금 금액만큼 소각되고, 공개 밸런스는 송금 금액만큼 발행된다. 공개 밸런스와 보안 밸런스가 상호 교환되면, 공개 밸런스 총 통화량과 보안 밸런스의 총 통화량은 변경되지만, 전체 통화량은 변경되지 않는다. 공개 밸런스와 보안 밸런스의 발행, 소각되는 정보는 공개 노트(public note)로 기록되어 추적될 수 있다.The transaction method and transaction system according to embodiments of the present invention adds the UTXO model to the basic account model and uses the account model for public transactions and the UTXO model for secure transactions. During secure transactions, the sender, recipient, and transaction amount can all be hidden. For this purpose, the zcash method can be applied to the UTXO model. At this time, the balance can be divided into a public balance (public balance) and a secure balance (secure balance). The public balance is an account model that is public information that allows the owner's balance to be confirmed, while the secure balance is a balance that only the owner can know and is a UTXO model. One account may have both a public balance and a secure balance, or an account may be configured to use only one of the public balance and secure balance methods. When a transfer is made from a public balance to a secure balance, the public balance is burned for the amount of the transfer and a security balance is issued for the amount of the transfer. Conversely, when a transfer is made from a secure balance to a public balance, the security balance is burned for the amount of the transfer, and the public balance is issued for the amount of the transfer. When the public balance and the secure balance are interchanged, the total monetary volume of the public balance and the total monetary volume of the secure balance change, but the total monetary volume does not change. Information on the issuance and burning of public balances and security balances can be recorded and tracked as public notes.

도 3 및 도 4는 본 발명의 일실시예에 따른 UTXO의 구조의 예를 도시한 도면들이다. UTXO 모델에서 노트는 노트의 소유자 정보(소유자 주소(owner address))와 잔액(밸런스(balance))을 소유자의 암호화키(encryptKey)로 암호화하여 저장할 수 있다. 도 3에서는 소유자 주소 "A address"의 제1 노트(310), 소유자 주소 "B address"의 제2 노트(320) 및 소유자 주소 "C address"의 제3 노트(330)를 나타내고 있다. 이때, 도 3에서는 제1 노트(310)의 소유자 정보 "A address"와 잔액 "1000"이 암호화되어 저장되는 부분을 암호화된 바디(encryptBody([]byte))로 표현하고 있다. 노트의 암호화된 바디에 암호화되어 저장되는 정보는 소유자 주소(owner address)와 잔액의 값(value), 및 랜덤 해시값(또는 이후에 설명될 랜덤시드(RandomSeed))을 포함할 수 있으나, 도 3에서 랜덤 해시값의 도시는 생략되었다.Figures 3 and 4 are diagrams showing an example of the structure of a UTXO according to an embodiment of the present invention. In the UTXO model, notes can be stored by encrypting the note's owner information (owner address) and balance (balance) with the owner's encryption key (encryptKey). Figure 3 shows a first note 310 of the owner address "A address", a second note 320 of the owner address "B address", and a third note 330 of the owner address "C address". At this time, in FIG. 3, the part where the owner information "A address" and the balance "1000" of the first note 310 are encrypted and stored are expressed as an encrypted body (encryptBody([]byte)). Information encrypted and stored in the encrypted body of the note may include the owner address, the value of the balance, and a random hash value (or a random seed (RandomSeed) to be described later), but Figure 3 The illustration of the random hash value is omitted.

또한, 이러한 노트가 생성되는 것으로 확정된 블록의 번호(block height)가 UTXO의 실행 여부를 기록하기 위해 공개 노트에 포함되어 활용될 수 있다. 이러한 블록 번호에 대해서는 이후 더욱 자세히 설명한다.Additionally, the number (block height) of the block in which this note is confirmed to be created can be included in the public note and used to record whether or not the UTXO is executed. These block numbers will be explained in more detail later.

노트의 커밋먼트(commitments)는 파생된 이전 노트의 해시 목록일 수 있다. 여러 개의 노트에서 해시들이 모인 경우, 2개 이상의 해시가 존재할 수 있으며, 이 경우 해시에 포함된 값의 합이 현재 노트의 잔액과 같아야 한다. 이전 노트가 분할될 경우에는 하나의 커밋먼트가 존재할 수 있으며, 블록 생성 보상이나 코인 주조와 같이 무에서 노트가 생성될 경우에는 비어있는 커밋먼트(empty commitment) 또는 제로 해시(zero hash)가 기록될 수 있다. 도 4에서는 소유자 주소 "C address"의 제3 노트(330)와 소유자 주소 "D address"의 제4 노트(410)에 의해 소유자 주소 "E address"의 제5 노트(420)가 생성된 예를 나타내고 있다. 이때, 제5 노트(420)의 커밋먼트에는 제3 노트(330)의 해시와 제4 노트(410)의 해시가 포함될 수 있으며, 제5 노트(420)의 커밋먼트에 포함된 해시에 포함된 값의 합(1000+500=1500)은 제5 노트(420)의 잔액(1500)과 같아야 한다.A note's commitments may be a list of hashes of previous notes from which it was derived. When hashes are gathered from multiple notes, there may be two or more hashes, in which case the sum of the values contained in the hashes must equal the current note balance. If a previous note is split, there may be one commitment, and if a note is created from scratch, such as through a block creation reward or coin minting, an empty commitment or zero hash may be recorded. You can. In Figure 4, an example is shown in which the fifth note 420 of the owner address "E address" is created by the third note 330 of the owner address "C address" and the fourth note 410 of the owner address "D address". It is showing. At this time, the commitment of the fifth note 420 may include the hash of the third note 330 and the hash of the fourth note 410, and the hash included in the commitment of the fifth note 420 may include the hash of the third note 330 and the hash of the fourth note 410. The sum of the values (1000+500=1500) must be equal to the balance (1500) of the fifth note (420).

노트의 널러파이어(nullifiers)에는 해당 노트가 사용되어서 다른 노트들이 생성될 경우, 파생되는 노트들의 해시가 추가될 수 있다. 소유만 변경되는 경우거나, 여러 다른 노트들과 합쳐져서 하나의 노트로 모아질 경우에는 하나의 널러파이어가 설정될 수 있다. 현재 노트의 잔액을 분할한 경우, 여러 개의 널러파이어가 추가될 수 있다. 이때 널러파이어에 해당하는 모든 노트의 잔액의 합은 현재 노트의 잔액과 같아야 한다. 널러파이어가 널(null)인 경우에는 아직 소비되지 않은 노트로 이를 거래에 사용할 수 있다. 소각되거나, 보안 밸런스가 공개 밸런스로 변환될 경우에는 제로 해시가 입력될 수 있다. 도 4에서는 소유자 주소 "E address"의 제5 노트(420)가 소유자 주소 "F address"의 제6 노트(430) 및 소유자 주소 "G address"의 제7 노트(430)로 분할된 예를 나타내고 있다. 이때, 제5 노트(420)의 널러파이어에는 제5 노트(420)로부터 파생된 제6 노트(430)의 해시와 제7 노트(430)의 해시가 추가될 수 있다. 이 경우에도 제5 노트(420)의 널러파이어에 포함된 해시의 값의 합(1200+300=1500)은 제5 노트(420)의 잔액(1500)과 같아야 한다.When other notes are created by using that note, hashes of the derived notes can be added to the nullifiers of the note. A single nullifier can be set when only ownership changes or when several other notes are combined into one note. If the balance of the current note is split, multiple nullifiers may be added. At this time, the sum of the balances of all notes corresponding to the nullifier must be equal to the balance of the current note. If the nullifier is null, you can use it for trading with notes that have not yet been spent. If it is burned or the security balance is converted to a public balance, a zero hash may be input. Figure 4 shows an example in which the 5th note 420 of the owner address "E address" is divided into the 6th note 430 of the owner address "F address" and the 7th note 430 of the owner address "G address". there is. At this time, the hash of the sixth note 430 and the hash of the seventh note 430 derived from the fifth note 420 may be added to the nullifier of the fifth note 420. In this case as well, the sum of the hash values (1200+300=1500) included in the nullifier of the fifth note 420 must be equal to the balance (1500) of the fifth note 420.

본 발명의 실시예들에서는 공개 밸런스와 보안 밸런스가 존재하기 때문에 이러한 UTXO의 구조에서의 노트 역시 본 발명의 실시예들에서는 공개 노트와 보안 노트로 분류될 수 있다.Since there is a public balance and a secure balance in the embodiments of the present invention, notes in this UTXO structure can also be classified into public notes and secure notes in the embodiments of the present invention.

보안 노트는 실제 소유자와 값(일례로, 잔액)의 정보들이 담긴 구조체로, 블록체인상에는 암호화된 바이너리가 저장될 수 있다. 암호화 및 복호화를 위한 암호화키로 보안 노트가 암호화 및 복호화될 수 있다. 암호화키로는 서명키와는 다른 키가 사용될 수 있다. 보안 노트는 암호화키로 암호화되어 널러파이어에 등록될 수 있다. 암호화되는 내용은 소유자 주소(owner address), 잔액의 값(value), 그리고 노트를 암호화할 때 내용이 유추되지 않도록 사용되는 임의의 값으로서 선정된 랜덤시드(randomSeed)를 포함할 수 있다.A secure note is a structure containing information about the actual owner and value (e.g., balance), and an encrypted binary can be stored on the blockchain. Secure notes can be encrypted and decrypted with an encryption key for encryption and decryption. A key different from the signing key may be used as the encryption key. Secure notes can be encrypted with an encryption key and registered with Nullifier. The encrypted content may include the owner address, the balance value, and a random seed selected as a random value used to prevent the content from being inferred when encrypting the note.

공개 노트는 소유자와 발행 또는 소각되는 공개 밸런스의 정보를 담은 구조체로, 체인에는 공개된 정보로 저장될 수 있다. 공개 노트는 보안 노트를 새로 발행할 때 공개 밸런스가 소각되거나 보안 노트의 소각으로 공개 밸런스가 발생될 때 생성될 수 있다. 공개 노트에 포함되는 내용은 소유자 주소(owner address), 잔액의 값(value), 블록 번호(block height) 및 거래 인덱스(transaction index)를 포함할 수 있다. 블록 번호는 해당 공개 노트가 생성되는 블록의 높이로서 해당 공개 노트가 생성된 블록의 정보를 기록하고 동일한 공개 노트가 생성되지 않도록 하기 위한 목적으로 사용될 수 있다. 또한, 거래 인덱스는 같은 소유자가 같은 잔액을 같은 블록에서 생성하는 경우를 구분하기 위해 블록에서 각 거래를 구분하기 위해 사용될 수 있다.A public note is a structure containing information about the owner and the public balance issued or burned, and can be stored as public information on the chain. Public notes can be created when the public balance is burned when a new security note is issued, or when the public balance is generated by the burning of a security note. Content included in the public note may include owner address, balance value, block number, and transaction index. The block number is the height of the block in which the public note is created and can be used to record information on the block in which the public note was created and to prevent identical public notes from being created. Additionally, the transaction index can be used to distinguish each transaction in a block to distinguish cases where the same owner creates the same balance in the same block.

노트 해시 역시 보안 노트 해시와 공개 노트 해시로 구분될 수 있다.Note hashes can also be divided into secure note hashes and public note hashes.

보안 노트 해시는 secret note hash = s + hash(encrypt(secret note))와 같이 보안 노트를 암호화한 값을 해싱하여 생성될 수 있다. 이러한 노트 해시는 ZKP 증명자가 생성되는 보안 노트와 암호화된 데이터의 변조를 막기 위해서 암호화된 데이터의 해시로 생성될 수 있다. 블록 번호는 블록이 확정되지 않으면 알 수 없으므로 보안 노트 해시를 만들 때 사용되지 않으며, 공개 노트 해시와 구분하기 위해 보안 노트 해시의 앞에 "s"가 구분값으로 붙을 수 있다.The secure note hash can be generated by hashing the value that encrypted the secure note, such as secret note hash = s + hash(encrypt(secret note)). These note hashes can be created as a hash of the encrypted data to prevent tampering with the security note and encrypted data created by the ZKP prover. Since the block number cannot be known unless the block is confirmed, it is not used when creating a secure note hash. To distinguish it from a public note hash, an "s" can be added to the front of the secure note hash as a separator.

공개 노트 해시는 public note has = p + hash(owner address, value, block height, transaction index)와 같이 블록체인에서 검증이 완료된 후에 변경된 상태 정보를 갱신할 때 생성될 수 있다. 공개 노트 해시는 보안 노트 해시와 구분하기 위해 공개 노트 해시의 앞에 "p"가 구분값으로 붙을 수 있다.A public note hash can be created when updating changed state information after verification is completed in the blockchain, such as public note has = p + hash(owner address, value, block height, transaction index). To distinguish a public note hash from a secure note hash, "p" may be added to the front of the public note hash as a separator.

블록에 기록되는 값은 거래 정보와 ZKP의 증거(proof)의 검증 결과(검증 성공 또는 검증 실패)를 포함할 수 있다.The values recorded in the block may include transaction information and the verification result (verification success or verification failure) of ZKP's proof.

각각의 거래는 숨긴 보안 거래(HideSecretTransaction), 공개 보안 거래(PublicSecretTransaction) 및 보안 거래(SecretTransction)의 API들로 구성될 수 있다. 여기서 숨긴 보안 거래는 공개 밸런스에서 보안 밸런스로 송금하는 거래를 의미할 수 있으며, 공개 보안 거래는 보안 밸런스에서 공개 밸런스로 송금하는 거래를, 보안 거래는 보안 밸런스에서 보안 밸런스로 송금하는 거래를 각각 의미할 수 있다.Each transaction can be composed of the following APIs: HideSecretTransaction, PublicSecretTransaction, and SecretTransction. Here, a hidden security transaction may refer to a transaction that transfers money from a public balance to a secure balance, a public security transaction may refer to a transaction that transfers money from a security balance to a public balance, and a secure transaction may refer to a transaction that transfers money from a security balance to a security balance. can do.

숨긴 보안 거래와 공개 보안 거래의 경우, 공개 밸런스의 공개되는 정보를 변경해야 하므로 전환하는 금액과 정보들은 숨길 수 없다. 일례로, 숨긴 보안 거래는 수신자의 정보는 숨길 수 있는 반면, 송신자의 정보와 거래 금액을 숨길 수 없으며, 공개 보안 거래는 송신자의 정보를 숨길 수 있는 반면, 수신자의 정보와 거래 금액을 숨길 수 없다. 하지만, 보안 거래의 경우에는 송신자, 수신자 및 거래 금액을 모두 숨길 수 있다.In the case of hidden and public security transactions, the amount and information to be converted cannot be hidden because the disclosed information of the public balance must be changed. For example, a hidden secure transaction can hide the recipient's information, but cannot hide the sender's information and the transaction amount, and an open secure transaction can hide the sender's information, but cannot hide the recipient's information and the transaction amount. . However, in the case of secure transactions, the sender, receiver, and transaction amount can all be hidden.

우선, 공개 거래는 다음 (1) 내지 (7)과 같은 정보들을 포함할 수 있다.First of all, a public transaction may include information such as the following (1) to (7).

(1) from: 송신자 계좌(또는 거래를 보내는 주소, 서명하는 주체, 송신자)(1) from: Sender account (or address sending transaction, signing entity, sender)

(2) to: 수신자 계좌(또는 송금을 수신하는 주소)(2) to: Recipient's account (or address to receive remittance)

(3) value: 거래 금액(송금 금액)(3) value: transaction amount (remittance amount)

(4) vin: 송금하는 utxo 노트(in_note)의 목록(4) vin: List of utxo notes (in_note) to be remitted

- note_hash: 노트 해시 - note_hash: note hash

(5) vout: 송금되어지는 utxo 노트(out_note)의 목록(5) vout: List of utxo notes (out_note) to be remitted

- note_encrypt_data: 노트의 암호화된 데이터- note_encrypt_data: Encrypted data of the note

- note_encrypt_key: 노트를 암호화한 키(공개되는 정보이므로 익명성을 위해서 one-time address로 적용될 수 있음.)- note_encrypt_key: Key that encrypted the note (since it is public information, it can be applied as a one-time address for anonymity)

- note_hash: 노트 해시- note_hash: note hash

(6) proof: 숨겨지는 정보의 ZKP 증거(6) proof: ZKP proof of hidden information

(7) signature: 거래의 송신자의 서명(7) signature: Signature of the sender of the transaction

도 5는 본 발명의 일실시예에 따른 숨긴 보안 거래의 예를 도시한 도면이다. 도 5는 소유자 주소(owner address), 잔액의 값(value), 블록 번호(block height) 및 거래 인덱스(transaction index)를 포함하는 공개 노트(510)에서 소유자 주소, 잔액의 값 및 랜덤시드(randomSeed)를 포함하는 보안 노트(520)로의 송금의 예를 나타내고 있다. 이 경우, 공개 노트(510)가 포함하는 소유자 주소는 송신자의 주소일 수 있으며, 보안 노트(520)가 포함하는 소유자 주소는 수신자의 주소일 수 있다. 또한, 공개 노트(510)의 잔액은 공개 밸런스를, 보안 노트(520)의 잔액은 보안 밸런스를 의미할 수 있다. 공개 노트(510)로부터 파생된 보안 노트(520)는 이전 노트인 공개 노트(510)의 노트 해시를 커밋먼트에 저장할 수 있다. 이때, 이전 노트가 공개 노트(510)이기 때문에 노트 해시 앞에는 "p"의 구분값이 부여될 수 있다.Figure 5 is a diagram illustrating an example of a hidden security transaction according to an embodiment of the present invention. 5 shows the owner address, balance value, and random seed in a public note 510 including the owner address, balance value, block number (block height), and transaction index. ) shows an example of a remittance to a secure note 520 containing. In this case, the owner address included in the public note 510 may be the sender's address, and the owner address included in the secure note 520 may be the address of the recipient. Additionally, the balance of the public note 510 may mean a public balance, and the balance of the secure note 520 may mean a secure balance. The secure note 520 derived from the public note 510 may store the note hash of the previous note, the public note 510, in a commitment. At this time, because the previous note is a public note 510, a distinction value of “p” may be given in front of the note hash.

여기서, 숨긴 보안 거래는 이미 설명한 바와 같이 공개 밸런스에서 보안 밸런스로 송금하는 거래를 의미할 수 있다. 다시 말해, 숨긴 보안 거래는 보내는 사람의 공개 밸런스에서 다른 누군가의 보안 밸런스로 송금하는 기능일 수 있다. Here, the hidden security transaction may refer to a transaction transferring money from a public balance to a secure balance, as already described. In other words, a hidden secure transaction could be the function of transferring money from the sender's public balance to someone else's secure balance.

숨긴 보안 거래에서는 송신자의 계좌(account)와 거래 금액(value)는 공개되지만, 수신자 계좌(account)와 변환되는 utxo 노트는 비공개될 수 있다. 송금 금액으로 인해서 수신자 계좌의 소유인 새로운 utxo 노트의 금액이 유추될 수 있기 때문에 송금할 때 보유한 보안 밸런스의 utxo 노트를 포함시켜 송금함으로써 새로 생성되는 utxo 노트의 금액을 유추하지 못하도록 할 수 있다. In a hidden secure transaction, the sender's account (account) and transaction amount (value) are disclosed, but the recipient's account (account) and the converted UTXO note can be kept private. Since the amount of the new UTXO note owned by the recipient's account can be inferred from the amount of the transfer, the amount of the newly created UTXO note can be prevented from being inferred by including the UTXO note of the security balance held when sending the transfer.

숨긴 보안 거래에서는 ZKP로 새로 생성되는 보안 밸런스의 utxo 노트가 거래 금액(value)으로 숨겨졌다라는 것의 증명, 소유자가 해당 금액을 소유하고 수신자의 노트를 생성하는 것의 증명을 포함할 수 있다. 새로 생성되는 보안 노트는 공개 밸런스에서 변환되는 값이기 때문에 UTXO로 새로 발행되는 노트로 구성될 수 있으며, 공개 밸런스는 거래 금액만큼 소각될 수 있다. 따라서 전체 공개 밸런스의 유통량도 거래 금액만큼 소각될 수 있다.A hidden security transaction may include proof that the utxo note of the newly created security balance with ZKP is hidden as the transaction value, proof that the owner owns the amount and creates a recipient's note. Since the newly created security note is a value converted from the public balance, it can be composed of a newly issued note with UTXO, and the public balance can be burned by the amount of the transaction amount. Therefore, the circulating amount of the entire public balance can be burned equal to the transaction amount.

숨긴 보안 거래에서 필요한 정보는 아래와 같다.The information required for hidden secure transactions is as follows.

(1) from: 송신자 계좌(1) from: sender’s account

(2) to: 숨겨짐(2) to: hidden

(3) value: 거래 금액(송금하는 공개 밸런스의 금액)(3) value: Transaction amount (amount of open balance being transferred)

(4) vin: 숨겨짐(4) vin: hidden

(5) vout: 새로 생성되는 1개 이상의 utxo 노트(5) vout: 1 or more newly created utxo notes

(6) proof: vout의 utxo 노트가 특정 사용자의 소유로 거래 금액에 해당하는 노트라는 것을 증명하는 ZKP 증거(6) proof: ZKP evidence proving that vout's utxo note is owned by a specific user and corresponds to the transaction amount

(7) signature: 거래의 송신자의 서명(7) signature: Signature of the sender of the transaction

한편, 숨긴 보안 거래를 위해 송신자는 거래를 생성하고 ZKP로 증명하기 전에 수신자의 암호화키와 수신자 계정에 대한 정보를 오프-체인(off-chain)으로 수신자에게 요청하여 공유해야 한다.Meanwhile, for a hidden secure transaction, the sender must request and share the recipient's encryption key and information about the recipient's account off-chain with the recipient before creating the transaction and proving it with ZKP.

또한, 숨긴 보안 거래를 위해 송신자가 ZKP로 증명해야 하는 정보는 아래와 같다.Additionally, the information that the sender must prove with ZKP for a hidden secure transaction is as follows.

- 새로 생성되는 utxo 노트의 암호화된 정보를 알고 있다라는 것의 증명- Proof that you know the encrypted information of the newly created utxo note

- zkp input: out_note(owner address, value, randomSeed), AES_secret_key, out_note_encryptKey, out_note_hash, 여기서 out_note는 숨겨질 수 있다.- zkp input: out_note(owner address, value, randomSeed), AES_secret_key, out_note_encryptKey, out_note_hash, where out_note can be hidden.

증명 내용은 아래와 같다.The proof is as follows.

- 소유자 주소, 거래 금액 및 랜덤시드로 utxo 노트를 생성- Create UTXO note with owner address, transaction amount and random seed

- out_note를 수신자의 암호화키로 암호화하여 암호화된 노트를 생성- Create an encrypted note by encrypting out_note with the recipient's encryption key.

- 암호화된 데이터를 해싱한 해시(hash(encryptNote))가 utxo_hash와 같은지 확인할 수 있다.- You can check whether the hash (encryptNote) of the encrypted data is the same as utxo_hash.

한편, 검증자는 거래의 검증을 위해 우선 거래의 서명(signature)을 검증할 수 있으며, utxo_hash의 존재 여부와 사용 여부를 확인할 수 있다. 이후 검증자는 ZKP 증거 검증을 통해 utxo의 소유 증명을 검증할 수 있다.Meanwhile, to verify the transaction, the verifier can first verify the transaction's signature and check the existence and use of utxo_hash. Afterwards, the verifier can verify the proof of ownership of the utxo through ZKP proof verification.

블록체인에서는 검증이 성공적으로 완료되면 변환되는 공개 밸런스 정보(거래 금액)를 가진 공개 노트를 생성해서 상태와 새로운 utxo 노트를 상태에 추가하고, 송신자의 공개 밸런스에서 거래 금액만큼 차감할 수 있다.In blockchain, you can create a public note with public balance information (transaction amount) that is converted when verification is successfully completed, add the state and a new utxo note to the state, and deduct the transaction amount from the sender's public balance.

도 6은 본 발명의 일실시예에 따른 공개 보안 거래의 예를 도시한 도면이다. 도 6은 소유자 주소, 잔액의 값(A value) 및 랜덤시드를 포함하는 보안 노트(610)에서 소유자 주소, 잔액의 값(B value), 블록 번호 및 거래 인덱스를 포함하는 공개 노트(620)로의 송금의 예를 나타내고 있다. 이때, 보안 노트(610)의 잔액의 값(A value)이 거래 금액에 대응하는 B value보다 큰 경우, (A-B) value를 갖는 새로운 보안 노트(630)가 생성될 수 있다. 만약, 보안 노트(610)의 잔액의 값(A value)이 거래 금액에 대응하는 B value보다 작은 경우에는 거래가 이루어지지 않을 것이며, 보안 노트(610)의 잔액의 값(A value)이 거래 금액에 대응하는 B value와 동일한 경우에는 거래는 이루어지되, 새로운 보안 노트(630)는 생성되지 않을 것이다.Figure 6 is a diagram illustrating an example of a public security transaction according to an embodiment of the present invention. Figure 6 shows the transition from a secure note 610 containing the owner address, balance value (A value), and random seed to a public note 620 containing the owner address, balance value (B value), block number, and transaction index. This shows an example of remittance. At this time, if the balance value (A value) of the security note 610 is greater than the B value corresponding to the transaction amount, a new security note 630 with the (A-B) value may be created. If the balance value (A value) of the security note 610 is less than the B value corresponding to the transaction amount, the transaction will not be made, and the balance value (A value) of the security note 610 is equal to the transaction amount. If the corresponding B value is the same, the transaction will be made, but a new security note 630 will not be created.

여기서, 보안 노트(610)로부터 파생된 공개 노트(620)는 커밋먼트가 없기 때문에 이전 노트인 보안 노트(610)의 노트 해시를 저장할 공간이 없다. 이때, 공개 노트(620)에는 노트 해시(p + public note hash)가 할당될 수 있으며, 보안 노트(610)의 널러파이어에는 이러한 공개 노트(620)의 노트 해시(p + note hash)가 기록될 수 있다. 이미 설명한 바와 같이 구분값 "p"는 해당 노트 해시가 공개 노트의 노트 해시임을 나타내기 위해 사용될 수 있다. 만약, 공개 보안 거래에 의해 새로운 보안 노트(630)가 생성된다면, 보안 노트(630)에는 노트 해시(s + note hash)가 할당될 수 있다. 이때, 보안 노트(610)의 널러파이어에는 이러한 보안 노트(630)의 노트 해시가 기록될 수 있다. 또한, 보안 노트(630)의 커밋먼트에는 보안 노트(610)의 노트 해시가 기록될 수 있다. 이미 설명한 바와 같이 구분값 "s"는 해당 노트 해시가 보안 노트의 노트 해시임을 나타내기 위해 사용될 수 있다. 이처럼, 하나의 보안 노트의 커밋먼트는 이전 노트를 가리키기 위한 포인트로서 이전 노트의 노트 해시가 기록될 수 있으며, 널러파이어에는 다음 노트를 가리키기 위한 포인트로서 다음 노트의 노트 해시가 기록될 수 있다. 이처럼 보안 노트들을 커밋먼트와 널러파이어에 기록된 노트 해시들을 통해 마치 연결 리스트(linked list) 처럼 상호 참조될 수 있다.Here, since the public note 620 derived from the secure note 610 has no commitment, there is no space to store the note hash of the previous note, the secure note 610. At this time, a note hash (p + public note hash) may be assigned to the public note 620, and the note hash (p + note hash) of the public note 620 may be recorded in the nullifier of the secure note 610. You can. As already explained, the separator value "p" can be used to indicate that the note hash is a note hash of a public note. If a new security note 630 is created by a public security transaction, a note hash (s + note hash) may be assigned to the security note 630. At this time, the note hash of the secure note 630 may be recorded in the nullifier of the secure note 610. Additionally, the note hash of the security note 610 may be recorded in the commitment of the security note 630. As already described, the separator value "s" can be used to indicate that the note hash is a note hash of a secure note. In this way, in the commitment of one secure note, the note hash of the previous note may be recorded as a point to point to the previous note, and the note hash of the next note may be recorded in the nullifier as a point to point to the next note. . In this way, security notes can be cross-referenced like a linked list through note hashes recorded in commitments and nullifiers.

이 경우, 보안 노트(610)가 포함하는 소유자 주소는 송신자의 주소일 수 있으며, 공개 노트(620)가 포함하는 소유자 주소는 수신자의 주소일 수 있다.In this case, the owner address included in the secure note 610 may be the sender's address, and the owner address included in the public note 620 may be the address of the recipient.

이때, 공개 보안 거래는 이미 설명한 바와 같이 보안 밸런스에서 공개 밸런스로 송금하는 거래를 의미할 수 있다. 다시 말해, 공개 보안 거래는 보내는 사람의 보안 밸런스에서 다른 누군가의 공개 밸런스로 송금하는 기능일 수 있다.At this time, the public security transaction may mean a transaction that transfers money from the secure balance to the public balance, as already described. In other words, a public secure transaction could be the function of transferring money from the sender's secure balance to someone else's public balance.

공개 보안 거래에서 수신자의 계좌와 거래 금액은 공개되지만, 송신자의 계좌는 공개되지 않는다. 공개 보안 거래에는 ZKP로 송신자가 해당 utxo 노트의 소유자가 맞는지, 거래 금액에는 문제가 없는지, 그리고 보안 밸런스가 거래 금액보다 클 경우 거래 금액을 뺀 잔액으로 새로 생성되는 utxo 노트가 유효한지를 증명해야 한다.In a public secure transaction, the recipient's account and transaction amount are disclosed, but the sender's account is not disclosed. For public security transactions, ZKP must be used to prove that the sender is the owner of the corresponding utxo note, that there is no problem with the transaction amount, and that if the security balance is greater than the transaction amount, the newly created utxo note is valid with the balance minus the transaction amount.

공개 보안 거래에서 필요한 정보는 아래와 같다.The information required for public security transactions is as follows.

(1) from: 숨겨짐(1) from: hidden

(2) to: 수신자 계좌(2) to: recipient account

(3) value: 송금하는 공개 밸런스의 금액(3) value: Amount of open balance to be transferred

(4) vin: 송신자 소유의 utxo 노트 해시(4) vin: utxo note hash owned by the sender

(5) vout: 새로 생성되는 1개 이상의 utxo 노트(5) vout: 1 or more newly created utxo notes

- 첫 번째 utxo note는 수신자 소유의 소각될 utxo 노트의 공개 밸런스로 변환되면서 바로 소각됨.- The first UTXO note is burned immediately, converting to the public balance of the UTXO note to be burned belonging to the recipient.

(6) proof: vin이 송신자 소유이고 vout이 특정 사용자 소유이며 vin의 금액은 vout의 금액과 송금금액의 합과 같고, 해당 공개 보안 거래를 송신자가 생성했다는 서명을 증명하는 zkp 증거(6) proof: zkp proof that vin is owned by the sender, vout is owned by a specific user, the amount of vin is equal to the sum of the amount of vout and the remittance amount, and the signature proves that the sender created the public security transaction.

(7) signature: 숨겨짐(7) signature: hidden

한편, 공개 보안 거래를 위해 송신자는 거래를 생성하고 ZKP로 증명하기 전에 수신자 계정에 대한 정보를 오프-체인(off-chain)으로 수신자에게 요청하여 공유해야 한다.Meanwhile, for a public secure transaction, the sender must request and share information about the recipient's account off-chain with the recipient before creating the transaction and proving it with ZKP.

또한, 공개 보안 거래를 위해 송신자가 ZKP로 증명해야 하는 정보는 아래와 같다.Additionally, the information that the sender must prove with ZKP for a public security transaction is as follows.

- vin의 보안 노트가 송신자 소유이고 거래 금액 이상인지 증명하고, 송금 후 잔액이 있을 경우 새로 생성되는 utxo 노트의 암호화된 정보를 알고 있다는 것을 증명- Prove that the vin security note belongs to the sender and that it is more than the transaction amount, and if there is a balance after the transfer, prove that you know the encrypted information of the newly created utxo note.

- 해당 공개 보안 거래를 송신자가 생성했다는 서명을 증명- The signature proves that the public security transaction was created by the sender.

- zkp input: in_note(owner address, value, randomSeed), in_note_AES_secret_key, in_note_encryptKey, in_note_hash, out_note(owner address, value, randomSeed), out_note_AES_secret_key, out_note_encryptKey, out_note_hash, value, 송신자의 공개키(sender_pk), 송신자의 서명(signature), 거래 해시(tx_hash), 여기서 in_note(), out_note(), 송신자의 공개키 및 송신자의 서명은 숨겨질 수 있다.- zkp input: in_note(owner address, value, randomSeed), in_note_AES_secret_key, in_note_encryptKey, in_note_hash, out_note(owner address, value, randomSeed), out_note_AES_secret_key, out_note_encryptKey, out_note_hash, value, sender's public key (sender_pk), sender's signature ( signature), transaction hash (tx_hash), where in_note(), out_note(), the sender's public key, and the sender's signature can be hidden.

증명 내용은 아래와 같다.The proof is as follows.

- in_note의 금액이 거래 금액보다 크거나 같은지 검증- Verify that the amount in in_note is greater than or equal to the transaction amount

- in_note가 송신자 소유인지 검증- Verify that in_note is owned by the sender

- in_note의 유효성 검증: 노트를 공개된 암호화키로 암호화한 후 생성한 해시가 노트 해시(note_hash)가 맞는지 검증- Validation of in_note: Verify that the hash generated after encrypting the note with a public encryption key is the note hash (note_hash).

- out_note의 유효성 검증: 노트를 공개된 암호화키로 암호화한 후 생성한 해시가 노트 해시(note_hash)가 맞는지 검증- Validation of out_note: Verify that the hash generated after encrypting the note with a public encryption key is the note hash (note_hash).

- out_note가 in_note에서 거래금액의 차액인지 검증- Verify that out_note is the difference between the transaction amount in in_note

- out_note가 송신자 소유인지 검증- Verify that out_note is owned by the sender

- 해당 거래의 서명이 송신자의 서명인지 검증- Verify that the signature of the transaction is the sender’s signature

한편, 검증자는 in_note의 존재 여부와 사용 여부를 검증(in_note가 존재해야 하고, 사용되지 않아야 함.)할 수 있다. 또한, 검증자는 out_note의 존재 여부를 검증(존재하지 않아야 함.)할 수 있다. 또한, 검증자는 송신 ZKP의 증거를 검증할 수 있다.Meanwhile, the verifier can verify the existence and use of in_note (in_note must exist and not be used). Additionally, the verifier can verify the existence of out_note (it should not exist). Additionally, the verifier can verify the evidence of the sending ZKP.

블록체인에서는 검증이 성공적으로 완료되면 in_note는 사용된 노트로 널러파이어를 등록하고 새로운 out_note를 추가하고 공개 밸런스의 공개 노트를 생성하여 추가할 수 있다. 또한, 블록체인에서는 수신자의 공개 밸런스를 거래 금액만큼 증가시킬 수 있다.In blockchain, when verification is successfully completed, in_note can be added by registering a nullifier as a used note, adding a new out_note, and creating a public note of public balance. Additionally, in blockchain, the recipient's public balance can be increased by the transaction amount.

도 7 및 도 8은 본 발명의 일실시예에 따른 보안 거래의 예를 도시한 도면들이다. 보안 거래는 이미 설명한 바와 같이 보안 밸런스에서 보안 밸런스로 송금하는 거래를 의미할 수 있다. 보안 거래에서는 송금 계좌(송신자의 주소), 수신 계좌(수신자의 주소) 및 거래 금액이 모두 공개되지 않을 수 있다.Figures 7 and 8 are diagrams showing an example of a secure transaction according to an embodiment of the present invention. A security transaction may refer to a transaction that transfers money from a security balance to a security balance, as already explained. In a secure transaction, the remittance account (sender's address), the receiving account (recipient's address), and the transaction amount may not all be disclosed.

보안 거래에서는 ZKP로 보내는 utxo 노트들의 유효성과 소유자 검증, 보내는 금액, 그리고 보내는 금액에 따라 새로 생성되는 utxo 노트의 유효성을 검증할 수 있어야 하고, 이러한 모든 정보를 서명한 서명의 검증도 숨겨졌다는 것을 증명해야 할 수 있다.In a secure transaction, it must be possible to verify the validity and owner of UTXO notes sent to ZKP, the amount sent, and the validity of newly created UTXO notes according to the amount sent, and verification of the signature that signed all of this information is also hidden. You may have to do it.

보안 거래에서는 여러 개의 보안 노트에서 하나의 보안 노트로 송금이 이루어질 수도 있고, 하나의 보안 노트에서 여러 개의 보안 노트로 송금이 이루어질 수도 있다. 도 7은 n개의 보안 노트들(710)에서 하나의 보안 노트(720)로 송금이 이루어지는 예를 나타내고 있으며, 도 8은 하나의 보안 노트(810)에서 여러 개의 보안 노트들(820 및 830)로 송금이 이루어지는 예를 나타내고 있다. 도 7에서 하나의 보안 노트(720)는 이전 노트들(710) 각각의 노트 해시를 커밋먼트에 저장할 수 있으며, 도 8에서 여러 개의 보안 노트들(820 및 830) 각각은 하나의 보안 노트(810)의 노트 해시를 각각 커밋먼트에 저장할 수 있다.In a secure transaction, a transfer may be made from multiple secured notes to one secured note, or from one secured note to multiple secured notes. Figure 7 shows an example of a transfer being made from n security notes 710 to one security note 720, and Figure 8 shows a transfer from one security note 810 to several security notes 820 and 830. This shows an example of a remittance being made. In FIG. 7, one security note 720 may store the note hash of each of the previous notes 710 in a commitment, and in FIG. 8, each of several security notes 820 and 830 may store one security note 810. ) note hashes can be stored in each commitment.

보안 거래에서 필요한 정보는 아래와 같다.The information required for secure transactions is as follows.

(1) from: 숨겨짐(1) from: hidden

(2) to: 숨겨짐(2) to: hidden

(3) value: 숨겨짐(3) value: hidden

(4) vin: 송신자 소유의 보안 노트 해시(4) vin: Secure note hash owned by the sender

(5) vout: 새로 생성되는 1개 이상의 보안 노트(5) vout: 1 or more newly created security notes

(6) proof: vin의 송신자 소유의 보안 노트에서 vout의 보안 노트로 거래 금액만큼 송금되고 해당 거래를 송신자가 생성했다는 서명을 증명하는 ZKP 증거(6) proof: ZKP proof that the transaction amount has been transferred from a security note owned by the sender of vin to a security note of vout and a signature proving that the transaction was created by the sender.

(7) signature: 숨겨짐(7) signature: hidden

한편, 보안 거래를 위해 송신자는 거래를 생성하고 ZKP로 증명하기 전에 수신자의 암호화키와 수신자 계정에 대한 정보를 오프-체인(off-chain)으로 수신자에게 요청하여 공유해야 한다.Meanwhile, for a secure transaction, the sender must request and share the recipient's encryption key and information about the recipient's account off-chain with the recipient before creating the transaction and proving it with ZKP.

또한, 보안 거래를 위해 송신자가 ZKP로 증명해야 하는 정보는 아래와 같다.Additionally, the information that the sender must prove with ZKP for a secure transaction is as follows.

- vin의 보안 노트가 송신자 소유이고 새로 생성되는 보안 노트와 합(금액의 합)이 같은지 증명- Prove that vin's security note belongs to the sender and that the sum (sum of amount) is the same as the newly created security note

- 각 보안 노트가 유효한지 증명- Prove that each secure note is valid

- 해당 송금 거래의 서명이 송신자의 서명인지 증명- Proof that the signature of the relevant remittance transaction is the sender's signature

- zkp input: in_note(owner, value, randomSeed) list, in_note_AES_secret_key list, in_note_encryptKey list, in_note_hash list, out_note(owner, value, randomSeed) list, out_note_AES secret key list, out_note_encryptKey list, out_note_hash list, 거래 금액(value), 송신자의 공개키(sender_pk), 송신자의 서명(signature), 거래 해시(tx_hash), 여기서 in_note list, out_note list, 거래 금액, 송신자의 공개키 및 송신자의 서명은 숨겨질 수 있다.- zkp input: in_note(owner, value, randomSeed) list, in_note_AES_secret_key list, in_note_encryptKey list, in_note_hash list, out_note(owner, value, randomSeed) list, out_note_AES secret key list, out_note_encryptKey list, out_note_hash list, transaction amount (value), Sender's public key (sender_pk), sender's signature (signature), transaction hash (tx_hash), where in_note list, out_note list, transaction amount, sender's public key, and sender's signature can be hidden.

증명 내용은 아래와 같다.The proof is as follows.

- in_note와 out_note가 모두 유효한지 검증: 노트의 공개된 암호화키로 암호화한 후 생성된 해시가 노트 해시(note_hash)가 맞는지 검증- Verify that both in_note and out_note are valid: Verify that the hash generated after encrypting the note with the public encryption key is the note hash (note_hash).

- in_note의 모든 금액의 합과 out_note의 모든 금액의 합이 같은지 검증- Verify that the sum of all amounts in in_note is the same as the sum of all amounts in out_note

- in_note가 모두 송신자 소유인지 검증- Verify that all in_notes are owned by the sender

- out_note가 수신자들의 소유인지 검증: 수신자는 최대 2일 수 있다.- Verify that out_note is owned by the recipients: There can be a maximum of 2 recipients.

- 해당 거래의 서명이 송신자의 서명인지 검증- Verify that the signature of the transaction is the sender’s signature

한편, 검증자는 in_note의 존재 여부와 사용 여부를 검증(in_note가 존재해야 하고, 사용되지 않아야 함.)할 수 있다. 또한, 검증자는 out_note의 존재 여부를 검증(존재하지 않아야 함.)할 수 있다. 또한, 검증자는 송신 ZKP의 증거를 검증할 수 있다.Meanwhile, the verifier can verify the existence and use of in_note (in_note must exist and not be used). Additionally, the verifier can verify the existence of out_note (it should not exist). Additionally, the verifier can verify the evidence of the sending ZKP.

블록체인에서는 검증이 성공적으로 완료되면 in_note는 사용된 노트로 널러파이어를 등록하고 새로운 out_note를 추가할 수 있다.In blockchain, when verification is successfully completed, in_note can register a nullifier as a used note and add a new out_note.

블록체인에서 노트의 값 조회는 노트 해시를 이용하여 조회를 요청할 수 있다.In the blockchain, the value of a note can be searched using the note hash.

숨긴 보안 거래(HideSecretTransaction), 공개 보안 거래(PublicSecretTransaction) 및 보안 거래(SecretTransction)의 API 각각에 대한 셋업(setup)으로 증명키 pk와 검증키 vk가 생성될 수 있다. 생성된 증명키 pk는 증명자에게, 생성된 검증키 vk는 검증자들에게 전달될 수 있다. 검증자들은 각 API의 증명을 처리할 수 있다.Proof key pk and verification key vk can be generated by setup for each API of hidden security transaction (HideSecretTransaction), public secret transaction (PublicSecretTransaction), and secret transaction (SecretTransction). The generated verification key pk can be delivered to the prover, and the generated verification key vk can be delivered to the verifiers. Verifiers can process proofs for each API.

도 9는 본 발명의 일실시예에 따른 거래 방법의 예를 도시한 흐름도이다. 본 실시예에 따른 거래 방법은 송금을 하는 송신자 단말기를 구현하는 컴퓨터 장치(200)에 의해 수행될 수 있다. 이때, 컴퓨터 장치(200)의 프로세서(220)는 메모리(210)가 포함하는 운영체제의 코드나 적어도 하나의 컴퓨터 프로그램의 코드에 따른 제어 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(220)는 컴퓨터 장치(200)에 저장된 코드가 제공하는 제어 명령에 따라 컴퓨터 장치(200)가 도 9의 방법이 포함하는 단계들(910 내지 950)을 수행하도록 컴퓨터 장치(200)를 제어할 수 있다.Figure 9 is a flowchart showing an example of a transaction method according to an embodiment of the present invention. The transaction method according to this embodiment can be performed by a computer device 200 that implements a sender terminal that transmits money. At this time, the processor 220 of the computer device 200 may be implemented to execute control instructions according to the code of an operating system included in the memory 210 or the code of at least one computer program. Here, the processor 220 causes the computer device 200 to perform steps 910 to 950 included in the method of FIG. 9 according to control instructions provided by code stored in the computer device 200. can be controlled.

단계(910)에서 컴퓨터 장치(200)는 오프-체인(off-chain)을 통해 수신자의 암호화키 및 수신자 계정을 공유할 수 있다. 여기서, 오프-체인은 거래가 처리될 블록체인 네트워크 외의 네트워크를 의미할 수 있다.In step 910, the computer device 200 may share the recipient's encryption key and the recipient's account through off-chain. Here, off-chain may refer to a network other than the blockchain network where transactions will be processed.

단계(920)에서 컴퓨터 장치(200)는 공개 밸런스에서 보안 밸런스로의 송금을 위한 숨김 보안 거래, 보안 밸런스에서 공개 밸런스로의 송금을 위한 공개 보안 거래 및 보안 밸런스들간의 송금을 위한 보안 거래 중 적어도 하나의 거래를 생성할 수 있다. 이때, 공개 밸런스는 블록체인상에 공개된 정보로 저장되는 공개 노트에 기록될 수 있고, 보안 밸런스는 블록체인상에 암호화되어 저장되는 보안 노트에 기록될 수 있다. 이미 설명한 바와 같이 공개 노트에는 공개 밸런스 외에도 소유자 주소, 블록 번호 및 거래 인덱스가 더 기록될 수 있으며, 보안 노트에는 보안 밸런스 외에도 소유자 주소와 랜덤시드가 더 기록될 수 있다.At step 920, computer device 200 executes at least one of: a hidden security transaction for transfers from a public balance to a secure balance, a public security transaction for transfers from a secure balance to a public balance, and a secure transaction for transfers between secure balances. You can create one transaction. At this time, the public balance can be recorded in a public note that is stored as public information on the blockchain, and the secure balance can be recorded in a secure note that is encrypted and stored on the blockchain. As already explained, in addition to the public balance, the owner's address, block number, and transaction index may be additionally recorded in the public note, and in the secure note, the owner's address and random seed may be additionally recorded in addition to the security balance.

단계(930)에서 컴퓨터 장치(200)는 적어도 하나의 거래에 대해 비공개되는 정보를 알고 있음을 증명하기 위한 영지식증명 기반의 증거를 생성할 수 있다.In step 930, the computer device 200 may generate zero-knowledge proof-based evidence to prove that it knows non-public information about at least one transaction.

숨김 보안 거래는 수신자 계좌가 송금을 받는 보안 노트에 암호화되어 비공개될 수 있다. 이 경우, 컴퓨터 장치(200)는 단계(930)에서 송금을 받는 보안 노트의 암호화된 정보를 알고 있음을 증명하는 증거를 생성할 수 있다. 이때, 송금을 받는 보안 노트의 소유주 정보는 수신자 계정일 수 있으며, 숨김 보안 거래에 의해 새롭게 생성되는 보안 노트의 보안 밸런스는 숨김 보안 거래의 거래 금액일 수 있다. 다시 말해 숨김 보안 거래에서는 수신자 계좌와 수신자 계좌에 따라 송금을 받는 보안 노트가 공개되지 않지만 송신자가 이러한 보안 노트의 암호화된 정보(소유주 정보와 거래 금액)를 알고 있음을 증명함으로써 비공개의 거래가 이루어질 수 있다.Hidden Secure Transactions can be kept private by encrypting the recipient's account in a secure note receiving the transfer. In this case, the computer device 200 may generate evidence proving that it knows the encrypted information of the secure note receiving the remittance at step 930. At this time, the owner information of the security note receiving the remittance may be the recipient's account, and the security balance of the security note newly created by the hidden security transaction may be the transaction amount of the hidden security transaction. In other words, in a hidden secure transaction, the recipient account and the secure note receiving the transfer according to the recipient account are not disclosed, but a private transaction can be made by proving that the sender knows the encrypted information (owner information and transaction amount) of these secure notes. .

공개 보안 거래는 송신자 계좌가 비공개될 수 있다. 한편, 보안 밸런스에서 공개 밸런스로의 송금 시, 보안 밸런스가 거래 금액 이상인 경우, 다시 말해 공개 보안 거래에 따른 거래 금액의 송금 이후에 송금을 하는 제1 보안 노트의 보안 밸런스가 남아 있는 경우, 남아있는 보안 밸런스를 위한 제2 보안 노트가 생성될 수 있다. 이 경우, 컴퓨터 장치(200)는 단계(930)에서 제1 보안 노트가 송신자의 소유이고, 제1 보안 노트의 잔액(남아있는 보안 밸런스)이 공개 보안 거래의 거래 금액 이상인지를 증명하는 증거를 생성할 수 있다. 만약, 제2 보안 노트가 생성되는 경우에는 생성된 제2 보안 노트의 암호화된 정보를 알고 있다는 것을 증명하는 증거를 더 생성할 수 있다. 제2 보안 노트의 소유자 정보는 송신자 자신의 주소일 것이며, 제2 보안 노트의 보안 밸런스는 제1 보안 노트의 보안 밸런스에서 거래 금액을 뺀 나머지이기 때문에 송신자는 이러한 제2 보안 노트의 암호화된 정보를 알고 있으며, 이에 따라 송신자는 영지식증명에 기반하여 제2 보안 노트의 암호화된 정보를 알고 있다는 것을 증명하는 증거를 생성할 수 있다.For public secure transactions, the sender's account may be private. On the other hand, when transferring from a security balance to a public balance, if the security balance is more than the transaction amount, that is, if the security balance of the first security note making the transfer remains after the transfer of the transaction amount according to the public security transaction, the remaining security balance is A second security note may be created for security balance. In this case, computer device 200 provides evidence at step 930 proving that the first secure note is owned by the sender and that the balance (remaining security balance) of the first secure note is greater than or equal to the transaction amount of the public security transaction. can be created. If a second secure note is created, evidence proving that the user knows the encrypted information of the created second secure note can be further generated. The owner information of the second security note will be the sender's own address, and since the security balance of the second security note is the remainder minus the transaction amount from the security balance of the first security note, the sender uses the encrypted information of this second security note. Accordingly, the sender can generate evidence proving that he or she knows the encrypted information of the second secure note based on zero-knowledge proof.

보안 거래는 송신자 계좌, 수신자 계좌 및 거래 금액이 비공개될 수 있다. 이 경우, 컴퓨터 장치(200)는 단계(930)에서 보안 거래에 따른 송금을 하는 제1 보안 노트가 송신자의 소유이고, 제1 보안 노트의 잔액의 합과 보안 거래를 통해 새로 생성되는 제2 보안 노트의 잔액의 합이 같은지 증명하는 증거, 제1 보안 노트 및 제2 보안 노트가 유효한지 증명하는 증거 및 보안 거래의 서명이 송신자의 서명인지 증명하는 증거를 생성할 수 있다.In secure transactions, the sender's account, recipient's account, and transaction amount can be kept private. In this case, the computer device 200 determines in step 930 that the first security note making the transfer according to the security transaction is owned by the sender, the sum of the balance of the first security note and the second security note newly created through the security transaction. Evidence proving that the sum of the note balances is the same, evidence proving that the first security note and the second security note are valid, and evidence proving that the signature of the security transaction is the sender's signature can be generated.

단계(940)에서 컴퓨터 장치(200)는 영지식증명 기반의 증거를 포함하는 거래를 블록체인 네트워크로 요청할 수 있다. 여기서 블록체인 네트워크에는 보안 밸런스를 이용한 거래(일례로, 숨김 보안 거래, 공개 보안 거래 및 보안 거래)를 위한 UTXO(Unspent Transaction Output) 모델과 공개 밸런스들간의 거래를 위한 어카운트 모델이 함께 사용될 수 있다.In step 940, the computer device 200 may request a transaction including zero-knowledge proof-based evidence from the blockchain network. Here, in the blockchain network, the UTXO (Unspent Transaction Output) model for transactions using security balances (for example, hidden security transactions, public security transactions, and security transactions) and the account model for transactions between public balances can be used together.

이때, 숨긴 보안 거래의 경우, 블록체인 네트워크의 검증자에 의해 숨김 보안 거래의 서명, 송금을 받는 보안 노트의 노트 해시의 존재 여부와 사용 여부 및 영지식증명 기반의 증거가 각각 검증될 수 있다. 이때 검증자에 의한 검증이 성공적으로 완료됨에 따라, 블록체인 네트워크에서 변환되는 공개 밸런스의 정보를 가진 공개 노트가 생성되고, 생성된 공개 노트에 송금을 수신하기 위해 새로 생성된 보안 노트의 노트 해시가 기록되고, 송신자의 공개 밸런스에서 거래 금액이 차감됨으로써, 해당 숨긴 보안 거래가 블록체인 네트워크를 통해 처리될 수 있다.At this time, in the case of a hidden security transaction, the signature of the hidden security transaction, the existence and use of the note hash of the security note receiving the remittance, and zero-knowledge proof-based evidence can each be verified by the verifier of the blockchain network. At this time, as the verification by the verifier is successfully completed, a public note with information on the public balance converted in the blockchain network is created, and the note hash of the newly created security note to receive the remittance is added to the created public note. By recording and deducting the transaction amount from the sender's public balance, the hidden secure transaction can be processed through the blockchain network.

공개 보안 거래의 경우, 블록체인 네트워크의 검증자에 의해 제1 보안 노트의 존재 여부와 사용 여부, 제2 보안 노트의 존재 여부 및 영지식증명 기반의 증거가 각각 검증될 수 있다. 이때, 검증자에 의한 검증이 성공적으로 완료됨에 따라, 상기 블록체인 네트워크에서 제1 보안 노트가 제1 보안 노트의 널러파이어(nullifier)에 사용된 노트로서 등록되고, 제2 보안 노트가 생성되는 경우, 제2 보안 노트의 노트 해시가 널러파이어에 기록되고, 공개 밸런스를 위한 수신자의 공개 노트가 생성되고, 수신자의 공개 밸런스가 공개 보안 거래의 거래 금액만큼 증가됨으로써, 해당 공개 보안 거래가 블록체인 네트워크를 통해 처리될 수 있다.In the case of a public security transaction, the existence and use of the first security note, the existence of the second security note, and zero-knowledge proof-based evidence can each be verified by the verifier of the blockchain network. At this time, as verification by the verifier is successfully completed, the first security note is registered in the blockchain network as a note used to nullify the first security note, and a second security note is created. , the note hash of the second secure note is recorded in the nullifier, the recipient's public note for the public balance is created, and the recipient's public balance is increased by the transaction amount of the public security transaction, thereby allowing the public security transaction to use the blockchain network. It can be processed through

보안 거래의 경우, 블록체인 네트워크의 검증자에 의해 제1 보안 노트의 존재 여부와 사용 여부, 제2 보안 노트의 존재 여부 및 영지식증명 기반의 증거가 각각 검증될 수 있다. 이때, 검증자에 의한 검증이 성공적으로 완료됨에 따라, 상기 블록체인 네트워크에서 제1 보안 노트가 제1 보안 노트의 널러파이어(nullifier)에 사용된 노트로서 등록되고, 제2 보안 노트가 생성되는 경우, 제2 보안 노트의 노트 해시가 널러파이어에 기록됨으로써, 해당 보안 거래가 블록체인 네트워크를 통해 처리될 수 있다.In the case of a secure transaction, the existence and use of the first security note, the existence of the second security note, and zero-knowledge proof-based evidence can be verified by the verifier of the blockchain network, respectively. At this time, as verification by the verifier is successfully completed, the first security note is registered in the blockchain network as a note used to nullify the first security note, and a second security note is created. , the note hash of the second secure note is recorded in Nullifier, allowing the corresponding secure transaction to be processed through the blockchain network.

단계(950)에서 컴퓨터 장치(200)는 거래를 증명할 수 있다.At step 950, computer device 200 may verify the transaction.

숨긴 보안 거래의 경우, 컴퓨터 장치(200)는 수신자 계좌, 숨김 보안 거래의 거래 금액 및 랜덤시드를 기록하는 노트를 생성할 수 있으며, 생성된 보안 노트를 수신자의 암호화키로 암호화하여 보안 노트를 생성할 수 있다. 이러한 보안 노트는 숨긴 보안 거래에 따라 생성된 UTXO의 보안 노트와 동일할 것이다. 따라서 컴퓨터 장치(200)는 생성된 보안 노트를 해싱한 노트 해시가 송금을 받는 보안 노트의 노트 해시와 같은지 확인함으로써 해당 거래를 증명할 수 있다.In the case of a hidden security transaction, the computer device 200 can create a note recording the recipient's account, the transaction amount and random seed of the hidden security transaction, and encrypt the created security note with the recipient's encryption key to create a security note. You can. These security notes will be identical to the security notes of UTXO created following hidden security transactions. Accordingly, the computer device 200 can prove the transaction by checking whether the note hash obtained by hashing the generated secure note is the same as the note hash of the secure note receiving the remittance.

공개 보안 거래의 경우, 컴퓨터 장치(200)는 제1 보안 노트의 보안 밸런스가 거래 금액보다 크거나 같은지 검증하고, 제1 보안 노트가 송신자의 소유인지 검증하고, 제1 보안 노트의 유효성을 검증하고, 제1 보안 노트의 보안 밸런스가 거래 금액보다 큰 경우에 생성되는 제2 보안 노트의 유효성을 검증하고, 제2 보안 노트의 보안 밸런스가 제1 보안 노트의 보안 밸런스와 거래 금액의 차이인지 검증하고, 제2 보안 노트가 송신자 소유인지 검증하고, 공개 보안 거래의 서명이 송신자의 서명인지 검증함으로써 해당 거래를 증명할 수 있다.For an open secure transaction, computer device 200 verifies that the security balance of the first secure note is greater than or equal to the transaction amount, verifies that the first secure note belongs to the sender, verifies the validity of the first secure note, and , Verify the validity of the second security note created when the security balance of the first security note is greater than the transaction amount, and verify whether the security balance of the second security note is the difference between the security balance of the first security note and the transaction amount. , the transaction can be proven by verifying that the second secure note belongs to the sender and verifying that the signature of the public security transaction is the sender's signature.

보안 거래의 경우, 컴퓨터 장치(200)는 제1 보안 노트 및 제2 보안 노트가 유효한지 검증하고, 제1 보안 노트의 보안 밸런스의 합과 제2 보안 노트의 보안 밸런스의 합이 같은지 검증하고, 제1 보안 노트가 모두 송신자 소유인지 검증하고, 제2 보안 노트가 적어도 하나의 수신자의 소유인지 검증하고, 보안 거래의 서명이 송신자의 서명인지 검증함으로써 해당 거래를 증명할 수 있다.In the case of a secure transaction, the computer device 200 verifies whether the first security note and the second security note are valid, verifies whether the sum of the security balance of the first security note and the sum of the security balance of the second security note are equal, The transaction can be verified by verifying that all first secure notes are owned by the sender, verifying that the second secure note is owned by at least one recipient, and verifying that the signature of the secure transaction is the sender's signature.

이처럼, 본 발명의 실시예들에 따르면, 특정 계좌의 모든 거래 또는 특정 거래(일례로, 중앙은행 디지털 화폐(Central Bank Digital Currency, CBDC)와 관련된 거래)를 숨길 수 있다.As such, according to embodiments of the present invention, all transactions or specific transactions (for example, transactions related to Central Bank Digital Currency (CBDC)) of a specific account can be hidden.

이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The system or device described above may be implemented with hardware components or a combination of hardware components and software components. For example, devices and components described in embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), etc. , may be implemented using one or more general-purpose or special-purpose computers, such as a programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. Additionally, a processing device may access, store, manipulate, process, and generate data in response to the execution of software. For ease of understanding, a single processing device may be described as being used; however, those skilled in the art will understand that a processing device includes multiple processing elements and/or multiple types of processing elements. It can be seen that it may include. For example, a processing device may include a plurality of processors or one processor and one controller. Additionally, other processing configurations, such as parallel processors, are possible.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of these, which may configure a processing unit to operate as desired, or may be processed independently or collectively. You can command the device. Software and/or data may be used on any type of machine, component, physical device, virtual equipment, computer storage medium or device to be interpreted by or to provide instructions or data to a processing device. It can be embodied in . Software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc., singly or in combination. The medium may continuously store a computer-executable program, or may temporarily store it for execution or download. In addition, the medium may be a variety of recording or storage means in the form of a single or several pieces of hardware combined. It is not limited to a medium directly connected to a computer system and may be distributed over a network. Examples of media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, And there may be something configured to store program instructions, including ROM, RAM, flash memory, etc. Additionally, examples of other media include recording or storage media managed by app stores that distribute applications, sites or servers that supply or distribute various other software, etc. Examples of program instructions include machine language code, such as that produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter, etc.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with limited examples and drawings, various modifications and variations can be made by those skilled in the art from the above description. For example, the described techniques are performed in a different order than the described method, and/or components of the described system, structure, device, circuit, etc. are combined or combined in a different form than the described method, or other components are used. Alternatively, appropriate results may be achieved even if substituted or substituted by an equivalent.

그러므로, 다른 구현들, 다른 실시예들 및 청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents of the claims also fall within the scope of the following claims.

Claims (20)

적어도 하나의 프로세서를 포함하는 컴퓨터 장치의 거래 방법에 있어서,
상기 적어도 하나의 프로세서에 의해, 공개 밸런스에서 보안 밸런스로의 송금을 위한 숨김 보안 거래, 보안 밸런스에서 공개 밸런스로의 송금을 위한 공개 보안 거래 및 보안 밸런스들간의 송금을 위한 보안 거래 중 적어도 하나의 거래를 생성하는 단계;
상기 적어도 하나의 프로세서에 의해, 상기 적어도 하나의 거래에 대해 비공개되는 정보를 상기 적어도 하나의 거래의 송신자가 알고 있음을 증명하기 위한 영지식증명 기반의 증거를 생성하는 단계 - 상기 비공개되는 정보는 수신자 계좌, 송신자 계좌, 송금을 받는 보안 노트 및 거래 금액 중 적어도 하나를 포함함 -;
상기 적어도 하나의 프로세서에 의해, 상기 영지식증명 기반의 증거를 포함하는 거래를 블록체인 네트워크로 요청하는 단계; 및
상기 적어도 하나의 프로세서에 의해, 상기 거래를 증명하는 단계
를 포함하는 거래 방법.
In a method of trading a computer device including at least one processor,
At least one transaction, by the at least one processor, of a hidden security transaction for transfers from a public balance to a secure balance, a public security transaction for transfers from a secure balance to a public balance, and a security transaction for transfers between security balances. generating a;
Generating, by the at least one processor, zero-knowledge proof-based evidence to prove that the sender of the at least one transaction knows information that is kept private about the at least one transaction - the kept information is sent to the recipient Contains at least one of the following: account, sender's account, secure note receiving the transfer, and transaction amount -;
requesting, by the at least one processor, a transaction including the zero-knowledge proof-based proof to a blockchain network; and
verifying the transaction, by the at least one processor.
Transaction methods including.
제1항에 있어서,
공개 밸런스는 블록체인상에 공개된 정보로 저장되는 공개 노트에 기록되고,
보안 밸런스는 블록체인상에 암호화되어 저장되는 보안 노트에 기록되는 것
을 특징으로 하는 거래 방법.
According to paragraph 1,
The public balance is recorded in a public note that is stored as public information on the blockchain.
The security balance is recorded in a secure note that is encrypted and stored on the blockchain.
A trading method characterized by .
제1항에 있어서,
상기 블록체인 네트워크에는 상기 적어도 하나의 거래를 위한 UTXO(Unspent Transaction Output) 모델과 공개 밸런스들간의 거래를 위한 어카운트 모델이 함께 사용되는 것을 특징으로 하는 거래 방법.
According to paragraph 1,
A transaction method characterized in that the blockchain network uses a UTXO (Unspent Transaction Output) model for the at least one transaction and an account model for transactions between public balances.
제1항에 있어서,
상기 숨김 보안 거래는 수신자 계좌 및 송금을 받는 보안 노트가 비공개되고,
상기 영지식증명 기반의 증거를 생성하는 단계는,
상기 송금을 받는 보안 노트의 암호화된 정보를 알고 있음을 증명하는 증거를 생성하는 것
을 특징으로 하는 거래 방법.
According to paragraph 1,
In the above hidden secure transaction, the recipient's account and the security note receiving the remittance are kept private,
The step of generating evidence based on the zero-knowledge proof is,
Generating evidence proving that you know the encrypted information of the secure note receiving the transfer.
A trading method characterized by .
제4항에 있어서,
상기 거래를 증명하는 단계는,
상기 수신자 계좌, 상기 숨김 보안 거래의 거래 금액 및 랜덤시드를 기록하는 노트를 생성하는 단계;
상기 생성된 보안 노트를 수신자의 암호화키로 암호화하여 보안 노트를 생성하는 단계; 및
상기 생성된 보안 노트를 해싱한 노트 해시가 상기 송금을 받는 보안 노트의 노트 해시와 같은지 확인하는 단계
를 포함하는 것을 특징으로 하는 거래 방법.
According to paragraph 4,
The steps to prove the transaction are:
creating a note recording the recipient account, a transaction amount of the hidden security transaction, and a random seed;
Encrypting the generated secure note with the recipient's encryption key to create a secure note; and
Checking whether the note hash obtained by hashing the generated secure note is the same as the note hash of the secure note receiving the remittance.
A transaction method comprising:
제4항에 있어서,
상기 블록체인 네트워크의 검증자에 의해 상기 숨김 보안 거래의 서명, 상기 송금을 받는 보안 노트의 노트 해시의 존재 여부와 사용 여부 및 상기 영지식증명 기반의 증거가 각각 검증되는 것을 특징으로 하는 거래 방법.
According to clause 4,
A transaction method characterized in that the signature of the hidden security transaction, the existence and use of a note hash of the security note receiving the transfer, and the zero-knowledge proof-based evidence are each verified by a verifier of the blockchain network.
제6항에 있어서,
상기 검증자에 의한 검증이 성공적으로 완료됨에 따라, 상기 블록체인 네트워크에서,
변환되는 공개 밸런스의 정보를 가진 공개 노트가 생성되고,
상기 생성된 공개 노트에 상기 송금을 수신하기 위해 새로 생성된 보안 노트의 노트 해시가 기록되고,
송신자의 공개 밸런스에서 거래 금액이 차감되는 것
을 특징으로 하는 거래 방법.
According to clause 6,
Upon successful completion of verification by the verifier, in the blockchain network,
A public note containing information about the public balance being converted is created,
The note hash of the newly created secure note for receiving the remittance is recorded in the created public note,
The transaction amount is deducted from the sender's public balance.
A trading method characterized by .
제1항에 있어서,
상기 공개 보안 거래는 송신자 계좌가 비공개되고,
상기 공개 보안 거래에 따른 거래 금액의 송금 이후에 상기 송금을 하는 제1 보안 노트의 보안 밸런스가 남아 있는 경우, 상기 남아있는 보안 밸런스를 위한 제2 보안 노트가 생성되며,
상기 영지식증명 기반의 증거를 생성하는 단계는,
상기 제1 보안 노트가 송신자의 소유이고, 상기 제1 보안 노트의 잔액이 상기 공개 보안 거래의 거래 금액 이상인지를 증명하는 증거를 생성하되, 상기 제2 보안 노트가 생성되는 경우에 상기 제2 보안 노트의 암호화된 정보를 알고 있다는 것을 증명하는 증거를 더 생성하는 것
을 특징으로 하는 거래 방법.
According to paragraph 1,
In the above public secure transaction, the sender's account is private,
If the security balance of the first security note making the transfer remains after remittance of the transaction amount according to the public security transaction, a second security note is created for the remaining security balance,
The step of generating evidence based on the zero-knowledge proof is,
Generate evidence proving that the first security note is owned by the sender and that the balance of the first security note is greater than or equal to the transaction amount of the public security transaction, but when the second security note is created, the second security note is generated. Generating further evidence proving that you know the note's encrypted information
A trading method characterized by .
제8항에 있어서,
상기 거래를 증명하는 단계는,
상기 제1 보안 노트의 보안 밸런스가 상기 거래 금액보다 크거나 같은지 검증하는 단계;
상기 제1 보안 노트가 송신자의 소유인지 검증하는 단계;
상기 제1 보안 노트의 유효성을 검증하는 단계;
상기 제1 보안 노트의 보안 밸런스가 상기 거래 금액보다 큰 경우에 생성되는 제2 보안 노트의 유효성을 검증하는 단계;
상기 제2 보안 노트의 보안 밸런스가 상기 제1 보안 노트의 보안 밸런스와 상기 거래 금액의 차이인지 검증하는 단계;
상기 제2 보안 노트가 송신자 소유인지 검증하는 단계; 및
상기 공개 보안 거래의 서명이 송신자의 서명인지 검증하는 단계
를 포함하는 것을 특징으로 하는 거래 방법.
According to clause 8,
The steps to prove the transaction are:
Verifying whether the security balance of the first security note is greater than or equal to the transaction amount;
verifying whether the first secure note belongs to the sender;
verifying the validity of the first secure note;
Verifying the validity of a second security note created when the security balance of the first security note is greater than the transaction amount;
Verifying whether the security balance of the second security note is the difference between the security balance of the first security note and the transaction amount;
Verifying whether the second secure note belongs to the sender; and
Verifying that the signature of the public security transaction is the sender's signature
A transaction method comprising:
제8항에 있어서,
상기 블록체인 네트워크의 검증자에 의해 상기 제1 보안 노트의 존재 여부와 사용 여부, 상기 제2 보안 노트의 존재 여부 및 상기 영지식증명 기반의 증거가 각각 검증되는 것을 특징으로 하는 거래 방법.
According to clause 8,
A transaction method characterized in that the existence and use of the first security note, the existence of the second security note, and the zero-knowledge proof-based evidence are each verified by a verifier of the blockchain network.
제10항에 있어서,
상기 검증자에 의한 검증이 성공적으로 완료됨에 따라, 상기 블록체인 네트워크에서,
상기 제1 보안 노트가 상기 제1 보안 노트의 널러파이어(nullifier)에 사용된 노트로서 등록되고,
상기 제2 보안 노트가 생성되는 경우, 상기 제2 보안 노트의 노트 해시가 상기 널러파이어에 기록되고,
공개 밸런스를 위한 수신자의 공개 노트가 생성되고,
수신자의 공개 밸런스가 상기 공개 보안 거래의 거래 금액만큼 증가되는 것
을 특징으로 하는 거래 방법.
According to clause 10,
Upon successful completion of verification by the verifier, in the blockchain network,
The first secure note is registered as a note used to nullify the first secure note,
When the second secure note is created, the note hash of the second secure note is recorded in the nullifier,
A recipient's public note for public balance is created,
The recipient's public balance is increased by the transaction amount of the public security transaction.
A trading method characterized by .
제1항에 있어서,
상기 보안 거래는 송신자 계좌, 수신자 계좌 및 거래 금액이 비공개되고,
상기 영지식증명 기반의 증거를 생성하는 단계는,
상기 보안 거래에 따른 송금을 하는 제1 보안 노트가 송신자의 소유이고, 상기 제1 보안 노트의 잔액의 합과 상기 보안 거래를 통해 새로 생성되는 제2 보안 노트의 잔액의 합이 같은지 증명하는 증거, 상기 제1 보안 노트 및 상기 제2 보안 노트가 유효한지 증명하는 증거 및 상기 보안 거래의 서명이 송신자의 서명인지 증명하는 증거를 생성하는 것
을 특징으로 하는 거래 방법.
According to paragraph 1,
In the above secure transaction, the sender's account, recipient's account, and transaction amount are kept private.
The step of generating evidence based on the zero-knowledge proof is,
Evidence proving that the first security note making the transfer according to the security transaction is owned by the sender, and that the sum of the balance of the first security note and the balance of the second security note newly created through the security transaction are the same, Generating evidence proving that the first security note and the second security note are valid and evidence proving that the signature of the secure transaction is the sender's signature.
A trading method characterized by .
제12항에 있어서,
상기 거래를 증명하는 단계는,
상기 제1 보안 노트 및 상기 제2 보안 노트가 유효한지 검증하는 단계;
상기 제1 보안 노트의 보안 밸런스의 합과 상기 제2 보안 노트의 보안 밸런스의 합이 같은지 검증하는 단계;
상기 제1 보안 노트가 모두 송신자 소유인지 검증하는 단계;
상기 제2 보안 노트가 적어도 하나의 수신자의 소유인지 검증하는 단계; 및
상기 보안 거래의 서명이 송신자의 서명인지 검증하는 단계
를 포함하는 것을 특징으로 하는 거래 방법.
According to clause 12,
The steps to prove the transaction are:
Verifying whether the first security note and the second security note are valid;
Verifying whether the sum of the security balances of the first security note and the sum of the security balances of the second security note are the same;
Verifying whether all of the first secure notes belong to the sender;
verifying whether the second secure note belongs to at least one recipient; and
Verifying whether the signature of the secure transaction is the sender's signature
A transaction method comprising:
제12항에 있어서,
상기 블록체인 네트워크의 검증자에 의해 상기 제1 보안 노트의 존재 여부와 사용 여부, 상기 제2 보안 노트의 존재 여부 및 상기 영지식증명 기반의 증거가 각각 검증되는 것을 특징으로 하는 거래 방법.
According to clause 12,
A transaction method characterized in that the existence and use of the first security note, the existence of the second security note, and the zero-knowledge proof-based evidence are each verified by a verifier of the blockchain network.
제14항에 있어서,
상기 검증자에 의한 검증이 성공적으로 완료됨에 따라, 상기 블록체인 네트워크에서,
상기 제1 보안 노트가 상기 제1 보안 노트의 널러파이어(nullifier)에 사용된 노트로서 등록되고,
상기 제2 보안 노트가 생성되는 경우, 상기 제2 보안 노트의 노트 해시가 상기 널러파이어에 기록되는 것
을 특징으로 하는 거래 방법.
According to clause 14,
Upon successful completion of verification by the verifier, in the blockchain network,
The first secure note is registered as a note used to nullify the first secure note,
When the second secure note is created, the note hash of the second secure note is recorded in the nullifier.
A trading method characterized by .
제1항에 있어서,
상기 적어도 하나의 프로세서에 의해, 상기 적어도 하나의 거래를 생성하기 이전에 오프-체인(off-chain)을 통해 수신자의 암호화키 및 수신자 계정을 공유하는 단계
를 더 포함하는 거래 방법.
According to paragraph 1,
sharing, by the at least one processor, the recipient's encryption key and recipient account via off-chain prior to generating the at least one transaction.
Transaction method further comprising:
컴퓨터 장치와 결합되어 제1항 내지 제16항 중 어느 한 항의 방법을 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.A computer program stored in a computer-readable recording medium in combination with a computer device to cause the computer device to execute the method of any one of claims 1 to 16. 제1항 내지 제16항 중 어느 한 항의 방법을 컴퓨터 장치에 실행시키기 위한 컴퓨터 프로그램이 기록되어 있는 컴퓨터 판독 가능한 기록매체.A computer-readable recording medium recording a computer program for executing the method of any one of claims 1 to 16 on a computer device. 컴퓨터 장치에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서
를 포함하고,
상기 적어도 하나의 프로세서에 의해,
공개 밸런스에서 보안 밸런스로의 송금을 위한 숨김 보안 거래, 보안 밸런스에서 공개 밸런스로의 송금을 위한 공개 보안 거래 및 보안 밸런스들간의 송금을 위한 보안 거래 중 적어도 하나의 거래를 생성하고,
상기 적어도 하나의 거래에 대해 비공개되는 정보를 상기 적어도 하나의 거래의 송신자가 알고 있음을 증명하기 위한 영지식증명 기반의 증거를 생성하고 - 상기 비공개되는 정보는 수신자 계좌, 송신자 계좌, 송금을 받는 보안 노트 및 거래 금액 중 적어도 하나를 포함함 -,
상기 영지식증명 기반의 증거를 포함하는 거래를 블록체인 네트워크로 요청하고,
상기 거래를 증명하는 것
을 특징으로 하는 컴퓨터 장치.
At least one processor implemented to execute readable instructions in a computer device
Including,
By the at least one processor,
Create at least one transaction: a hidden security transaction for transfers from a public balance to a secure balance, a public security transaction for transfers from a secure balance to a public balance, and a security transaction for transfers between security balances;
Generate zero-knowledge proof-based evidence to prove that the sender of the at least one transaction knows information that is to be kept private about the at least one transaction, and the kept information is the recipient's account, the sender's account, and the security for receiving the remittance. Contains at least one of the notes and transaction amount -,
Request a transaction containing the zero-knowledge proof-based evidence from the blockchain network,
Proof of said transaction
A computer device characterized by a.
제19항에 있어서,
공개 밸런스는 블록체인상에 공개된 정보로 저장되는 공개 노트에 기록되고,
보안 밸런스는 블록체인상에 암호화되어 저장되는 보안 노트에 기록되는 것
을 특징으로 하는 컴퓨터 장치.
According to clause 19,
The public balance is recorded in a public note that is stored as public information on the blockchain.
The security balance is recorded in a secure note that is encrypted and stored on the blockchain.
A computer device characterized by a.
KR1020210088830A 2021-07-07 2021-07-07 Method and system for secret transaction KR102671062B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210088830A KR102671062B1 (en) 2021-07-07 2021-07-07 Method and system for secret transaction
JP2022108358A JP2023010648A (en) 2021-07-07 2022-07-05 Method and system for confidential transaction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210088830A KR102671062B1 (en) 2021-07-07 2021-07-07 Method and system for secret transaction

Publications (2)

Publication Number Publication Date
KR20230008322A KR20230008322A (en) 2023-01-16
KR102671062B1 true KR102671062B1 (en) 2024-05-30

Family

ID=85109968

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210088830A KR102671062B1 (en) 2021-07-07 2021-07-07 Method and system for secret transaction

Country Status (2)

Country Link
JP (1) JP2023010648A (en)
KR (1) KR102671062B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102000244B1 (en) * 2019-04-02 2019-07-16 주식회사 한국정보보호경영연구소 Blockchain system based on Zero Knowledge Proofs with Format-Preserving Encryption and control method thereof

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110383311A (en) * 2018-11-07 2019-10-25 阿里巴巴集团控股有限公司 Supervise the transaction of block chain secret
KR102213414B1 (en) * 2018-12-21 2021-02-09 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. Blockchain data protection based on general account model and homogeneous encryption
CA3061789C (en) * 2019-01-31 2021-01-26 Alibaba Group Holding Limited Cross-asset trading within blockchain networks

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102000244B1 (en) * 2019-04-02 2019-07-16 주식회사 한국정보보호경영연구소 Blockchain system based on Zero Knowledge Proofs with Format-Preserving Encryption and control method thereof

Also Published As

Publication number Publication date
JP2023010648A (en) 2023-01-20
KR20230008322A (en) 2023-01-16

Similar Documents

Publication Publication Date Title
US11880809B2 (en) Blockchain cross-chain non-fungible token exchange
JP7535362B2 (en) COMPUTER-IMPLEMENTED METHOD AND SYSTEM FOR VERIFYING TOKENS FOR BLOCKCHAIN-BASED CRYPTOCURRENCY
US11900364B2 (en) Implementing logic gate functionality using a blockchain
Tikhomirov Ethereum: state of knowledge and research perspectives
CN109242675B (en) Asset publishing method and device based on block chain and electronic equipment
CN110419055B (en) Blockchain data protection based on account ticket model with zero knowledge proof
US11341487B2 (en) System and method for information protection
JP6689946B2 (en) Method of managing resources in any one of a plurality of nodes communicating with each other via a network, and computer apparatus operating as any one of a plurality of nodes communicating with each other via a network
Burkhardt et al. Distributed ledger
US20190244186A1 (en) Electronic bill management method, apparatus, and storage medium
JP2023071977A (en) Computer-implemented system and method suitable for increasing security of instant off-line blockchain transactions
WO2019109003A1 (en) Blockchain system for confidential and anonymous smart contracts
CN109003185B (en) Intelligent contract establishing method and device, computing equipment and storage medium
CN111738725B (en) Cross-border resource transfer authenticity auditing method and device and electronic equipment
CN111383114A (en) Asset information management method and device based on block chain
KR20210065995A (en) Computer-implemented systems and methods for transmitting access to digital resources
WO2021209043A1 (en) Blockchain-based traffic statistics
CN111402033A (en) Asset information management method and device based on block chain
KR102627868B1 (en) Method and system for authenticating data generated in blockchain
CN111340628A (en) Asset information management method and device based on block chain
US20220067717A1 (en) Blockchain system that includes bank nodes each having separate ledgers for identity, digital currency and other functions, and operation method thereof
JP2022539283A (en) A method and system for validating blockchain data stored in a storage format different from the blockchain
CN113221191A (en) Block chain-based data evidence storage method, device, equipment and storage medium
Suliyanti et al. Evaluation of hash rate-based double-spending based on proof-of-work blockchain
KR102671062B1 (en) Method and system for secret transaction

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant