KR20200019944A - 블록체인 네트워크에서 계층적 토큰 분산을 위한 시스템 및 방법 - Google Patents

블록체인 네트워크에서 계층적 토큰 분산을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20200019944A
KR20200019944A KR1020207000301A KR20207000301A KR20200019944A KR 20200019944 A KR20200019944 A KR 20200019944A KR 1020207000301 A KR1020207000301 A KR 1020207000301A KR 20207000301 A KR20207000301 A KR 20207000301A KR 20200019944 A KR20200019944 A KR 20200019944A
Authority
KR
South Korea
Prior art keywords
node
nodes
transaction
blockchain
mixer
Prior art date
Application number
KR1020207000301A
Other languages
English (en)
Other versions
KR102569552B1 (ko
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 엔체인 홀딩스 리미티드
Priority to KR1020237028019A priority Critical patent/KR20230127357A/ko
Publication of KR20200019944A publication Critical patent/KR20200019944A/ko
Application granted granted Critical
Publication of KR102569552B1 publication Critical patent/KR102569552B1/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/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)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • 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/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic 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/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/3215Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a plurality of channels
    • 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/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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

블록체인 구현 토큰 분산 프로세스에 참여하는 방법이 개시된다. 토큰 분산 프로세스는 입력 노드와 연관된 입력 어드레스에서 최초 수량의 토큰을 복수의 서브 수량으로 분할하고, 상기 서브 수량을 블록체인을 사용하여 제각기의 출력 노드와 연관된 다수의 출력 어드레스에 분산한다. 토큰 분산 프로세스는 입력 노드, 출력 노드 및 복수의 믹서 노드에 의해 집합적으로 구현된다. 믹서 노드(
Figure pct00291
)에서 구현될 수 있는 방법은: 믹서 노드와 연관된 업스트림 노드(
Figure pct00292
) 및 복수의 다운스트림 노드(
Figure pct00293
)를 식별하는 단계; 업스트림 노드와 협력하여 업스트림 노드와 믹서 노드 간의 제1 트랜잭션을 위한 제1 커밋 채널(
Figure pct00294
)을 생성하는 단계; 및 복수의 다운스트림 노드의 각각에 대해: 다운스트림 노드와 협력하여 믹서 노드와 다운스트림 노드 간의 제2 트랜잭션을 위한 제2 커밋 채널(
Figure pct00295
)을 생성하는 단계를 포함하고, 제1 트랜잭션에 대한 잠금 해제 스크립트는 제2 트랜잭션 중 어느 하나에 대한 잠금 해제 스크립트로부터 도출된다.

Description

블록체인 네트워크에서 계층적 토큰 분산을 위한 시스템 및 방법
본 발명은 일반적으로 블록체인을 통해 수행되는 전송(transfers) 및 트랜잭션(transactions)에 관한 것으로, 보다 구체적으로, 복수의 입력 노드가 토큰을 복수의 출력 노드에 협력적으로 분산할 수 있게 하는 토큰 믹싱 시스템(token-mixing system)에서 암호화 보안을 제공하기 위한 방법 및 디바이스에 관한 것이다.
본 문서에서는 모든 형태의 전자식의 컴퓨터 기반으로 분산된 원장(electronic, computer-based, distributed ledgers)을 포함하도록 '블록체인'이라는 용어를 사용한다. 이들은 블록체인 및 트랜잭션-체인 기술, 허가 및 비허가 원장, 공유 원장, 및 그 변형을 포함하지만 이에 국한되지 않는다. 블록체인 기술에서 가장 널리 알려진 애플리케이션은 비트코인 원장(Bitcoin ledger)이지만, 다른 블록체인 구현예가 제안 및 개발되었다. 비트코인은 본원에서 편의 및 예시의 목적으로 언급될 수 있지만, 본 발명은 비트코인 블록체인과 함께 사용되는 것으로 국한되지 않으며 대안적인 블록체인 구현예 및 프로토콜은 본 발명의 범주 내에 속한다는 것에 주목해야 한다.
블록체인은 합의 기반의 전자식 원장으로서, 블록으로 구성된 컴퓨터 기반의 탈중앙화 분산형 시스템으로 구현되며, 이 블록은 다시 트랜잭션으로 구성된다. 각각의 트랜잭션은 블록체인 시스템의 참여자 사이에서 디지털 자산의 제어권(control)의 전송을 인코딩하는 데이터 구조이며, 적어도 하나의 입력 및 적어도 하나의 출력을 포함한다. 각 블록은 이전 블록의 해시를 포함하여, 블록들은 처음부터 블록체인에 기입된 모든 트랜잭션에 대한 영구적이고 변경 불가능한 레코드를 생성하기 위해 함께 체인화된다. 트랜잭션은 자신의 입력 및 출력에 임베딩되는 스크립트(scripts)라고 알려진 작은 프로그램을 포함하며, 이는 트랜잭션의 출력이 어떻게 그리고 누구에 의해 액세스될 수 있는지를 특정한다. 비트코인 플랫폼에서, 이러한 스크립트는 스택 기반 스크립팅 언어(stack-based scripting language)를 사용하여 기입된다.
트랜잭션이 블록체인에 기입되기 위해서는 "유효성"이 검증되어야 한다. 네트워크 노드(채굴기)는 각 트랜잭션이 유효하다는 것을 보장하는 작업을 수행하며, 유효하지 않은 트랜잭션은 네트워크에서 거부된다. 노드에 설치된 소프트웨어 클라이언트는 자신의 잠금 및 잠금 해제 스크립트를 실행하여 사용되지 않은 트랜잭션(UTXO)에 대한 이 유효성 검증 작업을 수행한다. 잠금 및 잠금 해제 스크립트의 실행이 TRUE로 평가되면, 트랜잭션이 유효하고 트랜잭션이 블록체인에 기입된다. 따라서, 트랜잭션이 블록체인에 기입되기 위해서는, i) 트랜잭션을 수신한 제1 노드에 의해 유효성이 검증되어야 하며 - 트랜잭션이 검증되면, 제1 노드는 그 트랜잭션을 네트워크의 다른 노드에 중계함 -; 그리고 ii) 채굴기에 의해 구축된 새로운 블록에 추가되어야 하며; 그리고 iii) 채굴, 즉 과거 트랜잭션의 공개 원장에 추가되어야 한다.
다른 블록체인 관련 관심 분야는 블록체인을 통해 실세계 엔티티를 나타내고 전송하기 위해 '토큰'(또는 '컬러드 코인(coloured coins)')을 사용하는 것이다. 잠재적 민감 또는 비밀 아이템은 식별 가능한 의미나 값이 없는 토큰으로 표시될 수 있다. 따라서, 토큰은 실세계 아인템이 블록체인에서 참조될 수 있게 하는 식별자 역할을 한다. 토큰은, 예를 들어, 네트워크 리소스 및/또는 디지털 자산의 미래 제어권(future control)을 나타낼 수 있다. 경우에 따라, 토큰은 자산(asset) 또는 값(value)을 나타낼 수 있다. 본 출원은 암호 화폐(cryptocurrency) 컨텍스트의 구현예로 국한되지 않으며, 토큰의 분산 전송을 위한 블록체인 네트워크에 관한 것으로 보다 광범위하게 이해된다.
비트코인과 같은 블록체인 기술의 인식된 이점들 중 하나는 트랜잭션의 익명성이다. 비트코인 사용자의 개인 세부정보는 비트코인 어드레스에 공식적이고 명시적으로 첨부되지 않으며, 블록체인의 비트코인 원장은 공개된 어드레스 정보만을 포함한다. 그러나, 2차 데이터(예를 들어, 트랜잭션을 완료하는 데 필요한 배송 어드레스)와 분석 정보(analytics)를 사용하면, 관심있는 제3자는 공개적으로 사용 가능한 정보를 결합하여 비트코인 원장의 트랜잭션 세부정보를 실제 신원(identity)과 연결할 수 있다. 투표 시스템, 의료 애플리케이션 등과 같은 특정 시스템에서, 네트워크 내에서 또는 네트워크로부터 사용자의 추적성은 보안 및/또는 기밀성과 같은 여러 가지 이유로 바람직하지 않을 수 있다.
블록체인 데이터를 통해 사용자를 식별할 수 있는 한 가지 방식은 특정의 비트코인 어드레스에 의해 제어되는 블록체인 토큰의 양이다. 비트코인 네트워크를 통해 브로드캐스트되는 트랜잭션에서 토큰의 흐름을 추적함으로써, 토큰의 양이 어드레스에 기인하는 것으로 생각할 수 있다. 이 토큰의 양은, 다시 (예를 들어, 외부 제3자에 의해) 어드레스와 관련된 사용자의 신원(identity)을 추론하는 데 사용될 수 있다. 예를 들어, 어드레스로부터 전송된 토큰의 총 수가 눈에 띄게 크다고 결정되면, 해당 어드레스와 관련된 사용자의 가능한 신원들의 세트는 그러한 큰 토큰의 양을 보유하는 것으로 알려진 또는 보유할 수 있는 것으로 알려진 신원만을 포함하도록 감소될 수 있다.
사용자의 신원을 보호하는 데 있어 어려움은 특히 소정의 어드레스에서의 토큰의 실제 전송이 그 어드레스로부터 행해지기 전에 그 어드레스에서의 토큰이 다수의 서브 양/수량으로 분할되기 보다는 "변하지 않고" 유지되는(즉, 단일의 양으로 유지되는) 경우 더욱 두드러진다. 어드레스로부터 토큰의 전송을 위장하기 위해 다양한 익명화 기법이 사용되더라도, 그 어드레스에서 발생하는 트랜잭션은 그 트랜잭션을 통해 전송될 토큰이 변하지 않고 유지되면 보다 쉽게 추적될 수 있다. 그러나, 어드레스에서 토큰의 양을 분할하는 것은 쉬운 일이 아니며 기술적인 문제를 내포하고 있다. 특히, 어드레스에서 최초 토큰의 양을 보다 작은 서브 양으로 분할하는 작업은 소유권, 즉 토큰의 제어권을 여전히 유지하면서 최초 양에서 사용자를 분리하는 기술적 문제를 제기하게 된다.
따라서, 블록체인 트랜잭션에서 출력에 대한 입력의 강화된 불추적성(untraceability) 및 불연계성(unlinkability)을 가능하게 하기 위해 블록체인 어드레스에서 토큰의 양을 분할 및 분산하는 방법 및 디바이스를 제공하는 것이 바람직하다.
그러나, 블록체인 네트워크 내에서 토큰을 안전하게 믹싱 및 분산하려는 경우 수많은 기술적 문제가 존재한다. 예를 들어, 참여자 노드(또는 참여자 노드와 연관된 다른 노드)가 다른 토큰을 다른 노드로 방출할 수 있는 프로토콜을 실행하기 전에 그 참여자 노드가 토큰을 청구할 수 있으면 보안이 손상될 수 있다. 또한, 예를 들어, 오프라인 참여자로 인한 토큰의 의도적이거나 우발적인 오할당을 방지하는 것이 중요하다.
이러한 해결책이 이제 고안되었다.
따라서, 본 발명에 따르면 첨부된 청구항에 정의된 방법 및 디바이스가 제공된다.
본 발명은 컴퓨터로 구현되는 방법 및 대응 시스템을 제공할 수 있다. 이 방법/시스템은 블록체인으로 구현되는 방법/시스템으로서 기술될 수 있다. 본 발명은 보안 방법 또는 암호화 방법/시스템으로서 기술될 수 있다. 본 발명은 암호 화폐의 일부 또는 수량과 같은 디지털 리소스/자산(예를 들어, 토큰)의 안전한 전송을 제공할 수 있다. 추가적으로 또는 대안적으로, 본 발명은 암호 화폐의 일부 또는 수량과 같은 디지털 자산/리소스의 전송을 제어하기 위한 제어 메커니즘을 제공할 수 있다. 용이한 참조를 위해, 자산 또는 리소스는 본원에서 "토큰"으로 지칭될 수 있다.
"커밋 채널(commitment channels)"은 순서화된 방식으로 구성될 수 있고, 복수의 노드는 계층적 방식으로 배열될 수 있다. 루트 노드는 계층 구조 내에서 토큰 전송 또는 교환(예를 들어, 특정 노드로의 토큰의 분산)의 실행을 제어할 수 있다. 본원에 기술된 방법 및 시스템은, 제어기 노드가 커밋 채널이 적절하게 생성되었음을 결정한 후 토큰 전송 프로세스를 개시하기 전까지는 그리고 제어기 노드가 커밋 채널이 적절하게 생성되었음을 결정한 후 토큰 전송 프로세스를 개시하지 않는 한, 분산에 관련된 임의의 토큰의 잠금 해제/액세스가 임의의 참여자 노드에 의해 행해질 수 없도록 보장함으로써, 토큰 분산의 보안을 향상시킬 수 있다. 제어기 노드는, 커밋 채널의 계층적 배열과 결합될 때 참여자 노드가 토큰의 예상된 분산을 수신하는 것을 보장할 수 있는 비밀 값의 순차적 공개(sequential reveal)를 개시할 수 있다. 예를 들어, 계층 구조의 각 경로에 따른 비밀 값의 순차적 공개는 참여자 노드가 그러한 토큰을 전송하는 경로를 따라 제각기의 노드로부터 토큰을 수신하게 할 수 있다. 순차적 비밀 공개는, 참여자 노드에 의해 모든 토큰 트랜잭션이 서명되고 커밋 채널이 제어기 노드에 의해 결정되는 바와 같이 적절하게 생성되고 완료된 경우에만, 참여자 노드가 제각기의 토큰을 수신하게 할 수 있다.
추가적으로 또는 대안적으로, 본 출원은, 입력 노드와 연관된 입력 어드레스에서 리소스/자산/토큰의 수량을 복수의 서브 수량으로 분할하고, 서브 수량을 블록체인을 사용하여 제각기의 출력 노드와 연관된 다수의 출력 어드레스에 분산하기 위한 리소스(또는 "자산" 또는 "토큰") 분산 프로세스에 참여하기 위한 컴퓨터 구현 방법을 기술할 수 있다. 이후, 편의상 "리소스" 또는 "자산" 대신에 "토큰"이라는 용어가 사용된다.
토큰 분산 프로세스는 입력 노드, 출력 노드 및 복수의 믹서 노드에 의해 집합적으로 구현될 수 있다. 이 방법은 믹서 노드에서 구현될 수 있다. 이 방법은, 믹서 노드와 연관된 업스트림 노드 및 복수의 다운스트림 노드를 식별하는 단계; 상기 업스트림 노드와 협력하여, 상기 업스트림 노드와 상기 믹서 노드 간의 제1 (블록체인) 트랜잭션을 위한 제1 커밋 채널을 생성하는 단계; 및 복수의 다운스트림 노드의 각각에 대해: 상기 다운스트림 노드와 협력하여 상기 믹서 노드와 상기 다운스트림 노드 간의 제2 트랜잭션을 위한 제2 커밋 채널을 생성함으로써, 제1 (블록체인) 트랜잭션에 대한 잠금 해제 스크립트가 제2 (블록체인) 트랜잭션 중 임의의 하나에 대한 잠금 해제 스크립트로부터 도출되도록 하는 단계를 포함할 수 있다.
"양도자 노드(transferor node)"라는 용어는 본원에서 "업스트림 노드"라는 용어와 상호 교환 가능하게 사용될 수 있다. 양도자 노드는 리소스를 다른 노드에 전송하는 노드일 수 있다. "다운스트림 노드"라는 용어는 본원에서 "양수자 노드(transferee node)"라는 용어와 상호 교환 가능하게 사용될 수 있다. 양수자 노드는 다른 노드, 예를 들어, 양도자 노드로부터 리소스를 수신하는 노드일 수 있다.
일부 구현예에서, 제2 커밋 채널을 생성하는 것은, 상기 다운스트림 노드와 협력하여: 상기 다운스트림 노드로 전송하기 위해 일정 수량의 토큰을 커밋하기 위한 제1 블록체인 트랜잭션을 생성하는 것; 상기 커밋된 수량의 토큰을 상기 믹서 노드에 리턴하는 제2 블록체인 트랜잭션을 생성하는 것; 및 상기 다운스트림 노드로의 상기 커밋된 수량의 토큰의 전송을 실행하기 위한 제3 블록체인 트랜잭션을 생성하는 것을 포함할 수 있다.
일부 구현예에서, 상기 일정 수량의 토큰은 복수의 다운스트림 노드의 각각으로 전송하기 위한 제각기의 수량을 식별하는 믹서 노드에 대한 값 할당 방식에 기초하여 결정될 수 있다.
일부 구현예에서, 상기 제3 블록체인 트랜잭션은 상기 제2 커밋 채널과 연관된 제2 비밀 값을 포함하는 잠금 해제 스크립트를 포함할 수 있다.
일부 구현예에서, 상기 방법은 상기 제2 커밋 채널과 연관된 상기 제2 비밀 값을 획득하는 단계를 더 포함할 수 있다.
일부 구현예에서, 상기 방법은 상기 제2 비밀 값을 사용하여 상기 제1 커밋 채널과 연관된 제1 비밀 값을 도출하는 단계를 더 포함할 수 있다.
일부 구현예에서, 상기 제1 비밀 값은 상기 입력 노드와 연관된 비밀 키 값에 기초하고, 상기 비밀 키 값은 모든 믹서 노드에 알려지지 않는다.
일부 구현예에서, 상기 방법은 믹서 키 값을 상기 업스트림 노드 및 상기 입력 노드에 전송하는 단계를 더 포함할 수 있다.
일부 구현예에서, 상기 믹서 노드는 제1 어드레스 및 복수의 제2 어드레스를 포함할 수 있으며, 상기 믹서 노드는 제1 어드레스에서 상기 업스트림 노드로부터의 제1 수량의 토큰의 전송을 검출하고, 상기 믹서 노드는 제2 어드레스로부터 상기 제1 수량의 서브 수량을 상기 다운스트림 노드에 전송한다.
일부 구현예에서, 상기 복수의 제2 어드레스에서의 토큰의 총 수량은 적어도 상기 제1 수량과 동일할 수 있다.
일부 구현예에서, 상기 제2 블록체인 트랜잭션은 상기 제2 블록체인 트랜잭션이 블록체인에 제출할 권한이 있게 되는 시점을 특정하는 트랜잭션 파라미터를 포함할 수 있다.
일부 구현예에서, 상기 제1 블록체인 트랜잭션은 상기 제2 블록체인 트랜잭션이 상기 다운스트림 노드에 의해 서명된 후에 블록체인에 제출될 수 있다.
일부 구현예에서, 제1 커밋 채널은 임의의 제2 커밋 채널이 생성되기 전에 생성될 수 있다.
본 출원은 기술된 방법을 수행하기 위한 컴퓨팅 디바이스를 더 기술하고, 여기서 상기 컴퓨팅 디바이스는 적어도 하나의 프로세서, 메모리, 네트워크 연결성을 제공하기 위한 네트워크 인터페이스, 및 실행될 때, 상기 프로세서로 하여금 본원에 기술된 하나 이상의 방법의 동작을 수행하게 하는 프로세서 실행 가능 명령어를 포함하는 블록체인 애플리케이션을 포함할 수 있다.
본 출원은, 입력 노드, 다수의 출력 노드, 및 복수의 믹서 노드를 포함하는 토큰 분산 프로세스에 참여하기 위한 프로세서 실행 가능 명령어를 저장할 수 있는 비 일시적 프로세서 판독 가능 매체를 더 기술하며, 여기서 상기 프로세서 실행 가능 명령어는 상기 노드들 중 한 노드의 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 본원에 기술된 하나 이상의 방법의 동작을 수행하게 한다. 상기 프로세서는 믹서 노드에 제공될 수 있다.
본 발명의 일 양태 또는 실시예와 관련하여 기술된 임의의 특징은 하나 이상의 다른 양태/실시예와 관련하여 사용될 수도 있다. 본 발명의 이들 및 다른 양태는 본원에 기술되는 실시예로부터 명백할 것이고 이들 실시예를 참조하여 자세히 설명될 것이다. 본 발명의 실시예는 이제 첨부된 도면을 참조하여 예로서만 설명될 것이다.
도 1은 예시적인 노드의 블록체인 네트워크를 도시한 도면이다.
도 2는 커밋 채널을 구성하기 위한 예시적인 프로세스를 흐름도 형태로 도시한 도면이다.
도 3은 계층적 토큰 분산 프로토콜에서 이용되는 노드의 예시적인 계층 구조를 도시한 도면이다.
도 4는 계층적 토큰 분산 프로토콜의 인스턴스를 개시하기 위한 예시적인 프로세스를 흐름도 형태로 도시한 도면이다.
도 5a는 계층적 토큰 분산 프로토콜에서 이용되는 커밋 채널의 개략도를 도시한 도면이다.
도 5b는 계층적 토큰 분산 프로토콜에서 노드와 다운스트림 노드 사이에 커밋 채널을 구성하기 위한 예시적인 프로세스를 흐름도 형태로 도시한 도면이다.
도 6은 계층적 토큰 분산 프로토콜에서 계층 구조 내의 경로를 따라 토큰 전송을 제출하는 예시적인 프로세스를 흐름도 형태로 도시한 도면이다.
도 7은 계층적 토큰 분산 프로토콜에서 제각기 토큰 전송을 수신하고 토큰을 전송하기 위해 상이한 블록체인 어드레스를 믹서 노드에 의해 사용하는 것을 도시한 개략도이다.
도 8은 간이화된 참여자 노드의 블록도를 도시한 도면이다.
먼저 도 1을 참조하면, 도 1은 블록체인과 연관된 예시적인 블록체인 네트워크(100)를 블록도 형태로 도시한 도면이다. 블록체인 네트워크는 초대없이 또는 다른 멤버의 동의없이 누구나 가입할 수 있는 피어 투 피어 공개 멤버쉽 네트워크이다. 블록체인 네트워크(100)가 동작되는 블록체인 프로토콜의 인스턴스를 실행하는 분산형 전자 디바이스는 블록체인 네트워크(100)에 참여할 수 있다. 이러한 분산형 전자 디바이스는 노드(102)로 지칭될 수 있다. 블록체인 프로토콜은, 예를 들어, 비트코인 프로토콜 또는 다른 암호 화폐일 수 있다.
블록체인 프로토콜을 실행하고 블록체인 네트워크(100)의 노드(102)를 형성하는 전자 디바이스는, 예를 들어, 데스크탑 컴퓨터와 같은 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 서버, 스마트폰과 같은 모바일 디바이스, 스마트워치와 같은 웨어러블 컴퓨터, 또는 다른 전자 디바이스를 포함하는 다양한 타입일 수 있다.
블록체인 네트워크(100)의 노드(102)는 유선 및 무선 통신 기술을 포함할 수 있는 적절한 통신 기술을 사용하여 서로 연결된다. 많은 경우에, 블록체인 네트워크(100)는 인터넷을 통해 적어도 부분적으로 구현되며, 개별 노드(102) 중 일부는 지리적으로 분산된 위치에 배치될 수 있다.
노드(102)는 블록체인 상의 모든 트랜잭션의 글로벌 원장(global ledger)을 유지한다. 글로벌 원장은 분산된 원장이며, 각 노드(102)는 글로벌 원장의 전체 사본 또는 부분 사본을 저장할 수 있다. 글로벌 원장에 영향을 미치는 노드(102)에 의한 트랜잭션은 다른 노드(102)에 의해 검증되어 글로벌 원장의 유효성이 유지된다. 비트코인 프로토콜을 사용하는 것과 같은 블록체인 네트워크를 구현하고 운영하는 세부 사항은 본 기술 분야의 통상의 기술자에 의해 이해될 것이다.
각각의 트랜잭션은 일반적으로 하나 이상의 입력과 하나 이상의 출력을 갖는다. 입력 및 출력에 임베딩되는 스크립트는 트랜잭션의 출력이 어떻게 그리고 누구에 의해 액세스될 수 있는지를 특정한다. 트랜잭션의 출력은 트랜잭션의 결과로서 토큰이 전송되는 어드레스일 수 있다. 그런 다음 해당 토큰은 사용 가능한 트랜잭션 출력으로서 해당 출력 어드레스와 연관된다. 비트코인과 같은 암호 화폐의 맥락에서, 사용 가능한 트랜잭션 출력은 사용되지 않은 트랜잭션 출력(UTXO)이라고 지칭될 수 있다. 그 후 후속하는 트랜잭션은 그 토큰을 하나 이상의 다른 어드레스에 전송하기 위해 해당 어드레스를 입력으로서 참조할 수 있다.
블록체인 원장 상의 트랜잭션 내에 개인 정보가 포함되어 있지 않기 때문에 그 트랜잭션이 의사 익명이지만, 트랜잭션의 체인에서 토큰의 전송을 추적할 수 있고, 경우에 따라 외부 데이터를 사용하여 개인에게 토큰을 연결할 수 있다. 익명성을 높이기 위해, 믹싱 트랜잭션을 사용하여 다양한 소스로부터의 입력을 풀링한 다음 풀링된 토큰을 출력에 분할하여 할당할 수 있다. 모든 입력과 출력의 크기가 같은 경우 특정 입력을 특정 출력에 연관시키는 것이 어렵다. 그러나, 그러한 트랜잭션에서 적어도 하나의 참여자 노드는 다른 참여자 노드에 의해 특정된 입력 어드레스와 출력 어드레스 사이의 연계성(linkage)을 알고 있다. 비트코인 프로토콜에서의 코인조인(CoinJoin) 동작과 같은 그러한 믹싱 트랜잭션에서, 다수의 입력 및 다수의 출력을 갖는 단일 트랜잭션이 토큰을 믹싱하는 데 사용된다.
입력과 출력 사이의 연계성이 공개되는 것을 피하기 위해, 다양한 효과와 함께 링 시그니처(ring signatures) 또는 스텔스 어드레스(stealth addresses)와 같은 일부 다른 익명화 기술이 사용된다. 스텔스 어드레스는 특정 사용자로부터 토큰이 전송된 출력 어드레스를 연결 해제하려고 한다. 링 시그니처는 가능한 서명 그룹 중 임의의 하나가 특정 트랜잭션에 서명한/권한을 부여한 것일 가능성을 동일하게 하여 소스를 추적할 수 없게 만들려고 한다. 불행하게도, 링 시그니처는 일부 블록체인 프로토콜에서 구현하기에 문제가 있는 것으로 입증되었다.
본 개시 내용은 블록체인 어드레스에서의 토큰을 다수의 상이한 어드레스에 분산하기 위한 기술을 제공한다. 보다 구체적으로, 어드레스에서의 최초 토큰 양을 더 작은 서브 양으로 분할하고 그 서브 양을 출력 어드레스의 세트에 걸쳐 분산하는 기술이 설명된다. 토큰의 분할은 최종 어드레스에서의 그 서브 양의 제어권/소유권으로부터 최초 토큰 양의 제어권/소유권을 연결 해제하기 위해 수행된다. 특히, 최초 토큰의 서브 양은 외부 관찰자가 최종 출력 어드레스를 최초 토큰 양을 수용한 어드레스와 연관시키는 것을 어렵게 하기 위해 분산된다.
본 발명의 실시예에 따르면, 블록체인 상의 어드레스에서의 최초 토큰은 참여자 노드의 세트 사이에서의 토큰의 계층적 전송 구조를 통해 분산된다. 특히, 최초 토큰 양과 그 서브 양은 "계층 구조"의 다수의 계층을 통해 순차적으로 분할된다. 본 개시 내용에서 사용되는 용어 "계층 구조"는 어드레스에서의 최초 토큰 양의 서브 양을 분산하기 위해 행해진 전송의 세트를 개념화하기 위한 구조를 지칭한다. 본 맥락에서, "계층 구조"는 루트 노드와 부모 노드 및 자식 노드의 서브 트리를 포함하는 트리 구조로서 이해될 수 있으며, 이는 링크된 노드의 세트로 표현된다. 본 개시 내용에서 제안된 계층적 토큰 분산 방식은 참여자 노드들(트리 구조에서 노드들로 표현됨) 사이에서 토큰의 전송을 사용하여 분산의 개시자에 해당하는 "루트" 노드로부터 다수의 "리프" 노드로 토큰을 분산시키며, 이들 리프 노드는 상기 개시자에 의해 또한 제어되는 출력 어드레스가 된다.
본원에 설명된 기술은 또한 분산에서의 참여자 노드가 그들의 토큰을 도난당할 위험이 없도록 보장하기 위해, 참여자 노드 사이에서 토큰을 전송하기 위한 "커밋 채널"의 사용을 통해 구현되는 보안 메커니즘을 제공한다. 프로토콜의 개시자는 커밋 채널과 연관된 비밀 값의 전파된 공개를 사용함으로써 커밋 채널의 순차적 "잠금 해제"를 제어하여, 해당 트랜잭션에 대한 모든 커밋 채널이 설정될 때까지는 프로토콜의 토큰 트랜잭션이 실행되는 것을 방지한다. 생성된 커밋 채널을 사용하여 모든 토큰 트랜잭션을 성공적으로 완료하면, 어드레스의 최초 토큰 양이 다수의 목적지 (출력) 어드레스에 분산된다.
본원의 설명에서, 용어 "입력 노드", "출력 노드", "참여자 노드", "입력 어드레스" 및 "출력 어드레스"가 사용될 수 있다. 노드의 "어드레스"에 대한 참조는 물리적 노드의 네트워크 어드레스를 지칭하는 것으로 의미하는 것은 아니다. 대신에 "어드레스"는 트랜잭션의 시그니처에 해당하는 키를 소유함으로써 물리적 노드가 소유권을 주장할 수 있는 토큰이 할당된 블록체인 상의 트랜잭션 내에 특정된 어드레스이다. 이러한 의미에서, "출력 어드레스"는 참여자 노드의 어드레스가 아니라, 참여자 출력 노드가 소유하거나 참여자 출력 노드와 연관된 블록체인 트랜잭션 출력 어드레스가 된다. 마찬가지로, "입력 어드레스"는 참여자 입력 노드가 소유하거나 참여자 입력 노드와 연관된 사용 가능한 트랜잭션 출력(암호 화폐 용어로 UXTO)의 어드레스가 된다.
커밋 채널(Commitment Channels)
비트코인과 같은 다양한 블록체인 기술은 때때로 참여자 노드 사이의 페어 방식 트랜잭션 구성(construction of pairwise transactions)에 "커밋 채널"을 사용할 수 있다. 커밋 채널은 노드가 모든 트랜잭션을 블록체인에 커밋하지 않고도 다수의 트랜잭션을 수행할 수 있도록 설계된다. 한 쌍의 참여자 노드 사이에 커밋 채널이 설정되면, 그 노드는 주어진 기간 동안 원하는 만큼의 전송에 참여할 수 있으며, 트랜잭션 중 두 개만이 최종적으로 블록체인에 추가된다. 결과적으로, 커밋 채널을 사용하면 블록체인에 추가되어야 하는 트랜잭션의 수가 감소될 수 있고 관련 트랜잭션 비용이 감소할 수 있다. 커밋 채널은 또한 양수자 노드가 특정 기준을 충족하지 않거나 양도자 또는 양수자 노드가 특정 세트의 전송 후 프로세스를 종료하기로 결정한 경우 토큰을 리턴할 수 있는 유연성을 양도자 노드에 제공한다.
도 2는 양도자 노드(
Figure pct00001
)에서 양수자 노드(
Figure pct00002
)로의 단방향 커밋 채널(
Figure pct00003
)을 생성하기 위한 예시적인 프로세스(200)를 흐름도 형태로 도시한 도면이다. 프로세스(200)는 한 쌍의 참여자 노드(
Figure pct00004
Figure pct00005
)에 의해 구현된다. 예를 들어, 단방향 커밋 채널은 당사자(
Figure pct00006
)가 당사자(
Figure pct00007
)에게 (예를 들어, 서비스에 대해) 일정 기간 동안 다수의 전송을 통해 지불하기를 열망하는 시나리오에서 사용하기에 적합하다. 보다 일반적으로, 커밋 채널(
Figure pct00008
)은 참여자 노드들(
Figure pct00009
Figure pct00010
) 간의 토큰의 가능한 세트의 교환을 가능하게 할 수 있다.
단계(202)에서, 양도자(
Figure pct00011
)는 커밋 트랜잭션(commitment transaction)(
Figure pct00012
)을 생성한다. 커밋 트랜잭션은 특정된 토큰 세트(
Figure pct00013
)가
Figure pct00014
에 전송되는/전송을 위해 커밋되는 커밋 채널의 커밋 컴포넌트를 나타낸다. 커밋 트랜잭션은, 일부 실시예에서, 2-of-2 멀티-시그니처(multi-signature) 페이-투-스크립트-해시(pay-to-script-hash)(P2SH) 트랜잭션일 수 있다. 이 시점에서, 트랜잭션은 블록체인 네트워크에 제출되지 않는다.
단계(204)에서, 멀티-시그니처 제어된 토큰으로부터의 모든 토큰을
Figure pct00015
에 다시 리턴하는 개별 리턴 트랜잭션(
Figure pct00016
)은
Figure pct00017
에 의해 생성된다. 이 트랜잭션은 블록체인 트랜잭션이 특정 시점 이후에만 실행 가능하도록 하는 파라미터(
Figure pct00018
)를 포함한다. 리턴 트랜잭션은, 양수자 노드(
Figure pct00019
)가 할당된 시간 내에(예를 들어, 최대
Figure pct00020
) 커밋 트랜잭션에 대한 명시된 기준을 완료할 수 없다면, 커밋된 토큰이 노드(
Figure pct00021
)에 리턴되게 할 수 있다.
단계(206)에서, 양도자(
Figure pct00022
)는 리턴 트랜잭션에 서명한다. 단계(208)에서,
Figure pct00023
가 리턴 트랜잭션에 서명했다고 판정되면,
Figure pct00024
는 단계(210)에서, 오리지널 커밋 트랜잭션(
Figure pct00025
)에 서명하고 이를 블록체인에 제출한다. 이 시점에서, 노드(
Figure pct00026
Figure pct00027
)는 하나 이상의 새로운 리턴 트랜잭션
Figure pct00028
의 생성을 진행하여, 단계(212 내지 226)에 도시된 바와 같이, 블록체인 외부에서 행해지는 토큰 전송을 반영할 수 있다. 특히, 이러한 리턴 트랜잭션은 그 시점에
Figure pct00029
Figure pct00030
에 대해 수행해야 하는 토큰의 순 전송(net transfer of tokens)을 반영할 것이다. 참여자 노드가 임의의 리턴 트랜잭션(
Figure pct00031
)에 서명을 거부하면, 그 노드는
Figure pct00032
이후에 '이전' 리턴 트랜잭션(
Figure pct00033
)을 블록체인에 제출할 수 있다. 예를 들어, 최악의 시나리오에서,
Figure pct00034
Figure pct00035
에 서명하고 이를 블록체인 네트워크에 제출함으로써
Figure pct00036
에 의해
Figure pct00037
에 커밋된 모든 토큰을 회수할 수 있다.
도 2에 도시된 바와 같이,
Figure pct00038
Figure pct00039
사이의 (오프-블록) 리턴 트랜잭션의 반복은,
Figure pct00040
에서
Figure pct00041
로의 토큰의 순 전송을 나타내는 최종 리턴 트랜잭션이 구성되어 블록체인 네트워크에 제출될 때까지 생성될 수 있다. 보다 구체적으로, 최초 리턴 트랜잭션(
Figure pct00042
) 상의
Figure pct00043
값이
Figure pct00044
으로 표시되는 경우,
Figure pct00045
Figure pct00046
Figure pct00047
사이에서 행해진 진행중인 오프-블록 전송에서 생성된 리턴 트랜잭션의 수이며,
Figure pct00048
는 노드가 이전 리턴 트랜잭션을 제출하는 다른 노드에 위협을 가하기 전에 모든 당사자가 리턴 트랜잭션에 동의하는 데 할당된 시간이고, 노드들은
Figure pct00049
동안(즉, 최초 리턴 트랜잭션에 대한
Figure pct00050
이 경과되기 전 동안) 새로운 전송을 지속적으로 협상할 수 있고(단계(216),
Figure pct00051
의 값은 단계(240)에서 최종 리턴 트랜잭션이 블록체인에 제출될 때까지 각각의 연속적인 리턴 트랜잭션으로 감소된다.
계층적 토큰 분산
본 개시 내용은 블록체인 내의 특정 어드레스에서의 토큰을 다수의 출력 어드레스에 분산하기 위한 기술을 설명한다. 최초 어드레스에서의 토큰 양은 다수의 서브 양으로 분할되고, 이 서브 양은 다시 출력 어드레스의 세트에 걸쳐 분산된다. 본 개시 내용에서 제안된 토큰 분산 방식(계층적 토큰 분산(Hierarchical Token Distribution) 방식("HTD"))은 참여자 노드들(개념적 "계층 구조"에서 노드들로 표시됨) 사이의 "계층적" 전송 구조를 이용한다. 특히, HTD는 최초 어드레스로부터 노드의 멀티-레벨 계층 구조를 통해 토큰을 전송한다. 일부 경우에, HTD는 블록체인 네트워크에서 트랜잭션을 익명화하기 위한 해결책의 일부로서 또는 이에 대한 추가로 사용될 수 있다. HTD의 예시적인 구현예는 이제 도 3 내지 도 10을 참조하여 기술될 것이다.
토큰 분산 개시
도 4를 참조하면, 도 4는 HTD 프로토콜의 인스턴스를 개시하기 위한 예시적인 프로세스(400)를 도시하는 도면이다. 노드는 HTD 인스턴스에 가입하여 노드와 연관된 어드레스에서 토큰을 분할하고 분산할 수 있다. 상술한 바와 같이, HTD는 복수의 노드를 멀티-레벨 계층 구조 내로 개념적으로 배열함으로써 진행된다. HTD의 개시자는 루트 노드(
Figure pct00052
)로 표시되며, 토큰 분산의 출력 어드레스는 계층 구조에서 리프 노드로 표시된다. HTD 인스턴스는 개시자 자체에 의해 또는 다른 노드 및/또는 제어 시스템에 의해 관리될 수 있으며, 이 경우 개시자는 노드/제어 시스템에 의해 제공된 HTD 서비스를 사용할 것을 요청할 것이다.
단계(402)에서, HTD 서비스의 다양한 파라미터를 포함하는 초기화 데이터는 관리자 및/또는 개시자에 의해 수집되거나 선택될 수 있으며, 다음을 포함한다:
● 계층 구조에서 각각의 비 리프(non-leaf) 노드가 가질 자식/양수자의 수를 나타내는, 계층 구조 내의 노드 당 고정된 분기 수(
Figure pct00053
).
● 출력 또는 "리프"의 수. 적어도 일부 실시예에서, 출력의 수는 다음의 함수의 범위 내의 값들의 세트로부터 선택될 수 있다:
Figure pct00054
여기서,
Figure pct00055
는 계층 구조 내의 레벨의 수이고, 루트 노드는 레벨 1이며, 최종 레벨은 리프들을 포함하는 레벨이다. 예를 들어,
Figure pct00056
이면, 리프들의 범위는
Figure pct00057
이다.
단계(404)에서, HTD는 계층 구조에서 "믹서 노드"로서 작용하는 참여자 노드의 세트를 모집한다. 모집은 HTD 및/또는 개시자의 관리자에 의해 수행될 수 있거나 탈중앙화될 수 있다(예를 들어, 참여자 노드는 HTD에 "참여하여" 믹서 노드로서 역할을 할 수 있으며, 예를 들어, "믹싱” 서비스를 제공하기 위한 지불을 수신할 수 있다). 믹서 노드는 계층 구조의 트리 구조에서 루트가 아닌 내부 노드이다. 각각의 믹서 노드는 자신의 "부모"(또는 업스트림) 노드로부터 제1 수량의 토큰을 수신하고 상기 제1 수량의 서브 양을 자신의 "자식"(또는 다운스트림) 노드에 전송하도록 구성된다. 파라미터
Figure pct00058
Figure pct00059
가 주어지면, HTD 인스턴스의 계층 구조에서 믹서 노드의 수(
Figure pct00060
)는 다음에 의해 계산될 수 있다:
Figure pct00061
.
일부 실시예에서, 믹서 노드는 HTD 내에서 "믹싱" 기능을 제공할 수 있다. 믹싱을 가능하게 하기 위해, 모집된 각 참여자 노드는 적어도 최소의 토큰 수량(
Figure pct00062
)을 소유하는 것으로 예상될 수 있으며, 여기서,
Figure pct00063
이다. 이 최소 수량은 믹서 노드가 위치한 계층 구조 내의 레벨에 따라 달라질 수 있다.
HTD 프로토콜의 핵심 컴포넌트는 그 프로토콜이 부분적인 완료의 위험 및 결과적으로 토큰의 원하는 최종 분산을 실현하지 못할 위험없이 완전하게 구현되도록 보장하는 보안 메커니즘의 구현에 있다. HTD에 필요한 보안을 달성하기 위해, 이 해결책은 타원 곡선 암호화(Elliptical Curve encryption)의 공개-비밀 키 관계의 동형 특성(homomorphic properties)을 이용하며, 여기서,
Figure pct00064
이다.
Figure pct00065
Figure pct00066
는 타원 곡선의 기준점이 된다. HTD 프로토콜의 보안은 HTD의 계층 구조에서 부모-자식 노드 쌍 사이의 모든 토큰 트랜잭션에 대한 "커밋 채널"의 사용과 그 프로토콜의 참여자 노드들 사이에 수립된 커밋 채널을 통해 개시자(
Figure pct00067
)에 의해 행사되는 제어권에 의존한다.
이 보안 메커니즘을 설정할 때, 개시자는 먼저 단계(406)에서 난수(또는 키)(
Figure pct00068
)를 선택하고,
Figure pct00069
를 계산하며, 여기서
Figure pct00070
는 타원 곡선 상의 기준점을 나타낸다.
Figure pct00071
의 값은 HTD 전체에서 개시자에 의해 비밀로 유지된다. 다른 모든 참여자 노드(
Figure pct00072
)는 단계(408)에서, 각각의 난수/키(
Figure pct00073
)를 선택하며, 이 값을 개시자에게 안전하게 전송한다. 개시자는 그 후 단계(410)에서, 난수 값들의 세트(
Figure pct00074
)를 선택하며, 여기서 이러한 난수의 각각은 계층 구조의 리프(출력) 노드에 대응한다. 즉, 개시자는 난수(
Figure pct00075
)를 각각의 리프 노드에 할당한다.
HTD 서비스에 의해 충분한 수의 믹싱 노드가 모집되면, 노드들의 계층 구조는 개시자에 의해 선택된 출력 값들 또는 리프들의 수에 기초하여 "구성"된다. 노드들의 예시적인 계층 구조(300)가 도 3에 도시되어 있으며, 여기서
Figure pct00076
이고 레벨들의 수(
Figure pct00077
)는 4와 동일하다. 계층 구조는 루트 노드(302), 8 개의 리프 노드(304), 및 루트 노드(302)와 리프 노드(304) 사이의 8 개의 상이한 경로를 따라 고유한 위치에 배치된 복수의 믹서 노드(306)를 포함한다. 루트 노드(302)와 연관된 어드레스에서의 최초 토큰 수량은 계층 구조(300)에 기초한 분산 방식을 사용하여 출력 리프 노드(304)에 분산될 수 있다. (보편성의 상실 없이, 노드를 라벨링하기 위해 본원 전체에 걸쳐 다음의 표기법이 사용될 것이며: 노드가
Figure pct00078
로 라벨링된 경우,
Figure pct00079
의 부모 노드는
Figure pct00080
이고,
Figure pct00081
의 자식 노드는
Figure pct00082
이며, 여기서,
Figure pct00083
이 된다.)
HTD의 “계층 구조”는 참여자 노드들 사이의 토큰 트랜잭션들의 세트를 나타내며, 특정 블록체인 어드레스에서의 최초 토큰 수량을 다수의 상이한 출력 어드레스에 분산시킨다. 특히, 계층 구조에서 노드들의 상대적 위치들은 최초 어드레스에서의 토큰을 분산시킬 때 HTD 프로토콜에 의해 사용되는 트랜잭션들을 정의한다. 루트 노드 이외의 계층 구조의 각 노드는 그 부모 노드로부터 토큰의 전송을 수신하고, 계층 구조 내의 모든 비 리프 노드는 제각기의 양의 토큰을 그의 각각의 자식 노드에 전송한다. 보다 구체적으로, 계층 구조 내의 각 믹서 노드는 두 가지 타입의 트랜잭션에 참여한다. 즉 (1) 그 부모 노드로부터 특정 수량(
Figure pct00084
)의 토큰의 전송을 수신하며, (2)
Figure pct00085
의 각 서브 양을 그 자식 노드에 전송한다. 따라서, 계층 구조 내의 노드의 위치는 대응하는 참여자 노드가 관여할 트랜잭션들의 세트를 완전히 정의한다.
HTD의 익명화 능력을 돕기 위해, 계층 구조를 구성하는 동안 다양한 랜덤화(randomization) 프로세스가 수행되어 개별 믹싱 노드들의 위치를 결정할 수 있다. 랜덤화는 레벨 별로 수행될 수 있거나(즉, 참여자 노드는 계층 구조의 레벨로 지정되지만 그 레벨에서의 그의 위치는 랜덤하게 결정됨), 또는 노드는 계층 구조 내에서 임의의 랜덤 믹싱 노드 위치에 배치될 수 있다.
HTD에서 믹서 노드들의 계층적 배열로 인해, 랜덤화 선택은 믹서 노드들에서 사전에 사용 가능한 토큰의
Figure pct00086
수량에 영향을 미칠 것이다. 믹서 노드가 HTD 동안 토큰들의 전송을 믹싱할 수 있기 위해서는 분산을 위해 임의의 토큰을 수신하기 전에 적어도 최소량의 토큰을 보유해야만 한다. 예를 들어, 믹서 노드들을 모집하는 동안 믹서 노드들 중 적어도 하나가
Figure pct00087
개의 개별 어드레스에서 사전에 사용 가능한 자식 노드에 분산하도록 요청된 수량과 동일한 수량의 토큰을 가질 것을 요구하는 제한이 가해질 수 있다. 이는, 자식 노드들 간에 토큰이 분할되는 비율에 따라, 믹서 노드가 계층 구조에서 보다 상위에 존재할수록 HTD에 참여하기 위해 더 많은 토큰을 보유해야 한다는 것을 의미할 것이다(그 이유는 계층 구조에서 보다 상위의 노드가 분산을 위해 더 많은 토큰 수량을 수신하기 때문이다). 따라서, 믹서 노드들이 계층 구조의 특정 레벨용으로 모집되는 경우, 랜덤화는 믹서 노드들이 계층 구조의 해당 레벨을 가로 질러 "수평으로" 이동하는 것과 그 레벨이 자신의
Figure pct00088
값을 갖는 것으로 제한될 것이다. 반면, 믹서 노드들이 레벨에 대한 제한없이 모집되는 경우, 믹서 노드들은 계층 구조의 믹싱 레벨들 중의 임의의 레벨의 임의의 위치에 랜덤하게 배치될 수 있으며,
Figure pct00089
값은 모든 믹싱 노드들에 대해 보편적일 것이다.
단계(412)에서 계층 구조 내의 믹서 노드들의 위치를 결정한 후, 개시자는 단계(414)에서 루트 노드 및 리프 노드를 포함하여 계층 구조를 (개념적으로) 구성하고, 단계(416)에서, 각 참여자 노드(
Figure pct00090
)에, 토큰을 수신할 것으로 예상되는 노드 및 토큰을 각각 전송할 것으로 예상되는 노드를 전달한다.
HTD에서의 커밋 채널
일단 계층 구조의 설계가 수립되고 각 참여자 노드가 제각기의 양도자(업스트림 노드)와 양수자(다운스트림 노드)를 인식하면, 모든 참여자 노드와 그들의 양수자들 간의 단방향 커밋 채널들의 세트가 설정된다. HTD에서 부모-자식 노드 쌍들 간의 모든 토큰 트랜잭션은 "커밋 채널"의 사용을 통해 수행된다. HTD에서, 커밋 채널은 세 개의 개별 트랜잭션들, 즉, 커밋 트랜잭션(
Figure pct00091
), 리턴 트랜잭션(
Figure pct00092
), 및 전송 트랜잭션(
Figure pct00093
)에 의해 정의된다. 도 5a는 3 개의 트랜잭션들 간의 관계를 나타내는 개략도를 도시한 도면이다. 따라서, 보편성의 상실 없이, HDD에서 양도자 노드(
Figure pct00094
)로부터 양수자 노드(
Figure pct00095
)로의 토큰들의 각각의 전송마다, 3 개의 블록체인 트랜잭션이 생성된다:
● 커밋 트랜잭션(
Figure pct00096
)은,
Figure pct00097
Figure pct00098
로의 전송을 위해 다음 중 어느 하나에 의해 관리될 토큰들의 세트(x)를 커밋하는 데 이용되는 2-of-2 멀티-시그니처 P2SH 트랜잭션이다:
○ 2-of-2 멀티-시그니처(
Figure pct00099
), 또는
○ 비밀 값(
Figure pct00100
)의 지식 및
Figure pct00101
의 시그니처
● 리턴 트랜잭션(
Figure pct00102
)은 이전에 커밋된 토큰들(x)을
Figure pct00103
에 다시 리턴한다. 이 트랜잭션은 특정 시점 이후에 블록체인에 제출될 수 있는 자격이 된다. 리턴 트랜잭션이 성공적으로 실행되게 하려면, 사용자(
Figure pct00104
Figure pct00105
)의 시그니처가 필요하다.
● 전송 트랜잭션(
Figure pct00106
)은 커밋된 토큰들(x)을
Figure pct00107
에 실제로 전송한다. 이 트랜잭션이 성공적으로 실행되게 하기 위해서는 비밀 값(
Figure pct00108
)의 지식 및 사용자(
Figure pct00109
)의 시그니처를 필요로 한다.
HTD의 일부로서 생성된 각 커밋 채널은 양수자가 임의의 토큰 전송을 수신하기 위해 제공해야만 하는 비밀 값에 의해 “잠금” 상태에 있다. 양도자 노드(
Figure pct00110
)와 양수자 노드(
Figure pct00111
) 간의 커밋 채널(
Figure pct00112
)을 구성하기 위한 예시적인 프로세스(500)가 도 5b에 도시되어 있다:
1. 동작(502): 양수자(
Figure pct00113
)는 난수(
Figure pct00114
)를 선택한다. 각 커밋 채널은 외부 노드가 HTD의 동일한 인스턴스의 요소인 트랜잭션들의 세트를 연관시키는 것을 더 어렵게 하기 위해 다른 난수를 이용할 수 있다. 특히, 블록체인에서 볼 수 있는 상이한 트랜잭션들을 HTD의 공통 인스턴스에 연결할 수 있다는 것은, 트랜잭션들이 모두 동일한 비밀로 태그되는 것은 아니기 때문에, 더욱 복잡해질 수 있다.
2. 동작(502): 양수자(
Figure pct00115
)는
Figure pct00116
Figure pct00117
의 값을 전달한다.
3. 동작(504): 양도자(
Figure pct00118
)는 다음의 관계를 사용하여 비밀 값(
Figure pct00119
)의 암호화된 버전(
Figure pct00120
)을 계산한다:
Figure pct00121
4. 동작(506): 양도자(
Figure pct00122
)는 암호화된 값(
Figure pct00123
)을 이용하고, 커밋 트랜잭션(
Figure pct00124
)을 생성하며, 이 커밋 트랜잭션은 (1)
Figure pct00125
Figure pct00126
모두의 시그니처, 또는 (2)
Figure pct00127
Figure pct00128
의 시그니처에 의해서만 전송될 수 있는 토큰 수량(
Figure pct00129
)을 커밋한다.
5. 동작(508): 양도자(
Figure pct00130
)는 리턴 트랜잭션(
Figure pct00131
)을 생성하고, 이 리턴 트랜잭션은
Figure pct00132
에 커밋된 값(
Figure pct00133
)을 리턴한다. 리턴 트랜잭션은 시점을 특정하는 파라미터(
Figure pct00134
)를 포함하며, 이 시점에 또는 시점 이후에 리턴 트랜잭션은 블록체인에 제출될 수 있는 자격이 된다. 제안된
Figure pct00135
값은 다음과 같이 계산될 수 있다:
Figure pct00136
.
여기서,
Figure pct00137
는 계층 구조 내의 레벨의 수이며,
Figure pct00138
는 계층 구조에서
Figure pct00139
의 레벨이고,
Figure pct00140
는 블록체인 네트워크에 제출된 노드로의 제1 전송의 시작 시간이며,
Figure pct00141
는 HTD 서비스에 의해 선택되는 시간 값으로, 커밋 채널을 구성하고, 토큰을
Figure pct00142
에 전송하고 전송 트랜잭션(
Figure pct00143
)을 블록체인 네트워크에 제출하는 상기 커밋 채널을 위해 필요한 비밀 값을 검색하기 위해 각각의
Figure pct00144
가 제공받는 시간량을 나타낸다.
6. 동작(510): 양수자(
Figure pct00145
)는 리턴 트랜잭션에 서명한다.
7. 동작(512): 양도자(
Figure pct00146
)는 커밋 트랜잭션(
Figure pct00147
)에 서명하고, 이를 블록체인에 제출한다.
8. 동작(514): 전송 트랜잭션(
Figure pct00148
))이 생성되어, 커밋 트랜잭션의 커밋된 토큰들(
Figure pct00149
)을
Figure pct00150
에 전송한다. 전송 트랜잭션을 위한 잠금 해제 스크립트 또는 <scriptSig>는 전송 트랜잭션이 블록체인에 성공적으로 제출될 경우 값(
Figure pct00151
)을 포함할 필요가 있다.
HTD에서, 제1 커밋 채널(
Figure pct00152
)을 통해 수신되는 토큰들은 수 개의 서브 양으로 분할되며, 이 서브 양은 다시
Figure pct00153
를 통해 제2 커밋 채널(
Figure pct00154
)에 전송된다. 자식 노드로의 전송을 위한 각각의 비 리프 노드에서의 토큰의 수량의 분할은 각각의 노드에 대한 값 할당 방식에 의해 통제될 수 있다. 예를 들어, 노드에 대한 값 할당 방식은 상기 노드에서 수신된 토큰 수량이 그의 자식 노드들 사이에서 분할될 수 있는 비율(예를 들어, 50:50, 40:35:25 등)을 나타낼 수 있다. 계층 구조에서 각각의 비 리프 노드에 대해 값 할당 방식이 독립적으로 결정될 수 있거나, 모든 비 리프 노드에 대해 동일한 값 할당 방식이 적용될 수 있다. 일부 실시예에서, 원하는 서브 양이 HTD 계층 구조에서 그들의 각각의 목적지 (출력) 어드레스에 도달하는 것을 보장하는 데 값 할당 방식이 이용될 수 있다.
HTD에서 믹서 노드로서 서비스를 제공하는 참여자 노드는 분산 프로세스 동안 그 노드가 자식 노드로 전송하는 서브 양들의 합계와 적어도 동일한 토큰의 수량의 전송을 자신의 업스트림 (부모) 노드로부터 수신하는 것을 보장받기를 원할 것이다. 이것은, 노드가 중간에 임의의 트랜잭션을 취소할 수 있게 하지 않고도 프로토콜의 트랜잭션이 완료되게 보장하는 것을 지원함으로써, 커밋 채널의 사용에 의해 HTD 참여자 노드에 대한 보안 측정치가 제공될 수 있는 경우이다.
Figure pct00155
로부터 리프 노드로의 라우트(route)를 추적하는 계층 구조 내의 모든 경로마다, 부모-자식 노드 쌍들 간의 커밋 채널들이 특정 순서로 생성된다. 특히, 커밋 채널(
Figure pct00156
)은 임의의 커밋 채널(
Figure pct00157
) 전에 생성된다. 즉, 토큰을 사용자(
Figure pct00158
)에게 전송하는 트랜잭션을 위한 커밋 채널은
Figure pct00159
로부터
Figure pct00160
에 전송되는 트랜잭션을 위한 임의의 커밋 채널 이전에 수립될 것이다. 이러한 순서화된 시퀀스는 노드(
Figure pct00161
)가 전송에 위협을 가하거나/전송을 수행하기 전에,
Figure pct00162
가 그의 양수자들(
Figure pct00163
) 중 적어도 하나에 전송을 수행하는 경우
Figure pct00164
가 성공적으로 수행할 수 있는
Figure pct00165
로의
Figure pct00166
트랜잭션이 존재할 것을 보장하게 할 수 있다.
적어도 일부 실시예에서, HTD에서 하나 이상의 전송 트랜잭션과 연관된 트랜잭션 "비용"이 존재한다. 또한, 프로토콜에 참여하는 믹서 노드들은 그들의 믹싱 서비스를 제공하기 전에 토큰의 수신을 아마도 필요로 할 것이다. 예를 들어, 믹서 노드들 중 적어도 하나의 각각에 대해, 믹서 노드의 서비스를 활성화시키기 위해 (예를 들어, 토큰들을 믹싱하기 위해 노드의 리소스들을 동원 및/또는 제어하기 위해) 특정 수량의 토큰이 믹서 노드로 전송될 필요가 있을 수 있다. 리프 노드에서 원하는/예상되는 토큰 출력의 측면에서 HTD에 도입될 토큰의 양을 결정할 때 이러한 "비용"은 개시자에 의해 고려될 수 있다.
일 예로서, 믹서 노드(
Figure pct00167
)로의 토큰의 전송이 그 믹서 노드가 수신한 토큰의 백분율로 간주될 수 있고
Figure pct00168
Figure pct00169
의 양수자에 전송해야만 하는 트랜잭션 비용을 포함하고 있다고 가정하면, HTD에서 트랜잭션들의 세트에 대한 총 믹서 노드 비용(
Figure pct00170
)은 다음과 같이 표현될 수 있다:
Figure pct00171
.
여기서,
Figure pct00172
는 믹서 노드로부터 취해져 전송된 토큰들의 비율/백분율이며,
Figure pct00173
Figure pct00174
에 예탁된 양이며,
Figure pct00175
는 계층 구조 내의 레벨의 수이다. 믹서 노드 전송은 레벨 2에서 시작하여 리프 전의 레벨에서 종료되며, 따라서 관련된 레벨들의 수는
Figure pct00176
가 된다. 함수(
Figure pct00177
)는 토큰 전송들이 분할되는 비율과는 무관하다.
커밋 채널의 비밀 값
각각의 커밋 채널(
Figure pct00178
)은 양수자(
Figure pct00179
)가 커밋 채널을 통해 토큰을 수신하기 위해 비밀 값(
Figure pct00180
)을 제공할 것을 필요로 한다. HTD 프로토콜에서, 개시자는 토큰 분산 프로세스의 일부로서 구현되는 (부모-자식 쌍들 간의) 모든 전송 프로세스에 대한 제어권을 행사한다. 비밀 값(
Figure pct00181
)은, 리프 노드로 토큰을 전송하기 위한 커밋 채널이 생성되었다는 것을 개시자가 만족할 때까지, 커밋 채널을 "잠그고" 참여자 노드들 중 임의의 노드에 의한 토큰의 인출을 방지하는 역할을 한다. HTD의 계층 구조를 따라 임의의 장소에 위치하는 커밋 채널(
Figure pct00182
)의 비밀 값은 다음의 프로세스에 따라 획득될 수 있다:
1.
Figure pct00183
는 (도 4의 프로세스(400)의 동작(408)에서 도시된 바와 같이, HTD의 초기화 동안
Figure pct00184
에 의해 선택되는) 그의 난수(
Figure pct00185
)를
Figure pct00186
에 전달하며,
Figure pct00187
는 그의 비밀 키의 암호화된 버전(
Figure pct00188
)을
Figure pct00189
에 전달하며, 여기서,
Figure pct00190
가 된다.
2. 커밋 채널(
Figure pct00191
)에 대한 비밀 값은 다음과 같이 될 것이며,
Figure pct00192
그 비밀 값에 대한 암호화된 값은
Figure pct00193
이 된다. 비밀 값(
Figure pct00194
)은
Figure pct00195
로 시작하여 반복적으로 정의된다.
3. 이 비밀 값은
Figure pct00196
이 되며, 여기서,
Figure pct00197
는 동일한 경로에서 커밋 채널(
Figure pct00198
)에 선행하는 커밋 채널들의 참여자 노드들에 의해 선택된 난수들이다. 이것은 다음의 계산으로부터 알 수 있다:
Figure pct00199
이 시점에서, 개시자가
Figure pct00200
를 HTD의 임의의 다른 노드에게는 비밀로 알려지지 않게 유지하므로, 노드(
Figure pct00201
)는 커밋 채널에 대한 비밀 값을 알지 못한다. 보다 일반적으로, 개시자가 비밀 값(
Figure pct00202
)을 공개하지 않고는 HTD의 전송 트랜잭션이 시작될 수 없다.
HTD의 트랜잭션의 실행
도 6을 이제 참조하면, 도 6은 HTD의 참여자 노드에 의해 생성된 커밋 채널의 전송 트랜잭션을 실행하기 위한 예시적인 프로세스(600)를 도시한 도면이다. 위에서 언급했듯이, 분산의 개시자(
Figure pct00203
)는 계층 구조의 모든 노드로부터 난수 값(
Figure pct00204
)을 수신하며, 따라서 모든 비밀 값을 소유하게 된다. (HTD에 사용된 커밋 채널의 비밀 값이
Figure pct00205
에 의해 정의된다는 것이 상기된다.) 모든 커밋 채널이 시간(
Figure pct00206
)에서 또는 그 이전에 생성된다고 하면, 개시자는 HTD의 모든 커밋 채널에 대한 비밀 값의 순차적인 공개를 유발한다. 특히, 단계(602)에서, 개시자는 해당 리프 노드들을 초래하는 계층 구조 내의 (연속적인 커밋 채널들의) 고유 경로들의 각각에 대해
Figure pct00207
에 의해 제공된 "최종" 비밀 값(
Figure pct00208
)을 공개한다. 개시자는
Figure pct00209
값을 대응하는
Figure pct00210
노드(즉, 경로 내의
Figure pct00211
의 부모 노드)에 직접 통신함으로써 전술한 것을 수행할 수 있거나, 또는 개시자가 (개시자가 또한 리프 노드를 소유하므로) 전송 트랜잭션(
Figure pct00212
)을 제출할 수 있고, 이로써,
Figure pct00213
로 하여금 블록체인으로부터 비밀 값(
Figure pct00214
)을 검색하게 할 수 있다. 단계(604)에서, 리프 노드에 토큰을 전송하기 위한 커밋 채널에 대한
Figure pct00215
이 경과되지 않았음을 체킹할 때, 개시자는 단계(604)에서, 블록체인에
Figure pct00216
을 제출한다.
일단
Figure pct00217
가 단계(606)에서
Figure pct00218
값을 획득하면, 단계(608)에서 (
Figure pct00219
에 의해 그 부모 노드(
Figure pct00220
)에 이전에 전달된)
Figure pct00221
Figure pct00222
로부터 단순히 감산하여,
Figure pct00223
가 그의 부모 노드로부터 토큰을 수신하는 데 필요한 비밀 값(
Figure pct00224
)을 결정할 수 있다. 보다 일반적으로, 각 노드(
Figure pct00225
)는 값(
Figure pct00226
)을 그의 양도자(
Figure pct00227
)에 직접 전달할 수 있거나, 또는
Figure pct00228
가 그렇게 수행하지 못하면, 노드(
Figure pct00229
)는
Figure pct00230
에 토큰을 전송하는 전송 트랜잭션의
Figure pct00231
값이 만료되기 전에, 블록체인 원장에서 값(
Figure pct00232
)의 검색을 시도한다.
이런 식으로, 비밀 값(
Figure pct00233
)은 계층 구조에서 경로를 상향시키고 관계(
Figure pct00234
)를 사용함으로써 현재 시간이
Figure pct00235
=
Figure pct00236
미만인 동안 (단계(608) 내지 단계(622)에서) 순차적으로 공개된다.
Figure pct00237
값은 노드(
Figure pct00238
)로 하여금
Figure pct00239
를 통해 토큰을 수신하게 할 수 있다. 이 순차적인 공개 절차의 중요한 결론은 특정 커밋 채널에 대한 비밀 값이 이 커밋 채널이 HTD의 계층 구조에서 공유되는 경로 중 임의의 것을 사용하여 결정될 수 있다는 것이다. 각각의 커밋 채널은 (전송 트랜잭션을 위해 잠금 해제 스크립트 <scriptSig>에 포함된) 하나의 비밀 값만을 갖는다. HTD의 계층 구조를 나타내는 트리 구조 내의 "에지(edge)"(즉, 부모-자식 노드 쌍 사이의 커밋 채널)가 상기 "에지"를 포함하는 모든 경로에 의해 공유되므로, 상기 에지에 대응하는 커밋 채널과 연관된 비밀 값의 계산은 상기 커밋 채널을 공유하는 임의의 경로를 사용하여 수행될 수 있다. 이것은 또한 노드(
Figure pct00240
)가 그의
Figure pct00241
의 자식 노드 중 하나 이상이
Figure pct00242
로부터 토큰을 수신하기 전에
Figure pct00243
로부터 그의 자체 토큰을 수신할 수 있다는 것을 의미한다. 특히,
Figure pct00244
는 오직 하나의 양수자만이
Figure pct00245
로부터 토큰을 인출하더라도
Figure pct00246
로부터 그의 예정된 총 토큰을 수신할 수 있다. 따라서, 각각의 노드(
Figure pct00247
)는
Figure pct00248
가 그의 자식 노드(
Figure pct00249
) 중 적어도 하나에 토큰의 전송을 수행하는 경우 토큰을 수신하는 능력을 보장받는다. HTD의 모든 전송 트랜잭션이 완료되면 오리지널 토큰 세트가 리프 노드의 입력 어드레스에 분산된다.
토큰 리턴
블록체인으로의 리턴 트랜잭션의 제출은
Figure pct00250
값에 의해 제한되며, 이 값은 블록체인에 의해 리턴 트랜잭션이 수락되지 않는 기간이다. HTD에서,
Figure pct00251
에 대해 제안된 값은
Figure pct00252
=
Figure pct00253
에 의해 제공된다.
양수자(
Figure pct00254
)가 리턴 트랜잭션(
Figure pct00255
)에 대한
Figure pct00256
의 만료 전에 비밀 값(
Figure pct00257
)을 공개하지 못하는 경우, 양도자(
Figure pct00258
)는 블록체인에 리턴 트랜잭션을 제출할 수 있다. 이 리턴 트랜잭션이 성공적으로 제출되면, 양도자(
Figure pct00259
)와 양수자(
Figure pct00260
) 간의 커밋 채널에 대한 전송 트랜잭션(
Figure pct00261
)은 실행될 수 없다. 적어도 하나의 리턴 트랜잭션이 블록체인에 제출되면, 리턴 제출 프로세스는 계층 구조의 레벨들을 통해 상방으로 개시자(
Figure pct00262
)를 포함하여 개시자에까지 반복된다.
익명성 고려 사항
위에서 설명된 바와 같이, 믹서 노드는 HTD의 멀티-레벨 계층 구조를 통해 토큰을 분산하는 동안 토큰을 믹싱하는 기능을 제공할 수 있다. 즉, 믹서 노드는 토큰 흐름의 추적을 보다 더 어렵게 할 수 있다. 이를 수행할 수 있는 한 가지 방식은, 믹서 노드가 (부모 노드로부터) 토큰을 수신하고 그 토큰을 그들의 자식 노드에 전달할 수 있는 어드레스와는 다른 기존의 어드레스를 가지도록 보장하는 것이다. 이 시나리오의 예는 도 7에 도시되어 있으며, 여기서,
Figure pct00263
Figure pct00264
로부터 토큰을 수신하는 어드레스(Addr_P1) 및 자식 노드(
Figure pct00265
)에 전달될 충분한 수량의 토큰이 사전에 이용 가능한 별도의 어드레스(Addr_P2)를 갖는다. 믹서 노드의 이러한 별도의 어드레스를 사용하여 노드에서 토큰 양의 수신과 그 노드로부터의 서브 양의 전송을 연결 해제하게 되면 HTD에서 익명화의 이점을 잠재적으로 발생시킬 수 있다. 적어도 일부 실시예에서, HTD 프로토콜은 상이한 페이-수신 어드레스(pay-receive addresses)를 갖는 최소 개수의 믹서 노드를 요구하도록 설계될 수 있다. 예를 들어, HTD의 개시자 및/또는 관리자는 계층 구조의 각 경로에서 적어도 하나의 믹서 노드가 상이한 전송-수신 어드레스 규정을 준수하도록 강제할 수 있다.
이제, 참여자 노드(800)의 단순화된 예를 블록도 형태로 도시하는 도 8을 참조할 것이다. 노드(800)는 입력 노드 또는 출력 노드일 수 있다. 노드(800)는, 하나 이상의 마이크로 프로세서, 주문형 집적 칩(ASIC), 마이크로컨트롤러, 또는 유사한 컴퓨터 처리 디바이스를 포함할 수 있는 프로세서(802)를 포함한다. 노드(800)는, 값, 변수 및 일부의 경우 프로세서 실행 가능 프로그램 명령어를 저장하기 위한 영구 및 비 영구 메모리를 포함할 수 있는 메모리(804), 및 유선 또는 무선 네트워크를 통해 네트워크 연결성을 제공하는 네트워크 인터페이스(806)를 더 포함한다.
노드(800)는, 실행될 때 프로세서(802)로 하여금 본원에 기술된 하나 이상의 기능 또는 동작을 수행하게 하는 프로세서 실행 가능 명령어를 포함하는 프로세서 실행 가능 블록체인 애플리케이션(808)을 포함한다.
본원에 기술된 디바이스 및 프로세스, 및 참여자 노드를 구성하기 위한 기술된 방법/프로세스를 구현하는 임의의 모듈, 루틴, 프로세스, 스레드, 애플리케이션, 또는 다른 소프트웨어 컴포넌트는 표준 컴퓨터 프로그래밍 기술 및 언어를 사용하여 실현될 수 있음을 이해할 것이다. 본 출원은 특정 프로세서, 컴퓨터 언어, 컴퓨터 프로그래밍 규칙, 데이터 구조, 및 다른 그러한 구현 세부 사항으로 국한되지 않는다.
주목해야 하는 것은, 전술한 실시예가 본 발명을 제한하기보다는 예시하는 것이고, 본 기술 분야의 기술자가 첨부된 청구항에 의해 정의된 본 발명의 범주를 벗어나지 않고 많은 대안의 실시예를 설계할 수 있을 것이라는 것이다. 청구항에서, 괄호 내에 배치된 임의의 참조 부호는 청구항을 제한하는 것으로 해석되어서는 안된다. "포함하는(comprising)" 및 "포함한다(comprises)" 등의 단어는 임의의 청구항 또는 명세서 전체에 열거된 것 이외의 요소 또는 단계의 존재를 배제하지는 않는다. 본 명세서에서, "포함한다"는 "구비하거나 구성된다"를 의미하고, "포함하는"은 "구비하거나 구성되는"을 의미한다. 요소의 단일 참조 형태는 그러한 요소의 복수의 형태를 배제하지 않으며 그 반대도 마찬가지이다. 본 발명은 수 개의 별개의 요소를 포함하는 하드웨어 및 적절하게 프로그래밍된 컴퓨터에 의해 구현될 수 있다. 수 개의 수단을 열거하는 디바이스 청구항에서, 이들 수단 중 일부는 하나의 동일한 하드웨어 아이템에 의해 구현될 수 있다. 특정 측정값들이 서로 다른 종속항들에 열거되어 있다는 단순한 사실은 이러한 측정값들의 조합이 더 나은 효과를 가져오는 데 사용될 수 없다는 것을 나타내는 것은 아니다.

Claims (15)

  1. 입력 노드와 연관된 입력 어드레스에서 토큰의 수량을 복수의 서브 수량으로 분할하고, 상기 서브 수량을 블록체인을 사용하여 제각기의 출력 노드와 연관된 다수의 출력 어드레스에 분산하기 위한 토큰 분산 프로세스에 참여하기 위한 컴퓨터 구현 방법으로서,
    믹서 노드(
    Figure pct00266
    )와 연관된 업스트림 노드(
    Figure pct00267
    ) 및 복수의 다운스트림 노드(
    Figure pct00268
    )를 식별하는 단계;
    상기 업스트림 노드와 협력하여 상기 업스트림 노드와 상기 믹서 노드 간의 제1 트랜잭션을 위한 제1 커밋 채널(first commitment channel)(
    Figure pct00269
    )을 생성하는 단계;
    상기 복수의 다운스트림 노드의 각각에 대해: 상기 다운스트림 노드와 협력하여 상기 믹서 노드와 상기 다운스트림 노드 간의 제2 트랜잭션을 위한 제2 커밋 채널(
    Figure pct00270
    )을 생성하는 단계를 포함하며,
    상기 제1 트랜잭션에 대한 잠금 해제 스크립트가 상기 제2 트랜잭션 중 임의의 하나에 대한 잠금 해제 스크립트로부터 도출되는
    컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 제2 커밋 채널을 생성하는 단계는,
    상기 다운스트림 노드와 협력하여, 상기 다운스트림 노드에 전송하기 위해 일정 수량의 토큰(
    Figure pct00271
    )을 커밋하기 위한 제1 블록체인 트랜잭션(
    Figure pct00272
    )을 생성하는 것; 상기 커밋된 수량의 토큰(
    Figure pct00273
    )을 상기 믹서 노드에 리턴하는 제2 블록체인 트랜잭션(
    Figure pct00274
    )을 생성하는 것; 및 상기 다운스트림 노드로의 상기 커밋된 수량의 토큰(
    Figure pct00275
    )의 전송을 실행하기 위한 제3 블록체인 트랜잭션(
    Figure pct00276
    )을 생성하는 것을 포함하는
    컴퓨터 구현 방법.
  3. 제2항에 있어서,
    상기 일정 수량의 토큰(
    Figure pct00277
    )은, 상기 복수의 다운스트림 노드의 각각으로 전송하기 위한 제각기의 수량을 식별하는 상기 믹서 노드에 대한 값 할당 방식에 기초하여 결정되는
    컴퓨터 구현 방법.
  4. 제2항 또는 제3항에 있어서,
    상기 제3 블록체인 트랜잭션(
    Figure pct00278
    )은 상기 제2 커밋 채널과 연관된 제2 비밀 값(
    Figure pct00279
    )을 포함하는 잠금 해제 스크립트를 포함하는
    컴퓨터 구현 방법.
  5. 제4항에 있어서,
    상기 제2 커밋 채널과 연관된 상기 제2 비밀 값(
    Figure pct00280
    )을 획득하는 단계를 더 포함하는
    컴퓨터 구현 방법.
  6. 제5항에 있어서,
    상기 제2 비밀 값(
    Figure pct00281
    )을 사용하여 상기 제1 커밋 채널과 연관된 제1 비밀 값(
    Figure pct00282
    )을 도출하는 단계를 더 포함하는
    컴퓨터 구현 방법.
  7. 제6항에 있어서,
    상기 제1 비밀 값(
    Figure pct00283
    )은 상기 입력 노드와 연관된 비밀 키 값(
    Figure pct00284
    )에 기초하고, 상기 비밀 키 값(
    Figure pct00285
    )은 모든 믹서 노드에 알려지지 않은
    컴퓨터 구현 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    믹서 키 값(
    Figure pct00286
    )을 상기 업스트림 노드 및 상기 입력 노드에 전송하는 단계를 더 포함하는
    컴퓨터 구현 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 믹서 노드는 제1 어드레스 및 복수의 제2 어드레스를 포함하되, 상기 믹서 노드는 상기 제1 어드레스에서 상기 업스트림 노드로부터의 제1 수량의 토큰의 전송을 검출하고, 상기 믹서 노드는 상기 복수의 제2 어드레스로부터 상기 제1 수량의 서브 수량을 상기 다운스트림 노드로 전송하는
    컴퓨터 구현 방법.
  10. 제9항에 있어서,
    상기 복수의 제2 어드레스에서의 토큰의 총 수량은 적어도 상기 제1 수량과 동일한
    컴퓨터 구현 방법.
  11. 제2항 내지 제10항 중 어느 한 항에 있어서,
    상기 제2 블록체인 트랜잭션(
    Figure pct00287
    )은 상기 제2 블록체인 트랜잭션이 블록체인에 제출할 권한이 있게 되는 시점을 특정하는 트랜잭션 파라미터(
    Figure pct00288
    )를 포함하는
    컴퓨터 구현 방법.
  12. 제2항 내지 제11항 중 어느 한 항에 있어서,
    상기 제1 블록체인 트랜잭션(
    Figure pct00289
    )은 상기 제2 블록체인 트랜잭션(
    Figure pct00290
    )이 상기 다운스트림 노드에 의해 서명된 후 상기 블록체인에 제출되는
    컴퓨터 구현 방법.
  13. 제1항 내지 제12항 중 어느 한 항에 있어서,
    상기 제1 커밋 채널은 임의의 제2 커밋 채널이 생성되기 전에 생성되는
    컴퓨터 구현 방법.
  14. 입력 노드, 다수의 출력 노드, 및 복수의 믹서 노드를 포함하는 토큰 분산 프로세스에 참여하기 위한 컴퓨팅 디바이스로서,
    프로세서;
    메모리;
    네트워크 연결성을 제공하는 네트워크 인터페이스; 및
    상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 제1항 내지 제13항 중 어느 한 항에 청구된 방법을 수행하게 하는 컴퓨터 실행 가능 명령어를 포함하는 블록체인 애플리케이션을 포함하는
    컴퓨팅 디바이스.
  15. 입력 노드, 다수의 출력 노드, 및 복수의 믹서 노드를 포함하는 토큰 분산 프로세스에 참여하기 위한 프로세서 실행 가능 명령어를 저장하는 비 일시적 프로세서 판독 가능 매체로서,
    상기 프로세서 실행 가능 명령어는 상기 노드들 중 한 노드의 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 제1항 내지 제13항 중 어느 한 항에 청구된 방법을 수행하게 하는
    비 일시적 프로세서 판독 가능 매체.
KR1020207000301A 2017-06-28 2018-06-22 블록체인 네트워크에서 계층적 토큰 분산을 위한 시스템 및 방법 KR102569552B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020237028019A KR20230127357A (ko) 2017-06-28 2018-06-22 블록체인 네트워크에서 계층적 토큰 분산을 위한 시스템및 방법

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1710283.1 2017-06-28
GBGB1710283.1A GB201710283D0 (en) 2017-06-28 2017-06-28 Computer-implemented system and method
PCT/IB2018/054629 WO2019003072A1 (en) 2017-06-28 2018-06-22 SYSTEM AND METHOD FOR HIERARCHICAL DISTRIBUTION OF TOKENS ON A BLOCK CHAIN NETWORK

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020237028019A Division KR20230127357A (ko) 2017-06-28 2018-06-22 블록체인 네트워크에서 계층적 토큰 분산을 위한 시스템및 방법

Publications (2)

Publication Number Publication Date
KR20200019944A true KR20200019944A (ko) 2020-02-25
KR102569552B1 KR102569552B1 (ko) 2023-08-22

Family

ID=59523515

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020207000301A KR102569552B1 (ko) 2017-06-28 2018-06-22 블록체인 네트워크에서 계층적 토큰 분산을 위한 시스템 및 방법
KR1020237028019A KR20230127357A (ko) 2017-06-28 2018-06-22 블록체인 네트워크에서 계층적 토큰 분산을 위한 시스템및 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020237028019A KR20230127357A (ko) 2017-06-28 2018-06-22 블록체인 네트워크에서 계층적 토큰 분산을 위한 시스템및 방법

Country Status (9)

Country Link
US (3) US11240032B2 (ko)
EP (1) EP3646528A1 (ko)
JP (3) JP7201624B2 (ko)
KR (2) KR102569552B1 (ko)
CN (2) CN118138232A (ko)
GB (1) GB201710283D0 (ko)
SG (1) SG11201911532XA (ko)
WO (1) WO2019003072A1 (ko)
ZA (1) ZA202000535B (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109377215B (zh) 2018-08-06 2020-04-21 阿里巴巴集团控股有限公司 区块链交易方法及装置、电子设备
KR102150814B1 (ko) 2018-11-27 2020-09-02 알리바바 그룹 홀딩 리미티드 정보 보호를 위한 시스템 및 방법
ES2833552T3 (es) 2018-11-27 2021-06-15 Advanced New Technologies Co Ltd Sistema y método para la protección de información
EP3549303B1 (en) 2018-11-27 2021-05-26 Advanced New Technologies Co., Ltd. System and method for information protection
US11127002B2 (en) 2018-11-27 2021-09-21 Advanced New Technologies Co., Ltd. System and method for information protection
GB201913667D0 (en) * 2019-09-23 2019-11-06 Nchain Holdings Ltd Computer-implemented system and method
WO2021191656A1 (ja) 2020-03-23 2021-09-30 中谷忠久 デジタルアセットトークンの生成、発行、売買移転のピアツーピア分散型台帳への記録方法及びデジタルアセットトークン統合システム
CN113301002B (zh) * 2020-04-24 2023-05-09 阿里巴巴集团控股有限公司 一种信息处理方法、装置、电子设备以及存储介质
CN111935000B (zh) * 2020-09-25 2021-01-08 支付宝(杭州)信息技术有限公司 消息传输方法及装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7565537B2 (en) * 2002-06-10 2009-07-21 Microsoft Corporation Secure key exchange with mutual authentication
EP2704378B1 (en) * 2012-08-27 2016-07-20 Itron, Inc. Bandwidth Management in an Advanced Metering Infrastructure
EP2896172B1 (en) * 2012-09-14 2017-04-19 Telefonaktiebolaget LM Ericsson (publ) Qos-based cooperative scheduling for handling of data traffic
US10970748B2 (en) * 2014-02-24 2021-04-06 Ncr Corporation Channel integration
SG11201702277UA (en) * 2014-10-10 2017-04-27 Visa Int Service Ass Methods and systems for partial personalization during mobile application update
WO2017122187A2 (fr) 2016-01-15 2017-07-20 Enrico Maim Procédés et systèmes mis en œuvre dans une architecture en réseau de nœuds susceptibles de réaliser des transactions basées sur messages
EP3286699A1 (en) 2015-04-20 2018-02-28 OGY Docs Inc. A method of distributed management of electronic documents of title (edt) and system thereof
CN105976231A (zh) * 2016-06-24 2016-09-28 深圳前海微众银行股份有限公司 基于区块链智能合约的资产管理方法及节点
CN106530088B (zh) * 2016-12-19 2023-11-17 杜伯仁 基于区块链安全节点对证券产品进行交易的方法
WO2018120121A1 (zh) * 2016-12-30 2018-07-05 深圳前海达闼云端智能科技有限公司 区块链权限控制方法、装置及节点设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DECKER CHRISTIAN et al., "A Fast and Scalable Payment Network with Bitcoin Duplex Micropayment Channels" (2015.08.04.)* *
FLORIAN TSCHORSCH et al., "Bitcoin and Beyond: A Technical Survey on Decentralized Digital Currencies" (2015.05.15.)* *

Also Published As

Publication number Publication date
US20240089106A1 (en) 2024-03-14
CN110832807B (zh) 2024-04-02
US20220191029A1 (en) 2022-06-16
JP2023036803A (ja) 2023-03-14
CN118138232A (zh) 2024-06-04
KR102569552B1 (ko) 2023-08-22
JP7201624B2 (ja) 2023-01-10
JP2024109955A (ja) 2024-08-14
US11240032B2 (en) 2022-02-01
CN110832807A (zh) 2020-02-21
GB201710283D0 (en) 2017-08-09
US20210152358A1 (en) 2021-05-20
EP3646528A1 (en) 2020-05-06
SG11201911532XA (en) 2020-01-30
KR20230127357A (ko) 2023-08-31
WO2019003072A1 (en) 2019-01-03
JP7498765B2 (ja) 2024-06-12
ZA202000535B (en) 2024-07-31
JP2020526062A (ja) 2020-08-27
US11838420B2 (en) 2023-12-05

Similar Documents

Publication Publication Date Title
KR102569552B1 (ko) 블록체인 네트워크에서 계층적 토큰 분산을 위한 시스템 및 방법
US12073387B2 (en) System and method of multi-round token distribution using a blockchain network
US12131313B2 (en) System and method of multi-round token distribution using a blockchain network

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant