KR102170346B1 - 정보 보호를 위한 시스템 및 방법 - Google Patents
정보 보호를 위한 시스템 및 방법 Download PDFInfo
- Publication number
- KR102170346B1 KR102170346B1 KR1020197011444A KR20197011444A KR102170346B1 KR 102170346 B1 KR102170346 B1 KR 102170346B1 KR 1020197011444 A KR1020197011444 A KR 1020197011444A KR 20197011444 A KR20197011444 A KR 20197011444A KR 102170346 B1 KR102170346 B1 KR 102170346B1
- Authority
- KR
- South Korea
- Prior art keywords
- transaction
- node
- commit
- key
- sender
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0435—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0841—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3239—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking or blinding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking or blinding
- H04L2209/046—Masking or blinding of operations, operands or results of the operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
-
- H04L2209/38—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Business, Economics & Management (AREA)
- Power Engineering (AREA)
- Accounting & Taxation (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
컴퓨터 구현 방법은, 적어도 트랜잭션 블라인딩 인자를 포함하는 커밋 기법에 의해 트랜잭션의 트랜잭션 금액을 커밋하여 트랜잭션 커밋값을 취득하는 단계; 대칭 키 쌍의 제1 키를 생성하는 단계; 트랜잭션 블라인딩 인자와 트랜잭션 금액 t의 조합을 제1 키로 암호화하는 단계; 및 트랜잭션 커밋값 T와 암호화된 조합을, 수신자 노드가 트랜잭션을 검증하도록 트랜잭션의 수신자와 연관된 그 수신자 노드에 송신하는 단계를 포함한다.
Description
본 개시내용은 일반적으로 정보 보호를 위한 방법 및 장치에 관한 것이다.
프라이버시는 다양한 사용자 간의 통신과 데이터 전송에 중요하다. 보호 기능이 없으면, 사용자는 아이덴티티 도용, 불법 전송, 또는 기타 잠재적 손실의 위험에 노출된다. 온라인 정보의 무료 액세스로 인해, 통신과 전송이 온라인으로 구현될 때 위험이 훨씬 더 커진다.
본 개시내용의 다양한 실시형태는 정보 보호를 위한 시스템, 방법, 및 비일시적 컴퓨터 판독가능 매체를 포함한다.
하나의 양상에 따르면, 정보 보호를 위한 컴퓨터 구현 방법은, 적어도 트랜잭션 블라인딩 인자(transaction blinding factor) r_t를 포함하는 커밋 기법(commitment scheme)에 의해 트랜잭션의 트랜잭션 금액 t를 커밋하여 트랜잭션 커밋값 T를 취득하는 단계; 대칭 키 쌍의 제1 키를 생성하는 단계; 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t의 조합을 제1 키로 암호화하는 단계; 및 트랜잭션 커밋값 T와 암호화된 조합을, 수신자 노드가 트랜잭션을 검증하도록 트랜잭션의 수신와 연관된 수신자 노드에 송신하는 단계를 포함한다.
일부 실시형태에서, 제1 키를 생성하는 단계는, 디피-헬만(DH; Diffie-Hellman) 키 교환 프로토콜에 따라 트랜잭션의 전송자의 개인 키 SK_A 및 수신자의 공개 키 PK_B에 기초하여 제1 키를 생성하는 단계를 포함한다.
일부 실시형태에서, 커밋 기법은, 트랜잭션 금액 t가 커밋값이면서 적어도 트랜잭션 블라인딩 인자 r_t에 기초하는 페데르센(Pedersen) 커밋을 포함한다.
일부 실시형태에서, 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t의 조합은, 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t의 연결(concatenation)을 포함한다.
일부 실시형태에서, 트랜잭션 커밋값 T와 암호화된 조합을, 수신자 노드가 트랜잭션을 검증하도록 트랜잭션의 수신자와 연관된 수신자 노드에 송신하는 단계는, 트랜잭션 커밋값 T와 암호화된 조합을 트랜잭션의 수신자와 연관된 수신자 노드에 송신하여, 수신자 노드가, 수신자의 개인 키 SK_B 및 트랜잭션의 전송자의 공개 키 PK_A에 기초하여 대칭 키 쌍의 제2 키를 생성하게 하고, 암호화된 조합을 수신자 노드에 의해 생성된 제2 키로 복호화하여 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t를 취득하게 하고, 적어도 트랜잭션 커밋값 T, 트랜잭션 블라인딩 인자 r_t, 및 트랜잭션 금액 t에 기초하여 트랜잭션을 검증하게 하는 단계를 포함한다.
일부 실시형태에서, 수신자 노드가 적어도 트랜잭션 커밋값 T, 트랜잭션 블라인딩 인자 r_t, 및 트랜잭션 금액 t에 기초하여 트랜잭션을 검증하게 하는 단계는, 수신자 노드가, 트랜잭션 블라인딩 인자 r_t에 기초하여 트랜잭션 커밋값 T가 트랜잭션 금액 t의 커밋 기법과 일관되지 않는다는 결정에 응답하여, 트랜잭션을 거부하게 하고, 트랜잭션 블라인딩 인자 r_t에 기초하여 트랜잭션 커밋값 T가 트랜잭션 금액 t의 커밋 기법과 일관된다는 결정에 응답하여, 트랜잭션에 서명하여 수신자 서명 SIGB를 생성하여 전송자와 연관된 전송자 노드에 리턴함으로써, 트랜잭션을 승인하게 하는 단계를 포함한다.
일부 실시형태에서, 암호화된 조합을 수신자와 연관된 수신자 노드에 송신하는 단계 전에, 방법은, 커밋 기법에 의해 트랜잭션의 변경 y를 커밋하여 변경 커밋값 Y를 취득하는 단계로서, 커밋 기법은 적어도 변경 블라인딩 인자 r_y를 포함하고, 변경 y는 트랜잭션 금액 t를 뺀 트랜잭션을 위해 이용되는 전송자의 하나 이상의 자산인, 상기 변경 커밋값 Y를 취득하는 단계; 전송자의 개인 키 SK_A 및 전송자의 공개 키 PK_A에 기초하여 다른 키를 생성하는 단계; 및 변경 블라인딩 인자 r_y와 변경 y의 조합을 그 다른 키로 암호화하는 단계를 더 포함한다.
일부 실시형태에서, 방법은, 수신자 서명 SIGB의 수신에 응답하여, 트랜잭션에 서명하여 전송자 서명 SIGA를 생성함으로써 트랜잭션을 승인하는 단계; 및 암호화된 조합, 암호화된 다른 조합, 트랜잭션 커밋값 T, 변경 커밋값 Y, 전송자 서명 SIGA, 및 수신자 서명 SIGB를 포함하는 트랜잭션을, 블록체인 네트워크의 하나 이상의 노드가 트랜잭션을 검증하도록 그 하나 이상의 노드에 제출하는 단계를 더 포함한다.
일부 실시형태에서, 암호화된 조합, 암호화된 다른 조합, 트랜잭션 커밋값 T, 변경 커밋값 Y, 전송자 서명 SIGA, 및 수신자 서명 SIGB를 포함하는 트랜잭션을, 블록체인 네트워크의 하나 이상의 노드가 트랜잭션을 검증하도록 그 하나 이상의 노드에 제출하는 단계는, 암호화된 조합, 암호화된 다른 조합, 트랜잭션 커밋값 T, 변경 커밋값 Y, 전송자 서명 SIGA, 및 수신자 서명 SIGB를 포함하는 트랜잭션을 블록체인 네트워크의 하나 이상의 노드에 제출하여, 트랜잭션의 성공적 검증에 응답하여, 그 하나 이상의 노드가, 트랜잭션 금액 t를 수신자에 발행하게 하고, 트랜잭션을 위해 이용된 하나 이상의 자산을 제거하게 하고, 변경 y를 전송자에 발행하게 하는 단계를 포함한다.
다른 하나의 양상에 따르면, 비일시적 컴퓨터 판독가능 저장 매체는, 프로세서가 동작을 수행하도록 프로세서에 의해 실행될 명령어를 저장하고, 이 동작은, 적어도 트랜잭션 블라인딩 인자 r_t를 포함하는 커밋 기법에 의해 트랜잭션의 트랜잭션 금액 t를 커밋하여 트랜잭션 커밋값 T를 취득하는 단계; 대칭 키 쌍의 제1 키를 생성하는 단계; 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t의 조합을 제1 키로 암호화하는 단계; 및 트랜잭션 커밋값 T와 암호화된 조합을, 수신자 노드가 트랜잭션을 검증하도록 트랜잭션의 수신자와 연관된 수신자 노드에 송신하는 단계를 포함한다.
또 다른 하나의 양상에 따르면, 정보 보호를 위한 시스템은, 프로세서와 프로세서에 결합된 비일시적 컴퓨터 판독가능 저장 매체를 포함하고, 저장 매체는, 시스템이 동작을 수행하도록 프로세서에 의해 실행될 명령어를 포함하고, 이 동작은, 적어도 트랜잭션 블라인딩 인자 r_t를 포함하는 커밋 기법에 의해 트랜잭션의 트랜잭션 금액 t를 커밋하여 트랜잭션 커밋값 T를 취득하는 단계; 대칭 키 쌍의 제1 키를 생성하는 단계; 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t의 조합을 제1 키로 암호화하는 단계; 및 트랜잭션 커밋값 T와 암호화된 조합을, 수신자 노드가 트랜잭션을 검증하도록 트랜잭션의 수신자와 연관된 수신자 노드에 송신하는 단계를 포함한다.
또 다른 하나의 양상에 따르면, 정보 보호를 위한 컴퓨터 구현 방법은, 적어도 트랜잭션 블라인딩 인자 r_t를 포함하는 커밋 기법에 의해 트랜잭션의 트랜잭션 금액 t를 커밋하여 트랜잭션 커밋값 T를 취득하는 단계; 대칭 키 쌍의 제1 키를 생성하는 단계; 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t의 조합을 제1 키로 암호화하는 단계; 및 트랜잭션 커밋값 T와 암호화된 조합을, 트랜잭션의 수신자와 연관된 수신자 노드에 송신하여, 수신자 노드가, 수신자의 개인 키 SK_B 및 전송자의 공개 키 PK_A에 기초하여 대칭 키 쌍의 제2 키를 생성하게 하고, 암호화된 조합을 수신자 노드에 의해 생성된 제2 키로 복호화하여 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t를 취득하게 하고, 적어도 트랜잭션 커밋값 T, 트랜잭션 블라인딩 인자 r_t, 및 트랜잭션 금액 t에 기초하여 트랜잭션을 검증하게 하는 단계를 포함한다.
또 다른 하나의 양상에 따르면, 비일시적 컴퓨터 판독가능 저장 매체는, 프로세서가 동작을 수행하도록 프로세서에 의해 실행될 명령어를 저장하고, 동작은, 적어도 트랜잭션 블라인딩 인자 r_t를 포함하는 커밋 기법에 의해 트랜잭션의 트랜잭션 금액 t를 커밋하여 트랜잭션 커밋값 T를 취득하는 단계; 대칭 키 쌍의 제1 키를 생성하는 단계; 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t의 조합을 제1 키로 암호화하는 단계; 및 트랜잭션 커밋값 T와 암호화된 조합을, 트랜잭션의 수신자와 연관된 수신자 노드에 송신하여, 수신자 노드가, 수신자의 개인 키 SK_B 및 전송자의 공개 키 PK_A에 기초하여 대칭 키 쌍의 제2 키를 생성하게 하고, 암호화된 조합을 수신자 노드에 의해 생성된 제2 키로 복호화하여 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t를 취득하게 하고, 적어도 트랜잭션 커밋값 T, 트랜잭션 블라인딩 인자 r_t, 및 트랜잭션 금액 t에 기초하여 트랜잭션을 검증하게 하는 단계를 포함한다.
또 다른 하나의 양상에 따르면, 정보 보호를 위한 시스템은 프로세서 및 프로세서에 결합된 비일시적 컴퓨터 판독가능 저장 매체를 포함하고, 저장 매체는, 시스템이 동작을 수행하도록 프로세서에 의해 실행될 명령어를 저장하고, 동작은, 적어도 트랜잭션 블라인딩 인자 r_t를 포함하는 커밋 기법에 의해 트랜잭션의 트랜잭션 금액 t를 커밋하여 트랜잭션 커밋값 T를 취득하는 단계; 대칭 키 쌍의 제1 키를 생성하는 단계; 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t의 조합을 제1 키로 암호화하는 단계; 및 트랜잭션 커밋값 T와 암호화된 조합을, 트랜잭션의 수신자와 연관된 수신자 노드에 송신하여, 수신자 노드가, 수신자의 개인 키 SK_B 및 전송자의 공개 키 PK_A에 기초하여 대칭 키 쌍의 제2 키를 생성하게 하고, 암호화된 조합을 수신자 노드에 의해 생성된 제2 키로 복호화하여 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t를 취득하게 하고, 적어도 트랜잭션 커밋값 T, 트랜잭션 블라인딩 인자 r_t, 및 트랜잭션 금액 t에 기초하여 트랜잭션을 검증하게 하는 단계를 포함한다.
또 다른 하나의 양상에 따르면, 정보 보호를 위한 컴퓨터 구현 방법은, 적어도 트랜잭션 블라인딩 인자 r_t를 포함하는 커밋 기법에 의해 트랜잭션의 트랜잭션 금액 t를 커밋하여 트랜잭션 커밋값 T를 취득하는 단계; 대칭 키 쌍의 제1 키를 생성하는 단계; 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t의 조합을 제1 키로 암호화하는 단계; 및 트랜잭션 커밋값 T와 암호화된 조합을, 트랜잭션의 수신자와 연관된 수신자 노드에 송신하여, 수신자 노드가, 수신자의 개인 키 SK_B 및 전송자의 공개 키 PK_A에 기초하여 대칭 키 쌍의 제2 키를 생성하게 하고, 암호화된 조합을 수신자 노드에 의해 생성된 제2 키로 복호화하여 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t를 취득하게 하고, 적어도 트랜잭션 커밋값 T, 트랜잭션 블라인딩 인자 r_t, 및 트랜잭션 금액 t에 기초하여 트랜잭션을 검증하게 하는 단계를 포함한다.
또 다른 하나의 양상에 따르면, 비일시적 컴퓨터 판독가능 저장 매체는, 프로세서가 동작을 수행하도록 프로세서에 의해 실행될 명령어를 저장하고, 동작은, 적어도 트랜잭션 블라인딩 인자 r_t를 포함하는 커밋 기법에 의해 트랜잭션의 트랜잭션 금액 t를 커밋하여 트랜잭션 커밋값 T를 취득하는 단계; 대칭 키 쌍의 제1 키를 생성하는 단계; 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t의 조합을 제1 키로 암호화하는 단계; 및 트랜잭션 커밋값 T와 암호화된 조합을, 트랜잭션의 수신자와 연관된 수신자 노드에 송신하여, 수신자 노드가, 수신자의 개인 키 SK_B 및 전송자의 공개 키 PK_A에 기초하여 대칭 키 쌍의 제2 키를 생성하게 하고, 암호화된 조합을 수신자 노드에 의해 생성된 제2 키로 복호화하여 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t를 취득하게 하고, 적어도 트랜잭션 커밋값 T, 트랜잭션 블라인딩 인자 r_t, 및 트랜잭션 금액 t에 기초하여 트랜잭션을 검증하게 하는 단계를 포함한다.
또 다른 하나의 양상에 따르면, 정보 보호를 위한 시스템은 프로세서 및 프로세서에 결합된 비일시적 컴퓨터 판독가능 저장 매체를 포함하고, 저장 매체는, 시스템이 동작을 수행하도록 프로세서에 의해 실행될 명령어를 저장하고, 동작은, 적어도 트랜잭션 블라인딩 인자 r_t를 포함하는 커밋 기법에 의해 트랜잭션의 트랜잭션 금액 t를 커밋하여 트랜잭션 커밋값 T를 취득하는 단계; 대칭 키 쌍의 제1 키를 생성하는 단계; 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t의 조합을 제1 키로 암호화하는 단계; 및 트랜잭션 커밋값 T와 암호화된 조합을, 트랜잭션의 수신자와 연관된 수신자 노드에 송신하여, 수신자 노드가, 수신자의 개인 키 SK_B 및 전송자의 공개 키 PK_A에 기초하여 대칭 키 쌍의 제2 키를 생성하게 하고, 암호화된 조합을 수신자 노드에 의해 생성된 제2 키로 복호화하여 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t를 취득하게 하고, 적어도 트랜잭션 커밋값 T, 트랜잭션 블라인딩 인자 r_t, 및 트랜잭션 금액 t에 기초하여 트랜잭션을 검증하게 하는 단계를 포함한다.
또 다른 하나의 양상에 따르면, 정보 보호를 위한 컴퓨터 구현 방법은, 대칭 키 쌍의 제1 키로 암호화된 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t의 조합을 취득하고, 트랜잭션 커밋값 T를 취득하는 단계로서, 트랜잭션 금액 t는 트랜잭션 커밋값 T를 취득하도록 트랜잭션의 전송자와 연관된 전송자 노드에 의해 커밋 기법으로 커밋되고, 커밋 기법은 적어도 트랜잭션 블라인딩 인자 r_t를 포함하는, 상기 트랜잭션 커밋값 T를 취득하는 단계; 대칭 키 쌍의 제2 키를 생성하는 단계; 트랜잭션의 수신자와 연관된 수신자 노드에 의해 생성된 제2 키로, 취득된 조합을 복호화하여, 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t를 취득하는 단계; 및 적어도 트랜잭션 커밋값 T, 트랜잭션 블라인딩 인자 r_t, 및 트랜잭션 금액 t에 기초하여 트랜잭션을 검증하는 단계를 포함한다.
또 다른 하나의 양상에 따르면, 비일시적 컴퓨터 판독가능 저장 매체는, 프로세서가 동작을 수행하도록 프로세서에 의해 실행될 명령어를 저장하고, 동작은, 대칭 키 쌍의 제1 키로 암호화된 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t의 조합을 취득하고, 트랜잭션 커밋값 T를 취득하는 단계로서, 트랜잭션 금액 t는 트랜잭션 커밋값 T를 취득하도록 트랜잭션의 전송자와 연관된 전송자 노드에 의해 커밋 기법으로 커밋되고, 커밋 기법은 적어도 트랜잭션 블라인딩 인자 r_t를 포함하는, 트랜잭션 커밋값 T를 취득하는 단계; 대칭 키 쌍의 제2 키를 생성하는 단계; 트랜잭션의 수신자와 연관된 수신자 노드에 의해 생성된 제2 키로, 취득된 조합을 복호화하여, 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t를 취득하는 단계; 및 적어도 트랜잭션 커밋값 T, 트랜잭션 블라인딩 인자 r_t, 및 트랜잭션 금액 t에 기초하여 트랜잭션을 검증하는 단계를 포함한다.
또 다른 하나의 양상에 따르면, 정보 보호를 위한 시스템은 프로세서 및 프로세서에 결합된 비일시적 컴퓨터 판독가능 저장 매체를 포함하고, 저장 매체는, 시스템이 동작을 수행하도록 프로세서에 의해 실행될 명령어를 저장하고, 동작은, 대칭 키 쌍의 제1 키로 암호화된 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t의 조합을 취득하고, 트랜잭션 커밋값 T를 취득하는 단계로서, 트랜잭션 금액 t는 트랜잭션 커밋값 T를 취득하도록 트랜잭션의 전송자와 연관된 전송자 노드에 의해 커밋 기법으로 커밋되고, 커밋 기법은 적어도 트랜잭션 블라인딩 인자 r_t를 포함하는, 상기 트랜잭션 커밋값 T를 취득하는 단계; 대칭 키 쌍의 제2 키를 생성하는 단계; 트랜잭션의 수신자와 연관된 수신자 노드에 의해 생성된 제2 키로, 취득된 조합을 복호화하여, 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t를 취득하는 단계; 및 적어도 트랜잭션 커밋값 T, 트랜잭션 블라인딩 인자 r_t, 및 트랜잭션 금액 t에 기초하여 트랜잭션을 검증하는 단계를 포함한다.
제조 부품과 제조 부품의 조합 및 구조의 관련 요소들의 동작과 기능의 방법뿐만 아니라 본 명세서에서 개시하는 시스템, 방법, 및 비일시적 컴퓨터 판독가능 매체의 이러한 기능, 및 기타 기능은, 첨부 도면을 참조하여 다음에 따르는 설명과 청구범위를 고려할 때 더욱 명백해질 것이며, 이들 모두는 본 명세서의 일부를 이루며, 유사한 참조 번호는 다양한 도면에서의 대응 부분을 가리킨다. 그러나, 도면은 예시와 설명을 위한 것일 뿐이며 본 발명을 한정하도록 정의하는 것이 아님을 명확하게 이해해야 한다.
본 기술의 다양한 실시형태의 소정의 기능을 특허 청구범위에서 설명한다. 본 발명의 원리를 이용하는 예시적인 실시형태를 설명하는 다음에 따르는 상세한 설명 및 첨부 도면을 참조함으로써, 본 기술의 기능과 이점을 더 잘 이해할 수 있으며, 도면에서:
도 1은 다양한 실시형태에 따라 정보 보호를 위한 예시적인 시스템을 도시한 도면.
도 2는 다양한 실시형태에 따라 트랜잭션 개시 및 검증을 위한 예시적인 단계를 도시한 도면.
도 3a는 다양한 실시형태에 따라 정보 보호를 위한 예시적인 방법의 흐름도.
도 3b는 다양한 실시형태에 따라 정보 보호를 위한 예시적인 방법의 흐름도.
도 4a는 다양한 실시형태에 따라 정보 보호를 위한 예시적인 방법의 흐름도.
도 4b는 다양한 실시형태에 따라 정보 보호를 위한 예시적인 방법의 흐름도.
도 5는 본 명세서에서 설명하는 임의의 실시형태가 구현될 수 있는 예시적인 컴퓨터 시스템의 블록도.
도 1은 다양한 실시형태에 따라 정보 보호를 위한 예시적인 시스템을 도시한 도면.
도 2는 다양한 실시형태에 따라 트랜잭션 개시 및 검증을 위한 예시적인 단계를 도시한 도면.
도 3a는 다양한 실시형태에 따라 정보 보호를 위한 예시적인 방법의 흐름도.
도 3b는 다양한 실시형태에 따라 정보 보호를 위한 예시적인 방법의 흐름도.
도 4a는 다양한 실시형태에 따라 정보 보호를 위한 예시적인 방법의 흐름도.
도 4b는 다양한 실시형태에 따라 정보 보호를 위한 예시적인 방법의 흐름도.
도 5는 본 명세서에서 설명하는 임의의 실시형태가 구현될 수 있는 예시적인 컴퓨터 시스템의 블록도.
블록체인은, 네트워크의 다양한 노드(예컨대, 연산 장치)에 의해 동작이 수행되기 때문에, 일반적으로 분산형 원장(distributed ledger)이라고 하는 비집중형 데이터베이스로 간주될 수 있다. 모든 정보는 블록체인에 기입될 수 있고 저장될 수 있거나 블록체인으로부터 판독될 수 있다. 누구라도 서버를 설정하고 블록체인 네트워크에 가입하여 노드가 될 수 있다. 모든 노드는, 블록을 현재 블록체인에 추가하기 위한 해시 계산과 같은 복잡한 연산을 수행함으로써 블록체인을 유지하기 위한 연산력을 기여할 수 있으며, 추가된 블록은 다양한 유형의 데이터 또는 정보를 포함할 수 있다. 추가된 블록에 대한 연산력에 기여한 노드는 토큰(예컨대, 디지털 화폐 단위)으로 보상받을 수 있다. 블록체인에는 중앙 노드가 없으므로, 각각의 노드는, 동일하고, 전체 블록체인 데이터베이스를 보유한다.
노드는, 예를 들어, 블록체인 네트워크를 지원하고 원활하게 실행되게 하는 연산 장치 또는 대형 컴퓨터 시스템이라는 점에 주목한다. 전체 노드와 경량 노드인 두 가지 유형의 노드가 있다. 전체 노드는 블록체인의 전체 복사본을 보관한다. 블록체인 네트워크의 전체 노드는, 자신이 수신하는 블록과 트랜잭션을 유효성 확인(validate)하고, 트랜잭션의 합의 검증을 제공하도록 이들을 접속된 피어에 중계한다. 반면, 경량 노드는 블록체인의 일부만을 다운로드한다. 예를 들어, 경량 노드는 디지털 화폐 트랜잭션에 사용된다. 경량 노드는, 트랜잭션을 행하고자 할 때 전체 노드와 통신한다.
이러한 비집중화 자산은, 제어되는 위치에 관리 센터가 출현하는 것을 방지하는 데 일조할 수 있다. 예를 들어, 비트코인 블록체인의 유지관리는, 실행 영역에서의 비트코인 소프트웨어의 통신 노드들의 네트워크에 의해 수행된다. 본 개시내용은, 비트코인 및 이더리움(Ethereum)과 같은 하나 이상의 블록체인 또는 디지털 화폐를 예로서 사용한다. 통상의 기술자는, 본 개시내용에 개시된 기술적 해결책이 다른 유형의 블록체인 및 디지털 화폐를 사용할 수 있거나 이러한 다른 유형의 블록체인 및 디지털 화폐에 적용될 수 있음을 이해할 것이다. 즉, 전통적인 의미의 은행, 기관, 또는 관리자 대신, 비트코인 소프트웨어를 실행하는 컴퓨터 서버의 형태로 된 다수의 중개자가 존재한다. 이들 컴퓨터 서버는 인터넷을 통해 접속된 네트워크를 형성하며, 누구라도 그 네트워크에 잠재적으로 참여할 수 있다. 네트워크에 의해 수용되는 트랜잭션은 "사용자 A가 사용자 B에게 Z개의 비트코인을 전송하기를 원한다"라는 형태일 수 있으며, 트랜잭션은 즉시 이용 가능한 소프트웨어 애플리케이션을 사용하여 네트워크에 브로드캐스팅된다. 컴퓨터 서버는, 이들 금융 트랜잭션을 유효성 확인하고, 이들의 레코드를 원장의 해당 복사본에 추가하고, 이어서 이들 원장 추가 부분을 네트워크의 다른 서버에 브로드캐스팅하도록 동작 가능한 비트코인 서버로서 기능한다.
블록체인을 유지 관리하는 것을 "마이닝"(mining)이라고 하며, 이러한 유지관리를 수행하는 사람은 전술한 바와 같이 새롭게 생성된 비트코인 및 트랜잭션 수수료를 보상받는다. 예를 들어, 노드는, 블록체인 네트워크가 동일한 규칙들의 세트에 기초하여 트랜잭션이 유효한지 여부를 결정할 수 있다. 마이너는, 어느 대륙에라도 위치할 수 있으며, 각각의 트랜잭션을 유효한 것으로서 검증하고 이를 블록체인에 추가함으로써 지불을 처리할 수 있다. 이러한 검증은, 복수의 마이너가 제공하는 합의를 통해 달성되며, 조직적인 공모는 없다고 추정한다. 결과적으로, 모든 데이터는, 블록체인이 일관성 있음을 보장하도록 연산이 유효한 소정의 요건을 충족시켜야 하고 모든 노드가 동기화되기 때문에, 일관성이 있다. 따라서, 블록체인 노드들의 분산 시스템에 데이터를 일관성 있게 저장할 수 있다.
마이닝 프로세스를 통해, 네트워크 노드들에 의해 자산 이전(asset transfer)과 같은 트랜잭션을 검증하고 블록체인의 블록들의 성장하고 있는 체인에 추가한다. 전체 블록체인을 횡단함으로써, 검증은, 예를 들어, 지불 당사자가 이전 자산에 대한 액세스를 갖고 있는지 여부, 자산이 이전에 소비되었는지 여부, 이전 금액이 정확한지 여부 등을 포함할 수 있다. 예를 들어, 전송자가 사인한 가상 트랜잭션(미소비 트랜잭션 출력(unspent transaction output: UTXO) 모델에 따른 비트코인의 트랜잭션, 계정/잔액 모델에 따른 이더리움 코인의 트랜잭션)에 있어서, 제안된 트랜잭션을 마이닝을 위해 블록체인 네트워크에 브로드캐스팅할 수 있다. 마이너는, 트랜잭션이 블록체인 이력에 따라 실행될 자격이 있는지를 체크할 필요가 있다. 전송자의 지갑 잔액에 기존의 블록체인 이력에 따른 충분한 자금이 있는 경우, 트랜잭션은 유효한 것으로 간주되어 블록에 추가될 수 있다. 일단 검증되면, 자산 이전을 블록체인에 추가하도록 다음 블록에 포함할 수 있다.
블록은 데이터베이스 레코드와 매우 유사하다. 데이터를 기입할 때마다, 블록이 생성된다. 이들 블록은, 암호법(cryptography)을 사용하여 링크되고 보호되어 상호접속된 네트워크로 된다. 각각의 블록은 이전 블록에 접속되며, 이는 "블록체인"이라는 이름의 근원이기도 하다. 각각의 블록은 일반적으로 이전 블록의 암호법 해시, 생성 시간, 및 실제 데이터를 포함한다. 예를 들어, 각각의 블록은 두 개의 부분, 즉, 현재 블록의 특징값을 기록하기 위한 블록 헤더, 및 실제 데이터(예컨대, 트랜잭션 데이터)를 기록하기 위한 바디를 포함한다. 블록들의 체인은 블록 헤더들을 통해 링크된다. 각각의 블록 헤더는, 버전, 이전 블록 해시, 머클 루트, 타임스탬프, 난이도 목표, 및 논스(nonce)와 같은 다수의 특징값이 포함할 수 있다. 이전 블록 해시는, 이전 블록의 어드레스뿐만 아니라 이전 블록 내부의 데이터 해시도 포함하므로, 블록체인을 변경할 수 없게 한다. 논스는, 포함된 경우, 특정 개수의 리딩 제로(leading zero) 비트를 갖는 해시를 생성하는 숫자이다.
마이닝을 위해서는, 새로운 블록의 콘텐츠의 해시가 노드에 의해 취해진다. 논스(예컨대, 랜덤 스트링)를 해시에 첨부하여 새로운 스트링을 취득한다. 새로운 스트링을 다시 해싱한다. 이어서, 최종 해시를 난이도 목표(예컨대, 레벨)와 비교하고, 최종 해시가 난이도 목표보다 실제로 작은지 여부를 결정한다. 작지 않다면, 논스가 변경되고, 프로세스가 다시 반복된다. 작다면, 블록을 체인에 추가하고, 공개 원장을 업데이트하고, 추가되었음을 알린다. 성공적으로 추가를 행하는 노드는, 예를 들어, 보상 트랜잭션을 자신에 추가하여 새로운 블록으로 되게 함으로써 비트코인으로 보상받는다(코인베이스 생성이라고 알려져 있다).
즉, 모든 출력 "Y"에 대하여, k가 높은 최소 엔트로피(min-entropy)를 갖는 분포로부터 선택되면, H(k|x) = Y로 되는 입력 x를 찾을 수 있으며, 여기서, K는 논스이고, x는 블록의 해시이고, Y는 난이도 목표이며, "|"는 연결을 나타낸다. 암호 해시가 본질적으로 랜덤이기 때문에, 해당 출력을 해당 입력으로부터 예측할 수 없다는 의미에서, 논스를 찾는 한 가지 방법만이 알려져 있는데, 정수들을 차례로 시도해 보고, 예를 들어, 1, 이어서 2, 이어서 3 등으로 시도해 보는 것이며, 이는 브루트-포스(brute-force)라고 할 수 있다. 리딩 제로의 수가 클수록, 필요 논스 Y를 찾는 데 걸리는 시간이 평균적으로 더 길어질 것이다. 일례로, 비트코인 시스템은 리딩 제로의 수를 지속적으로 조정하여, 논스를 발견하는 평균 시간은 약 10분이다. 그런 식으로, 수년에 걸쳐, 시간이 지남에 따라 연산 하드웨어의 처리 능력이 증가함에 따라, 비트코인 프로토콜은, 마이닝을 구현하는 데 항상 약 10분의 지속시간이 걸리도록 단순히 더 많은 리딩 제로 비트를 필요로 한다.
전술한 바와 같이, 해싱은 블록체인을 위한 중요한 초석이다. 해시 알고리즘은, 임의의 길이의 메시지를 고정된 길이의 메시지 다이제스트로 압축하는 함수라고 이해할 수 있다. 더욱 흔하게 사용되는 것은 MD5 및 SHA이다. 일부 실시형태에서, 블록체인의 해시 길이는 256비트인데, 이는, 초기 콘텐츠에 상관없이, 256비트 이진 수가 최종적으로 계산된다는 점을 의미한다. 그리고, 초기 콘텐츠가 다른 한 대응하는 해시가 고유함을 보장할 수 있다. 예를 들어, 스트링 "123"의 해시는 a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0(16진수), 이는 이진수로 변환되는 경우 256비트를 갖고, "123"만이 이러한 해시를 갖는다. 블록체인의 해시 알고리즘은 불가역적이며, 즉, ("123"으로부터 a8fdc205a9f19cc1c7507a60c4f01b1c7507a60c4f01b13d11d7fd0으로) 순방향 계산은 쉽고, 모든 연산 자원을 소진하더라도 역방향 계산은 행해질 수 없다. 따라서, 블록체인의 각각의 블록의 해시는 고유하다.
또한, 블록의 콘텐츠가 변경되면, 그 블록의 해시가 변하게 된다. 블록과 해시는 일대일 대응 관계를 이루며, 각각의 블록의 해시는 블록 헤더에 대하여 특정하게 계산된다. 즉, 블록 헤더들의 특징값들은 긴 스트링을 형성하도록 접속되고, 이어서 그 스트링에 대하여 해시가 계산된다. 예를 들어, "해시=SHA256(블록 헤더)"이 블록 해시 계산식이며, SHA256은 블록 헤더에 적용되는 블록체인 해시 알고리즘이다. 해시는, 블록 헤더에 의해 고유하게 결정되며, 블록 바디가 아니다. 전술한 바와 같이, 블록 헤더는, 현재 블록의 해시와 이전 블록의 해시를 비롯하여 많은 콘텐츠를 포함한다. 이는, 현재 블록의 콘텐츠가 변하면 또는 이전 블록의 해시가 변하면, 현재 블록의 해시가 변하게 된다는 것을 의미한다. 해커가 블록을 수정하면, 그 블록의 해시가 변하게 된다. 이후 블록을 수정된 블록에 접속하기 위해서는, 해커가 모든 후속 블록을 차례로 수정해야 하며, 이는 다음 블록이 이전 블록의 해시를 포함해야 하기 때문이다. 그렇지 않다면, 수정된 블록이 블록체인으로부터 분리될 것이다. 설계 이유로 인해, 해시 계산은 시간 소모적이며, 해커가 전체 네트워크의 연산 능력의 51% 초과를 마스터하지 않았다면, 짧은 기간에 다수의 블록을 수정하는 것은 거의 불가능하다. 따라서, 블록체인은 자신의 고유한 신뢰성을 보장하며, 일단 데이터가 기입되면, 조작될 수 없다.
일단 마이너가 새로운 블록에 대한 해시(즉, 적합한 서명 또는 솔루션)를 찾으면, 마이너는 이 서명을 다른 모든 마이너(블록체인의 노드들)에 브로드캐스팅한다. 다른 마이너들은, 이제 자신의 차례에 해당 솔루션이 전송자의 블록의 문제와 대응하는지를 검증한다(즉, 해시 입력이 실제로 해당 서명을 생성하였는지를 결정한다). 솔루션이 유효하면, 나머지 마이너들은, 솔루션을 확인하고, 새로운 블록을 블록체인에 추가할 수 있다는 데 동의한다. 따라서, 새로운 블록의 합의가 이루어진 것이다. 이것을 "작업증명"(proof of work)이라고도 한다. 합의에 도달한 블록을, 이제 블록체인에 추가할 수 있으며, 해당 블록의 서명과 함께 네트워크 상의 모든 노드에 브로드캐스팅한다. 노드는, 블록을 허용하고, 해당 블록 내의 트랜잭션이 해당 시점에서의 현재 지갑 잔액(트랜잭션 이력)과 정확하게 대응하는 한 그 블록을 자신의 트랜잭션 데이터에 저장한다. 이 블록 위에 새로운 블록이 추가될 때마다, 그 추가도 그 블록 앞에 또 다른 "확인"으로서 간주된다. 예를 들어, 트랜잭션이 블록(502)에 포함되고 블록체인의 길이가 507개 블록이면, 이는 트랜잭션이 5개의 확인(블록(507 내지 502)에 대응)을 갖는다는 것을 의미한다. 트랜잭션의 확인이 많을수록, 공격자가 변경하는 것이 어렵다.
일부 실시형태에서, 예시적인 블록체인 자산 시스템은, 두 개의 암호 키, 하나의 공개 키, 및 하나의 개인 키가 생성되는 공개 키 암호법을 이용한다. 공개 키는 계정 번호라고 간주할 수 있으며, 개인 키는 소유권 자격증명서라고 간주할 수 있다. 예를 들어, 비트코인 지갑은 공개 키와 개인 키의 집합이다. 소정의 자산 어드레스에 연관된 자산(예컨대, 디지털 화폐, 현금 자산, 주식, 지분, 채권)의 소유권은, 어드레스에 속하는 개인 키에 대한 지식으로 입증될 수 있다. 예를 들어, 때로는 "비트코인 클라이언트 소프트웨어"라고도 하는 비트코인 지갑 소프트웨어는, 주어진 사용자가 비트코인을 거래할 수 있게 한다. 지갑 프로그램은, 개인 키를 생성 및 저장하고. 비트코인 네트워크 상의 피어와 통신한다.
블록체인 트랜잭션에 있어서, 지불자와 수신자는 자신들의 공개 암호 키에 의해 블록체인에서 식별된다. 예를 들어, 대부분의 동시 비트코인 전송은 하나의 공개 키로부터 다른 공개 키로 향하는 것이다. 실제로, 이들 키의 해시는, 블록체인에서 사용되며, "비트코인 어드레스"라고 한다. 원칙적으로는, 사용자의 이름 대신 사용자의 비트코인 어드레스를 사용하여, 가상의 공격자인 사람 S가 "사람 A가 사람 S에게 100 비트코인을 지불한다"와 같이 단순히 블록체인 원장에 트랜잭션을 추가함으로써 사람 A로부터 돈을 훔칠 수 있는 경우가 있다. 비트코인 프로토콜은, 모든 전송에 지불자의 개인 키로 디지털 서명할 것을 요구함으로써 이러한 종류의 절도를 방지하고, 서명된 전송만이 블록체인 원장에 추가될 수 있다. 사람 S가 사람 A의 서명을 위조할 수 없으므로, 사람 S는 "사람 A가 사람 S에게 200 비트코인을 지불한다"와 같은 엔트리를 블록체인에 추가하여 사람 A를 속일 수는 없다. 동시에, 누구라도, 자신의 공개 키를 사용하여 사람 A의 서명을 검증할 수 있으므로, 자신이 지불자인 블록체인에서의 임의의 트랜잭션을 인가하였음을 검증할 수 있다.
비트코인 트랜잭션 콘텍스트에서, 일부 비트코인을 사용자 B에게 전송하기 위해, 사용자 A는 노드를 통해 트랜잭션에 관한 정보를 포함하는 레코드를 구축할 수 있다. 레코드는, 사용자 A의 서명 키(개인 키)로 서명될 수 있으며, 사용자 A의 공개 검증 키와 사용자 B의 공개 검증 키를 포함한다. 서명은, 트랜잭션이 사용자로부터 온 것임을 확인하는 데 사용되며, 또한, 일단 트랜잭션이 발행되었다면 누군가가 트랜잭션을 변경하는 것을 방지한다. 새로운 블록에서 동일한 시간 창에서 발생한 다른 레코드와 함께 번들된 레코드는 전체 노드에 브로드캐스팅될 수 있다. 전체 노드는, 레코드를 수신하면, 레코드를 블록체인 시스템에서 발생한 모든 트랜잭션의 원장에 통합하고, 새로운 블록을 전술한 마이닝 프로세스를 통해 이전에 허용된 블록체인에 추가하고, 추가된 블록을 네트워크의 합의 규칙에 대하여 유효성 확인하도록 동작할 수 있다.
UTXO(미소비 트랜잭션 출력) 모델과 계정/잔액 모델은, 블록체인 트랜잭션을 구현하기 위한 두 가지 예시적인 모델이다. UTXO는 블록체인 객체 모델이다. UTXO에서, 자산은, 사용되지 않은 블록체인 트랜잭션의 출력에 의해 표현되며, 새로운 트랜잭션의 입력으로서 사용될 수 있다. 예를 들어, 전송할 사용자 A의 자산은 UTXO 형태일 수 있다. 자산을 소비(거래)하려면, 사용자 A는 개인 키로 서명종료(sign off)해야 한다. 비트코인은 UTXO 모델을 사용하는 디지털 화폐의 일례이다. 유효한 블록체인 트랜잭션의 경우, 미소비 출력을 사용하여 추가 트랜잭션을 수행할 수 있다. 일부 실시형태에서는, 이중 지출 및 사기를 방지하도록 추가 트랜잭션에서 미소비 출력만이 사용될 수 있다. 이러한 이유로, 트랜잭션이 발생하면 블록체인의 입력이 삭제되는 동시에 출력은 UTXO 형태로 생성된다. 이들 미소비 트랜잭션 출력은, 향후 트랜잭션을 위해 (개인 키의 보유자, 예를 들어, 디지털 화폐 지갑을 갖는 사람에 의해) 사용될 수 있다.
반면, 계정/잔액 모델(또는 계정 기반 트랜잭션 모델이라고도 함)은 글로벌 상태로서 각각의 계정의 잔액을 추적한다. 계정의 잔액이 지출 트랜잭션 금액 이상임을 확실히 하도록 계정의 잔액을 체크한다. 이더리움에서 계정/잔액 모델이 어떻게 기능하는지에 대한 일례를 다음과 같이 제공한다.
1. 앨리스는 마이닝을 통해 에테르 5개를 얻는다. 앨리스가 에테르 5개를 가지고 있음을 시스템에 기록한다.
2. 앨리스는 밥에게 에테르 1개를 주려고 하므로, 시스템은 먼저 앨리스의 계정에서 에테르 1개를 공제하고, 이에 따라 앨리스는 이제 에테르 4개를 갖게 된다.
3. 이어서 시스템은 밥의 계정을 1 에테르만큼 증가시킨다. 시스템은 밥이 처음에 에테르 2개를 가지고 있음을 알고 있으므로, 밥의 잔액은 3개의 에테르로 증가한다.
이더리움에 대한 레코드 보관은 은행에서와 비슷할 수 있다. 유사점은 ATM/직불 카드를 사용하는 것이다. 은행은 각각의 직불 카드에 얼마만큼의 돈이 있는지를 추적하고, 밥이 돈을 쓸 필요가 있을 때, 은행은 트랜잭션을 승인하기 전에 밥이 충분한 잔액을 갖고 있는지를 확실히 하도록 그 레코드를 체크한다.
블록체인 및 기타 유사한 원장은 완전히 공개되어 있으므로, 블록체인 자체에는 프라이버시 보호가 없다. P2P 네트워크의 공개 특성은, 이를 사용하는 사람들이 이름으로 식별되지 않지만 트랜잭션을 개인과 회사에 링크하는 것이 실현 가능하다는 것을 의미한다. 예를 들어, 해외 송금(cross-border remittance)이나 공급 체인에 있어서, 트랜잭션 금액은 프라이버시 보호 가치가 매우 높은 것이며, 이는 트랜잭션 금액 정보를 통해 트랜잭션 당사자들의 특정 위치와 ID를 추론할 수 있기 때문이다. 트랜잭션의 대상은, 예를 들어, 돈, 토큰, 디지털 화폐, 계약, 증서, 의료 기록, 고객 상세 정보, 주식, 채권, 지분, 또는 디지털 형식으로 기술될 수 있는 기타 자산을 포함할 수 있다. UTXO 모델은 예를 들어 모네로(Monero)의 링 서명 및 제로-놀리지(Zero-knowledge) 암호법 제트캐시(Zcash)를 통해 트랜잭션 금액에 익명성을 제공할 수 있지만, 트랜잭션 금액은 계정/잔액 모델에서 보호되지 않는다. 따라서, 본 개시내용에 의해 다루어지는 기술적 문제점은, 트랜잭션 금액의 프라이버시와 같은 온라인 정보를 어떻게 보호하는가이다. 이러한 트랜잭션은 계정/잔액 모델에 속할 수 있다.
기존의 일부 기술은, 페데르센 커밋 기법을 사용하여 트랜잭션 금액을 암호화하고 계정/잔액 모델을 대체하는 것을 제안한다. 이러한 기법에서는, 전송자는, 트랜잭션 금액 및 트랜잭션 금액의 페데르센 커밋에 대응하는 난수를 블록체인으로부터 분리된 보안 채널을 통해 수신자에게 보낸다. 수신자는, 난수가 트랜잭션 커밋과 일치하는지를 검증하고, 국부적 저장을 수행한다. 예를 들어, 계정/잔액 모델에서, 계정은, 집계되지만 병합되지 않는 자산을 보관하기 위한 지갑(계정)으로서 처리될 수 있다. 각각의 자산은 자산 유형(예컨대, 암호화폐)에 해당할 수 있으며, 계정 잔액은 자산 값들의 합이다. 같은 유형의 자산들조차도 병합되지 않는다. 트랜잭션 중에, 전송되는 자산의 수신자가 특정될 수 있으며, 해당 자산은 트랜잭션에 자금을 조달하도록 지갑으로부터 제거될 수 있다. 블록체인 노드는, 지불 지갑에 트랜잭션을 커버할 수 있는 충분한 자산(들)이 있음을 검증한 후, 전송되는 자산을 지불 지갑으로부터 삭제하고 해당 자산을 수신자 지갑에 추가한다.
그러나, 이러한 기법에도 한계사항이 여전히 존재한다. 첫째, 기법은, 사용자가 난수와 암호화된 계정 잔액에 대응하는 평문 잔액을 관리하도록 국부적으로 영구적인 저장 장치를 유지할 것을 필요로 하며, 관리 구현이 복잡하며, 둘째, 블라인딩 인자(예컨대, 난수) 및 "페데르센 자산"에 대응하는 평문 잔액을 단일 국부 노드에 저장하는 것은 손실 또는 파괴를 받기 쉬운 한편, 멀티노드 백업 저장을 실현하는 것은 계정 잔액의 빈번한 변경으로 인해 어렵다.
본 개시내용에 제시하는 시스템과 방법은, 전술한 한계사항을 극복할 수 있고, 커밋 기법에 있어서 트랜잭션 금액, 자산 값, 및 블라인딩 인자를 위한 강건한 프라이버시 보호를 달성할 수 있다. 이를 위해, 디피-헬만(DH) 키 교환 프로토콜에 의해 취득되는 대칭 키는, 난수와 평문 잔액을 암호화/복호화하는 데 사용될 수 있고, 따라서 편리한 관리를 제공할 수 있다. 또한, 블록체인에 암호화된 정보를 저장함으로써, 커밋 기법에서의 트랜잭션 금액, 자산 값, 및 블라인딩 인자가 쉽게 손실 또는 조작되지 않는 것을 보장한다.
본 개시내용의 도면들을 설명하기 전에, 페데르센 커밋 및 디피-헬만(DH) 키 교환 프로토콜을 후술한다.
일부 실시형태에서, 커밋 기법(예컨대, 페데르센 커밋)은, 소정의 값(예컨대, 트랜잭션 금액, 자산 값, 키 파라미터)을 다음과 같이 암호화할 수 있다:
PC(a) = r×G + a×H
여기서, r은 하이딩(hiding)을 제공하는 랜덤 블라인딩 인자(대안적으로, 바인딩(binding) 인자라고 함)이고, G와 H는 타원 곡선의 공개적으로 합의된 생성자/베이스포인트이고 랜덤하게 선택될 수 있으며, sn은 커밋값이고, C(sn)은 커밋으로서 사용되며 상대방에 제공되는 곡선점이고, H는 다른 곡선점이다. 즉, G와 H는 노드에 알려져 있는 파라미터일 수 있다. H의 "nothing up my sleeve" 생성은, H=Hash(G)에 의해 베이스포인트 G를 한 지점으로부터 다른 지점으로부터의 해시 함수 맵핑으로 해싱함으로써 생성될 수 있다. H와 G는, 주어진 시스템의 공개 파라미터이다(예컨대, 타원 곡선 상에 랜덤하게 생성된 지점이다). 전술한 바는 페데르센 커밋의 일례를 타원 곡선 형태로 제공하지만, 대안적으로 페데르센 커밋 또는 다른 커밋 기법의 다양한 다른 형태를 사용할 수 있다.
커밋 기법은, 데이터 비밀을 유지하지만, 데이터의 전송자에 의해 나중에 변경될 수 없도록 데이터에 커밋된다. 당사자가 커밋값(예컨대, PC(a))만을 안다면, 어떠한 기저 데이터 값(예컨대, a)이 커밋되었는지를 결정할 수 없다. 데이터(예컨대, a)와 블라인딩 인자(예컨대, r) 모두는 (예컨대, 개시자 노드에 의해) 나중에 밝혀질 수 있으며, 커밋의 수신자(예컨대, 합의 노드)은, 커밋을 실행할 수 있고, 커밋된 데이터가 밝혀진 데이터와 일치함을 검증할 수 있다. 블라인딩 인자는, 이러한 블라인딩 인자가 없는 경우 누군가 데이터 추측을 시도할 수 있기 때문에, 제시된다.
커밋 기법은, 커밋된 값이 프라이버시를 유지하지만 나중에 커밋 당사자가 커밋 프로세스의 필요한 파라미터를 누설할 때 밝혀질 수 있도록 전송자(커밋 당사자)가 값(예컨대, a)을 커밋하기 위한 방식이다. 강한 커밋 기법은, 정보 하이딩이면서 연산적 바인딩일 수 있다. 하이딩은, 주어진 값과 그 값의 커밋값(PC(a))이 관계가 없는 개념을 가리킨다. 즉, PC(a)는, a에 관한 정보를 밝혀서는 안 되며, PC(a), G, H를 아는 경우, 난수 r 때문에 a를 아는 것은 거의 불가능하다. 커밋 기법은, 두 개의 상이한 값이 동일한 커밋값을 초래할 수 있는 그럴듯한 방식이 없다면 바인딩이다. 페데르센 커밋은, 이산 로그 가정 하에 완벽하게 하이딩이면서 연산적으로 바인딩이다. 또한, r, G, H, PC(a)를 아는 경우, PC(a) = r×G + a×H인지를 결정함으로써 PC(a)를 검증할 수 있다.
페데르센 커밋은 추가 특성을 갖는데, 커밋이 추가될 수 있으며, 커밋의 세트의 합은 (블라인딩 인자들의 합으로서의 블라인딩 인자 세트를 갖는) 데이터의 합에 대한 커밋과 동일하며, PC(r1, data1) + PC(r2, data2) == PC(r1+r2, data1+data2); PC(r1, data1) - PC(r1, data1) == 0이다. 다시 말하면, 커밋은 추가를 보존하며, 교환 특성이 적용되며, 즉, 페데르센 커밋은, 기저 데이터가 암호화되지 않은 것처럼 수학적으로 조작될 수 있다는 점에서 추가적 동형(additively homomorphic)이다.
하나의 실시형태에서, 입력값을 암호화하는 데 사용되는 페데르센 커밋은 타원 곡선점을 사용하여 구축될 수 있다. 종래에는, 그룹(G)에 대한 생성자를 비밀 키((r): Pub=rG)로 승산함으로써, 타원 곡선 암호법(ECC) 공개 키(pubkey)가 생성된다. 그 결과는 33바이트 어레이로서 직렬화될 수 있다. ECC 공개 키는 페데르센 커밋에 대하여 전술한 추가적 동형 특성을 따를 수 있다. 즉, Pub1+Pub2=(r1+r2(mod n))G이다.
입력값에 대한 페데르센 커밋은, 제1 생성자 G에 대하여 제2 생성자 H에 대한(또는 그 반대의 경우에 대한) 이산 로그를 누구도 알지 못하도록 그룹(이하 식에서의 H)에 대한 추가 생성자를 선택함으로써 생성될 수 있으며, 이는 누구도 xG=H와 같은 x를 알지 못함을 의미한다. 이는, 예를 들어, G의 암호법 해시를 사용하여 H를 선택함으로써 달성될 수 있다(H=to_point(SHA256(ENCODE(G)))).
두 개의 생성자 G와 H가 주어지면, 입력값을 암호화하기 위한 예시적인 커밋 기법은, 커밋=rG+aH와 같이 정의될 수 있다. 여기서, r은 비밀 블라인딩 인자일 수 있고, a는 커밋을 행하는 입력값일 수 있다. 따라서, sn이 커밋되면, 전술한 커밋 기법(PC(a) = r×G + a×H)을 취득할 수 있다. 페데르센 커밋은, 정보 이론적으로는 개인적인 것이며, 임의의 커밋에 대하여, 임의의 양을 커밋과 일치하게 하는 소정의 블라인딩 인자가 존재한다. 페데르센 커밋은, 임의의 맵핑이 연산될 수 없다는 점에서, 가짜 커밋에 대하여 연산적으로 안전할 수 있다.
값을 커밋한 당사자(노드)는, 원래의 값 a와 커밋 식을 완성하는 인자 r을 공개함으로써 커밋을 열 수 있다. 이어서, 값 PC(a)를 열려고 하는 당사자는, 커밋을 다시 연산하여 공유한 원래 값이 실제로 처음에 수신된 커밋 PC(a)와 일치하는지를 검증한다. 따라서 자산 유형 정보는, 자산 유형 정보를 고유한 일련 번호에 맵핑한 후에 이를 페데르센 커밋에 의해 암호화함으로써 보호될 수 있다. 커밋을 생성할 때 선택된 난수 r에 때문에, 누군가가 커밋값 PC(a)에 따라 커밋된 자산 유형의 유형을 추론하는 것이 거의 불가능하다.
일부 실시형태에서, 디피-헬만(DH) 키 교환은 공개 채널을 통해 암호 키를 안전하게 교환하는 방법으로서 사용될 수 있다. 지수 키 교환이라고도 하는 DH 키 교환은, 특정 수로 제곱된 수를 사용하여 절대로 직접 전송되지 않는 구성요소를 기반으로 복호화 키를 생성하는 디지털 암호화 방법으로서, 잠재적 코드 해독자의 작업을 수학적으로 압도되게 한다.
디피-헬만(DH) 키 교환을 구현하는 예에서, 2명의 최종 사용자인 앨리스와 밥은, 자신들이 개인적인 것으로 알고 있는 채널을 통해 통신하는 동안, 양의 정수 p와 q에 대해 상호 동의하며, 여기서, p가 소수이고 q는 p의 생성자이다. 생성자 q는, p보다 작은 양의 정수 배로 제곱되는 경우 이러한 2개의 정수에 대해 결코 동일한 결과를 생성하지 않는 수이다. p의 값은 클 수 있지만, q의 값은 일반적으로 작다. 즉, q는 원시 루트 모듈러스 p이다.
일단 앨리스와 밥이 개인적으로 p와 q에 모두 동의하면, 이들은, 양의 정수인 개인 키 a와 b를 선택하고, 이러한 수는 둘 다 소수 모듈러스 p보다 작고 랜덤하게 생성될 수 있다. 사용자는 누구에게도 자신의 개인 키를 누설하지 않으며, 이상적으로, 이 번호를 기억하고 있으며 어느 곳에도 기록 또는 저장하지 않는다. 다음으로, 앨리스와 밥은, 이하의 식에 따라 자신들의 개인 키를 기반으로 공개 키 a*와 b*를 연산한다:
a* = qa mod p
및
b* = qb mod p
두 명의 사용자는, 인터넷이나 회사 광역 네트워크(WAN)와 같이 안전하지 않은 것으로 간주되는 통신 매체를 통해 자신들의 공개 키 a*와 b*를 공유할 수 있다. 이들 공개 키로부터, 임의의 사용자가 자신의 고유한 개인 키에 기초하여 번호 k1을 생성할 수 있다.
앨리스는 k1 = (b*)a mod p라는 공식을 사용하여 k1을 연산한다.
밥은 k1 = (a*)b mod p라는 공식을 사용하여 k1을 연산한다.
k1의 값은 전술한 2개의 공식 중 어느 것에 따라도 동일한 것으로 나온다. 그러나, k1의 계산에 있어서 중요한 개인 키 a와 b는 공개 매체를 통해 송신되지 않았다. p, q, a*, b*를 사용하더라도, a와 b를 계산하는 것은 여전히 매우 어렵다. 이것은 크고 분명히 난수이기 때문에, 잠재적인 해커는, 강력한 컴퓨터로 수백만 건의 시도를 행하더라도 k1을 정확하게 추측할 기회가 거의 없다. 따라서, 두 사용자는, 이론적으로는, 복호화 키 k1을 사용하여 자신이 선택한 암호화 방법에 의해 공개 매체를 통해 개인적으로 통신할 수 있다.
디피-헬만(DH) 키 교환을 구현하는 또 다른 예에서, 모든 계산은, 디피-헬만 문제점이 큰 것으로 고려되는 충분한 크기의 이산 그룹에서 발생하며, 보통 승산 그룹 모듈로 빅 프라임(multiplicative group modulo a big prime)(예컨대, 클래식 DH의 경우) 또는 타원 곡선 그룹(예컨대, 타원 곡선 디피-헬만의 경우)을 사용한다.
두 개의 트랜잭션 당사자의 경우, 각각의 당사자는 개인 키 a 또는 b를 선택한다.
각 당사자는 대응하는 공개 키 aG 또는 bG를 계산한다.
각 당사자는 공개 키 aG 또는 bG를 상대방에게 전송한다.
각 당사자는, 수신된 공개 키를 자신의 고유한 비밀 키와 함께 사용하여, 대칭 키 쌍의 대칭 키라고 지칭될 수 있는 새로운 공유 비밀 a(bG) = b(aG)를 계산한다.
후술하는 바와 같이, 이러한 예시적인 방법은 대칭 키 abG와 baG를 생성하는 데 사용될 수 있다. 이러한 키 교환의 결과는 공유 비밀이며, 이것은, 대칭 암호화 기법을 위한 키들의 세트를 도출하기 위한 키 도출 함수(예컨대, 난수와 자산 값의 연결과 같이 양측 당사자가 알고 있는 다른 입력을 사용하는 암호화 함수 E())와 함께 사용될 수 있다. 대안적으로, 예를 들어, 공개 키(ga, gb) 및 공유 키(gab 또는 gba)를 생성함으로써, 다양한 다른 연산 방법을 사용할 수 있다.
트랜잭션 동안, 정보 보호는 사용자 프라이버시를 보호하는 데 중요하며, 트랜잭션 금액은 보호 기능이 없는 정보 유형 중 하나이다. 도 1은 다양한 실시형태에 따라 정보 보호를 위한 예시적인 시스템(100)을 도시한다. 도시된 바와 같이, 블록체인 네트워크는 복수의 노드(예컨대, 서버, 컴퓨터 등에 구현된 전체 노드)를 포함할 수 있다. 일부 블록체인 플랫폼(예컨대, NEO)의 경우, 일정 수준의 투표권을 가진 전체 노드를 합의 노드라고 부르며, 트랜잭션 검증의 책임을 지고 있다. 본 개시내용에서는, 전체 노드, 합의 노드, 또는 다른 동등한 노드가 트랜잭션을 검증할 수 있다.
또한, 도 1에 도시된 바와 같이, 사용자 A와 사용자 B는, 트랜잭션을 수행하기 위해 경량 노드로서 기능하는 랩톱 및 이동 전화와 같은 대응 장치를 사용할 수 있다. 예를 들어, 사용자 A는, 사용자 A의 계정에 있는 일부 자산을 사용자 B의 계정으로 전송함으로써 사용자 B와 거래하고자 할 수 있다. 사용자 A와 사용자 B는, 트랜잭션을 위한 적절한 블록체인 소프트웨어와 함께 설치된 대응 장치를 사용할 수 있다. 사용자 A의 장치는, 수신자 노드 B라고 하는 사용자 B의 장치와 트랜잭션을 개시하는 개시자 노드 A라고 할 수 있다. 노드 A는 노드 1과의 통신을 통해 블록체인에 액세스할 수 있으며 노드 B는 노드 2와의 통신을 통해 블록체인에 액세스할 수 있다. 예를 들어, 노드 A와 노드 B는, 노드 1과 노드 2를 통해 트랜잭션을 블록체인에 제출하여 트랜잭션을 블록체인에 추가할 것을 요청할 수 있다. 블록체인의 외부에서, 노드 A와 노드 B는, 다른 통신 채널 (예컨대, 노드 1과 노드 2를 통하지 않는 통상적인 인터넷 통신)을 가질 수 있다.
도 1의 각각의 노드는, 노드(예컨대, 프로세서)가 본 명세서에서 설명하는 정보 보호를 위한 다양한 단계를 수행하도록 프로세서에 의해 실행될 명령어를 저장하는 비일시적 컴퓨터 판독가능 저장 매체 및 프로세서를 포함할 수 있다. 각각의 노드는, 다른 노드 및/또는 다른 장치와 통신하도록 소프트웨어 및/또는 하드웨어(예컨대, 와이어, 무선 접속부)와 함께 설치될 수 있다. 노드 하드웨어와 소프트웨어의 추가 상세는 도 5를 참조하여 후술한다.
도 2는, 다양한 실시형태에 따라 전송자 노드 A, 수신자 노드 B, 및 하나 이상의 검증 노드 간의 트랜잭션 및 검증을 위한 예시적인 단계를 도시한다. 이하에서 제시하는 동작은 예시하기 위한 것이다. 구현예에 따라, 예시적인 단계들은, 다양한 순서 또는 병렬로 수행되는 추가 단계, 더 적은 단계, 또는 대체 단계를 포함할 수 있다.
다양한 실시형태에서, 트랜잭션 당사자(전송자 사용자 A 및 수신자 사용자 B)의 계정은 계정/잔액 모델을 위해 구성된다. 사용자 A와 사용자 B는, 자신들의 랩톱, 휴대 전화 등과 같은 하나 이상의 장치를 통해 트랜잭션을 실행하기 위해 다음 단계를 수행할 수 있다. 장치는 다양한 단계를 수행하기 위해 적절한 소프트웨어 및 하드웨어와 함께 설치될 수 있다. 각각의 계정은 암호 개인 키(비밀 키)-공개 키 쌍에 연관될 수 있다. 개인 키는 SK=x로 표시될 수 있고, 공개 키는 PK=xG로 표시될 수 있으며, 여기서 G는 그룹의 생성자이다. 각각의 계정에는 다음과 같이 표시된 다양한 자산이 포함될 수 있다. 각각의 자산은 다양한 자산을 포함할 수 있으며, 각각 (V=PC(r, v), E(K, r, v))로 표시되며, 여기서, v는 자산의 액면가를 나타내고, V는 액면가 v의 페데르센 커밋을 나타내고, r은 블라인딩 인자(예컨대, 난수)이고, PC()는 페데르센 커밋 알고리즘이고, E()는 암호화 알고리즘(예컨대, 대칭 키 암호화 알고리즘)이고, K는 암호화 키이다. 일례로, 각각의 자산은 (V=PC(r, v), E(K, r∥v))로 표시될 수 있으며, 여기서 ∥는 연결을 나타낸다. 각각의 자산은, 또한, 자산의 소스 정보와 같이 나열된 것 이외의 정보를 포함할 수 있다.
일례로, 블록체인 검증된 트랜잭션에서 사용자 A가 사용자 B에게 금액 t를 성공적으로 거래하기 전에, A의 계정과 B의 계정의 어드레스와 자산은 다음과 같다:
A의 계정(계정 A)에 대하여:
어드레스: (SK_A=a, PK_A=aG)
값 a_1 내지 a_m의 자산 A_1 내지 A_m 각각은 다음과 같이 표현된다:
(A_1=PC(r_{a_1}, a_1), E(K_A, r_{a_1}||a_1)),
(A_2=PC(r_{a_2}, a_2), E(K_A, r_{a_2}||a_2)),
...
(A_m=PC(r_{a_m}, a_m), E(K_A, r_{a_m}||a_m))
B의 계정(계정 B)에 대하여:
어드레스: (SK_B=b, PK_B=bG)
값 b_1 내지 b_n의 자산 B_1 내지 B_n 각각은 다음과 같이 표현된다:
(B_1=PC(r_{b_1}, b_1), E(K_B, r_{b_1}||b_1)),
(B_2=PC(r_{b_2}, b_2), E(K_B, r_{b_2}||b_2)),
...
(B_n=PC(r_{b_n}, b_n), E(K_B, r_{b_n}||b_n)).
일부 실시형태에서, 키 생성은 계정/잔액 모델의 각각의 계정에 대한 타원 곡선 ecp256k1을 기반으로 할 수 있다. 예를 들어, 이더리움 ecp256k1에서, 1 내지 2256-1 중 임의의 수가 유효한 개인 키 SK일 수 있다. 양호한 라이브러리는 충분한 난수를 고려하여 개인 키를 생성한다. 이더리움은, 개인 키 SK가 256비트 길이가 될 것을 요구한다. 공개 키 생성은 ECC 암호법의 그룹 동작을 사용하여 수행된다. 공개 키 PK를 도출하기 위하여, 개인 키를 G로 승산할 수 있다. 공개 키 PK를 도출하는 데 사용되는 승산은 ECC 승산(타원 곡선점 승산)이며, 통상적인 승산과는 다르다. G는, ECC 암호법의 도메인 파라미터들 중 하나인 생성자 지점이다. G는 ecp256k1의 고정 값을 가질 수 있다. 어드레스는, 예를 들어, 공개 키 PK의 해시의 마지막 20바이트일 수 있다.
일부 실시형태에서, 단계(201)에서, 노드 A는 노드 B와의 트랜잭션을 개시할 수 있다. 예를 들어, 사용자 A와 사용자 B는 사용자 A의 계정 A로부터 사용자 B의 계정 B로의 트랜잭션 금액 t를 협상할 수 있다. 계정 A와 계정 B는 본 명세서에서 설명하는 "지갑"에 해당할 수 있다. 계정 A는 하나 이상의 자산을 가질 수 있다. 자산은, 예를 들어, 돈, 토큰, 디지털 화폐, 계약, 증서, 의료 기록, 고객 상세 정보, 주식, 채권, 지분, 또는 디지털 형식으로 설명될 수 있는 다른 임의의 자산을 포함할 수 있다. 계정 B는 하나 이상의 자산을 가질 수 있고 또는 자산을 갖지 않을 수 있다. 각각의 자산은 블록체인의 블록들에 저장된 다양한 블록체인 정보에 연관될 수 있으며, 블록체인 정보는, 예를 들어, 자산 유형을 나타내는 NoteType, 자산의 고유 식별을 나타내는 NoteID, 자산 값의 커밋(예컨대, 페데르센 커밋) 값을 나타내는 커밋값, 난수와 자산 값의 암호화 등을 포함한다.
계정 A에 대하여 설명한 바와 같이, 일부 실시형태에서, 자산 A_1 내지 A_m은 자산 값 a_1 내지 a_m 및 난수 r_1 내지 r_m에 각각 대응한다. 난수 r_1 내지 r_m에 기초하여, 노드 A는, 계정 A의 자산 값을 암호화된 커밋값을 취득하기 위한 커밋 기법(예컨대, 페데르센 커밋)으로 커밋할 수 있다. 예를 들어, 암호화된 커밋값은 PC_1 내지 PC_m일 수 있고, 여기서, PC_i = PC(r_{a_i}, a_i) = r_{a_i}XG + a_iXH이며, G와 H는 알려진 파라미터이고, i는 1 내지 m이다. 제1 필드(PC(...)) 외에도, 각각의 자산은 전술한 바와 같이 제2 필드(E(...))에도 연관된다. 제2 필드(E(...))는, 키 K_A로 암호화된 대응하는 난수와 자산 값의 암호화를 나타낼 수 있다. 예를 들어, 암호화는 E(K_A, r_{a_i}∥a_i))일 수 있다. 각각의 자산의 PC(...)와 E(...)는 이전 트랜잭션으로부터 상속될 수 있다. 계정 B와 이 계정의 자산에도 동일한 메커니즘이 적용될 수 있다.
일부 실시형태에서, K_A는 다양한 형태의 암호화 키를 포함할 수 있다. 예를 들어, K_A는 이하에서 더 설명하는 a*PK_A=aaG일 수 있고, K_B는 이하에서 더 설명하는 a*PK_B=abG일 수 있고, 여기서, a, b, G는 ECC 승산에 의해 승산될 수 있다.
일부 실시형태에서, 트랜잭션 금액 t를 만족시키기 위해, 사용자 A는 적어도 계정 A로부터 합산된 값의 적어도 하나의 자산을 탭핑할 수 있다. 예를 들어, 도 1을 참조하면, 노드 A는 이 트랜잭션에 대해 자산 A_1과 A_2를 선택할 수 있다. 노드 A는 노드 1로부터 자산 PC(r_1, a_1)와 PC(r_2, a_2)를 판독할 수 있다. 노드 A에 알려진 난수 r_1과 r_2를 사용하여, 노드 A는, 판독된 자산 PC(r_1, a_1)와 PC(r_2, a_2)를 복호화하여 자산 값 a_1과 a_2를 취득할 수 있어서, a_1과 a_2의 합이 트랜잭션 금액 t 이상임을 보장할 수 있다. 다양한 자산은 다양한 비율에 기초하여 계정 내에서 서로 교환될 수 있다.
일부 실시형태에서, t를 초과하는 선택된 자산 값의 양은, 존재하는 경우, 변경으로서의 y로 설정된다. 예를 들어, 노드 A는 변경 y=a_1+a_2-t를 결정할 수 있다. 노드 A는, t와 y에 대한 페데르센 커밋을 생성하게 난수 r_t와 r_y를 블라인딩 인자로서 다음과 같이 선택할 수 있다. T=PC(r_t, t), Y=PC(r_y, y). 즉, 노드 A는 t에 대한 난수 r_t와 y에 대한 난수 r_y를 생성할 수 있다. 노드 A는, 커밋값 T=PC(r_t, t)를 취득하기 위해 t와 r_t를 커밋 기법(예컨대, 동형 암호화)으로 커밋할 수 있고, 커밋값 Y=PC(r_y, y)를 취득하기 위해 y와 r_y를 커밋 기법(예컨대, 동형 암호화)으로 커밋할 수 있다.
또한, 일부 실시형태에서, 노드 A는, 대칭 키 쌍 a*PK_B=abG의 제1 키를 생성하고, 다른 키 a*PK_A=aaG를 생성한다. 노드 A는, 제1 키 abG를 사용하여 암호화 E(abG, r_t∥t)를 생성하는 (r_t∥t)를 암호화하고, 키 aaG를 사용하여 암호화 E(aaG, r_y∥y)를 생성하는 (r_y∥y)를 암호화한다. 도 3a와 도 3b는 이 예를 따를 수 있다. 노드 A에 의해 암호화 E(abG, r_t∥t)를 취득하는 것 대신, 사용자 A는 트랜잭션 정보와 함께 r_t와 t를 노드 B에 전송할 수 있으며, 이로 인해 노드 B는 대칭 키 쌍 b*PK_A=baG의 제2 키를 생성하여 (r_t∥t)를 암호화할 수 있다. 노드 B는 노드 A가 검증할 수 있도록 그 암호화 결과를 노드 A에 전송한다. 도 4a와 도 4b는 이 예를 따를 수 있다. 본 개시내용의 다양한 예에서 연결이 사용되지만, 입력, 출력, 또는 다른 파라미터의 대체 조합을 암호화 기능 또는 다른 동작을 위해 사용할 수 있다.
또한, 일부 실시형태에서, 노드 A는, PC(rt, t)의 값과 PC(ry, y)의 값이 각각 유효 범위 내에 있는 경우 블록체인 노드에 증명하기 위해 범위 증명 RP를 생성할 수 있다. 예를 들어, PC(rt, t)의 유효한 값을 가지기 위해, 트랜잭션 금액 t는 유효 범위 [0, 2n-1] 내에 있을 수 있고, PC(ry, y)의 유효 값을 가지기 위해, 변경 y는 유효 범위 [0, 2n-1] 내에 있을 수 있다. 하나의 실시형태에서, 노드 A는, 블록 증명 기술을 사용하여 블록체인 노드(예를 들면, 합의 노드)에 대한 (r_y, Y, Y, r_t, t, T)에 관련된 범위 증명 RP를 생성하여 나중 단계에서 범위 증명에 기초하여 트랜잭션 금액 t와 변경 y가 유효 범위 내에 있는지를 검증할 수 있다. 범위 증명은, 예를 들어, 불릿프루프(Bulletproofs), 보로민 링 서명(Borromean ring signature) 등을 포함할 수 있다.
단계(202)에서, 노드 A는, (예컨대, 블록체인으로부터 분리된 보안 채널을 통해) 트랜잭션 정보를 노드 B에 전송할 수 있다. 전송된 트랜잭션 정보는, 예를 들어, 커밋값 T=PC(r_t, t), 커밋값 Y=PC(r_y, y), 암호화 E(abG, r_t∥t), 암호화 E(aaG, r_y∥y), 범위 증명 RP 등을 포함할 수 있다. 노드 B가 계정 A로 다시 전송된 변경을 고려하지 않을 수 있기 때문에, 커밋값 Y=PC(r_y, y), 암호화 E(aaG, r_y∥y), 및 범위 증명 RP는 선택적일 수 있다. 일부 실시형태에서, 블록체인으로부터 분리된 통신 채널을 통한 전송은, 트랜잭션 정보가 블록체인에 기록되는 것을 방지할 수 있고, 전송자 노드 A 및 수신자 노드 B 이외의 노드가 트랜잭션 정보를 취득하는 것을 방지할 수 있다. E(aaG, r_y∥y)는, 노드 B에 전송될 필요가 없을 수도 있지만, 변경이 계정 A로 리턴되어야 하므로 사용자 A가 변경 y를 소모하도록 나중에 필요할 수도 있다.
단계(203)에서, 노드 B는 난수 r_t, 트랜잭션 금액 t, 및 커밋값 T를 검증할 수 있다. 일부 실시형태에서, 노드 B는, 대칭 키 쌍 b*PK_A=baG의 제2 키를 생성하고 제2 키 baG를 사용하여 암호화 E(abG, r_t∥t)를 복호화하여 r_t∥t를 취득할 수 있다. r_t∥t로부터, 노드 B는, r_t와 t를 취득할 수 있고, 이어서 r_t와 t가 T=PC(r_t, t)와 일치하는지를 검증할 수 있다. 즉, 노드 B는, 페데르센 커밋 알고리즘에 따라 난수 r_t와 트랜잭션 금액 t에 기초하여 커밋값 T = PC(r_t, t)가 정확한지를 검증할 수 있다. 일치/검증이 실패하면, 노드 B는, 트랜잭션을 거부할 수 있고, 일치/검증이 성공하면, 노드 B는 단계(204)에서 트랜잭션에 서명하여 노드 A에 응답할 수 있다.
단계(204)에서, 노드 B는, 트랜잭션을 사용자 B의 개인 키 SK_B로 서명하여 서명 SIGB를 생성할 수 있다. 서명은, 타원 곡선 디지털 서명 알고리즘(Elliptic Curve Digital Signature Algorithm: ECDSA)과 같은 디지털 서명 알고리즘(Digital Signature Algorithm: DSA)을 따를 수 있으며, 서명의 수신자는 서명자의 공개 키로 그 서명을 검증하여 서명된 데이터를 인증할 수 있다. 서명 SIGB는, 수신자 노드 B가 트랜잭션에 동의함을 나타낸다.
단계(205)에서, 노드 B는, 서명된 트랜잭션을 서명 SIGB를 갖는 노드 A로 다시 전송할 수 있다.
단계(206)에서, SIGB가 성공적으로 검증되지 않으면, 노드 A는 트랜잭션을 거부할 수 있다. SIGB가 성공적으로 검증되면 노드 A는 트랜잭션을 사용자 A의 개인 키 SK_A로 서명하여 서명 SIGA를 생성할 수 있다. 마찬가지로, 서명은 디지털 서명 알고리즘(DSA)을 따를 수 있다. 하나의 실시형태에서, 노드 A는, (E(abG, r_t∥t); E(aaG, r_y∥y); Y; T; RP)를 사용자 A의 개인 키로 서명하여 서명 SIGA를 생성할 수 있다.
단계(207)에서, 노드 A는, 트랜잭션을 블록체인에 제출하여, 블록체인 노드가 트랜잭션을 검증하게 하고 트랜잭션을 블록체인에 추가할지를 결정하게 할 수 있다. 하나의 실시형태에서, 노드 A는, 트랜잭션 (E(abG, r_t∥t); E(aaG, r_y∥y); Y; T; RP; SIGA; SIGB)를 노드 1을 통해 블록체인에 제출하여 트랜잭션을 실행할 수 있다. 트랜잭션은, 추가 파라미터를 포함할 수 있고 또는 열거된 파라미터 모두를 포함하지 않을 수 있다. 트랜잭션은, 검증을 위해 블록체인 내의 하나 이상의 노드들(예컨대, 합의 노드)에 브로드캐스팅될 수 있다. 검증이 성공하면, 트랜잭션이 블록체인에 추가된다. 검증이 실패하면, 트랜잭션은 블록체인에 추가되지 않도록 거부된다.
단계(208 내지 213)에서, 하나 이상의 노드(예컨대, 합의 노드)는 제출된 트랜잭션의 서명, 범위 증명, 및 다른 정보를 검증한다. 검증이 실패하면, 노드는 트랜잭션을 거부한다. 검증이 성공하면, 노드는 트랜잭션을 허용하고, 사용자 A의 계정과 사용자 B의 계정을 개별적으로 업데이트한다.
일부 실시형태에서, 트랜잭션을 실행하기 위해, 트랜잭션 정보는 다양한 블록체인 노드에 의해 검증될 수 있다. 트랜잭션 정보는 트랜잭션 어드레스 TXID, 서명(들),입력, 및 출력을 포함할 수 있다. TXID는 트랜잭션 콘텐츠의 해시를 포함할 수 있다. 서명은 전송자와 수신자에 의한 암호 키 서명을 포함할 수 있다. 입력은, 블록체인에 있는 전송자 계정의 어드레스, 트랜잭션에 대하여 전송자의 블록체인 계정으로부터 탭핑된 하나 이상의 자산 등을 포함할 수 있다. 출력은, 블록체인에 있는 수신자의 계정의 어드레스, 수신자 자산(들)의 자산 유형(들),수신자 자산(들)의 커밋값(들) 등을 포함할 수 있다. 입력과 출력은 표 형식의 색인 정보를 포함할 수 있다. 일부 실시형태에서, NoteID 값의 가치는 "TXID + 출력의 자산 인덱스"일 수 있다.
일부 실시형태에서, 블록체인의 하나 이상의 노드는, 제출된 트랜잭션 (E(abG, r_t∥t); E(aaG, r_y∥y), Y, T; RP; SIGA; SIGB)를 검출할 수 있다.
단계(208)에서, 노드는, 반 이중 소모 메커니즘(anti-double-spending mechanism) 또는 반 재생 공격 메커니즘(anti-replay-attack mechanism)을 사용하여 트랜잭션이 실행되었는지를 검증할 수 있다. 트랜잭션이 실행된 경우, 노드는 트랜잭션을 거부할 수 있고, 그렇지 않으면, 상기 방법은 단계(209)로 진행할 수 있다.
단계(209)에서, 노드는 (예컨대, 각각 A의 공개 키 및 B의 공개 키에 기초하여) 서명 SIGA 및 SIGB를 체크할 수 있다. 서명 중 하나라도 정확하지 않으면, 노드는 트랜잭션을 거부할 수 있고, 그렇지 않으면, 상기 방법은 단계(210)로 진행할 수 있다.
선택적 단계(210)에서, 노드는 자산 유형들이 일관성이 있는지를 검증할 수 있다. 예를 들어, 노드는, A_1 내지 A_2에 대한 NoteType의 자산 유형이 트랜잭션 금액 t의 자산 유형(들)과 일관성이 있는지를 검증할 수 있다. 자산 유형들 중 임의의 것이 일관성이 없다면, 노드는 트랜잭션을 거부할 수 있고, 그렇지 않으면, 상기 방법은 단계(211)로 진행할 수 있다. 일부 실시형태에서, 지갑의 원래 자산 유형이 교환 비율에 따라 다른 유형으로 변환되었을 수 있으며, 이 단계는 건너뛸 수 있다.
단계(211)에서, 노드는, 범위 증명 RP를 체크하여 PC(rt, t)의 값과 PC(ry, y)의 값을 유효성 확인할 수 있다. 하나의 실시형태에서, 노드는, 범위 증명 RP를 체크하여 트랜잭션 금액 t가 0 이상이고 변경 y가 0 이상인지를 검증할 수 있다. 검증이 실패하면, 노드는 트랜잭션을 거부할 수 있고, 그렇지 않으면, 상기 방법은 단계(212)로 진행할 수 있다.
단계(212)에서, 노드는 트랜잭션의 입력과 출력이 일관성이 있는지를 체크할 수 있다. 체크가 실패하면, 노드는 트랜잭션을 거부할 수 있고, 그렇지 않으면, 상기 방법은 단계(213)로 진행할 수 있다.
단계(213)에서, 노드는 노드 A가 트랜잭션을 위해 탭핑된 자산(들)을 갖는지를 검증할 수 있다. 하나의 실시형태에서, 노드는, 계정 A에 대응하는 정보와 같이 블록체인에 저장된 정보에 기초하여 이러한 검증을 수행할 수 있다. 정보는 모든 자산의 이전 트랜잭션 정보를 포함할 수 있다. 따라서, 노드는 계정 A가 트랜잭션에 대한 트랜잭션 자산을 갖는지를 결정할 수 있다. 결정이 아니오인 경우, 노드는 트랜잭션을 거부할 수 있고, 그렇지 않으면, 상기 방법은 단계(214)로 진행할 수 있다.
단계(214)에서, 노드는 계정 A와 계정 B를 업데이트할 수 있다. 예를 들어, 노드는 트랜잭션 금액 t의 트랜잭션 자산을 계정 A로부터 제거하고 이를 계정 B에 추가할 수 있다. 동형 특성에 기초하여, Y = PC(r_y, y)이고 노드 1은 r_y를 알고 블록체인으로부터 커밋값 Y에 액세스할 수 있으므로, 노드 1은 Y를 복호화하여 자산 값 y를 취득하고 이를 계정 A에 리턴할 수 있다. 노드 2는, 단계(202)에서 노드 1로부터 난수 r_t를 취득하고, 블록체인으로부터 커밋값 T를 취득할 수 있다. 따라서, 노드 2는 T를 복호화하여 자산 값 t를 취득하고 이를 계정 B에 추가할 수 있다.
일례로, 계정 A와 계정 B에 대한 업데이트 후에, 계정 A는 탭핑된 자산에 대한 변경 y를 수신하고 탭핑되지 않은 자산을 수신한다. 예를 들어 탭핑된 자산은 변경 y가 계정 A로 리턴되면서 트랜잭션에서 제거된 A_1 및 A_2일 수 있으며, 탭핑되지 않은 자산은 A_3,... A_m이다. 계정 B는, 트랜잭션 금액 t를 수신하고, 자신의 초기 자산(예컨대, B_1,...,B_n)을 수신한다. 계정 A와 계정 B의 자산은 다음과 같을 수 있다.
A의 계정(계정 A)에 대하여, 업데이트된 자산은 아래와 같이 표현된다:
(Y=PC(r_y, y), E(aaG, r_y||y)),
...
(A_m=PC(r_{a_m}, a_m), E(K_A, r_{a_m}||a_m)),
B의 계정(계정 B)에 대하여, 업데이트된 자산은 아래와 같이 표현된다:
(B_1=PC(r_{b_1}, b_1), E(K_B, r_{b_1}||b_1)),
(B_2=PC(r_{b_2}, b_2), E(K_B, r_{b_2}||b_2)),
...
(B_n=PC(r_{b_n}, b_n), E(K_B, r_{b_n}||b_n)),
(T=PC(r_t, t), E(abG, r_t||t)).
본 개시내용은 노드 A/사용자 A 및 노드 B/사용자 B를 사용하여 전송자와 수신자 각각을 예시하고 있지만, 전송자와 수신자는 동일한 노드/사용자일 수 있다. 예를 들어, 트랜잭션의 변경 y(계정 A의 탭핑된 총 자산에서 트랜잭션 금액을 뺀 값)는 트랜잭션의 전송자에게 다시 전송될 수 있다. 따라서, 본 명세서에서 설명하는 바와 같이 노드 B에 의해 수행되는 다양한 단계는, 대안적으로, 노드 A에 의해 수행될 수 있다.
도 3a는 본 발명의 다양한 실시형태에 따라 정보 보호를 위한 예시적인 방법(300)의 흐름도를 도시한다. 방법(300)은, 도 1의 시스템(100)의 하나 이상의 구성요소(예컨대, 노드 A, 노드 1, 노드 A와 노드 1의 조합)에 의해 구현될 수 있다. 방법(300)은, 시스템 또는 장치(예컨대, 프로세서)가 방법(300)을 수행하게 하도록 프로세서에 의해 실행될 명령어를 저장하는 비일시적 컴퓨터 판독가능 저장 매체(예컨대, 메모리) 및 프로세서를 포함하는 시스템 또는 장치(예컨대, 컴퓨터, 서버)에 의해 구현될 수 있다. 이하에서 제시하는 방법(300)의 동작은 예시하기 위한 것이다. 구현예에 따라, 예시적인 방법(300)은 다양한 순서 또는 병렬로 수행되는 추가 단계, 더 적은 단계, 또는 대체 단계를 포함할 수 있다.
블록(301)은 적어도 트랜잭션 블라인딩 인자 r_t를 포함하는 커밋 기법에 의해 트랜잭션의 트랜잭션 금액 t를 커밋하여, 트랜잭션 커밋값 T를 취득하는 단계를 포함한다. 예를 들어, 전술한 바와 같이, T=PC(r_t, t)이다. 일부 실시형태에서, 커밋 기법은, 적어도 트랜잭션 블라인드 인자 r_t에 기초하며 트랜잭션 금액 t가 커밋값인 페데르센 커밋을 포함한다.
블록(302)은 대칭 키 쌍의 제1 키를 생성하는 단계를 포함한다. 예를 들어, 전술한 바와 같이, SK_A = a, PK_B = bG이고, 제1 키는 a*PK_B = abG일 수 있다. 일부 실시형태에서, 제1 키와 제2 키를 생성하는 단계는, 디피-헬만(DH) 키 교화 프로토콜에 따라 트랜잭션의 전송자의 개인 키 SK_A 및 수신자의 공개 키 PK_B에 기초하여 제1 키와 제2 키를 생성하는 단계를 포함한다.
블록(303)은 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t의 조합(예컨대, 연결)을 제1 키로 암호화하는 단계를 포함한다. 예를 들어, 전술한 바와 같이, 노드 A는, 제1 키 abG를 사용하여 (r_t∥t)를 암호화할 수 있고, 이는 암호화 E(abG, r_t∥t)를 제공하게 된다.
블록(304)은 트랜잭션 커밋값 T와 암호화된 조합을 수신자 노드에 대한 트랜잭션의 수신자와 연관된 수신자 노드에 송신하여 트랜잭션을 검증하는 단계를 포함한다. 일부 실시형태에서, 트랜잭션 커밋값 T와 암호화된 조합을 수신자 노드에 대한 트랜잭션의 수신자와 연관된 수신자 노드에 송신하여 트랜잭션을 검증하는 단계는, 트랜잭션 커밋값 T와 암호화된 조합을 트랜잭션의 수신자와 연관된 수신자 노드에 송신하여, 수신자 노드가, 수신자의 개인 키 SK_B와 전송자의 개인 키 PK_A에 기초하여 대칭 키 쌍의 제2 키를 생성하게 하고, 암호화된 조합을 수신자 노드에 의해 생성된 제2 키로 복호화하여 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t를 취득하게 하고, 적어도 트랜잭션 커밋값 T, 트랜잭션 블라인딩 인자 r_t, 및 트랜잭션 금액 t에 기초하여 트랜잭션을 검증하게 하는 단계를 포함한다. 예를 들어, 단계(203)를 참조한다. 예를 들어, 전술한 바와 같이, 수신자 노드는, 제2 키 b*PK_A=baG를 독립적으로 생성할 수 있다. 키 abG와 baG는 대칭적이며 동일하다. 즉, 수신자 노드는 전송자 노드로부터 제1 키 abG를 수신하지 못할 수 있고, 대신, 수신자 노드는 제2 키 baG를 abG와 동등한 것으로서 독립적으로 생성한다.
일부 실시형태에서, 수신자 노드가 적어도 트랜잭션 커밋값 T, 트랜잭션 블라인딩 인자 r_t, 및 트랜잭션 금액 t에 기초하여 트랜잭션을 검증하게 하는 단계는, 수신자 노드가, 트랜잭션 블라인딩 인자 r_t에 기초하여 트랜잭션 커밋값 T가 트랜잭션 금액 t의 커밋 기법과 일치하지 않는다는 결정에 응답하여, 트랜잭션을 거부하게 하고, 트랜잭션 블라인딩 인자 r_t에 기초하여 트랜잭션 커밋값 T가 트랜잭션 금액 t의 커밋 기법과 일치한다는 결정에 응답하여, 트랜잭션에 서명하여 수신자 서명 SIGB를 생성하여 전송자와 연관된 전송자 노드에 리턴하게 함으로써 트랜잭션을 승인하는 단계를 포함한다.
일부 실시형태에서, 암호화된 조합을 수신자와 연관된 수신자 노드에 송신하는 단계(블록(304)) 전에, 방법은, 트랜잭션의 변경 y를 커밋 기법으로 커밋하여 변경 커밋값 Y를 취득하는 단계로서, 커밋 기법이 적어도 변경 블라인딩 인자 r_y를 포함하고, 변경 y는 트랜잭션 금액 t보다 적은 트랜잭션에 대하여 탭핑된 전송자의 하나 이상의 자산인, 상기 변경 커밋값 Y를 취득하는 단계; 전송자의 개인 키 SK_A와 전송자의 공개 키 PK_A에 기초하여 다른 키를 생성하는 단계; 및 변경 블라인딩 인자 r_y와 변경 y의 다른 조합을 그 다른 키로 암호화하는 단계를 더 포함한다. 예를 들어, 전술한 바와 같이, Y=PC(r_y, y), PK_A=a이고, 노드 A는, 키 a*PK_A=aaG를 생성할 수 있고, 키 aaG를 사용하여 (r_y∥y)를 암호화할 수 있으며, 이는 암호화 E(aaG, r_y∥y)를 갖게 한다.
일부 실시형태에서, 방법은, 수신자 서명 SIGB의 수신에 응답하여, 트랜잭션에 서명하여 전송자 서명 SIGA를 생성함으로써 트랜잭션을 승인하는 단계; 및 암호화된 조합, 암호화된 다른 조합, 트랜잭션 커밋값 T, 변경 커밋값 Y, 전송자 서명 SIGA, 및 수신자 서명 SIGB를 포함하는 트랜잭션을, 블록체인 네트워크의 하나 이상의 노드가 트랜잭션을 검증하도록 그 하나 이상의 노드에 제출하는 단계를 더 포함한다. 더 많은 세부 사항은 단계(208 내지 213)를 참조하여 전술하였다.
일부 실시형태에서, 암호화된 조합, 암호화된 다른 조합, 트랜잭션 커밋값 T, 변경 커밋값 Y, 전송자 서명 SIGA, 및 수신자 서명 SIGB를 포함하는 트랜잭션을, 블록체인 네트워크의 하나 이상의 노드가 트랜잭션을 검증하도록 그 하나 이상의 노드에 제출하는 단계는, 암호화된 조합, 암호화된 다른 조합, 트랜잭션 커밋값 T, 변경 커밋값 Y, 전송자 서명 SIGA, 및 수신자 서명 SIGB를 포함하는 트랜잭션을 블록체인 네트워크의 하나 이상의 노드에 제출하여, 트랜잭션의 성공적 검증에 응답하여, 그 하나 이상의 노드가, 트랜잭션 금액 t를 수신자에게 발행하게 하고, 트랜잭션을 위해 탭핑된 하나 이상의 자산을 제거하게 하고, 변경 y를 전송자에게 발행하게 하는 단계를 포함한다. 더 많은 세부 사항은 단계(214)를 참조하여 전술하였다.
도 3b는 본 발명의 다양한 실시형태에 따라 정보 보호를 위한 예시적인 방법(400)의 흐름도를 도시한다. 방법(400)은, 도 1의 시스템(100)의 하나 이상의 구성요소(예컨대, 노드 B, 노드 2, 노드 B와 노드 2의 조합 등)에 의해 구현될 수 있다. 방법(400)은, 시스템 또는 장치(예컨대, 프로세서)가 방법(400)을 수행하도록 프로세서에 의해 실행될 명령어를 저장하는 비일시적 컴퓨터 판독가능 저장 매체(예컨대, 메모리)와 프로세서를 포함하는 시스템 또는 장치(예컨대, 컴퓨터, 서버)에 의해 구현될 수 있다. 이하에서 제시하는 방법(400)의 동작은 예시하기 위한 것이다. 구현예에 따라, 예시적인 방법(400)은 다양한 순서 또는 병렬로 수행되는 추가 단계, 더 적은 단계, 또는 대체 단계를 포함할 수 있다.
블록(401)은 대칭 키 쌍의 제1 키로 암호화된 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t의 조합을 취득하고, 트랜잭션 커밋값 T를 취득하는 단계를 포함한다. 트랜잭션 금액 t을 트랜잭션의 전송자와 연관된 전송자 노드에 의해 커밋 기법으로 커밋하여 트랜잭션 커밋값 T를 취득하는 단계를 포함하고, 커밋 기법은 적어도 트랜잭션 블라인딩 인자 r_t를 포함한다. 일부 실시형태에서, 제1 키는, 트랜잭션의 전송자의 개인 키 SK_A와 트랜잭션의 수신자의 공개 키 PK_B에 기초하여 전송자 노드에 의해 생성된다.
블록(402)은 대칭 키 쌍의 제2 키를 생성하는 단계를 포함한다. 일부 실시형태에서, 대칭 키 쌍의 제2 키를 생성하는 단계는, 디피-헬만(DH) 키 교환 프로토콜에 따라 트랜잭션의 수신자의 개인 키 SK_B 및 전송자의 공개 키 PK_A에 기초하여 대칭 키 쌍의 제2 키를 생성하는 단계를 포함한다.
블록(403)은 취득된 조합을 수신자와 연관된 수신자 노드에 의해 생성된 제2 키로 복호화하여 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t를 취득하는 단계를 포함한다.
블록(404)은 적어도 트랜잭션 커밋값 T, 트랜잭션 블라인딩 인자 r_t, 및 트랜잭션 금액 t에 기초하여 트랜잭션을 검증하는 단계를 포함한다.
노드 A에서 (r_t||t)와 같은 조합((r_t, t))을 암호화하는 것 대신, 노드 A는, 도 4a와 도 4b를 참조하여 후술하는 바와 같이, (r_t, t)를 노드 B에 송신하여, 노드 B가 조합((r_t, t))을 암호화하게 할 수 있다. 도 1 내지 도 3b의 다른 단계와 설명은 도 4a와 도 4b에 유사하게 적용될 수 있다.
도 4a는 본 발명의 다양한 실시형태에 따라 정보 보호를 위한 예시적인 방법(440)의 흐름도를 도시한다. 방법(440)은, 도 1의 시스템(100)의 하나 이상의 구성요소(예컨대, 노드 A, 노드 1, 노드 A와 노드 1의 조합)에 의해 구현될 수 있다. 방법(440)은, 시스템 또는 장치(예컨대, 프로세서)가 방법(440)을 수행하도록 프로세서에 의해 실행될 명령어를 저장하는 비일시적 컴퓨터 판독가능 저장 매체(예컨대, 메모리)와 프로세서를 포함하는 시스템 또는 장치(예컨대, 컴퓨터, 서버)에 의해 구현될 수 있다. 이하에서 제시하는 방법(440)의 동작은 예시하기 위한 것이다. 구현예에 따라, 예시적인 방법(440)은 다양한 순서 또는 병렬로 수행되는 추가 단계, 더 적은 단계, 또는 대체 단계를 포함할 수 있다.
블록(441)은 적어도 트랜잭션 블라인딩 인자 r_t를 포함하는 커밋 기법으로 트랜잭션의 트랜잭션 금액 t를 커밋하여 트랜잭션 커밋값 T를 취득하는 단계를 포함한다.
블록(442)은 트랜잭션 금액 t, 트랜잭션 블라인딩 인자 r_t, 및 트랜잭션 커밋값 T를 수신자 노드에 대한 트랜잭션의 수신자와 연관된 수신자 노드에 전송하여, 트랜잭션을 검증하고 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t를 대칭 키 쌍의 제2 키로 암호화하는 단계를 포함한다. 예를 들어, 노드 B는 T=PC(r_t, t)인지를 검증할 수 있고, 노드 B는 조합을 키(baG)로 암호화하여 E(baG, r_t||t)를 취득할 수 있다.
블록(443)은 수신자 노드로부터 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t의 암호화된 조합(예컨대, E(baG, r_t||t))을 취득하는 단계를 포함한다.
블록(444)은 대칭 키 쌍의 제1 키를 생성하여 암호화된 조합을 복호화하여 트랜잭션을 검증하는 단계를 포함한다. 예를 들어, 노드 A는, 제1 키(abG)를 생성하여 E(baG, r_t||t)를 복호화하고 r_t 및 t가 정확한지를 검증할 수 있다. 일단 r_t와 t가 전송자 노드와 수신자 노드에 의해 상호 검증되면, 트랜잭션을 검증을 위해 블록체인에 제출할 수 있다.
도 4b는 본 발명의 다양한 실시형태에 따라 정보 보호를 위한 예시적인 방법(450)의 흐름도를 도시한다. 방법(450)은, 도 1의 시스템(100)의 하나 이상의 구성요소(예컨대, 노드 B, 노드 2, 노드 B와 노드 2의 조합 등)에 의해 구현될 수 있다. 방법(450)은, 시스템 또는 장치(예컨대, 프로세서)가 방법(450)을 수행하도록 프로세서에 의해 실행될 명령어를 저장하는 비일시적 컴퓨터 판독가능 저장 매체(예컨대, 메모리)와 프로세서를 포함하는 시스템 또는 장치(예컨대, 컴퓨터, 서버)에 의해 구현될 수 있다. 이하에서 제시하는 방법(450)의 동작은 예시하기 위한 것이다. 구현예에 따라, 예시적인 방법(450)은 다양한 순서 또는 병렬로 수행되는 추가 단계, 더 적은 단계, 또는 대체 단계를 포함할 수 있다.
블록(451)은 트랜잭션의 트랜잭션 금액 t, 트랜잭션 블라인딩 인자 r_t, 및 트랜잭션 커밋값 T를 취득하는 단계를 포함한다.
블록(452)은 취득된 트랜잭션 금액 t, 취득된 트랜잭션 블라인딩 인자 r_t, 및 취득된 트랜잭션 커밋값 T에 기초하여 트랜잭션을 검증하는 단계를 포함한다.
블록(453)은 트랜잭션을 성공적으로 검증한 것에 응답하여, 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t를 대칭 키 쌍의 제2 키로 암호화하여 암호화된 조합(예컨대, E(baG, r_t||t))을 취득하는 단계를 포함한다.
블록(454)은 암호화된 조합을 트랜잭션의 전송자와 연관된 전송자 노드에 송신하는 단계를 포함한다.
도시한 바와 같이, 트랜잭션 금액에 대한 프라이버시를, 연산 기술의 다양한 개선을 통해 보호할 수 있다. 예를 들어, 계정 구조는, 하나 이상의 필드, 예를 들어, 자산 값의 페데르센 커밋에 연관된 제1 필드(예컨대, 제1 필드는 PC(r_{a_i}, a_i)이고, i는 1 내지 m임), 및 자산 값 및 페데르센 커밋에 대한 난수에 연관된 제2 필드(예컨대, 제2 필드는 E(...)임)를 포함한다. 제1 필드와 제2 필드는 트랜잭션 단계에서도 사용되며 블록체인에 저장된다.
다른 일례로, 대칭 키는, 각각의 페데르센 커밋의 난수와 대응하는 자산 값을 암호화하고, 암호화된 난수와 자산 값을 포함하는 트랜잭션을 블록체인에 저장하는 데 사용된다. 이 방식은, 이러한 난수의 국부적 관리를 제거하고, 분산되고 일관된 블록체인 저장에 기초하야 보안을 촉진한다.
또한, DH 키 교환 프로토콜 또는 대체 프로토콜에서는, 직접 통신이 없더라도, 사용자 A와 사용자 B는, 커밋의 난수와 자산 값을 암호화/복호화하기 위한 공통 비밀(대칭 키 쌍 abG 및 baG)을 공유한다. 대칭 키 쌍은 해당 계정의 공개-개인 키 쌍으로부터 취득되므로, 암호화 키를 더 추가하지 않고서 블록체인을 통해 커밋을 위한 난수를 효과적으로 저장할 수 있다.
또 다른 일례로, 범위 증명은, 트랜잭션의 선재(pre-existing) 자산이 새로운 자산 및 트랜잭션에 대하여 균형을 이루고 각각의 새로운 자산의 값이 합리적인 범위에 있음을 증명하는 데 사용된다. 또한, 트랜잭션 당사자는, 커밋된 값이 트랜잭션 자산의 값과 일치하는지를 검증하도록 보안형 블록체인 외부 채널을 통해 커밋된 난수와 새로운 자산의 값을 수신자에게 송신할 수 있다.
이처럼, 손상의 위험이 없고 추가 키 관리의 부담을 초래하지 않으면서 페데르센 커밋의 난수를 편리하게 관리할 수 있다. 따라서, 트랜잭션 프라이버시를 철저히 보호할 수 있으며, 트랜잭션 금액을 비밀로 유지할 수 있다.
본 명세서에서 설명하는 기술은 하나 이상의 전용 연산 장치에 의해 구현된다. 전용 연산 장치는, 기술을 구현하도록 유선 및/또는 프로그램 로직을 통합하는, 데스크톱 컴퓨터 시스템, 서버 컴퓨터 시스템, 휴대용 컴퓨터 시스템, 핸드헬드 장치, 네트워킹 장치, 또는 다른 임의의 장치 또는 장치들의 조합일 수 있다. 연산 장치(들)는 일반적으로 운영 체제 소프트웨어에 의해 제어되고 조정된다. 종래의 운영 체제는, 실행할 컴퓨터 프로세스를 제어 및 스케줄링하고, 메모리 관리를 수행하고, 파일 시스템, 네트워킹, I/O 서비스를 제공하며, 특히, 그래픽 사용자 인터페이스("GUI")와 같은 사용자 인터페이스 기능을 제공한다.
도 5는 본 명세서에서 설명하는 임의의 실시형태가 구현될 수 있는 컴퓨터 시스템(500)을 도시하는 블록도이다. 시스템(500)은, 본 명세서에서 설명하는 노드들 중 임의의 노드에서 구현될 수 있고, 정보 보호 방법을 위한 대응 단계를 수행하도록 구성될 수 있다. 컴퓨터 시스템(500)은, 정보를 통신하기 위한 버스(502) 또는 다른 통신 메커니즘, 정보를 처리하도록 버스(502)와 결합된 하나 이상의 하드웨어 프로세서(들)(504)를 포함한다. 하드웨어 프로세서(들)(504)는, 예를 들어, 하나 이상의 범용 마이크로프로세서일 수 있다.
컴퓨터 시스템(500)은, 또한, 프로세서(들)(504)에 의해 실행될 정보와 명령어를 저장하도록 버스(502)에 결합된, RAM, 캐시, 및/또는 다른 동적 저장 장치와 같은 메인 메모리(506)를 포함한다. 메인 메모리(506)는, 또한, 프로세서(들)(504)에 의해 실행될 명령어의 실행 동안 임시 변수 또는 다른 중간 정보를 저장하기 위해 사용될 수 있다. 이러한 명령어는, 프로세서(들)(504)가 액세스할 수 있는 저장 매체에 저장되는 경우, 컴퓨터 시스템(500)을 명령어에서 특정된 동작을 수행하도록 맞춤화된 전용 기계로 되게 한다. 컴퓨터 시스템(500)은, 프로세서(들)(504)에 대한 정적 정보와 명령어를 저장하도록 버스(502)에 결합된 ROM(508) 또는 다른 정적 저장 장치를 더 포함한다. 제공되어 정보와 명령어를 저장하도록 자기 디스크, 광 디스크, 또는 USB 섬 드라이브(플래시 드라이브) 등의 저장 장치(510)가 제공되어 버스(502)에 결합된다.
컴퓨터 시스템(500)은, 컴퓨터 시스템과 함께 컴퓨터 시스템(500)을 전용 기계로 되게 하거나 전용 기계로 되도록 프로그래밍하는 맞춤형 유선 로직, 하나 이상의 ASIC 또는 FPGA, 펌웨어, 및/또는 프로그램 로직을 사용하여 본 명세서에서 설명하는 기술을 구현할 수 있다. 일 실시형태에 따르면, 본 명세서에서 설명하는 동작, 방법, 및 프로세스는, 메인 메모리(506)에 포함된 하나 이상의 명령어의 하나 이상의 시퀀스를 실행하는 프로세서(들)(504)에 응답하여 컴퓨터 시스템(500)에 의해 수행된다. 이러한 명령어는, 저장 장치(510) 등의 다른 저장 매체로부터 메인 메모리(506)로 판독될 수 있다. 메인 메모리(506)에 포함된 명령어들의 시퀀스들의 실행은, 프로세서(들)(504)가 본 명세서에서 설명하는 프로세스 단계들을 수행하게 한다. 대체 실시형태에서는, 소프트웨어 명령어 대신 또는 소프트웨어 명령어와 함께 유선 회로를 사용할 수 있다.
메인 메모리(506), ROM(508), 및/또는 저장 장치(510)는 비일시적 저장 매체를 포함할 수 있다. "비일시적 매체"라는 용어 및 이와 유사한 용어는, 본 명세서에서 사용되는 바와 같이, 기계가 특정 방식으로 동작하게 하는 데이터 및/또는 명령어를 저장하는 매체를 가리키며, 매체는 일시적 신호를 배제한다. 이러한 비일시적 매체는 비휘발성 매체 및/또는 휘발성 매체를 포함할 수 있다. 비휘발성 매체는, 예를 들어, 저장 장치(510)와 같은 광학 또는 자기 디스크를 포함한다. 휘발성 매체는 메인 메모리(506)와 같은 동적 메모리를 포함한다. 비일시적 매체의 일반적인 형태는, 예를 들어, 플로피 디스크, 플렉시블 디스크, 하드 디스크, 솔리드 스테이트 드라이브, 자기 테이프, 또는 다른 임의의 자기 데이터 저장 매체, CD-ROM, 다른 임의의 광 데이터 저장 매체, 구멍 패턴이 있는 임의의 물리적 매체, RAM, PROM, EPROM, FLASH-EPROM, NVRAM, 다른 임의의 메모리 칩이나 카트리지, 및 이들의 네트워크화된 버전을 포함한다.
컴퓨터 시스템(500)은, 또한, 버스(502)에 결합된 네트워크 인터페이스(518)를 포함한다. 네트워크 인터페이스(518)는, 하나 이상의 로컬 네트워크에 접속된 하나 이상의 네트워크 링크에 양방향 데이터 통신 결합을 제공한다. 예를 들어, 네트워크 인터페이스(518)는, 종합 정보 통신망(ISDN) 카드, 케이블 모뎀, 위성 모뎀 또는 대응하는 유형의 전화선에 데이터 통신 접속을 제공하는 모뎀일 수 있다. 다른 일례로, 네트워크 인터페이스(518)는, 호환성 LAN(또는 WAN과 통신하기 위한 WAN 구성요소)에 데이터 통신 접속을 제공하기 위한 근거리 통신망(LAN) 카드일 수 있다. 무선 링크도 구현될 수 있다. 이러한 임의의 구현예에서, 네트워크 인터페이스(518)는, 다양한 유형의 정보를 나타내는 디지털 데이터 스트림을 반송하는 전기 신호, 전자기 신호, 또는 광 신호를 전송 및 수신한다.
컴퓨터 시스템(500)은, 네트워크(들), 네트워크 링크, 및 네트워크 인터페이스(518)를 통해 메시지를 전송할 수 있고 프로그램 코드를 포함하는 데이터를 수신할 수 있다. 인터넷 예에서, 서버는, 인터넷, ISP, 로컬 네트워크, 및 네트워크 인터페이스(518)를 통해 애플리케이션 프로그램에 대한 요청 코드를 송신할 수 있다.
수신된 코드는, 수신될 때 및/또는 나중에 실행하도록 저장 장치(510) 또는 다른 비휘발성 저장 장치에 저장될 때 프로세서(들)(504)에 의해 실행될 수 있다.
전술한 섹션들에서 설명한 프로세스, 방법, 및 알고리즘의 각각은, 하나 이상의 컴퓨터 시스템 또는 컴퓨터 하드웨어를 포함하는 컴퓨터 프로세서에 의해 실행되는 코드 모듈로 구체화될 수 있고, 이러한 코드 모듈에 의해 완전히 또는 부분적으로 자동화될 수 있다. 프로세스와 알고리즘은 애플리케이션 특정 회로에서 부분적으로 또는 전체적으로 구현될 수 있다.
전술한 다양한 특징과 프로세스는, 서로 독립적으로 사용될 수 있고, 또는 다양한 방식으로 결합될 수 있다. 모든 가능한 조합과 부조합은 본 개시내용의 범위 내에 속한다. 또한, 일부 구현예에서는 소정의 방법 또는 프로세스 블록이 생략될 수 있다. 또한, 본 명세서에서 설명하는 방법과 프로세스는 임의의 특정 시퀀스로 한정되지 않으며, 이에 관련된 블록 또는 상태는 적절한 다른 시퀀스로 수행될 수 있다. 예를 들어, 설명한 블록 또는 상태는 특정하게 개시된 순서와는 다른 순서로 수행될 수 있고, 또는 다수의 블록 또는 상태가 단일 블록 또는 상태로 결합될 수 있다. 예시적인 블록들 또는 상태들은, 직렬, 병렬, 또는 다른 임의의 방식으로 수행될 수 있다. 블록 또는 상태는, 개시된 예시적인 실시형태에 추가되거나 이러한 실시형태로부터 제거될 수 있다. 본 명세서에서 설명하는 예시적인 시스템과 구성요소는 설명과는 다르게 구성될 수 있다. 예를 들어, 개시된 예시적인 실시형태와 비교하여 요소를 추가, 제거, 또는 재배치할 수 있다.
본 명세서에서 설명하는 예시적인 방법의 다양한 동작은 알고리즘에 의해 적어도 부분적으로 수행될 수 있다. 알고리즘은, 메모리(예컨대, 전술한 비일시적 컴퓨터 판독가능 저장 매체)에 저장된 프로그램 코드 또는 명령어로 구성될 수 있다. 이러한 알고리즘은 기계 학습 알고리즘을 포함할 수 있다. 일부 실시형태에서, 기계 학습 알고리즘은, 기능을 수행하도록 컴퓨터를 명시적으로 프로그래밍하지 않을 수도 있지만, 그 기능을 수행하는 예측 모델을 형성하도록 훈련 데이터로부터 학습할 수 있다.
본 명세서에서 설명하는 예시적인 방법들의 다양한 동작은, 관련 동작을 수행하도록 (예컨대, 소프트웨어에 의해) 일시적으로 구성된 또는 영구적으로 구성된 하나 이상의 프로세서에 의해 적어도 부분적으로 수행될 수 있다. 일시적으로 또는 영구적으로 구성되어 있는지 여부에 관계없이, 이러한 프로세서는, 본 명세서에서 설명하는 하나 이상의 동작 또는 기능을 수행하도록 동작하는 프로세서 구현 엔진을 구성할 수 있다.
유사하게, 본 명세서에서 설명하는 방법들은 적어도 부분적으로 프로세서로 구현될 수 있으며, 특정 프로세서 또는 프로세서들은 하드웨어의 일례이다. 예를 들어, 방법의 동작들 중 적어도 일부는 하나 이상의 프로세서 또는 프로세서 구현 엔진에 의해 수행될 수 있다. 또한, 하나 이상의 프로세서는, "클라우드 연산" 환경 또는 "서비스형 소프트웨어"(software as a service: SaaS)에서의 관련 동작의 성능을 지원하도록 또한 동작할 수 있다. 예를 들어, 적어도 일부 동작은 (프로세서를 포함하는 기계의 예로서) 컴퓨터들의 그룹에 의해 수행될 수 있으며, 이들 동작은, 네트워크(예컨대, 인터넷)를 통해 및 하나 이상의 적절한 인터페이스(예컨대, 애플리케이션 프로그램 인터페이스(Application Program Interface: API))를 통해 액세스될 수 있다.
소정의 동작의 성능은, 프로세서들 간에 분산될 수 있어서, 단일 시스템 내에 상주할 뿐만 아니라 다수의 기계에 걸쳐 배치될 수도 있다. 일부 예시적인 실시형태에서, 프로세서 또는 프로세서 구현 엔진은, 단일 지리적 위치에(예컨대, 가정 환경, 사무실 환경, 또는 서버 팜 내) 위치할 수 있다. 다른 예시적인 실시형태에서, 프로세서 또는 프로세서 구현 엔진은 다수의 지리적 위치에 걸쳐 분산될 수 있다.
본 명세서 전체에 걸쳐, 복수의 인스턴스는, 단일 인스턴스로 설명된 구성요소, 동작, 또는 구조를 구현할 수 있다. 하나 이상의 방법의 개별적인 동작이 별개의 동작으로서 도시되고 설명되었지만, 하나 이상의 개별적인 동작은, 동시에 수행될 수 있고, 동작들이 도시된 순서대로 수행될 필요는 없다. 예시적인 구성에서 별개의 구성요소로서 제시된 구조와 기능은 결합된 구조 또는 구성요소로서 구현될 수 있다. 유사하게, 단일 구성요소로서 제시된 구조와 기능은 별개의 구성요소들로서 구현될 수 있다. 이러한 변형, 수정, 추가, 개선, 및 다른 변형, 수정, 추가, 개선은, 본 명세서의 대상 범위 내에 있다.
특정한 예시적인 실시형태를 참조하여 대상의 개요를 설명하였지만, 본 개시내용의 더욱 넓은 범위를 벗어나지 않으면서 이들 실시형태에 대한 다양한 수정과 변경을 행할 수 있다. 대상의 이러한 실시형태들은, 본 명세서의 범위를, 사실 하나보다 많은 개시내용이 있지만 임의의 단일 개시내용이나 개념으로 자발적으로 제한하려 하지 않고서 단지 편의상 본 명세서에서 "발명"이라는 용어로 개별적으로 또는 총괄적으로 칭할 수 있다. 상세한 설명은 제한적인 의미로 받아들여서는 안 되며, 다양한 실시형태의 범위는, 이러한 청구항들에 부여되는 균등물의 전체 범위와 함께 청구범위에 의해서만 정의된다.
Claims (23)
- 정보 보호를 위한 컴퓨터 구현 방법으로서,
적어도 트랜잭션 블라인딩 인자(transaction blinding factor) r_t에 기초하여 커밋 기법(commitment scheme)에 의해 트랜잭션의 트랜잭션 금액 t를 커밋하여 트랜잭션 커밋값 T를 취득하는 단계;
대칭 키 쌍의 제1 키를 생성하는 단계;
상기 트랜잭션 블라인딩 인자 r_t와 상기 트랜잭션 금액 t의 조합을 상기 제1 키로 암호화하는 단계;
적어도 변경 블라인딩 인자 r_y에 기초하여 상기 커밋 기법에 의해 상기 트랜잭션의 변경 y를 커밋하여 변경 커밋값 Y를 취득하는 단계로서, 상기 변경 y는 상기 트랜잭션 금액 t를 뺀 트랜잭션을 위해 탭핑되는 상기 트랜잭션의 전송자의 하나 이상의 자산인, 상기 변경 커밋값 Y를 취득하는 단계;
상기 전송자의 개인 키 SK_A 및 상기 전송자의 공개 키 PK_A에 기초하여 다른 키를 생성하는 단계;
상기 변경 블라인딩 인자 r_y와 상기 변경 y의 다른 조합을 상기 다른 키로 암호화하는 단계;
상기 트랜잭션 커밋값 T와 암호화된 조합을, 검증을 위해 상기 트랜잭션의 수신자와 연관된 수신자 노드에 송신하는 단계;
상기 수신자가 상기 트랜잭션을 승인하였음을 나타내는 수신자 서명 SIGB을 수신하는 단계;
상기 트랜잭션에 서명하여 전송자 서명 SIGA를 생성함으로써 상기 트랜잭션을 승인하는 단계; 및
상기 암호화된 조합, 암호화된 다른 조합, 상기 트랜잭션 커밋값 T, 상기 변경 커밋값 Y, 상기 전송자 서명 SIGA, 및 상기 수신자 서명 SIGB를 포함하는 상기 트랜잭션의 업데이트된 버전을, 검증을 위해 블록체인 네트워크의 하나 이상의 노드에 제출하는 단계를 포함하는, 정보 보호를 위한 컴퓨터 구현 방법. - 제1항에 있어서, 상기 제1 키를 생성하는 단계는, 디피-헬만(DH; Diffie-Hellman) 키 교환 프로토콜에 따라 상기 트랜잭션의 상기 전송자의 상기 개인 키 SK_A 및 상기 수신자의 공개 키 PK_B에 기초하여 상기 제1 키를 생성하는 단계를 포함하는, 정보 보호를 위한 컴퓨터 구현 방법.
- 제1항에 있어서, 상기 커밋 기법은, 상기 트랜잭션 금액 t가 커밋값이면서 적어도 상기 트랜잭션 블라인딩 인자 r_t에 기초하는 페데르센 커밋(Pedersen commitment)을 포함하는, 정보 보호를 위한 컴퓨터 구현 방법.
- 제1항에 있어서, 상기 트랜잭션 블라인딩 인자 r_t와 상기 트랜잭션 금액 t의 상기 조합은, 상기 트랜잭션 블라인딩 인자 r_t와 상기 트랜잭션 금액 t의 연결(concatenation)을 포함하는, 정보 보호를 위한 컴퓨터 구현 방법.
- 제1항에 있어서, 상기 트랜잭션 커밋값 T와 상기 암호화된 조합을, 검증을 위해 상기 트랜잭션의 수신자와 연관된 상기 수신자 노드에 송신하는 단계는, 상기 트랜잭션 커밋값 T와 상기 암호화된 조합을 상기 트랜잭션의 수신자와 연관된 상기 수신자 노드에 송신하여, 상기 수신자 노드가,
상기 수신자의 개인 키 SK_B 및 상기 트랜잭션의 상기 전송자의 상기 공개 키 PK_A에 기초하여 상기 대칭 키 쌍의 제2 키를 생성하게 하고,
상기 암호화된 조합을 상기 수신자 노드에 의해 생성된 상기 제2 키로 복호화하여 상기 트랜잭션 블라인딩 인자 r_t와 상기 트랜잭션 금액 t를 취득하게 하고, 그리고
적어도 상기 트랜잭션 커밋값 T, 상기 트랜잭션 블라인딩 인자 r_t, 및 상기 트랜잭션 금액 t에 기초하여 상기 트랜잭션을 검증하게 하는 단계를 포함하는, 정보 보호를 위한 컴퓨터 구현 방법. - 제5항에 있어서, 상기 수신자 노드가 적어도 상기 트랜잭션 커밋값 T, 상기 트랜잭션 블라인딩 인자 r_t, 및 상기 트랜잭션 금액 t에 기초하여 상기 트랜잭션을 검증하게 하는 단계는, 상기 수신자 노드가,
상기 트랜잭션 블라인딩 인자 r_t에 기초하여 상기 트랜잭션 커밋값 T가 상기 트랜잭션 금액 t의 상기 커밋 기법과 일관되지 않는다는 결정에 응답하여, 상기 트랜잭션을 거부하게 하거나;
상기 트랜잭션 블라인딩 인자 r_t에 기초하여 상기 트랜잭션 커밋값 T가 상기 트랜잭션 금액 t의 상기 커밋 기법과 일관된다는 결정에 응답하여, 상기 트랜잭션에 서명하여 상기 수신자 서명 SIGB를 생성하여 상기 전송자와 연관된 전송자 노드에 리턴함으로써, 상기 트랜잭션을 승인하게 하는 단계를 포함하는, 정보 보호를 위한 컴퓨터 구현 방법. - 삭제
- 삭제
- 제1항에 있어서, 상기 암호화된 조합, 상기 암호화된 다른 조합, 상기 트랜잭션 커밋값 T, 상기 변경 커밋값 Y, 상기 전송자 서명 SIGA, 및 상기 수신자 서명 SIGB를 포함하는 상기 트랜잭션의 업데이트된 버전을, 검증을 위해 상기 블록체인 네트워크의 상기 하나 이상의 노드에 제출하는 단계는,
상기 암호화된 조합, 상기 암호화된 다른 조합, 상기 트랜잭션 커밋값 T, 상기 변경 커밋값 Y, 상기 전송자 서명 SIGA, 및 상기 수신자 서명 SIGB를 포함하는 상기 트랜잭션의 업데이트된 버전을 상기 블록체인 네트워크의 상기 하나 이상의 노드에 제출하여, 상기 트랜잭션의 성공적 검증에 응답하여, 상기 하나 이상의 노드가, 상기 트랜잭션 금액 t를 상기 수신자에 발행하게 하고, 상기 트랜잭션을 위해 탭핑된 상기 하나 이상의 자산을 제거하게 하고, 상기 변경 y를 상기 전송자에 발행하게 하는 단계를 포함하는, 정보 보호를 위한 컴퓨터 구현 방법. - 프로세서가 동작을 수행하도록 상기 프로세서에 의해 실행될 명령어를 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 동작은,
적어도 트랜잭션 블라인딩 인자 r_t에 기초하여 커밋 기법에 의해 트랜잭션의 트랜잭션 금액 t를 커밋하여 트랜잭션 커밋값 T를 취득하는 단계;
대칭 키 쌍의 제1 키를 생성하는 단계;
상기 트랜잭션 블라인딩 인자 r_t와 상기 트랜잭션 금액 t의 조합을 상기 제1 키로 암호화하는 단계; 및
적어도 변경 블라인딩 인자 r_y에 기초하여 상기 커밋 기법에 의해 상기 트랜잭션의 변경 y를 커밋하여 변경 커밋값 Y를 취득하는 단계로서, 상기 변경 y는 상기 트랜잭션 금액 t를 뺀 트랜잭션을 위해 탭핑되는 상기 트랜잭션의 전송자의 하나 이상의 자산인, 상기 변경 커밋값 Y를 취득하는 단계;
상기 전송자의 개인 키 SK_A 및 상기 전송자의 공개 키 PK_A에 기초하여 다른 키를 생성하는 단계;
상기 변경 블라인딩 인자 r_y와 상기 변경 y의 다른 조합을 상기 다른 키로 암호화하는 단계;
상기 트랜잭션 커밋값 T와 암호화된 조합을, 검증을 위해 상기 트랜잭션의 수신자와 연관된 수신자 노드에 송신하는 단계;
상기 수신자가 상기 트랜잭션을 승인하였음을 나타내는 수신자 서명 SIGB을 수신하는 단계;
상기 트랜잭션에 서명하여 전송자 서명 SIGA를 생성함으로써 상기 트랜잭션을 승인하는 단계; 및
상기 암호화된 조합, 암호화된 다른 조합, 상기 트랜잭션 커밋값 T, 상기 변경 커밋값 Y, 상기 전송자 서명 SIGA, 및 상기 수신자 서명 SIGB를 포함하는 상기 트랜잭션의 업데이트된 버전을, 검증을 위해 블록체인 네트워크의 하나 이상의 노드에 제출하는 단계를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체. - 제10항에 있어서, 상기 제1 키를 생성하는 단계는, 디피-헬만(DH) 키 교환 프로토콜에 따라 상기 트랜잭션의 상기 전송자의 상기 개인 키 SK_A 및 상기 수신자의 공개 키 PK_B에 기초하여 상기 제1 키를 생성하는 단계를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
- 제10항에 있어서, 상기 커밋 기법은, 상기 트랜잭션 금액 t가 커밋값이면서 적어도 상기 트랜잭션 블라인딩 인자 r_t에 기초하는 페데르센 커밋을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
- 제10항에 있어서, 상기 트랜잭션 블라인딩 인자 r_t와 상기 트랜잭션 금액 t의 상기 조합은, 상기 트랜잭션 블라인딩 인자 r_t와 상기 트랜잭션 금액 t의 연결(concatenation)을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
- 제10항에 있어서, 상기 트랜잭션 커밋값 T와 상기 암호화된 조합을, 검증을 위해 상기 트랜잭션의 수신자와 연관된 상기 수신자 노드에 송신하는 단계는, 상기 트랜잭션 커밋값 T와 상기 암호화된 조합을 상기 트랜잭션의 수신자와 연관된 상기 수신자 노드에 송신하여, 상기 수신자 노드가,
상기 수신자의 개인 키 SK_B 및 상기 트랜잭션의 상기 전송자의 상기 공개 키 PK_A에 기초하여 상기 대칭 키 쌍의 제2 키를 생성하게 하고;
상기 암호화된 조합을 상기 수신자 노드에 의해 생성된 상기 제2 키로 복호화하여 상기 트랜잭션 블라인딩 인자 r_t와 상기 트랜잭션 금액 t를 취득하게 하고; 그리고
적어도 상기 트랜잭션 커밋값 T, 상기 트랜잭션 블라인딩 인자 r_t, 및 상기 트랜잭션 금액 t에 기초하여 상기 트랜잭션을 검증하게 하는 단계를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체. - 제14항에 있어서, 상기 수신자 노드가 적어도 상기 트랜잭션 커밋값 T, 상기 트랜잭션 블라인딩 인자 r_t, 및 상기 트랜잭션 금액 t에 기초하여 상기 트랜잭션을 검증하게 하는 단계는, 상기 수신자 노드가,
상기 트랜잭션 블라인딩 인자 r_t에 기초하여 상기 트랜잭션 커밋값 T가 상기 트랜잭션 금액 t의 커밋 기법과 일관되지 않는다는 결정에 응답하여, 상기 트랜잭션을 거부하게 하거나;
상기 트랜잭션 블라인딩 인자 r_t에 기초하여 상기 트랜잭션 커밋값 T가 상기 트랜잭션 금액 t의 커밋 기법과 일관된다는 결정에 응답하여, 상기 트랜잭션에 서명하여 상기 수신자 서명 SIGB를 생성하여 상기 전송자와 연관된 전송자 노드에 리턴함으로써, 상기 트랜잭션을 승인하게 하는 단계를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체. - 삭제
- 삭제
- 제10항에 있어서, 상기 암호화된 조합, 상기 암호화된 다른 조합, 상기 트랜잭션 커밋값 T, 상기 변경 커밋값 Y, 상기 전송자 서명 SIGA, 및 상기 수신자 서명 SIGB를 포함하는 상기 트랜잭션의 업데이트된 버전을, 검증울 위해 상기 블록체인 네트워크의 하나 이상의 노드에 제출하는 단계는,
상기 암호화된 조합, 상기 암호화된 다른 조합, 상기 트랜잭션 커밋값 T, 상기 변경 커밋값 Y, 상기 전송자 서명 SIGA, 및 상기 수신자 서명 SIGB를 포함하는 상기 트랜잭션의 업데이트된 버전을 상기 블록체인 네트워크의 상기 하나 이상의 노드에 제출하여, 상기 트랜잭션의 성공적 검증에 응답하여, 상기 하나 이상의 노드가, 상기 트랜잭션 금액 t를 상기 수신자에 발행하게 하고, 상기 트랜잭션을 위해 탭핑된 상기 하나 이상의 자산을 제거하게 하고, 상기 변경 y를 상기 전송자에 발행하게 하는 단계를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체. - 프로세서와 상기 프로세서에 결합된 비일시적 컴퓨터 판독가능 저장 매체를 포함하는 정보 보호를 위한 시스템으로서, 상기 저장 매체는, 상기 시스템이 동작을 수행하도록 상기 프로세서에 의해 실행될 명령어를 저장하고, 상기 동작은,
적어도 트랜잭션 블라인딩 인자 r_t에 기초하여 커밋 기법에 의해 트랜잭션의 트랜잭션 금액 t를 커밋하여 트랜잭션 커밋값 T를 취득하는 단계;
대칭 키 쌍의 제1 키를 생성하는 단계;
상기 트랜잭션 블라인딩 인자 r_t와 상기 트랜잭션 금액 t의 조합을 상기 제1 키로 암호화하는 단계;
적어도 변경 블라인딩 인자 r_y에 기초하여 상기 커밋 기법에 의해 상기 트랜잭션의 변경 y를 커밋하여 변경 커밋값 Y를 취득하는 단계로서, 상기 변경 y는 상기 트랜잭션 금액 t를 뺀 트랜잭션을 위해 탭핑되는 상기 트랜잭션의 전송자의 하나 이상의 자산인, 상기 변경 커밋값 Y를 취득하는 단계;
상기 전송자의 개인 키 SK_A 및 상기 전송자의 공개 키 PK_A에 기초하여 다른 키를 생성하는 단계;
상기 변경 블라인딩 인자 r_y와 상기 변경 y의 다른 조합을 상기 다른 키로 암호화하는 단계;
상기 트랜잭션 커밋값 T와 암호화된 조합을, 검증을 위해 상기 트랜잭션의 수신자와 연관된 수신자 노드에 송신하는 단계;
상기 수신자가 상기 트랜잭션을 승인하였음을 나타내는 수신자 서명 SIGB을 수신하는 단계;
상기 트랜잭션에 서명하여 전송자 서명 SIGA를 생성함으로써 상기 트랜잭션을 승인하는 단계; 및
상기 암호화된 조합, 암호화된 다른 조합, 상기 트랜잭션 커밋값 T, 상기 변경 커밋값 Y, 상기 전송자 서명 SIGA, 및 상기 수신자 서명 SIGB를 포함하는 상기 트랜잭션의 업데이트된 버전을, 검증을 위해 블록체인 네트워크의 하나 이상의 노드에 제출하는 단계를 포함하는, 정보 보호를 위한 시스템. - 정보 보호를 위한 컴퓨터 구현 방법으로서,
트랜잭션의 수신자와 연관된 수신자 노드에서, 상기 트랜잭션의 전송자와 연관된 전송자 노드로부터, 상기 전송자 노드에 의해 대칭 키 쌍의 제1 키로 암호화된 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t의 조합을 취득하고, 그리고 상기 수신자 노드에서 트랜잭션 커밋값 T를 취득하는 단계로서, 상기 트랜잭션 금액 t는 상기 트랜잭션 커밋값 T를 취득하도록 상기 전송자 노드에서 적어도 상기 트랜잭션 블라인딩 인자 r_t에 기초하여 커밋 기법으로 커밋되는, 상기 트랜잭션 커밋값 T를 취득하는 단계;
상기 수신자 노드에서, 상기 대칭 키 쌍의 제2 키를 생성하는 단계;
상기 수신자 노드에서, 상기 수신자 노드에 의해 생성된 상기 제2 키로, 취득된 상기 조합을 복호화하여, 상기 트랜잭션 블라인딩 인자 r_t와 상기 트랜잭션 금액 t를 취득하는 단계; 및
상기 수신자 노드에서, 적어도 상기 트랜잭션 커밋값 T, 상기 트랜잭션 블라인딩 인자 r_t, 및 상기 트랜잭션 금액 t에 기초하여 상기 트랜잭션을 검증하는 단계;
적어도 상기 트랜잭션 블라인딩 인자 r_t에 기초하여 상기 트랜잭션 커밋값 T가 상기 트랜잭션 금액 t를 커밋하는 상기 커밋 기법과 일관된다는 결정에 응답하여, 상기 수신자 노드에서, 상기 트랜잭션에 서명하여 수신자 서명 SIGB를 생성함으로써 상기 트랜잭션을 승인하는 단계; 및
상기 수신자 노드에서, 상기 수신자 서명 SIGB를 상기 전송자 노드에 전송하여, 상기 전송자 노드가 상기 트랜잭션의 업데이트된 버전 내의 상기 암호화된 조합 및 상기 트랜잭션 커밋값 T와 함께 상기 수신자 서명 SIGB를, 검증을 위해 블록체인 네트워크의 하나 이상의 노드에 제출하도록 하는 단계를 포함하는, 정보 보호를 위한 컴퓨터 구현 방법. - 제20항에 있어서,
상기 대칭 키 쌍의 제2 키를 생성하는 단계는, 디피-헬만(DH) 키 교환 프로토콜에 따라 상기 수신자의 개인 키 SK_B 및 상기 전송자의 공개 키 PK_A에 기초하여 상기 대칭 키 쌍의 제2 키를 생성하는 단계를 포함하고; 그리고
상기 커밋 기법은, 상기 트랜잭션 금액 t가 커밋값이면서 적어도 상기 트랜잭션 블라인딩 인자 r_t에 기초하는 페데르센 커밋을 포함하는, 정보 보호를 위한 컴퓨터 구현 방법. - 프로세서가 동작을 수행하도록 상기 프로세서에 의해 실행될 명령어를 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 동작은,
트랜잭션의 수신자와 연관된 수신자 노드에서, 상기 트랜잭션의 전송자와 연관된 전송자 노드로부터, 상기 전송자 노드에 의해 대칭 키 쌍의 제1 키로 암호화된 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t의 조합을 취득하고, 그리고 상기 수신자 노드에서 트랜잭션 커밋값 T를 취득하는 단계로서, 상기 트랜잭션 금액 t는 상기 트랜잭션 커밋값 T를 취득하도록 상기 전송자 노드에서 적어도 상기 트랜잭션 블라인딩 인자 r_t에 기초하여 커밋 기법으로 커밋되는, 상기 트랜잭션 커밋값 T를 취득하는 단계;
상기 수신자 노드에서, 상기 대칭 키 쌍의 제2 키를 생성하는 단계;
상기 수신자 노드에서, 상기 수신자 노드에 의해 생성된 상기 제2 키로, 취득된 상기 조합을 복호화하여, 상기 트랜잭션 블라인딩 인자 r_t와 상기 트랜잭션 금액 t를 취득하는 단계; 및
상기 수신자 노드에서, 적어도 상기 트랜잭션 커밋값 T, 상기 트랜잭션 블라인딩 인자 r_t, 및 상기 트랜잭션 금액 t에 기초하여 상기 트랜잭션을 검증하는 단계;
적어도 상기 트랜잭션 블라인딩 인자 r_t에 기초하여 상기 트랜잭션 커밋값 T가 상기 트랜잭션 금액 t를 커밋하는 상기 커밋 기법과 일관된다는 결정에 응답하여, 상기 수신자 노드에서, 상기 트랜잭션에 서명하여 수신자 서명 SIGB를 생성함으로써 상기 트랜잭션을 승인하는 단계; 및
상기 수신자 노드에서, 상기 수신자 서명 SIGB를 상기 전송자 노드에 전송하여, 상기 전송자 노드가 상기 트랜잭션의 업데이트된 버전 내의 상기 암호화된 조합 및 상기 트랜잭션 커밋값 T와 함께 상기 수신자 서명 SIGB를, 검증을 위해 블록체인 네트워크의 하나 이상의 노드에 제출하도록 하는 단계를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체. - 프로세서와 상기 프로세서에 결합된 비일시적 컴퓨터 판독가능 저장 매체를 포함하는 정보 보호를 위한 시스템으로서, 상기 저장 매체는, 상기 시스템이 동작을 수행하도록 상기 프로세서에 의해 실행될 명령어를 포함하고, 상기 동작은,
트랜잭션의 수신자와 연관된 수신자 노드에서, 상기 트랜잭션의 전송자와 연관된 전송자 노드로부터, 상기 전송자 노드에 의해 대칭 키 쌍의 제1 키로 암호화된 트랜잭션 블라인딩 인자 r_t와 트랜잭션 금액 t의 조합을 취득하고, 그리고 상기 수신자 노드에서 트랜잭션 커밋값 T를 취득하는 단계로서, 상기 트랜잭션 금액 t는 상기 트랜잭션 커밋값 T를 취득하도록 상기 전송자 노드에서 적어도 상기 트랜잭션 블라인딩 인자 r_t에 기초하여 커밋 기법으로 커밋되는, 상기 트랜잭션 커밋값 T를 취득하는 단계;
상기 수신자 노드에서, 상기 대칭 키 쌍의 제2 키를 생성하는 단계;
상기 수신자 노드에서, 상기 수신자 노드에 의해 생성된 상기 제2 키로, 취득된 상기 조합을 복호화하여, 상기 트랜잭션 블라인딩 인자 r_t와 상기 트랜잭션 금액 t를 취득하는 단계; 및
상기 수신자 노드에서, 적어도 상기 트랜잭션 커밋값 T, 상기 트랜잭션 블라인딩 인자 r_t, 및 상기 트랜잭션 금액 t에 기초하여 상기 트랜잭션을 검증하는 단계;
적어도 상기 트랜잭션 블라인딩 인자 r_t에 기초하여 상기 트랜잭션 커밋값 T가 상기 트랜잭션 금액 t를 커밋하는 상기 커밋 기법과 일관된다는 결정에 응답하여, 상기 수신자 노드에서, 상기 트랜잭션에 서명하여 수신자 서명 SIGB를 생성함으로써 상기 트랜잭션을 승인하는 단계; 및
상기 수신자 노드에서, 상기 수신자 서명 SIGB를 상기 전송자 노드에 전송하여, 상기 전송자 노드가 상기 트랜잭션의 업데이트된 버전 내의 상기 암호화된 조합 및 상기 트랜잭션 커밋값 T와 함께 상기 수신자 서명 SIGB를, 검증을 위해 블록체인 네트워크의 하나 이상의 노드에 제출하도록 하는 단계를 포함하는, 정보 보호를 위한 시스템.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/117552 WO2019072276A2 (en) | 2018-11-27 | 2018-11-27 | INFORMATION PROTECTION SYSTEM AND METHOD |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200066257A KR20200066257A (ko) | 2020-06-09 |
KR102170346B1 true KR102170346B1 (ko) | 2020-10-28 |
Family
ID=66100013
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020197011444A KR102170346B1 (ko) | 2018-11-27 | 2018-11-27 | 정보 보호를 위한 시스템 및 방법 |
Country Status (18)
Country | Link |
---|---|
US (2) | US11277389B2 (ko) |
EP (2) | EP3549303B1 (ko) |
JP (1) | JP6724249B2 (ko) |
KR (1) | KR102170346B1 (ko) |
CN (1) | CN109937557B (ko) |
AU (1) | AU2018327218B2 (ko) |
BR (1) | BR112019007727A2 (ko) |
CA (1) | CA3040601C (ko) |
ES (1) | ES2875581T3 (ko) |
MX (1) | MX2019004202A (ko) |
MY (1) | MY193900A (ko) |
PH (1) | PH12019500556A1 (ko) |
PL (1) | PL3549303T3 (ko) |
RU (1) | RU2719423C1 (ko) |
SG (1) | SG11201902778UA (ko) |
TW (1) | TWI706275B (ko) |
WO (1) | WO2019072276A2 (ko) |
ZA (1) | ZA201902470B (ko) |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201805633D0 (en) * | 2018-04-05 | 2018-05-23 | Nchain Holdings Ltd | Computer implemented method and system |
CN111768304A (zh) | 2018-08-06 | 2020-10-13 | 阿里巴巴集团控股有限公司 | 区块链交易方法及装置、电子设备 |
WO2019072275A2 (en) | 2018-11-27 | 2019-04-18 | Alibaba Group Holding Limited | SYSTEM AND METHOD FOR INFORMATION PROTECTION |
MY188126A (en) | 2018-11-27 | 2021-11-23 | Advanced New Technologies Co Ltd | System and method for information protection |
JP6908700B2 (ja) | 2018-11-27 | 2021-07-28 | アドバンスド ニュー テクノロジーズ カンパニー リミテッド | 情報保護のためのシステム及び方法 |
US10700850B2 (en) | 2018-11-27 | 2020-06-30 | Alibaba Group Holding Limited | System and method for information protection |
SG11201902778UA (en) | 2018-11-27 | 2019-05-30 | Alibaba Group Holding Ltd | System and method for information protection |
MX2019004543A (es) | 2018-11-27 | 2019-11-11 | Alibaba Group Holding Ltd | Sistema y metodo para la proteccion de informacion. |
US10764029B1 (en) * | 2019-04-02 | 2020-09-01 | Carey Patrick Atkins | Asymmetric Encryption Algorithm |
KR102193552B1 (ko) * | 2019-04-26 | 2020-12-23 | 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. | 리플레이 공격 방지 인증 프로토콜 |
GB2588072A (en) | 2019-05-24 | 2021-04-21 | Nchain Holdings Ltd | Malleability of transactions for inclusion in a blockchain |
GB201907344D0 (en) | 2019-05-24 | 2019-07-10 | Nchain Holdings Ltd | Multi-input transactions |
GB2587773A (en) * | 2019-05-24 | 2021-04-14 | Nchain Holdings Ltd | Streaming portions of data over a side channel |
CN110399735A (zh) * | 2019-06-21 | 2019-11-01 | 深圳壹账通智能科技有限公司 | 加密数据大小关系证明方法、装置、设备及存储介质 |
CN112150281B (zh) * | 2019-06-28 | 2023-09-26 | 北京国盾量子信息技术有限公司 | 一种数字货币的交易方法、装置及系统 |
CN111030821B (zh) * | 2019-08-27 | 2022-07-12 | 杭州云象网络技术有限公司 | 一种基于双线性映射技术的联盟链的加密方法 |
CN113570460A (zh) * | 2019-08-30 | 2021-10-29 | 创新先进技术有限公司 | 在区块链中并发执行交易的方法和装置 |
CN110545279A (zh) * | 2019-09-05 | 2019-12-06 | 国网区块链科技(北京)有限公司 | 兼具隐私和监管功能的区块链交易方法、装置及系统 |
CN112465500A (zh) | 2019-09-09 | 2021-03-09 | 本田技研工业株式会社 | 用于在区块链内保护私钥交易的系统和方法 |
CN110781503B (zh) * | 2019-09-18 | 2022-05-17 | 深圳壹账通智能科技有限公司 | 数据调用方法、装置及计算机可读存储介质 |
JP7372527B2 (ja) * | 2019-09-26 | 2023-11-01 | 富士通株式会社 | 通信中継プログラム、中継装置、及び通信中継方法 |
CN112769548B (zh) * | 2019-11-05 | 2022-09-20 | 深圳市迅雷网络技术有限公司 | 一种区块链数值信息传输方法、系统、装置及计算机介质 |
CN111475849B (zh) * | 2019-11-08 | 2024-03-12 | 支付宝(杭州)信息技术有限公司 | 基于区块链账户的隐私数据查询方法及装置 |
CN110933045A (zh) * | 2019-11-08 | 2020-03-27 | 中国电子科技网络信息安全有限公司 | 一种基于承诺的区块链数字资产隐私保护方法 |
CN113055178B (zh) * | 2019-12-27 | 2022-08-16 | 深圳市迅雷网络技术有限公司 | 区块链系统及数值信息传输方法、系统、装置、介质 |
US12099997B1 (en) | 2020-01-31 | 2024-09-24 | Steven Mark Hoffberg | Tokenized fungible liabilities |
CN111340489B (zh) * | 2020-02-21 | 2023-11-14 | 数据通信科学技术研究所 | 可监管的交易接收者保护方法和装置 |
CN111523894A (zh) * | 2020-05-06 | 2020-08-11 | 杭州复杂美科技有限公司 | 数据延时公布方法、设备和存储介质 |
CN111600703B (zh) * | 2020-05-12 | 2023-08-04 | 京东科技信息技术有限公司 | 基于sm2的签名方法、系统、电子设备及存储介质 |
CN111709738B (zh) * | 2020-05-18 | 2023-08-01 | 杜晓楠 | 区块链系统中隐藏交易金额的方法、计算机可读存储介质和区块链系统 |
CN111936994A (zh) * | 2020-06-08 | 2020-11-13 | 支付宝实验室(新加坡)有限公司 | 用于海关清关的基于区块链的文档注册 |
EP3837617B1 (en) | 2020-06-08 | 2023-08-02 | Alipay Labs (Singapore) Pte. Ltd. | Distributed storage of custom clearance data |
WO2020169122A2 (en) | 2020-06-08 | 2020-08-27 | Alipay Labs (singapore) Pte. Ltd. | Blockchain-based import custom clearance data processing |
EP3841507B1 (en) | 2020-06-08 | 2023-04-26 | Alipay Labs (Singapore) Pte. Ltd. | User management of blockchain-based custom clearance service platform |
CN111989707B (zh) * | 2020-06-08 | 2024-04-16 | 支付宝实验室(新加坡)有限公司 | 管理基于区块链的海关清关服务的用户权限 |
EP3841491B1 (en) | 2020-06-08 | 2023-08-02 | Alipay Labs (Singapore) Pte. Ltd. | Blockchain-based smart contract pools |
CN113014384B (zh) * | 2021-03-16 | 2022-07-15 | 平安付科技服务有限公司 | 基于dh密钥交换算法的数据比较方法、装置、计算机设备及存储介质 |
US11849032B2 (en) * | 2021-05-14 | 2023-12-19 | Verizon Patent And Licensing Inc. | Systems and methods for blockchain-based secure key exchange |
US11748333B2 (en) | 2021-06-30 | 2023-09-05 | Dropbox, Inc. | Verifying data consistency using verifiers in a content management system for a distributed key-value database |
CN113706150B (zh) * | 2021-10-27 | 2022-02-08 | 深圳前海微众银行股份有限公司 | 一种区块确认方法及装置 |
CN114565382A (zh) * | 2022-03-01 | 2022-05-31 | 汪泽希 | 一种交易账户匿名支付方法及系统 |
JP2024022912A (ja) | 2022-08-08 | 2024-02-21 | 富士通株式会社 | 情報秘匿化プログラム、情報秘匿化方法及び情報管理装置 |
CN115955315B (zh) * | 2022-12-27 | 2024-08-23 | 浙江吉利控股集团有限公司 | 环机密交易的签名验证方法、系统、设备及可读存储介质 |
CN115809482B (zh) * | 2023-02-01 | 2023-05-16 | 上海金仕达软件科技股份有限公司 | 基于随机数混淆的数据聚合计算方法、装置、介质及设备 |
CN116389164B (zh) * | 2023-05-26 | 2023-09-12 | 建信金融科技有限责任公司 | 数据的检测方法及装置 |
CN118316605B (zh) * | 2024-06-07 | 2024-11-01 | 浪潮软件科技有限公司 | 一种多方安全通信方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120209790A1 (en) * | 2005-02-24 | 2012-08-16 | Michael Gregory Szydlo | Process for verifiably communicating risk characteristics of an investment portfolio |
US20160358165A1 (en) * | 2015-06-08 | 2016-12-08 | Blockstream Corporation | Cryptographically concealing amounts transacted on a ledger while preserving a network's ability to verify the transaction |
Family Cites Families (134)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4926480A (en) | 1983-08-22 | 1990-05-15 | David Chaum | Card-computer moderated systems |
US7107246B2 (en) * | 1998-04-27 | 2006-09-12 | Esignx Corporation | Methods of exchanging secure messages |
JP2000207466A (ja) | 1999-01-18 | 2000-07-28 | Nippon Telegr & Teleph Corp <Ntt> | 電子商取引文書を媒介とした電子商取引方法および電子商取引手段、ならびにプログラムを記録した記録媒体。 |
JP2000299683A (ja) * | 1999-02-10 | 2000-10-24 | Nippon Telegr & Teleph Corp <Ntt> | 複数公開鍵保存方法、その装置およびそのプログラム記録媒体 |
AU2001250824A1 (en) | 2000-03-10 | 2001-09-24 | Absolutefuture, Inc. | Method and system for coordinating secure transmission of information |
US7716484B1 (en) | 2000-03-10 | 2010-05-11 | Rsa Security Inc. | System and method for increasing the security of encrypted secrets and authentication |
WO2001080479A1 (en) | 2000-04-14 | 2001-10-25 | Wu Wen | Delayed commitment scheme to prevent attacks based on compromised certificates |
EP1205889A1 (en) | 2000-11-10 | 2002-05-15 | TELEFONAKTIEBOLAGET LM ERICSSON (publ) | Returning of change in an electronic payment system |
US7181017B1 (en) | 2001-03-23 | 2007-02-20 | David Felsher | System and method for secure three-party communications |
US7509498B2 (en) | 2001-06-29 | 2009-03-24 | Intel Corporation | Digital signature validation |
GB2378282A (en) | 2001-07-31 | 2003-02-05 | Hewlett Packard Co | Automated multivariate negotiation using convertable undeniable signatures |
WO2003036901A2 (en) | 2001-10-19 | 2003-05-01 | Matsushita Electric Industrial Co., Ltd. | Device authentication system and device authentication method |
JP2007510947A (ja) | 2003-11-03 | 2007-04-26 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 多数当事者の効率的な乗算のための方法及び装置 |
ES2380026T3 (es) | 2005-05-10 | 2012-05-07 | Dts Ltd. | Procedimiento de transación y procedimiento de verificación |
JP4435076B2 (ja) | 2005-11-18 | 2010-03-17 | フェリカネットワークス株式会社 | 携帯端末,データ通信方法,およびコンピュータプログラム |
US7725446B2 (en) | 2005-12-19 | 2010-05-25 | International Business Machines Corporation | Commitment of transactions in a distributed system |
JP4016061B2 (ja) * | 2006-01-25 | 2007-12-05 | 松下電器産業株式会社 | 端末装置、サーバ装置及びデジタルコンテンツ配信システム |
TW200820108A (en) | 2006-05-24 | 2008-05-01 | Ibm | Method for automatically validating a transaction, electronic payment system and computer program |
US20090177591A1 (en) | 2007-10-30 | 2009-07-09 | Christopher Thorpe | Zero-knowledge proofs in large trades |
US20090281949A1 (en) | 2008-05-12 | 2009-11-12 | Appsware Wireless, Llc | Method and system for securing a payment transaction |
US8543091B2 (en) | 2008-06-06 | 2013-09-24 | Ebay Inc. | Secure short message service (SMS) communications |
US8281131B2 (en) | 2008-08-28 | 2012-10-02 | International Business Machines Corporation | Attributes in cryptographic credentials |
US8744077B2 (en) | 2008-10-28 | 2014-06-03 | International Business Machines Corporation | Cryptographic encoding and decoding of secret data |
JP5264450B2 (ja) * | 2008-12-02 | 2013-08-14 | 日本電信電話株式会社 | ビットコミットメント検証システム、ビットコミットメント装置、検証装置、ビットコミットメント検証方法、ビットコミットメント方法、検証方法、ビットコミットメントプログラム、検証プログラム |
AP3995A (en) | 2008-12-23 | 2017-01-11 | Mtn Mobile Money Sa Pty Ltd | Method of and system for securely processing a transaction |
US8762741B2 (en) | 2009-01-29 | 2014-06-24 | Microsoft Corporation | Privacy-preserving communication |
US8825555B2 (en) | 2010-06-30 | 2014-09-02 | International Business Machines Corporation | Privacy-sensitive sample analysis |
US8527777B2 (en) | 2010-07-30 | 2013-09-03 | International Business Machines Corporation | Cryptographic proofs in data processing systems |
US8661240B2 (en) | 2011-04-29 | 2014-02-25 | International Business Machines Corporation | Joint encryption of data |
US20120317034A1 (en) | 2011-06-13 | 2012-12-13 | Microsoft Corporation | Transparent virtual currency using verifiable tokens |
US9858401B2 (en) | 2011-08-09 | 2018-01-02 | Biogy, Inc. | Securing transactions against cyberattacks |
BR112014007665B1 (pt) | 2011-09-29 | 2021-07-13 | Amazon Technologies, Inc | Método, meio de armazenamento e sistema de computação de derivação chave baseada em parâmetros |
JP5364141B2 (ja) | 2011-10-28 | 2013-12-11 | 楽天株式会社 | 携帯端末、店舗端末、送信方法、受信方法、決済システム、決済方法、プログラムおよびコンピュータ読み取り可能な記憶媒体 |
EP2634738A1 (en) | 2012-03-02 | 2013-09-04 | Alcatel Lucent | Decentralized electronic transfer system |
FR2993382B1 (fr) | 2012-07-13 | 2015-07-03 | Oberthur Technologies | Entite electronique securisee pour l'autorisation d'une transaction |
GB201310084D0 (en) * | 2013-06-06 | 2013-07-17 | Mastercard International Inc | Improvements to electronic authentication systems |
US9853819B2 (en) | 2013-08-05 | 2017-12-26 | Guardtime Ip Holdings Ltd. | Blockchain-supported, node ID-augmented digital record signature method |
US11055707B2 (en) | 2014-06-24 | 2021-07-06 | Visa International Service Association | Cryptocurrency infrastructure system |
KR20160024185A (ko) | 2014-08-25 | 2016-03-04 | 아이보 (주) | SE(Secure element)를 이용한 암호화폐 관리 시스템 및 그 방법 |
GB201419016D0 (en) | 2014-10-24 | 2014-12-10 | Visa Europe Ltd | Transaction Messaging |
AU2016242888A1 (en) | 2015-03-31 | 2017-11-16 | Nasdaq, Inc. | Systems and methods of blockchain transaction recordation |
US20160300234A1 (en) | 2015-04-06 | 2016-10-13 | Bitmark, Inc. | System and method for decentralized title recordation and authentication |
US9397985B1 (en) | 2015-04-14 | 2016-07-19 | Manifold Technology, Inc. | System and method for providing a cryptographic platform for exchanging information |
US9870562B2 (en) | 2015-05-21 | 2018-01-16 | Mastercard International Incorporated | Method and system for integration of market exchange and issuer processing for blockchain-based transactions |
US10026082B2 (en) | 2015-05-21 | 2018-07-17 | Mastercard International Incorporated | Method and system for linkage of blockchain-based assets to fiat currency accounts |
US11080665B1 (en) * | 2015-06-08 | 2021-08-03 | Blockstream Corporation | Cryptographically concealing amounts and asset types for independently verifiable transactions |
WO2017004466A1 (en) | 2015-06-30 | 2017-01-05 | Visa International Service Association | Confidential authentication and provisioning |
US20170085555A1 (en) | 2015-07-14 | 2017-03-23 | Fmr Llc | Point-to-Point Transaction Guidance Apparatuses, Methods and Systems |
US20180191503A1 (en) | 2015-07-14 | 2018-07-05 | Fmr Llc | Asynchronous Crypto Asset Transfer and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems |
US20180331832A1 (en) | 2015-11-05 | 2018-11-15 | Allen Pulsifer | Cryptographic Transactions System |
WO2017091530A1 (en) | 2015-11-24 | 2017-06-01 | Gartland & Mellina Group | Blockchain solutions for financial services and other transaction-based industries |
CA3006495A1 (en) | 2015-11-30 | 2017-06-08 | Shapeshift Ag | Digital asset zero-custody switch |
US10013573B2 (en) | 2015-12-16 | 2018-07-03 | International Business Machines Corporation | Personal ledger blockchain |
US11354658B2 (en) | 2016-02-11 | 2022-06-07 | Mastercard International Incorporated | Method and system for offline blockchain exchanges |
US20170243193A1 (en) | 2016-02-18 | 2017-08-24 | Skuchain, Inc. | Hybrid blockchain |
KR20180116278A (ko) | 2016-02-23 | 2018-10-24 | 엔체인 홀딩스 리미티드 | 안전한 정보 교환과 계층 구조적이고 결정론적인 암호키를 위한 공통 비밀 결정 |
AU2017223129A1 (en) | 2016-02-23 | 2018-07-12 | nChain Holdings Limited | Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system |
US11727501B2 (en) | 2016-02-23 | 2023-08-15 | Nchain Licensing Ag | Cryptographic method and system for secure extraction of data from a blockchain |
CA3015697C (en) | 2016-02-29 | 2022-11-22 | Securekey Technologies Inc. | Systems and methods for distributed identity verification |
WO2017178956A1 (en) | 2016-04-11 | 2017-10-19 | nChain Holdings Limited | A method for secure peer-to-peer communication on a blockchain |
CN107306183B (zh) | 2016-04-22 | 2021-12-21 | 索尼公司 | 客户端、服务端、方法和身份验证系统 |
KR101780635B1 (ko) | 2016-04-28 | 2017-09-21 | 주식회사 코인플러그 | 인증 정보의 생성, 등록, 파기 방법 및 인증 지원 서버 |
US10046228B2 (en) | 2016-05-02 | 2018-08-14 | Bao Tran | Smart device |
US10447478B2 (en) | 2016-06-06 | 2019-10-15 | Microsoft Technology Licensing, Llc | Cryptographic applications for a blockchain system |
KR101802655B1 (ko) | 2016-06-10 | 2017-11-29 | 인하대학교 산학협력단 | 원격 서버를 이용한 안전한 소프트웨어 기반 일회용 비밀번호 생성 방법 |
US11062366B2 (en) | 2016-06-24 | 2021-07-13 | Raise Marketplace Inc. | Securely processing exchange items in a data communication system |
US20180006823A1 (en) | 2016-07-01 | 2018-01-04 | Qualcomm Incorporated | Multi-hop secure content routing based on cryptographic partial blind signatures and embedded terms |
KR101795695B1 (ko) | 2016-07-14 | 2017-12-01 | 주식회사 코인플러그 | 메신저 서비스를 통하여 송수신하는 데이터에 대한 기록 서비스 및 검증 서비스를 제공하는 방법, 및 이를 이용한 서버 |
US11651352B2 (en) | 2016-07-15 | 2023-05-16 | Visa International Service Association | Digital asset distribution by transaction device |
EP3273635B1 (en) | 2016-07-20 | 2019-10-30 | Mastercard International Incorporated | Secure channel establishment |
US10785167B2 (en) | 2016-07-26 | 2020-09-22 | Nec Corporation | Method for controlling access to a shared resource |
US10067810B2 (en) | 2016-07-28 | 2018-09-04 | Cisco Technology, Inc. | Performing transactions between application containers |
GB201613176D0 (en) | 2016-07-29 | 2016-09-14 | Eitc Holdings Ltd | Computer-implemented method and system |
JP6971019B2 (ja) | 2016-09-26 | 2021-11-24 | Gmoインターネット株式会社 | データ管理システム、情報処理装置、プログラム、及び、データ管理方法 |
US10769600B2 (en) | 2016-09-26 | 2020-09-08 | International Business Machines Corporation | Cryptocurrency transactions using debit and credit values |
CN106549749B (zh) | 2016-12-06 | 2019-12-24 | 杭州趣链科技有限公司 | 一种基于加法同态加密的区块链隐私保护方法 |
US20180167198A1 (en) | 2016-12-09 | 2018-06-14 | Cisco Technology, Inc. | Trust enabled decentralized asset tracking for supply chain and automated inventory management |
EP3563521A1 (en) | 2016-12-30 | 2019-11-06 | INTEL Corporation | Service provision to iot devices |
CN106911470B (zh) * | 2017-01-23 | 2020-07-07 | 北京航空航天大学 | 一种比特币交易隐私增强方法 |
CN106845960B (zh) | 2017-01-24 | 2018-03-20 | 上海壹账通区块链科技有限公司 | 基于区块链的安全交易方法及系统 |
US11082418B2 (en) | 2017-02-13 | 2021-08-03 | Avalanche Cloud Corporation | Privacy ensured brokered identity federation |
CN107025602A (zh) | 2017-02-24 | 2017-08-08 | 杭州象链网络技术有限公司 | 一种基于联盟链的金融资产交易系统构建方法 |
JP6961960B2 (ja) | 2017-03-13 | 2021-11-05 | ソニーグループ株式会社 | 情報処理装置および情報処理方法 |
JP6719410B2 (ja) | 2017-03-17 | 2020-07-08 | Kddi株式会社 | 生成装置、検証装置、及びプログラム |
US20180293576A1 (en) | 2017-04-05 | 2018-10-11 | Samsung Sds Co., Ltd. | System for custom currency transaction based on blockchain and operating method thereof |
US11095432B2 (en) | 2017-04-05 | 2021-08-17 | Samsung Sds Co., Ltd. | System for processing data based on blockchain and operating method thereof |
GB201705621D0 (en) | 2017-04-07 | 2017-05-24 | Nchain Holdings Ltd | Computer-implemented system and method |
GB201705749D0 (en) | 2017-04-10 | 2017-05-24 | Nchain Holdings Ltd | Computer-implemented system and method |
GB201705858D0 (en) | 2017-04-11 | 2017-05-24 | Nchain Holdings Ltd | Computer-implemented system and method |
GB201706132D0 (en) | 2017-04-18 | 2017-05-31 | Nchain Holdings Ltd | Computer-implemented system and method |
US10320758B2 (en) | 2017-04-25 | 2019-06-11 | International Business Machines Corporation | Cryptography using multi-factor key system and finite state machine |
US10198949B2 (en) | 2017-04-28 | 2019-02-05 | Mastercard International Incorporated | Method and system for parking verification via blockchain |
US10560270B2 (en) | 2017-05-03 | 2020-02-11 | International Business Machines Corporation | Optimal data storage configuration in a blockchain |
GB201707168D0 (en) | 2017-05-05 | 2017-06-21 | Nchain Holdings Ltd | Computer-implemented system and method |
GB201707296D0 (en) | 2017-05-08 | 2017-06-21 | Nchain Holdings Ltd | Computer-implemented system and method |
US11165589B2 (en) | 2017-05-11 | 2021-11-02 | Shapeshift Ag | Trusted agent blockchain oracle |
CN107451175B (zh) | 2017-05-23 | 2020-01-31 | 创新先进技术有限公司 | 一种基于区块链的数据处理方法及设备 |
CN107239951A (zh) | 2017-06-07 | 2017-10-10 | 北京天德科技有限公司 | 一种基于第三代区块链的可扩展央行数字货币交易方法 |
US11687922B2 (en) | 2017-06-14 | 2023-06-27 | Nchain Licensing Ag | Systems and methods for addressing security-related vulnerabilities arising in relation to off-blockchain channels in the event of failures in a network |
GB201710283D0 (en) | 2017-06-28 | 2017-08-09 | Nchain Holdings Ltd | Computer-implemented system and method |
US10333710B2 (en) | 2017-09-12 | 2019-06-25 | Qed-It Systems Ltd. | Method and system for determining desired size of private randomness using Tsallis entropy |
TWI636411B (zh) | 2017-09-13 | 2018-09-21 | 現代財富控股有限公司 | 對非區塊鏈節點提供交易不可否認性之系統及其方法 |
US10361870B2 (en) | 2017-09-14 | 2019-07-23 | The Toronto-Dominion Bank | Management of cryptographically secure exchanges of data using permissioned distributed ledgers |
EP3688705B1 (en) | 2017-09-29 | 2023-08-02 | Leverage Rock LLC | Transaction privacy in public distributed ledger systems |
CN107679857B (zh) | 2017-10-10 | 2021-04-27 | 马晶瑶 | 区块链的跨链交易方法和存储介质 |
CN108062671A (zh) | 2017-11-03 | 2018-05-22 | 深圳市轱辘车联数据技术有限公司 | 数据交易方法、区块链节点服务器及数据提交终端 |
CN108418689B (zh) | 2017-11-30 | 2020-07-10 | 矩阵元技术(深圳)有限公司 | 一种适合区块链隐私保护的零知识证明方法和介质 |
WO2019109003A1 (en) | 2017-11-30 | 2019-06-06 | Visa International Service Association | Blockchain system for confidential and anonymous smart contracts |
US10831764B2 (en) | 2017-12-02 | 2020-11-10 | International Business Machines Corporation | Query processing and access control in a blockchain network |
US11227284B2 (en) | 2017-12-13 | 2022-01-18 | Mastercard International Incorporated | Method and system for consumer-initiated transactions using encrypted tokens |
CN108282459B (zh) | 2017-12-18 | 2020-12-15 | 中国银联股份有限公司 | 基于智能合约的数据传递方法及系统 |
US11544708B2 (en) | 2017-12-29 | 2023-01-03 | Ebay Inc. | User controlled storage and sharing of personal user information on a blockchain |
TWM561861U (zh) | 2018-01-11 | 2018-06-11 | 網家金融科技股份有限公司 | 網路支付轉帳系統 |
US10504314B2 (en) | 2018-01-29 | 2019-12-10 | Accenture Global Solutions Limited | Blockchain-based anonymized cryptologic voting |
US10373129B1 (en) | 2018-03-05 | 2019-08-06 | Winklevoss Ip, Llc | System, method and program product for generating and utilizing stable value digital assets |
US20210089676A1 (en) | 2018-02-16 | 2021-03-25 | Ecole Polytechnique Fédérale De Lausanne Epfl-Tto | Methods and systems for secure data exchange |
CN108512650B (zh) | 2018-02-28 | 2021-03-09 | 南京思利华信息科技有限公司 | 面向区块链的动态哈希计算方法、装置、节点及存储介质 |
CN108288159A (zh) | 2018-03-07 | 2018-07-17 | 物数(上海)信息科技有限公司 | 基于多区块链的跨链交易方法、系统、设备及存储介质 |
CN108320228A (zh) | 2018-03-07 | 2018-07-24 | 物数(上海)信息科技有限公司 | 跨区块链资产交易方法、平台、设备及存储介质 |
US11159306B2 (en) | 2018-04-24 | 2021-10-26 | Duvon Corporation | Autonomous exchange via entrusted ledger token and transaction management |
US10708243B2 (en) | 2018-04-24 | 2020-07-07 | Capital One Services, Llc | Message encryption using public keychains |
CN108711105A (zh) | 2018-05-16 | 2018-10-26 | 四川吉鼎科技有限公司 | 一种基于区块链的安全交易验证方法及系统 |
CN108764874B (zh) | 2018-05-17 | 2021-09-07 | 深圳前海微众银行股份有限公司 | 基于区块链的匿名转账方法、系统及存储介质 |
CN108683669B (zh) | 2018-05-19 | 2021-09-17 | 深圳市图灵奇点智能科技有限公司 | 数据验证方法和安全多方计算系统 |
CN108876332B (zh) | 2018-06-04 | 2020-09-22 | 清华大学 | 一种基于生物特征标记认证的区块链安全交易方法及装置 |
CN109003184A (zh) | 2018-06-22 | 2018-12-14 | 中链科技有限公司 | 区块链资产管理方法及装置 |
US11032068B2 (en) * | 2018-06-29 | 2021-06-08 | International Business Machines Corporation | Leakage-deterring encryption for message communication |
US10917233B2 (en) | 2018-10-16 | 2021-02-09 | International Business Machines Corporation | Selective exchange of transaction data |
JP6956062B2 (ja) | 2018-10-30 | 2021-10-27 | 株式会社Crypto Garage | 取引方法、プログラム、検証装置及び生成方法 |
US11240001B2 (en) | 2018-11-06 | 2022-02-01 | International Business Machines Corporation | Selective access to asset transfer data |
MX2019004672A (es) | 2018-11-07 | 2019-08-21 | Alibaba Group Holding Ltd | Sistema de cadena de bloques que soporta transacciones publicas y privadas bajo modelos de cuenta. |
MY188126A (en) | 2018-11-27 | 2021-11-23 | Advanced New Technologies Co Ltd | System and method for information protection |
MX2019004543A (es) | 2018-11-27 | 2019-11-11 | Alibaba Group Holding Ltd | Sistema y metodo para la proteccion de informacion. |
SG11201902778UA (en) | 2018-11-27 | 2019-05-30 | Alibaba Group Holding Ltd | System and method for information protection |
-
2018
- 2018-11-27 SG SG11201902778UA patent/SG11201902778UA/en unknown
- 2018-11-27 CN CN201880004148.9A patent/CN109937557B/zh active Active
- 2018-11-27 KR KR1020197011444A patent/KR102170346B1/ko active IP Right Grant
- 2018-11-27 EP EP18863790.4A patent/EP3549303B1/en active Active
- 2018-11-27 MX MX2019004202A patent/MX2019004202A/es unknown
- 2018-11-27 WO PCT/CN2018/117552 patent/WO2019072276A2/en unknown
- 2018-11-27 MY MYPI2019001887A patent/MY193900A/en unknown
- 2018-11-27 EP EP21167258.9A patent/EP3866382B1/en active Active
- 2018-11-27 ES ES18863790T patent/ES2875581T3/es active Active
- 2018-11-27 PL PL18863790T patent/PL3549303T3/pl unknown
- 2018-11-27 BR BR112019007727-8A patent/BR112019007727A2/pt active Search and Examination
- 2018-11-27 AU AU2018327218A patent/AU2018327218B2/en active Active
- 2018-11-27 US US16/342,605 patent/US11277389B2/en active Active
- 2018-11-27 CA CA3040601A patent/CA3040601C/en active Active
- 2018-11-27 JP JP2019520982A patent/JP6724249B2/ja active Active
- 2018-11-27 RU RU2019111969A patent/RU2719423C1/ru active
-
2019
- 2019-03-14 PH PH12019500556A patent/PH12019500556A1/en unknown
- 2019-04-17 ZA ZA2019/02470A patent/ZA201902470B/en unknown
- 2019-07-16 TW TW108125043A patent/TWI706275B/zh active
- 2019-12-09 US US16/708,297 patent/US11102184B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120209790A1 (en) * | 2005-02-24 | 2012-08-16 | Michael Gregory Szydlo | Process for verifiably communicating risk characteristics of an investment portfolio |
US20160358165A1 (en) * | 2015-06-08 | 2016-12-08 | Blockstream Corporation | Cryptographically concealing amounts transacted on a ledger while preserving a network's ability to verify the transaction |
Non-Patent Citations (1)
Title |
---|
Alfred J. Menezes 외 2명, Handbook of Applied Cryptography, CRC Press (1996.)* |
Also Published As
Publication number | Publication date |
---|---|
CN109937557A (zh) | 2019-06-25 |
MY193900A (en) | 2022-10-31 |
CN109937557B (zh) | 2022-02-22 |
JP2019537744A (ja) | 2019-12-26 |
TW202020710A (zh) | 2020-06-01 |
WO2019072276A3 (en) | 2019-09-19 |
EP3866382B1 (en) | 2023-06-21 |
US20190268312A1 (en) | 2019-08-29 |
EP3549303A4 (en) | 2020-02-26 |
WO2019072276A2 (en) | 2019-04-18 |
JP6724249B2 (ja) | 2020-07-15 |
PL3549303T3 (pl) | 2021-11-22 |
TWI706275B (zh) | 2020-10-01 |
SG11201902778UA (en) | 2019-05-30 |
KR20200066257A (ko) | 2020-06-09 |
EP3866382A1 (en) | 2021-08-18 |
CA3040601A1 (en) | 2019-04-18 |
US11277389B2 (en) | 2022-03-15 |
US11102184B2 (en) | 2021-08-24 |
US20200120074A1 (en) | 2020-04-16 |
BR112019007727A2 (pt) | 2019-11-12 |
PH12019500556A1 (en) | 2019-12-16 |
AU2018327218A1 (en) | 2020-01-30 |
AU2018327218B2 (en) | 2020-07-16 |
ZA201902470B (en) | 2021-06-30 |
MX2019004202A (es) | 2019-08-05 |
CA3040601C (en) | 2021-03-30 |
RU2719423C1 (ru) | 2020-04-17 |
EP3549303A2 (en) | 2019-10-09 |
EP3549303B1 (en) | 2021-05-26 |
ES2875581T3 (es) | 2021-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102170346B1 (ko) | 정보 보호를 위한 시스템 및 방법 | |
KR102150814B1 (ko) | 정보 보호를 위한 시스템 및 방법 | |
KR102248154B1 (ko) | 정보 보호를 위한 시스템 및 방법 | |
US11080694B2 (en) | System and method for information protection | |
AU2019101582A4 (en) | System and method for information protection | |
AU2019101590A4 (en) | System and method for information protection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |