[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR20210065995A - 디지털 리소스에 대한 액세스를 전송하기 위한 컴퓨터 구현된 시스템 및 방법 - Google Patents

디지털 리소스에 대한 액세스를 전송하기 위한 컴퓨터 구현된 시스템 및 방법 Download PDF

Info

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
Application number
KR1020217012522A
Other languages
English (en)
Inventor
오웬 바우간
Original Assignee
엔체인 홀딩스 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엔체인 홀딩스 리미티드 filed Critical 엔체인 홀딩스 리미티드
Publication of KR20210065995A publication Critical patent/KR20210065995A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public 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/3073Public 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • H04L2209/38
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

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

리소스에 대한 액세스 또는 이의 제어를 전송하기 위한 컴퓨터-구현된 방법이 제공된다. 방법은 데이터 항목(
Figure pct00173
)을 제1 블록체인 트랜잭션에 제공함으로써 리소스의 제어를 전송하기 위해 상환 가능한 블록체인 트랜잭션을 제공하는 단계 - 데이터 항목은 노출 가능한 값(
Figure pct00174
) 및 비밀 값(
Figure pct00175
) 모두의 제어기에 의해서만 결정 가능함 -; 및 상기 제어기가 데이터 항목을 결정하는 것을 가능하게 하도록 비밀 값의 제어기에 노출 가능한 값을 제공하는 단계를 포함한다. 방법은 비트코인 블록체인을 사용하여 또는 상이한 블록체인의 조합을 사용하여 수행될 수 있다.

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은 다양한 실시예가 구현될 수 있는 컴퓨팅 환경을 도시하는 개략도이다.
통상적인 해시 함수 예를 들어, SHA-256은 데이터 구조 X를 취하고, 256 비트의 수
Figure pct00001
를 출력한다. 이는 단방향 결정성 함수(deterministic function)
Figure pct00002
이다.
암호 화폐의 맥락에서, 해시 퍼즐(hash puzzle)을 생성하기 위해 해시 함수가 사용될 수 있다. 이는 사전-이미지 X가 함수에 대한 입력에 제공된 경우 및 그 경우에만 TRUE로 평가될 함수
Figure pct00003
이다. 즉
Figure pct00004
.
SHA-256의 경우, 이러한 함수는 다음에 의해 비트코인 스크립트로 주어진다
Figure pct00005
.
해시 퍼즐은 트랜잭션이 상환되면, 사전-이미지 X가 상환 스크립트의 입력에 노출되고, 그러므로 블록체인에서 보임을 보장하기 위해, 블록체인 트랜잭션의 스크립트 가령, 상환 스크립트에서 사용될 수 있다.
Figure pct00006
ECDSA 프로토콜 하에, 개인 키
Figure pct00007
및 메시지 해시 H(m)에 대한 서명은 다음의 방식으로 생성된다(메시지 해시는 모두에게 알려지지만, 개인 키는 메시지에 서명한 사람에게만 알려짐을 유의한다).
제1 단계는 임시 키로 알려진 난수
Figure pct00008
를 생성하는 것이다. 이로부터 값 r이 도출되며, 이는 임시 키의 x 좌표에 생성기 점(generator point)을 곱한 것이다.
Figure pct00009
.
r은 서명의 하나의 절반을 형성한다. 제2 절반 s는 다음의 수학식에 의해 정의된다
Figure pct00010
.
조합
Figure pct00011
은 ECDSA 서명이다.
ECDSA의 하나의 중요한 특징은 임시 키 k가 알려지면 개인 키가 다음과 같이 계산될 수 있다는 것이다:
Figure pct00012
.
서명
Figure pct00013
의 데이터 구조는 일부 추가적인 인코딩 데이터와 연결된 rs의 정수 값을 포함한다.
차별화된 인코딩 규칙(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 서명
Figure pct00014
의 데이터 구조에 대한 특정한 인코딩이 도 1에 도시된 테이블로 주어진다(더미(dummy) rs 데이터 값이 사용된다는 것에 유의한다).
도 1을 참조하면, 시그해시(sighash) 타입을 나타내는 마지막 바이트는 표준 DER 인코딩은 아니지만 비트코인 서명 인코딩에 사용됨을 유의한다. 서명의 4번째 바이트는 r의 길이를 나타낸다. 이는 r의 이진 표현에서 선행 비트(leading bit)가 0인 경우 32 바이트이거나, 또는 선행 비트가 1인 경우 33 바이트이며, 이 경우 추가적인 0-값 바이트가 바이트 스트링에 추가된다. 서명의 5번째 바이트 내지 36 번째 또는 37 번째 바이트는 값 또는 r 그 자체를 나타낸다.
이제 개인 키 퍼즐을 생성하기 위한 방법이 설명된다.
개인 키 퍼즐은 주어진 공개 키
Figure pct00015
의 개인 키
Figure pct00016
가 계산되는 것을 가능하게 하는 입력이 제공되면 TRUE로 평가될 상환 스크립트의 함수이다.
이 형태의 퍼즐은 타원 곡선 암호화(Elliptic Curve Cryptography, ECC) 공개/개인 키 쌍의 대수 특성이 리소스 액세스 및 제어의 구현에 이용되는 것을 허용한다. 두 개의 공개 키의 합이 계산되면, 대응하는 개인 키는 개별적인 개인 키의 합일 것이다.
Figure pct00017
.
이를 해시 함수와 비교한다: 두 개의 값의 해시의 합이 계산되면 대응하는 사전-이미지는 보통 개별적인 사전-이미지의 합이 아니다.
Figure pct00018
.
개별적인 사전-이미지의 해시 값의 합이 사전-이미지의 합의 해시 값과 동일한 (준동형 해시 함수(homomorphic hash functions)로 알려진) 해시 함수가 존재하지만, 이는 일반적으로 구현할 수 없다. 더욱이, 공개/개인 키 쌍은 타원 곡선 디지털 서명 알고리즘(Elliptic Curve Digital Signature Algorithm, ECDSA)을 사용하여 데이터의 암호화/복호화 및 메시지의 서명을 허용한다.
원자 스왑을 구현하는 데 있어서, 개인 키 퍼즐의 예시가 아래에 개시된다. 이들 예시는 본원에 개시된 방법의 사용자가 공통 해시 함수를 공유하지 않는 블록체인에서 교차-체인 스왑을 수행하는 것을 허용한다. 예시는 공개/개인 키 쌍에 의해 제어되는 리소스의 제어 또는 이에 대한 액세스의 전송을 포함한다.
이 애플리케이션 전체에 걸쳐, 개인 키 퍼즐은 ECC 키 쌍 및 ECDSA 프로토콜의 측면에서 공식화된다. 하지만, 본 개시는 이 표준으로 제한되지 않는다. 예를 들어, 방법은 슈노르(Schnorr) 서명, 및 DSA 프로토콜을 통한 RSA 키 쌍에도 적용 가능하다.
위에서 언급된 바와 같이, 개인 키 퍼즐은 대응하는 개인 키
Figure pct00019
에 대해 작동하면 TRUE로 평가될 함수
Figure pct00020
이다. 즉:
Figure pct00021
.
이러한 함수는 현재 존재하지 않는다. 트랜잭션 상환 스크립트에서
Figure pct00022
의 포함은 트랜잭션을 상환하기 위해 상환 스크립트에 제공된 입력이 대응하는 개인 키
Figure pct00023
를 포함해야 한다는 것을 보장하며, 이는
Figure pct00024
이 블록체인에서 공중(public)에 노출됨을 의미한다. 하지만, 적어도 상환 스크립트가 비트코인 블록체인에서의 블록체인 트랜잭션의 상환 스크립트인 경우, 이러한 함수는 트랜잭션이 구성되고 사용되는 것을 막을 매우 많은 수의 연산자를 요구할 것이다. 이 문제는 아래에 더 상세히 설명된다.
타원 곡선 점 곱셈(elliptic curve point multiplication)을 수행하는 연산자 OP_ECMULT가 존재하는 것으로 가정한다. 이는 타원 곡선의 점(예를 들어, 생성기 점 G)이 양의 정수(예를 들어,
Figure pct00025
)에 의해 곱해진다는 것을 의미한다. 즉:
Figure pct00026
.
이 경우, 개인 키 퍼즐은 다음과 같이 주어질 것이다:
Figure pct00027
.
하지만, 현재, 비트코인 스크립트에는 이러한 타원 곡선 연산자가 있지 않다.
OP_MOD와 같이, 비트코인 2018년 5월 포크(fork)에서 일부 이전에 종료된(retired) op 코드의 복원(reinstatement) 이후에, 비트코인 스크립트 내에서 타원 곡선 곱셈을 수행하기 위해 즉, 다른 연산자를 사용하여 OP_ECMULT를 구성하기 위해 요구되는 모든 연산자가 기술적으로 존재한다. 하지만, 이것이 가능하지 않은 실질적인 이유가 있다.
이러한 함수는 최소 256번의 반복을 요구할 것이며, 각 반복은 여러 라인의 복잡한 연산을 포함한다. 특히, 각 반복은 모듈형 역(modular inverse)을 취하기 위해 확장된 유클리드 알고리즘(extended Euclidean algorithm)을 적용하는 것을 요구할 것이다. 따라서, 이 요구되는 스크립트의 크기는 201개의 op 코드 또는 10KB의 제한을 훨씬 초과할 것이다.
대조적으로, 아래 제시된 방법은 단지 수개의 라인의 op 코드를 사용한다.
개인 키가 오프-블록(off-block)으로 계산되는 것을 포함하는 개인 키 퍼즐을 생성하고 이용하기 위한 방법의 실시예가 아래에 개시된다. 실시예에서, 개인 키 그 자체는 상환 스크립트의 입력에 노출되지 않고 오히려 서명의 구성요소가 노출된다.
핵심 아이디어는 특정 임시 키에 관련된 서명을 포함하는 잠금 해제 스크립트를 요구하는 것이다. 그 후, 임시 키를 아는 누군가에 의해, 서명으로부터 대응하는 개인 키가 계산될 수 있다.
비트코인 스크립트를 참조로 설명된 실시예는 어느 비-표준 스크립트 연산을 사용하지 않는다.
함수
Figure pct00028
이 생성되며, 여기서
Figure pct00029
은 공개 키이고
Figure pct00030
은 특정 임시 키
Figure pct00031
로부터 도출된다. 이 함수는 입력
Figure pct00032
에서 연산되는 경우 및 그 경우에만 TRUE로 평가되며,
Figure pct00033
은 특정 임시 키
Figure pct00034
을 사용하여
Figure pct00035
의 서명을 나타낸다. 알려진 임시 키가 있는 서명이 대응하는 개인 키를 노출하므로,
Figure pct00036
이 공개되면
Figure pct00037
을 아는 어느 누구에 의해 개인 키가 계산될 수 있다.
도 2를 참조하면, 서명의 r 부분을 추출하는 비트코인 스크립트가 개시된다. 위에 주어진 서명의 DER 인코딩에 따라, r 부분을 추출하기 위해 5번째 바이트에서 36번째 또는 37번째 바이트까지 서명을 분할해야 하며, 이는 4번째 바이트의 값에 의존한다. 이는 다음의 비트코인 스크립트에 의해 달성된다:
Figure pct00038
.
공개 키
Figure pct00039
을 고려한다. 위에서 언급된 바와 같이, 대응하는 잠금 해제 스크립트가 임시 키의 제어기가
Figure pct00040
의 개인 키를 결정하기에 충분한 정보를 노출하도록 잠금 스크립트를 생성하기 위한 방법이 개시된다.
방법은 잠금 해제 스크립트가
Figure pct00041
로 표기된 특정 임시 키를 사용하는
Figure pct00042
의 서명을 포함하도록 강제하는 것을 포함한다.
Figure pct00043
로 표기된 대응하는 개인 키는 임시 키를 아는 누구에 의해 서명으로부터 계산될 수 있다. 방법의 사용자는 사용할
Figure pct00044
의 값에 동의한다. 사용자는 적합하게 안전한 알려진 방법을 사용하여 이 값을 서로에게 전달할 수 있다.
위에서 설명된 바와 같이, ECDSA 서명은 두 개의 구성요소로 구성되고, 즉
Figure pct00045
이고, 여기서 r은 임시 키
Figure pct00046
에 직접적으로 관련되고 이로부터 계산 가능하다.
임시 키
Figure pct00047
에 대응하는
Figure pct00048
의 값은 다음의 수학식을 통해 (오프-블록으로) 계산될 수 있다:
Figure pct00049
.
그 후, 특정 임시 키
Figure pct00050
을 사용하는
Figure pct00051
의 서명을 입력으로서 요구하는 상환 스크립트가 생성된다.
Figure pct00052
비트코인 블록체인과 호환 가능한 상환 스크립트의 예시는 다음으로 주어진다:
Figure pct00053
키 퍼즐에 대한 스크립트
Figure pct00054
Figure pct00055
위의 테이블에서 제1 행은 공개 키
Figure pct00056
를 알트-스택(alt-stack)에 배치하고 서명을 복제한다. 제2 행은 올바른 임시 키가 사용되었는지를 검사한다. 제3 행은 알트-스택으로부터 공개 키를 검색하고(retrieves), 서명이 유효한지 검사한다. 위에서 사용된 비트코인 스크립트 연산, 즉 OP_DUP, OP_TOALTSTACK 및 OP_FROMALTSTACK은 엄격한 요구 사항이 아니며, 예를 들어 입력 변수를 중복시키고 이를 재정렬하는 경우 드랍될(dropped) 수 있다.
비트코인 스크립트에서 개인 키 퍼즐을 공식화하기 위한 대안적인 방식이 있음을 유의한다. 특히, OP_SPLIT 대신에 OP_CAT 연산을 사용할 수 있다. 이 경우, 상환 스크립트에 대한 입력은 s 구성요소만을 포함한 부분 서명일 것이다(미리 결정된 임시 키
Figure pct00057
및 개인 키
Figure pct00058
를 사용하여 계산될 것이다). 그 후, 상환 스크립트는 완전한 서명
Figure pct00059
을 생성하기 위해 미리 결정된 r 값을 부분 서명과 연결한다. 이 서명은 구조에 의해, 원하는 r을 가질 것이다. 그 후, 이는 표준 checksig 연산을 수행하도록 남겨질 것이다.
원자 스왑은 두 개의 트랜잭션 - 하나는 Alice로부터 Bob으로, 다른 하나는 Bob으로부터 Alice로 -을 지칭한다. 원자 스왑은 두 트랜잭션 모두 상환 가능하거나, 어느 것도 상환 가능하지 않음을 보장한다. 이것이 발생할 수 있게 하는 메커니즘은 상환 스크립트 내의 해시 퍼즐이다. 원자 스왑의 장점은 다음을 포함한다:
- 상이한 블록체인에 대한 암호 화폐가 교환될 수 있다. 예를 들어, Alice는 BCH를 Bob에게 전송하고, Bob으로부터 BTC를 수신할 수 있다.
- 동일한 블록체인에 컬러 코인 또는 다른 형태의 토큰이 교환될 수 있다.
현재 상이한 블록체인을 통한 원자 교환은 두 블록체인 모두가 그의 스크립팅 언어에서 공통 해시 함수를 공유하는 것을 요구함을 유의한다. 본 개시의 장점은 블록체인이 더 이상 공통 해시 함수를 요구하지 않고, 그로 인해 더욱 다양한 블록체인을 통해 리소스의 제어 또는 이에 대한 액세스의 전송을 가능하게 한다는 것이다. 덧붙여, 원자 교환을 디지털 서명에 기초로 함으로써, 디지털 서명이 대응하는 공개 키와 일치하는지를 검증할 수 있고, 그로 인해 교환의 보안을 개선한다.
본 개시의 실시예의 후속 설명을 위한 컨텍스트를 제공하기 위해 알려진 방법이 아래에서 설명된다.
Figure pct00060
Figure pct00061
는 각각 Alice 및 Bob의 ECDSA 공개 키를 나타낸다.
1. Alice는 그녀 자신에게만 알려진 비밀
Figure pct00062
을 선택한다(n은 타원 곡선 생성기 점 G의 차수이다).
2. Alice는 상환 스크립트로 잠긴 Bob에게 자금을 전송한다.
Figure pct00063
이 단계에서 Bob은 그가
Figure pct00064
의 사전-이미지를 알지 못하기 때문에 자금을 소비할 수 없다.
3. Bob은 상환 스크립트로 잠긴 Alice에게 자금을 전송한다.
Figure pct00065
4. Alice는
Figure pct00066
을 알고 있으므로, 그녀는 자금을 소비할 수 있다. 이는 Alice의 상환 스크립트에 대한 입력으로서 블록체인의
Figure pct00067
을 노출한다.
Bob은 이제
Figure pct00068
을 알고, 그의 자금을 소비할 수 있다.
앞서 설명된 바와 같이, 본 개시의 개인 키 퍼즐은 공유된 해시 함수의 요구 없이, 하나 이상의 블록체인의 사용자 사이의 원자 스왑을 실행하는 데 수행될 수 있다. 이러한 원자 스왑을 구현하기 위한 방법이 아래에서 설명된다.
원자 스왑에서 해시 퍼즐을 사용하는 것 대신에, 위에서 개시된 개인 키 퍼즐이 사용된다. 이는 알려진 원자 스왑의 모든 기능을 유지하면서, 다음을 포함하는 유리한 일반화를 허용한다:
- 공통 해시 함수를 공유하지 않는 블록체인을 통한 원자 스왑; 및
- 공개/개인 키 쌍에 의해 제어되는 리소스의 제어 또는 이에 대한 액세스의 원자 교환.
위에서 설명된 바와 같이, 해시 퍼즐이 아닌 개인 키 퍼즐을 사용할 때, Alice가 해시의 사전-이미지를 노출하는 대신 트랜잭션을 상환할 때, 그녀는 알려진 공개 키의 개인 키가 결정되는 것을 가능하게 한다. 이 대비는 아래의 테이블에서 설명된다.
Figure pct00069
본 개시의 실시예가 도 3을 참조하여 아래의 방법 단계들과 관련하여 설명된다:
1. (110) Alice는 임시 키
Figure pct00070
을 선택하고, 이를 적합한 보안 채널을 통해 Bob에게 전송한다. 대안적으로, Alice 및 Bob은
Figure pct00071
에 대해 동의할 수 있다.
2. (120) Alice는 그녀 자신에게만 알려진 개인 키
Figure pct00072
을 선택한다. 그녀는 대응하는 공개 키
Figure pct00073
를 계산한다.
3. (130) Alice는 다음의 상환 스크립트를 갖는 트랜잭션 TxA를 생성한다.
Figure pct00074
여기서,
Figure pct00075
는 Bob의 공개 키이고
Figure pct00076
는 위에서 소개된 개인 키 퍼즐이다. 이 단계에서 Bob은 공개 키
Figure pct00077
에 대응하는 개인 키, 즉,
Figure pct00078
를 알지 못하기 때문에 트랜잭션을 상환할 수 없다. Alice는 TxA를 블록체인에 제출한다.
4. (140) Bob은 다음의 상환 스크립트를 갖는 트랜잭션 TxB를 생성한다.
Figure pct00079
여기서
Figure pct00080
는 Alice의 공개 키이다. Bob은 TxB를 블록체인에 제출한다.
5. (150) Alice는
Figure pct00081
을 알고 있으므로 TxB를 상환할 수 있다. TxB의 상환 스크립트에 대한 입력으로서, Alice는 특정 임시 키
Figure pct00082
을 사용하여
Figure pct00083
에 대한 서명을 제공해야 한다. TxB에 대한 잠금 해제 스크립트를 블록체인에 제시하는 상환 트랜잭션의 제출에 의한 TxB의 상환은 반드시 s의 값을 공개한다. 그가 임시 키
Figure pct00084
의 값을 이미 알고 있다는 점을 고려하면, 이 s의 노출은 Bob이 개인 키
Figure pct00085
을 계산하는 것을 허용한다. (160) 시간이 만료되면 블록체인에 적합한 환불 트랜잭션을 제출하는 Alice 및 Bob에 의해 TxA 및 TxB의 제어가 Alice 및 Bob에게 반환되는 것을 가능하게 하도록 구성되는, 타임 락 함수(timelock functions)를 사용하여 TxA 및 TxB의 상환에 부과되는 시간 제한이 있거나 또는 있지 않을 수 있다.
6. (170) Alice가 TxB를 상환하면, (180) Bob은
Figure pct00086
을 계산할 수 있고, (190)
Figure pct00087
에 대응하는 서명을 상환 트랜잭션의 잠금 해제 스크립트를 통해 그에 제공함으로써 Tx1을 상환할 수 있다.
이 방법이 해시 퍼즐에 의존하지 않으므로, 이는 그의 스크립팅 언어에서 공통 해시 함수를 공유하지 않는 블록체인을 통해 원자 스왑을 수행하는 데 사용할 수 있다. 필요한 것 모두는 스크립팅 언어가 개인 키 퍼즐을 생성하는 데 충분한 기능을 포함하는 것이다. 이는 덜 제한적인 요구사항의 세트이다.
도 4를 참조하면, 추가적인 실시예에서, Alice 및 Bob은 각각 그 자신의 임시 키
Figure pct00088
Figure pct00089
및 그 자신의 개인 키
Figure pct00090
Figure pct00091
를 선택한다. 그들은 위에서 설명된 비동기 실시예의 임시 키
Figure pct00092
을 전달하는 것과 유사한 방식으로 그들의 임시 키를 교환한다. 그 후, Alice 및 Bob은 점
Figure pct00093
의 x 구성요소인 서명 구성요소
Figure pct00094
및 점
Figure pct00095
의 x 구성요소인
Figure pct00096
를 계산할 수 있다.
Figure pct00097
Figure pct00098
를 사용하여 계산된 서명 중 나머지 서명 구성요소는
Figure pct00099
Figure pct00100
가 되도록, 각각
Figure pct00101
Figure pct00102
로 나타난다.
Figure pct00103
Figure pct00104
가 이 실시예에서 동일하거나 동일하지 않을 수 있으며, 즉 공통
Figure pct00105
이 대신 사용될 수 있다는 점을 유의한다.
이 실시예는 다음 단계에 따라 수행된다:
1. (210A, 210B) Alice 및 Bob은 그들 자신의 임시 키
Figure pct00106
Figure pct00107
를 선택하고 이를 서로에게 전달한다.
2. (220A) Alice는 그녀 자신에게만 알려진 개인 키
Figure pct00108
을 선택한다. 그녀는 대응하는 공개 키
Figure pct00109
를 계산한다.
3. (230) Alice는 다음의 상환 스크립트를 갖는 트랜잭션 Tx1A를 생성한다.
Figure pct00110
여기서
Figure pct00111
는 Bob의 공개 키이고
Figure pct00112
는 개인 키
Figure pct00113
Figure pct00114
에 대응하는 서명의 제공을 요구하는 개인 키 퍼즐이다. 이 단계에서, Bob은 공개 키
Figure pct00115
에 대응하는 개인 키 즉,
Figure pct00116
를 알지 못하기 때문에 트랜잭션을 상환할 수 없다.
4. (220B) Bob은 그 자신에게만 알려진 개인 키
Figure pct00117
을 선택한다. 그는 대응하는 공개 키
Figure pct00118
를 계산한다.
5. (240) Bob은 다음의 상환 스크립트를 갖는 트랜잭션 Tx1B를 생성한다.
Figure pct00119
여기서
Figure pct00120
는 Alice의 공개 키이다.
Tx1A 및 Tx1B 스크립트의 키 퍼즐 부분은 동일하다는 것을 유의한다. 키 퍼즐
Figure pct00121
은, 그에 대한 개인 키
Figure pct00122
Figure pct00123
에 대응하는 서명, 즉 서명
Figure pct00124
Figure pct00125
의 제시를 요구한다.
(250) 이 점에서, Alice는
Figure pct00126
를 알지 못하며,
Figure pct00127
를 알지 못하므로 이를 계산할 수도 없다. 마찬가지로, Bob은
Figure pct00128
또는
Figure pct00129
를 알지 못한다. 그러므로, Alice와 Bob은 모두 Tx1A 또는 Tx1B를 상환하기에 충분한 정보를 갖지 않는다. Alice 및 Bob 모두는 그들 각각의 서명 구성요소
Figure pct00130
또는 개인 키
Figure pct00131
를 다른 것에 각각 전달함으로써 정직하게(honestly) 행동할 수도 있거나, 둘 중 하나만 정직하게 행동할 수도 있거나, 누구도 그렇지 않을 수도 있다. 그러므로, 다음의 결과 중 하나가 발생할 수 있다:
6A. 1) Alice가 Bob에게
Figure pct00132
또는
Figure pct00133
를 전송하고, Bob이 Alice에게
Figure pct00134
또는
Figure pct00135
를 전송하는 것으로 가정한다(즉, 양 파티 모두가 정직하게 행동한다). (295) 그 후, Alice 및 Bob 모두는 그 안의 키 퍼즐을 해결하는 트랜잭션 Tx1A 및 Tx1B의 상환 스크립트에 서명을 제공하기에 충분한 정보를 갖는다. 그러므로, Tx1A 및 Tx1B는 Tx1A 및 Tx1B에 각각의 잠금 해제 스크립트를 제시하는 소비 트랜잭션의 제출에 의해 Bob 및 Alice 각각에 의해 상환될 수 있다.
6B. 2) Alice만이 Bob에게
Figure pct00136
또는
Figure pct00137
를 전송함으로써 정직하게 행동하고, Bob은 Alice에게 올바른
Figure pct00138
또는
Figure pct00139
를 전송하지 않거나, 아무것도 전송하지 않음으로써 정직하지 않게 행동하는 것으로 가정한다. (270) 그 후, Bob은 Tx1A의 상환 스크립트에 포함된 키 퍼즐을 해결하기 위해
Figure pct00140
에 대응하는, 그의 잠금 해제 스크립트에 서명을 제공하는 상환 트랜잭션을 제출함으로써, Tx1A를 상환할 수 있다. Bob이 Tx1A를 상환하도록 배열된 잠금 해제 스크립트를 포함하는 상환 트랜잭션을 블록체인에 제출하면, 서명
Figure pct00141
이 공개적으로 이용 가능해진다. (280) 그로 인해, Alice는 임시 키
Figure pct00142
를 알고 있으므로, 그녀가 키
Figure pct00143
를 계산하고, 그러므로 Tx1B를 상환하기에 충분한 정보를 갖는 것을 가능하게 하는, 값
Figure pct00144
를 인지하게 된다. (290) 그 후, Alice는 Tx1B의 상환 스크립트에 포함된 키 퍼즐을 해결하기 위해
Figure pct00145
에 대응하는 그의 잠금 해제 스크립트에 서명을 제공하는 상환 트랜잭션을 제출한다.
6C. 3) Alice 및 Bob 누구도 다른 사람에게
Figure pct00146
또는
Figure pct00147
를 전송하지 않는 것으로 가정하면, (260) 트랜잭션 Tx1A 및 Tx1B는 이 경우, 블록체인에 적합한 상환 트랜잭션을 제출하는 각각의 소유자를 통해 트랜잭션의 제어가 그의 각각의 소유자에게 반환되는 것을 가능하게 하기 위한 타임 락(활성화된 경우)과 같은 시간이 만료될 때까지 상환 가능하지 않은 상태로 유지된다.
위의 실시예에서 설명된 것과 같은 트랜잭션의 대칭적인 구성은 키 퍼즐로 구성된 트랜잭션을 사용하여 동기식 원자 스왑이 이루어지는 것을 가능하게 한다. 이는 파티가 상기 필요한 정보에 의존하는 트랜잭션을 상환하는 데 필요한 정보를 노출시키기 위해 블록이 채굴되는 것을 기다려야 하는 것 대신에, 트랜잭션 Tx1A 및 Tx1B 모두가 다른 파티에게 각각의 리소스에 대한 액세스 또는 이의 제어를 동시에 전송하는 것을 가능하게 한다.
이제, 하나 이상의 리소스에 대한 액세스 또는 이의 제어의 원자 교환을 가능하게 하는 본 개시의 실시예가 도 5를 참조로 설명될 것이다.
이 실시예에서, Alice는 ECC 공개/개인 키 쌍을 통해 리소스에 대한 액세스를 제어한다. 이 리소스는 하나의 타입의 암호 화폐의 자금일 수 있거나, 다수의 타입의 암호 화폐의 자금일 수 있거나, 또는 이는 웹앱, 렌트카 또는 암호화된 문서에 대한 액세스, 또는 웹캠 또는 도어락과 같은 사물 인터넷 스마트 디바이스의 제어일 수 있다. 아래에서, Bob이 비트코인 프로토콜을 사용하여 Alice로부터 이 리소스에 대한 액세스를 획득하기 위한 방법이 제시된다. 이 교환은 원자적이다: Alice는 그녀가 Bob으로부터 수신한 BCH를 상환하고, Bob은 리소스에 대한 액세스 또는 이의 제어를 획득하거나, 또는 둘 모두 발생하지 않는다.
예시로서, Bob이 BCH의 자금을 Alice에게 전송하고, Alice가 BCH, 이더리움(ETH) 및 DASH의 자금을 Bob에게 전송하는 것을 고려한다.
이 방법은 원자 스왑이 완료될 때 리소스를 제어하는 개인 키를 계산하기 위해 임시 키의 제어기에 의해 요구되는 정보가 노출되는 것을 보장한다. 이는 제어된 리소스에 대한 액세스의 권한을 부여하는(granting) 파티에서 신뢰에 대한 요구를 제거한다.
방법은 다음의 단계를 포함한다:
1. (310) Alice는 임시 키
Figure pct00148
을 선택하고 이를 Bob에게 전달한다.
2. (320) Alice는 그녀 자신에게만 알려진 개인 키
Figure pct00149
을 선택한다. 그녀는 대응하는 공개 키
Figure pct00150
를 계산한다. 이 공개 키는 리소스에 대한 액세스를 제어하고, 공개적으로(openly) 브로드캐스트된다.
(이 예시에서, 리소스는 공개 키
Figure pct00151
로 잠긴 BCH, ETH 및 DASH의 자금이다.)
3. (325) Alice는 Bob의 공개 키
Figure pct00152
를 사용하여 결정성 공개 키
Figure pct00153
를 계산하고, (330) 공개 키
Figure pct00154
의 개인 키
Figure pct00155
의 소유자에 의해 리소스에 대한 액세스가 획득되는 것을 가능하게 한다. 예를 들어, 이는 일정량의 암호 화폐를 주소
Figure pct00156
로 전송하는 트랜잭션 Tx'를 생성하거나 또는 공개 키
Figure pct00157
로 문서를 암호화하고 그 후, 공개 포럼에 문서를 브로드캐스트함으로써 달성될 수 있다.
(이 예시에서, Alice는 BCH, ETH 및 DASH 트랜잭션을 공통 주소로 만들고, 각각은 공통 공개 키
Figure pct00158
로 잠긴다.
4. (340) Bob은 다음의 상환 스크립트로 잠긴 트랜잭션 TxB를 제출한다.
Figure pct00159
5. (370) Alice가
Figure pct00160
을 알고 있으므로, 그녀는 TxB를 상환할 수 있다. 이 예시에서, 이는 BCH 블록체인에서 행해진다. 위에서 설명된 바와 같이, 이는 Bob이 Alice의 상환 스크립트에 대한 입력에 제공된 정보로부터
Figure pct00161
을 계산할 수 있게 한다. (360) 시간이 만료되면 Tx' 및 TxB의 제어가 Alice 및 Bob에게 반환되는 것을 가능하게 하도록 구성되는, 타임 락 함수를 사용하여 Tx' 및 TxB의 상환에 부과되는 시간 제약이 있거나 있지 않을 수 있다.
6. (370) Alice는 잠금 해제 스크립트에서
Figure pct00162
에 대응하는 서명을 제공하는 상환 트랜잭션을 제출함으로써 트랜잭션 TxB를 상환하고, 서명의 s 부분을 Bob에게 노출시킨다.
7. (380) Bob은 이제
Figure pct00163
을 계산하며, 그러므로 (385)
Figure pct00164
의 개인 키
Figure pct00165
을 계산할 수 있다. 그로 인해, 그는
Figure pct00166
에 의해 제어되는 리소스에 대한 액세스를 획득한다.
(이 예시에서 Bob은 이제 공개 키
Figure pct00167
로 잠긴 BCH, ETH 및 DASH에서 자금을 소비할 수 있다.)
개인 키
Figure pct00168
가 블록체인 등에서 공중에게 노출되더라도,
Figure pct00169
에서 잠긴 리소스에 액세스하거나 또는 이를 제어할 수 있은 사람은 Bob 뿐임을 유의한다. 이는 리소스가
Figure pct00170
및 Bob의 개인 키의 조합으로 잠겨 있기 때문이다. 이런 의미에서
Figure pct00171
은 결정성 키의 역할을 한다.
이 예시에서, Bob이 구매하는 암호 화폐가 그의 스크립팅 언어로 특정 연산을 포함하는 것이 더 이상 요구되지 않음이 관찰될 수 있다. Bob이 BCH의 암호 화폐의 수집을 위한 비용을 지불하고 ECDSA 서명을 사용하여 트랜잭션이 제어되는 것만이 요구된다.
Bob의 리소스가 Alice에 의해 영구적으로 잠기는 것을 피하기 위해, 시간-잠금 반환이 방법에 도입될 수 있다. 이는 Alice에 대한 그의 제1 트랜잭션 이후에 특정 상대적 시간(예를 들어, 24 시간)이 지난 이후에, Bob에게 리소스를 반환하는, Alice로부터 Bob으로의 BCH 트랜잭션이다.
마찬가지로, Alice는 일정 시간이 지난 후에, 그녀의 제어된 리소스에 대한 액세스를 다시 그녀 자신에게 반환할 수 있다. 다수의 암호 화폐의 예시에서, 이는 또한, Bob의 것에 유사한 반환 트랜잭션일 것이다.
스왑이 완료되지 않은 경우 일정 시간이 지난 이후에, Alice가 리소스의 제어를 다시 그녀 자신에게 반환하는 것이 필요하지 않거나 또는 실용적이지 않을 수 있다. 예를 들어, 리소스가 Bob에게 액세스가 승인된 암호화된 문서이면, Alice에게 무기한으로 문서를 키
Figure pct00172
로 암호화된 상태로 두는 데 불리한 점이 있지 않다.
이제 도 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 블록체인 트랜잭션에 제공함으로써 제1 리소스에 대한 액세스를 가능하게 하도록 상환 가능한(redeemable) 상기 제1 블록체인 트랜잭션을 제공하는 단계 - 상기 데이터 항목은 노출 가능한 값 및 비밀 값 모두의 제어기에 의해서만 결정 가능함 -; 및
    상기 제어기가 상기 데이터 항목을 결정하는 것을 가능하게 하도록 상기 비밀 값의 제어기에 상기 노출 가능한 값을 제공하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 상기 데이터 항목은 제1 암호화 키 쌍의 제1 개인 키를 포함하는, 방법.
  3. 제2항에 있어서, 상기 제1 블록체인 트랜잭션은 상환 가능하도록 제2 암호화 키 쌍의 제2 개인 키를 제공하는 것을 더 요구하고, 상기 제2 암호화 키 쌍은 상기 제1 리소스의 의도된 수신자와 연관되는, 방법.
  4. 제3항에 있어서, 상기 제1 개인 키는 결정성 암호화 키 쌍의 결정성 개인 키이고, 상기 쌍의 상기 결정성 공개 키는 상기 제1 암호화 키 쌍의 제1 공개 키 및 상기 제2 암호화 키 쌍의 제2 공개 키를 사용하여 도출되는, 방법.
  5. 어느 전술한 청구항에 있어서, 상기 제어기에 상기 노출 가능한 값을 제공하는 단계는:
    제2 블록체인 트랜잭션에 적어도 상기 데이터 항목을 제공함으로써 제2 리소스에 대한 액세스를 가능하게 하도록 상환 가능한 상기 제2 블록체인 트랜잭션을 제공하는 것 - 상기 제2 블록체인 트랜잭션의 상환(redemption)은 상기 노출 가능한 값이 상기 제어기에 제공되게 함 -; 및
    상기 제2 블록체인 트랜잭션을 상환하는 것을 포함하는, 방법.
  6. 어느 전술한 청구항에 있어서, 어느 전술한 청구항의 블록체인 트랜잭션의 상환은 상기 데이터 항목에 대응하는 암호화 서명을 계산하는 것 및 상기 트랜잭션에 저장된 값을 상기 계산된 서명의 적어도 일부와 비교하는 것을 포함하는, 방법.
  7. 어느 전술한 청구항에 있어서, 상기 비밀 값은 디지털 서명 프로세스에서 사용되는 임시 키(ephemeral key)인, 방법.
  8. 시스템으로서,
    프로세서; 및
    상기 프로세서에 의한 실행의 결과로서, 상기 시스템이 어느 전술한 청구항의 방법을 수행하게 하는 실행 가능한 명령어를 포함하는 메모리를 포함하는, 시스템.
  9. 컴퓨터 시스템의 프로세서에 의해 실행되는 결과로서, 상기 컴퓨터 시스템이 적어도 제1항 내지 제7항 중 어느 한 항의 방법을 수행하게 하는 실행 가능한 명령어를 저장하는 비일시적 컴퓨터-판독가능 저장 매체.
KR1020217012522A 2018-09-28 2019-09-19 디지털 리소스에 대한 액세스를 전송하기 위한 컴퓨터 구현된 시스템 및 방법 KR20210065995A (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 深圳壹账通智能科技有限公司 交易处理方法、装置、计算机设备和存储介质

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