KR20200116455A - 블록체인에 트랜잭션들을 서명하기 위한 디지털 키들을 저장하는 장치 - Google Patents
블록체인에 트랜잭션들을 서명하기 위한 디지털 키들을 저장하는 장치 Download PDFInfo
- Publication number
- KR20200116455A KR20200116455A KR1020207020393A KR20207020393A KR20200116455A KR 20200116455 A KR20200116455 A KR 20200116455A KR 1020207020393 A KR1020207020393 A KR 1020207020393A KR 20207020393 A KR20207020393 A KR 20207020393A KR 20200116455 A KR20200116455 A KR 20200116455A
- Authority
- KR
- South Korea
- Prior art keywords
- transaction
- user
- dsp
- key
- digital
- Prior art date
Links
- 230000004044 response Effects 0.000 claims abstract description 6
- 238000000034 method Methods 0.000 claims description 11
- 238000010200 validation analysis Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 7
- 238000006467 substitution reaction Methods 0.000 claims description 2
- 238000002604 ultrasonography Methods 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000003825 pressing Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
Images
Classifications
-
- 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
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
- G06Q20/367—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
- G06Q20/3674—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes involving authentication
-
- 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
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
- G06Q20/363—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes with the personal data of a user
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B11/00—Transmission systems employing sonic, ultrasonic or infrasonic waves
-
- 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/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- 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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- 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/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- 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/3215—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 a plurality of channels
-
- 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/3234—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 additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
-
- 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
-
- H04L2209/38—
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Power Engineering (AREA)
- Mathematical Physics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
본 발명은 블록체인 상에서 트랜잭션들을 수행하기 위한 디지털 키들을 저장하도록 설계된 물리적 장치에 관한 것이다. 물리적 장치(200)는 마이크로폰(213), 라우드스피커(217) 및 시크릿 키들과 퍼블릭 키들의 쌍이 저장되는 보안 요소를 포함하는 DSP 프로세서(219)를 포함하고, DSP는 또한 DSP의 메모리에 저장된 랜덤 또는 의사-랜덤 초음파 신호들을 나타내는 워드들을 포함하는 딕셔너리 S를 사용하는 음향 코덱을 포함한다. DSP는, 프라이빗 키를 통해 디코딩된 메시지에 서명하고, 이러한 방식으로 획득된 서명을 라우드스피커(217)를 통해, 상기 음향 채널(250) 상에서, S의 연속적인 워드들로 구성된 응답의 형태로 전송하도록, 마이크로폰 (213)을 통해 음향 채널로부터 수신된, S로부터의 워드들로 구성된 메시지를 디코딩하도록 설계된다.
Description
본 발명은 일반적으로 블록체인들(blockchains)에 관한 것으로, 보다 상세하게는 사용자가 자신을 인증하고 블록체인 상에서 트랜잭션들(transactions)에 서명할 수 있게 하는 암호화 키들을 저장하는 장치들에 관한 것이다.
블록체인들은, 제1 순위로 비트코인(Bitcoin)과 이더리움(Ethereum), 지난 몇 년 동안 상당히 성장했다.
블록체인은 일정한 시간 간격들(regular time intervals)로 암호화 메커니즘(cryptographic mechanism)에 의해 연결된 일련의 블록들(sequence of blocks)로 구성된다. 연결(concatenation)은 이전 블록의 해시(hash)를 현재 블록의 내용에 삽입(inserting)하는 것에 의하여 획득된다. 블록체인은 네트워크의 모든 노드들에서 분배 및 복제되는 레지스터를 형성한다.
사용자들은 경량(lightweight) 클라이언트들을 사용하여 블록체인과 상호작용을, 즉, 트랜잭션들이 유효(validated)하다면, 블록체인의 블록에 저장되는 트랜잭션들을 구성하고 서명하는, 할 수 있다. 그러한 트랜잭션의 일 예는 암호화폐(cryptocurrency)의 금액(sum)을 제3자에게 양도하는 것이다. 이러한 트랜잭션들은, 채굴자(miners)라고 하는, 노드들 사이의 합의 메커니즘(mechanism of consensus)에 의해 검증되고(verified) 유효(validated)하며, 체인의 완전한 사본을 가지며, 전술한 암호화 메커니즘에 따라 블록들을 구성하기 위해 경쟁한다. 검증된 각 트랜잭션은 네트워크의 모든 노드들에 브로드캐스트되는 블록에 저장된다.
블록체인을 통해, 재무 운영들, 및 일반적으로 트랜잭션들을 수행하는 것은 이 체인에 월렛 주소(wallet address) (예를 들어 비트코인 주소)가 있어야한다. 이러한 주소는 일반적으로 한 쌍의 비대칭 키들(asymmetric keys)(프라이빗 키(public key) - 퍼블릭 키(public key))의 퍼블릭 키를 해싱하여 획득된다. 보다 정확하게, 사용자는 먼저 비밀을 유지해야 하는 프라이빗 키를 생성하고, 비대칭 암호화시스템, 이 경우 타원 곡선 암호화시스템(elliptic curve cryptosystem) 또는 ECC(Elliptic Curve Cryptography)에 의한 암호화를 통해, 대응하는 퍼블릭 키를 추론한다. 이 퍼블릭 키는 다음으로 문제의(in question) 월렛 주소를 제공하기 위해 해시 함수 (예를 들어 Keccak, SHA-3)에 의해 해시된다.
개략적으로(Schematically), 블록체인의 월렛 주소는 은행 계좌 번호로 간주되고 프라이빗 키는 이 계좌에 대한 액세스를 검증하기위한 비밀번호로 간주될 수 있다.
비트코인과 같은 블록체인에서, 트랜잭션은 일반적으로 발신자(sender)의 하나 이상의 월렛 주소들에서 수취인들(beneficiaries)의 하나 이상의 월렛 주소로 암호화폐(사토시들(satoshis) 또는 비트코인들)로 표시된 금액의 이체를 나타냅니다. 보다 정확하게는, 트랜잭션은 하나 이상의 UTXOs(Unspent Transaction Output)를 소비하는데, 각 UTXO는 그 수취인에 의해 소비되지 않은 금액을 나타내며 잠금 스크립트(locking script)에 의해 후자의 월렛 주소에 잠겨 있다. UTXO를 사용 가능하게 하기 위하여, 소유자(proprietor)는 잠금해제 스크립트(unlocking script) 형식으로 UTXO 암호화 요소들 (일반적으로 그의 퍼블릭 키 및 해당 프라이빗 키에서 생성된 서명(signature))을 제시하여 자신을 식별해야 한다. 잠금해제 스크립트에 표시된 요소들이 잠금 스크립트에 지정된 조건들을 만족하면, 트랜잭션은 유효한(validated) 것으로 간주된다.
도 1은 블록체인의 두 사용자들인 Alice와 Bob 사이의 암호화폐 금액의 이체(transfer)의 예를 개략적으로 보여줍니다.
Alice는 그녀의 월렛에서 트랜잭션을 구성(makes a transaction)하고, @walletAlice의 주소는, 암호화된(cryptographic) 퍼블릭 키에 연결(보다 정확하게는, @walletAlice는 그녀의 퍼블릭 키의 해시이다)된다.
트랜잭션은 입력 UTXO 라고 하는, (fund 값의) Alice의 월렛의 하나의 UTXO만 소비한다고 가정한다. 이 트랜잭션은 (amount 값의) 예상된(envisaged) 지불 금액(amount of the payment)으로 Bob의 월렛에서 제1 출력 UTXO라고 하는, UTXO를 생성한다. 마찬가지로, 이 트랜잭션은 잔액(balance)(balance = fund - amount 값으로)으로 Alice의 월렛에 제2 출력 UTXO를 생성한다.
(amount 값으로) 지불하기 위해, Alice는 입력 세그먼트(segment)와 출력 세그먼트로 구성된 트랜잭션, Ta 를 구성한다.
Ta의 입력 세그먼트 (비트코인에서 scriptSig라고 함)는, 입력 UTXO를 생성한, 트랜잭션, T fund 의 출력 세그먼트에 나타나는 잠금 스크립트(비트코인에서 scriptPubKey라고 함)를 잠금해제하는 스크립트이다.
Ta의 출력 세그먼트는 다음을 포함한다:
- Bob의 월렛 주소인, @walletBob에서 amount 값을 잠그는 제1 잠금 스크립트 (scriptPubKey).
- Alice의 월렛 주소인, @walletAlice와 연관된, 값 balance 를 잠그는 제2 잠금 스크립트(scriptPubKey), 잠금은 Alice가 자신을 인증하는 서명이 포함된 잠금해제 스크립트 (scriptSig)를 제시해야만 잠금해제할 수 있다.
Ta의 입력 세그먼트에 나타나는, 잠금해제 스크립트는, Ta의 출력 세그먼트에 나타나는, 대응하는 잠금 스크립트와 연결되어, 결과 스크립트(resulting script)가 실행된다.
결과 스크립트의 실행은 Alice에 의해 제공된 암호화 요소들이 실제로 합법적인지, 즉 월렛 주소 @walletAlice가 실제로 Alice의 퍼블릭 키에 대응(해싱에 의한 인증)하며 Alice가 실제로 이 퍼블릭 키의 소유자임을 확인(서명에 의한 검증)하는 것을 가능하게 한다.
검증이 긍정적(positive)인 경우, 트랜잭션은 유효화되고 블록체인의 새로운 블록에 저장되며 이 블록은 채굴(mined)된다.
트랜잭션의 유효성 검사(validation) 및 저장은 사실상(de facto) Bob의 월렛에 대한 제1 출력 UTXO와 Alice의 월렛에 있는 제2 출력 UTXO의 생성을 나타낸다.
그런 다음 Bob은 자신의 차례에서 이전에 생성된 제1 출력 UTXO를, 입력 UTXO로, 사용하여 금액 amount 를 사용할 수 있다. 이를 위해서, 그는 자신의 암호화 요소들 (퍼블릭 키 및 서명)을 제시하여 잠금을 해제해야 한다.
프라이빗 키를 보유하는 것만으로도 대응하는 월렛 주소를 사용하여 블록체인에서 트랜잭션들을 구성하는 것이 가능할 수 있다는 것이 이해될 수 있다. 다시 말해, 프라이빗 키는 월렛의 소유권에 대한 유일한 증거이며 그 분실(loss)은 이 월렛에 보유된 암호화폐 자산 (UTXOs)에 대한 어떠한 액세스도 막을 수 있다. 마찬가지로, 악의적인 제3자에 의해 시크릿 키를 도난당한 경우, 사용자는 모든 자산에 대해 이 제3자에 의해 소비되는데 노출된다.
프라이빗 키의 중요한 특성을 고려할 때, 일반적으로 스마트 폰이나 컴퓨터의 메모리에 전자 형식(electronic format)보다 종이 형태(paper form)으로 저장하는 것이 추천된다. 또한, 프라이빗 키의 길이는 사용자가 키를 암기하는 것을 거의 불가능하게 하며, 암기하는 데 성공하더라도, 각 트랜잭션에서 키를 제공하는 것이 특히 지루하게 될 것이다.
종이 형태의 저장은 로밍 사용(roaming use)과 거의 호환되지 않는다. 또한, 사용자는 다수의 프라이빗 키들 및 다수의 대응하는 월렛 주소들을 가질 수 있다.
이 문제를 해결하기 위해, 사용자가 프라이빗 키들 뿐 아니라 대응하는 퍼블릭 키들 또는 월렛 주소들(후자의 해싱으로 얻은)을 저장할 수 있는, 기본적으로 USB 키들 형태의, 물리적 월렛들(physical wallets) (hardware wallets)이, 최근에 판매되었다. 이러한 하드웨어 월렛의 예들로 TrezorTM 또는 "Ledger Nano S"라는 이름으로 판매되는 장치들이 있다.
이러한 USB 키들에는 일반적으로 간단한 인터페이스(LCD 화면 및 몇 개의 버튼들)가 제공되어 소유자가 PIN 코드를 통해 잠금을 해제하고 필요한 프라이빗 키를 사용하여 트랜잭션에 서명할 수 있게 한다. 시크릿 키들은, 물리적 공격들로부터 보호되는, 보안 요소에 저장되며, PIN 코드를 통해서만 액세스될 수 있다. 이러한 USB 키들은 종이 매체에 의지하지 않고도 블록체인 상에서 다양한 키들을 저장하고 트랜잭션들에 서명할 수 있게 할 수 있다. 반면, 프라이빗 키들은 전자기 복사(electromagnetic radiation)에 의하거나 또는 USB 인터페이스를 통해 캡처된 신호들에서 추론될 수 있으므로 물리적 공격들에 대해 완전히 면역(immune)이 되지는 않는다.
결과적으로 본 발명의 목적은 종래 기술과 비교하여 실질적으로 증가된 보안 조건들 하에서, 소유자가 자신을 인증하고 블록체인 상에서 트랜잭션들에 서명할 수 있게 하는 디지털 키들을 저장하기위한 장치를 제안하는 것이다.
본 발명의 하나의 목적은 블록체인 상에 트랜잭션들을 서명하기 위한 디지털 키들을 저장하기 위한 장치를 개시하는 것이다.
본 발명은 블록체인 상에 트랜잭션들을 서명하기 위한 디지털 키들을 저장하기 위한 장치에 의해 정의되며, 상기 장치는 마이크로폰(microphone), 라우드스피커(loudspeaker) 및 적어도 하나의 시크릿 키(secret key)를 저장하도록 의도된(intended) 보안 요소(secure element)를 갖는 DSP 프로세서(DSP processor)를 포함하고, DSP는 코드북(codebook), S를 사용하는 인코더(encoder)/디코더(decoder)를 더 포함하고, 코드워드들(codewords)은, DSP의 메모리 또는 DSP에 단독으로 액세스 가능한 보안 메모리(secure memory)에 저장되고, 랜덤(random) 또는 의사랜덤(pseudorandom) 초음파 신호들을 나타내며, DSP는 음향 채널(acoustic channel)을 통해서만 장치의 외부와 통신하고, DSP는 프라이빗 키에 의해 디코딩된 메시지를 서명하고, 라우드스피커를 통해, 음향 채널 상에서, S의 연속적인 워드들로 구성된 응답의 형태로 메시지의 서명을 응답으로 전송하기 위해, 마이크로폰을 통해, 음향 채널로부터 수신된, S의 워드들로 구성된 메시지를 디코딩하는데 적합하다.
바람직하게는, 장치는 사용자가 프라이빗 키 또는 시드(seed)를 입력하여 연속적인 프라이빗 키들을 생성할 수 있는 휴먼 머신 인터페이스(HMI)를 포함하며, 프라이빗 키 또는 키들은 DSP 프로세서의 보안 요소에 저장된다.
DSP 프로세서는 사용자에 의해 입력되거나 시드로부터 DSP에 의해 생성된 프라이빗 키로부터 퍼블릭 키(public key)를 산출하기 위하여 일반적으로(typically) 타원 곡선 비대칭 암호시스템(elliptic curve asymmetric cryptosystem)을 사용한다.
또한, DSP 프로세서는 DSP 프로세서는 블록체인 상의 월렛 주소(wallet address)를 얻기 위해 해시 함수(hash function)에 의해 퍼블릭 키의 해시를 산출하기에 적합하다.
이 장치는 음향 채널 상에서 퍼블릭 키 및/또는 월렛 주소의 전송을 DSP 프로세서에 요청하기에 적합한 소프트웨어 모듈을 호스팅한다.
제1 실시예에 따르면, 장치는 스마트 폰이고, DSP 프로세서는 스마트 폰의 운영 체제(operating system)가 동작하는 마이크로프로세서와는 다른 칩으로 구현된다.
제2 실시예에 따르면, 장치는 전원 공급 핀들(power supply pins) 이외의 임의의 연결 핀들(any connection pins)을 포함하지 않는 USB 키이다.
본 발명은 상기 정의된 바와 같은 디지털-키 저장 장치 및 제2 소프트웨어 모듈을 호스팅하는 단말기(terminal)에 의해 암호화폐(cryptocurrency)의 금액(sum)을 사용자에 의해, 제3자에게 지불하는 방법을 더 포함하고, 상기 단말기는 인터넷을 통해 블록체인을 구현하는 P2P 네트워크에 연결되며, 상기 사용자는, 제2 소프트웨어 모듈에 의해 디스플레이된 윈도우(window)에서, 지불액(amount of the payment) 및 제3자의 월렛 주소(wallet address)를 입력하고, 상기 제2 소프트웨어 모듈은 입력 세그먼트(segment) 및 출력 세그먼트를 포함하는 트랜잭션, 상기 사용자가 수취인(addressee)인 이전(prior) 트랜잭션(T fund )에 대한 적어도 하나의 참조(reference)를 포함하는 상기 입력 세그먼트, 상기 이전 트랜잭션을 잠그는(locking) 스크립트(script), 상기 금액을 포함하는 상기 출력 세그먼트 및 상기 제3자의 월렛 주소에서 상기 금액을 잠그는 스크립트를 구성(makes a transaction)하고, 상기 제2 소프트웨어 모듈은 상기 디지털-키 저장 장치에 형성된 트랜잭션을 포함하는 제1 메시지(M)를 전송(450)하고, 및, 사용자(452)에 의한 유효성 검사의 경우, 상기 DSP 프로세서는 상기 메시지에 서명하고, 따라서 제2 메시지(Sig)의 형태로 획득된 서명(signature)을 상기 단말기에 전송(460)하고, 제1 및 제2 메시지들은 코드북(codebook) S의 코드워드들(codewords)에 의해 인코딩된 형태로 음향 채널(acoustic channel)을 통해 전송되고, 및 제2 소프트웨어 모듈은, 상기 트랜잭션에서, 상기 이전 트랜잭션을 잠그는 상기 스크립트를, 수신된 서명 및 상기 사용자의 퍼블릭 키(public key)를 포함하는 잠금해제(unlocking) 스크립트로 대체(replacing)하는 것을 특징으로 한다.
마지막으로, 본 발명은, 컴퓨터 또는 스마트폰의 형태로 구현된, 상기 정의된 바와 같은 디지털-키 저장 장치에 의해 암호화폐의 금액을, 사용자가 제3자에게 지불하는 방법에 관련되고, 디지털-키 저장 장치는 제2 소프트웨어 모듈(225)을 호스팅하고, 인터넷을 통해 블록체인을 구현하는 P2P 네트워크에 연결되고, 사용자에 의해, 제2 소프트웨어 모듈에 의해 디스플레이된 윈도우(window)에서, 지불 금액(amount of the payment) 및 제3자의 월렛 주소(wallet address)가 입력되고, 제2 소프트웨어 모듈은 입력 세그먼트(segment) 및 출력 세그먼트를 포함하는 트랜잭션, 사용자가 수취인(addressee)인 이전(prior) 트랜잭션(T fund )에 대한 적어도 하나의 참조(reference)를 포함하는 입력 세그먼트, 이전 트랜잭션을 잠그는(locking) 스크립트(script), 상기 금액 뿐 아니라 제3자의 월렛 주소에서 상기 금액을 잠그는 스크립트를 포함하는 출력 세그먼트를 구성(makes a transaction)하고, 상기 제2 소프트웨어 모듈은 상기 디지털-키 저장 장치에 구성된 트랜잭션을 포함하는 제1 메시지(M)를 전송하고, 및, 사용자에 의한 유효성 검사의 경우(in the event of validation by the user), 상기 DSP 프로세서는 상기 메시지에 서명하고, 따라서 제2 메시지(Sig)의 형태로 획득된 서명(signature)을 상기 장치에 전송하고, 제1 및 제2 메시지들은 코드북(codebook) S의 코드워드들(codewords)에 의해 인코딩된 형태로 음향 채널(acoustic channel)을 통해 전송되고, 및 제2 소프트웨어 모듈은, 상기 트랜잭션에서, 상기 이전 트랜잭션을 잠그는 상기 스크립트를, 수신된 서명 및 상기 사용자의 퍼블릭 키(public key)를 포함하는 잠금해제(unlocking) 스크립트로 대체(replacing)한다.
대체(substitution) 후에, 트랜잭션(Ta)은 검증되고 블록체인의 다음 블록에 통합(incorporated)되기 위해 P2P 네트워크의 노드들에 브로드캐스트(broadcast)된다.
본 발명에 따르면, 블록체인 상에 트랜잭션들을 서명하기 위한 디지털 키들을 저장하기 위한 장치를 제공할 수 있다.
본 발명의 다른 특징들 및 장점들은 첨부 도면들을 참조하여 이루어진, 본 발명의 우선적인 실시예의 판독으로부터 나타날 것이다:
이미 설명된, 도 1은 블록체인의 두 사용자들 사이의 암호화폐의 금액의 전송을 개략적으로 도시한다.
도 2는 본 발명의 일 실시예에 따른 디지털-키 저장 장치를 사용하는 시스템을 개략적으로 도시한 도면이다.
도 3a는 도 2의 시스템의 키-저장 장치의 아키텍처의 제1 예를 개략적으로 도시한 도면이다.
도 3b는 도 2의 시스템의 키-저장 장치의 아키텍처의 제1 예를 개략적으로 도시한 도면이다.
도 4a는 도 2의 시스템에 의한 월렛의 상담(consultation) 작업의 타이밍 다이어그램(timing diagram)을 도시한다.
도 4b는도 2의 시스템에 의한 지불 동작의 타이밍 다이어그램을 도시한다.
도 5a는 본 발명의 제1 변형 실시예에 따른 디지털-키 저장 장치를 개략적으로 도시한 도면이다.
도 5b는 본 발명의 제2 변형 실시예에 따른 디지털-키 저장 장치를 개략적으로 도시한 도면이다.
이미 설명된, 도 1은 블록체인의 두 사용자들 사이의 암호화폐의 금액의 전송을 개략적으로 도시한다.
도 2는 본 발명의 일 실시예에 따른 디지털-키 저장 장치를 사용하는 시스템을 개략적으로 도시한 도면이다.
도 3a는 도 2의 시스템의 키-저장 장치의 아키텍처의 제1 예를 개략적으로 도시한 도면이다.
도 3b는 도 2의 시스템의 키-저장 장치의 아키텍처의 제1 예를 개략적으로 도시한 도면이다.
도 4a는 도 2의 시스템에 의한 월렛의 상담(consultation) 작업의 타이밍 다이어그램(timing diagram)을 도시한다.
도 4b는도 2의 시스템에 의한 지불 동작의 타이밍 다이어그램을 도시한다.
도 5a는 본 발명의 제1 변형 실시예에 따른 디지털-키 저장 장치를 개략적으로 도시한 도면이다.
도 5b는 본 발명의 제2 변형 실시예에 따른 디지털-키 저장 장치를 개략적으로 도시한 도면이다.
본 발명의 기본 개념은 라우드스피커(loudspeaker), 마이크로폰(microphone) 및 시크릿 키들(secret keys)과 퍼블릭 키들(public keys)의 쌍들이 저장되는 보안 요소(secure element)를 갖는 디지털 신호 프로세서(digital signal processor) DSP를 포함하는, 디지털 키들을 저장하기 위한 장치 (또는 물리적 월렛)를 제공하는 것이고, DSP는 상기 마이크로폰 및 상기 라우드스피커를 통한 랜덤(random)(또는 의사 랜덤(pseudorandom)) 초음파 신호들에 의해서만 물리적 장치의 외부와 통신한다.
이를 위해, DSP는 코드북 S 를 사용하는 음향 코딩/디코딩 모듈을 포함하며, 이의 코드 워드들은 DSP의 메모리 또는 DSP만이 액세스할 수 있는 장치의 보안 메모리에 저장된 랜덤 또는 의사랜덤 초음파 신호를 나타낸다. 다시 말해서, 코드 워드는 이러한 랜덤 또는 의사랜덤 초음파 신호의 디지털 표현이며, 이 신호는 코드 워드를 아날로그 신호로 변환함으로써 생성되고, 트랜스듀서(transducer)를 구동하기 전에 필요한 경우 이 아날로그 신호를 증폭시킨다.
이 장치는 상기 장치와 월렛 애플리케이션(wallet application)을 호스팅하는 단말기 사이의 음향 채널을 통해, 상기 코드북의 워드들의 형태로, 월렛 애플리케이션 암호화 데이터(cryptographic data)를 전송하고 수신하기에 적합하다.
따라서, 암호화 데이터는 종래 기술에서와 같이 USB 또는 블루투스 인터페이스를 통해 전송되지 않으며, 차단(interception)(도청(eavesdropping)) 또는 물리적 공격들의 내재된 위험이 있다. 단-거리(short-range) 초음파 신호들의 사용은 침입 시도들이 작동하지 않도록 한다. 더욱이, 랜덤 또는 의사 랜덤 초음파 신호들에 의해 암호화 데이터를 전송하는 것은 그러한 공격들에 대한 채널의 견고성(robustness)을 실질적으로 증가시킨다.
도 2는 본 발명의 일 실시예에 따른 디지털-키 저장 장치를 포함하는 시스템을 개략적으로 도시한다.
디지털-키 저장 장치 (또는 물리적 월렛)는 210에서, DSP는 219로, 마이크로폰은 213로 및 라우드스피커는 217로 같이 도시되어 있다.
장치는 도면에서 도시된 것과 같이 스마트 폰 형태로, 또는 간단한 HMI 인터페이스 (예를 들어 LCD 화면 및 버튼들)가 제공되는 전용 USB 키(dedicated USB key) 형태로, 또는 인증 토큰(authentication token) 형태 (전용 전자 박스(dedicated electronic box))로, 또는 휴대용 컴퓨터(portable computer)의 형태로도 구현 될 수 있다. 이 경우에, DSP(219)는 휴대용 컴퓨터에 설계 상 이미 존재하는 것일 수 있다.
물리적 저장 월렛이 전용 USB 키 형태로 구현되는 경우, 전원 공급 핀들(power supply pins)만 포함한다는 점에 유의해야 한다. 따라서 키는 컴퓨터의 USB 커넥터에 플러그드(plugged)될 수 있으므로 이 컴퓨터가 물리적 월렛에 저장된 데이터에 액세스하는 것이 가능하지 않아도 전원이 공급될 수 있다.
물리적 월렛 외에, 시스템(200)은 인터넷에 연결되고 결과적으로 블록체인을 사용하여 P2P(Peer to Peer) 네트워크의 다른 노드들과 통신할 수 있는 단말기(terminal)(일반적으로 휴대용 컴퓨터, PC, 220)를 포함한다.
설명의 나머지 부분에서, 우리는, 일반성을 잃지 않고, 블록체인이 비트코인이라고 가정한다.
사용자의 단말기(220)는 단말기에 경량(lightweight) 노드의 기능을 부여하고 블록체인 상에서 트랜잭션들을 구성하고 체크할 수 있게 하는 SPV(Simplified Payment Verification) 경량 클라이언트와 같은 월렛 애플리케이션(wallet_app)(225)을 호스팅한다. 대안적으로, 비-로밍 사용(non-roaming use)의 경우, 사용자의 단말기는 완전한 클라이언트(complete client)를 호스팅할 수 있어, 공유 레지스터(shared register) 전체의 사본(copy)에 액세스할 수 있게 한다.
월렛 애플리케이션(225)은 또한 저장 장치로부터 수신된 랜덤/의사랜덤 신호들을 디코딩할 수 있게 하는 코드북 S를 사용하는 디코딩 모듈(decoding module)을 포함한다. 대안 적으로, 단말기는 애플리케이션에 의해 요청된 디코딩을 수행하고 디코딩된 메시지들을 후자에게 리턴하는 DSP(도시되지 않음)를 포함할 수 있다. 다시 대안적으로, 단말기는 클라우드(cloud)에서 디코딩 서버(decoding server)로 수신되고, 그 후 디코딩된 메시지들로 리턴할 랜덤/의사랜덤 신호들을 전송할 수 있다. 이 마지막 실시예는 디코딩 서버 및 저장 장치에서 적응적(adaptively)으로 코드북 S를 전환(switch)하는 것이 가능하기 때문에 유리하다.
디지털-키 저장 장치(210)는 월렛 제어 모듈(wallet control module)(walletctrl_app)로 지칭되는, 하나 이상의 쌍들(프라이빗, 퍼블릭 키)을 생성하고 프라이빗 키에 의해 메시지들에 서명하여 예를 들어 월렛 애플리케이션에 의해 구성된 트랜잭션을 생성하는 중요한 기능을 갖는, 소프트웨어 모듈(215)을 포함한다.
첫 번째 단계(first phase)에서, 물리적 디지털-키 저장 월렛이 초기화된다.
우선, 물리적 월렛은 패스워드(PIN 코드), 지문 판독기(fingerprint reader), 홍채 센서(iris sensor) 또는 기타 생체 인증 센서(biometric authentication sensor)를 통해 보호될 수 있다. 패스워드 또는 생체인식 항목(biometric entry)을 입력하는 목적은 단순히 물리적 월렛에 대한 액세스를 보호하기위한 것이다.
인증을 위해 패스워드가 사용되는 경우, 이는 HMI 인터페이스(예를 들어 터치스크린(touchscreen))를 통해 입력되고 예를 들어 화면에 디스플레이된 유효성검증 버튼(validation button)을 누르거나 유효성검증 아이콘(validation icon)을 클릭하여 유효성이 검증될 수 있다.
또한, 초기화 단계(initialisation phase)는 타원 곡선 암호시스템(elliptic curve cryptosystem) 또는 ECC에 의해 적어도 하나의 키들의 쌍(프라이빗 키, 퍼블릭 키)의 생성을 포함하며, 도메인 파라미터들(domain parameters)은 DSP에 미리 저장되어 있다. 프라이빗 키는 예를 들어 HMI 인터페이스를 통해 입력되거나 선택된 일련의 워드들(sequence of words)로부터 얻을 수 있다. 바람직하게는, 이 시퀀스는 표준들(standards) BIP0032 및 BIP044에 따라 계층적 결정론적 월렛(hierarchical deterministic wallet; HD 월렛)의 연속적인 생성 쌍들(프라이빗 키 - 퍼블릭 키)을 생성하기 위한 시드(seed)로서 사용된다. 모든 경우들에 있어서, 프라이빗 키들/퍼블릭 키들은 HMI 인터페이스 상에 명시적으로 나타나지 않지만 DSP(219) 내에 생성되어 로컬(locally)로 저장되며, 프라이빗 키들은 전술한 보안 요소에 저장된다.
초기화 단계가 구현되고 월렛 애플리케이션(225)이 단말기(220)에서 시작되면, 문제의(in question) 월렛을 통해 블록체인 상에 대한 동작들을 수행할 수 있다.
가장 간단한 동작은 월렛을 참조하는 것이고, 다시 말해, 사용자 또는 보다 정확하게 사용자의 월렛의 주소가 있는 UTXOs의 목록(list)을 획득하는 것이 목적지(destination)이다.
월렛 주소는 사용자의 퍼블릭 키를 해싱하여 획득되는 것으로 상기된다. 물론, 사용자는 복수의 퍼블릭 키들 및 복수의 대응하는 월렛 주소들을 소유할 수 있다. 이 경우, 이러한 주소들 각각의 목적지에 있는 UTXOs는 wallet_app 애플리게이션 내의 별개의 디렉토리에 저장될 수 있다.
물리적 월렛이 하나의 (프라이빗 키, 퍼블릭 키) 쌍만 저장한 경우, 사용자는, 물리적 월렛의 HMI 인터페이스를 통해, 애플리케이션(225)으로, 퍼블릭 키 또는 대응하는 월렛의 주소의 전송을 요청할 수 있다.
물리적 월렛이 복수의 퍼블릭 키들을 메모리에 저장한 경우, 사용자는, HMI 인터페이스를 통해, 필요한 퍼블릭 키 또는 월렛 주소를 선택하고 애플리케이션 (225)에 전송을 요청할 수 있다.
두 경우들 모두, DSP는 음향 채널(250) 상에서, 코드북 S의 랜덤 (또는 의사랜덤) 초음파 신호들에 의해 퍼블릭 키/월렛 주소를 전송한다. S의 코드 워드들(랜덤 또는 의사랜덤 초음파 신호들)은, 선택적으로 음향 채널의 등가 필터(equivalent filter)에 의해 필터링된, 이 신호들의 상관 지표(correlation metrics)가 대각선 매트릭스(diagonal matrix)에 최대한 가깝게 되도록 선택된다. 다시 말하면, 랜덤 (또는 의사랜덤) 초음파 신호들은 상호상관 계수들(intercorrelation coefficients)의 값들이 최소이고 자기상관 계수들(autocorrelation coefficients)의 값들이 최대가 되도록 선택된다. 이러한 코드북 S의 생성은 2016년 6월 13일에 출원된 프랑스 출원 번호 16 55443에서 설명되며, 그 내용은 여기에 참조로 포함된다.
월렛 애플리케이션이 디코딩을 담당하는 경우, 또는 단말기에 구비된 DSP에 의한 디코딩 이후에, 또는 위에서 지시된 바와 같이 디코딩 서버에 의한 디코딩에 의해, 즉시(directly), 이러한 신호들은 월렛 애플리케이션(225)에 공급되기 위해, 물리적 장치(210)의 라우드스피커(전기음향(electroacoustic), 예를 들어 압전(piezoelectric), 변환기(transducer))(217)에 의해 전송되고 단말기의 마이크로폰(예를 들어 압전 변환기) (223)에 의해 수신된다.
디코딩 변형이 무엇이든, 월렛 애플리케이션은 이 주소에 대한 트랜잭션들을 (예를 들어 block explorer와 같은 블록체인 브라우저 또는 blockchain.info와 같은 API를 통해) 찾기 위해 블록체인에 요청을 제출할 수 있다. 퍼블릭 키가 단말기로 전송되면, 월렛 애플리케이션은 간단한 해싱에 의해 대응하는 월렛 주소를 결정하고 이전과 같이 요청을 시작할 수 있다. 그런 다음 이 주소에 대한 트랜잭션들을 찾기 위해 체인이 스캔된다. 모든 경우에, Alice가 목적지인 트랜잭션들은 애플리케이션(225)의 윈도우에 디스플레이된다.
도 3a는 도 2의 시스템에서 디지털-키 저장 장치의 아키텍처의 제1 예를 도시한다.
운영 체제(212)(예를 들어 AndroidTM)는 마이크로프로세서(211)에서 실행된다. 운영 체제는 바람직하게는 공격들에 대한 견고성을 강화하기 위해 마이크로프로세서를 통해서만 DSP와 통신한다.
마이크로프로세서는 코드북 S로부터 워드들의 형태로 DSP 디지털 메시지들을 수신하고 이를 라우드스피커(217)의 드라이버로 전송한다. 이 메시지들은 아날로그로 변환되고 증폭되며, 결과 신호들(resulting signals)은, 음향 채널(250)을 통해 전송되기 위해, 라우드스피커(217)에 의해 대응하는 초음파 신호들로 변환된다.
역으로, 마이크로프로세서는 마이크로폰(213)으로부터, 미리 디지털 형태로 변환된, 초음파 신호들을 수신하여 DSP(219)에 전송한다.
여기서 마이크로프로세서는 DSP와 장치의 외부 사이의 교환들(exchanges)에서 명백한 역할(transparent role)을 하는 것으로 이해될 것이다.
도 3b는 도 2의 시스템에서 디지털-키 저장 장치의 아키텍처의 제2 예를 도시한다.
DSP는 제어 메시지들을 수신하고, 해당되는 경우, 이전과 같이 응답 메시지들을 마이크로프로세서에 리턴할 수 있다. 한편, 이 예에서, DSP는 마이크로프로세서를 거치지 않고 랜덤/의사랜덤 초음파 신호들을 직접 수신 및 송신한다. 특정한 예시적인 실시예에서, DSP, 라우드스피커 및 마이크로폰은 하나의 동일한 사운드 카드의 일부를 형성한다.
도 4a는 Alice가 월렛을 상담(consults)할 때 시스템(200) 내의 교환들을 개략적으로 요약한다. 410에서, 물리적 월렛은, 음향 채널을 통해, Alice의 퍼블릭 키 pK a 또는 월렛 주소 @walletAlice를 단말기의 애플리케이션 wallet_app로 전송한다.
보다 정확하게는, 퍼블릭 키 pK a 는 랜덤/의사랜덤 초음파 신호 σ(pK a )의 형태로 전송되고, 여기서 σ는 전술한 코드북 S에 의해 코딩의 동작을 지정(designates)한다. 대안적으로, 월렛 주소 @walletAlice는 랜덤/의사랜덤 초음파 신호 의 σ(@walletAlice)형태로 전송될 것이다.
이 신호의 디코딩 후, 애플리케이션은 블록체인에서 @walletAlice가 목적지인 트랜잭션들을 스캔하라는 요청을 420에서 전송한다. 430에서 이러한 트랜잭션들을 복구한 후, Alice는 필요한 경우 그들을 집계(aggregate)하기 위해 주소에 UTXOs(@walletAlice가 목적지인 출력이 소비되지 않은(not spent) 트랜잭션들)를 나열(list)할 수 있다.
따라서 UTXO, 또는 집계의 경우 집계된 UTXOs는, 지불을 하기 위해 새로운 트랜잭션의 입력들로 사용될 수 있다.
반대로, 주소 @walletAlice는 음향 채널을 통해 코딩된 형태 σ(@walletAlice)로 전술한 것과 같이 단말기(220)를 갖는 제3자에게 전달될 수 있어서, 제3자는 Alice의 월렛 주소로 지불할 수있다.
따라서, Alice가 Bob에게 지불하기를 원하면, 그녀는 단말기(220)에서 그녀의 월렛 애플리케이션(225)을 열고 트랜잭션에 필요한 파라미터들을 충족시킨다.
그녀는 이체, 이체될 금액 및 수취인의 월렛 주소인, @walletBob에 대하여 사용하고자 하는 UTXO (또는 집계의 경우 UTXOs)를 그녀의 포트폴리오(portfolio)에서 선택한다. 일반성을 잃지 않고, 이하에서는 단지 하나의 UTXO만이 선택되는 것으로 가정된다. 이 UTXO는 소스 트랜잭션 T fund 의 출력이고, 다시 말하면 트랜잭션 T fund 가 이 UTXO를 생성한다.
그런 다음 월렛 애플리케이션은, 예를 들어 P2PKH(Pay to Public Key Hash) 스크립트를 통해, 새 트랜잭션 T a 를 구성한다.
T a 의 입력 세그먼트에서, 애플리케이션은 우선적으로 선택된 UTXO의 참조, 즉 소스 트랜잭션 T fund 의 해시, 즉 h(T fund )를 제공한다.
T a 의 출력 세그먼트에서, 애플리케이션은 다음으로 이체할 금액과 월렛 주소 @walletBob에서 이 금액을 잠그는 잠금 스크립트를 제공한다.
애플리케이션(225)은 다음으로 T a 의 입력 UTXO (소스 트랜잭션 T fund 에서 @walletAlice에 대한 UTXO), 즉 퍼블릭 키 및 프라이빗 키에 의한 서명을 보호하는 잠금 스크립트를 잠금해제하기 위한 암호화 요소들을 제공해야 한다.
이를 위해, 월렛 소프트웨어(225)는 소스 함수의 해시 h(T fund ), 소스 트랜잭션 T fund 의 잠금 스크립트(scriptPubKey), 암호화폐의 금액 및 월렛 주소 @walletBob에서 상기 금액을 잠그는 잠금 스크립트(scriptPubKey)를 포함하는, 메시지 M을 전송하는 것에 의하여 트랜잭션에 서명할 것을 물리적 월렛(210)에 요청한다.
메시지 M은 코드북 S를 통해 M을 코딩하여 획득된 형태 σ(M)으로, 음향 채널을 통해 DSP로 전송된다. 대응하는 초음파 신호들은 단말기의 라우드스피커(227)에 의해 전송되고 물리적 월렛(210)의 마이크로폰(213)에 의해 수신된다.
DSP는, 마이크로프로세서를 통해 지불 목적지의 주소 및 금액을 애플리케이션 walletctrl_app으로 전송한다. 그런 다음 애플리케이션은 사용자에게 트랜잭션을 (터치스크린의 아이콘 또는 버튼을 누르는 것에 의하여) 확인하도록 요청한다. 사용자가 time_out의 만료 전에 확인하면, 애플리케이션 walletctrl_app는 이를 DSP에 알리고, 이후 프라이빗 키(타원 곡선 서명 알고리즘(elliptic curve signature algorithm) 또는 ECDSA를 통해)로 메시지 M에 서명하고, 획득된 서명, Sig를 단말기(220)에 전송한다. 서명 Sig는, 코드북 S로부터의 신호들에 의해, 음향 채널을 통해 코딩된 형태, σ(Sig)로 전송된다.
다시, 신호 σ(Sig)는 월렛 애플리케이션, 로컬 DSP 또는 원격 디코딩 서버에 의해 디코딩될 수 있다. 디코딩 후, 월렛 애플리케이션(225)은 잠금해제 스크립트(scriptSig)를 형성하기 위해 서명 Sig를 복구하고 이를 Alice의 퍼블릭 키 pK a 와 연결(concatenates)한다. 애플리케이션 wallet_app은 트랜잭션 T a 의 입력 세그먼트를 형성하기 위해 소스 트랜잭션의 해시 h(T fund )와 잠금해제 스크립트를 제공한다.
그런 다음 월렛 애플리케이션은 사용자에게 지불을 확인(예를 들어 아이콘을 클릭하는 것에 의해)하도록 초대한다. 지불이 확인되면, 트랜잭션 T a 는 체인의 미래 블록(future block)에서 검증되고 통합되도록 P2P 네트워크의 노드들로 브로드캐스트된다.
도 4b는 Alice가 지불할 때 시스템(200)에서의 교환들(exchanges)을 개략적으로 요약한다.
단계 450에서, 사용자가 월렛 애플리케이션의 윈도우에서 수취인의 지불 금액 및 월렛 주소를 입력한 후, 후자는, 소스 트랜잭션의 해시 h(T fund ), 소스 트랜잭션의 잠금 스크립트, 암호화폐에서 지불 금액, 및 수취인의 월렛 주소인 @walletBob에서 금액을 잠그는 잠금 스크립트로부터 메시지 M을 구성한다.
(코드북 S에 의해) M을 코딩하여 획득된 신호 σ(M)은 코드북 S로부터의 랜덤 초음파 신호들에 의해 음향 채널을 통해 전송된다.
DSP에 의한 σ(M)의 디코딩 및 메시지 M의 복구 후, 후자는 451에서 수취인의 월렛 주소 및 금액을 제어 애플리케이션 walletctrl_app 으로 전송한다.
사용자에 의한 유효성검증은 452에서 walletctrl_app에 의해 DSP로 전송된다. DSP는 그 후 프라이빗 키 (EDCSA)에 의해 메시지 M에 서명하고, 신호 σ(Sig)를 획득하기 위해 코드북 S로 획득된 서명을 인코딩하고, 이전과 같이, 음향 채널을 통해, 후자를 단말기(220)에 전송한다.
신호 σ(Sig)는 서명 Sig를 제공하기 위해 단말기(220)에서 디코딩된다.
그 후, 370에서 월렛 애플리케이션 wallet_app은 트랜잭션의 입력 세그먼트를 형성하기 위하여 수신된 서명 및 Alice의 퍼블릭 키로부터 잠금해제 스크립트를 구성한다. 마찬가지로, 월렛 애플리케이션은 트랜잭션의 출력 세그먼트를 형성하기 위해 잠금 스크립트와 금액을 연결한다.
월렛 애플리케이션의 윈도우 상에서 사용자에 의해 지불이 검증되면, 후자는 480에서 P2P 네트워크의 다른 노드들로 지불을 브로드캐스트한다.
위의 설명에서, 블록체인은 비트코인이라고 가정했다. 또는, 스마트 계약들(smart contracts)을 기록하고 실행할 수 있는 블록체인 일 수 있다. 이러한 블록체인의 일 예는 이더리움이다. 스마트 계약은 블록체인을 사용하여 P2P 네트워크의 어떤 노드에서 실행될 수 있는 프로그램이다. 특히 소프트웨어 에이전트로서 데이터를 저장하고, 지불들을 주고받으며, 자율적이고 분산된 방식(autonomously and in a decentralised fashion)으로 동작들(actions)을 실행할 수 있다. 일반적으로, 스마트 계약은 특정 수의 조건들이 충족되는지 여부를 확인하고, 계약에 인코딩된 결과를 제공하기 위해 자동으로 실행된다.
디지털 키들의 물리적 월렛은 동일한 방식으로 스마트 계약의 일부로 자신을 인증하고, 예를 들어, 동의하는 것(give its consent)을 가능하게 한다. 이를 위해, 월렛 애플리케이션 (또는 이더리움 용어에 따른 계정 애플리케이션(account application))은 트랜잭션을 구성할 수 있고 소유자는 물리적 월렛을 사용하여 그 것을 서명할 수 있으므로, 서명된 트랜잭션은 블록체인에 저장된 스마트 계약으로 전송된다.
마지막으로, 전술한 설명에서 단말기(220)는 디지털-키 저장 장치(210)와 구별되는 것으로 가정되었다. 후자가 스마트 폰인 경우, 이는 인터넷에 연결된 단말기로서 기능할 수도 있다: 단말기는 장치와 일치하고, 제1 및 제2 소프트웨어 모듈들은 도 5a의 예시적인 실시예에 도시된 바와 같이 스마트 폰의 하나의 동일한 애플리케이션 (또는 심지어 별개의 애플리케이션들)의 모듈들이다. 그들은 이후 라우드스피커(217)와 마이크로폰(213) 사이의 로컬 음향 채널(local acoustic channel)을 통해 대화(dialogue)한다.
반대로, 단말기는 도 5b의 예시적인 실시예에 도시된 바와 같이, 단말기의 하나의 동일한 애플리케이션 (또는 심지어 별개의 애플리케이션들)의 일부를 형성하는 제1 및 제2 소프트웨어 모듈들과 그 보안 요소를 DSP(219)와 통합할 수 있다. 이 소프트웨어 모듈들은 이후, 제1 예시적인 구현에서와 같이, 라우드스피커(217)와 마이크로폰(213) 사이의 로컬 음향 채널을 통해 대화한다.
또한 키-저장 장치/단말기가 메시지들을 주고 받는 데 동일한 코드북 S를 사용할 수 있다고 설명했다. 대안적으로, 두 개의 별개의 코드북들 S 및 S'를 송신 및 수신을 위해 사용하는 것이 가능하고, 하나의 송신 코드북은 다른 하나의 수신 코드북이고, 그 반대도 가능하다. 이 실시예는 그것이 음향 채널 상에서 전이중 교환(full duplex exchange)을 허용하기 때문에 유리하다.
Claims (10)
- 마이크로폰(microphone, 213), 라우드스피커(loudspeaker, 217) 및 적어도 하나의 시크릿 키(secret key)를 저장하도록 의도된(intended) 보안 요소(secure element)를 갖는 DSP 프로세서(DSP processor, 219)를 포함하고, 상기 DSP는 코드북(codebook), S를 사용하는 인코더(encoder)/디코더(decoder)를 더 포함하고, 코드워드들(codewords)은, 상기 DSP의 메모리 또는 상기 DSP에 단독으로 액세스 가능한 보안 메모리(secure memory)에 저장되고, 랜덤(random) 또는 의사랜덤(pseudorandom) 초음파 신호들을 나타내며, 상기 DSP는 음향 채널(acoustic channel, 250)을 통해서만 장치의 외부와 통신하고, 상기 DSP는 상기 프라이빗 키에 의해 디코딩된 상기 메시지를 서명하고, 상기 라우드스피커(217)를 통해, 상기 음향 채널 상에서, S의 연속적인 워드들로 구성된 응답의 형태로 상기 메시지의 서명을 응답으로 전송하기 위해, 상기 마이크로폰 (213)을 통해, 음향 채널로부터 수신된, S의 워드들로 구성된 메시지를 디코딩하는데 적합한 것을 특징으로 하는 블록체인에 트랜잭션들을 서명하기 위한 디지털 키들을 저장하는 디지털-키 저장 장치.
- 제 1 항에 있어서,
상기 장치는 사용자가 프라이빗 키 또는 시드(seed)를 입력하여 연속적인 프라이빗 키들을 생성할 수 있는 휴먼 머신 인터페이스를 포함하고, 상기 프라이빗 키 또는 키들은 상기 DSP 프로세서의 상기 보안 요소에 저장되는 것을 특징으로 하는 디지털-키 저장 장치. - 제 2 항에 있어서,
상기 DSP 프로세서는 상기 사용자에 의해 입력되거나 상기 시드로부터 상기 DSP에 의해 생성된 프라이빗 키로부터 퍼블릭 키(public key)를 산출하기 위하여 일반적으로(typically) 타원 곡선 비대칭 암호시스템(elliptic curve asymmetric cryptosystem)을 사용하는 것을 특징으로 하는 디지털-키 저장 장치. - 제 3 항에 있어서,
상기 DSP 프로세서는 블록체인 상의 월렛 주소(wallet address)를 얻기 위해 해시 함수(hash function)에 의해 상기 퍼블릭 키의 해시를 산출하기에 적합한 것을 특징으로 하는 디지털-키 저장 장치. - 제 4 항에 있어서,
상기 장치는 상기 음향 채널 상에서 상기 퍼블릭 키 및/또는 상기 월렛 주소의 전송을 상기 DSP 프로세서에 요청하기에 적합한 소프트웨어 모듈(215)을 호스팅하는 것을 특징으로 하는 디지털-키 저장 장치. - 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
상기 장치는 스마트 폰의 형태로 구현되고, 상기 DSP 프로세서는 상기 스마트 폰의 운영 체제(operating system)가 동작하는 마이크로프로세서와는 다른 칩으로 구현되는 것을 특징으로 하는 디지털-키 저장 장치. - 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
상기 장치는 전원 공급 핀들(power supply pins) 이외의 임의의 연결 핀들(any connection pins)을 포함하지 않는 USB 키 형태로 구현되는 것을 특징으로 하는 디지털-키 저장 장치. - 단말기는 인터넷을 통해 블록체인을 구현하는 P2P 네트워크에 연결되며, 사용자에 의해, 제2 소프트웨어 모듈에 의해 디스플레이된 윈도우(window)에서, 지불 금액(amount of the payment) 및 제3자의 월렛 주소(wallet address)가 입력되고, 상기 제2 소프트웨어 모듈은 입력 세그먼트(segment) 및 출력 세그먼트를 포함하는 트랜잭션, 상기 사용자가 수취인(addressee)인 이전(prior) 트랜잭션(T fund )에 대한 적어도 하나의 참조(reference)를 포함하는 상기 입력 세그먼트, 상기 이전 트랜잭션을 잠그는(locking) 스크립트(script), 상기 금액을 포함하는 상기 출력 세그먼트 및 상기 제3자의 월렛 주소에서 상기 금액을 잠그는 스크립트를 구성(makes a transaction)하고, 상기 제2 소프트웨어 모듈은 상기 디지털-키 저장 장치에 형성된 트랜잭션을 포함하는 제1 메시지(M)를 전송(450)하고, 및, 사용자(452)에 의한 유효성 검사의 경우(in the event of validation by the user), 상기 DSP 프로세서는 상기 메시지에 서명하고, 따라서 제2 메시지(Sig)의 형태로 획득된 서명(signature)을 상기 단말기에 전송(460)하고, 제1 및 제2 메시지들은 코드북(codebook) S의 코드워드들(codewords)에 의해 인코딩된 형태로 음향 채널(acoustic channel)을 통해 전송되고, 및 제2 소프트웨어 모듈은, 상기 트랜잭션에서, 상기 이전 트랜잭션을 잠그는 상기 스크립트를, 수신된 서명 및 상기 사용자의 퍼블릭 키(public key)를 포함하는 잠금해제(unlocking) 스크립트로 대체(replacing)하는 것을 특징으로 하는, 제 1 항 내지 제 7 항 중 어느 한 항에 따른 디지털-키 저장 장치 및 제2 소프트웨어 모듈(225)을 호스팅하는 단말기(terminal, 220)에 의해 암호화폐(cryptocurrency)의 금액(sum)을, 사용자에 의해, 제3자에게 지불하는 지불 방법.
- 디지털-키 저장 장치는 제2 소프트웨어 모듈(225)을 호스팅하고, 인터넷을 통해 블록체인을 구현하는 P2P 네트워크에 연결되고, 사용자에 의해, 제2 소프트웨어 모듈에 의해 디스플레이된 윈도우(window)에서, 지불 금액(amount of the payment) 및 제3자의 월렛 주소(wallet address)가 입력되고, 상기 제2 소프트웨어 모듈은 입력 세그먼트(segment) 및 출력 세그먼트를 포함하는 트랜잭션, 상기 사용자가 수취인(addressee)인 이전(prior) 트랜잭션(T fund )에 대한 적어도 하나의 참조(reference)를 포함하는 상기 입력 세그먼트, 상기 이전 트랜잭션을 잠그는(locking) 스크립트(script), 상기 금액 뿐 아니라 상기 제3자의 월렛 주소에서 상기 금액을 잠그는 스크립트를 포함하는 상기 출력 세그먼트를 구성(makes a transaction)하고, 상기 제2 소프트웨어 모듈은 상기 디지털-키 저장 장치에 구성된 트랜잭션을 포함하는 제1 메시지(M)를 전송(450)하고, 및, 사용자(452)에 의한 유효성 검사의 경우(in the event of validation by the user), 상기 DSP 프로세서는 상기 메시지에 서명하고, 따라서 제2 메시지(Sig)의 형태로 획득된 서명(signature)을 상기 장치에 전송(560)하고, 제1 및 제2 메시지들은 코드북(codebook) S의 코드워드들(codewords)에 의해 인코딩된 형태로 음향 채널(acoustic channel, 250)을 통해 전송되고, 및 제2 소프트웨어 모듈은, 상기 트랜잭션에서, 상기 이전 트랜잭션을 잠그는 상기 스크립트를, 수신된 서명 및 상기 사용자의 퍼블릭 키(public key)를 포함하는 잠금해제(unlocking) 스크립트로 대체(replacing)하는 것을 특징으로 하는, 컴퓨터 또는 스마트폰의 형태로 구현된, 제 1 항 내지 제 5 항 중 어느 한 항에 따른 디지털-키 저장 장치에 의해, 사용자에 의하여 제3자에게, 암호화폐의 금액을 지불하는 지불 방법.
- 제 8 항 또는 제 9 항 중 어느 한 항에 있어서,
대체(substitution) 후에, 상기 트랜잭션(Ta)은 검증되고 블록체인의 다음 블록에 통합(incorporated)되기 위해 P2P 네트워크의 노드들에 브로드캐스트(broadcast, 480)되는 것을 특징으로 하는 지불 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1762129 | 2017-12-14 | ||
FR1762129A FR3075534B1 (fr) | 2017-12-14 | 2017-12-14 | Dispositif de stockage de cles numeriques pour signer des transactions sur une chaine de blocs |
PCT/FR2018/053211 WO2019115936A1 (fr) | 2017-12-14 | 2018-12-12 | Dispositif de stockage de clés numériques pour signer des transactions sur une chaine de blocs |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20200116455A true KR20200116455A (ko) | 2020-10-12 |
Family
ID=61802094
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020207020393A KR20200116455A (ko) | 2017-12-14 | 2018-12-12 | 블록체인에 트랜잭션들을 서명하기 위한 디지털 키들을 저장하는 장치 |
Country Status (8)
Country | Link |
---|---|
US (1) | US20210073795A1 (ko) |
EP (1) | EP3707857A1 (ko) |
JP (1) | JP2021507586A (ko) |
KR (1) | KR20200116455A (ko) |
CN (1) | CN111656732A (ko) |
AU (1) | AU2018382778A1 (ko) |
FR (1) | FR3075534B1 (ko) |
WO (1) | WO2019115936A1 (ko) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201720946D0 (en) * | 2017-12-15 | 2018-01-31 | Nchain Holdings Ltd | Computer-implemented system and method |
SG11202005567QA (en) | 2017-12-13 | 2020-07-29 | Nchain Holdings Ltd | System and method for securely sharing cryptographic material |
SG11202108153QA (en) * | 2019-02-15 | 2021-08-30 | Nchain Holdings Ltd | Computer-implemented systems and methods for implementing transfers over a blockchain network |
KR20210041404A (ko) * | 2019-10-07 | 2021-04-15 | 삼성전자주식회사 | 전자 장치 및 그 전자 장치를 이용한 블록체인 주소 관리 방법 |
CN110889128A (zh) * | 2019-11-27 | 2020-03-17 | 上海禾一网络科技有限公司 | 基于区块链存储与交换加密密钥的输入方法和装置 |
CN112468301B (zh) * | 2020-10-23 | 2022-08-02 | 苏州浪潮智能科技有限公司 | 一种基于区块链的云平台认证的方法、系统、设备及介质 |
US12107966B2 (en) * | 2021-06-26 | 2024-10-01 | Ceremorphic, Inc. | Device authentication using blockchain |
CN113315639A (zh) * | 2021-07-05 | 2021-08-27 | 安徽中科晶格技术有限公司 | 身份认证系统及方法 |
CN113888329A (zh) * | 2021-10-04 | 2022-01-04 | 杭州复杂美科技有限公司 | 通用钱包找回方法、计算机设备和存储介质 |
US20230421363A1 (en) * | 2022-06-28 | 2023-12-28 | Fmr Llc | Secure storage and transmission of a cryptocurrency encryption key |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7328350B2 (en) * | 2001-03-29 | 2008-02-05 | Arcot Systems, Inc. | Method and apparatus for secure cryptographic key generation, certification and use |
US20030217268A1 (en) * | 2002-05-15 | 2003-11-20 | Alexander Gantman | System and method for using acoustic digital signature generator as oracle |
US8879986B2 (en) * | 2005-12-31 | 2014-11-04 | Michelle Fisher | Wireless bidirectional communications between a mobile device and associated secure element using inaudible sound waves |
US20100281261A1 (en) * | 2007-11-21 | 2010-11-04 | Nxp B.V. | Device and method for near field communications using audio transducers |
RU2409897C1 (ru) * | 2009-05-18 | 2011-01-20 | Самсунг Электроникс Ко., Лтд | Кодер, передающее устройство, система передачи и способ кодирования информационных объектов |
JP6120206B2 (ja) * | 2012-10-11 | 2017-04-26 | 公立大学法人岩手県立大学 | 音響コードの符号化・復号化装置および音響コードの符号化・復号化方法 |
US20150324787A1 (en) * | 2014-05-08 | 2015-11-12 | Sequitur Labs, Inc. | Policy-Based Control and Augmentation of Cryptocurrencies and Cryptocurrency Security |
US20150365384A1 (en) * | 2014-06-16 | 2015-12-17 | Wul4 | System and Methods for Transmitting Information Using Inaudible Acoustic Signals |
EP2966792B1 (en) * | 2015-06-17 | 2018-05-16 | Nxp B.V. | Ultra-sound communication system |
US9916432B2 (en) * | 2015-10-16 | 2018-03-13 | Nokia Technologies Oy | Storing and retrieving cryptographic keys from biometric data |
CN108780548B (zh) * | 2016-02-23 | 2022-08-05 | 区块链控股有限公司 | 将椭圆曲线加密用于个人装置安全以共享秘密 |
CN106779636B (zh) * | 2016-11-29 | 2020-06-26 | 北京欧凯联创网络科技有限公司 | 一种基于手机耳机接口的区块链数字货币钱包 |
CN107392702A (zh) * | 2017-07-10 | 2017-11-24 | 北京云知科技有限公司 | 一种基于声纹的商品推送方法及装置 |
-
2017
- 2017-12-14 FR FR1762129A patent/FR3075534B1/fr not_active Expired - Fee Related
-
2018
- 2018-12-12 CN CN201880087464.7A patent/CN111656732A/zh active Pending
- 2018-12-12 KR KR1020207020393A patent/KR20200116455A/ko not_active Application Discontinuation
- 2018-12-12 JP JP2020532556A patent/JP2021507586A/ja not_active Ceased
- 2018-12-12 AU AU2018382778A patent/AU2018382778A1/en not_active Abandoned
- 2018-12-12 US US16/771,754 patent/US20210073795A1/en not_active Abandoned
- 2018-12-12 EP EP18833920.4A patent/EP3707857A1/fr active Pending
- 2018-12-12 WO PCT/FR2018/053211 patent/WO2019115936A1/fr unknown
Also Published As
Publication number | Publication date |
---|---|
WO2019115936A1 (fr) | 2019-06-20 |
EP3707857A1 (fr) | 2020-09-16 |
JP2021507586A (ja) | 2021-02-22 |
FR3075534B1 (fr) | 2020-01-10 |
US20210073795A1 (en) | 2021-03-11 |
FR3075534A1 (fr) | 2019-06-21 |
AU2018382778A1 (en) | 2020-07-23 |
CN111656732A (zh) | 2020-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20200116455A (ko) | 블록체인에 트랜잭션들을 서명하기 위한 디지털 키들을 저장하는 장치 | |
JP7482982B2 (ja) | ブロックチェーンにおけるコンピュータ実行方法、システム及び記憶媒体 | |
US20180144114A1 (en) | Securing Blockchain Transactions Against Cyberattacks | |
CN101897165B (zh) | 数据处理系统中验证用户的方法 | |
CN103635912B (zh) | 用于对向认证令牌发送的数据编码和解码的方法和装置 | |
JP4996904B2 (ja) | 生体認証システム、登録端末、認証端末、及び認証サーバ | |
EP2648163A2 (en) | A personalized biometric identification and non-repudiation system | |
WO2019032113A1 (en) | BIOMETRIC VERIFICATION METHOD USING A CERTIFICATION TOKEN | |
CN105052072A (zh) | 远程认证和业务签名 | |
KR101976027B1 (ko) | 암호 화폐의 전자 지갑 생성 및 백업 방법 및 이를 이용한 단말 장치와 서버 | |
JP2010146245A (ja) | 生体認証システムおよびその方法 | |
WO2008030184A1 (en) | Improved authentication system | |
US10402823B1 (en) | System for exchanging private keys for mutual settlements between users of a cryptocurrency outside blockchains | |
KR20110081105A (ko) | 보안 금융 트랜잭션의 모니터링 | |
JP6871411B2 (ja) | 暗号動作のセキュアな実行 | |
WO2013044192A2 (en) | Securing transactions against cyberattacks | |
US11128453B2 (en) | Visual image authentication | |
KR20200001178A (ko) | 암호화폐지갑의 연상기호 코드 적용 방법 | |
WO2019237258A1 (zh) | 数字货币交互方法,数字货币物理载体,终端设备及存储介质 | |
Reddy et al. | A comparative analysis of various multifactor authentication mechanisms | |
JP2020071846A (ja) | ユーザ認証システム及びこれを用いたユーザ認証方法 | |
JP2020091674A (ja) | 仮想通貨提供システム、方法及びプログラム | |
JP7099975B2 (ja) | 認証情報管理サーバ装置、認証情報管理システム及び認証情報管理方法 | |
CN112465500A (zh) | 用于在区块链内保护私钥交易的系统和方法 | |
JP2024507304A (ja) | ブロックチェーン基盤の認証及び取り引きシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |