KR20210065995A - 디지털 리소스에 대한 액세스를 전송하기 위한 컴퓨터 구현된 시스템 및 방법 - Google Patents
디지털 리소스에 대한 액세스를 전송하기 위한 컴퓨터 구현된 시스템 및 방법 Download PDFInfo
- Publication number
- KR20210065995A KR20210065995A KR1020217012522A KR20217012522A KR20210065995A KR 20210065995 A KR20210065995 A KR 20210065995A KR 1020217012522 A KR1020217012522 A KR 1020217012522A KR 20217012522 A KR20217012522 A KR 20217012522A KR 20210065995 A KR20210065995 A KR 20210065995A
- Authority
- KR
- South Korea
- Prior art keywords
- key
- transaction
- blockchain
- private key
- bob
- 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/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
-
- 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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- 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
- H04L9/3073—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 involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
-
- 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
-
- 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)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Storage Device Security (AREA)
Abstract
리소스에 대한 액세스 또는 이의 제어를 전송하기 위한 컴퓨터-구현된 방법이 제공된다. 방법은 데이터 항목()을 제1 블록체인 트랜잭션에 제공함으로써 리소스의 제어를 전송하기 위해 상환 가능한 블록체인 트랜잭션을 제공하는 단계 - 데이터 항목은 노출 가능한 값() 및 비밀 값() 모두의 제어기에 의해서만 결정 가능함 -; 및 상기 제어기가 데이터 항목을 결정하는 것을 가능하게 하도록 비밀 값의 제어기에 노출 가능한 값을 제공하는 단계를 포함한다. 방법은 비트코인 블록체인을 사용하여 또는 상이한 블록체인의 조합을 사용하여 수행될 수 있다.
Description
본 개시는 일반적으로 리소스에 대한 액세스 또는 이의 제어의 보안 전송에 관한 것이며, 더 구체적으로 하나 이상의 블록체인 트랜잭션(blockchain transactions)을 사용하여 송신된 암호화 키를 통해, 이러한 액세스 또는 제어의 원자적 전송(atomic transfer)에 관한 것이다. 본 개시는 비트코인 프로토콜(Bitcoin protocol)의 임의의 변형에서의 사용에 특히 적합하지만 이에 제한되지 않는다.
본 문서에서, '블록체인'이란 용어를 모든 형태의 전자적인, 컴퓨터-기반의, 분산 원장(distributed ledgers)을 포함하는 것으로 사용한다. 이는 컨센서스-기반의 블록체인(consensus-based blockchain) 및 트랜잭션-체인 기술, 허가된 및 허가되지 않은 원장, 공유 원장 및 이의 변형을 포함한다. 다른 블록체인 구현이 제안되고 개발되었지만, 블록체인 기술의 가장 널리 알려진 응용은 비트코인 원장이다. 비트코인이 본원에서 편의 및 예시의 목적으로 언급될 수 있지만, 본 개시가 비트코인 블록체인을 통해 사용하는 것으로 제한되지는 않으며, 대안적인 블록체인 구현 및 프로토콜이 본 개시의 범주 내에 속한다는 점이 유의되어야 한다. "사용자"라는 용어는 본원에서 인간 또는 프로세서 기반의 리소스를 지칭할 수 있다.
블록체인은 결국 트랜잭션으로 구성되는 블록으로 구성되는 컴퓨터-기반의 탈중앙화된(decentralised) 분산 시스템으로 구현된 피어 투 피어(peer-to-peer) 전자 원장이다. 각 트랜잭션은 블록체인 시스템에서 참가자 간의 디지털 자산의 제어의 송신을 인코딩하는 데이터 구조이며, 적어도 하나의 입력 및 적어도 하나의 출력을 포함한다. 각 블록은 블록이 그의 시작 이래로 블록체인에 기록된 모든 트랜잭션의 영구적이고 변경할 수 없는 레코드를 생성하기 위해 함께 연쇄되도록 이전 블록의 해시(hash)를 포함한다. 트랜잭션은 그 입력 및 출력에 내재된(embedded) 스크립트로 알려진 소규모 프로그램을 포함하고, 이는 트랜잭션의 출력에 어떻게 또는 누구에 의해 액세스될 수 있는지를 지정한다. 비트코인 플랫폼에 대해, 이들 스크립트는 스택-기반의 스크립팅 언어(stack-based scripting language)를 사용하여 기록된다.
트랜잭션이 블록체인에 기록되게 하기 위해, 이는 "유효성 검증(validated)"되어야 한다. 네트워크 노드(채굴자)는, 각 트랜잭션이 유효하고, 무효한 트랜잭션이 네트워크로부터 거부됨을 보장하기 위한 작업을 수행한다. 노드 상에 설치된 소프트웨어 클라이언트는 그의 잠금 및 잠금 해제 스크립트를 실행함으로써, 소비되지 않은 트랜잭션(unspent transaction, UTXO)에 대해 이 유효성 검증 작업을 수행한다. 잠금 및 잠금 해제 스크립트의 실행이 TRUE로 평가되는 경우, 트랜잭션은 유효하고 트랜잭션은 블록체인에 기록된다. 따라서, 트랜잭션이 블록체인에 기록되게 하기 위해, 이는 i) 트랜잭션을 수신하는 제1 노드에 의해 유효성 검증되어야 하고 - 트랜잭션이 유효성 검증되는 경우, 노드는 네트워크에서 다른 노드에 이를 중계(relay)함 -; ii) 채굴자에 의해 구축되는 신규 블록에 추가되어야 하며; 및 iii) 채굴, 즉 과거 트랜잭션의 공공 원장에 추가되어야 한다.
암호 화폐 구현의 사용에 대해 블록체인 기술이 가장 널리 알려져 있지만, 디지털 기업가는 신규 시스템을 구현하기 위해 비트코인이 기초로 하는 암호화 보안 시스템 및 블록체인 상에 저장될 수 있는 데이터의 사용을 조사하기 시작하였다. 블록체인이 암호 화폐의 영역으로 제한되지 않는 자동화된 작업 및 프로세스에 대해 사용될 수 있는 경우, 이는 매우 유리할 것이다. 이러한 해결책은 블록체인의 장점(예를 들어, 이벤트의 영구적인 변조 방지 레코드, 분산 처리 등)을 이용할 수 있으면서, 그의 응용에서 더욱 범용성이 있을 것이다.
현재 연구의 하나의 영역은 "스마트 계약(smart contracts)"의 구현을 위한 블록체인의 사용이다. 이는 기계 판독가능 계약 또는 협의(agreement)의 조건(terms)의 실행을 자동화하도록 설계된 컴퓨터 프로그램이다. 자연어로 기록될 전통적인 계약과는 다르게, 스마트 계약은 결과를 생성하기 위해 입력을 처리할 수 있는 규칙을 포함하고, 결국 그의 결과에 의존하여 동작이 수행되게 할 수 있는 기계 실행가능 프로그램이다.
블록체인에 관련된 다른 관심 분야는 블록체인을 통해 실세계 개체를 나타내고 전송하기 위한 '토큰(token)'(또는 '컬러 코인(coloured coin)')의 사용이다. 잠재적으로 민감한 항목 또는 비밀 항목은 식별 가능한 의미 또는 값을 갖지 않는 토큰에 의해 나타날 수 있다. 따라서, 토큰은 실세계 항목이 블록체인으로부터 참조되는 것을 허용하는 식별자의 역할을 한다.
원자 스왑(atomic swap)의 개념은 암호 화폐 커뮤니티에서 이전에 논의되었다. 파티(parties) 간의 교환은 모든 참가자가 그들의 원하는 리소스(예를 들어, 암호화폐 토큰 또는 코인)를 수신하거나 또는 어느 것도 하지 않는다는 의미에서 "원자적이다(atomic)". 글을 쓰는 시점에서, Wikipedia는 원자 스왑을 다음과 같이 설명한다 - "신뢰된 제3 파티에 대한 요구 없이, 하나의 암호화폐의 다른 암호화폐로의 교환을 허용하는 암호화폐의 제안된 특징(proposed feature). 전통적인 암호화폐에서, 하나의 파티가 되돌아오는 화폐를 수신하지 않으면서 화폐를 전송하는 것을 방지하기 위해, 암호화폐 거래소(cryptocurrency exchange)와 같은 신뢰된 제3 파티가 암호화폐의 스왑을 수행할 필요가 있다. 파티가 지정된 시간 내에 스왑될 화폐를 전달해야 하도록, 원자 스왑 시스템은 해시 시간-잠금된(time-locked) 스마트 계약(smart contract)을 사용하거나, 또는 그렇지 않은 경우 트랜잭션은 취소될 것이다. 이는 스왑이 일어나거나 어느 화폐도 스왑되지 않을 것이라는 원자성(atomicity)을 보존한다" - https://en.wikipedia.org/wiki/Atomic_swap.
따라서, 원자 스왑은 블록체인을 통해 행해지는 전송에 대해 향상된 보안을 제공하는데, 왜냐하면 신뢰된 제3 파티에 대한 요구의 제거가 착취(exploits) 및 악의적인 개입(malicious interventions) - 다수의 보안 위반 또는 "핵(hacks)"이 Mount Gox와 같은 암호화폐 거래소에 대해 수행되었음 -의 위험을 제거하기 때문이다.
따라서, 블록체인 기술에 의해 제공되는 불신 및 불변성을 갖는 리소스를 원자적으로 교환하는 리소스의 암호로-강제된(cryptographically-enforced) 리소스 교환 방법을 제공하는 것이 바람직하고, 이는 블록체인-구현된 네트워크를 통해 행해지는 교환에 대한 보안을 향상시킨다.
이러한 개선된 해결책이 이제 고안되었다.
따라서, 본 개시에 따라, 첨부된 청구범위에 정의된 방법이 제공된다.
본 개시에 따라, 컴퓨터-구현된 방법이 제공될 수 있다. 이는 리소스의 제어를 전송하기 위한 방법으로서 설명될 수 있다. 이는 블록체인 네트워크에 걸쳐 또는 이를 통해 리소스 전송을 제어할 수 있다. 추가적으로 또는 대안적으로, 이는 보안 전송 방법으로서 설명될 수 있다. 추가적으로 또는 대안적으로, 이는 제어된 리소스가 언제 및/또는 누구에 의해 액세스될 수 있는지를 제어하기 위한 보안 방법으로서 설명될 수 있다. 리소스는 암호 화폐의 일부 또는 토큰화된 항목/자산/엔티티와 같이 블록체인에 저장되거나, 또는 이로부터 참조되는 리소스일 수 있다.
방법은: 적어도 하나의 데이터 항목을 제1 블록체인 트랜잭션에 제공함으로써 제1 리소스에 대한 액세스를 가능하게 하도록 상환 가능한(redeemable) 제1 블록체인 트랜잭션을 제공하는 단계 - 데이터 항목은 노출 가능한 값 및 비밀 값 모두의 제어기에 의해서만 결정 가능함 -; 및 상기 제어기가 상기 데이터 항목을 결정하는 것을 가능하게 하도록 비밀 값의 제어기에 노출 가능한 값을 제공하는 단계를 포함할 수 있다. 본 개시의 맥락에서, "액세스를 가능하게 하는 것"은 암호 화폐의 양과 같은 리소스의 제어를 전송하거나 또는 문서, 온라인 리소스 또는 보안 액세스 코드에 대한 액세스를 가능하게 하는 것을 포함하지만 이에 제한되지 않는다.
이 방법은 이들 블록체인의 프로토콜이 하나 이상의 공통 해시 함수를 공유하도록 요구하지 않으면서, 리소스에 대한 액세스 또는 이의 제어가 하나 이상의 블록체인을 사용하여 안전하게 전송되는 것을 가능하게 하며, 그에 의해 전송이 초래될 수 있는 블록체인의 수를 증가시키는 장점을 제공한다. 따라서, 이러한 제어 또는 액세스의 전송의 보안 및 효율성이 보존되면서, 전송의 다양성을 증가시킨다. 또한, 다른 방식으로 호환되지 않는 네트워크/블록체인 프로토콜을 통한 전송을 허용한다.
데이터 항목은 제1 암호화 키 쌍의 제1 개인 키를 포함할 수 있다.
제1 블록체인 트랜잭션은 상환 가능하도록 제2 암호화 키 쌍의 제2 개인 키를 제공하는 것을 더 요구할 수 있으며, 여기서 제2 암호화 키 쌍은 제1 리소스의 의도된 수신자와 연관된다.
이는 제1 개인 키의 원치 않는 지식을 가진 임의의 행위자가 제1 트랜잭션을 상환하는 것을 방지함으로써 방법의 보안을 증가시키는 장점을 제공한다.
제1 개인 키는 결정성 암호화 키 쌍의 결정성 개인 키일 수 있으며, 여기서 상기 쌍의 결정성 공개 키는 제1 암호화 키 쌍의 제1 공개 키 및 제2 암호화 키 쌍의 제2 공개 키를 사용하여 도출된다.
이는 제1 개인 키의 원치 않는 노출이 제1 트랜잭션을 상환하기 위한 의도된 수신자의 능력을 유지하면서 제1 트랜잭션을 손상시키지 않도록 난독화(obfuscation)의 수준을 제공함으로써 방법의 보안을 더욱 증가시킨다.
노출 가능한 값을 상기 제어기에 제공하는 단계는: 적어도 하나의 데이터 항목을 제2 블록체인 트랜잭션에 제공함으로써 제2 리소스에 대한 액세스를 가능하게 하기 위해 상환 가능한 제2 블록체인 트랜잭션을 제공하는 단계 - 제2 블록체인 트랜잭션의 상환(redemption)은 노출 가능한 값이 상기 제어기에 제공되게 함 -; 및 제2 블록체인 트랜잭션을 상환하는 단계를 포함할 수 있다.
이는 해시 함수의 사용을 요구하지 않으면서 리소스 액세스 또는 제어의 원자 스왑이 수행되게 하는 것을 가능하게 하며, 그로 인해 공통 해시 함수를 공유하는 이들의 블록체인 프로토콜에 대한 제한 없이 수행될 안전하고 동시적인 디지털 교환을 위한 메커니즘을 제공한다.
어느 위의 블록체인 트랜잭션의 상환은 데이터 항목에 대응하는 암호화 서명을 계산하는 것, 및 트랜잭션에 저장된 값을 계산된 서명의 적어도 일부에 비교하는 것을 포함할 수 있다.
이는 암호화 알고리즘의 상당 부분이 오프-블록(off-block)에서 수행되는 것을 가능하게 하며, 그로 인해 블록체인으로부터 암호화 보안 수준을 유지하고 제1 트랜잭션의 크기를 감소시키고(따라서 저장소의 요구 사항 감소시키고), 방법의 효율성 증가시키는 관련된 장점을 제공하는 데 필요한 작업을 분산시킬 수 있다.
비밀 값은 디지털 서명 프로세스에 사용되는 임시 키(ephemeral key)일 수 있다.
본 개시는 또한 프로세서; 및 프로세서에 의한 실행의 결과로서, 시스템이 본원에 설명된 컴퓨터-구현된 방법의 임의의 실시예를 수행하게 하는 실행 가능한 명령어를 포함하는 메모리를 포함하는 시스템을 제공한다.
본 개시는 또한, 컴퓨터 시스템의 프로세서에 의해 실행되는 결과로서, 컴퓨터 시스템이 본원에서 설명된 컴퓨터-구현된 방법의 실시예를 적어도 수행하게 하는 실행 가능한 명령어를 저장하는 비일시적 컴퓨터 판독 가능 저장 매체를 제공한다.
본 개시의 이들 및 다른 양상은 본원에서 설명되는 실시예로부터 명백해지며 이를 참조하여 설명될 것이다. 이제, 본 개시의 실시예가 첨부 도면을 참조하여 단지 예시로서 설명될 것이다:
도 1은 종래 기술의 차별화된 인코딩 규칙 테이블(Distinguished Encoding Rules table)을 도시한다.
도 2는 서명의 일부를 추출하기 위한 스크립트를 포함하는 테이블을 도시한다.
도 3은 본 개시의 실시예의 단계를 포함하는 흐름도를 도시한다.
도 4는 본 개시의 실시예의 단계를 포함하는 흐름도를 도시한다.
도 5는 본 개시의 실시예의 단계를 포함하는 흐름도를 도시한다.
도 6은 다양한 실시예가 구현될 수 있는 컴퓨팅 환경을 도시하는 개략도이다.
도 1은 종래 기술의 차별화된 인코딩 규칙 테이블(Distinguished Encoding Rules table)을 도시한다.
도 2는 서명의 일부를 추출하기 위한 스크립트를 포함하는 테이블을 도시한다.
도 3은 본 개시의 실시예의 단계를 포함하는 흐름도를 도시한다.
도 4는 본 개시의 실시예의 단계를 포함하는 흐름도를 도시한다.
도 5는 본 개시의 실시예의 단계를 포함하는 흐름도를 도시한다.
도 6은 다양한 실시예가 구현될 수 있는 컴퓨팅 환경을 도시하는 개략도이다.
암호 화폐의 맥락에서, 해시 퍼즐(hash puzzle)을 생성하기 위해 해시 함수가 사용될 수 있다. 이는 사전-이미지 X가 함수에 대한 입력에 제공된 경우 및 그 경우에만 TRUE로 평가될 함수 이다. 즉
SHA-256의 경우, 이러한 함수는 다음에 의해 비트코인 스크립트로 주어진다
해시 퍼즐은 트랜잭션이 상환되면, 사전-이미지 X가 상환 스크립트의 입력에 노출되고, 그러므로 블록체인에서 보임을 보장하기 위해, 블록체인 트랜잭션의 스크립트 가령, 상환 스크립트에서 사용될 수 있다.
ECDSA 프로토콜 하에, 개인 키 및 메시지 해시 H(m)에 대한 서명은 다음의 방식으로 생성된다(메시지 해시는 모두에게 알려지지만, 개인 키는 메시지에 서명한 사람에게만 알려짐을 유의한다).
값 r은 서명의 하나의 절반을 형성한다. 제2 절반 s는 다음의 수학식에 의해 정의된다
ECDSA의 하나의 중요한 특징은 임시 키 k가 알려지면 개인 키가 다음과 같이 계산될 수 있다는 것이다:
차별화된 인코딩 규칙(Distinguished Encoding Rules; DER)[S. Blake-Wilson, D. Brown, P. Lambert, Use of Elliptic Curve Cryptography (ECC) Algorithms in Cryptographic Message Syntax (CMS), Network Working Group (2002); https://tools.ietf.org/html/rfc3278]에 따라, ECDSA 서명의 데이터 구조에 대한 특정한 인코딩이 도 1에 도시된 테이블로 주어진다(더미(dummy) r 및 s 데이터 값이 사용된다는 것에 유의한다).
도 1을 참조하면, 시그해시(sighash) 타입을 나타내는 마지막 바이트는 표준 DER 인코딩은 아니지만 비트코인 서명 인코딩에 사용됨을 유의한다. 서명의 4번째 바이트는 r의 길이를 나타낸다. 이는 r의 이진 표현에서 선행 비트(leading bit)가 0인 경우 32 바이트이거나, 또는 선행 비트가 1인 경우 33 바이트이며, 이 경우 추가적인 0-값 바이트가 바이트 스트링에 추가된다. 서명의 5번째 바이트 내지 36 번째 또는 37 번째 바이트는 값 또는 r 그 자체를 나타낸다.
이제 개인 키 퍼즐을 생성하기 위한 방법이 설명된다.
이 형태의 퍼즐은 타원 곡선 암호화(Elliptic Curve Cryptography, ECC) 공개/개인 키 쌍의 대수 특성이 리소스 액세스 및 제어의 구현에 이용되는 것을 허용한다. 두 개의 공개 키의 합이 계산되면, 대응하는 개인 키는 개별적인 개인 키의 합일 것이다.
이를 해시 함수와 비교한다: 두 개의 값의 해시의 합이 계산되면 대응하는 사전-이미지는 보통 개별적인 사전-이미지의 합이 아니다.
개별적인 사전-이미지의 해시 값의 합이 사전-이미지의 합의 해시 값과 동일한 (준동형 해시 함수(homomorphic hash functions)로 알려진) 해시 함수가 존재하지만, 이는 일반적으로 구현할 수 없다. 더욱이, 공개/개인 키 쌍은 타원 곡선 디지털 서명 알고리즘(Elliptic Curve Digital Signature Algorithm, ECDSA)을 사용하여 데이터의 암호화/복호화 및 메시지의 서명을 허용한다.
원자 스왑을 구현하는 데 있어서, 개인 키 퍼즐의 예시가 아래에 개시된다. 이들 예시는 본원에 개시된 방법의 사용자가 공통 해시 함수를 공유하지 않는 블록체인에서 교차-체인 스왑을 수행하는 것을 허용한다. 예시는 공개/개인 키 쌍에 의해 제어되는 리소스의 제어 또는 이에 대한 액세스의 전송을 포함한다.
이 애플리케이션 전체에 걸쳐, 개인 키 퍼즐은 ECC 키 쌍 및 ECDSA 프로토콜의 측면에서 공식화된다. 하지만, 본 개시는 이 표준으로 제한되지 않는다. 예를 들어, 방법은 슈노르(Schnorr) 서명, 및 DSA 프로토콜을 통한 RSA 키 쌍에도 적용 가능하다.
이러한 함수는 현재 존재하지 않는다. 트랜잭션 상환 스크립트에서 의 포함은 트랜잭션을 상환하기 위해 상환 스크립트에 제공된 입력이 대응하는 개인 키 를 포함해야 한다는 것을 보장하며, 이는 이 블록체인에서 공중(public)에 노출됨을 의미한다. 하지만, 적어도 상환 스크립트가 비트코인 블록체인에서의 블록체인 트랜잭션의 상환 스크립트인 경우, 이러한 함수는 트랜잭션이 구성되고 사용되는 것을 막을 매우 많은 수의 연산자를 요구할 것이다. 이 문제는 아래에 더 상세히 설명된다.
타원 곡선 점 곱셈(elliptic curve point multiplication)을 수행하는 연산자 OP_ECMULT가 존재하는 것으로 가정한다. 이는 타원 곡선의 점(예를 들어, 생성기 점 G)이 양의 정수(예를 들어, )에 의해 곱해진다는 것을 의미한다. 즉:
이 경우, 개인 키 퍼즐은 다음과 같이 주어질 것이다:
하지만, 현재, 비트코인 스크립트에는 이러한 타원 곡선 연산자가 있지 않다.
OP_MOD와 같이, 비트코인 2018년 5월 포크(fork)에서 일부 이전에 종료된(retired) op 코드의 복원(reinstatement) 이후에, 비트코인 스크립트 내에서 타원 곡선 곱셈을 수행하기 위해 즉, 다른 연산자를 사용하여 OP_ECMULT를 구성하기 위해 요구되는 모든 연산자가 기술적으로 존재한다. 하지만, 이것이 가능하지 않은 실질적인 이유가 있다.
이러한 함수는 최소 256번의 반복을 요구할 것이며, 각 반복은 여러 라인의 복잡한 연산을 포함한다. 특히, 각 반복은 모듈형 역(modular inverse)을 취하기 위해 확장된 유클리드 알고리즘(extended Euclidean algorithm)을 적용하는 것을 요구할 것이다. 따라서, 이 요구되는 스크립트의 크기는 201개의 op 코드 또는 10KB의 제한을 훨씬 초과할 것이다.
대조적으로, 아래 제시된 방법은 단지 수개의 라인의 op 코드를 사용한다.
개인 키가 오프-블록(off-block)으로 계산되는 것을 포함하는 개인 키 퍼즐을 생성하고 이용하기 위한 방법의 실시예가 아래에 개시된다. 실시예에서, 개인 키 그 자체는 상환 스크립트의 입력에 노출되지 않고 오히려 서명의 구성요소가 노출된다.
핵심 아이디어는 특정 임시 키에 관련된 서명을 포함하는 잠금 해제 스크립트를 요구하는 것이다. 그 후, 임시 키를 아는 누군가에 의해, 서명으로부터 대응하는 개인 키가 계산될 수 있다.
비트코인 스크립트를 참조로 설명된 실시예는 어느 비-표준 스크립트 연산을 사용하지 않는다.
함수 이 생성되며, 여기서 은 공개 키이고 은 특정 임시 키 로부터 도출된다. 이 함수는 입력 에서 연산되는 경우 및 그 경우에만 TRUE로 평가되며, 은 특정 임시 키 을 사용하여 의 서명을 나타낸다. 알려진 임시 키가 있는 서명이 대응하는 개인 키를 노출하므로, 이 공개되면 을 아는 어느 누구에 의해 개인 키가 계산될 수 있다.
도 2를 참조하면, 서명의 r 부분을 추출하는 비트코인 스크립트가 개시된다. 위에 주어진 서명의 DER 인코딩에 따라, r 부분을 추출하기 위해 5번째 바이트에서 36번째 또는 37번째 바이트까지 서명을 분할해야 하며, 이는 4번째 바이트의 값에 의존한다. 이는 다음의 비트코인 스크립트에 의해 달성된다:
공개 키 을 고려한다. 위에서 언급된 바와 같이, 대응하는 잠금 해제 스크립트가 임시 키의 제어기가 의 개인 키를 결정하기에 충분한 정보를 노출하도록 잠금 스크립트를 생성하기 위한 방법이 개시된다.
방법은 잠금 해제 스크립트가 로 표기된 특정 임시 키를 사용하는 의 서명을 포함하도록 강제하는 것을 포함한다. 로 표기된 대응하는 개인 키는 임시 키를 아는 누구에 의해 서명으로부터 계산될 수 있다. 방법의 사용자는 사용할 의 값에 동의한다. 사용자는 적합하게 안전한 알려진 방법을 사용하여 이 값을 서로에게 전달할 수 있다.
비트코인 블록체인과 호환 가능한 상환 스크립트의 예시는 다음으로 주어진다:
위의 테이블에서 제1 행은 공개 키 를 알트-스택(alt-stack)에 배치하고 서명을 복제한다. 제2 행은 올바른 임시 키가 사용되었는지를 검사한다. 제3 행은 알트-스택으로부터 공개 키를 검색하고(retrieves), 서명이 유효한지 검사한다. 위에서 사용된 비트코인 스크립트 연산, 즉 OP_DUP, OP_TOALTSTACK 및 OP_FROMALTSTACK은 엄격한 요구 사항이 아니며, 예를 들어 입력 변수를 중복시키고 이를 재정렬하는 경우 드랍될(dropped) 수 있다.
비트코인 스크립트에서 개인 키 퍼즐을 공식화하기 위한 대안적인 방식이 있음을 유의한다. 특히, OP_SPLIT 대신에 OP_CAT 연산을 사용할 수 있다. 이 경우, 상환 스크립트에 대한 입력은 s 구성요소만을 포함한 부분 서명일 것이다(미리 결정된 임시 키 및 개인 키 를 사용하여 계산될 것이다). 그 후, 상환 스크립트는 완전한 서명을 생성하기 위해 미리 결정된 r 값을 부분 서명과 연결한다. 이 서명은 구조에 의해, 원하는 r을 가질 것이다. 그 후, 이는 표준 checksig 연산을 수행하도록 남겨질 것이다.
원자 스왑은 두 개의 트랜잭션 - 하나는 Alice로부터 Bob으로, 다른 하나는 Bob으로부터 Alice로 -을 지칭한다. 원자 스왑은 두 트랜잭션 모두 상환 가능하거나, 어느 것도 상환 가능하지 않음을 보장한다. 이것이 발생할 수 있게 하는 메커니즘은 상환 스크립트 내의 해시 퍼즐이다. 원자 스왑의 장점은 다음을 포함한다:
- 상이한 블록체인에 대한 암호 화폐가 교환될 수 있다. 예를 들어, Alice는 BCH를 Bob에게 전송하고, Bob으로부터 BTC를 수신할 수 있다.
- 동일한 블록체인에 컬러 코인 또는 다른 형태의 토큰이 교환될 수 있다.
현재 상이한 블록체인을 통한 원자 교환은 두 블록체인 모두가 그의 스크립팅 언어에서 공통 해시 함수를 공유하는 것을 요구함을 유의한다. 본 개시의 장점은 블록체인이 더 이상 공통 해시 함수를 요구하지 않고, 그로 인해 더욱 다양한 블록체인을 통해 리소스의 제어 또는 이에 대한 액세스의 전송을 가능하게 한다는 것이다. 덧붙여, 원자 교환을 디지털 서명에 기초로 함으로써, 디지털 서명이 대응하는 공개 키와 일치하는지를 검증할 수 있고, 그로 인해 교환의 보안을 개선한다.
본 개시의 실시예의 후속 설명을 위한 컨텍스트를 제공하기 위해 알려진 방법이 아래에서 설명된다.
2. Alice는 상환 스크립트로 잠긴 Bob에게 자금을 전송한다.
3. Bob은 상환 스크립트로 잠긴 Alice에게 자금을 전송한다.
앞서 설명된 바와 같이, 본 개시의 개인 키 퍼즐은 공유된 해시 함수의 요구 없이, 하나 이상의 블록체인의 사용자 사이의 원자 스왑을 실행하는 데 수행될 수 있다. 이러한 원자 스왑을 구현하기 위한 방법이 아래에서 설명된다.
원자 스왑에서 해시 퍼즐을 사용하는 것 대신에, 위에서 개시된 개인 키 퍼즐이 사용된다. 이는 알려진 원자 스왑의 모든 기능을 유지하면서, 다음을 포함하는 유리한 일반화를 허용한다:
- 공통 해시 함수를 공유하지 않는 블록체인을 통한 원자 스왑; 및
- 공개/개인 키 쌍에 의해 제어되는 리소스의 제어 또는 이에 대한 액세스의 원자 교환.
위에서 설명된 바와 같이, 해시 퍼즐이 아닌 개인 키 퍼즐을 사용할 때, Alice가 해시의 사전-이미지를 노출하는 대신 트랜잭션을 상환할 때, 그녀는 알려진 공개 키의 개인 키가 결정되는 것을 가능하게 한다. 이 대비는 아래의 테이블에서 설명된다.
본 개시의 실시예가 도 3을 참조하여 아래의 방법 단계들과 관련하여 설명된다:
3. (130) Alice는 다음의 상환 스크립트를 갖는 트랜잭션 TxA를 생성한다.
여기서, 는 Bob의 공개 키이고 는 위에서 소개된 개인 키 퍼즐이다. 이 단계에서 Bob은 공개 키 에 대응하는 개인 키, 즉, 를 알지 못하기 때문에 트랜잭션을 상환할 수 없다. Alice는 TxA를 블록체인에 제출한다.
4. (140) Bob은 다음의 상환 스크립트를 갖는 트랜잭션 TxB를 생성한다.
5. (150) Alice는 을 알고 있으므로 TxB를 상환할 수 있다. TxB의 상환 스크립트에 대한 입력으로서, Alice는 특정 임시 키 을 사용하여 에 대한 서명을 제공해야 한다. TxB에 대한 잠금 해제 스크립트를 블록체인에 제시하는 상환 트랜잭션의 제출에 의한 TxB의 상환은 반드시 s의 값을 공개한다. 그가 임시 키 의 값을 이미 알고 있다는 점을 고려하면, 이 s의 노출은 Bob이 개인 키 을 계산하는 것을 허용한다. (160) 시간이 만료되면 블록체인에 적합한 환불 트랜잭션을 제출하는 Alice 및 Bob에 의해 TxA 및 TxB의 제어가 Alice 및 Bob에게 반환되는 것을 가능하게 하도록 구성되는, 타임 락 함수(timelock functions)를 사용하여 TxA 및 TxB의 상환에 부과되는 시간 제한이 있거나 또는 있지 않을 수 있다.
6. (170) Alice가 TxB를 상환하면, (180) Bob은 을 계산할 수 있고, (190) 에 대응하는 서명을 상환 트랜잭션의 잠금 해제 스크립트를 통해 그에 제공함으로써 Tx1을 상환할 수 있다.
이 방법이 해시 퍼즐에 의존하지 않으므로, 이는 그의 스크립팅 언어에서 공통 해시 함수를 공유하지 않는 블록체인을 통해 원자 스왑을 수행하는 데 사용할 수 있다. 필요한 것 모두는 스크립팅 언어가 개인 키 퍼즐을 생성하는 데 충분한 기능을 포함하는 것이다. 이는 덜 제한적인 요구사항의 세트이다.
도 4를 참조하면, 추가적인 실시예에서, Alice 및 Bob은 각각 그 자신의 임시 키 및 및 그 자신의 개인 키 및 를 선택한다. 그들은 위에서 설명된 비동기 실시예의 임시 키 을 전달하는 것과 유사한 방식으로 그들의 임시 키를 교환한다. 그 후, Alice 및 Bob은 점 의 x 구성요소인 서명 구성요소 및 점 의 x 구성요소인 를 계산할 수 있다. 및 를 사용하여 계산된 서명 중 나머지 서명 구성요소는 및 가 되도록, 각각 및 로 나타난다. 및 가 이 실시예에서 동일하거나 동일하지 않을 수 있으며, 즉 공통 이 대신 사용될 수 있다는 점을 유의한다.
이 실시예는 다음 단계에 따라 수행된다:
3. (230) Alice는 다음의 상환 스크립트를 갖는 트랜잭션 Tx1A를 생성한다.
여기서 는 Bob의 공개 키이고 는 개인 키 및 에 대응하는 서명의 제공을 요구하는 개인 키 퍼즐이다. 이 단계에서, Bob은 공개 키 에 대응하는 개인 키 즉, 를 알지 못하기 때문에 트랜잭션을 상환할 수 없다.
5. (240) Bob은 다음의 상환 스크립트를 갖는 트랜잭션 Tx1B를 생성한다.
(250) 이 점에서, Alice는 를 알지 못하며, 를 알지 못하므로 이를 계산할 수도 없다. 마찬가지로, Bob은 또는 를 알지 못한다. 그러므로, Alice와 Bob은 모두 Tx1A 또는 Tx1B를 상환하기에 충분한 정보를 갖지 않는다. Alice 및 Bob 모두는 그들 각각의 서명 구성요소 또는 개인 키 를 다른 것에 각각 전달함으로써 정직하게(honestly) 행동할 수도 있거나, 둘 중 하나만 정직하게 행동할 수도 있거나, 누구도 그렇지 않을 수도 있다. 그러므로, 다음의 결과 중 하나가 발생할 수 있다:
6A. 1) Alice가 Bob에게 또는 를 전송하고, Bob이 Alice에게 또는 를 전송하는 것으로 가정한다(즉, 양 파티 모두가 정직하게 행동한다). (295) 그 후, Alice 및 Bob 모두는 그 안의 키 퍼즐을 해결하는 트랜잭션 Tx1A 및 Tx1B의 상환 스크립트에 서명을 제공하기에 충분한 정보를 갖는다. 그러므로, Tx1A 및 Tx1B는 Tx1A 및 Tx1B에 각각의 잠금 해제 스크립트를 제시하는 소비 트랜잭션의 제출에 의해 Bob 및 Alice 각각에 의해 상환될 수 있다.
6B. 2) Alice만이 Bob에게 또는 를 전송함으로써 정직하게 행동하고, Bob은 Alice에게 올바른 또는 를 전송하지 않거나, 아무것도 전송하지 않음으로써 정직하지 않게 행동하는 것으로 가정한다. (270) 그 후, Bob은 Tx1A의 상환 스크립트에 포함된 키 퍼즐을 해결하기 위해 에 대응하는, 그의 잠금 해제 스크립트에 서명을 제공하는 상환 트랜잭션을 제출함으로써, Tx1A를 상환할 수 있다. Bob이 Tx1A를 상환하도록 배열된 잠금 해제 스크립트를 포함하는 상환 트랜잭션을 블록체인에 제출하면, 서명 이 공개적으로 이용 가능해진다. (280) 그로 인해, Alice는 임시 키 를 알고 있으므로, 그녀가 키 를 계산하고, 그러므로 Tx1B를 상환하기에 충분한 정보를 갖는 것을 가능하게 하는, 값 를 인지하게 된다. (290) 그 후, Alice는 Tx1B의 상환 스크립트에 포함된 키 퍼즐을 해결하기 위해 에 대응하는 그의 잠금 해제 스크립트에 서명을 제공하는 상환 트랜잭션을 제출한다.
6C. 3) Alice 및 Bob 누구도 다른 사람에게 또는 를 전송하지 않는 것으로 가정하면, (260) 트랜잭션 Tx1A 및 Tx1B는 이 경우, 블록체인에 적합한 상환 트랜잭션을 제출하는 각각의 소유자를 통해 트랜잭션의 제어가 그의 각각의 소유자에게 반환되는 것을 가능하게 하기 위한 타임 락(활성화된 경우)과 같은 시간이 만료될 때까지 상환 가능하지 않은 상태로 유지된다.
위의 실시예에서 설명된 것과 같은 트랜잭션의 대칭적인 구성은 키 퍼즐로 구성된 트랜잭션을 사용하여 동기식 원자 스왑이 이루어지는 것을 가능하게 한다. 이는 파티가 상기 필요한 정보에 의존하는 트랜잭션을 상환하는 데 필요한 정보를 노출시키기 위해 블록이 채굴되는 것을 기다려야 하는 것 대신에, 트랜잭션 Tx1A 및 Tx1B 모두가 다른 파티에게 각각의 리소스에 대한 액세스 또는 이의 제어를 동시에 전송하는 것을 가능하게 한다.
이제, 하나 이상의 리소스에 대한 액세스 또는 이의 제어의 원자 교환을 가능하게 하는 본 개시의 실시예가 도 5를 참조로 설명될 것이다.
이 실시예에서, Alice는 ECC 공개/개인 키 쌍을 통해 리소스에 대한 액세스를 제어한다. 이 리소스는 하나의 타입의 암호 화폐의 자금일 수 있거나, 다수의 타입의 암호 화폐의 자금일 수 있거나, 또는 이는 웹앱, 렌트카 또는 암호화된 문서에 대한 액세스, 또는 웹캠 또는 도어락과 같은 사물 인터넷 스마트 디바이스의 제어일 수 있다. 아래에서, Bob이 비트코인 프로토콜을 사용하여 Alice로부터 이 리소스에 대한 액세스를 획득하기 위한 방법이 제시된다. 이 교환은 원자적이다: Alice는 그녀가 Bob으로부터 수신한 BCH를 상환하고, Bob은 리소스에 대한 액세스 또는 이의 제어를 획득하거나, 또는 둘 모두 발생하지 않는다.
예시로서, Bob이 BCH의 자금을 Alice에게 전송하고, Alice가 BCH, 이더리움(ETH) 및 DASH의 자금을 Bob에게 전송하는 것을 고려한다.
이 방법은 원자 스왑이 완료될 때 리소스를 제어하는 개인 키를 계산하기 위해 임시 키의 제어기에 의해 요구되는 정보가 노출되는 것을 보장한다. 이는 제어된 리소스에 대한 액세스의 권한을 부여하는(granting) 파티에서 신뢰에 대한 요구를 제거한다.
방법은 다음의 단계를 포함한다:
2. (320) Alice는 그녀 자신에게만 알려진 개인 키 을 선택한다. 그녀는 대응하는 공개 키 를 계산한다. 이 공개 키는 리소스에 대한 액세스를 제어하고, 공개적으로(openly) 브로드캐스트된다.
3. (325) Alice는 Bob의 공개 키 를 사용하여 결정성 공개 키 를 계산하고, (330) 공개 키 의 개인 키 의 소유자에 의해 리소스에 대한 액세스가 획득되는 것을 가능하게 한다. 예를 들어, 이는 일정량의 암호 화폐를 주소 로 전송하는 트랜잭션 Tx'를 생성하거나 또는 공개 키 로 문서를 암호화하고 그 후, 공개 포럼에 문서를 브로드캐스트함으로써 달성될 수 있다.
4. (340) Bob은 다음의 상환 스크립트로 잠긴 트랜잭션 TxB를 제출한다.
5. (370) Alice가 을 알고 있으므로, 그녀는 TxB를 상환할 수 있다. 이 예시에서, 이는 BCH 블록체인에서 행해진다. 위에서 설명된 바와 같이, 이는 Bob이 Alice의 상환 스크립트에 대한 입력에 제공된 정보로부터 을 계산할 수 있게 한다. (360) 시간이 만료되면 Tx' 및 TxB의 제어가 Alice 및 Bob에게 반환되는 것을 가능하게 하도록 구성되는, 타임 락 함수를 사용하여 Tx' 및 TxB의 상환에 부과되는 시간 제약이 있거나 있지 않을 수 있다.
개인 키 가 블록체인 등에서 공중에게 노출되더라도, 에서 잠긴 리소스에 액세스하거나 또는 이를 제어할 수 있은 사람은 Bob 뿐임을 유의한다. 이는 리소스가 및 Bob의 개인 키의 조합으로 잠겨 있기 때문이다. 이런 의미에서 은 결정성 키의 역할을 한다.
이 예시에서, Bob이 구매하는 암호 화폐가 그의 스크립팅 언어로 특정 연산을 포함하는 것이 더 이상 요구되지 않음이 관찰될 수 있다. Bob이 BCH의 암호 화폐의 수집을 위한 비용을 지불하고 ECDSA 서명을 사용하여 트랜잭션이 제어되는 것만이 요구된다.
Bob의 리소스가 Alice에 의해 영구적으로 잠기는 것을 피하기 위해, 시간-잠금 반환이 방법에 도입될 수 있다. 이는 Alice에 대한 그의 제1 트랜잭션 이후에 특정 상대적 시간(예를 들어, 24 시간)이 지난 이후에, Bob에게 리소스를 반환하는, Alice로부터 Bob으로의 BCH 트랜잭션이다.
마찬가지로, Alice는 일정 시간이 지난 후에, 그녀의 제어된 리소스에 대한 액세스를 다시 그녀 자신에게 반환할 수 있다. 다수의 암호 화폐의 예시에서, 이는 또한, Bob의 것에 유사한 반환 트랜잭션일 것이다.
스왑이 완료되지 않은 경우 일정 시간이 지난 이후에, Alice가 리소스의 제어를 다시 그녀 자신에게 반환하는 것이 필요하지 않거나 또는 실용적이지 않을 수 있다. 예를 들어, 리소스가 Bob에게 액세스가 승인된 암호화된 문서이면, Alice에게 무기한으로 문서를 키 로 암호화된 상태로 두는 데 불리한 점이 있지 않다.
이제 도 6을 참조하면, 본 개시의 적어도 하나의 실시예를 실시하는 데 사용될 수 있는 컴퓨팅 디바이스(2600)의 예시적이고 단순화된 블록도가 제공된다. 다양한 실시예에서, 컴퓨팅 디바이스(2600)는 위에서 예시되고 설명된 시스템 중 임의의 것을 구현하는 데 사용될 수 있다. 예를 들어, 컴퓨팅 디바이스(2600)는 데이터 서버, 웹 서버, 휴대용 컴퓨팅 디바이스, 개인용 컴퓨터, 또는 임의의 전자 컴퓨팅 디바이스로서 사용하도록 구성될 수 있다. 도 6에 도시된 바와 같이, 컴퓨팅 디바이스(2600)는 메인 메모리(2608) 및 영구 저장소(2610)를 포함하는 저장소 서브시스템(2606)과 통신하도록 구성될 수 있는 하나 이상의 수준의 캐시 메모리 및 메모리 제어기를 갖는 하나 이상의 프로세서(집합적으로 2602로 라벨링 됨)를 포함할 수 있다. 메인 메모리(2608)는 도시된 바와 같이 동적 랜덤 액세스 메모리(DRAM)(2618) 및 읽기 전용 메모리(ROM)(2620)를 포함할 수 있다. 저장소 서브시스템(2606) 및 캐시 메모리(2602)는 본 개시에서 설명된 바와 같은 트랜잭션 및 블록과 연관된 세부사항과 같은, 정보의 저장을 위해 사용될 수 있다. 프로세서(들)(2602)는 본 개시에서 설명된 임의의 실시예의 단계 또는 기능을 제공하기 위해 이용될 수 있다.
프로세서(들)(2602)는 또한, 하나 이상의 사용자 인터페이스 입력 디바이스(2612), 하나 이상의 사용자 인터페이스 출력 디바이스(2614) 및 네트워크 인터페이스 서브시스템(2616)과 통신할 수 있다.
버스 서브시스템(2604)은 컴퓨팅 디바이스(2600)의 다양한 구성요소 및 서브시스템이 의도된 대로 서로 통신할 수 있게 하는 메커니즘을 제공할 수 있다. 버스 서브시스템(2604)이 단일의 버스로서 개략적으로 도시되지만, 버스 서브시스템의 대안적인 실시예는 다수의 버스를 이용할 수 있다.
네트워크 인터페이스 서브시스템(2616)은 다른 컴퓨팅 디바이스 및 네트워크에 대한 인터페이스를 제공할 수 있다. 네트워크 인터페이스 서브시스템(2616)은 컴퓨팅 디바이스(2600)의 다른 시스템으로부터 데이터를 수신하고 이로 데이터를 송신하기 위한 인터페이스의 역할을 할 수 있다. 예를 들어, 네트워크 인터페이스 서브시스템(2616)은 데이터 기술자가 데이터 센터와 같은 원격 위치에 있는 디바이스로 데이터를 송신하거나 또는 그 디바이스로부터 데이터를 수신할 수 있도록, 데이터 기술자가 디바이스를 네트워크에 연결하는 것을 가능하게 할 수 있다.
사용자 인터페이스 입력 디바이스(2612)는 키보드; 통합형 마우스, 트랙볼, 터치패드, 또는 그래픽스 태블릿과 같은 포인팅 디바이스; 스캐너; 바코드 스캐너; 디스플레이에 포함되는 터치 스크린; 음성 인식 시스템, 마이크로폰과 같은 오디오 입력 디바이스; 및 다른 타입의 입력 디바이스와 같은 하나 이상의 사용자 입력 디바이스를 포함할 수 있다. 일반적으로, "입력 디바이스"라는 용어의 사용은 컴퓨팅 디바이스(2600)에 정보를 입력하기 위한 가능한 모든 타입의 디바이스 및 메커니즘을 포함하는 것으로 의도된다.
하나 이상의 사용자 인터페이스 출력 디바이스(2614)는 디스플레이 서브시스템, 프린터, 또는 오디오 출력 디바이스와 같은 비-시각적 디스플레이 등을 포함할 수 있다. 디스플레이 서브시스템은 CRT(cathode ray tube), LCD(liquid crystal display), LED(light emitting diode) 디스플레이, 또는 프로젝션과 같은 플랫-패널 디바이스 또는 다른 디스플레이 디바이스일 수 있다. 일반적으로, "출력 디바이스"라는 용어의 사용은 컴퓨팅 디바이스(2600)로부터 정보를 출력하기 위한 가능한 모든 타입의 디바이스 및 메커니즘을 포함하는 것으로 의도된다. 하나 이상의 사용자 인터페이스 출력 디바이스(2614)는, 예를 들어, 이러한 사용자 상호작용이 적절할 수 있을 때, 설명된 프로세스 및 그 변형을 수행하는 애플리케이션과의 사용자 상호작용을 용이하게 하기 위해 사용자 인터페이스를 제시하는 데 사용될 수 있다.
저장소 서브시스템(2606)은 본 개시의 적어도 하나의 실시예의 기능을 제공할 수 있는 기본 프로그래밍 및 데이터 구성을 저장하기 위한 컴퓨터 판독가능 저장 매체를 제공할 수 있다. 하나 이상의 프로세서에 의해 실행될 때, 애플리케이션(프로그램, 코드 모듈, 명령어)은 본 개시의 하나 이상의 실시예의 기능을 제공할 수 있고, 저장소 서브시스템(2606)에 저장될 수 있다. 이들 애플리케이션 모듈 또는 명령어는 하나 이상의 프로세서(2602)에 의해 실행될 수 있다. 저장소 서브시스템(2606)은 본 개시에 따라 사용되는 데이터를 저장하기 위한 보관소를 추가적으로 제공할 수 있다. 예를 들어, 메인 메모리(2608) 및 캐시 메모리(2602)는 프로그램 및 데이터를 위한 휘발성 저장소를 제공할 수 있다. 영구 저장소(2610)는 프로그램 및 데이터에 대한 영구적인(비-휘발성) 저장소를 제공할 수 있고, 플래시 메모리, 하나 이상의 솔리드 스테이트 드라이브, 하나 이상의 자기 하드 드라이브(magnetic hard disk drives), 연관된 이동식 매체를 갖는 하나 이상의 플로피 디스크 드라이브, 연관된 이동식 매체를 갖는 하나 이상의 광학 드라이브(예를 들어, CD-ROM 또는 DVD 또는 블루-레이) 드라이브 및 다른 유사한 저장 매체를 포함할 수 있다. 이러한 프로그램 및 데이터는 본 개시에서 설명된 하나 이상의 실시예의 단계를 수행하기 위한 프로그램뿐만 아니라, 본 개시에서 설명된 트랜잭션 및 블록과 연관된 데이터를 포함할 수 있다.
컴퓨팅 디바이스(2600)는 휴대용 컴퓨터 디바이스, 태블릿 컴퓨터, 워크스테이션, 또는 아래에서 설명되는 임의의 다른 디바이스를 포함하는 다양한 타입일 수 있다. 추가적으로, 컴퓨팅 디바이스(2600)는 하나 이상의 포트(예를 들어, USB, 헤드폰 잭, 라이트닝(Lightning) 커넥터 등)를 통해 컴퓨팅 디바이스(2600)에 연결될 수 있는 다른 디바이스를 포함할 수 있다. 컴퓨팅 디바이스(2600)에 연결될 수 있는 디바이스는 광섬유 커넥터를 수용하도록 구성되는 복수의 포트를 포함할 수 있다. 따라서, 이 디바이스는 광 신호를, 처리를 위해 디바이스를 컴퓨팅 디바이스(2600)에 연결하는 포트를 통해 송신될 수 있는 전기 신호로 변환하도록 구성될 수 있다. 컴퓨터 및 네트워크의 계속 변하는 성질에 기인하여, 도 6에 도시된 컴퓨팅 디바이스(2600)의 설명은 디바이스의 바람직한 실시예를 예시할 목적으로 특정 예시로서만 의도된다. 도 6에 도시된 시스템보다 더 많거나 적은 구성요소를 갖는 다수의 다른 구성이 가능하다.
전술한 실시예는 본 개시를 제한하는 것이 아니고, 통상의 기술자는 첨부된 청구범위에 의해 정의된 본 개시의 범주를 벗어나지 않으면서, 다양한 대안적인 실시예를 설계할 수 있을 것임이 유의되어야 한다. 청구범위에서, 괄호안에 있는 임의의 참조 부호는 청구범위를 제한하는 것으로 해석되어서는 안된다. "포함하는" 및 "포함한다" 등의 단어는 임의의 청구범위 또는 명세서 전체에 열거된 것 이외의 요소 또는 단계의 존재를 배제하지 않는다. 본 명세서에서, "포함한다"는 "포함하거나 구성된다"를 의미하고, "포함하는"은 "포함하거나 구성되는"을 의미한다. 요소의 단수형 참조는 이러한 요소의 복수형의 참조를 배제하지 않으며, 그 역으로도 그러하다. 본 개시는 수 개의 개별적인 요소를 포함하는 하드웨어에 의해, 그리고 적합하게 프로그래밍된 컴퓨터에 의해 구현될 수 있다. 수개의 수단을 나열하는 디바이스 청구항에서, 이들 수단 중 몇몇은 하나의 동일한 하드웨어의 항목에 의해 구현될 수 있다. 특정 측정치가 서로 다른 종속 항에서 인용된다는 단순한 사실만으로 이들 측정치의 조합이 유리하도록 사용될 수 없음을 나타내지 않는다.
Claims (9)
- 컴퓨터-구현된 방법으로서, 상기 방법은:
적어도 하나의 데이터 항목을 제1 블록체인 트랜잭션에 제공함으로써 제1 리소스에 대한 액세스를 가능하게 하도록 상환 가능한(redeemable) 상기 제1 블록체인 트랜잭션을 제공하는 단계 - 상기 데이터 항목은 노출 가능한 값 및 비밀 값 모두의 제어기에 의해서만 결정 가능함 -; 및
상기 제어기가 상기 데이터 항목을 결정하는 것을 가능하게 하도록 상기 비밀 값의 제어기에 상기 노출 가능한 값을 제공하는 단계를 포함하는, 방법. - 제1항에 있어서, 상기 데이터 항목은 제1 암호화 키 쌍의 제1 개인 키를 포함하는, 방법.
- 제2항에 있어서, 상기 제1 블록체인 트랜잭션은 상환 가능하도록 제2 암호화 키 쌍의 제2 개인 키를 제공하는 것을 더 요구하고, 상기 제2 암호화 키 쌍은 상기 제1 리소스의 의도된 수신자와 연관되는, 방법.
- 제3항에 있어서, 상기 제1 개인 키는 결정성 암호화 키 쌍의 결정성 개인 키이고, 상기 쌍의 상기 결정성 공개 키는 상기 제1 암호화 키 쌍의 제1 공개 키 및 상기 제2 암호화 키 쌍의 제2 공개 키를 사용하여 도출되는, 방법.
- 어느 전술한 청구항에 있어서, 상기 제어기에 상기 노출 가능한 값을 제공하는 단계는:
제2 블록체인 트랜잭션에 적어도 상기 데이터 항목을 제공함으로써 제2 리소스에 대한 액세스를 가능하게 하도록 상환 가능한 상기 제2 블록체인 트랜잭션을 제공하는 것 - 상기 제2 블록체인 트랜잭션의 상환(redemption)은 상기 노출 가능한 값이 상기 제어기에 제공되게 함 -; 및
상기 제2 블록체인 트랜잭션을 상환하는 것을 포함하는, 방법. - 어느 전술한 청구항에 있어서, 어느 전술한 청구항의 블록체인 트랜잭션의 상환은 상기 데이터 항목에 대응하는 암호화 서명을 계산하는 것 및 상기 트랜잭션에 저장된 값을 상기 계산된 서명의 적어도 일부와 비교하는 것을 포함하는, 방법.
- 어느 전술한 청구항에 있어서, 상기 비밀 값은 디지털 서명 프로세스에서 사용되는 임시 키(ephemeral key)인, 방법.
- 시스템으로서,
프로세서; 및
상기 프로세서에 의한 실행의 결과로서, 상기 시스템이 어느 전술한 청구항의 방법을 수행하게 하는 실행 가능한 명령어를 포함하는 메모리를 포함하는, 시스템. - 컴퓨터 시스템의 프로세서에 의해 실행되는 결과로서, 상기 컴퓨터 시스템이 적어도 제1항 내지 제7항 중 어느 한 항의 방법을 수행하게 하는 실행 가능한 명령어를 저장하는 비일시적 컴퓨터-판독가능 저장 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1815816.2 | 2018-09-28 | ||
GBGB1815816.2A GB201815816D0 (en) | 2018-09-28 | 2018-09-28 | Computer-implemented system and method |
PCT/IB2019/057917 WO2020065460A1 (en) | 2018-09-28 | 2019-09-19 | Computer-implemented system and method for transferring access to digital resource |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210065995A true KR20210065995A (ko) | 2021-06-04 |
Family
ID=64109009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217012522A KR20210065995A (ko) | 2018-09-28 | 2019-09-19 | 디지털 리소스에 대한 액세스를 전송하기 위한 컴퓨터 구현된 시스템 및 방법 |
Country Status (9)
Country | Link |
---|---|
US (1) | US20210344500A1 (ko) |
EP (1) | EP3857814A1 (ko) |
JP (2) | JP7428704B2 (ko) |
KR (1) | KR20210065995A (ko) |
CN (1) | CN112789825A (ko) |
GB (1) | GB201815816D0 (ko) |
SG (1) | SG11202102277TA (ko) |
TW (1) | TW202025665A (ko) |
WO (1) | WO2020065460A1 (ko) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2578168A (en) * | 2018-10-19 | 2020-04-22 | Star Hat Solutions Ltd | Computer-implemented method and system for digital signing of transactions |
CN117557309A (zh) * | 2019-04-08 | 2024-02-13 | 创新先进技术有限公司 | 在区块链网络中使用智能合约进行产品促销 |
GB2584154A (en) | 2019-05-24 | 2020-11-25 | Nchain Holdings Ltd | Knowledge proof |
GB201907396D0 (en) | 2019-05-24 | 2019-07-10 | Nchain Holdings Ltd | Hash function attacks |
DE102019005116A1 (de) * | 2019-07-23 | 2021-01-28 | Daimler Ag | Verfahren zum Handeln von Kryptowährungen |
GB2596096A (en) | 2020-06-17 | 2021-12-22 | Nchain Holdings Ltd | Agreements on the blockchain |
US11741083B2 (en) * | 2020-07-24 | 2023-08-29 | International Business Machines Corporation | Cross-shard private atomic commit |
WO2022125532A1 (en) * | 2020-12-07 | 2022-06-16 | Meredith Ii Thomas T | Systems and methods thereof for exchanging different digital currencies on different blockchains |
US11315113B1 (en) * | 2021-11-08 | 2022-04-26 | Tangem AG | Systems and methods for authorizing a transaction conventionally incompatible with a technical protocol |
GB2621858A (en) * | 2022-08-24 | 2024-02-28 | Nchain Licensing Ag | Blockchain transaction |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9065637B2 (en) * | 2012-01-25 | 2015-06-23 | CertiVox Ltd. | System and method for securing private keys issued from distributed private key generator (D-PKG) nodes |
US11704733B2 (en) * | 2015-05-01 | 2023-07-18 | Tzero Ip, Llc | Crypto multiple security asset creation and redemption platform |
US11270299B2 (en) * | 2015-12-07 | 2022-03-08 | Visa International Service Association | Methods and systems of using a cryptocurrency system to manage payments and payment alternatives |
GB201605032D0 (en) * | 2016-03-24 | 2016-05-11 | Eitc Holdings Ltd | Recording multiple transactions on a peer-to-peer distributed ledger |
US10643203B2 (en) * | 2016-04-12 | 2020-05-05 | Digicash Pty Ltd. | Secure transaction controller for value token exchange systems |
GB201613176D0 (en) * | 2016-07-29 | 2016-09-14 | Eitc Holdings Ltd | Computer-implemented method and system |
CN115758444A (zh) * | 2016-07-29 | 2023-03-07 | 区块链控股有限公司 | 区块链实现的方法和系统 |
EP3497952B1 (en) * | 2016-08-11 | 2021-12-22 | Sony Group Corporation | Authentication method, wearable device and mobile device |
US11082412B2 (en) * | 2017-07-12 | 2021-08-03 | Wickr Inc. | Sending secure communications using a local ephemeral key pool |
KR102535674B1 (ko) * | 2017-12-12 | 2023-05-22 | 레노보 (싱가포르) 피티이. 엘티디. | 블록체인 결제들을 이용한 네트워크 액세스의 제공 |
CN108305074B (zh) * | 2018-01-30 | 2020-06-02 | 深圳壹账通智能科技有限公司 | 交易处理方法、装置、计算机设备和存储介质 |
-
2018
- 2018-09-28 GB GBGB1815816.2A patent/GB201815816D0/en not_active Ceased
-
2019
- 2019-09-19 CN CN201980064210.8A patent/CN112789825A/zh active Pending
- 2019-09-19 EP EP19773938.6A patent/EP3857814A1/en active Pending
- 2019-09-19 WO PCT/IB2019/057917 patent/WO2020065460A1/en unknown
- 2019-09-19 SG SG11202102277TA patent/SG11202102277TA/en unknown
- 2019-09-19 KR KR1020217012522A patent/KR20210065995A/ko unknown
- 2019-09-19 US US17/280,758 patent/US20210344500A1/en active Pending
- 2019-09-19 JP JP2021513383A patent/JP7428704B2/ja active Active
- 2019-09-20 TW TW108134022A patent/TW202025665A/zh unknown
-
2024
- 2024-01-25 JP JP2024009121A patent/JP2024028608A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
GB201815816D0 (en) | 2018-11-14 |
WO2020065460A1 (en) | 2020-04-02 |
JP7428704B2 (ja) | 2024-02-06 |
TW202025665A (zh) | 2020-07-01 |
EP3857814A1 (en) | 2021-08-04 |
JP2022501887A (ja) | 2022-01-06 |
SG11202102277TA (en) | 2021-04-29 |
US20210344500A1 (en) | 2021-11-04 |
JP2024028608A (ja) | 2024-03-04 |
CN112789825A (zh) | 2021-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7428704B2 (ja) | デジタルリソースへのアクセスを移転するための、コンピュータにより実施されるシステム及び方法 | |
JP7472338B2 (ja) | ブロックチェーンにおける擬似乱数生成 | |
JP7449423B2 (ja) | ブラインド化された帰結選択のためのブロックチェーンで実装されるセキュリティー・システムおよび方法 | |
CN111066283A (zh) | 对区块链网络上实体提供的数据进行通信、存储和处理的系统和方法 | |
JP7240402B2 (ja) | コンピュータにより実施される意思決定システム及び方法 | |
JP7383017B2 (ja) | 公開鍵結合検証を含む、コンピュータにより実施されるシステム及び方法 | |
TW202105283A (zh) | 用以控制或執行區塊鏈上處理轉移之效率的電腦實施系統及方法 | |
JP2022532764A (ja) | プルーフオブワークブロックチェーンネットワークにおける非並列化マイニングのためのシステムおよび方法 | |
TWI838514B (zh) | 區塊鏈交易中知識證明之電腦實行方法及系統 | |
US20220129249A1 (en) | Computer implemented method and system for pseudo-random data generator | |
Çelik | Blockchain based solution for electronic health record integrity | |
US12141803B2 (en) | Random number generation in a blockchain | |
You et al. | A Multi-Party, Multi-Blockchain Atomic Swap Protocol with Universal Adaptor Secret |