KR20200019944A - 블록체인 네트워크에서 계층적 토큰 분산을 위한 시스템 및 방법 - Google Patents
블록체인 네트워크에서 계층적 토큰 분산을 위한 시스템 및 방법 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 87
- 238000011144 upstream manufacturing Methods 0.000 claims abstract description 17
- 238000013515 script Methods 0.000 claims abstract description 15
- 238000012546 transfer Methods 0.000 claims description 41
- 230000005540 biological transmission Effects 0.000 claims description 19
- 239000003999 initiator Substances 0.000 description 30
- 229920003266 Leaf® Polymers 0.000 description 24
- 238000010586 diagram Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 7
- BQCADISMDOOEFD-UHFFFAOYSA-N Silver Chemical compound [Ag] BQCADISMDOOEFD-UHFFFAOYSA-N 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 229910052709 silver Inorganic materials 0.000 description 4
- 239000004332 silver Substances 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000007115 recruitment Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0822—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3297—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/088—Usage 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
- H04L9/3213—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3215—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a plurality of channels
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H04L2209/38—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- 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
블록체인 구현 토큰 분산 프로세스에 참여하는 방법이 개시된다. 토큰 분산 프로세스는 입력 노드와 연관된 입력 어드레스에서 최초 수량의 토큰을 복수의 서브 수량으로 분할하고, 상기 서브 수량을 블록체인을 사용하여 제각기의 출력 노드와 연관된 다수의 출력 어드레스에 분산한다. 토큰 분산 프로세스는 입력 노드, 출력 노드 및 복수의 믹서 노드에 의해 집합적으로 구현된다. 믹서 노드()에서 구현될 수 있는 방법은: 믹서 노드와 연관된 업스트림 노드() 및 복수의 다운스트림 노드()를 식별하는 단계; 업스트림 노드와 협력하여 업스트림 노드와 믹서 노드 간의 제1 트랜잭션을 위한 제1 커밋 채널()을 생성하는 단계; 및 복수의 다운스트림 노드의 각각에 대해: 다운스트림 노드와 협력하여 믹서 노드와 다운스트림 노드 간의 제2 트랜잭션을 위한 제2 커밋 채널()을 생성하는 단계를 포함하고, 제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은 간이화된 참여자 노드의 블록도를 도시한 도면이다.
도 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는 양도자 노드()에서 양수자 노드()로의 단방향 커밋 채널()을 생성하기 위한 예시적인 프로세스(200)를 흐름도 형태로 도시한 도면이다. 프로세스(200)는 한 쌍의 참여자 노드( 및 )에 의해 구현된다. 예를 들어, 단방향 커밋 채널은 당사자()가 당사자()에게 (예를 들어, 서비스에 대해) 일정 기간 동안 다수의 전송을 통해 지불하기를 열망하는 시나리오에서 사용하기에 적합하다. 보다 일반적으로, 커밋 채널()은 참여자 노드들( 및 ) 간의 토큰의 가능한 세트의 교환을 가능하게 할 수 있다.
단계(202)에서, 양도자()는 커밋 트랜잭션(commitment transaction)()을 생성한다. 커밋 트랜잭션은 특정된 토큰 세트()가 에 전송되는/전송을 위해 커밋되는 커밋 채널의 커밋 컴포넌트를 나타낸다. 커밋 트랜잭션은, 일부 실시예에서, 2-of-2 멀티-시그니처(multi-signature) 페이-투-스크립트-해시(pay-to-script-hash)(P2SH) 트랜잭션일 수 있다. 이 시점에서, 트랜잭션은 블록체인 네트워크에 제출되지 않는다.
단계(204)에서, 멀티-시그니처 제어된 토큰으로부터의 모든 토큰을 에 다시 리턴하는 개별 리턴 트랜잭션()은 에 의해 생성된다. 이 트랜잭션은 블록체인 트랜잭션이 특정 시점 이후에만 실행 가능하도록 하는 파라미터()를 포함한다. 리턴 트랜잭션은, 양수자 노드()가 할당된 시간 내에(예를 들어, 최대 ) 커밋 트랜잭션에 대한 명시된 기준을 완료할 수 없다면, 커밋된 토큰이 노드()에 리턴되게 할 수 있다.
단계(206)에서, 양도자()는 리턴 트랜잭션에 서명한다. 단계(208)에서, 가 리턴 트랜잭션에 서명했다고 판정되면, 는 단계(210)에서, 오리지널 커밋 트랜잭션()에 서명하고 이를 블록체인에 제출한다. 이 시점에서, 노드( 및 )는 하나 이상의 새로운 리턴 트랜잭션의 생성을 진행하여, 단계(212 내지 226)에 도시된 바와 같이, 블록체인 외부에서 행해지는 토큰 전송을 반영할 수 있다. 특히, 이러한 리턴 트랜잭션은 그 시점에 가 에 대해 수행해야 하는 토큰의 순 전송(net transfer of tokens)을 반영할 것이다. 참여자 노드가 임의의 리턴 트랜잭션()에 서명을 거부하면, 그 노드는 이후에 '이전' 리턴 트랜잭션()을 블록체인에 제출할 수 있다. 예를 들어, 최악의 시나리오에서, 는 에 서명하고 이를 블록체인 네트워크에 제출함으로써 에 의해 에 커밋된 모든 토큰을 회수할 수 있다.
도 2에 도시된 바와 같이, 와 사이의 (오프-블록) 리턴 트랜잭션의 반복은, 에서 로의 토큰의 순 전송을 나타내는 최종 리턴 트랜잭션이 구성되어 블록체인 네트워크에 제출될 때까지 생성될 수 있다. 보다 구체적으로, 최초 리턴 트랜잭션() 상의 값이 으로 표시되는 경우, 은 와 사이에서 행해진 진행중인 오프-블록 전송에서 생성된 리턴 트랜잭션의 수이며, 는 노드가 이전 리턴 트랜잭션을 제출하는 다른 노드에 위협을 가하기 전에 모든 당사자가 리턴 트랜잭션에 동의하는 데 할당된 시간이고, 노드들은 동안(즉, 최초 리턴 트랜잭션에 대한 이 경과되기 전 동안) 새로운 전송을 지속적으로 협상할 수 있고(단계(216), 의 값은 단계(240)에서 최종 리턴 트랜잭션이 블록체인에 제출될 때까지 각각의 연속적인 리턴 트랜잭션으로 감소된다.
계층적 토큰 분산
본 개시 내용은 블록체인 내의 특정 어드레스에서의 토큰을 다수의 출력 어드레스에 분산하기 위한 기술을 설명한다. 최초 어드레스에서의 토큰 양은 다수의 서브 양으로 분할되고, 이 서브 양은 다시 출력 어드레스의 세트에 걸쳐 분산된다. 본 개시 내용에서 제안된 토큰 분산 방식(계층적 토큰 분산(Hierarchical Token Distribution) 방식("HTD"))은 참여자 노드들(개념적 "계층 구조"에서 노드들로 표시됨) 사이의 "계층적" 전송 구조를 이용한다. 특히, HTD는 최초 어드레스로부터 노드의 멀티-레벨 계층 구조를 통해 토큰을 전송한다. 일부 경우에, HTD는 블록체인 네트워크에서 트랜잭션을 익명화하기 위한 해결책의 일부로서 또는 이에 대한 추가로 사용될 수 있다. HTD의 예시적인 구현예는 이제 도 3 내지 도 10을 참조하여 기술될 것이다.
토큰 분산 개시
도 4를 참조하면, 도 4는 HTD 프로토콜의 인스턴스를 개시하기 위한 예시적인 프로세스(400)를 도시하는 도면이다. 노드는 HTD 인스턴스에 가입하여 노드와 연관된 어드레스에서 토큰을 분할하고 분산할 수 있다. 상술한 바와 같이, HTD는 복수의 노드를 멀티-레벨 계층 구조 내로 개념적으로 배열함으로써 진행된다. HTD의 개시자는 루트 노드()로 표시되며, 토큰 분산의 출력 어드레스는 계층 구조에서 리프 노드로 표시된다. HTD 인스턴스는 개시자 자체에 의해 또는 다른 노드 및/또는 제어 시스템에 의해 관리될 수 있으며, 이 경우 개시자는 노드/제어 시스템에 의해 제공된 HTD 서비스를 사용할 것을 요청할 것이다.
단계(402)에서, HTD 서비스의 다양한 파라미터를 포함하는 초기화 데이터는 관리자 및/또는 개시자에 의해 수집되거나 선택될 수 있으며, 다음을 포함한다:
● 출력 또는 "리프"의 수. 적어도 일부 실시예에서, 출력의 수는 다음의 함수의 범위 내의 값들의 세트로부터 선택될 수 있다:
단계(404)에서, HTD는 계층 구조에서 "믹서 노드"로서 작용하는 참여자 노드의 세트를 모집한다. 모집은 HTD 및/또는 개시자의 관리자에 의해 수행될 수 있거나 탈중앙화될 수 있다(예를 들어, 참여자 노드는 HTD에 "참여하여" 믹서 노드로서 역할을 할 수 있으며, 예를 들어, "믹싱” 서비스를 제공하기 위한 지불을 수신할 수 있다). 믹서 노드는 계층 구조의 트리 구조에서 루트가 아닌 내부 노드이다. 각각의 믹서 노드는 자신의 "부모"(또는 업스트림) 노드로부터 제1 수량의 토큰을 수신하고 상기 제1 수량의 서브 양을 자신의 "자식"(또는 다운스트림) 노드에 전송하도록 구성된다. 파라미터 및 가 주어지면, HTD 인스턴스의 계층 구조에서 믹서 노드의 수()는 다음에 의해 계산될 수 있다:
일부 실시예에서, 믹서 노드는 HTD 내에서 "믹싱" 기능을 제공할 수 있다. 믹싱을 가능하게 하기 위해, 모집된 각 참여자 노드는 적어도 최소의 토큰 수량()을 소유하는 것으로 예상될 수 있으며, 여기서, 이다. 이 최소 수량은 믹서 노드가 위치한 계층 구조 내의 레벨에 따라 달라질 수 있다.
HTD 프로토콜의 핵심 컴포넌트는 그 프로토콜이 부분적인 완료의 위험 및 결과적으로 토큰의 원하는 최종 분산을 실현하지 못할 위험없이 완전하게 구현되도록 보장하는 보안 메커니즘의 구현에 있다. HTD에 필요한 보안을 달성하기 위해, 이 해결책은 타원 곡선 암호화(Elliptical Curve encryption)의 공개-비밀 키 관계의 동형 특성(homomorphic properties)을 이용하며, 여기서,
및 는 타원 곡선의 기준점이 된다. HTD 프로토콜의 보안은 HTD의 계층 구조에서 부모-자식 노드 쌍 사이의 모든 토큰 트랜잭션에 대한 "커밋 채널"의 사용과 그 프로토콜의 참여자 노드들 사이에 수립된 커밋 채널을 통해 개시자()에 의해 행사되는 제어권에 의존한다.
이 보안 메커니즘을 설정할 때, 개시자는 먼저 단계(406)에서 난수(또는 키)()를 선택하고, 를 계산하며, 여기서 는 타원 곡선 상의 기준점을 나타낸다. 의 값은 HTD 전체에서 개시자에 의해 비밀로 유지된다. 다른 모든 참여자 노드()는 단계(408)에서, 각각의 난수/키()를 선택하며, 이 값을 개시자에게 안전하게 전송한다. 개시자는 그 후 단계(410)에서, 난수 값들의 세트()를 선택하며, 여기서 이러한 난수의 각각은 계층 구조의 리프(출력) 노드에 대응한다. 즉, 개시자는 난수()를 각각의 리프 노드에 할당한다.
HTD 서비스에 의해 충분한 수의 믹싱 노드가 모집되면, 노드들의 계층 구조는 개시자에 의해 선택된 출력 값들 또는 리프들의 수에 기초하여 "구성"된다. 노드들의 예시적인 계층 구조(300)가 도 3에 도시되어 있으며, 여기서 이고 레벨들의 수()는 4와 동일하다. 계층 구조는 루트 노드(302), 8 개의 리프 노드(304), 및 루트 노드(302)와 리프 노드(304) 사이의 8 개의 상이한 경로를 따라 고유한 위치에 배치된 복수의 믹서 노드(306)를 포함한다. 루트 노드(302)와 연관된 어드레스에서의 최초 토큰 수량은 계층 구조(300)에 기초한 분산 방식을 사용하여 출력 리프 노드(304)에 분산될 수 있다. (보편성의 상실 없이, 노드를 라벨링하기 위해 본원 전체에 걸쳐 다음의 표기법이 사용될 것이며: 노드가 로 라벨링된 경우, 의 부모 노드는 이고, 의 자식 노드는 이며, 여기서, 이 된다.)
HTD의 “계층 구조”는 참여자 노드들 사이의 토큰 트랜잭션들의 세트를 나타내며, 특정 블록체인 어드레스에서의 최초 토큰 수량을 다수의 상이한 출력 어드레스에 분산시킨다. 특히, 계층 구조에서 노드들의 상대적 위치들은 최초 어드레스에서의 토큰을 분산시킬 때 HTD 프로토콜에 의해 사용되는 트랜잭션들을 정의한다. 루트 노드 이외의 계층 구조의 각 노드는 그 부모 노드로부터 토큰의 전송을 수신하고, 계층 구조 내의 모든 비 리프 노드는 제각기의 양의 토큰을 그의 각각의 자식 노드에 전송한다. 보다 구체적으로, 계층 구조 내의 각 믹서 노드는 두 가지 타입의 트랜잭션에 참여한다. 즉 (1) 그 부모 노드로부터 특정 수량()의 토큰의 전송을 수신하며, (2) 의 각 서브 양을 그 자식 노드에 전송한다. 따라서, 계층 구조 내의 노드의 위치는 대응하는 참여자 노드가 관여할 트랜잭션들의 세트를 완전히 정의한다.
HTD의 익명화 능력을 돕기 위해, 계층 구조를 구성하는 동안 다양한 랜덤화(randomization) 프로세스가 수행되어 개별 믹싱 노드들의 위치를 결정할 수 있다. 랜덤화는 레벨 별로 수행될 수 있거나(즉, 참여자 노드는 계층 구조의 레벨로 지정되지만 그 레벨에서의 그의 위치는 랜덤하게 결정됨), 또는 노드는 계층 구조 내에서 임의의 랜덤 믹싱 노드 위치에 배치될 수 있다.
HTD에서 믹서 노드들의 계층적 배열로 인해, 랜덤화 선택은 믹서 노드들에서 사전에 사용 가능한 토큰의 수량에 영향을 미칠 것이다. 믹서 노드가 HTD 동안 토큰들의 전송을 믹싱할 수 있기 위해서는 분산을 위해 임의의 토큰을 수신하기 전에 적어도 최소량의 토큰을 보유해야만 한다. 예를 들어, 믹서 노드들을 모집하는 동안 믹서 노드들 중 적어도 하나가 개의 개별 어드레스에서 사전에 사용 가능한 자식 노드에 분산하도록 요청된 수량과 동일한 수량의 토큰을 가질 것을 요구하는 제한이 가해질 수 있다. 이는, 자식 노드들 간에 토큰이 분할되는 비율에 따라, 믹서 노드가 계층 구조에서 보다 상위에 존재할수록 HTD에 참여하기 위해 더 많은 토큰을 보유해야 한다는 것을 의미할 것이다(그 이유는 계층 구조에서 보다 상위의 노드가 분산을 위해 더 많은 토큰 수량을 수신하기 때문이다). 따라서, 믹서 노드들이 계층 구조의 특정 레벨용으로 모집되는 경우, 랜덤화는 믹서 노드들이 계층 구조의 해당 레벨을 가로 질러 "수평으로" 이동하는 것과 그 레벨이 자신의 값을 갖는 것으로 제한될 것이다. 반면, 믹서 노드들이 레벨에 대한 제한없이 모집되는 경우, 믹서 노드들은 계층 구조의 믹싱 레벨들 중의 임의의 레벨의 임의의 위치에 랜덤하게 배치될 수 있으며, 값은 모든 믹싱 노드들에 대해 보편적일 것이다.
단계(412)에서 계층 구조 내의 믹서 노드들의 위치를 결정한 후, 개시자는 단계(414)에서 루트 노드 및 리프 노드를 포함하여 계층 구조를 (개념적으로) 구성하고, 단계(416)에서, 각 참여자 노드()에, 토큰을 수신할 것으로 예상되는 노드 및 토큰을 각각 전송할 것으로 예상되는 노드를 전달한다.
HTD에서의 커밋 채널
일단 계층 구조의 설계가 수립되고 각 참여자 노드가 제각기의 양도자(업스트림 노드)와 양수자(다운스트림 노드)를 인식하면, 모든 참여자 노드와 그들의 양수자들 간의 단방향 커밋 채널들의 세트가 설정된다. HTD에서 부모-자식 노드 쌍들 간의 모든 토큰 트랜잭션은 "커밋 채널"의 사용을 통해 수행된다. HTD에서, 커밋 채널은 세 개의 개별 트랜잭션들, 즉, 커밋 트랜잭션(), 리턴 트랜잭션(), 및 전송 트랜잭션()에 의해 정의된다. 도 5a는 3 개의 트랜잭션들 간의 관계를 나타내는 개략도를 도시한 도면이다. 따라서, 보편성의 상실 없이, HDD에서 양도자 노드()로부터 양수자 노드()로의 토큰들의 각각의 전송마다, 3 개의 블록체인 트랜잭션이 생성된다:
● 리턴 트랜잭션()은 이전에 커밋된 토큰들(x)을 에 다시 리턴한다. 이 트랜잭션은 특정 시점 이후에 블록체인에 제출될 수 있는 자격이 된다. 리턴 트랜잭션이 성공적으로 실행되게 하려면, 사용자( 및 )의 시그니처가 필요하다.
HTD의 일부로서 생성된 각 커밋 채널은 양수자가 임의의 토큰 전송을 수신하기 위해 제공해야만 하는 비밀 값에 의해 “잠금” 상태에 있다. 양도자 노드()와 양수자 노드() 간의 커밋 채널()을 구성하기 위한 예시적인 프로세스(500)가 도 5b에 도시되어 있다:
1. 동작(502): 양수자()는 난수()를 선택한다. 각 커밋 채널은 외부 노드가 HTD의 동일한 인스턴스의 요소인 트랜잭션들의 세트를 연관시키는 것을 더 어렵게 하기 위해 다른 난수를 이용할 수 있다. 특히, 블록체인에서 볼 수 있는 상이한 트랜잭션들을 HTD의 공통 인스턴스에 연결할 수 있다는 것은, 트랜잭션들이 모두 동일한 비밀로 태그되는 것은 아니기 때문에, 더욱 복잡해질 수 있다.
4. 동작(506): 양도자()는 암호화된 값()을 이용하고, 커밋 트랜잭션()을 생성하며, 이 커밋 트랜잭션은 (1) 및 모두의 시그니처, 또는 (2) 및 의 시그니처에 의해서만 전송될 수 있는 토큰 수량()을 커밋한다.
5. 동작(508): 양도자()는 리턴 트랜잭션()을 생성하고, 이 리턴 트랜잭션은 에 커밋된 값()을 리턴한다. 리턴 트랜잭션은 시점을 특정하는 파라미터()를 포함하며, 이 시점에 또는 시점 이후에 리턴 트랜잭션은 블록체인에 제출될 수 있는 자격이 된다. 제안된 값은 다음과 같이 계산될 수 있다:
여기서, 는 계층 구조 내의 레벨의 수이며, 는 계층 구조에서 의 레벨이고, 는 블록체인 네트워크에 제출된 노드로의 제1 전송의 시작 시간이며, 는 HTD 서비스에 의해 선택되는 시간 값으로, 커밋 채널을 구성하고, 토큰을 에 전송하고 전송 트랜잭션()을 블록체인 네트워크에 제출하는 상기 커밋 채널을 위해 필요한 비밀 값을 검색하기 위해 각각의 가 제공받는 시간량을 나타낸다.
8. 동작(514): 전송 트랜잭션())이 생성되어, 커밋 트랜잭션의 커밋된 토큰들()을 에 전송한다. 전송 트랜잭션을 위한 잠금 해제 스크립트 또는 <scriptSig>는 전송 트랜잭션이 블록체인에 성공적으로 제출될 경우 값()을 포함할 필요가 있다.
HTD에서, 제1 커밋 채널()을 통해 수신되는 토큰들은 수 개의 서브 양으로 분할되며, 이 서브 양은 다시 를 통해 제2 커밋 채널()에 전송된다. 자식 노드로의 전송을 위한 각각의 비 리프 노드에서의 토큰의 수량의 분할은 각각의 노드에 대한 값 할당 방식에 의해 통제될 수 있다. 예를 들어, 노드에 대한 값 할당 방식은 상기 노드에서 수신된 토큰 수량이 그의 자식 노드들 사이에서 분할될 수 있는 비율(예를 들어, 50:50, 40:35:25 등)을 나타낼 수 있다. 계층 구조에서 각각의 비 리프 노드에 대해 값 할당 방식이 독립적으로 결정될 수 있거나, 모든 비 리프 노드에 대해 동일한 값 할당 방식이 적용될 수 있다. 일부 실시예에서, 원하는 서브 양이 HTD 계층 구조에서 그들의 각각의 목적지 (출력) 어드레스에 도달하는 것을 보장하는 데 값 할당 방식이 이용될 수 있다.
HTD에서 믹서 노드로서 서비스를 제공하는 참여자 노드는 분산 프로세스 동안 그 노드가 자식 노드로 전송하는 서브 양들의 합계와 적어도 동일한 토큰의 수량의 전송을 자신의 업스트림 (부모) 노드로부터 수신하는 것을 보장받기를 원할 것이다. 이것은, 노드가 중간에 임의의 트랜잭션을 취소할 수 있게 하지 않고도 프로토콜의 트랜잭션이 완료되게 보장하는 것을 지원함으로써, 커밋 채널의 사용에 의해 HTD 참여자 노드에 대한 보안 측정치가 제공될 수 있는 경우이다. 로부터 리프 노드로의 라우트(route)를 추적하는 계층 구조 내의 모든 경로마다, 부모-자식 노드 쌍들 간의 커밋 채널들이 특정 순서로 생성된다. 특히, 커밋 채널()은 임의의 커밋 채널() 전에 생성된다. 즉, 토큰을 사용자()에게 전송하는 트랜잭션을 위한 커밋 채널은 로부터 에 전송되는 트랜잭션을 위한 임의의 커밋 채널 이전에 수립될 것이다. 이러한 순서화된 시퀀스는 노드()가 전송에 위협을 가하거나/전송을 수행하기 전에, 가 그의 양수자들() 중 적어도 하나에 전송을 수행하는 경우 가 성공적으로 수행할 수 있는 로의 트랜잭션이 존재할 것을 보장하게 할 수 있다.
적어도 일부 실시예에서, HTD에서 하나 이상의 전송 트랜잭션과 연관된 트랜잭션 "비용"이 존재한다. 또한, 프로토콜에 참여하는 믹서 노드들은 그들의 믹싱 서비스를 제공하기 전에 토큰의 수신을 아마도 필요로 할 것이다. 예를 들어, 믹서 노드들 중 적어도 하나의 각각에 대해, 믹서 노드의 서비스를 활성화시키기 위해 (예를 들어, 토큰들을 믹싱하기 위해 노드의 리소스들을 동원 및/또는 제어하기 위해) 특정 수량의 토큰이 믹서 노드로 전송될 필요가 있을 수 있다. 리프 노드에서 원하는/예상되는 토큰 출력의 측면에서 HTD에 도입될 토큰의 양을 결정할 때 이러한 "비용"은 개시자에 의해 고려될 수 있다.
일 예로서, 믹서 노드()로의 토큰의 전송이 그 믹서 노드가 수신한 토큰의 백분율로 간주될 수 있고 가 의 양수자에 전송해야만 하는 트랜잭션 비용을 포함하고 있다고 가정하면, HTD에서 트랜잭션들의 세트에 대한 총 믹서 노드 비용()은 다음과 같이 표현될 수 있다:
여기서, 는 믹서 노드로부터 취해져 전송된 토큰들의 비율/백분율이며, 는 에 예탁된 양이며, 는 계층 구조 내의 레벨의 수이다. 믹서 노드 전송은 레벨 2에서 시작하여 리프 전의 레벨에서 종료되며, 따라서 관련된 레벨들의 수는 가 된다. 함수()는 토큰 전송들이 분할되는 비율과는 무관하다.
커밋 채널의 비밀 값
각각의 커밋 채널()은 양수자()가 커밋 채널을 통해 토큰을 수신하기 위해 비밀 값()을 제공할 것을 필요로 한다. HTD 프로토콜에서, 개시자는 토큰 분산 프로세스의 일부로서 구현되는 (부모-자식 쌍들 간의) 모든 전송 프로세스에 대한 제어권을 행사한다. 비밀 값()은, 리프 노드로 토큰을 전송하기 위한 커밋 채널이 생성되었다는 것을 개시자가 만족할 때까지, 커밋 채널을 "잠그고" 참여자 노드들 중 임의의 노드에 의한 토큰의 인출을 방지하는 역할을 한다. HTD의 계층 구조를 따라 임의의 장소에 위치하는 커밋 채널()의 비밀 값은 다음의 프로세스에 따라 획득될 수 있다:
1. 는 (도 4의 프로세스(400)의 동작(408)에서 도시된 바와 같이, HTD의 초기화 동안 에 의해 선택되는) 그의 난수()를 에 전달하며, 는 그의 비밀 키의 암호화된 버전()을 에 전달하며, 여기서, 가 된다.
3. 이 비밀 값은 이 되며, 여기서, 는 동일한 경로에서 커밋 채널()에 선행하는 커밋 채널들의 참여자 노드들에 의해 선택된 난수들이다. 이것은 다음의 계산으로부터 알 수 있다:
이 시점에서, 개시자가 를 HTD의 임의의 다른 노드에게는 비밀로 알려지지 않게 유지하므로, 노드()는 커밋 채널에 대한 비밀 값을 알지 못한다. 보다 일반적으로, 개시자가 비밀 값()을 공개하지 않고는 HTD의 전송 트랜잭션이 시작될 수 없다.
HTD의 트랜잭션의 실행
도 6을 이제 참조하면, 도 6은 HTD의 참여자 노드에 의해 생성된 커밋 채널의 전송 트랜잭션을 실행하기 위한 예시적인 프로세스(600)를 도시한 도면이다. 위에서 언급했듯이, 분산의 개시자()는 계층 구조의 모든 노드로부터 난수 값()을 수신하며, 따라서 모든 비밀 값을 소유하게 된다. (HTD에 사용된 커밋 채널의 비밀 값이 에 의해 정의된다는 것이 상기된다.) 모든 커밋 채널이 시간()에서 또는 그 이전에 생성된다고 하면, 개시자는 HTD의 모든 커밋 채널에 대한 비밀 값의 순차적인 공개를 유발한다. 특히, 단계(602)에서, 개시자는 해당 리프 노드들을 초래하는 계층 구조 내의 (연속적인 커밋 채널들의) 고유 경로들의 각각에 대해 에 의해 제공된 "최종" 비밀 값()을 공개한다. 개시자는 값을 대응하는 노드(즉, 경로 내의 의 부모 노드)에 직접 통신함으로써 전술한 것을 수행할 수 있거나, 또는 개시자가 (개시자가 또한 리프 노드를 소유하므로) 전송 트랜잭션()을 제출할 수 있고, 이로써, 로 하여금 블록체인으로부터 비밀 값()을 검색하게 할 수 있다. 단계(604)에서, 리프 노드에 토큰을 전송하기 위한 커밋 채널에 대한 이 경과되지 않았음을 체킹할 때, 개시자는 단계(604)에서, 블록체인에 을 제출한다.
일단 가 단계(606)에서 값을 획득하면, 단계(608)에서 (에 의해 그 부모 노드()에 이전에 전달된) 을 로부터 단순히 감산하여, 가 그의 부모 노드로부터 토큰을 수신하는 데 필요한 비밀 값()을 결정할 수 있다. 보다 일반적으로, 각 노드()는 값()을 그의 양도자()에 직접 전달할 수 있거나, 또는 가 그렇게 수행하지 못하면, 노드()는 에 토큰을 전송하는 전송 트랜잭션의 값이 만료되기 전에, 블록체인 원장에서 값()의 검색을 시도한다.
이런 식으로, 비밀 값()은 계층 구조에서 경로를 상향시키고 관계()를 사용함으로써 현재 시간이 = 미만인 동안 (단계(608) 내지 단계(622)에서) 순차적으로 공개된다. 값은 노드()로 하여금 를 통해 토큰을 수신하게 할 수 있다. 이 순차적인 공개 절차의 중요한 결론은 특정 커밋 채널에 대한 비밀 값이 이 커밋 채널이 HTD의 계층 구조에서 공유되는 경로 중 임의의 것을 사용하여 결정될 수 있다는 것이다. 각각의 커밋 채널은 (전송 트랜잭션을 위해 잠금 해제 스크립트 <scriptSig>에 포함된) 하나의 비밀 값만을 갖는다. HTD의 계층 구조를 나타내는 트리 구조 내의 "에지(edge)"(즉, 부모-자식 노드 쌍 사이의 커밋 채널)가 상기 "에지"를 포함하는 모든 경로에 의해 공유되므로, 상기 에지에 대응하는 커밋 채널과 연관된 비밀 값의 계산은 상기 커밋 채널을 공유하는 임의의 경로를 사용하여 수행될 수 있다. 이것은 또한 노드()가 그의 의 자식 노드 중 하나 이상이 로부터 토큰을 수신하기 전에 로부터 그의 자체 토큰을 수신할 수 있다는 것을 의미한다. 특히, 는 오직 하나의 양수자만이 로부터 토큰을 인출하더라도 로부터 그의 예정된 총 토큰을 수신할 수 있다. 따라서, 각각의 노드()는 가 그의 자식 노드() 중 적어도 하나에 토큰의 전송을 수행하는 경우 토큰을 수신하는 능력을 보장받는다. HTD의 모든 전송 트랜잭션이 완료되면 오리지널 토큰 세트가 리프 노드의 입력 어드레스에 분산된다.
토큰 리턴
블록체인으로의 리턴 트랜잭션의 제출은 값에 의해 제한되며, 이 값은 블록체인에 의해 리턴 트랜잭션이 수락되지 않는 기간이다. HTD에서, 에 대해 제안된 값은 = 에 의해 제공된다.
양수자()가 리턴 트랜잭션()에 대한 의 만료 전에 비밀 값()을 공개하지 못하는 경우, 양도자()는 블록체인에 리턴 트랜잭션을 제출할 수 있다. 이 리턴 트랜잭션이 성공적으로 제출되면, 양도자()와 양수자() 간의 커밋 채널에 대한 전송 트랜잭션()은 실행될 수 없다. 적어도 하나의 리턴 트랜잭션이 블록체인에 제출되면, 리턴 제출 프로세스는 계층 구조의 레벨들을 통해 상방으로 개시자()를 포함하여 개시자에까지 반복된다.
익명성 고려 사항
위에서 설명된 바와 같이, 믹서 노드는 HTD의 멀티-레벨 계층 구조를 통해 토큰을 분산하는 동안 토큰을 믹싱하는 기능을 제공할 수 있다. 즉, 믹서 노드는 토큰 흐름의 추적을 보다 더 어렵게 할 수 있다. 이를 수행할 수 있는 한 가지 방식은, 믹서 노드가 (부모 노드로부터) 토큰을 수신하고 그 토큰을 그들의 자식 노드에 전달할 수 있는 어드레스와는 다른 기존의 어드레스를 가지도록 보장하는 것이다. 이 시나리오의 예는 도 7에 도시되어 있으며, 여기서, 는 로부터 토큰을 수신하는 어드레스(Addr_P1) 및 자식 노드()에 전달될 충분한 수량의 토큰이 사전에 이용 가능한 별도의 어드레스(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 트랜잭션을 위한 제1 커밋 채널(first commitment channel)()을 생성하는 단계;
상기 복수의 다운스트림 노드의 각각에 대해: 상기 다운스트림 노드와 협력하여 상기 믹서 노드와 상기 다운스트림 노드 간의 제2 트랜잭션을 위한 제2 커밋 채널()을 생성하는 단계를 포함하며,
상기 제1 트랜잭션에 대한 잠금 해제 스크립트가 상기 제2 트랜잭션 중 임의의 하나에 대한 잠금 해제 스크립트로부터 도출되는
컴퓨터 구현 방법.
- 제1항 내지 제8항 중 어느 한 항에 있어서,
상기 믹서 노드는 제1 어드레스 및 복수의 제2 어드레스를 포함하되, 상기 믹서 노드는 상기 제1 어드레스에서 상기 업스트림 노드로부터의 제1 수량의 토큰의 전송을 검출하고, 상기 믹서 노드는 상기 복수의 제2 어드레스로부터 상기 제1 수량의 서브 수량을 상기 다운스트림 노드로 전송하는
컴퓨터 구현 방법.
- 제9항에 있어서,
상기 복수의 제2 어드레스에서의 토큰의 총 수량은 적어도 상기 제1 수량과 동일한
컴퓨터 구현 방법.
- 제1항 내지 제12항 중 어느 한 항에 있어서,
상기 제1 커밋 채널은 임의의 제2 커밋 채널이 생성되기 전에 생성되는
컴퓨터 구현 방법.
- 입력 노드, 다수의 출력 노드, 및 복수의 믹서 노드를 포함하는 토큰 분산 프로세스에 참여하기 위한 컴퓨팅 디바이스로서,
프로세서;
메모리;
네트워크 연결성을 제공하는 네트워크 인터페이스; 및
상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 제1항 내지 제13항 중 어느 한 항에 청구된 방법을 수행하게 하는 컴퓨터 실행 가능 명령어를 포함하는 블록체인 애플리케이션을 포함하는
컴퓨팅 디바이스.
- 입력 노드, 다수의 출력 노드, 및 복수의 믹서 노드를 포함하는 토큰 분산 프로세스에 참여하기 위한 프로세서 실행 가능 명령어를 저장하는 비 일시적 프로세서 판독 가능 매체로서,
상기 프로세서 실행 가능 명령어는 상기 노드들 중 한 노드의 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 제1항 내지 제13항 중 어느 한 항에 청구된 방법을 수행하게 하는
비 일시적 프로세서 판독 가능 매체.
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)
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)
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 | 深圳前海达闼云端智能科技有限公司 | 区块链权限控制方法、装置及节点设备 |
-
2017
- 2017-06-28 GB GBGB1710283.1A patent/GB201710283D0/en not_active Ceased
-
2018
- 2018-06-22 CN CN202410293043.7A patent/CN118138232A/zh active Pending
- 2018-06-22 KR KR1020207000301A patent/KR102569552B1/ko active IP Right Grant
- 2018-06-22 CN CN201880043746.7A patent/CN110832807B/zh active Active
- 2018-06-22 SG SG11201911532XA patent/SG11201911532XA/en unknown
- 2018-06-22 EP EP18743865.0A patent/EP3646528A1/en active Pending
- 2018-06-22 WO PCT/IB2018/054629 patent/WO2019003072A1/en unknown
- 2018-06-22 JP JP2019566672A patent/JP7201624B2/ja active Active
- 2018-06-22 US US16/626,298 patent/US11240032B2/en active Active
- 2018-06-22 KR KR1020237028019A patent/KR20230127357A/ko not_active Application Discontinuation
-
2020
- 2020-01-27 ZA ZA2020/00535A patent/ZA202000535B/en unknown
-
2021
- 2021-12-17 US US17/555,326 patent/US11838420B2/en active Active
-
2022
- 2022-12-22 JP JP2022205204A patent/JP7498765B2/ja active Active
-
2023
- 2023-10-13 US US18/380,077 patent/US20240089106A1/en active Pending
-
2024
- 2024-05-31 JP JP2024088888A patent/JP2024109955A/ja active Pending
Non-Patent Citations (2)
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 |