KR20210008516A - 블록체인을 사용하여 원자 스왑을 수행하기 위한 컴퓨터-구현된 시스템 및 방법 - Google Patents

블록체인을 사용하여 원자 스왑을 수행하기 위한 컴퓨터-구현된 시스템 및 방법 Download PDF

Info

Publication number
KR20210008516A
KR20210008516A KR1020207035665A KR20207035665A KR20210008516A KR 20210008516 A KR20210008516 A KR 20210008516A KR 1020207035665 A KR1020207035665 A KR 1020207035665A KR 20207035665 A KR20207035665 A KR 20207035665A KR 20210008516 A KR20210008516 A KR 20210008516A
Authority
KR
South Korea
Prior art keywords
node
secret value
secret
user
public key
Prior art date
Application number
KR1020207035665A
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
Priority claimed from GBGB1807813.9A external-priority patent/GB201807813D0/en
Priority claimed from GBGB1807807.1A external-priority patent/GB201807807D0/en
Priority claimed from GBGB1807816.2A external-priority patent/GB201807816D0/en
Priority claimed from GBGB1807811.3A external-priority patent/GB201807811D0/en
Application filed by 엔체인 홀딩스 리미티드 filed Critical 엔체인 홀딩스 리미티드
Publication of KR20210008516A publication Critical patent/KR20210008516A/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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key 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)
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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
    • 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/321Cryptographic 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 a third party or a trusted authority
    • H04L9/3213Cryptographic 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 a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic 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 time stamps, e.g. generation of time stamps
    • 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

Abstract

컴퓨터-구현된 교환 방법이 제공된다. 방법은 비트코인 캐시 블록체인과 같이, 하나 이상의 블록체인 상에서 수행될 수 있다. 방법은: 제1 사용자로부터 제2 사용자로 제1 가려진 비밀 값(H(A 0 )), 및 제2 사용자로부터 제1 사용자로 제2 가려진 비밀 값(H(B 0 ))을 전달하는 단계; 및 제1 가려진 비밀 값 및 제2 가려진 비밀 값을 각각 포함하는 제1 및 제2 블록체인 트랜잭션(tx1, tx2)을 구성하는 단계 - 트랜잭션은 각각의 블록체인 트랜잭션으로 제1 비밀 값(A 0 )과 제2 비밀 값(B 0 ) 양자의 제공 시, 각각의 제1 또는 제2 리소스의 제어를 전송하기 위해 잠금 해제 가능하도록 배열됨 -를 포함하고, 제1 블록체인 트랜잭션의 잠금 해제는 제1 비밀 값이 제2 사용자에게 노출되게 하고, 제2 블록체인 트랜잭션의 잠금 해제는 제2 비밀 값이 제1 사용자에게 노출되게 한다.

Description

블록체인을 사용하여 원자 스왑을 수행하기 위한 컴퓨터-구현된 시스템 및 방법
본 발명은 일반적으로 컴퓨터-구현된 보안 방법 및 암호화 기술에 관한 것이다. 보다 상세하게, 본 발명은 리소스의 제어를 원자적으로(atomically) 교환하기 위한 방법에 관한 것이다. 본 발명은 하나 이상의 블록체인 및 연관된 프로토콜에서 사용하기에 특히 적합하지만, 이에 제한되지 않는다.
본 문서에서, '블록체인'이란 용어를 모든 형태의 전자적인, 컴퓨터-기반의, 분산 원장(distributed ledgers)을 포함하는 것으로 사용한다. 이는 컨센서스-기반의 블록체인(consensus-based blockchain) 및 트랜잭션-체인 기술, 허가된 및 허가되지 않은 원장, 공유 원장 및 이의 변형을 포함한다. 블록체인 기술의 가장 널리 알려진 응용은 비트코인 원장이지만, 다른 블록체인 구현이 제안되고 개발되었다. 비트코인이 본원에서 편의 및 예시의 목적으로 언급될 수 있지만, 본 발명이 비트코인 블록체인을 통해 사용하는 것으로 제한되지는 않으며, 대안적인 블록체인 구현 및 프로토콜이 본 발명의 범주 내에 속한다는 점이 유의되어야 한다. "사용자"라는 용어는 본원에서 인간 또는 프로세서-기반의 리소스를 지칭할 수 있다. 또한, 본원에서 사용된 "비트코인"이란 용어는 비트코인 프로토콜로부터 도출된 프로토콜 또는 구현의 모든 버전 및 변형을 포함하는 것으로 의도된다.
블록체인은 결국 트랜잭션으로 구성되는 블록으로 구성되는 컴퓨터-기반의 탈중앙화된(decentralised) 분산 시스템으로 구현된 피어-투-피어(peer-to-peer) 전자 원장이다. 각 트랜잭션은 블록체인 시스템에서 참가자 간의 디지털 자산 또는 리소스의 제어의 전송(transfer)을 인코딩하는 데이터 구조이며, 적어도 하나의 입력 및 적어도 하나의 출력을 포함한다. 각 블록은 그 블록이 그의 시작 이래로 블록체인에 기록된 모든 트랜잭션의 영구적이고 변경할 수 없는 기록을 생성하기 위해 블록이 함께 연쇄되도록 이전 블록의 해시(hash)를 포함한다. 트랜잭션은 그 입력 및 출력에 내재된(embedded) 스크립트로 알려진 소규모 프로그램을 포함하고, 이는 어떻게 누구에 의해 트랜잭션의 출력이 액세스될 수 있는지를 지정한다. 비트코인 플랫폼에 대해, 이들 스크립트는 스택-기반의 스크립팅 언어(stack-based scripting language)를 사용하여 기록된다.
트랜잭션이 블록체인에 기록되게 하기 위해, 이는 "유효성 검증(validated)되어야" 한다. 네트워크 노드(채굴자)는, 각 트랜잭션이 유효하고, 유효하지 않은 트랜잭션이 네트워크로부터 거부됨을 보장하기 위한 작업을 수행한다. 노드 상에 설치된 소프트웨어 클라이언트는 그의 잠금 및 잠금 해제 스크립트를 실행함으로써, 소비되지 않은 트랜잭션(unspent transaction, UTXO)에 대해 이 유효성 검증 작업을 수행한다. 잠금 및 잠금 해제 스크립트의 실행이 TRUE로 평가되는 경우, 트랜잭션은 유효하고 트랜잭션은 블록체인에 기록된다. 따라서, 트랜잭션이 블록체인에 기록되게 하기 위해, 이는 i) 트랜잭션을 수신하는 제1 노드에 의해 유효성 검증되고 - 트랜잭션이 유효성 검증되는 경우, 노드는 이를 네트워크에서 다른 노드에 중계(relay)함 -; ii) 채굴자에 의해 구축되는 신규 블록에 추가되며; 및 iii) 채굴, 즉 과거 트랜잭션의 공공 원장에 추가되어야 한다.
암호화폐 구현의 사용에 대해 블록체인 기술이 가장 널리 알려져 있지만, 디지털 기업가는 신규 시스템을 구현하기 위해 비트코인이 기초로 하는 암호화폐 보안 시스템, 및 블록체인 상에 저장될 수 있는 데이터 양자의 사용을 조사하기 시작하였다. 블록체인이 암호화폐의 영역으로 제한되지 않는 자동화된 작업 및 프로세스에 대해 사용될 수 있는 경우, 이는 매우 유리할 것이다. 이러한 해결책은 블록체인의 장점(예를 들어, 이벤트의 영구적인 변조 방지 기록, 분산 처리 등)을 이용할 수 있으면서, 그의 응용에서 더욱 범용성이 있을 것이다.
원자 스왑(atomic swap)의 개념은 암호화폐 커뮤니티에서 이전에 논의되었다. 파티(parties) 간의 교환은 모든 참가자가 그들의 원하는 리소스(예를 들어, 암호화폐 토큰 또는 코인)를 수신하거나 또는 어느 것도 하지 않는다는 의미에서 "원자적이다". 글을 쓰는 시점에서, 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) 리소스 교환 방법을 제공하는 것이 바람직하고, 이는 블록체인-구현된 네트워크를 통해 행해지는 전송에 대한 보안을 향상시킨다.
이러한 개선된 해결책이 이제 고안되었다.
본 발명에 따라, 컴퓨터-구현된 교환(exchange), 상호 교환(interchange) 또는 전송 방법이 제공된다. 추가적인 또는 대안적인 정의에 따라, 본 발명은 리소스가 네트워크를 통해 송신자로부터 수신자로 송신될 수 있거나 또는 그렇지 않을 수 있는 때를 제어하는 보안 방법을 제공한다. 추가적으로 또는 대안적으로, 본 발명은 블록체인을 통한 리소스의 원자 교환 또는 송신을 수행하도록 배열된 방법 및 대응하는 시스템을 제공한다.
방법은:
(i) 제1 사용자로부터 제2 사용자로 제1 가려진(veiled) 비밀 값을, 및 제2 사용자로부터 제1 사용자로 제2 가려진 비밀 값을 전달하는(communicating) 단계; 및
(ii) 제1 가려진 비밀 값 및 제2 가려진 비밀 값을 각각 포함하는 제1 및 제2 블록체인 트랜잭션을 구성하는 단계 - 트랜잭션은 각각의 블록체인 트랜잭션으로 제1 비밀 값 및 제2 비밀 값 양자의 제공 시 각각의 제1 또는 제2 리소스의 제어를 전송하기 위해 잠금 해제 가능하도록 배열됨 -를 포함할 수 있고,
제1 블록체인 트랜잭션의 잠금 해제는 제1 비밀 값이 제2 사용자에게 노출되게(revealed) 하고, 제2 블록체인 트랜잭션의 잠금 해제는 제2 비밀 값이 제1 사용자에게 노출되게 한다.
방법은 적어도 두 개의 트랜잭션(Tx1 및 Tx2)을 포함함으로써 원자 교환 메커니즘을 제공할 수 있으며, 각 트랜잭션은 각각의 출력과 연관된 복수의 퍼즐 또는 스크립트에 요구되는 기준의 제공 시에만 잠금 해제될 수 있는 적어도 하나의 소비되지 않은 출력(UTXO)을 갖는다. 즉, 제1 트랜잭션에서 소비되지 않은 출력에 대한 잠금 및 잠금 해제 기준은 그 또는 다른 트랜잭션에서 소비되지 않은 출력에 대한 잠금 기준과 동일하고 이에 의해 미러링될 수 있다.
제1 트랜잭션에서 소비되지 않은 출력에 요구되는 잠금 해제 기준의 제공은 그 또는 다른 트랜잭션에서 소비되지 않은 출력을 잠금 해제하는 데 요구되는 하나 이상의 비밀 값을 노출하거나 액세스 가능하게 할 수 있다.
비밀 값을 포함하는 잠금 해제 스크립트는 제1 또는 제2 트랜잭션에서 출력을 소비하는 후속 트랜잭션의 입력에서 제공될 수 있다. 후속 트랜잭션의 잠금 해제 스크립트가 제1 또는 제2 트랜잭션의 잠금 스크립트와 함께 실행되면, 후속 트랜잭션이 유효성 검증되고 후속적으로 블록체인 상에 공개될(published) 수 있으며, 이는 후속 트랜잭션의 입력에서 제공되는 하나 이상의 비밀 값이 블록체인으로부터 액세스 가능하거나 또는 판독 가능하게 한다.
이 방법은 방법의 어떠한 사용자도 다른 사용자보다 방법에 대해 더 많은 제어를 갖지 않는, 신뢰할 수 없는 환경에서 비밀 값이 원자적으로 교환되는 것을 보장하는 안전한 방식을 제공한다.
비밀 값은 가려진 비밀 값으로부터 실현 가능하게(feasibly) 결정될 수 없지만 가려진 비밀 값이 비밀 값으로부터 실현 가능하게 결정될 수 있다는 점에서 대응하는 가려진 비밀 값에 관련된다. 이 관계의 예시는 비밀 값에 대한 해싱 또는 모듈로 연산과 같은 일방 함수(one-way function)의 적용이 가려진 비밀 값을 제공하는 경우이다. 따라서, 하나의 정의에 따라, 가려진 (비밀) 값은 원래 (비밀) 값으로부터 도출될 수 있거나 또는 도출되었을 수 있지만, 원래 (비밀) 값을 결정하는 데 사용될 수 없는 것일 수 있다. 이는 원래의 값을 제공하기 위해 실현 가능하게 역-엔지니어링되지(reverse-engineered) 않을 수 있다.
"트랜잭션을 잠금 해제하는 것"이란 어구는 트랜잭션에서 제공되는 적어도 하나의 소비되지 않은 출력(UTXO)을 잠금 해제하거나 또는 소비하는 의미를 포함할 수 있다. 이는 소비되지 않은 출력과 연관된 잠금 스크립트를 충족하는 데 필요한 요구되는 데이터/잠금 해제 스크립트를 제공함으로써 달성될 수 있다.
제1 트랜잭션 및 제2 트랜잭션 중 적어도 하나는 각각의 제1 개인 키 및 제2 개인 키의 적용 또는 제공 시에만 회수 가능(redeemable)(소비 가능)하도록 구성될 수 있다.
이는 그의 개인 키에 의해 나타난 의도된 수신자만이 트랜잭션을 잠금 해제할 수 있다는 장점을 제공한다.
방법은: (a) 제1 사용자의 제1 공개 키에 적어도 부분적으로 기초한 제1 도출된 공개 키; 및 (b) 제2 사용자의 제2 공개 키에 적어도 부분적으로 기초한 제2 도출된 공개 키 중 적어도 하나를 계산하는 단계를 더 포함할 수 있으며, 제1 도출된 공개 키는 제1 개인 키를 갖는 암호 키 쌍(cryptographic key pair)의 일부이고 제2 도출된 공개 키는 제2 개인 키를 갖는 암호 키 쌍의 일부이다.
이는 자산 또는 리소스가 공개적으로 알려지는 것이 아닌 도출되는 주소에 저장되는 것을 가능하게 하며, 방법의 사용자에게 추가적인 프라이버시 및 보안을 제공한다. "자산" 및 "리소스"란 용어는 본원에서 상호 교환적으로 사용될 수 있다는 것이 유의되어야 한다. "자산"이란 용어는 재정적인 맥락 또는 용도를 갖는 것으로만 해석되지 않아야 한다. 자산은 예를 들어, 블록체인에서 또는 그 외부에서 일부 다른 엔티티를 나타내는 토큰일 수 있다.
(a) 제1 사용자의 제1 공개 키에 적어도 부분적으로 기초한 제1 도출된 공개 키; 및 (b) 제2 사용자의 제2 공개 키에 적어도 부분적으로 기초한 제2 도출된 공개 키 중 적어도 하나를 계산하는 단계는 제1 및 제2 가려진 비밀 값의 조합을 더 포함할 수 있다.
이는 수행되는 원자 스왑과 트랜잭션 사이에 기록되고 지워지지 않는(indelible) 링크를 제공하는 장점을 제공한다.
제1 및 제2 가려진 비밀 값의 조합은 제1 가려진 비밀 값 및 제2 가려진 비밀 값의 연결(concatenation), 및 랜덤 또는 의사-랜덤 값과 적어도 하나의 가려진 비밀 값의 연결 중 적어도 하나를 포함할 수 있다.
이는 추가적인 결정성 난독화(deterministic obfuscation)를 통해 트랜잭션의 보안을 더욱 증가시키는 장점을 제공한다.
방법은: 제1 트랜잭션의 제1 비-상환(non-redemption) 기간의 경과에 응답하여 제1 리소스의 제어를 제1 사용자에게 반환하도록 구성된 제3 블록체인 트랜잭션; 및 제2 트랜잭션의 제2 비-상환 기간의 경과에 응답하여 제2 리소스의 제어를 제2 사용자에게 반환하도록 구성된 제4 블록체인 트랜잭션 중 적어도 하나를 구성하는 단계를 더 포함할 수 있다.
이는 추가적인 사용자가 교환에 완전히 참가하지 않는 경우 방법의 적어도 한 명의 사용자가 각각의 리소스의 제어가 그들에게 반환되게 하는 것을 가능하게 하여, 방법의 다양성을 증가시킨다.
제1 가려진 비밀 값 및 제2 가려진 비밀 값 중 적어도 하나는 제1 비밀 값 및 제2 비밀 값 중 적어도 하나와 제1 사용자 및 제2 사용자 양자에 의해 액세스 가능한 공유된 비밀 값의 조합을 포함할 수 있다.
이는 방법에 의해 제공되는 프라이버시 및 보안을 향상시키는 장점을 제공한다.
공유된 비밀 값은 단계 (i) 이전에 공통 비밀로서 확립될 수 있다.
이는 방법의 보안을 더 증가시키는 장점을 제공한다.
방법은 다음의 단계를 더 포함할 수 있다:
(iii) 제1 비밀 값 및 제2 비밀 값 중 적어도 하나로부터 시작하여 적어도 하나의 가려진 비밀 값의 시퀀스를 생성하는 단계;
(iv) 제1 비밀 값 및 제2 비밀 값 중 적어도 하나를 사용하여 임의의 선행하는 청구항의 방법을 실행하는 단계;
(v) 제1 비밀 값 및 제2 비밀 값 중 적어도 하나를 노출시키기 위해 적어도 하나의 블록체인 트랜잭션을 회수하여, 시퀀스의 적어도 하나의 가려진 비밀 값이 노출되게 하는 단계.
이는 비밀을 저장하는 데 더 작은 저장 공간이 요구되기 때문에, 방법의 단순한 반복보다 더 효율적으로 안전한 원자 교환의 체인이 수행되는 것을 가능하게 한다. 나아가, 더 적은 라운드(rounds)의 통신이 요구된다. 이는 시간을 절약하고 보안을 향상시킨다.
방법의 적어도 단계 (ii)를 실행하는 단계는 방법의 단계(v)에서 노출된 적어도 하나의 가려진 비밀 값을 사용할 수 있다.
이는 방법의 효율을 더 증가시키는 장점을 제공한다.
본 발명의 이들 및 다른 양상은 본원에 서술된 실시예로부터 명백할 것이고, 이를 참조하여 설명될 것이다. 이제, 본 발명의 실시예는 첨부 도면을 참조로 어느 제한적인 의미가 아닌, 예시로서만 서술될 것이다:
도 1은 본 발명을 구현하는 방법에서 취해지는 단계를 도시하는 흐름도를 도시하고;
도 2는 매우 민감한 정보의 안전한 송신을 위해 본 발명에 따라 사용될 수 있는 제1 노드 및 제2 노드에 대한 공통 비밀을 결정하기 위한 예시적인 시스템의 개략도이고;
도 3은 매우 민감한 정보의 안전한 송신을 위해 본 발명에 따라 사용될 수 있는 공통 비밀을 결정하기 위한 컴퓨터-구현된 방법의 흐름도이고;
도 4는 제1 및 제2 노드를 등록하기 위한 컴퓨터-구현된 방법의 흐름도이고; 및
도 5는 매우 민감한 정보의 안전한 송신을 위해 본 발명에 따라 사용될 수 있는 공통 비밀을 결정하기 위한 컴퓨터-구현된 방법의 다른 흐름도이다.
블록체인에서 원자적인 트랜잭션 교환은 두 개의 트랜잭션에 대해 - 하나는 제1 사용자 Alice로부터 제2 사용자 Bob으로의 것이고, 다른 것은 Bob으로부터 Alice로의 것임 -, 양자의 트랜잭션이 완료되거나 또는 어느 것도 완료되지 않음을 의미한다.
도 1을 참조하면, 본 발명은 Alice와 Bob이 각각 A 0 B 0 로 표시된 비밀을 각각 생성하는 것을 가능하게 하는 것(30)을 수반한다. Alice 및 Bob이 신뢰할 수 있다면, 그들은 블록체인 프로토콜의 일부가 아닌 통신 채널을 사용하여, 이들 비밀을 포함하는, 정보를 교환할 수 있다. 그들은 공통 비밀의 결정이란 부제목 하에 아래에서 서술되는 안전한 비밀 교환을 사용할 수 있다.
하나의 파티가 신뢰할 수 없고 그들의 비밀을 공유하지 않는다고 가정한다. 본 발명은 이 파티가 그들의 자금을 소비하기 위한 유일한 방식은 블록체인에 그들의 비밀을 노출하는 것임을 제공하며, 이를 통해 비밀이 공개된 지식이 되고 다른 사용자에 대해 이용 가능해지게 한다. 이는 교환에서 사용되는 트랜잭션의 구성에 기인한다. 그러므로, 방법은 어느 파티가 다른 것을 신뢰하도록 요구하지 않는다.
본 발명의 일 실시예에서, 두 개의 비밀이 있다: 하나는 Alice에 의해 생성되고 그에게 액세스 가능하며, 다른 하나는 Bob에 의해 생성되고 그에게 액세스 가능하다. 이들은 블록체인-외부 채널(off-blockchain channel)을 통해 전달된다.
단일 원자 스왑
Figure pct00001
는 대응하는 개인 키
Figure pct00002
를 갖는 Alice의 타원 곡선 디지털 서명 알고리즘(elliptic curve digital signature algorithm, ECDSA) 공개 키를 나타내고,
Figure pct00003
는 개인 키
Figure pct00004
를 갖는 Bob의 공개 키를 나타내는 것으로 한다.
1. 30에서, Alice는 그녀 자신에게만 알려진 비밀
Figure pct00005
를 선택하고 Bob은 그 자신에게만 알려진 비밀
Figure pct00006
를 선택한다. (이들 비밀은 Alice 및 Bob의 공개 또는 개인 키에 관련되지 않는다). 여기서, n은 타원 곡선 생성기 지점(elliptic curve generator point) G의 차수이다. 비밀은 SHA256 (mod n) 알고리즘을 통해 통과된 일반적인 데이터 구조의 형태일 수 있다.
2. Alice 및 Bob은 그들 사이의 통신 채널을 연다. 이는 공통 비밀의 결정이란 부제목 하에 아래에서 서술되는 방법을 사용하여 생성되는 안전한 통신 채널일 수 있다. 그들은 그 후, 그들의 각각의 비밀을 해시하고(단계(34)), 그들의 공개 키 및 그들의 각각의 비밀의 해시를 공유한다(단계(36)). A 0 B 0 의 해시 값은 각각 H(A 0 ) 및 H(B 0 )로 나타나며, SHA-256과 같은 표준 해시 함수가 사용될 수 있다. 값 H(A 0 ) 및 H(B 0 )은 또한, 공개적으로 공유될 수 있다. Alice 및 Bob은 모두 이제 다음을 안다
Figure pct00007
.
3. 38에서, Alice 및 Bob은 결정성 키를 계산하고
Figure pct00008
,
여기서 "|"은 연산 OP_CAT을 또는 대안적으로, H(H(A 0 )|H(B 0 ))와 같이 도출된 해시를 나타낸다.
4. 40에서, Alice 및 Bob은 이제 도출된 공개 키를 생성한다
Figure pct00009
Figure pct00010
.
이는 대응하는 개인 키를 갖는다
Figure pct00011
Figure pct00012
.
Alice 및 Bob은 원자 스왑을 수행하기 위해, 도출된 공개 키
Figure pct00013
,
Figure pct00014
을 사용할 것이다. 원칙적으로, 그들은 그들의 원래 공개 키
Figure pct00015
,
Figure pct00016
를 사용할 수 있지만, 도출된 공개 키는 원자 스왑에 묶여 있고, (H(A 0 ) 및 H(B 0 )가 공개되지 않은 경우) Alice 및 Bob에 의해 쉽게 계산될 수 있지만 다른 사람에게는 그렇지 않는다는 장점이 있다.
38에서, 결정성 의사-랜덤의 외견상 값(deterministic pseudo-random seeming value)이 또한, 다음과 같이 통합되면, 추가된 프라이버시가 달성될 수 있고:
Figure pct00017
여기서 Z는 공유된 시작 값을 기초로 미리 협의된 제타 함수(Zeta function)와 같이 양자의 파티가 계산할 수 있는 어떤 것이다.
5. 42에서, Alice 및 Bob은 다음의 잠금 스크립트를 구성한다. 여기서, 스크립트는 나중에 예시되는 비트코인 스크립트에서 예시적인 구현과 함께, 개략적으로 서술된다.
Figure pct00018
프로세스
Figure pct00019
는 공개/개인 키 쌍
Figure pct00020
,
Figure pct00021
에 대한 표준 ECDSA 서명 유효성 검증 동작이다. 대신에, 공개/개인 키 쌍
Figure pct00022
,
Figure pct00023
을 통한 표준 ECDSA 서명 유효성 검증인
Figure pct00024
가 사용될 수 있다. 프로세스
Figure pct00025
는 솔루션 A 0 을 통한 해시 퍼즐이며, 이는 잠금 해제 스크립트가 해시될 때, 잠금 스크립트에 제공되는 H(A 0 )와 동일한 유효한 값 A 0 을 포함해야 한다는 것을 의미한다. 잠금 해제 스크립트는 다음에 의해 주어진다.
Figure pct00026
.
여기에서, Alice 또는 Bob이 그들의 자금을 잠금 해제하는 경우, 그들은 블록체인에서 값 A 0 B 0 을 반드시 노출할 것임이 관찰될 수 있다.
6. 42에서, Alice는 잠금 스크립트
Figure pct00027
를 통해
Figure pct00028
에 대한 트랜잭션
Figure pct00029
을 생성하고, Bob은 잠금 스크립트
Figure pct00030
를 통해
Figure pct00031
에 대한 트랜잭션
Figure pct00032
을 생성한다. 이 스테이지에서 어느 파티도 A 0 B 0 양자를 알지 못하므로, Alice와 Bob 모두
Figure pct00033
Figure pct00034
에서 자금을 소비할 수 없다. 이들 트랜잭션은 네트워크로 전송되고, 후속적으로 블록체인 상에서 나타난다.
7. 46C에서, Alice는 Bob에게 그녀의 비밀 A 0 을 전송하고, Bob은 Alice에게 그의 비밀 B 0 을 전송한다. 이는 위에서 확립된 Alice와 Bob 간의 통신 채널을 사용하여 수행된다. Alice 및 Bob은 그들의 해시 값이 H(A 0 ) 및 H(B 0 )와 동일한지 확인함으로써 이들이 올바른 값인지 검사할 수 있다.
8. Alice 및 Bob 양자가 정직하고 그들의 올바른 비밀을 공유한다고 가정하면, 양 파티는 양자의 비밀을 알고(단계(48C)) 양자 모두
Figure pct00035
Figure pct00036
에서 잠금된 자금을 소비할 수 있으며(단계(50C)), 원자 스왑이 완료된다.
9. 예를 들어, Bob이 그의 올바른 비밀 B 0 을 Alice에게 전송하지 않는다고 가정한다. 즉, Alice만이 그녀의 비밀을 전송하고 46C가 아닌 단계(46B)가 발생한다고 가정한다. 잠금 스크립트
Figure pct00037
의 형태에 기인하여, Bob이
Figure pct00038
에서 잠금된 자금을 소비하기 위해, 그는 잠금 해제 스크립트에서 그의 비밀 B 0 을 공개적으로 노출해야 한다. 결과적으로, Bob이 그의 자금을 소비하자마자, Alice는 Bob의 비밀을 학습하며(단계(48B)), 그러므로
Figure pct00039
에서 그녀의 자금을 소비할 수 있게 된다(단계(50B)). 이는 Alice 및 Bob 양자가 그들의 자금을 소비할 수 있거나 또는 둘 다 그들의 자금을 소비할 수 없음을 보장한다.
아래는 비트코인 블록체인과 호환 가능한, 위의 단계 4에서 Alice에 대한 예시적인 잠금 및 잠금 해제 스크립트이다.
Alice에 대한 잠금 스크립트:
Figure pct00040
Alice에 대한 잠금 해제 스크립트:
Figure pct00041
P2PKH(Pay To Public Key Hash) 주소 및 P2SH(Pay To Script Hash) 주소에 대한 트랜잭션은 모두 위의 타입의 잠금 및 잠금 해제 스크립트를 허용한다는 것을 유의한다. P2SH 주소의 경우 잠금 스크립트는 동일한 정보를 포함하는 회수 스크립트의 해시로서 나타난다.
위의 방법은 비트코인 블록체인에서 사용되는 ECSDA에 유사한 공개/개인 키 암호화 시스템을 사용하는 블록체인을 참조로 서술된다. 하지만, 방법은 (임의의 데이터 구조일 수 있는) 일반적인 형태의 비밀이 잠금 해제 스크립트에 노출되도록 요구하는 일반적인 암호화 메커니즘으로 일반화될 수 있다. 잠금 스크립트, 트랜잭션 및 블록체인이 요구되고, 이는 안전하고 검증 가능한 통신 채널이다.
시간-잠금 환불 트랜잭션
Bob이 Alice에게 그의 올바른 비밀 B 0 을 제공하기를 거부하고, 또한 주소
Figure pct00042
에 저장된 그의 자금을 잠금 해제하지 않으면, Bob의 비밀은 Alice에게 노출되지 않을 것이며, 그녀는
Figure pct00043
에 저장된 그녀의 자금을 결코 잠금 해제할 수 없다. 더욱이, Alice는 또한, 그녀가
Figure pct00044
에 저장된 Bob에게 전송한 자금을 결코 다시 요구할 수 없다(reclaim).
이 문제는 Bob으로부터 Alice로 새로운 트랜잭션을 도입함으로써 해결될 수 있으며, 이는 이들이 소비되지 않는 경우 특정 시간의 양 이후에 자금을 다시 전송하도록 구성된다. 이는 또한,
Figure pct00045
Figure pct00046
를 약간 수정하는 것을 요구하며, 수정은 아래에서 서술된다.
이 새로운 트랜잭션은 특정한 미리 지정된 시간이 경과한 이후에만 트랜잭션이 블록에 의해 수락되는 것을 허용하는 잠금 스크립트에서 시간-의존 동작을 사용한다. 예를 들어, 비트코인 스크립트에서, 이는 지정된 값 이후 상대적인 시간의 양에 대한 동작 CSV(Check Sequence Verify)이거나, 또는 고정된 시간 값에 대한 CLTV(Check Lock Time Verify) 일 수 있다.
위의 단계 4에서 잠금 스크립트는 다음과 같이 Alice 및 Bob 양자가 모두 서명에 협의하는 경우 소비의 옵션을 포함하도록 수정된다:
Figure pct00047
44에서, 위에서 서술된 방법에서 단계 4 이후 및 단계 5 이전에 두 개의 새로운 트랜잭션이 생성된다. Alice는
Figure pct00048
로부터 Bob에게 그의 자금 모두를 반환하는 트랜잭션
Figure pct00049
를 생성한다. 이 트랜잭션은 특정 시간의 양, 예를 들어, 24 시간 이후에만 그것이 블록에서 수락될 수 있도록 시간-잠금된다. Bob은
Figure pct00050
으로부터 Alice로 유사한 트랜잭션
Figure pct00051
을 생성한다. 트랜잭션
Figure pct00052
Figure pct00053
은 각각의 잠금 스크립트를 갖는다
Figure pct00054
Alice는
Figure pct00055
에 서명하고 이를 Bob에게 전송하며, 그는 이에 서명하고 이를 네트워크로 전송한다. 마찬가지로, Bob은
Figure pct00056
에 서명하고, 서명하고 네트워크에 전송하는 Alice에게 이를 전송한다.
이 스테이지에서, 어느 파티도 준수하지 않는 경우, 프로세스가 중단되고 자금이 전송되지 않는다. 양 파티가 준수하는 경우, 위 방법의 단계 5가 수행된다(42). 이제, 어느 파티도 원자 스왑에서 교환된 자금을 소비하지 않는 경우(46A), 자금은 24시간 이후에 원래 소유자에게 반환될 것이다(48A, 50A).
여기에서 24시간의 CSV 상대 시간이 예시로서 사용되었지만, (예를 들어, CLTV 연산자를 사용하여) 미래의 임의의 상대 시간 또는 미래의 임의의 특정 시간을 사용하는 것이 가능할 것임을 유의한다.
비트코인 블록체인을 사용하여 24시간 후 Alice에게 자금을 반환하는
Figure pct00057
의 잠금 스크립트의 예시는 다음과 같다:
Figure pct00058
대응하는 잠금 해제 스크립트는
Figure pct00059
에 의해 주어진다.
비밀 값의 마스킹(masking)
추가적인 대안적인 실시예는 값 A 0 B 0 이 Alice 및 Bob에게만 알려지고 결코 공개되지 않도록 마스킹 단계(32)를 포함한다.
처음에, Alice 및 Bob 양자는 그들만 아는 공유된 비밀 Sc에 협의한다. 이는 제목이 공통 비밀의 결정인 아래에서 서술되는 방법을 사용하는 비밀의 안전한 교환을 통해 달성될 수 있다.
그 후, Alice 및 Bob은 새로운 비밀을 정의한다.
Figure pct00060
.
그 후, 그들은 위에 설명된 방법에서와 같이, 하지만 원래의 비밀 대신 마스킹된 비밀
Figure pct00061
,
Figure pct00062
을 통해 진행한다. 원자 스왑 동안, 마스킹된 비밀만이 블록체인에서 공공에게 노출된다.
이는 비밀 값 A 0 B 0 이 아래에서 서술되는 추가적인 실시예에서와 같이, 다른 맥락에서도 사용되는 경우 유용하다.
추가적인 대안적인 실시예는 Alice 및 Bob이 일련의 n 원자 스왑을 만드는 것을 가능하게 한다. 각 파티는 랜덤 비밀로 시작하고, 액세스 체인으로 지칭되는, 이 비밀의 해시 값의 시퀀스를 생성한다. 원자 스왑이 수행될 때, 이는 다음 원자 스왑에서 사용될 다음 비밀의 해시 값을 노출시킨다. 이 프로세스는 최대 n번까지 거듭 반복된다.
Alice 및 Bob은 한 번에 하나의 비밀을 저장만 하면 되므로, 더 작은 저장 공간이 비밀에 대해 요구된다는 점에서 일련의 개별적인 스왑을 통해 이 방법에 대한 효율 절약이 있다. 그들은 이전의 비밀을 해싱하는 것으로부터 다음 비밀을 계산할 수 있다. 그들은 그들이 매번 그들의 비밀의 해시를 전달할 필요가 없기 때문에 서로 간에 더 적은 전달의 라운드를 필요로 한다. 이는 시간을 절약하고 보안을 향상시킨다.
방법은 다음과 같다:
Alice 및 Bob은 반복적인 교환의 수 n에 협의한다. 그들은 각각 랜덤 값 A n B n 을 생성한다. Alice는 다음의 액세스 체인을 계산한다:
Figure pct00063
Bob은 B n 으로부터 시작하는 등가 체인을 계산한다. 이들 체인은 일련의 스왑에서 사용될 비밀 값에 대응한다. 가능한 스왑의 수는 시퀀스 {0,1,..., n}에 있을 것이다. 즉, 파티는 새로운 체인을 다시 초기화해야 하기 전에 0과 n 트랜잭션 사이의 스왑에 대해 이들 값을 사용할 수 있다.
스왑을 구현하기 위한 방법은 아래에서 설명된다. Bob이 등가 프로세스를 따른다는 것이 이해되어야 한다.
1. Alice는 그녀의 체인 A 0 ,A 1 ,...,An, Bob의 공개 키
Figure pct00064
, 및 Bob의 비밀의 해시 H(B 0 )로 시작한다. 이전과 마찬가지로, H(B 0 )는 Bob에 의해 공개적으로 공유될 수 있다.
2. Alice는 도출된 공개 키
Figure pct00065
Figure pct00066
및 그 후, 잠금 스크립트
Figure pct00067
를 계산한다.
이전 실시예에서 서술된 시간 의존적인 환불은 로직에 대한 임의의 실질적인 변경 없이, 위의 잠금 스크립트에 포함될 수 있다는 것을 유의한다.
3. Alice 및 Bob은 제1 스왑을 수행한다. 위에서 서술된 바와 같이, 이는 Alice와 Bob 간의 A 0 B 0 교환을 수반한다. 이는 스왑 이후에, Alice가 이제 H(B 1 ) = B 0 을 안다는 것을 의미한다.
4. Alice는 방법의 단계 2를, 하지만 체인에서 밥의 제2 비밀의 해시 H(B 1 )로 반복한다. 명시적으로 그녀는 도출된 공개 키
Figure pct00068
Figure pct00069
,
및 잠금 스크립트
Figure pct00070
를 계산한다.
5. 제2 스왑이 완료되면 Alice는 H(B 2 ) = B 1 을 안다. 그녀는 Bob의 제3 비밀의 해시 H(B 2 )로 단계 2를 다시 반복한다.
6. 이 프로세스는 스왑이 완료되지 않거나 또는 최대 수 n의 스왑에 도달될 때까지 거듭 반복된다.
이전 실시예에서 서술된 바와 같이, 연산 H(A i )|H(B i )|Z i 에 의사-랜덤 값 Z i 를 도입함으로써 추가적인 보안이 통합될 수 있다. 이 경우, 함수는 예를 들어, 해시 함수 Z i-1 = H(Z i )를 사용함으로써 모든 반복을 변환해야 한다.
위에서 설명된 원자 스왑 방법은 비트코인 블록체인에 제한되지 않는다. 위에서 서술된 원자 스왑 방법에서 중요한 구성요소는 하나의 파티가 단계 7에서 그들의 자금을 소비할 때 그들이 블록체인에서 그들의 비밀을 노출시킨다는 것이다. 이는 위의 방법이 단계 4에서 주어진 형태의 잠금 및 잠금 해제 스크립트를 허용하는 임의의 블록체인에서 원자 스왑을 수행하는 데 사용될 수 있음을 의미한다.
나아가, 원자 스왑 방법은 암호화폐를 교환하는 데 사용될 수 있다. 예를 들어, 이는 Alice가 비트코인 블록체인에서 Bob에게 비트코인을 전송하고 Bob이 이더리움 블록체인에서 Alice에게 이더리움을 전송하는 데 사용될 수 있다.
Figure pct00071
두 개의 상이한 블록체인 간의 원자 스왑에 대한 유일한 제한은 그들이 동일한 해시 함수가 잠금 스크립트(또는 등가물)에서 해시 퍼즐에 사용되는 것을 허용한다는 것이다. 그에 대한 이유는 다음과 같다: Alice의 블록체인은 SHA-256 해싱 알고리즘의 사용만을 허용하고, Bob의 블록체인은 SHA-384 알고리즘만을 허용한다고 가정한다. Bob은 Alice에게 하나의 비밀의 SHA-256 해시를 전송하지만, 그의 잠금 스크립트에서 그는 상이한 비밀에 대한 SHA-384 해시 퍼즐을 설정한다. 그가 그의 자금을 소비할 때, 잠금 해제 스크립트는 Alice에게 아무 소용 없는 비밀을 노출시킬 것이며, Alice는 Bob이 그의 자금을 이미 소비할 때까지 이를 알 방법이 없다.
추가적인 실시예에 따라, 두 개의 파티가 대응하는 개인 키가 오직 양자의 파티에게 액세스 가능하게 또는 어느 파티에도 그렇지 않게 이루어지는 공개 키를 각각 생성하는 것을 가능하게 하는 방법이 제공된다. 방법은 양 파티 간에 두 개의 비밀 값을 교환하기 위해 위에서 서술된 원자 스왑 방법을 사용한다. 이들 비밀 값은 개인 키를 계산하는 데 사용된다.
이 방법의 하나의 응용은 두 개의 파티가 단일 공개/개인 키 쌍에 의해 제어되는 다수의 타입의 암호화폐를 교환하는 것을 허용한다는 것이다.
이 방법은 Alice와 Bob이 원자 스왑이 발생할 때까지 개인 키가 알려지지 않는 공개 키를 각각 생성하는 것을 가능하게 한다. 원자 스왑은 Alice와 Bob 모두 그들의 대응하는 개인 키를 계산할 수 있거나, 또는 모두 그들의 개인 키를 계산할 수 없음을 보장한다.
방법은 예를 들어, 비트코인, 이더리움 및 대시(Dash)에서 사용되는 ECSDA 개인 및 공개 키 쌍을 사용하여 아래에서 서술된다. 하지만, 방법은 ECDSA 프로토콜에 크게 의존하지 않으며, 새로운 안전한 공개 키가 기존의 개인 키 및 공개적으로 알려진 결정성 키로부터 결정적으로 생성될 수 있는, 임의의 공개/개인 키 기반의 암호 시스템에 쉽게 적응될 수 있다.
방법은 새로운 개인 키에 대한 부분 정보가 개방 원장(open ledgers)인 하나 이상의 블록체인에 저장된다는 점에서 익명성(pseudonymous)이다. 하지만, 프로세스에 수반된 파티만이 이 정보를 디코딩할 수 있고, 따라서 보안이 결코 훼손되지 않는다.
1. Alice는 그녀만 아는 비밀 S 2 및 대응하는 공개 키
Figure pct00072
와 개인 키 S A 로 시작한다. Bob은 그만 아는 비밀 S 1 및 대응하는 공개 키
Figure pct00073
와 개인 키 S B 로 시작한다.
2. Alice는 Bob에게
Figure pct00074
를 전송하고 Bob은 Alice에게
Figure pct00075
를 전송한다. 비밀이 그들이 이 프로세스에서 노출되지 않는 타원 곡선 기준 지점에 의해 곱해지기 때문에, P 2 P 1 은 공개적으로 알려질 수 있다.
3. Alice는 비트코인 트랜잭션을 수신하기 위한(또는 알트-코인(alt-coins)에 유사한) 주소로 사용할 수 있는 새로운 공개 키
Figure pct00076
을 생성한다. Bob은 새로운 공개 키
Figure pct00077
를 생성한다.
타원 곡선 암호의 특성에 따라, P AE 에 대응하는 개인 키는
Figure pct00078
이며, 이는
Figure pct00079
를 의미한다. P BE 에 대응하는 개인 키는
Figure pct00080
이다.
이 스테이지에서, Alice는 S 1 을 알지 못하므로, P AE 에 대한 개인 키를 알지 못한다. Bob은 S 1 을 알고 있지만, 그는 S A 를 알지 못하며, 그러므로 또한 P AE 에 대한 개인 키도 알지 못한다. 동일한 논리에 의해, Alice와 Bob 모두 P BE 에 대한 개인 키를 알지 못한다.
4. Alice는 Bob의 주소 P BE 에 대해 트랜잭션을 만들고 Bob은 Alice의 주소 P AE 에 대해 트랜잭션을 만든다. 이들 트랜잭션은 공개/개인 키 시스템을 사용하는 임의의 암호화폐의 교환일 수 있거나, 또는 그들은 토큰 또는 심지어 물리적인 자산을 공개 키 P AE P BE 의 소유권으로 전송할 수 있다. 이는 또한, 위의 조합일 수도 있다.
5. Alice 및 Bob은 이제, 위에서 서술된 바와 같이 임의의 블록체인을 사용하여 그들의 각각의 비밀로서 S 2 S 1 를 통해 원자 스왑을 초기화한다.
6. Alice 및 Bob은 비밀을 교환한다. 이는 다음을 의미한다:
Figure pct00081
Alice 및 Bob은 그들이 수식
Figure pct00082
Figure pct00083
를 사용하여 올바른 비밀을 수신하였음을 검사할 수 있다. 그들이 올바른 값을 교환하지 않으면, 그들은 원자 스왑의 출력을 소비할 수 없다.
7. 이제, Alice는 S 1 을 소유하며, 그녀는 P AE 에 대응하는 개인 키를 계산할 수 있다. Alice 이외의 누구도 그녀의 개인 키 S A 를 알지 못하므로, S 1 이 공개적으로 알려지더라도 누구도 P AE 에 대응하는 개인 키를 계산할 수 없다. 마찬가지로, Bob이 비밀 S 2 를 소유하고 있으므로, 그는 P BE 에 대응하는 개인 키를 계산할 수 있으며, Bob 이외의 누구도 이를 할 수 없다.
Alice와 Bob 모두 원자 스왑의 그들의 트랜잭션 출력을 소비하지 않는 경우, Alice의 비밀 S 2 는 Bob에게 노출되지 않고 Bob의 비밀 S 1 은 Alice에게 노출되지 않는다. 이 경우, Alice와 Bob 모두 P AE P BE 에 대응하는 개인 키를 계산할 수 없다.
블록체인은 트랜잭션에 서명하고 트랜잭션 출력의 소유권을 증명하기 위해 공개/개인 키 암호화 시스템을 사용한다. 이는 위의 실시예의 방법의 사용이 수개의 암호화폐에서 트랜잭션을 P AE P BE 로 동시에 전송하는 것을 가능하게 한다. 예를 들어, 위의 단계 3에서 P AE P BE 를 확립한 이후에:
Alice는 BCH 및 ETH에서의 자금을 P BE 로 이동시킨다.
Bob은 BCH 및 DASH에서의 자금을 P AE 로 이동시킨다.
원자 스왑이 수행되면, P BE P AE 에 대한 개인 키가 잠금 해제된다. 이들은 Alice가 보유한 비트코인 및 이더리움 공개 키에서, 그리고 Bob이 보유한 비트코인 및 대시 공개 키에서 자금을 잠금 해제한다. 그러므로, Alice로부터 Bob으로의 다음 트랜잭션은 안전하게 완료될 수 있다.
Figure pct00084
이들 블록체인은 그들의 잠금 스크립트에서 동일한 해시 함수를 허용하지 않아도 된다는 것에 유의한다.
두 개의 파티가 원자 스왑을 사용하는 비밀의 교환을 통해 공개 키를 잠금 해제하는 일반적인 방법이 위에서 제공된다. 이는 암호화폐의 교환을 넘는 응용을 가지며, ECDSA의 것에 유사한 공개/개인 키 암호화 방식을 사용하는 임의의 시스템에 관련된다. 예를 들어, 다른 사용 사례는 다음을 포함하지만 이에 제한되지는 않는다:
1. 분산된 해시 테이블(Distributed Hash Table, DHT)에 대한 액세스를 제공하는 것;
2. 암호화된 계산;
3. 개인 이메일 클라이언트;
4. 물류 데이터 및 교환에 대한 액세스;
5. 상품 및 서비스의 스왑:
6. 값의 개인 교환; 및
7. 키의 계층.
공통 비밀의 결정
적절한 경우, 아래에 서술된 것과 같은 공개/개인 키 시스템을 사용하여, 두 개의 파티 간의 정보 교환의 안전한 방법을 사용함으로써 보안이 증가될 수 있다.
두 개의 파티 간에 공통 비밀(common secret, CS)이 확립되고, 그 후 공유 중 하나 이상의 송신을 위해 안전한 암호화 키를 생성하는 데 사용될 수 있다. 공통 비밀(CS)은 임의의 비밀 (
Figure pct00085
) 예를 들어, 비밀 값, 키 또는 그의 공유의 안전한 교환을 가능하게 하기 위해 생성되고 사용된다.
이하에서, 편의상 Alice 및 Bob은 제1 노드(C), 제2 노드(S)로 지칭될 것이다. 목적은 두 노드 모두 알고 있는 공통(CS) 비밀을 생성하지만 그 공통 비밀이 통신 채널을 통해 전송되지 않고, 따라서 그의 승인되지 않은 발견(unauthorised discovery)의 가능성을 제거하는 것이다.
안전한 송신 기술은 양 노드가 모두 CS를 알지만 그것이 잠재적으로 안전하지 않은 통신 채널을 통해 이동하지 않아도 되도록, 독립적인 방식으로 송신의 각 단부에서 생성되는 CS를 수반한다. CS가 양 단부에서 확립되면, 그것은 양 노드가 이후에 통신을 위해 사용할 수 있는 안전한 암호화 키를 생성하는 데 사용될 수 있다.
도 2는 통신 네트워크(5)를 통해 제2 노드(7)와 통신하는 제1 노드(3)를 포함하는 시스템(1)을 도시한다. 제1 노드(3)는 연관된 제1 처리 디바이스(23)를 갖고, 제2 노드(5)는 연관된 제2 처리 디바이스(27)를 갖는다. 제1 및 제2 노드(3, 7)는 컴퓨터, 전화기, 태블릿 컴퓨터, 모바일 통신 디바이스, 컴퓨터 서버 등과 같은 전자 디바이스를 포함할 수 있다. 일 예시에서, 제1 노드(3)는 클라이언트 (사용자) 디바이스일 수 있고 제2 노드(7)는 서버일 수 있다. 서버는 디지털 지갑 제공자의 서버일 수 있다.
제1 노드(3)는 제1 노드 마스터 개인 키(V1C) 및 제1 노드 마스터 공개 키(P1C)를 갖는 제1 비대칭 암호 쌍과 연관된다. 제2 노드(7)는 제2 노드 마스터 개인 키(V1S) 및 제2 노드 마스터 공개 키(P1S)를 갖는 제2 비대칭 암호 쌍과 연관된다. 즉, 제1 및 제2 노드는 각각의 공개-개인 키 쌍을 각각 소유한다.
각각의 제1 및 제2 노드(3, 7)에 대한 제1 및 제2 비대칭 암호 쌍은 지갑에 대한 등록과 같은 등록 프로세스 동안 생성될 수 있다. 각 노드에 대한 공개 키는 통신 네트워크(5)를 통하는 것과 같이 공개적으로 공유될 수 있다.
제1 노드(3) 및 제2 노드(7) 양자에서 공통 비밀(CS)을 결정하기 위해, 노드(3, 7)는 통신 네트워크(5)를 통해 개인 키를 전달하지 않으면서 각각의 방법(300, 400)의 단계를 수행한다.
제1 노드(3)에 의해 수행되는 방법(300)은 적어도 제1 노드 마스터 개인 키(V1C) 및 생성기 값(Generator Value, GV)을 기초로 제1 노드 제2 개인 키(V2C)를 결정하는 것(330)을 포함한다. 생성기 값은 제1 및 제2 노드 간에 공유되는 메시지(M)에 기초할 수 있으며, 이는 아래에서 더 상세히 서술되는 바와 같이 통신 네트워크(5)를 통해 메시지를 공유하는 것을 포함할 수 있다. 방법(300)은 또한, 적어도 제2 노드 마스터 공개 키(P1S) 및 생성기 값(GV)을 기초로, 제2 노드 제2 공개 키(P2S)를 결정하는 것(370)을 포함한다. 방법(300)은 제1 노드 제2 개인 키(V2C) 및 제2 노드 제2 공개 키(P2S)를 기초로 공통 비밀(CS)을 결정하는 것(380)을 포함한다.
동일한 공통 비밀(CS)은 또한, 제2 노드(7)에서 방법(400)에 의해 결정될 수 있다. 방법(400)은 제1 노드 마스터 공개 키(P1C) 및 생성기 값(GV)을 기초로, 제1 노드 제2 공개 키(P2C)를 결정하는 것(430)을 포함한다. 방법(400)은 제2 노드 마스터 개인 키(V1S) 및 생성기 값(GV)을 기초로, 제2 노드 제2 개인 키(V2S)를 결정하는 것(470)을 더 포함한다. 방법(400)은 제2 노드 제2 개인 키(V2S) 및 제1 노드 제2 공개 키(P2C)를 기초로 공통 비밀(CS)을 결정하는 것(480)을 포함한다.
통신 네트워크(5)는 근거리 네트워크(local area network), 광역 네트워크(wide area network), 셀룰러 네트워크(cellular networks), 라디오 통신 네트워크, 인터넷 등을 포함할 수 있다. 데이터가 전선, 광섬유와 같은 통신 매체를 통해 또는 무선으로 송신될 수 있는 이들 네트워크는 가령, 도청자(11)에 의한 도청에 취약할 수 있다. 방법(300, 400)은 제1 노드(3) 및 제2 노드(7)가 통신 네트워크(5)를 통해 공통 비밀을 송신하지 않으면서 공통 비밀을 모두 독립적으로 결정하는 것을 허용할 수 있다.
따라서, 하나의 장점은 잠재적으로 안전하지 않은 통신 네트워크(5)를 통해 개인 키를 송신하지 않아도 되면서, 각 노드에 의해 공통 비밀(CS)이 안전하고 독립적으로 결정될 수 있다는 것이다. 결국, 공통 비밀은 통신 네트워크(5)를 통해 제1 및 제2 노드(3, 7) 간의 암호화된 통신을 위한 비밀 키로(또는 비밀 키의 기준으로) 사용될 수 있다.
방법(300, 400)은 추가적인 단계를 포함할 수 있다. 방법(300)은 제1 노드(3)에서, 메시지(M) 및 제1 노드 제2 개인 키(V2C)를 기초로 서명된 메시지(SM1)를 생성하는 것을 포함할 수 있다. 방법(300)은 통신 네트워크를 통해, 제1 서명된 메시지(SM1)를 제2 노드(7)로 전송하는 것(360)을 더 포함한다. 결국, 제2 노드(7)는 제1 서명된 메시지(SM1)를 수신하는 단계(440)를 수행할 수 있다. 방법(400)은 또한, 제1 노드 제2 공개 키(P2C)를 통해 제1 서명된 메시지(SM2)를 유효성 검증하는 단계(450) 및 제1 서명된 메시지(SM1)를 유효성 검증하는 것의 결과를 기초로 제1 노드(3)를 인증하는 단계(460)를 포함한다. 유리하게는, 이는 제2 노드(7)가 (제1 서명된 메시지가 생성된) 의도된(purported) 제1 노드가 제1 노드(3)라는 것을 인증하는 것을 허용한다. 이는 제1 노드(3)만이 제1 노드 마스터 개인 키(V1C)에 액세스하고, 그러므로 제1 노드(3)만이 제1 서명된 메시지(SM1)를 생성하기 위한 제1 노드 제2 개인 키(V2C)를 결정할 수 있다는 가정을 기초로 한다. 유사하게, 피어-투-피어 시나리오에서와 같이, 제1 노드(3)가 제2 노드(7)를 인증할 수 있도록, 제2 서명된 메시지(SM2)가 제2 노드(7)에서 생성되고 제1 노드(3)로 전송될 수 있다는 것이 인식될 것이다.
제1 및 제2 노드 간에 메시지(M)를 공유하는 것은 다양한 방식으로 달성될 수 있다. 일 예시에서, 메시지는 제1 노드(3)에서 생성될 수 있으며, 이는 그 후에 통신 네트워크(5)를 통해 제2 노드(7)로 전송된다. 대안적으로, 메시지는 제2 노드(7)에서 생성되고, 그 후에 통신 네트워크(5)를 통해 제2 노드(7)로 전송될 수 있다. 또 다른 예시에서, 메시지는 제3 노드(9)에서 생성될 수 있고, 메시지는 제1 및 제2 노드(3, 7) 양자에 전송될 수 있다. 또 다른 대안에서, 사용자는 제1 및 제2 노드(3, 7)에 의해 수신될 메시지를 사용자 인터페이스(15)를 통해 입력할 수 있다. 또 다른 예시에서, 메시지(M)는 데이터 저장소(19)로부터 검색되고(retrieved) 제1 및 제2 노드(3, 7)로 전송될 수 있다. 일부 예시에서, 메시지(M)는 공개될 수 있으며, 그러므로 안전하지 않은 네트워크(5)를 통해 송신될 수 있다.
추가적인 예시에서, 하나 이상의 메시지(M)가 데이터 저장소(13, 17, 19)에 저장될 수 있으며, 여기서 메시지는 디지털 지갑과 같은 일부 엔티티 또는 제1 노드(3)와 제2 노드(7) 간에 확립된 통신 세션과 연관될 수 있다. 따라서, 메시지(M)는 각각의 제1 및 제2 노드(3, 7)에서 그 지갑 또는 세션과 연관된 공통 비밀(CS)을 재생성하기 위해 검색되고 사용될 수 있다.
유리하게, 공통 비밀(CS)의 재생성을 허용하기 위한 기록은 개인적으로 저장되거나 또는 안전하게 송신되어야 하는 그 자체에 의한 기록 없이 유지될 수 있다. 이는 제1 및 제2 노드(3, 7)에서 다수의 트랜잭션이 수행되고, 노드 자체에서 모든 메시지(M)를 저장하는 것이 비현실적일 경우 유리할 수 있다.
등록 방법(100, 200)의 일 예시가 도 4를 참조로 서술될 것이며, 방법(100)은 제1 노드(3)에 의해 수행되고 방법(200)은 제2 노드(7)에 의해 수행된다. 이는 각각의 제1 및 제2 노드(3, 7)에 대한 제1 및 제2 비대칭 암호 쌍을 확립하는 것을 포함한다.
비대칭 암호 쌍은 공개 키 암호화에 사용되는 것과 같은 연관된 개인 및 공개 키를 포함한다. 이 예시에서, 비대칭 암호 쌍은 ECC(Elliptic Curve Cryptography) 및 타원 곡선 연산의 특성을 사용하여 생성된다.
ECC에 대한 표준은 Standards for Efficient Cryptography Group(www.sceg.org)에 의해 서술된 것과 같은 알려진 표준을 포함할 수 있다. 타원 곡선 암호화는 또한, US 5,600,725, US 5,761,305, US 5889,865, US 5,896,455, US 5,933,504, US 6,122,736, US6,141,420, US 6,618,483, US 6,704,870, US 6,785,813, US 6,078,667, US 6,792,530에서 서술된다.
방법(100, 200)에서, 이는 공통 ECC 시스템에서 기준 지점(G)을 사용하여 제1 및 제2 노드가 협의하는 것(110, 210)을 포함한다. (유의사항: 기준 지점은 공통 생성기로 지칭될 수 있으나, 생성기 값 GV와의 혼동을 피하기 위해 '기준 지점'이란 용어가 사용된다). 일 예시에서, 공통 ECC 시스템은 비트코인에서 사용되는 ECC 시스템인 secp256K1을 기초로 할 수 있다. 기준 지점(G)은 선택되거나, 랜덤으로 생성되거나 또는 할당될 수 있다.
이제 제1 노드(3)로 넘어가면, 방법(100)은 공통 ECC 시스템 및 기준 지점(G)에서 정산하는 것(settling, 110)을 포함한다. 이는 제2 노드(7) 또는 제3 노드(9)로부터 공통 ECC 시스템 및 기준 지점을 수신하는 것을 포함할 수 있다. 대안적으로, 사용자 인터페이스(15)는 제1 노드(3)와 연관될 수 있으며, 이에 의해 사용자는 공통 ECC 시스템 및/또는 기준 지점(G)을 선택적으로 제공할 수 있다. 또 다른 대안에서, 공통 ECC 시스템 및/또는 기준 지점(G) 중 하나 또는 양자가 제1 노드(3)에 의해 랜덤으로 선택될 수 있다. 제1 노드(3)는 통신 네트워크(5)를 통해, 기준 지점(G)을 갖는 공통 ECC 시스템을 사용하는 것을 나타내는 통지를 제2 노드(7)로 전송할 수 있다. 결국, 제2 노드(7)는 공통 ECC 시스템 및 기준 지점(G)을 사용하는 것에 대한 승인을 나타내는 통지를 전송함으로써 정산할 수 있다(210).
방법(100)은 또한, 제1 노드(3)가 제1 노드 마스터 개인 키(V1C) 및 제1 노드 마스터 공개 키(P1C)를 포함하는 제1 비대칭 암호 쌍을 생성하는 것(120)을 포함한다. 이는 공통 ECC 시스템에 지정된 허용 가능한 범위의 랜덤 정수에 적어도 부분적으로 기초하여 제1 마스터 개인 키(V1C)를 생성하는 것을 포함한다. 이는 또한, 다음 수식에 따라 제1 노드 마스터 개인 키(P1C) 및 기준 지점(G)의 타원 곡선 지점 곱셈을 기초로 제1 노드 마스터 공개 키(P1C)를 결정하는 것을 포함한다.
[수학식 1]
Figure pct00086
따라서, 제1 비대칭 암호 쌍은 다음을 포함한다:
V1C: 제1 노드에 의해 비밀이 유지된 제1 노드 마스터 개인 키.
P1C: 공개적으로 알려진 제1 노드 마스터 공개 키.
제1 노드(3)는 제1 노드(3)와 연관된 제1 데이터 저장소(13)에 제1 노드 마스터 개인 키(V1C) 및 제1 노드 마스터 공개 키(P1C)를 저장할 수 있다. 보안을 위해, 제1 노드 마스터 개인 키(V1C)는 키가 개인으로 유지됨을 보장하기 위해, 제1 데이터 저장소(13)의 보안 부분에 저장될 수 있다.
방법(100)은 통신 네트워크(5)를 통해 제1 노드 마스터 공개 키(P1C)를 제2 노드(7)로 전송하는 것(130)을 더 포함한다. 제2 노드(7)는 제1 노드 마스터 공개 키(P1C)를 수신할 시(220), 제2 노드(7)와 연관된 제2 데이터 저장소(17)에 제1 노드 마스터 공개 키(P1C)를 저장할 수 있다(230).
제1 노드(3)에 유사하게, 제2 7)의 방법(200)은 제2 노드 마스터 개인 키(V1S) 및 제2 노드 마스터 공개 키(P1S)를 포함하는 제2 비대칭 암호 쌍을 생성하는 것(240)을 포함한다. 제2 노드 마스터 개인 키(V1S)는 또한, 허용 가능한 범위 내의 랜덤 정수이다. 결국, 제2 노드 마스터 공개 키(P1S)는 다음 수식에 의해 결정된다:
[수학식 2]
Figure pct00087
따라서, 제2 비대칭 암호 쌍은 다음을 포함한다:
V1S: 제2 노드에 의해 비밀이 유지된 제2 노드 마스터 개인 키.
P1S: 공개적으로 알려진 제2 노드 마스터 공개 키.
제2 노드(7)는 제2 데이터 저장소(17)에 제2 비대칭 암호 쌍을 저장할 수 있다. 방법(200)은 제2 노드 마스터 공개 키(P1S)를 제1 노드(3)로 전송하는 것(250)을 더 포함한다. 결국, 제1 노드(3)는 제2 노드 마스터 공개 키(P1S)를 수신하고(140) 저장할 수 있다(150).
일부 대안에서, 각각의 공개 마스터 키는 (신뢰된 제3 파티와 같은) 제3 노드(9)와 연관된 제3 데이터 저장소(19)에서 수신되고 저장될 수 있음이 인식될 것이다. 이는 인증 기관과 같이, 공용 디렉터리의 역할을 하는 제3 파티를 포함할 수 있다. 따라서, 일부 예시에서, 제1 노드 마스터 공개 키(P1C)는 공통 비밀(CS)을 결정하는 것이 요구될 때에만 제2 노드(7)에 의해 요청되고 수신될 수 있다(그리고 그 역으로도 그러하다).
등록 단계는 예를 들어, 디지털 지갑의 초기 설정으로 한 번만 발생해야 할 수 있다.
이제, 공통 비밀(CS)을 결정하는 예시가 도 5를 참조로 서술될 것이다. 공통 비밀(CS)은 제1 노드(3)와 제2 노드(7) 간에 특정 세션, 시간, 트랜잭션 또는 다른 목적을 위해 사용될 수 있고, 이는 동일한 공통 비밀(CS)을 사용하는 데 바람직하지 않거나 또는 안전하지 않을 수 있다. 따라서, 공통 비밀(CS)은 상이한 세션, 시간, 트랜잭션 등 사이에서 변경될 수 있다.
다음은 위에서 서술된 안전한 송신 기법의 예시를 위해 제공된다.
이 예시에서, 제1 노드(3)에 의해 수행되는 방법(300)은 메시지(M)를 생성하는 것(310)을 포함한다. 메시지(M)는 랜덤, 의사 랜덤, 또는 사용자 정의될 수 있다. 일 예시에서, 메시지(M)는 Unix 시간 및 논스(nonce)(및 임의의 값)를 기초로 한다. 예를 들어, 메시지(M)는 다음과 같이 제공될 수 있다:
[수학식 3]
Figure pct00088
일부 예시에서, 메시지(M)는 임의적이다. 하지만, 메시지(M)는 일부 응용에서 유용할 수 있는 (Unix Time 등과 같은) 선택적인 값을 가질 수 있다는 점이 인식될 것이다.
방법(300)은 메시지(M)를 통신 네트워크(3)를 통해 제2 노드(7)에 전송하는 것(315)을 포함한다. 메시지(M)가 개인 키에 대한 정보를 포함하지 않기 때문에, 메시지(M)는 안전하지 않은 네트워크를 통해 전송될 수 있다.
방법(300)은 메시지(M)를 기초로 생성기 값(GV)을 결정하는 단계(320)를 더 포함한다. 이 예시에서, 이는 메시지의 암호 해시를 결정하는 것을 포함한다. 암호 해시 알고리즘의 일 예시는 256-비트 생성기 값(GV)을 생성하기 위한 SHA-256을 포함한다. 즉:
[수학식 4]
Figure pct00089
다른 해시 알고리즘들이 사용될 수 있음이 인식될 것이다. 이는 안전한 해시 알고리즘(Secure Hash Algorithm, SHA) 패밀리에서 다른 해시 알고리즘을 포함할 수 있다. 일부 특정한 예시는 SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128, SHAKE256을 포함하는 SHA-3 서브세트에서의 인스턴스를 포함한다. 다른 해시 알고리즘은 RIPEMD(RACE Integrity Primitives Evaluation Message Digest) 패밀리의 것을 포함할 수 있다. 특정 예시는 RIPEMD-160을 포함할 수 있다. 다른 해시 함수는 Z
Figure pct00090
mor-Tillich 해시 함수 및 냅색-기반(knapsack-based) 해시 함수를 기초로 하는 패밀리를 포함할 수 있다.
그 후, 방법(300)은 제2 노드 마스터 개인 키(V1C) 및 생성기 값(GV)을 기초로, 제1 노드 제2 개인 키(V2C)를 결정하는(330) 단계(330)를 포함한다. 이는 다음 수식에 따라 제1 노드 마스터 개인 키(V1C) 및 생성기 값(GV)의 스칼라 덧셈에 기초할 수 있다:
[수학식 5]
Figure pct00091
따라서, 제1 노드 제2 개인 키(V2C)는 랜덤 값이 아니고, 대신 제1 노드 마스터 개인 키로부터 결정적으로 도출된다. 암호 쌍에서 대응하는 공개 키, 즉 제1 노드 제2 공개 키(P2C)는 다음 관계를 갖는다:
[수학식 6]
Figure pct00092
수학식 5로부터 V2C를 수학식 6에 대입하면 다음을 제공한다:
[수학식 7]
Figure pct00093
여기에서 "+" 연산자는 타원 곡선 지점 덧셈을 지칭한다. 타원 곡선 암호 대수는 분배적(distributive)이라는 것에 유의하면, 수학식 7은 다음과 같이 표현될 수 있다:
[수학식 8]
Figure pct00094
마지막으로, 수학식 1이 수학식 7에 대입되어 다음을 제공할 수 있다:
[수학식 9.1]
Figure pct00095
[수학식 9.2]
Figure pct00096
따라서, 대응하는 제1 노드 제2 공개 키(P2C)는 제1 노드 마스터 공개 키(P1C) 및 메시지(M)의 도출 가능한 주어진 지식일 수 있다. 제2 노드(7)는 방법(400)에 관하여 아래에서 더 상세하게 논의되는 바와 같이, 제1 노드 제2 공개 키(P2C)를 독립적으로 결정하기 위해 이러한 지식을 가질 수 있다.
방법(300)은 메시지(M) 및 결정된 제1 노드 제2 개인 키(V2C)를 기초로 제1 서명된 메시지(SM1)를 생성하는 것(350)을 더 포함한다. 서명된 메시지를 생성하는 것은 메시지(M)에 디지털로 서명하기 위해 디지털 서명 알고리즘을 적용하는 것을 포함한다. 일 예시에서, 이는 제1 서명된 메시지(SM1)를 획득하기 위해, 타원 곡선 디지털 서명 알고리즘(Elliptic Curve Digital Signature Algorithm, ECDSA)에서 제1 노드 제2 개인 키(V2C)를 메시지에 적용하는 것을 포함한다.
ECDSA의 예시는 secp256k1, secp256r1, secp384r1, se3cp521r1를 갖는 ECC 시스템을 기초로 하는 것을 포함한다.
제1 서명된 메시지(SM1)는 제2 노드(7)에서 대응하는 제1 노드 제2 공개 키(P2C)로 검증될 수 있다. 제1 서명된 메시지(SM1)의 이 검증은 제1 노드(3)를 인증하기 위해 제2 노드(7)에 의해 사용될 수 있으며, 이는 하기의 방법(400)에서 논의될 것이다.
그 후, 제1 노드(3)는 제2 노드 제2 공개 키(P2S)를 결정할 수 있다(370). 위에서 논의된 바와 같이, 제2 노드 제2 공개 키(P2S)는 적어도 제2 노드 마스터 공개 키(P1S) 및 생성기 값(GV)을 기초로 할 수 있다. 이 예시에서, 공개 키는 기준 지점(G)과 타원 곡선 지점 곱셈으로 개인 키로서 결정되기 때문에(370'), 제2 노드 제2 공개 키(P2S)는 다음과 같이 수학식 6에 유사한 방식으로 표현될 수 있다:
[수학식 10.1]
Figure pct00097
[수학식 10.2]
Figure pct00098
수학식 10.2에 대한 수학적인 증명은 제1 노드 제2 공개 키(P2C)에 대해 수학식 9.1을 도출하기 위해 위에서 서술된 것과 동일하다. 제1 노드(3)는 제2 노드(7)와 독립적으로 제2 노드 제2 공개 키를 결정할 수 있음(370)이 인식될 것이다.
그 후, 제1 노드(3)는 결정된 제1 노드 제2 개인 키(V2C) 및 결정된 제2 노드 제2 공개 키(P2S)를 기초로 공통 비밀(CS)을 결정할 수 있다(380). 공통 비밀(CS)은 다음 수식을 통해 제1 노드(3)에 의해 결정될 수 있다:
[수학식 11]
Figure pct00099
제2 노드(7)에서 수행되는 방법(400)
이제, 제2 노드(7)에서 수행되는 대응하는 방법(400)이 서술될 것이다. 이들 단계 중 일부는 제1 노드(3)에 의해 수행된 위에서 논의된 것과 유사하다는 것이 인식될 것이다.
방법(400)은 통신 네트워크(5)를 통해 제1 노드(3)로부터 메시지(M)를 수신하는 것(410)을 포함한다. 이는 단계(315)에서 제1 노드(3)에 의해 전송되는 메시지(M)를 포함할 수 있다. 그 후, 제2 노드(7)는 메시지(M)를 기초로 생성기 값(GV)을 결정한다(420). 제2 노드(7)에 의해 생성기 값(GV)을 결정하는 단계(420)는 상술한 제1 노드에 의해 수행되는 단계(320)에 유사하다. 이 예시에서, 제2 노드(7)는 제1 노드(3)와는 독립적인 이 결정하는 단계(420)를 수행한다.
다음 단계는 제1 노드 마스터 공개 키(P1C) 및 생성기 값(GV)을 기초로, 제1 노드 제2 공개 키(P2C)를 결정하는 것(430)을 포함한다. 이 예시에서, 공개 키는 기준 지점(G)과 타원 곡선 지점 곱셈으로 개인 키로서 결정되기 때문에(430'), 제1 노드 제2 공개 키(P2C)는 다음과 같이 수학식 9와 유사한 방식으로 표현될 수 있다:
[수학식 12.1]
Figure pct00100
[수학식 12.2]
Figure pct00101
수학식 12.1 및 12.2에 대한 수학적 증명은 수학식 10.1 및 10.2에 대해 위에서 논의된 것과 동일하다.
방법(400)은 주장된(alleged) 제1 노드(3)가 제1 노드(3)임을 인증하기 위해 제2 노드(7)에 의해 수행되는 단계를 포함할 수 있다. 이전에 논의된 바와 같이, 이는 제1 노드(3)로부터 제1 서명된 메시지(SM1)를 수신하는 것(440)을 포함한다. 그 후, 제2 노드(7)는 단계(430)에서 결정된 제1 노드 제2 공개 키(P2C)로 제1 서명된 메시지(SM1) 상의 서명을 유효성 검증할 수 있다(450).
디지털 서명을 검증하는 것은 앞서 논의된 바와 같이 타원 곡선 디지털 서명 알고리즘(ECDSA)에 따라 수행될 수 있다. 중요하게, V2C 및 P2C가 암호 쌍을 형성하기 때문에, 제1 노드 제2 개인 키(V2C)로 서명된 제1 서명된 메시지(SM1)는 대응하는 제1 노드 제2 공개 키(P2C)로 올바르게 검증되어야만 한다. 이들 키가 제1 노드(3)의 등록 시 생성된 제1 노드 마스터 개인 키(V1C) 및 제1 노드 마스터 공개 키(P1C)에 대하여 결정적이기 때문에, 제1 서명된 메시지(SM1)를 검증하는 것은 제1 서명된 메시지(SM1)를 전송하는 주장된 제1 노드가 등록 동안 동일한 제1 노드(3)임을 인증하는 것의 기준으로서 사용될 수 있다. 따라서, 제2 노드(7)는 제1 서명된 메시지를 유효성 검증한(450) 결과를 기초로 제1 노드(3)를 인증하는 단계(460)를 더 수행할 수 있다.
위의 인증은 두 개의 노드 중 하나가 신뢰된 노드이고 노드 중 하나만이 인증되어야 하는 시나리오에 대하여 적합할 수 있다. 예를 들어, 제1 노드(3)는 클라이언트일 수 있고 제2 노드(7)는 지갑 제공자와 같이 클라이언트에 의해 신뢰되는 서버일 수 있다. 따라서, 서버(제2 노드(7))는 서버 시스템으로의 클라이언트 액세스를 허용하기 위해, 클라이언트(제1 노드(3))의 크리덴셜(credentials)을 인증해야 할 수도 있다. 서버가 서버의 크리덴셜을 클라이언트에 대하여 인증할 필요는 없을 수도 있다. 하지만, 일부 시나리오에서, 피어-투-피어 시나리오에서와 같이, 양 노드가 서로 인증되는 것이 바람직할 수 있다.
방법(400)은 제2 노드(7)가 제2 노드 마스터 개인 키(V1S) 및 생성기 값(GV)을 기초로, 제2 노드 제2 개인 키(V2S)를 결정하는 것(470)을 더 포함할 수 있다. 제1 노드(3)에 의해 수행되는 단계(330)에 유사하게, 제2 노드 제2 개인 키(V2S)는 다음 수식에 따라 제2 노드 마스터 개인 키(V1S) 및 생성기 값(GV)의 스칼라 덧셈에 기초할 수 있다:
[수학식 13.1]
Figure pct00102
[수학식 13.2]
Figure pct00103
그 후, 제2 노드(7)는 제1 노드(3)와는 독립적으로, 다음 수식에 기초하여 제2 노드 제2 개인 키(V2S) 및 제1 노드 제2 공개 키(P2C)를 기초로 공통 비밀(CS)을 결정할 수 있다(480).
[수학식 14]
Figure pct00104
제1 노드(3)에 의해 결정된 공통 비밀(CS)은 제2 노드(7)에서 결정된 공통 비밀(CS)과 동일하다. 수학식 11 및 수학식 14가 동일한 공통 비밀(CS)을 제공한다는 수학적 증명이 이제 서술될 것이다.
제1 노드(3)에 의해 결정된 공통 비밀(CS)로 돌아가면, 수학식 10.1은 다음과 같이 수학식 11로 대입될 수 있다:
[수학식 11]
Figure pct00105
[수학식 15]
Figure pct00106
제2 노드(7)에 의해 결정된 공통 비밀(CS)로 돌아가면, 수학식 12.1은 다음과 같이 수학식 14로 대입될 수 있다:
[수학식 14]
Figure pct00107
[수학식 16]
Figure pct00108
ECC 대수가 가환성(commutative)이므로, 수학식 15 및 수학식 16은 동일하다:
[수학식 17]
Figure pct00109
공통 비밀(CS)은 이제 제1 노드(3)와 제2 노드(7) 간의 안전한 통신을 위해 대칭-키 알고리즘에서, 비밀 키로서, 또는 비밀 키의 기준으로서 사용될 수 있다. 이 통신은 개인 키의 일부, 개인 키의 표현 또는 이에 대한 식별자, 또는 개인 키에 대한 니모닉(mnemonic)을 전달하는 데 사용될 수 있다. 그러므로, 본 발명이 예를 들어, 디지털 지갑 또는 다른 제어된 리소스의 설정 동안 사용되면, 파티 간의 안전한 통신이 이후에 수행될 수 있다.
공통 비밀(CS)은 타원 곡선 지점(xS, yS)의 형태로 있을 수 있다. 이는 노드(3, 7)에 의해 협의된 공개적으로 알려진 표준 연산을 사용하여 표준 키 포맷으로 변환될 수 있다. 예를 들어, xS 값은 AES256 암호화를 위한 키로서 사용될 수 있는 256-비트 정수일 수 있다. 이는 또한, 이 길이 키를 요구하는 임의의 응용에 대하여 RIPEMD160을 사용하여 160-비트 정수로 변환될 수 있다.
공통 비밀(CS)은 필요에 따라 결정될 수 있다. 중요하게, 제1 노드(3)는 이것이 메시지(M)를 기초로 다시 결정될 수 있기 때문에, 공통 비밀(CS)을 저장하지 않아도 된다. 일부 예시에서, 사용된 메시지(들)(M)는 마스터 개인 키에 대하여 요구되는 동일한 수준의 보안 없이, 데이터 저장소(13, 17, 19)(또는 다른 데이터 저장소)에 저장될 수 있다. 일부 예시에서, 메시지(M)는 공개적으로 이용 가능할 수 있다.
하지만, 일부 응용에 의존하여, 공통 비밀(CS)이 제1 노드 마스터 개인 키(V1C)만큼 안전하게 유지되면, 공통 비밀(CS)은 제1 노드와 연관되는 제1 데이터 저장소(X)에 저장될 수 있다.
전술한 실시예는 본 발명을 제한하는 것이 아니라 예시하는 것이고, 통상의 기술자는 첨부된 청구범위에 의해 정의된 본 발명의 범주를 벗어나지 않으면서, 다양한 대안적인 실시예를 설계 할 수 있음이 유의되어야 한다. 청구범위에서, 괄호 안에 있는 임의의 참조 부호는 청구범위를 제한하는 것으로 해석되어서는 안된다. "포함하는" 및 "포함한다" 등의 단어는 임의의 청구범위 또는 명세서 전체에 열거된 것 이외의 요소 또는 단계의 존재를 배제하지 않는다. 본 명세서에서, "포함한다"는 "포함하거나 구성된다"를 의미하고, "포함하는"은 "포함하거나 구성되는"을 의미한다. 요소의 단수형 참조는 이러한 요소의 복수형 참조를 배제하지 않으며, 그 역으로도 그러하다. 본 발명은 수개의 개별적인 요소를 포함하는 하드웨어에 의해, 그리고 적합하게 프로그래밍된 컴퓨터에 의해 구현될 수 있다. 수개의 수단을 나열하는 디바이스 청구항에서, 이들 수단 중 몇몇은 하나의 동일한 하드웨어의 항목에 의해 구현될 수 있다. 특정 측정치가 서로 다른 종속 항에서 인용된다는 단순한 사실만으로 이들 측정치의 조합이 유리하도록 사용될 수 없음을 나타내지 않는다.

Claims (10)

  1. 컴퓨터-구현된 교환 방법으로서, 상기 방법은:
    (i) 제1 사용자로부터 제2 사용자로 제1 가려진(veiled) 비밀 값, 및 상기 제2 사용자로부터 상기 제1 사용자로 제2 가려진 비밀 값을 전달하는 단계(communicating, 36); 및
    (ii) 상기 제1 가려진 비밀 값 및 상기 제2 가려진 비밀 값을 각각 포함하는 제1 및 제2 블록체인 트랜잭션을 구성하는 단계(42) - 상기 트랜잭션은 상기 각각의 블록체인 트랜잭션으로 제1 비밀 값과 제2 비밀 값 양자의 제공 시 각각의 제1 또는 제2 리소스의 제어를 전송하기 위해 잠금 해제 가능하도록 배열됨 -를 포함하고,
    상기 제1 블록체인 트랜잭션의 잠금 해제는 상기 제1 비밀 값이 상기 제2 사용자에게 노출되게 하고, 상기 제2 블록체인 트랜잭션의 잠금 해제(48B)는 상기 제2 비밀 값이 상기 제1 사용자에게 노출되게 하는, 방법.
  2. 제1항에 있어서, 상기 제1 트랜잭션 및 상기 제2 트랜잭션 중 적어도 하나는 각각의 제1 개인 키 및 제2 개인 키의 적용 시에만 회수 가능하도록(redeemable) 구성되는, 방법.
  3. 제2항에 있어서, (a) 상기 제1 사용자의 제1 공개 키에 적어도 부분적으로 기초한 제1 도출된 공개 키; 및 (b) 상기 제2 사용자의 제2 공개 키에 적어도 부분적으로 기초한 제2 도출된 공개 키 중 적어도 하나를 계산하는 단계(40)를 더 포함하고, 상기 제1 도출된 공개 키는 상기 제1 개인 키를 갖는 암호 키 쌍의 일부이고 상기 제2 도출된 공개 키는 상기 제2 개인 키를 갖는 암호 키 쌍의 일부인, 방법.
  4. 제3항에 있어서, (a) 상기 제1 사용자의 제1 공개 키에 적어도 부분적으로 기초한 제1 도출된 공개 키; 및 (b) 상기 제2 사용자의 제2 공개 키에 적어도 부분적으로 기초한 제2 도출된 공개 키 중 적어도 하나를 계산하는 단계는 상기 제1 및 제2 가려진 비밀 값의 조합(38)을 더 포함하는, 방법.
  5. 제4항에 있어서, 상기 제1 및 제2 가려진 비밀 값의 상기 조합은 상기 제1 가려진 비밀 값 및 상기 제2 가려진 비밀 값의 연결(concatenation), 및 랜덤 또는 의사-랜덤 값과 적어도 하나의 가려진 비밀 값의 연결 중 적어도 하나를 포함하는, 방법.
  6. 어느 선행하는 청구항에 있어서, 상기 제1 트랜잭션의 제1 비-상환(non-redemption) 기간의 경과에 응답하여 상기 제1 리소스의 제어를 상기 제1 사용자에게 반환하도록 구성된 제3 블록체인 트랜잭션; 및 상기 제2 트랜잭션의 제2 비-상환 기간의 경과에 응답하여 상기 제2 리소스의 제어를 상기 제2 사용자에게 반환하도록 구성된 제4 블록체인 트랜잭션 중 적어도 하나를 구성하는 단계(44)를 더 포함하는, 방법.
  7. 어느 선행하는 청구항에 있어서, 상기 제1 가려진 비밀 값 및 상기 제2 가려진 비밀 값 중 적어도 하나는 상기 제1 비밀 값 및 상기 제2 비밀 값 중 적어도 하나와 상기 제1 사용자 및 제2 사용자 양자에 의해 액세스 가능한 공유된 비밀 값의 조합(32)을 포함하는, 방법.
  8. 제7항에 있어서, 상기 공유된 비밀 값은 공통 비밀(CS)로서 단계 (i) 이전에 확립되는, 방법.
  9. 어느 선행하는 청구항에 있어서, 다음의 단계:
    (iii) 상기 제1 비밀 값 및 상기 제2 비밀 값 중 적어도 하나로부터 시작하여 적어도 하나의 가려진 비밀 값의 시퀀스를 생성하는 단계;
    (iv) 상기 제1 비밀 값 및 상기 제2 비밀 값 중 적어도 하나를 사용하여 임의의 선행하는 청구항의 상기 방법을 실행하는 단계;
    (v) 상기 제1 비밀 값 및 상기 제2 비밀 값 중 적어도 하나를 노출시키기 위해 적어도 하나의 블록체인 트랜잭션을 회수하여, 상기 시퀀스의 적어도 하나의 가려진 비밀 값이 노출되게 하는 단계를 더 포함하는, 방법.
  10. 제9항에 있어서, 단계 (v)에서 노출되는 적어도 하나의 가려진 비밀 값을 사용하여 제1항 내지 제9항 중 어느 한 항의 적어도 단계 (ii)를 실행하는 단계를 더 포함하는, 방법.
KR1020207035665A 2018-05-14 2019-05-08 블록체인을 사용하여 원자 스왑을 수행하기 위한 컴퓨터-구현된 시스템 및 방법 KR20210008516A (ko)

Applications Claiming Priority (17)

Application Number Priority Date Filing Date Title
IBPCT/IB2018/053347 2018-05-14
GBGB1807813.9A GB201807813D0 (en) 2018-05-14 2018-05-14 Computer-implemented system and method
GB1807816.2 2018-05-14
GBGB1807807.1A GB201807807D0 (en) 2018-05-14 2018-05-14 Computer-implemented system and method
IBPCT/IB2018/053346 2018-05-14
GB1807811.3 2018-05-14
GB1807813.9 2018-05-14
IBPCT/IB2018/053349 2018-05-14
IB2018053346 2018-05-14
IB2018053349 2018-05-14
GBGB1807816.2A GB201807816D0 (en) 2018-05-14 2018-05-14 Computer-implemented system and method
IB2018053347 2018-05-14
GBGB1807811.3A GB201807811D0 (en) 2018-05-14 2018-05-14 Computer-implemented system and method
GB1807807.1 2018-05-14
IB2018053350 2018-05-14
IBPCT/IB2018/053350 2018-05-14
PCT/IB2019/053771 WO2019220270A1 (en) 2018-05-14 2019-05-08 Computer-implemented systems and methods for using a blockchain to perform an atomic swap

Publications (1)

Publication Number Publication Date
KR20210008516A true KR20210008516A (ko) 2021-01-22

Family

ID=66530378

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207035665A KR20210008516A (ko) 2018-05-14 2019-05-08 블록체인을 사용하여 원자 스왑을 수행하기 위한 컴퓨터-구현된 시스템 및 방법

Country Status (8)

Country Link
US (6) US20210226787A1 (ko)
EP (4) EP3794766A1 (ko)
JP (7) JP7372938B2 (ko)
KR (1) KR20210008516A (ko)
CN (4) CN112119611A (ko)
SG (1) SG11202010346TA (ko)
TW (1) TW201947482A (ko)
WO (4) WO2019220270A1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201711867D0 (en) * 2017-07-24 2017-09-06 Nchain Holdings Ltd Computer-implemented system and method
GB201805633D0 (en) * 2018-04-05 2018-05-23 Nchain Holdings Ltd Computer implemented method and system
EP3794766A1 (en) 2018-05-14 2021-03-24 Nchain Holdings Limited Computer-implemented systems and methods for using a blockchain to perform an atomic swap
GB202002285D0 (en) * 2020-02-19 2020-04-01 Nchain Holdings Ltd Computer-implemented system and method
CN114930772A (zh) * 2019-10-18 2022-08-19 电信区块链联盟软件公司 用于凭证验证的验证需求文件
JP7040815B2 (ja) * 2019-12-25 2022-03-23 株式会社アクセル 取引システム、取引装置、取引方法及び取引プログラム
SG10202000134RA (en) * 2020-01-07 2021-08-30 Alipay Labs Singapore Pte Ltd Methods and devices for providing atomic transaction on blockchain
SG10202000133TA (en) * 2020-01-07 2021-08-30 Alipay Labs Singapore Pte Ltd Methods And Devices For Providing Atomic Transaction On Blockchain
WO2021163668A1 (en) * 2020-02-13 2021-08-19 Hashquin Llc Systems and methods for marking and authenticating scarce items
CN111464636B (zh) * 2020-03-31 2021-12-07 中国联合网络通信集团有限公司 资产交易方法和系统、存储介质
CN111464538B (zh) * 2020-03-31 2022-02-01 中国联合网络通信集团有限公司 资产交易方法和系统、存储介质、资产交易后台
US11544787B2 (en) 2020-06-29 2023-01-03 Hong Kong Applied Science and Technology Research Institute Company Limited Apparatus and method for providing protocol for digital asset trading
JP7371927B2 (ja) 2020-12-04 2023-10-31 株式会社アクセル 処理システム、処理装置、処理方法及び処理プログラム
WO2022125532A1 (en) * 2020-12-07 2022-06-16 Meredith Ii Thomas T Systems and methods thereof for exchanging different digital currencies on different blockchains
CN112968772B (zh) * 2021-01-29 2022-10-14 上海分布信息科技有限公司 一种区块链数据的跨链解耦方法、系统
US11689355B2 (en) * 2021-03-04 2023-06-27 Mastercard International Incorporated Method and system for the atomic exchange of blockchain assets using transient key pairs
GB202111189D0 (en) * 2021-08-03 2021-09-15 Nchain Licensing Ag A computer implemented method and system
GB2614077A (en) * 2021-12-21 2023-06-28 Nchain Licensing Ag Signature-based atomic swap
GB2620401A (en) * 2022-07-05 2024-01-10 Elas Holdings PTY LTD Computer implemented systems and methods

Family Cites Families (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE187588T1 (de) 1993-08-17 1999-12-15 R3 Security Engineering Ag Verfahren zur digitalen unterschrift und verfahren zur schlüsselübereinkunft
EP0804758B1 (en) 1994-07-29 2005-11-09 Certicom Corp. Elliptic curve encryption systems
US5761305A (en) 1995-04-21 1998-06-02 Certicom Corporation Key agreement and transport protocol with implicit signatures
WO1996033565A1 (en) 1995-04-21 1996-10-24 Certicom Corp. Method for signature and session key generation
US6785813B1 (en) 1997-11-07 2004-08-31 Certicom Corp. Key agreement and transport protocol with implicit signatures
CA2176972C (en) 1995-05-17 2008-11-25 Scott A. Vanstone Key agreement and transport protocol with implicit signatures
GB9510035D0 (en) 1995-05-18 1995-08-02 Cryptech Systems Inc Strengthened public key protocols
US5999626A (en) 1996-04-16 1999-12-07 Certicom Corp. Digital signatures on a smartcard
US6078667A (en) 1996-10-10 2000-06-20 Certicom Corp. Generating unique and unpredictable values
EP1018239A4 (en) * 1997-09-22 2005-07-13 Proofspace Inc METHOD AND SYSTEM FOR DIGITAL HORODATORS WITH TRANSIENT KEYS
GB9802152D0 (en) 1998-01-30 1998-04-01 Certicom Corp Secure one way authentication communication system
CA2235359C (en) 1998-03-23 2012-04-10 Certicom Corp. Implicit certificate scheme with ca chaining
US6834272B1 (en) 1999-08-10 2004-12-21 Yeda Research And Development Company Ltd. Privacy preserving negotiation and computation
FI109864B (fi) 2000-03-30 2002-10-15 Nokia Corp Tilaajan autentikaatio
JP2002207427A (ja) * 2001-01-10 2002-07-26 Sony Corp 公開鍵証明書発行システム、公開鍵証明書発行方法、および情報処理装置、情報記録媒体、並びにプログラム記憶媒体
JP2002297548A (ja) 2001-03-30 2002-10-11 Matsushita Electric Ind Co Ltd 端末登録システムとそれを構成する装置及び方法
JP2004005643A (ja) * 2002-05-30 2004-01-08 Internatl Business Mach Corp <Ibm> 定義されたパーティにより検証可能な匿名支払方法
KR100940202B1 (ko) * 2002-08-29 2010-02-10 삼성전자주식회사 일방향 함수를 사용하여 계층적으로 암호화하는 장치 및방법
US7184551B2 (en) * 2002-09-30 2007-02-27 Micron Technology, Inc. Public key cryptography using matrices
CN1736055B (zh) * 2003-01-07 2010-10-13 高通股份有限公司 替换密钥的系统、设备和方法
EP1612990A4 (en) * 2003-03-11 2011-06-01 Panasonic Corp CONTENT RECORDING / REPRODUCING SYSTEM, DISTRIBUTION DEVICE, REPRODUCING DEVICE, AND RECORDING DEVICE
WO2004084483A1 (ja) * 2003-03-20 2004-09-30 Japan Medical Data Center Co., Ltd. 情報管理システム
US7551737B2 (en) * 2003-03-31 2009-06-23 International Business Machines Corporation Cryptographic keys using random numbers instead of random primes
KR100529594B1 (ko) * 2003-06-13 2006-01-09 학교법인 성균관대학 서로 다른 인증 도메인에서 공개키를 검증하기 위한 방법
JP2005033640A (ja) * 2003-07-09 2005-02-03 Canon Inc コンテンツ流通方法またはコンテンツ改ざん検出方法
DE10341096A1 (de) 2003-09-05 2005-03-31 Giesecke & Devrient Gmbh Übergang zwischen maskierten Repräsentationen eines Wertes bei kryptographischen Berechnungen
JP4139382B2 (ja) 2004-12-28 2008-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 製品/サービスに係る所有権限を認証する装置、製品/サービスに係る所有権限を認証する方法、及び製品/サービスに係る所有権限を認証するプログラム
US8190895B2 (en) 2005-08-18 2012-05-29 Microsoft Corporation Authenticated key exchange with derived ephemeral keys
US9137012B2 (en) * 2006-02-03 2015-09-15 Emc Corporation Wireless authentication methods and apparatus
DE602006006454D1 (de) 2006-10-10 2009-06-04 Ntt Docomo Inc Verfahren und Vorrichtung zur Authentifizierung
EP2003813B1 (en) 2007-06-15 2009-03-18 NTT DoCoMo, Inc. Method and Apparatus for Authentication
JP2010240896A (ja) * 2009-04-02 2010-10-28 Sharp Corp 画像形成装置、画像処理端末及びそれらにより構成される画像形成システム
US9159046B2 (en) * 2009-06-29 2015-10-13 Sap Se Systems and methods for implementing supply chain visibility policies
JP2011023854A (ja) * 2009-07-14 2011-02-03 Sony Corp 情報処理装置、情報処理方法およびプログラム
WO2012017612A1 (ja) * 2010-08-06 2012-02-09 パナソニック株式会社 匿名化情報共有装置および匿名化情報共有方法
US9344453B2 (en) * 2011-06-10 2016-05-17 Koninklijke Philips N.V. Secure protocol execution in a network
US9858401B2 (en) * 2011-08-09 2018-01-02 Biogy, Inc. Securing transactions against cyberattacks
US9330245B2 (en) * 2011-12-01 2016-05-03 Dashlane SAS Cloud-based data backup and sync with secure local storage of access keys
JP2014052588A (ja) * 2012-09-10 2014-03-20 Sony Corp 情報処理装置、情報処理方法及びコンピュータプログラム
US9967352B2 (en) * 2014-01-15 2018-05-08 Telenav, Inc. Communication system with location based services mechanism and method of operation thereof
US20150213433A1 (en) 2014-01-28 2015-07-30 Apple Inc. Secure provisioning of credentials on an electronic device using elliptic curve cryptography
US20160162897A1 (en) * 2014-12-03 2016-06-09 The Filing Cabinet, LLC System and method for user authentication using crypto-currency transactions as access tokens
US9374373B1 (en) * 2015-02-03 2016-06-21 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Encryption techniques for improved sharing and distribution of encrypted content
US9813392B2 (en) 2015-03-06 2017-11-07 Qualcomm Incorporated Apparatus and method for providing a public key for authenticating an integrated circuit
US20160283920A1 (en) * 2015-03-28 2016-09-29 Justin Fisher Authentication and verification of digital data utilizing blockchain technology
US10812274B2 (en) * 2015-05-07 2020-10-20 Blockstream Corporation Transferring ledger assets between blockchains via pegged sidechains
US9735958B2 (en) 2015-05-19 2017-08-15 Coinbase, Inc. Key ceremony of a security system forming part of a host computer for cryptographic transactions
GB2539430A (en) 2015-06-16 2016-12-21 The Provost Fellows Found Scholars & The Other Members Of Board Of The College Of The Holy & Unidv T Digital token exchange system
AU2016288644A1 (en) * 2015-07-02 2018-02-22 Nasdaq, Inc. Systems and methods of secure provenance for distributed transaction databases
US10402792B2 (en) 2015-08-13 2019-09-03 The Toronto-Dominion Bank Systems and method for tracking enterprise events using hybrid public-private blockchain ledgers
US20180331832A1 (en) 2015-11-05 2018-11-15 Allen Pulsifer Cryptographic Transactions System
US10915874B2 (en) 2015-11-10 2021-02-09 Loyyal Corporation System and process for tokenization of digital media
TWI593267B (zh) * 2015-12-17 2017-07-21 國立清華大學 具有時戳驗證的免憑證公開金鑰管理方法
US20170193464A1 (en) * 2015-12-18 2017-07-06 Justin SHER Protocol utilizing bitcoin blockchain for maintaining independently proposed and approved set contents
WO2017109994A1 (ja) * 2015-12-25 2017-06-29 日立オムロンターミナルソリューションズ株式会社 自動取引システム
US10103885B2 (en) 2016-01-20 2018-10-16 Mastercard International Incorporated Method and system for distributed cryptographic key provisioning and storage via elliptic curve cryptography
SG11201806784UA (en) * 2016-02-23 2018-09-27 Nchain Holdings Ltd System and method for controlling asset-related actions via a blockchain
AU2017222470B2 (en) * 2016-02-23 2023-01-12 nChain Holdings Limited Tokenisation method and system for implementing exchanges on a blockchain
BR112018016805A2 (pt) 2016-02-23 2018-12-26 Nchain Holdings Ltd método e sistema para transferência eficiente de criptomoeda associada com um pagamento em um blockchain que leva a um pagamento automatizado, método e sistema com base em contratos inteligentes
JP6515246B2 (ja) 2016-02-23 2019-05-15 エヌチェーン ホールディングス リミテッドNchain Holdings Limited 情報及び階層的で決定性の暗号化鍵のセキュアな交換のための共通秘密の決定
CN114282928A (zh) 2016-02-23 2022-04-05 恩链控股有限公司 基于区块链系统结合钱包管理系统的加密密钥存储和转移
US11308486B2 (en) 2016-02-23 2022-04-19 nChain Holdings Limited Method and system for the secure transfer of entities on a blockchain
MX2018010048A (es) * 2016-02-23 2019-01-21 Nchain Holdings Ltd Sistema universal de tokenizacion para criptomonedas basadas en cadena de bloques.
WO2017152150A1 (en) 2016-03-04 2017-09-08 ShoCard, Inc. Method and system for authenticated login using static or dynamic codes
CN109074565A (zh) 2016-04-11 2018-12-21 区块链控股有限公司 用于验证用于基于区块链的加密货币的通证的计算机实现的方法及系统
US10643203B2 (en) * 2016-04-12 2020-05-05 Digicash Pty Ltd. Secure transaction controller for value token exchange systems
WO2017180382A1 (en) 2016-04-12 2017-10-19 Pcms Holdings, Inc. System and method for data validation in a decentralized sensor network
DE102016206916B4 (de) 2016-04-22 2023-07-06 Bundesdruckerei Gmbh Elektronisches Verfahren zur kryptographisch gesicherten Überweisung eines Betrags einer Kryptowährung
CN109791659A (zh) 2016-04-29 2019-05-21 区块链控股有限公司 使用区块链实现逻辑门功能
WO2017191472A1 (en) * 2016-05-05 2017-11-09 Invasec Ltd. A verification system and method
EP3295349B1 (en) * 2016-05-13 2018-07-11 Nchain Holdings Limited A method and system for verifying integrity of a digital asset using a distributed hash table and a peer-to-peer distributed ledger
US11720688B2 (en) * 2016-06-13 2023-08-08 CloudMode, LLC Secure initiation and transfer of a cryptographic database and/or a cryptographic unit
CN106100847B (zh) * 2016-06-14 2021-10-26 惠众商务顾问(北京)有限公司 非对称加密区块链身份信息验证方法及装置
GB201611698D0 (en) 2016-07-05 2016-08-17 Eitc Holdings Ltd Blockchain-implemented control method and system
CN109478223B (zh) 2016-07-29 2023-08-29 区块链控股有限公司 区块链实现的方法和系统
US10025941B1 (en) 2016-08-23 2018-07-17 Wells Fargo Bank, N.A. Data element tokenization management
US20180089669A1 (en) 2016-09-23 2018-03-29 American Express Travel Related Services Company. Inc. Systems and Methods for an Electronic Payment System
CN106452785B (zh) * 2016-09-29 2019-05-17 财付通支付科技有限公司 区块链网络、分支节点及区块链网络应用方法
US10218511B2 (en) * 2016-12-23 2019-02-26 Amazon Technologies, Inc. Signature delegation
AU2018101669A4 (en) * 2017-01-08 2018-12-13 Rene F. Bernard A method for checking and/ or updating information relating to assets
CN110506409A (zh) * 2017-01-13 2019-11-26 维萨国际服务协会 安全区块链管理技术
US10754970B2 (en) * 2017-01-27 2020-08-25 International Business Machines Corporation Data masking
US20180276626A1 (en) * 2017-03-21 2018-09-27 Dappsters, LLC Blockchain systems and methods
KR102432356B1 (ko) * 2017-03-23 2022-08-16 삼성에스디에스 주식회사 키 생성 장치 및 방법, 암호화 장치 및 방법
GB201706132D0 (en) * 2017-04-18 2017-05-31 Nchain Holdings Ltd Computer-implemented system and method
EP3396608A1 (en) * 2017-04-24 2018-10-31 BlockSettle AB Method and system for settling a blockchain transaction
CN107169764A (zh) * 2017-05-10 2017-09-15 山东大学 基于区块链的公平数据交易方法
GB201707788D0 (en) * 2017-05-15 2017-06-28 Nchain Holdings Ltd Computer-implemented system and method
US11055703B2 (en) * 2017-06-19 2021-07-06 Hitachi, Ltd. Smart contract lifecycle management
US10567369B2 (en) * 2017-07-10 2020-02-18 Intuit Inc. Secure token passing via hash chains
US11416832B2 (en) 2017-07-18 2022-08-16 nChain Holdings Limited Systems and methods for blockchain-dependent operation sets
CN107592292B (zh) * 2017-07-26 2019-08-09 阿里巴巴集团控股有限公司 一种区块链节点间通信方法及装置
EP3439233B1 (en) 2017-07-31 2020-12-30 Koninklijke Philips N.V. Distributing a computation output
CN107919954B (zh) * 2017-10-20 2019-05-14 浙江大学 一种基于sgx软件防护扩展指令的区块链用户密钥保护方法和装置
KR101857223B1 (ko) * 2017-11-13 2018-05-11 주식회사 온더 블록체인 토큰 기반의 사용자 식별 방법 및 시스템
CN108009441B (zh) * 2017-11-23 2023-05-30 创新先进技术有限公司 资源转移和资金转移的方法和装置
CN107888384B (zh) * 2017-11-30 2020-11-27 中链科技有限公司 一种身份数据管理方法、系统和计算机可读存储介质
CN108009830A (zh) 2017-12-14 2018-05-08 上海密尔克卫化工储存有限公司 基于区块链的产品流通跟踪方法与系统
KR20200099149A (ko) * 2017-12-15 2020-08-21 엔체인 홀딩스 리미티드 낮은 엔트로피 패스워드로 블록체인 트랜잭션을 승인하기 위한 컴퓨터 구현 시스템 및 방법
US11315110B2 (en) * 2017-12-27 2022-04-26 International Business Machines Corporation Private resource discovery and subgroup formation on a blockchain
US20190303623A1 (en) * 2018-04-02 2019-10-03 Ca, Inc. Promotion smart contracts for software development processes
CN108664221B (zh) * 2018-05-11 2022-04-01 北京奇虎科技有限公司 一种数据持有证明方法、装置及可读存储介质
EP3794766A1 (en) 2018-05-14 2021-03-24 Nchain Holdings Limited Computer-implemented systems and methods for using a blockchain to perform an atomic swap
GB201913704D0 (en) * 2019-09-23 2019-11-06 Nchain Holdings Ltd Computer implemented method and system for storing certified data on a blockchain
GB2589349A (en) 2019-11-27 2021-06-02 Nchain Holdings Ltd Povably fair games using a blockchain

Also Published As

Publication number Publication date
WO2019220318A1 (en) 2019-11-21
EP3794766A1 (en) 2021-03-24
JP2021524185A (ja) 2021-09-09
WO2019220271A1 (en) 2019-11-21
JP7371015B2 (ja) 2023-10-30
CN112119611A (zh) 2020-12-22
JP2023179729A (ja) 2023-12-19
EP3794768A1 (en) 2021-03-24
JP2021523610A (ja) 2021-09-02
US11838407B2 (en) 2023-12-05
US20210203481A1 (en) 2021-07-01
JP7372938B2 (ja) 2023-11-01
WO2019220270A1 (en) 2019-11-21
WO2019220317A1 (en) 2019-11-21
CN112119610A (zh) 2020-12-22
US20230421355A1 (en) 2023-12-28
CN112154626A (zh) 2020-12-29
JP2024019716A (ja) 2024-02-09
JP2021523609A (ja) 2021-09-02
US11764947B2 (en) 2023-09-19
JP2021524186A (ja) 2021-09-09
EP3794765A1 (en) 2021-03-24
TW201947482A (zh) 2019-12-16
US20210218575A1 (en) 2021-07-15
SG11202010346TA (en) 2020-11-27
CN112166578A (zh) 2021-01-01
JP2023179761A (ja) 2023-12-19
US20230137104A1 (en) 2023-05-04
EP3794767A1 (en) 2021-03-24
US20210226787A1 (en) 2021-07-22
US20210218552A1 (en) 2021-07-15
US11431477B2 (en) 2022-08-30
JP7414734B2 (ja) 2024-01-16
US11917051B2 (en) 2024-02-27

Similar Documents

Publication Publication Date Title
US11838407B2 (en) Computer-implemented systems and methods for using a blockchain to perform an atomic swap
CN108885741B (zh) 一种实现区块链上交换的令牌化方法及系统
KR102472231B1 (ko) 블록체인 구현 방법 및 시스템
JP6515246B2 (ja) 情報及び階層的で決定性の暗号化鍵のセキュアな交換のための共通秘密の決定
Chaudhry et al. An enhanced privacy preserving remote user authentication scheme with provable security
EP3659082B1 (en) Computer-implemented system and method enabling secure storage of a large blockchain over a plurality of storage nodes
Resende et al. PUF-based mutual multifactor entity and transaction authentication for secure banking
Mir et al. Decentralized, privacy-preserving, single sign-on
Dufka et al. SHINE: Resilience via Practical Interoperability of Multi-party Schnorr Signature Schemes.
Choi et al. Using a Minimal Number of Stateless Tokens
Choi et al. (Efficient) Universally Composable Two-Party Computation Using a Minimal Number of Stateless Tokens