KR20200054131A - 영-지식 증명을 갖는 계정 노트 모델에 기초한 블록체인 데이터 보호 - Google Patents

영-지식 증명을 갖는 계정 노트 모델에 기초한 블록체인 데이터 보호 Download PDF

Info

Publication number
KR20200054131A
KR20200054131A KR1020197011611A KR20197011611A KR20200054131A KR 20200054131 A KR20200054131 A KR 20200054131A KR 1020197011611 A KR1020197011611 A KR 1020197011611A KR 20197011611 A KR20197011611 A KR 20197011611A KR 20200054131 A KR20200054131 A KR 20200054131A
Authority
KR
South Korea
Prior art keywords
transaction amount
account
transaction
notes
commit
Prior art date
Application number
KR1020197011611A
Other languages
English (en)
Other versions
KR102215773B1 (ko
Inventor
바오리 마
웬빈 장
후안유 마
젱 리우
리춘 리
Original Assignee
알리바바 그룹 홀딩 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 알리바바 그룹 홀딩 리미티드 filed Critical 알리바바 그룹 홀딩 리미티드
Publication of KR20200054131A publication Critical patent/KR20200054131A/ko
Application granted granted Critical
Publication of KR102215773B1 publication Critical patent/KR102215773B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • 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
    • G06Q20/0658Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed locally
    • 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/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3674Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes involving authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/3236Cryptographic 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 cryptographic hash functions
    • H04L9/3239Cryptographic 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 cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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
    • H04L2209/38
    • 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

Abstract

본 개시내용의 구현들은 제1 계정으로부터, 복수의 노트들의 디지털 서명된 사본, 복수의 노트들 중 적어도 일부분에 의해 지불된, 제1 계정과 제2 계정 간의 트랜잭션의 트랜잭션 금액의 커밋먼트, 복수의 노트들의 총 값으로부터 트랜잭션 금액을 공제하는 것으로부터의 잔돈의 커밋먼트, 및 하나 이상의 선택된 난수들에 기초하여 생성된 영-지식 증명을 수신하는 단계를 포함한다. 제1 계정은, 복수의 노트들의 총 값이 트랜잭션 금액과 잔돈의 합과 동일하다는 것으로 결정하고, 트랜잭션을 확인하며, 복수의 노트들, 트랜잭션 금액 및 잔돈에 기초하여 제1 계정 및 제2 계정을 업데이트한다.

Description

영-지식 증명을 갖는 계정 노트 모델에 기초한 블록체인 데이터 보호
블록체인 네트워크들(블록체인 시스템들, 합의(consensus) 네트워크들, 분산 원장(distributed ledger) 시스템 네트워크들, 또는 블록체인으로도 또한 지칭될 수 있음)은 참여 엔티티들이 안전하게 그리고 영구적으로 데이터를 저장하는 것을 가능하게 한다. 블록체인은 트랜잭션들의 원장으로서 설명될 수 있으며, 블록체인의 다수의 사본들이 블록체인 네트워크에 걸쳐 저장된다. 블록체인들의 예시적인 타입들은 퍼블릭 블록체인(public blockchain)들, 컨소시엄 블록체인(consortium blockchain)들 및 프라이빗 블록체인(private blockchain)들을 포함할 수 있다. 퍼블릭 블록체인은 모든 엔티티들이 블록체인을 사용하고 합의 프로세스에 참여하도록 개방된다. 컨소시엄 블록체인은 사전-선택된 노드 세트, 이를테면, 특정 기구들 또는 기관들에 의해 합의 프로세스가 제어되는 블록체인이다. 특정 엔티티에 읽기 및 쓰기 허가(permission)들을 중앙에서 제어하는 프라이빗 블록체인이 제공된다.
블록체인들은 참여자들이 암호-화폐(crypto-currency)를 사용하여 상품들/서비스들을 사고/파는 트랜잭션들을 수행하는 것을 가능하게 하는 암호-화폐 네트워크들에서 사용된다. 통상적인 암호-화폐는 비트코인(Bitcoin)을 포함한다. 암호-화폐 네트워크들에서, 사용자들 간의 트랜잭션들을 기록(record)하기 위해 기록-유지(record-keeping) 모델들이 사용된다. 예시적인 기록-유지 모델들은 소비되지 않은 트랜잭션 출력(UTXO: unspent transaction output) 모델 및 계정 잔고(account balance) 모델을 포함한다. UTXO 모델에서, 각각의 트랜잭션은 이전 트랜잭션들로부터의 출력을 소비하며, 후속 트랜잭션들에서 소비될 수 있는 새로운 출력들을 생성한다. 사용자의 소비되지 않은 트랜잭션들이 추적되고, 사용자가 소비해야 하는 잔고는 소비되지 않은 트랜잭션들의 합으로 계산된다. 계정 잔고 모델에서, 각각의 사용자의 계정 잔고는 글로벌 상태(global state)로 추적된다. 각각의 트랜잭션마다, 소비 계정의 잔고가 트랜잭션 금액보다 크거나 또는 동일한지를 확인하기 위해 소비 계정의 잔고가 체크된다. 이것은 전통적인 은행업무와 비교가능하다.
블록체인은 일련의 블록들을 포함하며, 이러한 블록들 각각은 네트워크에서 실행되는 하나 이상의 트랜잭션들을 포함한다. 각각의 블록은 원장의 페이지로 분석될 수 있지만, 블록체인 그 자체는 원장의 전체 사본이다. 개별 트랜잭션들은 컨펌(confirm)되어 블록체인에 추가되는 블록에 추가된다. 블록체인의 사본들은 네트워크의 노드들에 걸쳐 복제된다. 이러한 방식으로, 블록체인의 상태에 대한 글로벌 합의가 존재한다. 게다가, 블록체인은 적어도 퍼블릭 네트워크들의 경우 모든 노드들이 보도록 개방된다. 블록체인 사용자들의 프라이버시를 보호하기 위해, 암호화 기술들이 구현된다.
계정 잔고 모델 하에서, 트랜잭션의 양 당사자들이 커밋(commit)하는 값들을 숨기기 위해 커밋먼트 스킴(commitment scheme)들이 사용될 수 있다. 커밋먼트 스킴들은 당사자들이 선택 또는 값으로 커밋하고 추후에 그 값을 관련된 다른 당사자들에게 통신할 필요성으로부터 발생할 수 있다. 예컨대, 상호작용식 PC(Pedersen Commitment) 스킴에서, 첫 번째 사용자는, 랜덤 값 r에 기초하여 생성된 커밋먼트 값 PC(t, r)를 전송함으로써 트랜잭션 금액 t로 커밋할 수 있다. 커밋먼트 값이 생성되고, 제2 사용자는 난수 r을 획득함으로써 트랜잭션 금액 t만을 나타낼 수 있다. 트랜잭션 금액이 유효한 것을 보장하기 위해, 트랜잭션 금액이 0보다 크거나 또는 동일하고 계정 잔고보다 적거나 또는 동일하다는 것을 증명하기 위한 범위 증명(range proof)이 생성될 수 있다.
일부 경우들에서, 한 사용자로부터 다수의 트랜잭션들이 수행될 수 있다. 범위 증명은 계정의 남아있는 잔고와 연관되기 때문에, 다수의 트랜잭션들이 블록체인에서 순차적으로 검증되는 것이 중요하다. 이로써, 대응하는 범위 증명들은 각각의 트랜잭션 이후 계정의 남아있는 잔고들과 정확하게 연관될 수 있다.
본 개시내용의 구현들은 계정 노트(account note) 모델에 기초한 영-지식 증명(zero-knowledge proof)을 이용하는 비-상호작용식 프라이버시-보존 블록체인 트랜잭션 검증들을 위한 컴퓨터-구현 방법들을 포함한다. 보다 특히, 본 개시내용의 구현들은 계정 노트 모델 하에서 블록체인 계정들 간의 트랜잭션들을 확인(validate)하는 것에 관한 것이다. 일부 구현들에서, 계정 노트 모델에서 계정 잔고들이 노트들의 어그리게이션(aggregation)으로서 저장된다. 본 개시내용의 구현들에 따라, 트랜잭션 확인은 트랜잭션 금액, 노트 값 또는 커밋먼트들을 생성하기 위한 난수들을 나타내지 않으면서 커밋먼트 스킴들 및 퍼블릭-키 암호화 스킴 또는 통합 암호화 스킴에 기초하여 수행될 수 있다.
일부 구현들에서, 동작들은, 제1 계정으로부터, 대응하는 복수의 노트들을 식별하는 복수의 노트 식별자(ID)들의 디지털 서명된 사본, 복수의 노트들 중 적어도 일부분에 의해 지불된, 제1 계정과 제2 계정 간의 트랜잭션의 트랜잭션 금액의 커밋먼트, 복수의 노트들의 총 값으로부터 트랜잭션 금액을 공제하는 것으로부터의 잔돈(change)의 커밋먼트, 제2 계정의 퍼블릭 키에 의해 암호화된 트랜잭션 금액의 커밋먼트를 생성하기 위해 사용되는 제1 난수 ― 트랜잭션 금액은 제2 계정의 퍼블릭 키에 의해 암호화됨 ― , 제1 계정의 퍼블릭 키에 의해 암호화된 잔돈의 커밋먼트를 생성하기 위해 사용되는 제2 난수 ― 잔돈은 제1 계정의 퍼블릭 키에 의해 암호화됨 ― , 하나 이상의 범위 증명들, 및 하나 이상의 선택된 난수들에 기초하여 생성된 영-지식 증명을 수신하는 단계; 제1 계정의 퍼블릭 키를 사용하여 디지털 서명된 사본에 대응하는 디지털 서명을 검증하는 단계; 하나 이상의 범위 증명들이 트랜잭션 금액 및 잔돈이 0보다 크거나 또는 0과 동일하다는 것을 증명하는 것으로 결정하는 단계; 복수의 노트들의 총 값이 트랜잭션 금액과 잔돈의 합과 동일하다는 것으로 결정하는 단계; 커밋먼트에서의 트랜잭션 금액이 암호화된 트랜잭션 금액과 동일한지 그리고 트랜잭션 금액의 커밋먼트를 생성하기 위해 사용되는 난수가 제1 난수와 동일한지를 결정하는 단계; 및 커밋먼트에서의 트랜잭션 금액이 암호화된 트랜잭션 금액과 동일하고, 트랜잭션 금액의 커밋먼트를 생성하기 위해 사용되는 난수가 제1 난수와 동일하면, 복수의 노트들, 트랜잭션 금액 및 잔돈에 기초하여 제1 계정 및 제2 계정을 업데이트하는 단계를 포함한다. 다른 구현들은 컴퓨터 저장 디바이스들 상에서 인코딩된 방법들의 동작들을 수행하도록 구성된 대응하는 시스템들, 장치 및 컴퓨터 프로그램들을 포함한다.
이러한 그리고 다른 구현들은 각각 다음의 특징들 중 하나 이상을 선택적으로 포함할 수 있다: 복수의 노트들 각각은 노트 타입, 노트 값의 커밋먼트 ― 노트 값은 퍼블릭-키 암호화 또는 통합 암호화에 의해 암호화됨 ― , 및 퍼블릭-키 암호화 또는 통합 암호화에 의해 암호화된 커밋먼트를 생성하기 위해 사용되는 난수 중 하나 이상을 포함하는 것; 복수의 노트들 각각이 동일한 노트 타입을 갖는 것으로 결정하는 것; 트랜잭션 금액의 커밋먼트, 잔돈의 커밋먼트 및 노트 값의 커밋먼트는 동형(homomorphic)인 커밋먼트 스킴을 사용하여 생성되는 것; 복수의 노트들의 총 값이 트랜잭션 금액과 잔돈의 합과 동일한지를 결정하는 것은, 각각의 노트 값의 커밋먼트의 합과, 트랜잭션 금액의 커밋먼트와 잔돈의 커밋먼트의 합을 비교하는 것에 기초하는 것; 복수의 노트 ID들 각각은 트랜잭션 어드레스, 및 트랜잭션 출력에서의 대응하는 노트의 순서를 표시하는 인덱스 번호를 포함하고, 트랜잭션 어드레스는 트랜잭션의 트랜잭션 정보를 해싱함으로써 생성되는 것; 복수의 노트 ID들 각각이 제1 계정과 연관되는 것으로 결정하는 것; 제1 난수 및 트랜잭션 금액은 Paillier 암호화 또는 Okamoto-Uchiyama 암호화에 기초하여 제2 계정의 퍼블릭 키에 의해 암호화되는 것; 커밋먼트에서의 트랜잭션 금액이 암호화된 트랜잭션 금액과 동일한지 그리고 트랜잭션 금액의 커밋먼트를 생성하기 위해 사용되는 난수가 제1 난수와 동일한지를 결정하는 것은 블록체인 네트워크 외부의 제1 계정과 제2 계정 간의 상호작용들 없이 영-지식 증명에 기초하는 것.
본 개시내용은 또한, 하나 이상의 프로세서들에 커플링되고, 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금, 본원에서 제공된 방법들의 구현들에 따라 동작들을 수행하게 하는 명령어들이 저장된 하나 이상의 비-일시적인 컴퓨터-판독가능한 저장 매체들을 제공한다.
본 개시내용은 본원에서 제공되는 방법들을 구현하기 위한 시스템을 추가로 제공한다. 본 시스템은 하나 이상의 프로세서들, 및 하나 이상의 프로세서들에 커플링되고, 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금, 본원에서 제공되는 방법들의 구현들에 따라 동작들을 수행하게 하는 명령어들이 저장된 컴퓨터-판독가능한 저장 매체를 포함한다.
본 개시내용에 따른 방법들은 본원에서 설명되는 양상들 및 특징들의 임의의 조합을 포함할 수 있다는 것이 인식된다. 즉, 본 개시내용에 따른 방법들은 본원에서 구체적으로 설명되는 양상들 및 특징들의 조합들로 제한되는 것이 아니라, 제공되는 양상들 및 특징들의 임의의 조합을 또한 포함한다.
본 개시내용의 하나 이상의 구현들의 세부사항들은 아래의 설명 및 첨부한 도면들에서 기술된다. 본 개시내용의 다른 특징들 및 이점들은 설명 및 도면들로부터, 그리고 청구항들로부터 명백해질 것이다.
도 1은 본 개시내용의 구현들을 실행하기 위해 사용될 수 있는 예시적인 환경을 도시한다.
도 2는 본 개시내용의 구현들에 따른 예시적인 개념적 아키텍처를 도시한다.
도 3은 본 개시내용의 구현들에 따른 계정 노트 모델에 기초한 프라이버시-보호 블록체인 트랜잭션 확인의 예시적인 프로세스를 도시한다.
도 4는 본 개시내용의 구현들에 따른 계정 노트 모델에 기초한 예시적인 블록체인 트랜잭션을 도시한다.
도 5는 본 개시내용의 구현들에 따라 실행될 수 있는 예시적인 프로세스를 도시한다.
다양한 도면들에서의 유사한 참조 심볼들은 유사한 엘리먼트들을 표시한다.
본 개시내용의 구현들은 계정 노트 모델에 기초한 영-지식 증명을 이용하는 비-상호작용식 프라이버시-보호 블록체인 트랜잭션 검증들을 위한 컴퓨터-구현 방법들을 포함한다. 보다 특히, 본 개시내용의 구현들은 계정 노트 모델 하에서 블록체인 계정들 간의 트랜잭션들을 확인하는 것에 관한 것이다. 일부 구현들에서, 계정 노트 모델에서 계정 잔고들이 노트들의 어그리게이션으로서 저장된다. 본 개시내용의 구현들에 따라, 트랜잭션 확인은 트랜잭션 금액, 노트 값 또는 커밋먼트들을 생성하기 위한 난수들을 나타내지 않으면서 커밋먼트 스킴들 및 퍼블릭-키 암호화 스킴 또는 통합 암호화 스킴에 기초하여 수행될 수 있다. 일부 구현들에서, 동작들은, 제1 계정으로부터, 대응하는 복수의 노트들을 식별하는 복수의 노트 식별자(ID)들의 디지털 서명된 사본, 복수의 노트들 중 적어도 일부분에 의해 지불된, 제1 계정과 제2 계정 간의 트랜잭션의 트랜잭션 금액의 커밋먼트, 복수의 노트들의 총 값으로부터 트랜잭션 금액을 공제하는 것으로부터의 잔돈(change)의 커밋먼트, 제2 계정의 퍼블릭 키에 의해 암호화된 트랜잭션 금액의 커밋먼트를 생성하기 위해 사용되는 제1 난수 ― 트랜잭션 금액은 제2 계정의 퍼블릭 키에 의해 암호화됨 ― , 제1 계정의 퍼블릭 키에 의해 암호화된 잔돈의 커밋먼트를 생성하기 위해 사용되는 제2 난수 ― 잔돈은 제1 계정의 퍼블릭 키에 의해 암호화됨 ― , 하나 이상의 범위 증명들, 및 하나 이상의 선택된 난수들에 기초하여 생성된 영-지식 증명을 수신하는 단계; 제1 계정의 퍼블릭 키를 사용하여 디지털 서명된 사본에 대응하는 디지털 서명을 검증하는 단계; 하나 이상의 범위 증명들이 트랜잭션 금액 및 잔돈이 0보다 크거나 또는 0과 동일하다는 것을 증명하는 것으로 결정하는 단계; 복수의 노트들의 총 값이 트랜잭션 금액과 잔돈의 합과 동일하다는 것으로 결정하는 단계; 커밋먼트에서의 트랜잭션 금액이 암호화된 트랜잭션 금액과 동일한지 그리고 트랜잭션 금액의 커밋먼트를 생성하기 위해 사용되는 난수가 제1 난수와 동일한지를 결정하는 단계; 및 커밋먼트에서의 트랜잭션 금액이 암호화된 트랜잭션 금액과 동일하고, 트랜잭션 금액의 커밋먼트를 생성하기 위해 사용되는 난수가 제1 난수와 동일하면, 복수의 노트들, 트랜잭션 금액 및 잔돈에 기초하여 제1 계정 및 제2 계정을 업데이트하는 단계를 포함한다.
본 개시내용의 구현들을 위한 추가적인 맥락을 제공하기 위해 그리고 위에서 도입된 바와 같이, 블록체인 네트워크들(합의 네트워크들(예컨대, 피어-투-피어 노드들로 구성됨), 분산 원장 시스템 또는 단순히 블록체인으로도 또한 지칭될 수 있음)은 참여 엔티티들이 안전하게 그리고 영구적으로 트랜잭션들을 수행하고 데이터를 저장하는 것을 가능하게 한다. 블록체인은 퍼블릭 블록체인, 프라이빗 블록체인 또는 컨소시엄 블록체인으로서 제공될 수 있다. 본 개시내용의 구현들은 참여 엔티티들 간에 공개되는 퍼블릭 블록체인을 참조하여 본원에서 더 상세하게 설명된다. 그러나, 본 개시내용의 구현들은 임의의 적절한 타입의 블록체인에서 실현될 수 있다는 것이 고려된다.
퍼블릭 블록체인에서, 합의 프로세스는 합의 네트워크의 노드들에 의해 제어된다. 예컨대, 수백, 수천, 심지어 수백만 개의 엔티티들이 퍼블릭 블록체인에 참여할 수 있으며, 이러한 엔티티들 각각은 퍼블릭 블록체인에서 적어도 하나의 노드를 동작시킨다. 따라서, 퍼블릭 블록체인은 참여 엔티티들에 대해 퍼블릭 네트워크로 고려될 수 있다. 일부 예들에서, 대부분의 엔티티들(노드들)은 블록이 유효하고 블록체인에 추가되도록 하기 위해 모든 각각의 블록에 서명해야 한다. 예시적인 퍼블릭 블록체인은 피어-투-피어 지불 네트워크(암호-화폐 네트워크)인 비트코인 네트워크에서 사용되는 블록체인을 포함한다. 블록체인이라는 용어는 통상적으로 비트코인 네트워크와 함께 참조되지만, 본원에서 사용되는 바와 같이, 블록체인은 특히 비트코인 네트워크를 참조하지 않고 일반적으로 분산 원장들을 지칭한다.
일반적으로, 퍼블릭 블록체인은 퍼블릭 트랜잭션들을 지원한다. 퍼블릭 트랜잭션은 블록체인 내의 모든 노드들과 공유되고, 블록체인은 모든 노드들에 걸쳐 복제된다. 즉, 모든 노드들은 블록체인과 관련하여 완벽한 합의 상태에 있다. 합의(예컨대, 블록체인에 블록을 추가하는 것에 대한 동의)를 달성하기 위해, 합의 프로토콜이 블록체인 네트워크 내에서 구현된다. 예시적인 합의 프로토콜은, 제한 없이, 비트코인 네트워크에서 구현되는 POW(proof-of-work)를 포함한다.
본 개시내용의 구현들은 위의 맥락을 고려하여 본원에서 더 상세하게 설명된다. 보다 특히 그리고 위에서 도입된 바와 같이, 본 개시내용의 구현들은, 계정 잔고들이 노트들의 어그리게이션으로서 저장되는 계정 노트 모델 하에서 블록체인 계정들 간의 트랜잭션들을 확인하는 것에 관한 것이다. 일부 구현들에서 그리고 본원에서 더 상세하게 설명된 바와 같이, 트랜잭션 확인은 트랜잭션 금액, 노트 값 또는 커밋먼트들을 생성하기 위한 난수들을 나타내지 않으면서 커밋먼트 스킴들 및 HE에 기초하여 수행될 수 있다.
본 개시내용의 구현들에 따라, 블록체인 노드들은 계정 노트 모델을 기록-유지 방법으로서 사용할 수 있다. 계정 잔고 모델과 비교하여, 계정 노트 모델을 채택한 블록체인 노드들은 계정 잔고들 대신에 복수의 노트들의 기록들을 유지한다. 복수의 노트들 각각은 노트 타입 및 노트 값과 연관된다. 노트 타입은 노트와 연관된 화폐 또는 자산의 타입일 수 있다. 화폐 타입은 실제 화폐 또는 암호화폐의 임의의 타입일 수 있다. 노트 값은 대응하는 노트 타입을 갖는 노트의 액면가를 표시할 수 있다.
데이터 프라이버시를 보호하기 위해, 트랜잭션들이 블록체인 사용자 계정들과 연관된 트랜잭션 금액 또는 통화(monetary) 금액 정보를 나타내지 않으면서 커밋먼트에 기초하여 블록체인(원장)에 기록될 수 있다. 난수를 사용하여 트랜잭션 금액의 커밋먼트를 생성하기 위해 커밋먼트 스킴이 사용될 수 있다. 예시적인 커밋먼트 스킴은, 제한 없이, PC(Pedersen Commitment) 스킴을 포함한다. 트랜잭션 금액은 커밋먼트에 숨겨지기 때문에, 트랜잭션 금액이 블록체인 사용자 계정의 값을 초과하지 않는다는 것을 증명하기 위해 하나 이상의 범위 증명들이 사용될 수 있다.
계정 잔고 모델 하에서, 범위 증명들은 계정 잔고와 연관된다. 둘 이상의 트랜잭션이 수행되지만, 모든 트랜잭션들이 확인되고 블록체인에 기록되는 것이 아니면, 범위 증명들은 잘못된 계정 잔고들과 연관될 수 있어 유효하지 않을 수 있다. 이와 비교하여, 계정 노트 모델 하에서, 계정 값은 복수의 노트들의 합에 의해 계산된다. 트랜잭션 금액이 블록체인 사용자 계정들 간에 이체될 때, 트랜잭션 금액보다 크거나 또는 동일한 결합 값을 갖는 복수의 노트들 중 일부분은 이체를 수행하기 위해 사용될 수 있다. 남아있는 노트들이 이체될 금액보다 큰 결합 값을 갖는 조건 하에서 추가 이체들이 수행될 수 있다. 이로써, 심지어 트랜잭션들이 확인되지 않고 블록체인에 기록되는 경우에도, 남아있는 노트들의 결합 값이 트랜잭션 금액보다 크거나 또는 동일하다는 것을 나타내는 범위 증명들이 여전히 유효할 수 있다.
예컨대, 사용자 A(노드)와 사용자 B(노드) 간의 트랜잭션을 확인하기 위해, 트랜잭션 금액 및 난수는 사용자 B의 퍼블릭 키에 기초하여 퍼블릭-키 암호화 스킴(예컨대, EIGamal) 또는 통합 암호화 스킴(예컨대, ECIES)을 사용하여 사용자 A에 의해 암호화될 수 있다. 트랜잭션 금액 및 난수는 또한, 트랜잭션을 확인하기 위한 영-지식 증명(ZKP: zero-knowledge proof)을 생성하기 위해 사용될 수 있다. 트랜잭션의 커밋먼트, 암호화된 트랜잭션 금액, 암호화된 난수 및 ZKP는 트랜잭션이 유효한지를 검증하기 위해 블록체인 노드에 의해 사용될 수 있다. 확인 프로세스 동안, 계정 잔고, 트랜잭션 금액 또는 난수는 나타나거나 또는 사용자 B에게 전송될 필요가 없다.
도 1은 본 개시내용의 구현들을 실행하기 위해 사용될 수 있는 예시적인 환경(100)을 도시한다. 일부 예들에서, 예시적인 환경(100)은 엔티티들이 퍼블릭 블록체인(102)에 참여하는 것을 가능하게 한다. 예시적인 환경(100)은 컴퓨팅 시스템들(106, 108) 및 네트워크(110)를 포함한다. 일부 예들에서, 네트워크(110)는 LAN(local area network), WAN(wide area network), 인터넷, 또는 이들의 조합을 포함하며, 웹 사이트들, 사용자 디바이스들(예컨대, 컴퓨팅 디바이스들) 및 백-엔드 시스템들에 연결한다. 일부 예들에서, 네트워크(110)는 유선 및/또는 무선 통신 링크를 통해 액세스될 수 있다.
도시된 예에서, 컴퓨팅 시스템들(106, 108)은 각각, 퍼블릭 블록체인(102)에서 노드로서 참여를 가능하게 하는 임의의 적절한 컴퓨팅 시스템을 포함할 수 있다. 예시적인 컴퓨팅 디바이스들은, 제한 없이, 서버, 데스크탑 컴퓨터, 랩탑 컴퓨터, 태블릿 컴퓨팅 디바이스 및 스마트폰을 포함한다. 일부 예들에서, 컴퓨팅 시스템들(106, 108)은 퍼블릭 블록체인(102)과 상호작용하기 위한 하나 이상의 컴퓨터-구현 서비스들을 호스팅한다. 예컨대, 컴퓨팅 시스템(106)은 제1 엔티티(예컨대, 사용자 A)가 하나 이상의 다른 엔티티들(예컨대, 다른 사용자들)과의 자신의 트랜잭션들을 관리하기 위해 사용하는 트랜잭션 관리 시스템과 같은 제1 엔티티의 컴퓨터-구현 서비스들을 호스팅할 수 있다. 컴퓨팅 시스템(108)은 제2 엔티티(예컨대, 사용자 B)가 하나 이상의 다른 엔티티들(예컨대, 다른 사용자들)과의 자신의 트랜잭션들을 관리하기 위해 사용하는 트랜잭션 관리 시스템과 같은 제2 엔티티의 컴퓨터-구현 서비스들을 호스팅할 수 있다. 도 1의 예에서, 퍼블릭 블록체인(102)은 노드들의 피어-투-피어 네트워크로서 표현되고, 컴퓨팅 시스템들(106, 108)은 각각 퍼블릭 블록체인(102)에 참여하는 제1 엔티티 및 제2 엔티티의 노드들을 제공한다.
도 2는 본 개시내용의 구현들에 따른 예시적인 개념적 아키텍처(200)를 도시한다. 예시적인 개념적 아키텍처(200)는 엔티티 계층(202), 호스팅된 서비스 계층(204) 및 퍼블릭 블록체인 계층(206)을 포함한다. 도시된 예에서, 엔티티 계층(202)은 3개의 엔티티들, 즉, Entity_1 (E1), Entity_2 (E2), 및 Entity_3 (E3)을 포함하며, 각각의 엔티티는 개개의 트랜잭션 관리 시스템(208)을 갖는다.
도시된 예에서, 호스팅된 서비스 계층(204)은 각각의 트랜잭션 관리 시스템(208)에 대한 블록체인 인터페이스들(210)을 포함한다. 일부 예들에서, 개개의 트랜잭션 관리 시스템(208)은 통신 프로토콜(예컨대, HTTPS(hypertext transfer protocol secure))을 사용하여 네트워크(예컨대, 도 1의 네트워크(110))를 통해 개개의 블록체인 인터페이스(210)와 통신한다. 일부 예들에서, 각각의 블록체인 인터페이스(210)는 개개의 트랜잭션 관리 시스템(208)과 블록체인 계층(206) 간의 통신 연결을 제공한다. 보다 특히, 각각의 블록체인 인터페이스(210)는 개개의 엔티티가 블록체인 계층(206)의 블록체인 네트워크(212)에 기록된 트랜잭션들을 수행하는 것을 가능하게 한다. 일부 예들에서, 블록체인 인터페이스(210)와 블록체인 계층(206) 간의 통신은 RPC(remote procedure call)들을 사용하여 수행된다. 일부 예들에서, 블록체인 인터페이스들(210)은 개개의 트랜잭션 관리 시스템들(208)에 대한 블록체인 노드들을 "호스팅"한다. 예컨대, 블록체인 인터페이스들(210)은 블록체인 네트워크(212)로의 액세스를 위해 API(application programming interface)를 제공한다.
본원에서 설명된 바와 같이, 블록체인 네트워크(212)는 블록체인(216)에 정보를 영구적으로 기록하는 복수의 노드들(214)을 포함하는 피어-투-피어 네트워크로서 제공된다. 단일 블록체인(216)이 개략적으로 도시되지만, 블록체인(216)의 다수의 사본들이 제공되어 블록체인 네트워크(212)에 걸쳐 유지된다. 예컨대, 각각의 노드(214)는 블록체인(216)의 사본을 저장한다. 일부 구현들에서, 블록체인(216)은 퍼블릭 블록체인에 참여하는 둘 이상의 엔티티들 간에 수행되는 트랜잭션들과 연관된 정보를 저장한다.
도 3은 본 개시내용의 구현들에 따른 계정 노트 모델에 기초한 프라이버시-보호 블록체인 트랜잭션 확인의 예시적인 방법(300)을 도시한다. 하이-레벨에서, 예시적인 방법(300)은 사용자 노드 A(302), 사용자 노드 B(도 3에 도시되지 않음) 및 블록체인 노드(304)(합의 노드로도 또한 지칭됨)에 의해 수행된다. 사용자 노드 A(302)의 계정 및 사용자 노드의 계정 둘 모두는 계정 노트 모델에 기초한다. 즉, 사용자 노드 A(302) 및 사용자 노드 B의 화폐들은 복수의 노트들로서 유지된다. 값의 이체와 같은 트랜잭션은 사용자 노드 A(302)로부터 사용자 노드 B로 이루어질 수 있다. 사용자 노드 A(302)는 트랜잭션 금액을 커버하기 위해 자신의 계정으로부터 노트들의 세트를 선택할 수 있다. 노트들의 세트의 총 값과 트랜잭션 금액 간의 차는 사용자 노드 A(302)의 잔돈으로 계산될 수 있다.
계정 프라이버시를 보호하기 위해, 사용자 노드 A(302)는 난수 r에 기초하여 PC와 같은 커밋먼트 스킴을 사용하여 트랜잭션 금액 t의 커밋먼트를 생성할 수 있다. 사용자 노드 A(302)는 사용자 노드 B의 퍼블릭 키에 기초하여 퍼블릭-키 암호화 스킴 또는 통합 암호화 스킴을 사용하여 트랜잭션 금액 및 난수를 암호화할 수 있다. 사용자 노드 A(302)는 또한, 사용자 노드 A의 퍼블릭 키에 기초하여 퍼블릭-키 암호화 스킴 또는 통합 암호화 스킴을 사용하여 잔돈 및 잔돈에 대응하는 난수를 암호화할 수 있다. 트랜잭션의 유효성을 검증하기 위해, 블록체인 노드(304)는 ZKP에 기초하여 커밋먼트에서 대응하는 트랜잭션 금액 및 난수로 암호화된 트랜잭션 금액 및 난수를 검증할 수 있다. 트랜잭션 금액들과 난수들이 매칭하면, 트랜잭션은 블록체인 노드(304)에 의해 유효한 것으로 결정된다. 예시적인 방법(300)의 더 많은 세부사항들이 도 3의 다음의 설명에서 논의된다.
306에서, 사용자 노드 A(302)는 트랜잭션 금액을 사용자 노드 B에 이체하기 위해 복수의 노트들을 선택한다. 사용자 노드 A(302) 및 사용자 노드 B는 합의 프로세스에 참여하지 않으면서 블록체인 네트워크를 사용하는 사용자 노드들 또는 블록체인 합의 노드일 수 있다. 앞서 논의된 바와 같이, 사용자 노드 A(302)는 기록들을 유지하기 위해 계정 노트 모델을 사용할 수 있다. 계정 잔고 모델 하에서의 기록을 위해 계정 잔고를 유지하는 대신에, 사용자 노드 A(302)의 계정 값이 그 노트들의 총 값에 의해 측정된다. 사용자 노드 A(302)는 트랜잭션 금액을 커버하기에 충분한 노트들로부터 복수의 노트들을 선택할 수 있다. 예컨대, 트랜잭션 금액이 7.5 비트코인이면, 사용자 노드 A(302)는 트랜잭션 금액을 커버하기 위해 각각 5, 2 및 1 비트코인의 가치가 있는 3개의 노트들을 선택할 수 있다.
일부 구현들에서, 각각의 노트는 노트의 화폐 또는 자산의 타입을 식별하는 노트 타입을 가질 수 있다. 각각의 노트는 또한, 트랜잭션 ID 및 인덱스 번호를 포함하는 노트 ID를 가질 수 있다. 트랜잭션 ID는 트랜잭션 정보의 해싱이 될 수 있다. 인덱스는 트랜잭션 출력에서 대응하는 노트의 순서를 표시할 수 있다. 예컨대, 5, 2 및 1 비트코인의 노트 금액을 갖는 3개의 노트들을 전송할 때, 2 비트코인 노트는 인덱스 번호가 2인 제2 트랜잭션 출력일 수 있다. 일부 예들에서, k개의 노트들이 선택되고, 이들의 노트 타입들 및 노트 ID들은 NoteType1, NoteIda1, ..., NoteTypek, NoteIdak로서 표현될 수 있다. 일부 예들에서, 트랜잭션 금액의 이체를 수행하기 위해 동일한 타입의 노트들이 선택될 수 있다. 일부 경우들에서, 잔돈 및 트랜잭션 금액에 대응하는 노트 ID들은 트랜잭션이 생성되기 이전에 획득될 수 없다. 그러한 경우들에서, 상기 Note ID들은 합의 및 계약 업데이트들을 수행할 수 있는 블록체인 계약에 기초하여 생성될 수 있다.
308에서, 사용자 노드 A(302)는 복수의 노트들의 총 값 및 트랜잭션 금액에 기초하여 잔돈을 계산한다. 노트들이 트랜잭션 금액보다 큰 총 값을 갖도록 선택되기 때문에, 잔돈은 트랜잭션 금액에서 공제된 선택된 노트들의 총 값으로 계산될 수 있다. t를 사용하여 트랜잭션 금액을 표현하고, t0을 사용하여 잔돈을 표현하면, 잔돈의 계산은
Figure pct00001
로서 표현될 수 있으며, 여기서, a1, ..., ak는 트랜잭션 금액 t를 커버하기 위해 사용자 노드 A(302)에 의해 선택된 k개의 노트들의 노트 값들이다.
310에서, 사용자 노드 A(302)는 복수의 노트들에 대응하는 복수의 난수들을 생성하며, 잔돈에 대응하는 난수를 계산한다. 복수의 난수들은 노트 값들의 커밋먼트들을 생성하기 위해 생성될 수 있다. 예컨대, a1, ..., ak는 노트 값들이며, 노트 값들에 대응하는 난수들은 ra1, ..., rak로서 표현될 수 있다. 노트들의 커밋먼트들은 PC(ra1, a1), ..., PC(rak, ak)로서 표현될 수 있다.
일부 구현들에서, 난수 r0은 잔돈 t0에 대응하도록 계산될 수 있다. 계산은
Figure pct00002
로서 표현될 수 있으며, 여기서, r은 트랜잭션 금액 t에 대한 커밋먼트를 생성하기 위해 생성된 난수이다. r0을 계산함으로써, 사용자 노드 A(302)는 이체된 노트들의 총 값이 수신된 노트들의 총 값과 동일하다는 것을 나타내기 위해 추가 ZKP를 생성할 필요가 없다.
312에서, 사용자 노드 A(302)는 트랜잭션 금액 및 잔돈의 커밋먼트들 및 퍼블릭 키 암호화된 암호문들을 생성한다. 데이터 프라이버시를 보호하기 위해, 노트 값들, 트랜잭션 금액 및 잔돈을 포함하는 통화 값들은 커밋먼트 스킴들에 기초하여 커밋먼트들에 의해 숨겨질 수 있다. 블록체인은 커밋먼트들을 기록으로서 유지할 수 있다. 일부 구현들에서, 커밋먼트들을 생성하기 위해 PC와 같은 동형 커밋먼트 스킴들이 사용될 수 있다. PC를 비-제한적인 예로 사용하면, 트랜잭션 t의 PC는
Figure pct00003
로서 표현될 수 있는 난수 r을 사용함으로써 생성될 수 있으며, 여기서, gh는 타원 곡선의 생성자들일 수 있고, PC(r, t)는 곡선 점들의 스칼라 곱이다. 커밋먼트 값을 생성하기 위해 Fujisaki-Okamoto 커밋먼트 스킴과 같은 HE에 기초한 다른 커밋먼트 스킴들이 또한 사용될 수 있다는 것이 이해될 것이다.
트랜잭션 금액 및 난수는 또한, 사용자 노드 B의 퍼블릭 키를 사용하여 암호화될 수 있다. 암호화는 Paillier 또는 ElGamal 알고리즘과 같은 퍼블릭-키 암호화 스킴 또는 ECIES와 같은 통합 암호화 스킴에 기초할 수 있다. 이로써, 사용자 노드 B는 자신의 대응하는 프라이빗 키를 사용하여 트랜잭션 금액 및 난수를 나타낼 수 있다. 퍼블릭 키 암호화된 난수 및 트랜잭션 금액은 각각
Figure pct00004
,
Figure pct00005
로서 표현될 수 있으며, 여기서, PkB는 사용자 노드 B의 퍼블릭 키를 표현한다.
유사하게, 잔돈의 커밋먼트는
Figure pct00006
로서 표현될 수 있다. 난수 r0 및 잔돈 금액 t0은 또한, 각각
Figure pct00007
,
Figure pct00008
로서 표현되는 사용자 노드 A(302)의 퍼블릭 키에 의해 암호화될 수 있으며, 여기서, PkA는 사용자 노드 A(302)의 퍼블릭 키를 표현한다.
314에서, 사용자 노드 A(302)는 하나 이상의 범위 증명들을 생성한다. 일부 구현들에서, 제1 범위 증명인 RP1이 트랜잭션 금액
Figure pct00009
이라는 것을 나타내기 위해 생성될 수 있다. 제2 범위 증명인 RP2가 잔돈
Figure pct00010
이라는 것을 나타내기 위해 생성될 수 있고, 다시 말해서, 복수의 노트들의 총 값이 트랜잭션 금액보다 크거나 또는 동일하다.
316에서, 사용자 노드 A(302)는 ZKP를 생성한다. 일부 구현들에서, ZKP는 PB 및 QB에 포함된 난수 r 및 트랜잭션 금액 t가 커밋먼트 T에 포함된 대응하는 난수 및 트랜잭션 금액과 동일하다는 것을 증명하기 위해 사용될 수 있다. 일부 구현들에서, ZKP는 zk-SNARK(zero-knowledge succinct non-interactive argument of knowledge)를 사용하여 생성될 수 있다.
318에서, 사용자 노드 A(302)는 트랜잭션 데이터의 디지털 서명을 생성하기 위해 프라이빗 키를 사용한다. 일부 구현들에서, 트랜잭션 데이터는 NoteType1, NoteIda1, ..., NoteTypek, NoteIdak; T0, T, PB, QB, PA, QA, RP1, RP2 및 ZKP를 포함할 수 있다.
320에서, 사용자 노드 A(302)는 트랜잭션 데이터의 디지털 서명된 사본을 블록체인 네트워크에 제출한다.
322에서, 블록체인 노드(304)는 디지털 서명을 검증한다. 디지털 서명의 검증은 트랜잭션 데이터가 사용자 노드 A(302)에 의해 전송됨을 보장할 수 있다.
324에서, 블록체인 노드(304)는 복수의 노트들의 노트 타입을 검증한다. 다시 말해서, 블록체인 노드(304)는 NoteType1 내지 NoteTypek가 동일하다는 것을 검증한다.
326에서, 블록체인 노드(304)는 선택된 복수의 노트들의 총 값이 트랜잭션 금액과 잔돈의 합과 동일하다는 것을 검증한다. 다시 말해서, 블록체인은
Figure pct00011
이라는 것을 검증한다. 앞서 설명된 바와 같이, 계정 노트 모델 하에서, 노트들은 데이터 프라이버시를 보호하기 위해 PC들로서 블록체인에 유지될 수 있다. PC의 동형(homomorphism)에 기초하여,
Figure pct00012
이고,
Figure pct00013
이다. 그에 따라서,
Figure pct00014
이라는 것을 나타냄으로써,
Figure pct00015
이라는 것이 증명될 수 있다.
328에서, 블록체인 노드(304)는 하나 이상의 범위 증명들을 검증한다.
330에서, 블록체인 노드(304)는 ZKP를 검증하고, ZKP가 성공적으로 검증되면, 사용자 노드 B의 퍼블릭 키를 사용하여 암호화된 트랜잭션 금액 및 난수는 PC에 의해 숨겨진 대응하는 트랜잭션 금액 및 난수와 동일한 것으로 증명된다. 위에서 논의된 바와 같이, ZKP는 zk-SNARK를 사용하여 생성될 수 있다.
일부 구현들에서, ZKP는 또한 시그마 프로토콜(Sigma Protocol)들에 기초하여 생성될 수 있다. Paillier 퍼블릭-키 암호화를 예로 사용하면, PB 및 QB는 각각
Figure pct00016
,
Figure pct00017
으로서 표현될 수 있으며, 여기서, u 및 n은 퍼블릭 키들이고, y 및 z는 난수들이다.
시그마 프로토콜들에 기초하여 ZKP를 생성하기 위해, 사용자 노드 A(302)는 3개의 암호문들 C, D 및 E를 계산하기 위해 4개의 추가 난수들 r*, t*, y* 및 z*를 생성할 수 있다. C, D 및 E는
Figure pct00018
,
Figure pct00019
그리고
Figure pct00020
으로서 표현될 수 있다. 해싱된 값 x는 T, PB, QB, g, h, u, n, C, D 및 E를 해싱함으로써 계산될 수 있으며, 이는
Figure pct00021
로서 표현될 수 있다. 4개의 추가 암호문들 a, b, c 및 d는
Figure pct00022
,
Figure pct00023
,
Figure pct00024
,
Figure pct00025
로 계산될 수 있다. 마지막으로, ZKP는
Figure pct00026
로서 형성될 수 있다.
ZKP를 검증하기 위해, 블록체인 노드(304)는 먼저,
Figure pct00027
를 계산할 수 있다. 블록체인 노드(304)는
Figure pct00028
,
Figure pct00029
, 그리고
Figure pct00030
인지를 검증할 수 있다. 만약 그렇다면, ZKP가 검증되고, 사용자 노드 B의 퍼블릭 키를 사용하여 암호화된 트랜잭션 금액 및 난수가 PC에 의해 숨겨진 대응하는 트랜잭션 금액 및 난수와 동일하다는 것이 증명된다.
다른 예에서, OU 퍼블릭 키 암호화는 트랜잭션 금액 및 난수를 암호화하기 위해 사용될 수 있다. PB 및 QB는 각각
Figure pct00031
,
Figure pct00032
로서 표현될 수 있으며, 여기서, u, v 및 n은 퍼블릭 키들이고, r, y 및 z는 난수들이다.
시그마 프로토콜에 기초하여 ZKP를 생성하기 위해, 사용자 노드 A(302)는 3개의 암호문들 C, D 및 E를 계산하기 위해 4개의 추가 난수들 r*, t*, y* 및 z*를 생성할 수 있다. 암호문들 C, D 및 E는
Figure pct00033
,
Figure pct00034
그리고
Figure pct00035
로 계산될 수 있다. 해싱된 값 x는 T, PB, QB, g, h, u, v, n, C, D 및 E를 해싱함으로써 계산될 수 있으며, 이는
Figure pct00036
로서 표현될 수 있다. 4개의 추가 암호문들 a, b, c 및 d는
Figure pct00037
,
Figure pct00038
,
Figure pct00039
,
Figure pct00040
로 계산될 수 있다. 마지막으로, ZKP는
Figure pct00041
로서 형성될 수 있다.
ZKP를 검증하기 위해, 블록체인 노드(304)는
Figure pct00042
를 계산할 수 있다. 블록체인 노드(304)는
Figure pct00043
,
Figure pct00044
그리고
Figure pct00045
인지를 검증할 수 있다. 만약 그렇다면, ZKP가 검증되고, 사용자 노드 B의 퍼블릭 키를 사용하여 암호화된 트랜잭션 금액 및 난수가 PC에 의해 숨겨진 대응하는 트랜잭션 금액 및 난수와 동일하다는 것이 증명된다.
332에서, 블록체인 노드(304)는 복수의 노트들이 사용자 노드 A(302)에 속한다는 것을 검증한다. 검증은 노트 ID들인 NoteIdai에 기초할 수 있으며, 여기서,
Figure pct00046
이다.
334에서, 블록체인 노드(304)는 사용자 노드 A(302) 및 사용자 노드 B의 계정들을 업데이트한다. 사용자 노드 A(302) 및 사용자 노드 B의 계정들은, 트랜잭션 이후에, 계정 노트 모델 하에서 기록들로서 노트들을 유지하기 때문에, 사용자 노드 A(302)로부터 이체된 복수의 노트들은 사용자 노드 A(302)의 계정으로부터 제거될 수 있다. 잔돈은 사용자 노드 A의 계정에 다시 추가될 수 있다. 트랜잭션 금액 및 대응하는 노트 타입 및 노트 ID는 새로운 노트로서 사용자 노드 B의 계정에 추가될 수 있다. 계정들의 업데이트가 도 4를 참조하여 본원에서 더 상세하게 설명된다.
도 4는 본 개시내용의 구현들에 따른 계정 노트 모델에 기초한 예시적인 블록체인 트랜잭션(400)을 도시한다. 예시적인 블록체인 트랜잭션(400)에 도시된 바와 같이, 사용자 노드 A(402)는 트랜잭션 금액 t를 사용자 노드 B(404)로 이체한다. 트랜잭션 이전에, 사용자 노드 A(402)는 NoteIda1, PC(ra1, a1), E(PkA, ra1), E(PkA, a1); NoteIda2, PC(ra2, a2), E(PkA, ra2), E(PKA, a2); ... ; NoteIdam, PC(ram, am), E(PkA, ram), E(PKA, am)를 포함하는 m개의 노트들을 갖는다.
도 3을 참조하여 본원에서 설명된 커밋먼트 스킴들, 암호화 스킴들 및 트랜잭션 프로세스를 예로 사용하면, 사용자 노드 A(402)는 트랜잭션 데이터(408)를 생성하며, 트랜잭션 데이터(408)는 k개의 선택된 노트들의 노트 ID들 및 NoteType1, NoteIda1, ..., NoteTypek, NoteIdak로서 표현되는 이들의 타입을 포함할 수 있다. 트랜잭션 데이터(408)는 T0, T, PB, QB, PA, QA, RP1, RP2 및 ZKP를 더 포함할 수 있다. 트랜잭션 데이터(408)가 생성된 이후에, 사용자 노드 A(402)는 자신의 디지털 서명을 추가하고, 합의를 위해 디지털 서명된 트랜잭션 데이터를 블록체인 네트워크(406)에 제출할 수 있다.
트랜잭션 이후에, k개의 선택된 노트들은 사용자 노트 A(402)의 계정으로부터 제거될 수 있다. 잔돈은 사용자 노드 A(402)에 다시 추가될 수 있다. 그에 따라서, 사용자 노드 A(402)는 NoteIda(k+1), PC(ra(k+1), a(k+1)), E(PkA, ra(k+1)), E(PkA, a(k+1)), ..., NoteIdam, PC(ram, am), E(PkA, ram), E(PkA, am), NoteIda(m+1), PC(r0, t0), E(PkA, r0), E(PkA, t0)으로서 표현되는 다음의 노트들을 가질 수 있으며, 여기서, NoteIda(m+1)은 잔돈 t0의 노트 ID를 표현한다.
트랜잭션 이전에, 사용자 노드 B(404)는 NoteIdb1, PC(rb1, b1), E(PkB, rb1), E(PkB, b1); NoteIdb2, PC(rb2, b2), E(PkB, rb2), E(PkB, b2); ...; NoteIdbm, PC(rbm, bm), E(PkB, rbm), E(PkB, bm)으로서 표현될 수 있는 m개의 노트들을 갖는다. 트랜잭션 이후에, 트랜잭션 금액은 사용자 노드 B(404)에 추가될 수 있다. 사용자 노드 B(404)는 NoteIdb1, PC(rb1, b1), E(PkB, rb1), E(PkB, b1), ..., NoteIdbm, PC(rbm, bm), E(PkB, rbm), E(PkB, bm), NoteIdb(m+1), PC(r, t), E(PkB, r), E(PkB, t)로서 표현되는 다음의 노트들을 가질 수 있으며, 여기서, NoteIdb(m+1)은 트랜잭션 금액 t의 노트 ID를 표현한다.
도 5는 본 개시내용의 구현들에 따라 실행될 수 있는 예시적인 프로세스(500)를 도시한다. 설명의 명료함을 위해, 다음의 설명은 일반적으로, 본 설명의 다른 도면들의 맥락에서 예시적인 프로세스(500)를 설명한다. 그러나, 예시적인 프로세스(500)는, 예컨대, 임의의 시스템, 환경, 소프트웨어 및 하드웨어, 또는 시스템들, 환경들, 소프트웨어 및 하드웨어의 조합에 의해 적절하게 수행될 수 있다는 것이 이해될 것이다. 일부 구현들에서, 예시적인 프로세스(500)의 다양한 단계들은 병렬로, 조합되어, 루프들로, 또는 임의의 순서로 실행될 수 있다.
502에서, 합의 노드는, 제1 계정으로부터, 대응하는 복수의 노트들을 식별하는 복수의 노트 ID들의 디지털 서명된 사본을 수신한다. 일부 예들에서, 합의 노드들은 복수의 노트들의 적어도 일부분에 의해 지불된, 제1 계정과 제2 계정 간의 트랜잭션의 트랜잭션 금액의 커밋먼트를 추가로 수신할 수 있다. 일부 예들에서, 합의 노드들은 복수의 노트들의 총 값으로부터 트랜잭션 금액을 공제하는 것으로부터의 잔돈의 커밋먼트를 추가로 수신할 수 있다. 일부 예들에서, 합의 노드들은 제2 계정의 퍼블릭 키에 의해 암호화된 트랜잭션 금액의 커밋먼트를 생성하기 위해 사용되는 제1 난수를 추가로 수신할 수 있으며, 트랜잭션 금액은 제2 계정의 퍼블릭 키에 의해 암호화된다. 일부 예들에서, 합의 노드는 제1 계정의 퍼블릭 키에 의해 암호화된 잔돈의 커밋먼트를 생성하기 위해 사용되는 제2 난수, 하나 이상의 범위 증명들, 및 하나 이상의 선택된 난수들에 기초하여 생성된 영-지식 증명를 추가로 수신할 수 있으며, 잔돈은 제1 계정의 퍼블릭 키에 의해 암호화된다.
일부 구현들에서, 복수의 노트들 각각은 노트 타입, 노트 값의 커밋먼트, 및 퍼블릭-키 암호화 스킴 또는 통합 암호화 스킴에 의해 암호화된 커밋먼트를 생성하기 위해 사용되는 난수 중 하나 이상을 포함하며, 노트 값은 퍼블릭-키 암호화 스킴 또는 통합 암호화 스킴에 의해 암호화된다. 일부 구현들에서, 트랜잭션 금액의 커밋먼트, 잔돈의 커밋먼트 및 노트 값의 커밋먼트는 동형인 커밋먼트 스킴을 사용하여 생성된다. 일부 구현들에서, 복수의 노트 ID들 각각은 트랜잭션 어드레스, 및 트랜잭션 출력에서의 대응하는 노트의 순서를 표시하는 인덱스 번호를 포함하며, 여기서, 트랜잭션 어드레스는 트랜잭션의 트랜잭션 정보를 해싱함으로써 생성된다. 일부 구현들에서, 제1 난수 및 트랜잭션 금액은 EIGamal, ECIES와 같은 암호화 스킴에 기초하여 제2 계정의 퍼블릭 키에 의해 암호화된다.
504에서, 합의 노드는 제1 계정의 퍼블릭 키를 사용하여 디지털 서명된 사본에 대응하는 디지털 서명을 검증한다.
506에서, 합의 노드는 하나 이상의 범위 증명들이 트랜잭션 금액 및 잔돈이 0보다 크거나 또는 0과 동일하다는 것을 증명하는 것으로 결정한다.
508에서, 합의 노드는 복수의 노트들의 총 값이 트랜잭션 금액과 잔돈의 합과 동일하다는 것으로 결정한다. 일부 구현들에서, 복수의 노트들의 총 값이 트랜잭션 금액과 잔돈의 합과 동일한지를 결정하는 단계는, 각각의 노트 값의 커밋먼트의 합과, 트랜잭션 금액의 커밋먼트와 잔돈의 커밋먼트의 합을 비교하는 것에 기초한다.
510에서, 합의 노드는 커밋먼트에서의 트랜잭션 금액이 암호화된 트랜잭션 금액과 동일한지 그리고 트랜잭션 금액의 커밋먼트를 생성하기 위해 사용되는 난수가 제1 난수와 동일한지를 결정한다. 일부 구현들에서, 합의 노드는 복수의 노트들 각각이 동일한 노트 타입을 갖는 것으로 추가로 결정한다. 일부 구현들에서, 합의 노드는 복수의 노트 ID들 각각이 제1 계정과 연관되는 것으로 추가로 결정한다. 일부 구현들에서, 커밋먼트에서의 트랜잭션 금액이 암호화된 트랜잭션 금액과 동일한지 그리고 트랜잭션 금액의 커밋먼트를 생성하기 위해 사용되는 난수가 제1 난수와 동일한지를 결정하는 단계는, 블록체인 네트워크 외부의 제1 계정과 제2 계정 간의 상호작용들 없이 영-지식 증명에 기초한다.
512에서, 합의 노드는, 커밋먼트에서의 트랜잭션 금액이 암호화된 트랜잭션 금액과 동일하고, 트랜잭션 금액의 커밋먼트를 생성하기 위해 사용되는 난수가 제1 난수와 동일하면, 복수의 노트들, 트랜잭션 금액 및 잔돈에 기초하여 제1 계정 및 제2 계정을 업데이트한다.
본 명세서에서 설명된 청구 대상의 구현들은 특정 이점들 또는 기술적인 효과들을 실현하도록 구현될 수 있다. 예컨대, 본 개시내용의 구현들은 블록체인 노드들의 계정 잔고 및 트랜잭션 금액이 트랜잭션들 동안 프라이빗 상태가 될 수 있게 한다. 자금 이체의 수령인은 트랜잭션을 컨펌하거나, 또는 커밋먼트를 검증하기 위해 난수를 사용할 필요가 없으며, 트랜잭션 확인은 비-상호작용식일 수 있다. 블록체인 노드는 영-지식 증명을 허용하기 위해 퍼블릭-키 암호화 스킴 및 커밋먼트 스킴들에 기초하여 트랜잭션을 확인할 수 있다.
설명된 방법은 다양한 모바일 컴퓨팅 디바이스의 계정/데이터 보안을 향상시킨다. 계정들 및 트랜잭션 금액들의 잔고는 커밋먼트 스킴들에 의해 숨겨질 수 있다. 이로써, 합의 노드는 계정의 실제 계정 잔고를 나타내지 않으면서 트랜잭션 이후에 원장의 계정 잔고들을 업데이트할 수 있다. 트랜잭션을 컨펌하기 위해 난수가 수령인에게 전송될 필요가 없기 때문에, 데이터 누설의 위험이 감소될 수 있고, 더 적은 컴퓨팅 및 메모리 자원들이 난수를 관리하기 위해 사용될 필요가 있다.
본 명세서에서 설명된 구현들 및 동작들은, 본 명세서에서 개시된 구조들을 포함하는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어로, 또는 디지털 전자 회로로, 또는 이들 중 하나 이상의 것의 조합들로 구현될 수 있다. 동작들은 하나 이상의 컴퓨터-판독가능한 저장 디바이스들 상에 저장된 또는 다른 소스들로부터 수신된 데이터에 대해 데이터 프로세싱 장치에 의해 수행되는 동작들로서 구현될 수 있다. 데이터 프로세싱 장치, 컴퓨터 또는 컴퓨팅 디바이스는, 예로서 프로그래밍가능한 프로세서, 컴퓨터, 시스템 온 어 칩 또는 위의 것들 중 다수의 것들 또는 조합들을 포함하는, 데이터를 프로세싱하기 위한 장치, 디바이스들 및 머신들을 포함할 수 있다. 장치는, 특수 목적 로직 회로, 예컨대, CPU(central processing unit), FPGA(field programmable gate array) 또는 ASIC(application-specific integrated circuit)를 포함할 수 있다. 장치는 또한, 해당(in question) 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예컨대, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 시스템(예컨대, 운영 시스템 또는 운영 시스템들의 조합), 크로스-플랫폼 런타임 환경, 가상 머신, 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 다양한 상이한 컴퓨팅 모델 인프라구조들, 이를테면, 웹 서비스들, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라구조들을 실현할 수 있다.
컴퓨터 프로그램(예컨대, 프로그램, 소프트웨어, 소프트웨어 애플리케이션, 소프트웨어 모듈, 소프트웨어 유닛, 스크립트 또는 코드로서 또한 알려짐)은 컴파일링되는 또는 해석되는 언어들, 선언형 또는 절차형 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 기록될 수 있고, 이는 독립형 프로그램으로서 또는 모듈, 컴포넌트, 서브루틴, 오브젝트 또는 컴퓨팅 환경에 사용하기에 적합한 다른 유닛으로서의 형태를 포함하는 임의의 형태로 전개될 수 있다. 프로그램은 다른 프로그램들 또는 데이터(예컨대, 마크업 언어 문서에 저장된 하나 이상의 스크립트들)를 보유하는 파일의 일부분 내에, 해당 프로그램에 전용되는 단일 파일 내에 또는 다수의 조정된 파일들(예컨대, 하나 이상의 모듈들, 서브-프로그램들 또는 코드의 부분들을 저장하는 파일들) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 상에서, 또는 하나의 사이트에 로케이팅되거나 또는 다수의 사이트들에 걸쳐 분산되고 통신 네트워크에 의해 상호연결되는 다수의 컴퓨터들 상에서 실행될 수 있다.
컴퓨터 프로그램의 실행을 위한 프로세서들은, 예로서, 범용- 그리고 특수-목적 마이크로프로세서들 둘 모두, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독-전용 메모리 또는 랜덤-액세스 메모리 또는 둘 모두로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 엘리먼트들은 명령어들에 따라 동작들을 수행하기 위한 프로세서, 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들이다. 일반적으로, 컴퓨터는 또한, 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스들을 포함하거나, 또는 이들로부터 데이터를 수신하거나 또는 이들에 데이터를 전달하거나 또는 둘 모두를 수행하도록 동작적으로 커플링될 것이다. 컴퓨터는 다른 디바이스, 예컨대, 모바일 디바이스, PDA(personal digital assistant), 게임 콘솔, GPS(Global Positioning System) 수신기 또는 휴대용 저장 디바이스에 임베딩될 수 있다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 디바이스들은, 예로서, 반도체 메모리 디바이스들, 자기 디스크들 및 자기-광학 디스크들을 포함하는 비-휘발성 메모리, 매체들 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수-목적 로직 회로에 의해 보충되거나 또는 이에 포함될 수 있다.
모바일 디바이스들은 핸드셋들, UE(user equipment), 모바일 전화들(예컨대, 스마트폰들), 태블릿들, 웨어러블(wearable) 디바이스들(예컨대, 스마트 와치(smart watch)들 및 스마트 안경), 인체 내의 이식 디바이스들(예컨대, 바이오 센서들, 인공 와우(cochlear implant)), 또는 다른 타입들의 모바일 디바이스들을 포함할 수 있다. 모바일 디바이스들은 다양한 통신 네트워크들(아래에서 설명됨)에 무선으로(예컨대, RF(radio frequency) 신호들을 사용하여) 통신할 수 있다. 모바일 디바이스들은 모바일 디바이스의 현재 환경의 특성들을 결정하기 위한 센서들을 포함할 수 있다. 센서들은 카메라들, 마이크로폰들, 근접 센서들, GPS 센서들, 모션 센서들, 가속도계들, 주변 광 센서들, 습도 센서들, 자이로스코프들, 컴퍼스들, 기압계들, 지문 센서들, 안면 인식 시스템들, RF 센서들(예컨대, Wi-Fi 및 셀룰러 라디오들), 열 센서들 또는 다른 타입들의 센서들을 포함할 수 있다. 예컨대, 카메라들은 이동가능 또는 고정 렌즈들을 갖는 전방 또는 후방 카메라, 플래시, 이미지 센서 및 이미지 프로세서를 포함할 수 있다. 카메라는 안면 및/또는 홍채 인식을 위한 세부사항들을 캡처할 수 있는 메가픽셀 카메라일 수 있다. 카메라는 메모리에 저장되거나 또는 원격으로 액세스되는 인증 정보 및 데이터 프로세서와 함께 안면 인식 시스템을 형성할 수 있다. 안면 인식 시스템 또는 하나-이상의 센서들, 예컨대, 마이크로폰들, 모션 센서들, 가속도계들, GPS 센서들 또는 RF 센서들은 사용자 인증을 위해 사용될 수 있다.
사용자와의 상호작용을 제공하기 위해, 디스플레이 디바이스 및 입력 디바이스, 예컨대, 정보를 사용자에게 디스플레이하기 위한 LCD(liquid crystal display) 또는 OLED(organic light-emitting diode)/VR(virtual-reality)/AR(augmented-reality) 디스플레이, 및 사용자가 입력을 컴퓨터에 제공할 수 있게 하는 터치스크린, 키보드 및 포인팅 디바이스를 갖는 컴퓨터 상에서 구현들이 구현될 수 있다. 다른 종류들의 디바이스들이 사용자와의 상호작용을 제공하기 위해 또한 사용될 수 있고; 예컨대, 사용자에게 제공되는 피드백은 임의의 형태의 감각 피드백, 예컨대, 시각적 피드백, 청각적 피드백 또는 촉각적 피드백일 수 있고; 사용자로부터의 입력은 어쿠스틱(acoustic), 음성 또는 촉각적 입력을 포함하는 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는 문서들을 사용자에 의해 사용되는 디바이스에 전송하고 사용자에 의해 사용되는 디바이스로부터 문서들을 수신함으로써, 예컨대, 웹 브라우저로부터 수신된 요청들에 대한 응답으로 웹 페이지들을 사용자의 클라이언트 디바이스 상의 웹 브라우저에 전송함으로써, 사용자와 상호작용할 수 있다.
임의의 형태 또는 매체의 유선 또는 무선 디지털 데이터 통신(또는 이들의 조합), 예컨대, 통신 네트워크에 의해 상호 연결된 컴퓨팅 디바이스들을 사용하여 구현들이 구현될 수 있다. 상호 연결된 디바이스들의 예들은 통상적으로 통신 네트워크를 통해 상호작용하는 일반적으로 서로 멀리 떨어져 있는 클라이언트 및 서버이다. 클라이언트, 예컨대, 모바일 디바이스는, 자체적으로, 서버와, 또는 서버를 통해, 예컨대, 트랜잭션들의 구매, 판매, 지불, 제공, 전송 또는 대여를 수행하거나 또는 이들을 허가하여 트랜잭션들을 수행할 수 있다. 그러한 트랜잭션들은 동작 및 응답이 시간적으로 근접하도록 실시간으로 이루어질 수 있고; 예컨대, 개인은 실질적으로 동시에 ― 개인의 동작을 따르는 응답에 대한 시간 차가 1 밀리초(ms) 미만 또는 1초(s) 미만이거나 또는 응답이 시스템의 프로세싱 제한들을 고려하여 의도적으로 지연되지 않음 ― 발생하는 동작 및 응답을 인지한다.
통신 네트워크들의 예들은 LAN(local area network), RAN(radio access network), MAN(metropolitan area network) 및 WAN(wide area network)을 포함한다. 통신 네트워크는 인터넷의 전체 또는 일부분, 다른 통신 네트워크, 또는 통신 네트워크들의 조합을 포함할 수 있다. 정보는 LTE(Long Term Evolution), 5G, IEEE 802, IP(Internet Protocol) 또는 다른 프로토콜들 또는 프로토콜들의 조합들을 포함하는 다양한 프로토콜들 및 표준들에 따라 통신 네트워크 상에서 송신될 수 있다. 통신 네트워크는 연결된 컴퓨팅 디바이스들 간에 음성, 비디오, 생체 인식 또는 인증 데이터, 또는 다른 정보를 송신할 수 있다.
별개의 구현들로서 설명된 특징들은 단일 구현으로, 조합하여 구현될 수 있는 반면, 단일 구현으로서 설명된 특징들은 다중 구현들로, 개별적으로 또는 임의의 적합한 하위-조합으로 구현될 수 있다. 특정 순서로 설명되고 청구된 동작들은 그 특정 순서를 요구하는 것으로서도 또는 모든 예시된 동작들이 수행되어야 하는 것(일부 동작들은 선택적일 수 있음)을 요구하는 것으로서도 이해되지 않아야 한다. 적절하게, 멀티태스킹 또는 병렬-프로세싱(또는 멀티태스킹과 병렬-프로세싱의 조합)이 수행될 수 있다.

Claims (11)

  1. 블록체인 네트워크의 합의 노드(consensus node)에 의해 수행되는 컴퓨터-구현 방법으로서,
    제1 계정으로부터, 대응하는 복수의 노트(note)들을 식별하는 복수의 노트 식별자(ID)들의 디지털 서명된 사본, 상기 복수의 노트들 중 적어도 일부분에 의해 지불된, 상기 제1 계정과 제2 계정 간의 트랜잭션의 트랜잭션 금액의 커밋먼트(commitment), 상기 복수의 노트들의 총 값으로부터 상기 트랜잭션 금액을 공제하는 것으로부터의 잔돈의 커밋먼트, 상기 제2 계정의 퍼블릭 키(public key)에 의해 암호화된 상기 트랜잭션 금액의 커밋먼트를 생성하기 위해 사용되는 제1 난수 ― 상기 트랜잭션 금액은 상기 제2 계정의 퍼블릭 키에 의해 암호화됨 ―, 상기 제1 계정의 퍼블릭 키에 의해 암호화된 상기 잔돈의 커밋먼트를 생성하기 위해 사용되는 제2 난수 ― 상기 잔돈은 상기 제1 계정의 퍼블릭 키에 의해 암호화됨 ―, 하나 이상의 범위 증명(range proof)들, 및 하나 이상의 선택된 난수들에 기초하여 생성된 영-지식 증명(zero-knowledge proof)을 수신하는 단계;
    상기 제1 계정의 퍼블릭 키를 사용하여 상기 디지털 서명된 사본에 대응하는 디지털 서명을 검증하는 단계;
    상기 하나 이상의 범위 증명들이 상기 트랜잭션 금액 및 상기 잔돈이 0 이상이라는 것을 증명하는 것으로 결정하는 단계;
    상기 복수의 노트들의 총 값이 상기 트랜잭션 금액과 상기 잔돈의 합과 동일하다는 것으로 결정하는 단계;
    상기 커밋먼트에서의 상기 트랜잭션 금액이 암호화된 상기 트랜잭션 금액과 동일한지 그리고 상기 트랜잭션 금액의 커밋먼트를 생성하기 위해 사용되는 난수가 상기 제1 난수와 동일한지를 결정하는 단계; 및
    상기 커밋먼트에서의 상기 트랜잭션 금액이 암호화된 상기 트랜잭션 금액과 동일하고, 상기 트랜잭션 금액의 커밋먼트를 생성하기 위해 사용되는 상기 난수가 상기 제1 난수와 동일하면, 상기 복수의 노트들, 상기 트랜잭션 금액 및 상기 잔돈에 기초하여 상기 제1 계정 및 상기 제2 계정을 업데이트하는 단계
    를 포함하는, 블록체인 네트워크의 합의 노드에 의해 수행되는 컴퓨터-구현 방법.
  2. 제1 항에 있어서,
    상기 복수의 노트들 각각은 노트 타입, 노트 값의 커밋먼트 ― 상기 노트 값은 퍼블릭-키 암호화 또는 통합 암호화에 의해 암호화됨 ―, 및 상기 퍼블릭-키 암호화 또는 상기 통합 암호화에 의해 암호화된 상기 커밋먼트를 생성하기 위해 사용되는 난수 중 하나 이상을 포함하는 것인, 블록체인 네트워크의 합의 노드에 의해 수행되는 컴퓨터-구현 방법.
  3. 제2 항에 있어서,
    상기 복수의 노트들 각각이 동일한 노트 타입을 갖는 것으로 결정하는 단계를 더 포함하는, 블록체인 네트워크의 합의 노드에 의해 수행되는 컴퓨터-구현 방법.
  4. 제2 항에 있어서,
    상기 트랜잭션 금액의 커밋먼트, 상기 잔돈의 커밋먼트, 및 상기 노트 값의 커밋먼트는 동형(homomorphic)인 커밋먼트 스킴(scheme)을 사용하여 생성되는 것인, 블록체인 네트워크의 합의 노드에 의해 수행되는 컴퓨터-구현 방법.
  5. 제4 항에 있어서,
    상기 복수의 노트들의 총 값이 상기 트랜잭션 금액과 상기 잔돈의 합과 동일한지를 결정하는 단계는, 각각의 노트 값의 커밋먼트의 합과, 상기 트랜잭션 금액의 커밋먼트와 상기 잔돈의 커밋먼트의 합을 비교하는 것에 기초하는 것인, 블록체인 네트워크의 합의 노드에 의해 수행되는 컴퓨터-구현 방법.
  6. 제1 항에 있어서,
    상기 복수의 노트 ID들 각각은 트랜잭션 어드레스, 및 트랜잭션 출력에서의 대응하는 노트의 순서를 표시하는 인덱스 번호를 포함하고,
    상기 트랜잭션 어드레스는 상기 트랜잭션의 트랜잭션 정보를 해싱함으로써 생성되는 것인, 블록체인 네트워크의 합의 노드에 의해 수행되는 컴퓨터-구현 방법.
  7. 제1 항에 있어서,
    상기 복수의 노트 ID들 각각이 상기 제1 계정과 연관되는 것으로 결정하는 단계를 더 포함하는, 블록체인 네트워크의 합의 노드에 의해 수행되는 컴퓨터-구현 방법.
  8. 제1 항에 있어서,
    상기 제1 난수 및 상기 트랜잭션 금액은 파일리어(Paillier) 암호화 또는 오카모토-우치야마(Okamoto-Uchiyama) 암호화에 기초하여 상기 제2 계정의 퍼블릭 키에 의해 암호화되는 것인, 블록체인 네트워크의 합의 노드에 의해 수행되는 컴퓨터-구현 방법.
  9. 제1 항에 있어서,
    상기 커밋먼트에서의 상기 트랜잭션 금액이 암호화된 상기 트랜잭션 금액과 동일한지 그리고 상기 트랜잭션 금액의 커밋먼트를 생성하기 위해 사용되는 난수가 상기 제1 난수와 동일한지를 결정하는 단계는, 상기 블록체인 네트워크 외부의 상기 제1 계정과 상기 제2 계정 간의 상호작용들 없이 영-지식 증명(zero-knowledge proof)에 기초하는 것인, 블록체인 네트워크의 합의 노드에 의해 수행되는 컴퓨터-구현 방법.
  10. 하나 이상의 프로세서들에 커플링되고, 상기 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금, 제1 항 내지 제9 항 중 어느 한 항의 방법에 따라 동작들을 수행하게 하는 명령어들이 저장된 비-일시적인 컴퓨터-판독가능한 저장 매체.
  11. 시스템으로서,
    컴퓨팅 디바이스; 및
    상기 컴퓨팅 디바이스에 커플링되고, 상기 컴퓨팅 디바이스에 의해 실행될 때, 상기 컴퓨팅 디바이스로 하여금, 제1 항 내지 제9 항 중 어느 한 항의 방법에 따라 동작들을 수행하게 하는 명령어들이 저장된 컴퓨터-판독가능한 저장 디바이스
    를 포함하는, 시스템.
KR1020197011611A 2018-11-07 2018-11-07 영-지식 증명을 갖는 계정 노트 모델에 기초한 블록체인 데이터 보호 KR102215773B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/114420 WO2019072268A2 (en) 2018-11-07 2018-11-07 BLOCK CHAIN DATA PROTECTION BASED ON A TICKET MODEL FROM ACCOUNTS USING ZERO KNOWLEDGE PROOF

Publications (2)

Publication Number Publication Date
KR20200054131A true KR20200054131A (ko) 2020-05-19
KR102215773B1 KR102215773B1 (ko) 2021-02-17

Family

ID=66100031

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197011611A KR102215773B1 (ko) 2018-11-07 2018-11-07 영-지식 증명을 갖는 계정 노트 모델에 기초한 블록체인 데이터 보호

Country Status (17)

Country Link
US (1) US20190251553A1 (ko)
EP (2) EP3542336B1 (ko)
JP (1) JP6817429B2 (ko)
KR (1) KR102215773B1 (ko)
CN (1) CN110419055B (ko)
AU (1) AU2018347190B2 (ko)
BR (1) BR112019008160B1 (ko)
CA (1) CA3041160C (ko)
ES (1) ES2863559T3 (ko)
MX (1) MX2019004658A (ko)
PH (1) PH12019500890A1 (ko)
PL (1) PL3542336T3 (ko)
RU (1) RU2729595C1 (ko)
SG (1) SG11201903586SA (ko)
TW (1) TW202018572A (ko)
WO (1) WO2019072268A2 (ko)
ZA (1) ZA201902549B (ko)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10880275B2 (en) 2017-01-20 2020-12-29 Enveil, Inc. Secure analytics using homomorphic and injective format-preserving encryption
US11196541B2 (en) 2017-01-20 2021-12-07 Enveil, Inc. Secure machine learning analytics using homomorphic encryption
US11196540B2 (en) 2017-01-20 2021-12-07 Enveil, Inc. End-to-end secure operations from a natural language expression
US11507683B2 (en) 2017-01-20 2022-11-22 Enveil, Inc. Query processing with adaptive risk decisioning
US10721057B2 (en) 2017-01-20 2020-07-21 Enveil, Inc. Dynamic channels in secure queries and analytics
US11777729B2 (en) 2017-01-20 2023-10-03 Enveil, Inc. Secure analytics using term generation and homomorphic encryption
CN109325747B (zh) * 2018-08-30 2020-06-09 阿里巴巴集团控股有限公司 基于区块链的汇款方法及装置
US10902133B2 (en) 2018-10-25 2021-01-26 Enveil, Inc. Computational operations in enclave computing environments
ES2876926T3 (es) * 2018-11-07 2021-11-15 Advanced New Technologies Co Ltd Protección de datos de cadena de bloques utilizando cifrado homomórfico
US10721217B2 (en) 2018-11-08 2020-07-21 Accenture Global Solutions Limited Cryptographic datashare control for blockchain
US10817262B2 (en) 2018-11-08 2020-10-27 Enveil, Inc. Reduced and pipelined hardware architecture for Montgomery Modular Multiplication
CN110473105B (zh) * 2019-08-20 2024-01-16 深圳市迅雷网络技术有限公司 一种区块链交易结算方法、系统及相关设备
CN113065951A (zh) * 2020-01-02 2021-07-02 苏州同济区块链研究院有限公司 基于区块链的交易方法、系统、装置、设备及介质
SG11202013137TA (en) 2020-02-03 2021-01-28 Alipay Hangzhou Inf Tech Co Ltd Blockchain-based trustable guarantees
WO2020098837A2 (en) * 2020-02-03 2020-05-22 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain-based trustable guarantees
CN111417945B (zh) * 2020-02-03 2022-06-17 支付宝(杭州)信息技术有限公司 基于区块链的可信保函
SG11202012851YA (en) 2020-02-03 2021-01-28 Alipay Hangzhou Inf Tech Co Ltd Blockchain-based trustable guarantees
EP3794773B1 (en) 2020-02-03 2022-09-07 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain-based trustable guarantees
CN111373431B (zh) * 2020-02-03 2022-06-07 支付宝(杭州)信息技术有限公司 基于区块链的可信保函
SG11202013145YA (en) 2020-02-03 2021-01-28 Alipay Hangzhou Inf Tech Co Ltd Blockchain-based trustable guarantees
US11483154B2 (en) * 2020-02-19 2022-10-25 International Business Machines Corporation Artificial intelligence certification of factsheets using blockchain
CN111523892B (zh) * 2020-04-23 2021-07-27 深圳前海微众银行股份有限公司 一种区块链的跨链交易方法及装置
CN111989663A (zh) 2020-06-08 2020-11-24 支付宝实验室(新加坡)有限公司 基于区块链的智能合约池
CN114930330A (zh) 2020-06-08 2022-08-19 支付宝实验室(新加坡)有限公司 基于区块链的海关清关服务平台的用户管理
CN111936994A (zh) 2020-06-08 2020-11-13 支付宝实验室(新加坡)有限公司 用于海关清关的基于区块链的文档注册
EP3844655B1 (en) 2020-06-08 2023-05-03 Alipay Labs (Singapore) Pte. Ltd. Managing user authorizations for blockchain-based custom clearance services
WO2020169124A2 (en) 2020-06-08 2020-08-27 Alipay Labs (singapore) Pte. Ltd. Distributed storage of custom clearance data
EP3844699A4 (en) 2020-06-08 2021-08-18 Alipay Labs (Singapore) Pte. Ltd. BLOCKCHAIN-BASED PROCESSING OF IMPORT CLEARANCE DATA
CN111861714A (zh) * 2020-07-23 2020-10-30 浙江永旗区块链科技有限公司 企业票据拆分方法及系统
DE102020119569B3 (de) 2020-07-24 2021-12-09 Infineon Technologies Ag Bereitstellen einer kryptografischen Information
CN114338028A (zh) * 2020-09-28 2022-04-12 华为技术有限公司 门限签名方法、装置、电子设备和可读存储介质
EP4226573A1 (en) 2020-10-05 2023-08-16 Redcom Laboratories, Inc. Zkmfa: zero-knowledge based multi-factor authentication system
US11601258B2 (en) 2020-10-08 2023-03-07 Enveil, Inc. Selector derived encryption systems and methods
CN112287040B (zh) * 2020-10-30 2022-11-04 深圳前海微众银行股份有限公司 一种基于区块链的权益合并方法、装置、设备及介质
CN112436944B (zh) * 2020-11-06 2023-04-07 深圳前海微众银行股份有限公司 一种基于pow的区块链共识方法及装置
IT202000026488A1 (it) 2020-11-09 2021-02-09 Primecash S R L Metodo e sistema innovativo per pagamenti con denaro digitale e applicazione sulla blockchain
CN112487468B (zh) * 2020-12-21 2023-11-03 暨南大学 基于区块链的可追踪的完全匿名电子投票方法及系统
CN112633890B (zh) * 2020-12-22 2024-04-05 深圳前海微众银行股份有限公司 一种基于区块链的隐匿权益证明的验证方法及装置
CN112734423A (zh) * 2020-12-31 2021-04-30 杭州趣链科技有限公司 一种基于区块链的交易方法及终端设备
EP4280535A4 (en) * 2021-01-13 2024-03-13 Fujitsu Ltd CONTROL METHOD, INFORMATION PROCESSING SYSTEM, INFORMATION PROCESSING APPARATUS AND CONTROL PROGRAM
CN112749967A (zh) * 2021-01-19 2021-05-04 矩阵元技术(深圳)有限公司 交易数据的处理方法、装置、用户终端和服务器
CN113037492B (zh) * 2021-02-04 2023-07-25 精英数智科技股份有限公司 传感器数据处理方法及装置
CN113630411B (zh) * 2021-08-05 2022-04-05 华中农业大学 一种对联盟区块链上多方隐私保护数据审计的方法及装置
CN113627911A (zh) * 2021-09-03 2021-11-09 杭州复杂美科技有限公司 一种基于区块链匿名收发红包的方法、设备及储存介质
CN113627910A (zh) * 2021-09-03 2021-11-09 杭州复杂美科技有限公司 一种区块链匿名红包发送方法、设备及储存介质
CN113570373B (zh) * 2021-09-23 2022-02-11 北京理工大学 一种基于区块链的可追责交易方法及系统
CN113988865B (zh) * 2021-12-29 2022-03-29 国网电子商务有限公司 电力结算隐私保护方法及装置
CN115660679B (zh) * 2022-10-14 2023-07-14 重庆移通学院 一种基于哈希锁定的去中心化安全交易方法
CN116633548A (zh) * 2023-04-03 2023-08-22 北京熠智科技有限公司 加密过程监管方法、装置、系统及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108764874A (zh) * 2018-05-17 2018-11-06 深圳前海微众银行股份有限公司 基于区块链的匿名转账方法、系统及存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5999625A (en) * 1997-02-27 1999-12-07 International Business Machines Corporation Method for electronic payment system with issuer control
EP2151947A1 (en) * 2008-08-05 2010-02-10 Irdeto Access B.V. Signcryption scheme based on elliptic curve cryptography
JP2010039890A (ja) * 2008-08-07 2010-02-18 Hitachi Ltd 認証端末、認証サーバ、認証システム、認証方法および認証プログラム
US8515058B1 (en) * 2009-11-10 2013-08-20 The Board Of Trustees Of The Leland Stanford Junior University Bootstrappable homomorphic encryption method, computer program and apparatus
SG11201602093TA (en) * 2013-09-20 2016-04-28 Visa Int Service Ass Secure remote payment transaction processing including consumer authentication
WO2016200885A1 (en) * 2015-06-08 2016-12-15 Blockstream Corporation Cryptographically concealing amounts transacted on a ledger while preserving a network's ability to verify the transaction
US10693658B2 (en) * 2016-02-12 2020-06-23 Visa International Service Association Methods and systems for using digital signatures to create trusted digital asset transfers
JP6663809B2 (ja) * 2016-07-07 2020-03-13 株式会社日立製作所 監査装置、監査機能付匿名送金方法及びプログラム
CN106911470B (zh) * 2017-01-23 2020-07-07 北京航空航天大学 一种比特币交易隐私增强方法
US20200134586A1 (en) * 2017-04-18 2020-04-30 Tbcasoft, Inc. Anonymity and traceability of digital property transactions on a distributed transaction consensus network
US20190108517A1 (en) * 2017-10-06 2019-04-11 Allocrypt, Llc Digital currency for performing cash-equivalent transactions
CN107862216B (zh) * 2017-10-13 2021-04-06 布比(北京)网络技术有限公司 用于匿名跨链交易的隐私保护方法、装置和存储介质
CN107888375A (zh) * 2017-11-08 2018-04-06 深圳市携网科技有限公司 一种基于区块链技术的电子证据保全系统及方法
CN108021821A (zh) * 2017-11-28 2018-05-11 北京航空航天大学 多中心区块链交易隐私保护系统及方法
CN108418689B (zh) * 2017-11-30 2020-07-10 矩阵元技术(深圳)有限公司 一种适合区块链隐私保护的零知识证明方法和介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108764874A (zh) * 2018-05-17 2018-11-06 深圳前海微众银行股份有限公司 基于区块链的匿名转账方法、系统及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Franca, B. F. "Homomorphic mini-blockchain scheme." (2015.) 1부.* *

Also Published As

Publication number Publication date
US20190251553A1 (en) 2019-08-15
CA3041160C (en) 2022-11-29
EP3829104A1 (en) 2021-06-02
AU2018347190B2 (en) 2020-10-22
WO2019072268A2 (en) 2019-04-18
CN110419055A (zh) 2019-11-05
CN110419055B (zh) 2023-08-22
EP3542336A2 (en) 2019-09-25
TW202018572A (zh) 2020-05-16
EP3542336A4 (en) 2019-11-20
JP6817429B2 (ja) 2021-01-20
RU2729595C1 (ru) 2020-08-11
SG11201903586SA (en) 2019-05-30
PH12019500890A1 (en) 2019-11-25
AU2018347190A1 (en) 2020-05-21
ES2863559T3 (es) 2021-10-11
MX2019004658A (es) 2019-08-12
WO2019072268A3 (en) 2019-08-22
BR112019008160A2 (pt) 2019-09-10
EP3542336B1 (en) 2021-01-27
EP3829104B1 (en) 2022-07-06
PL3542336T3 (pl) 2021-07-12
JP2020503718A (ja) 2020-01-30
CA3041160A1 (en) 2019-04-18
BR112019008160B1 (pt) 2021-08-24
ZA201902549B (en) 2019-12-18
KR102215773B1 (ko) 2021-02-17

Similar Documents

Publication Publication Date Title
KR102215773B1 (ko) 영-지식 증명을 갖는 계정 노트 모델에 기초한 블록체인 데이터 보호
TWI695613B (zh) 使用同態加密的區塊鏈資料保護
US10708039B1 (en) Blockchain data protection based on generic account model and homomorphic encryption
US11063769B2 (en) Blockchain data protection based on generic account model and homomorphic encryption
CN110546667B (zh) 使用同态加密的区块链数据保护
KR102151894B1 (ko) 계좌 모델 하에서 퍼블릭 및 프라이빗 트랜잭션을 지원하는 블록체인 시스템

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant