KR20200020735A - 블록체인 네트워크를 이용한 멀티 라운드 토큰 분배 시스템 및 방법 - Google Patents

블록체인 네트워크를 이용한 멀티 라운드 토큰 분배 시스템 및 방법 Download PDF

Info

Publication number
KR20200020735A
KR20200020735A KR1020197038779A KR20197038779A KR20200020735A KR 20200020735 A KR20200020735 A KR 20200020735A KR 1020197038779 A KR1020197038779 A KR 1020197038779A KR 20197038779 A KR20197038779 A KR 20197038779A KR 20200020735 A KR20200020735 A KR 20200020735A
Authority
KR
South Korea
Prior art keywords
node
transaction
token
participating
indirect
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
KR1020197038779A
Other languages
English (en)
Other versions
KR102610335B1 (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
Priority claimed from GBGB1709868.2A external-priority patent/GB201709868D0/en
Priority claimed from GBGB1709871.6A external-priority patent/GB201709871D0/en
Application filed by 엔체인 홀딩스 리미티드 filed Critical 엔체인 홀딩스 리미티드
Publication of KR20200020735A publication Critical patent/KR20200020735A/ko
Application granted granted Critical
Publication of KR102610335B1 publication Critical patent/KR102610335B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3674Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes involving authentication
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3676Balancing accounts
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Signal Processing (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Transfer Between Computers (AREA)
  • Multi Processors (AREA)

Abstract

블록체인을 사용하여 송신자 노드로부터 수신자 노드로 제1 수량의 토큰을 전송하는 토큰 전송 프로세스에 참여하기 위한 컴퓨터 구현 방법이 개시되어 있다. 이 토큰 전송 프로세스는 복수의 참여 노드 및 상기 복수의 참여 노드의 쌍 사이의 간접 토큰 트랜잭션 세트의 실행을 포함한다. 이 방법은 참여 노드에서 구현되며, 상기 간접 토큰 트랜잭션 세트의 서브세트를 획득하는 단계-상기 서브세트는 상기 참여 노드가 입력 노드 또는 출력 노드인 트랜잭션만 포함하고, 상기 간접 토큰 트랜잭션 세트는 상기 제1 수량의 토큰 및 상기 토큰 전송 프로세스 내 미리정의된 수의 트랜잭션 라운드에 기초하여 생성됨-와, 상기 서브세트 내의 각각의 간접 토큰 트랜잭션에 대해, 상기 간접 토큰 트랜잭션에 포함된 제각기의 제2 참여 노드와 협력하여 상기 참여 노드와 상기 제2 참여 노드 사이의 상기 간접 토큰 트랜잭션에 대한 커미트먼트 채널을 생성하는 단계와, 상기 생성된 커미트먼트 채널을 사용하여 다른 모든 참여 노드와 협력해서 상기 서브세트의 상기 간접 토큰 트랜잭션을 실행하는 단계를 포함한다.

Description

블록체인 네트워크를 이용한 멀티 라운드 토큰 분배 시스템 및 방법
본 발명은 일반적으로 블록체인 트랜잭션에 관한 것으로, 보다 구체적으로는, 트랜잭션 세트의 보안 및 완전한 완료(full completion)를 여전히 보장하는 방식으로 출력 및 입력의 연결이 끊긴(delinked) 트랜잭션을 구성하고 실행하기 위한 방법 및 장치에 관한 것이다. 특히, 본 출원은, 신뢰할 수 없는 네트워크 구조를 유지하면서, 토큰 손실 및 도난을 막는 안전하고 결정론적 방식으로 복수의 입력 노드가 복수의 출력 노드에 토큰을 협력해서 분배하는 방법 및 시스템을 제공한다.
본 명세서에서, '블록체인(blockchain)'이라는 용어는 모든 형태의 전자적인, 컴퓨터-기반의, 분산 원장을 포함하는 것으로 사용된다. 이는 블록체인 및 트랜잭션-체인 기술, 허가 및 무허가 원장, 공유 원장 및 이들의 변형을 포함하지만, 이에 제한되지는 않는다. 다른 블록체인 구현예들이 제안되고 개발되었지만, 가장 널리 알려져 있는 블록체인 기술의 용례는 비트코인(Bitcoin) 원장이다. 편의 및 예시의 목적으로 비트코인이 본 명세서에서 참조될 수 있지만, 본 발명은 비트코인 블록체인에 사용하는 것으로 한정되지 않으며, 다른 블록체인 구현예 및 프로토콜도 본 발명의 범위 내에 포함된다는 점에 유의해야 한다.
블록체인은 컨센서스 기반의 전자 원장으로, 이는 트랜잭션으로 이루어진 블록들로 구성된 컴퓨터 기반의 탈중앙화된 분산 시스템으로 구현된다. 각각의 트랜잭션은, 블록체인 시스템의 참여자들 사이에 디지털 자산의 컨트롤 전송을 인코딩하는 데이터 구조이며, 적어도 하나의 입력 및 적어도 하나의 출력을 포함한다. 각 블록은 그 이전 블록의 해시를 포함하며, 이들 블록은 함께 체인 형태로 연결되어 블록체인에 처음부터 기록된 모든 트랜잭션의 영구적이고 변경할 수 없는 기록을 생성한다. 트랜잭션은 자체 입력 및 출력에 삽입된 스크립트로 알려진 작은 프로그램을 포함하는데, 이 프로그램은 트랜잭션의 출력에 액세스하는 방법 및 대상을 지정한다. 비트코인 플랫폼에서, 이들 스크립트는 스택 기반의 스크립팅 언어를 사용하여 기록된다.
트랜잭션을 블록체인에 기록하기 위해서는, "검증"이 이루어져야 한다. 네트워크 노드(채굴자)는 각 트랜잭션이 유효함을 보장하고 무효 트랜잭션은 네트워크에서 거부되도록 하는 작업을 수행한다. 노드에 설치된 소프트웨어 클라이언트는 잠금 및 잠금 해제 스크립트를 실행함으로써 미사용 트랜잭션(UTXO)에 대해 이 유효성 작업을 수행한다. 잠금 및 잠금 해제 스크립트의 실행이 참(TRUE)으로 평가되면, 트랜잭션은 유효하며 블록체인에 기록된다. 따라서, 트랜잭션이 블록체인에 기록되게 하기 위해서는, 트랜잭션이 i) 트랜잭션을 수신하는 제1 노드에 의해 트랜잭션의 유효성이 검증되어야 하고(트랜잭션이 유효할 경우, 노드가 이를 네트워크 내의 다른 노드에게 전달함), ii) 트랜잭션이 채굴자에 의해 만들어진 새로운 블록에 추가되어야 하며, iii) 채굴되어야 하는데, 즉, 과거 트랜잭션의 공개 원장(public ledger)에 추가되어야 한다.
트랜잭션은 한 노드로부터 다른 노드로 하나 이상의 토큰의 전송을 포함한다. 토큰은 향후의 네트워크 자원의 컨트롤을 나타낼 수 있다. 일부 경우에, 토큰은 자산 또는 값을 나타낼 수 있지만, 반드시 그런 것은 아니다. 예를 들어, 일부 경우에, 토큰은 암호화폐로 이해될 수 있다. 그러나, 본 출원은 암호화폐와 관련한 구현으로 한정되지 않고, 컨트롤 토큰의 분산 전송을 위한 블록체인 네트워크와 관련된 것으로 보다 광범위하게 이해된다.
비트코인과 같은 블록체인 기술의 이점으로 인식되는 것들 중 하나는 트랜잭션의 익명성이다. 비트코인 사용자의 개인 정보는 비트코인 주소에 공식적으로 그리고 명시적으로 첨부되지 않고, 블록체인의 비트코인 원장은 공개 주소 정보만 포함한다. 그러나, 2차 데이터(예컨대, 트랜잭션을 완료하기 위해 필요한 배송지 주소) 및 분석 정보를 이용하면, 제3의 이해 당사자가 공개적으로 이용가능한 정보를 결합하여 사용자의 신원을 특정 비트코인 주소와 연관시킬 수도 있다.
비트코인 프로토콜에서 익명성 수준을 보다 높게 하기 위해, 믹싱 해법(mixing solution)이 구현될 수 있다. 중앙집중식 믹싱에서, 일군의 참여자들은(여기서 적어도 한 명의 참여자는 한 주소에서 다른 주소로 블록체인 토큰을 보내고자 함) 자신의 토큰을 믹싱 서비스 제공자에 의해 관리되는 중앙 풀에 전송한다. 그러면, 서비스 제공자는 이들 토큰을 중앙 풀에서 적절한 출력 주소로 분배한다. 믹싱 프로토콜은 다른 참여자들의 입력-출력 관계를 알고 있는 서비스 제공자의 신뢰도에 의존한다. 이 중앙집중식 구조는, (1) 신뢰할 수 없는 믹싱 서비스가 사용자의 토큰을 훔치려고 할 수도 있고, (2) 믹싱 서비스가 규제 기관 또는 이해 당사자에 의해 입력 및 출력 주소의 매핑을 해제하도록 압력을 받을 수 있으므로, 문제가 있을 수 있다. 보다 일반적으로, 믹싱은, 복수의 입력 노드가 복수의 출력 노드 사이에 다수의 토큰에 대한 컨트롤을 분배하는, 특정 유형의 분배 프로토콜이다.
많은 토큰 분배 서비스 및 잠재적인 프로토콜은 연결이 제대로 끊기지 않거나 보안이 손상되는 문제를 겪을 수 있다. 분배 프로토콜이 분산형 블록체인 네트워크의 환경에서 효과적이려면, 중앙집중식 기관에 대한 의존을 최소화하면서 토큰 분배에서 악의적이거나 불균형한 결과를 피하기 위해 모든 참여 노드에 의한 완료(completion)를 보장하도록 설계 및 운영되어야 한다. 따라서, 토큰의 소실 또는 도난은 회피하면서 프로세스가 신뢰할 수 없게 구현되도록 보장하는 한편 토큰 분배를 용이하게 하는 개선된 방법 및 장치를 제공하는 것이 바람직하다. 중앙집중 기관을 이용하지 않고 분산 블록체인 네트워크에서 이러한 프로세스를 구현하는 데에는 상당한 기술적 과제가 있다. 멀티라운드(multi-round) 토큰 분배 프로세스에서, 규정된 토큰 분배가 실현되도록 보장하고, 예컨대 프로세스의 하나 이상의 라운드 동안 오프라인 참여 노드로 인해 의도적으로 또는 실수로 토큰이 잘못 할당되는 것을 방지하는 것이 특히 어렵다.
이러한 개선된 해법이 이제 마련되었다.
따라서, 본 발명에 따르면 첨부된 청구범위에 정의된 바와 같은 방법 및 장치가 제공된다.
본 발명은 컴퓨터 구현 방법 및 대응하는 시스템을 제공할 수 있다. 방법/시스템은 블록체인 구현 방법/시스템으로서 설명될 수 있다. 본 발명은 보안 방법 또는 암호화 방법/시스템으로서 설명될 수 있다. 본 발명은 일부 암호화폐와 같은 디지털 자산의 안전한 전송을 제공할 수 있다. 이에 더하여 또는 이에 갈음하여, 본 발명은 일부 암호화폐와 같은 디지털 자산의 전송을 제어하는 제어 메커니즘을 제공할 수 있다.
본 출원은 블록체인을 사용하는 송신자 노드와 제각기의 수신자 노드의 복수의 쌍들 사이에서 제각기의 제1 수량의 토큰을 전송하는 토큰 전송 프로세스를 개시하는 컴퓨터 구현 방법을 설명한다. 이 방법은 토큰 전송 프로세스에서 트랜잭션 라운드의 수를 결정하는 단계와, 제각기의 제1 수량의 토큰 및 트랜잭션 라운드의 수에 기초하여 간접 토큰 트랜잭션 세트(TT)를 생성하는 단계-상기 세트 내의 모든 간접 토큰 트랜잭션의 실행 결과 송신자 노드로부터 이들의 제각기의 수신자 노드로 제각기의 수량의 토큰의 순 전송이 이루어지고, 간접 토큰 트랜잭션 세트는 특정 간접 토큰 트랜잭션에 대한 입력 노드 또는 출력 노드일 수 있는 무작위의 송신자 노드 및 수신자 노드 쌍을 포함함-와, 각각의 송신자 노드 및 수신자 노드에 대해, 간접 토큰 트랜잭션 세트의 서브세트를 해당 노드로 송신하는 단계-상기 서브세트는 해당 노드가 입력 노드 또는 출력 노드인 트랜잭션을 포함함-를 포함한다.
일부 구현예에서, 간접 토큰 트랜잭션 세트는 무작위로 생성된 제1 트랜잭션 그룹을 포함하고, 제1 트랜잭션 그룹 내의 각 트랜잭션은 무작위로 선택된 참여 노드 쌍 사이에서 전송하기 위한 제각기의 간접 토큰 수량을 명시한다.
일부 구현예에서, 간접 토큰 수량은 무작위로 선택된다.
일부 구현예에서, 간접 토큰 수량은 확률 분포에서 결정된다.
일부 구현예에서, 간접 토큰 수량은 임계값 이하이다.
일부 구현예에서, 간접 토큰 트랜잭션 세트는, 제1 트랜잭션 그룹으로 인한 순 토큰 전송을 송신자 노드와 수신자 노드 사이의 제1 수량의 토큰의 순 전송으로 조정하기 위한 제2 트랜잭션 그룹을 더 포함한다.
일부 구현예에서, 상기 서브세트를 참여 노드로 송신하는 것은 서브세트를 포함하는 암호화된 메시지를 참여 노드로 송신하는 것을 포함하고, 이 메시지는 참여 노드와 연관된 공개 키를 사용하여 암호화된다.
일부 구현예에서, 간접 토큰 트랜잭션 세트는 라운드당 트랜잭션의 수(q)에 기초하여 생성된다.
본 출원은 또한, 복수의 참여 노드를 포함하는 토큰 전송 프로세스를 개시하는 컴퓨팅 장치를 설명하는데, 상기 컴퓨팅 장치는 메모리, 네트워크 접속을 제공하는 네트워크 인터페이스, 및 본 명세서에 기술된 방법을 수행하도록 구성된 프로세서를 포함한다.
본 출원은 또한, 복수의 참여 노드 사이에서 토큰 전송 프로세스를 개시하는 프로세서 실행가능 명령어를 저장하는 비일시적 프로세서 판독가능 매체를 설명하는데, 여기서, 프로세서 실행가능 명령어는 프로세서에 의해 실행될 경우, 상기 프로세서로 하여금 본 명세서에 기술된 방법들 중 하나 이상의 동작을 수행하게 한다.
본 발명의 하나의 양태 또는 실시예와 관련하여 설명한 임의의 특징이 하나 이상의 다른 양태/실시예와 관련하여 사용될 수도 있다. 본 발명의 이들 및 다른 양태는 본 명세서에 기술된 실시예로부터 명백할 것이며, 이와 관련하여 설명할 것이다. 이제 단지 예로서 그리고 첨부 도면을 참조하여 본 발명의 실시예를 설명할 것이다.
도 1은 예시적인 노드들의 블록체인 네트워크를 도시한 것이다.
도 2는 지불인 노드(payer node)와 수취인 노드(payee node) 사이에 확립된 커미트먼트 채널(commitment channel)의 개략도이다.
도 3은 본 출원의 일 실시예에 따른, 양도인-양수인 쌍 사이에서 토큰을 전송하기 위한 토큰 전송 프로세스에 참여하는 예시적인 방법을 흐름도 형식으로 도시한 것이다.
도 4는 본 출원의 일 실시예에 따른, 양도인-양수인 쌍 사이에서 토큰을 전송하기 위한 토큰 전송 프로세스에 참여하는 다른 예시적인 방법을 흐름도 형식으로 도시한 것이다.
도 5는 간접 익명 전송 프로토콜에서 양도인 노드(transferor node)와 양수인 노드(transferee node) 사이에 커미트먼트 채널을 구성하는 예시적인 프로세스를 흐름도 형식으로 도시한 것이다.
도 6은 참여 노드를 간략하게 도시한 블록도이다.
본 출원에서, "및/또는"이란 용어는, 추가적인 요소들을 배제하지 않으면서, 나열된 요소들 중 어느 하나, 임의의 하위 조합, 또는 이들 요소들 전부를 비롯하여, 나열된 요소들의 가능한 조합들 및 그 하위 조합 전부를 포괄하고자 하는 것이다.
본 출원에서, "적어도 하나"라는 표현은, 추가적인 요소들을 배제하지 않으면서, 그리고 반드시 모든 요소들을 필요로 하지는 않으면서, 나열된 요소들 중 어느 하나, 임의의 하위 조합, 또는 이들 요소들 전부를 비롯하여, 나열된 요소들 중 하나 이상을 포괄하고자 하는 것이다.
먼저, 블록 체인과 연관된 예시적인 블록체인 네트워크(100)를 나타내는 도 1을 참조한다. 블록체인 네트워크는 다른 멤버로부터의 초대나 동의없이 누구나 참여할 수 있는 피어투피어 오픈 멤버쉽 네트워크이다. 블록체인 네트워크(100)의 동작에 기반이 되는 블록체인 프로토콜의 인스턴스를 실행하는 분산 전자 장치들이 블록체인 네트워크(100)에 참여할 수 있다. 이러한 분산 전자 장치는 노드(102)로 지칭될 수 있다. 블록체인 프로토콜은, 예컨대, 비트코인 프로토콜, 또는 다른 암호화폐일 수 있다.
블록체인 프로토콜을 실행하고 블록체인 네트워크(100)의 노드(102)를 형성하는 전자 장치는, 예컨대, 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 서버와 같은 컴퓨터, 스마트폰과 같은 모바일 장치, 스마트 워치와 같은 웨어러블 컴퓨터 또는 기타 전자 장치를 포함하는 여러 유형의 장치일 수 있다.
블록체인 네트워크(100)의 노드들(102)은 유선 및 무선 통신 기술을 포함하는 적절한 통신 기술을 이용하여 서로 연결된다. 많은 경우에, 블록체인 네트워크(100)는 적어도 부분적으로 인터넷을 통해 구현되며, 일부 개별 노드(102)는 지리적으로 분산된 장소에 위치할 수 있다.
노드(102)는 블록체인 상의 모든 트랜잭션의 글로벌 원장을 유지한다. 글로벌 원장은 분산 원장이며, 각 노드(102)는 글로벌 원장의 완전한 사본 또는 부분 사본을 저장할 수 있다. 글로벌 원장에 영향을 미치는 노드(102)에 의한 트랜잭션은 다른 노드(102)에 의해 검증되어, 글로벌 원장의 유효성이 유지된다. 비트코인 프로토콜을 사용하는 것과 같이, 블록체인 네트워크를 구현하고 운영하는 것에 대한 세부사항은 당업자라면 충분히 잘 이해할 수 있을 것이다.
각각의 트랜잭션은 통상적으로 하나 이상의 입력과 하나 이상의 출력을 갖는다. 입력 및 출력에 삽입된 스크립트는 트랜잭션의 출력에 액세스할 수 있는 방법 및 대상을 지정한다. 트랜잭션의 출력은 트랜잭션의 결과로서 토큰이 전송되는 주소일 수 있다. 이들 토큰은 이용가능한 트랜잭션 출력으로서 그 출력 주소와 연관된다. 비트코인과 같은 암호화폐의 경우, 이용가능한 트랜잭션 출력을 미사용 트랜잭션 출력(UTXO)이라고도 한다. 그러면 후속 트랜잭션은 이들 토큰을 하나 이상의 다른 주소로 전송하기 위해 그 주소를 입력으로서 참조할 수 있다.
블록체인 원장의 트랜잭션에는 어떠한 개인 정보도 포함되지 않기 때문에 트랜잭션은 의사 익명이지만, 트랜잭션의 체인 내 토큰의 전송을 추적하는 것이 가능하고, 어떤 경우에는 외부 데이터를 사용하여 토큰을 개인에게 링크하는 것이 가능하다. 익명성을 높이기 위해, 다양한 소스로부터의 입력을 풀링한 다음 풀링된 토큰을 나누어서 출력에 할당하기 위해 믹싱 트랜잭션이 사용될 수 있다. 모든 입력 및 출력의 크기가 동일하다면, 특정 입력을 특정 출력과 연관시키기가 어렵다. 그러나, 그러한 트랜잭션에서 적어도 하나의 참여 노드는 다른 참여 노드에 의해 지정된 입력 주소와 출력 주소 사이의 관련성은 알고 있다. 비트코인 프로토콜의 코인조인(CoinJoin) 동작과 같은, 이러한 믹싱 트랜잭션에서는, 복수의 입력 및 복수의 출력을 갖는 단일 트랜잭션이 토큰들을 믹싱하는데 사용된다.
다양한 효과를 갖는 링 서명(ring signatures) 또는 스텔스 주소(stealth addresses)와 같이 입력과 출력 사이의 링크를 누설하지 않도록 하기 위한 일부 다른 익명 기법이 사용된다. 스텔스 주소는 특정 사용자로부터 토큰이 보내지는 출력 주소와의 연결을 끊으려고 시도한다. 링 서명은 가능한 서명자 그룹 중 어느 하나가 특정 트랜잭션에 서명한/승인한 서명자일 확률을 모두 같게 하여 소스를 추적할 수 없게 만든다. 유감스럽게도, 링 서명은 비트코인과 같은 일부 프로토콜에서는 구현하는데 문제가 있는 것으로 밝혀졌다. 모네로(Monero)와 같은 일부 다른 암호화폐는 링 서명을 할 수 있도록 특별히 설계된다.
본 개시는, 프로토콜의 참여자들 사이에 간접 토큰 트랜잭션 세트를 사용함으로써, 양도인과 양수인 사이의 토큰 이동을 감추는 토큰 전송 프로토콜을 제공한다. 구체적으로, 임의의 트랜잭션이 실행되기 전에 토큰 전송 프로토콜의 간접 토큰 트랜잭션 세트가 프로토콜의 모든 참여 노드에 의해 검증되도록 요구하는 보안 메커니즘을 설명한다. 이러한 보안 메커니즘은, 하나 이상의 악의적인 참여 노드가 이 프로토콜 하에서 자신이 할당받은 동작을 수행하지 않더라도, 나머지 참여 노드가 부정적인 영향을 받지 않게 해 준다. 간접 토큰 트랜잭션 세트는 프로토콜의 서로 다른 랜덤한 쌍의 참여 노드들 사이의 다양한 양의 복수의 전송을 포함한다. 프로토콜에 의해 규정된 간접 토큰 트랜잭션이 완료되면, 지정된 토큰이 양도인으로부터 양수인에게 간접적으로 전송되었을 것이다.
보다 일반적으로, 본 개시는 복수의 양도인-양수인 쌍 사이에 원하는 토큰 전송을 달성하도록 구현될 수 있는 프로토콜을 제공한다. 이 프로토콜은 복수의 참여 노드를 포함할 수 있으며, 여기서 각각의 참여 노드는 다른 참여 노드에 하나 이상의 토큰 전송을 수행하거나 수신한다. 양도인-양수인 쌍에 대한 원하는 토큰 전송은 이 프로토콜에서 여러 참여 노드 쌍 사이의 간접 토큰 트랜잭션 세트를 사용하여 구현될 수 있다. 간접 토큰 트랜잭션은 일부 전송이 일어난 후에만 프로토콜을 완료하여 프로토콜 실패를 확실히 회피하는 방식으로 구현되어, 적절한 토큰 전송이 제각기의 의도된 목적지에 도착하도록 보장한다. 일부 구현예에서는, 간접 토큰 트랜잭션을 용이하게 하기 위해 커미트먼트 채널이 사용된다. 후술하는 바와 같이, 참여 노드는 프로토콜 요건에 따라 커미트먼트 채널이 구성되었는지 확인할 수 있다. 이런 방법으로, 프로토콜은 부분적 완료 및 이로 인한 토큰의 원하는 최종 할당을 실현하는데 실패할 리스크 없이 프로토콜이 충분히 구현되도록 보장하는 안전한 방법을 제공한다.
본 명세서의 설명에서, "입력 노드", "출력 노드", "참여 노드", "입력 주소" 및 "출력 주소"라는 용어가 사용될 수 있다. 노드의 "주소"란 말은 물리적 노드의 네트워크 주소를 말하고자 하는 것이 아니다. 대신 "주소"는 트랜잭션의 서명에 대응하는 키를 사용하여 물리적 노드가 소유권을 주장할 수 있는 토큰이 할당된 블록체인의 트랜잭션에서 지정된 주소이다. 이런 의미에서 "출력 주소"는 참여 노드의 주소가 아니라, 참여 출력 노드가 소유하거나 참여 출력 노드와 연관된 출력 노드와 연관된 블록체인 트랜잭션 출력 주소이다. 마찬가지로, "입력 주소"는 참여 입력 노드가 소유하거나 참여 입력 노드와 연관된 사용 가능한 트랜잭션 출력(암호화 용어로 UXTO)의 주소이다.
커미트먼트 채널
비트코인(Bitcoin)과 같은 다양한 블록체인 기술은 때론 참여 노드들 사이의 쌍 단위의 트랜잭션 구성에 "커미트먼트 채널"을 사용할 수 있다. 커미트먼트 채널은, 노드들이 모든 트랜잭션을 블록체인에 커밋하지 않고도 복수의 트랜잭션을 만들 수 있도록 설계된다. 참여 노드 쌍 사이에 커미트먼트 채널이 확립되면, 이들 노드는 소정 기간 내에 그들이 원하는 만큼의 트랜잭션에 참여할 수 있지만,궁극적으로는 두 개의 트랜잭션만 블록체인에 추가된다. 따라서, 커미트먼트 채널을 사용하면 블록체인에 추가될 필요가 있는 트랜잭션의 수가 감소할 수 있고 관련 트랜잭션 비용이 감소할 수 있다. 커미트먼트 채널은 또한, 양수인 노드가 특정 기준을 충족하지 않거나 양도인 또는 양수인 노드가 소정 세트의 양도 후 프로세스를 종료하기로 결정한 경우, 토큰을 반환할 수 있는 유연성을 양도인 노드에 제공한다.
커미트먼트 채널 구현의 적어도 한 실시예에서, 한 쌍의 참여 노드(UA 및 UB)는 협력하여 3개의 블록체인 트랜잭션, 즉, 커미트먼트 트랜잭션(Tc), 반환 트랜잭션(Tr,0), 및 전송 트랜잭션(Tt)을 생성한다. 도 2는 양도인 노드(UA)와 양수인 노드(UB) 사이의 커미트먼트 채널(
Figure pct00001
)의 개략도이다. 커미트먼트 트랜잭션(Tc)은, 양도인(UA)이 UB에 전송하기 위해 지정된 토큰 세트를 송신/커밋하는 커미트먼트 채널의 커미트먼트 컴포넌트를 나타낸다. 커미트먼트 트랜잭션은, 일부 실시예에서 2/2 다중 서명 페이 투 스크립트 해시(P2SH) 트랜잭션일 수 있다. 반환 트랜잭션(Tr,0)은, 양수인 노드(UB)가 할당된 시간 내에 커미트먼트 트랜잭션에 대한 전술한 기준을 충족할 수 없으면, 이전에 커밋된 토큰(x)을 다시 UA로 반환하는 트랜잭션이다. 반환 트랜잭션은, 특정 시점(nLockTime)이 만료된 후에, 블록체인에 제출될 수 있다. 반환 트랜잭션이 성공적으로 실행될 경우, 양도인 노드(UA)와 양수인 노드(UB) 모두의 서명이 필요하다. 전송 트랜잭션, 즉, Tpay는 트랜잭션이 커밋된 토큰(x)을 양수인 노드(UB)에 실제로 송신하는 트랜잭션이다. 전송 트랜잭션은, 양수인 노드(UB)가 소정의 기준을 만족하면, 실행된다. 예를 들어, 전송 트랜잭션이 블록체인에 성공적으로 제출되려면, 적어도 양수인 노드(UB)의 디지털 서명이 필요할 수 있다.
비밀 공유(secret Sharing)
"비밀 공유"라는 기술은, 비밀 키를 여러 조각으로 분할하고 이들 조각을 한 세트의 참여 노드 사이에 분배할 수 있도록 개발되었다. 이 기술에서, 참여 노드 세트의 임의의 서브세트는, 그 서브세트의 카디널리티(cardinality)가 지정된 임계 값(t)보다 큰 경우에 비밀을 재구성할 수 있다. 서브세트의 카디널리티가 t보다 작으면, 비밀에 대한 아무런 정보도 밝혀지지 않는다. 이것은 적어도 t개의 참여 노드가 공유된 비밀을 사용하여 협력해서 서명해야 함을 의미한다. 참여 노드 사이에 키 셰어(key shares)를 분배하는 것은 키 셰어를 할당하는 중앙 딜러를 이용하여, 또는 딜러가 없는 분배 시스템을 통해 행해질 수 있다. 각각의 해법은 분배 방법 중에서 선택할 때 구현되는 시스템 요건을 신중하게 고려해야 하는 장단점이 있다.
적어도 한 실시예에서, 이 기법은 비밀을 차수 t의 다항식에 임베딩하는 것을 포함할 수 있다. n개의 참여 노드 각각은 당시 알려지지 않은 다항식의 한 점에 할당되며, 그 결과 t+1개의 참여 노드가 라그랑주 다항식 보간법(Lagrange Polynomial Interpolation)을 사용하여 다항식을 정확하게 재구성할 수 있게 된다.
임계 서명 방식(Threshold Signature Scheme)이라고 하는 애플리케이션이 개발되어, 개별 키 셰어를 소유하는 n개 참여 노드 중 m개의 참여 노드가 비밀 키를 어떠한 개별 참여 노드에게도 재구성/노출하지 않으면서 암호 기반 계산을 실행하기 위해 협력할 수 있고, 2t+1개의 참여 노드가 서명을 생성하는데 관여할 수 있다.
임계 서명 방식은, 일부 경우에는 라그랑주 다항식 보간법(Lagrange Polynomial Interpolation)에 의존할 수 있다. 라그랑주 다항식 보간법은 차수 t의 함수 f(x)가 t+1개의 점 p={(x1,f(x1), x2,f(x2),…,xt+1,f(xt+1)}로 재구성될 수 있음을 보여준다.
Figure pct00002
여기서, 라그랑주 계수
Figure pct00003
이다.
bi,p(xi)=1이고, bi,p(xj)=0이라는 점에 유의하라.
타원 곡선 및 바이리니어 페어링(bilinear pairing) 또는 이중선 쌍 또는 매트릭스 투영(matrix projection)을 사용하는 것과 같은 다양한 다른 기술이 임계값 서명 방식에 사용하기에 적합할 수 있음에 유의해야 한다.
임계 서명 계산의 한 요소는 x×G의 결정인데, 여기서 x는 비밀 키이고, G는 타원 곡선 상의 점이다. 키 셰어가 n개의 참여 노드 사이에 분할되는 비밀 키(x)가 주어지면:
임의의 비밀 x는 다항식 f(x) 상의 점 f(0)이다
(키 x의) 셰어들(x1,x2,…,xn)은 f(x1), f(x2), …, f(xn)에 대응한다.
f(x)가 t 차수 다항식이면, 비밀(x)은
Figure pct00004
에 의해 보간되며, 여기서 π는 크기가 t+1인 셰어의 서브세트(xa, xb, …, xt, xt+1)이고, b는 라그랑주 다항식 보간법과 관련하여 위에서 언급한 라그랑주 계수이다.
π는 개별 xi 셰어를 노출하지 않으면서 x×G를 계산하도록 협력하는 t+1개의 참여자로 이루어진 그룹이다. x는 t차 다항식에서 x=0인 지점이며,
·각 참여자(i)는 부분
Figure pct00005
을 계산한다
Figure pct00006
·π 내의 모든 참여자들은 다음과 같이 자신의 부분을 함께 더한다(라그랑주 보간법을 통해 비밀(x)을 재구성한다).
Figure pct00007
이 프로세스를 "비밀 셰어 참여(Secret Share Joining)"라고 한다.
간접 익명 전송 프로토콜(Indirect Anonymous Transfer Protocol)
본 출원은 하나 이상의 양도인-양수인 쌍 사이에 토큰을 전송하는 방법 및 장치를 설명한다. 특히, 본 출원은 트랜잭션의 부분적 완료 위험을 회피하면서, 프로토콜의 참여 노드들의 다수의 서로 다른 쌍들 사이의 간접 트랜잭션 세트를 사용하여 양도인-양수인 관계를 감추려고 시도하는 토큰 전송 프로토콜(Indirect Anonymous Transfer Protocol, 또는 IATP)을 제안한다. 간접 트랜잭션은 양도인과 관련 양수인 사이의 관계가 블록체인 데이터로부터 쉽게 식별가능하지 않는 방식으로 설계된다. 간접 트랜잭션 세트는, 실행되면, 참여 양도인-양수인 노드 쌍에 대해 원래 원하는 토큰 할당(즉, 프로토콜의 시작 시에 합의한 트랜잭션)이 발생한다.
IATP는 복수의 참여 노드를 포함하며, 여기서 각각의 참여 노드는 양도인-양수인 쌍에 속한다. 특히, IATP는 셋 이상의 참여 노드의 그룹에 적합한데, 여기서 이 그룹 내의 적어도 하나의 노드는 그룹 내의 다른 노드에/로부터 하나 이상의 토큰을 만들거나 수신한다. 아래 설명에서 모호성을 피하기 위해, "송신자" 및 "수신자"란 용어는 IATP에 참여하는 양도인 노드 및 관련 양수인 노드를 제각기 지칭하는데 사용될 수 있다.
이제 블록체인을 사용하여 송신자 노드로부터 수신자 노드로 소정 량의 토큰을 전송하는 토큰 전송 프로세스에 참여하는 예시적인 방법(200)을 보여주는 도 3을 참고한다. 복수의 송신자-수신자 쌍에 대응하는 복수의 노드가 IATP에 참여한다. 이들 노드는 총 n개의 노드에 대해 U1, U2 …, Un으로 표시된다. "노드"는 본 명세서에서 멤버 또는 참여자 또는 참여 노드로 지칭될 수 있다. 일부 구현예에서, 각각의 노드는 지갑 또는 기타 그러한 블록체인 엔티티이다.
설명을 간단히 하기 위해, IATP의 설명은, n개의 참여 노드 사이의 복수의 간접 토큰 트랜잭션을 통해 소정 양의 트랜잭션(Δ*)을 하고자 하는 단일 송신자-수신자 쌍의 예를 사용한다. 후술하는 바와 같이, 이 논리는 복수의 송신자-수신자 쌍으로 쉽게 확장된다. 즉, 단일 참여 노드 쌍 사이의 전송(Δ*)을 완료하기 위한 IATP의 용례는 복수의 참여 노드 쌍 사이의 전송(Δi*)을 수행하는데 쉽게 일반화할 수 있다.
이 방법(200)은 IATP에 참여하는 노드에 의해 구현된다. 참여 노드 세트는 적어도 한 쌍의 송신자 및 수신자 노드와, 이들 송신자 및 수신자 노드와 다른, 적어도 하나의 송신자-수신자 쌍 사이의 의도된 전송을 감추기 위해 복수의 쌍 단위의 간접 토큰 트랜잭션을 만드는데 사용되는, 복수의 노드를 포함한다. 특히, 송신자 노드와 수신자 노드의 동작은 IATP 내의 임의의 다른 참여 노드와 동일한 방식으로 관리된다.
방법(200)은 동작(202)에서 노드가 토큰 전송 프로세스에 참여하는 것으로 시작한다. 참여 프로세스는 본 명세서에서 자세히 설명하지 않았으며, 충분한 수의 노드를 그룹에 포함하는 것을 보장하는 것과 하나 이상의 송신자-수신자 쌍이 서로 간에 토큰을 전송하기를 원하는 것에 적어도 부분적으로 기초하여, 참여 노드들의 적절한 그룹을 구성하는 중앙 기관을 통해 또는 중앙집중식 방식으로 구현될 수 있다. 일부 실시예에서는, 복수의 송신자-수신자 쌍이 함께 협력해서 IATP에 참여할 수 있다.
동작(204)에서, 참여 노드는 자신이 입력 노드 또는 출력 노드가 되는 간접 토큰 트랜잭션의 리스트를 획득한다. 즉, 참여 노드는 관련 간접 토큰 트랜잭션에 대해 통지받는다. 참여 노드에 의해 획득된 리스트는 IATP의 일부로서 생성되는 모든 간접 토큰 트랜잭션의 세트의 서브세트이다.
의도하는 양의 토큰을 송신자-수신자 쌍 사이에서 의도하는 양의 토큰을 전송하는데 이용되는 간접 토큰 트랜잭션의 세트를 구성하기 위한 프로세스를 이제 설명할 것이다. IATP는, 송신자-수신자 쌍 사이의 토큰의 전송이 다양한 양의 토큰을 특징으로 하는 "간접 토큰 트랜잭션" 세트를 통해 간접적으로 발생하게 함으로써, 이들 및 다른 참여 노드 쌍 사이의 전송을 감추거나 또는 믹싱하는 개념에 기초한다. 특히, 간접 토큰 트랜잭션은 송신자로부터 수신자로의 원하는 양의 토큰의 간접 전송과 상이한 적어도 2개의 트랜잭션을 포함한다. 즉, 간접 토큰 트랜잭션 세트는 적어도 2개의 트랜잭션을 포함하며, 이들 각각은 송신자 및 수신자 노드와 상이한 입력 및/또는 출력 노드를 제각기 갖는다.
이 간접 토큰 트랜잭션 세트를 구성하는 프로세스는 개시자(U0)에 의해 구현되는데, 이 개시자는 IATP의 참여 노드에 의해 무작위로 선택될 수 있다. 프로토콜의 하나 이상의 참여 노드는 다음을 정의한다.
· 프로토콜의 라운드 수(r) 및 라운드당 트랜잭션의 수(q)
·
Figure pct00008
(여기서, M은 프로토콜에 커밋된 총 토큰 양이다)인, 벡터 m(0)=(m1(0), …, mn(0))로 저장되는 프로토콜에 사용하는데 이용가능한 최초 토큰 양
· 참여 노드가 위치하는 최종 상태, m(Tr)=(m1(0), …, mA(0)-Δ*, …, mB(0)+Δ*, …, mn(0)), 즉, 송신자-수신자 쌍(예컨대, mA 및 mB) 사이에 이루어질 토큰의 최종 할당
최초 및 최종 상태는 벡터 형태로 또는 임의의 다른 적절한 데이터 구조로 저장될 수 있다.
참여 노드들 중 하나일 수 있는 개시자 노드는 참여 노드들 중 하나 이상에 의해 설정된 프로토콜의 파라미터(r, q, m(0), 및 m(Tr))를 수신하고, 수신한 파라미터에 기초하여 참여 노드들의 복수의 상이한 쌍들 사이에 간접 토큰 트랜잭션 세트를 생성한다. 구성 절차의 실시예를 이하에 상세히 설명한다.
단계 1
t=1, …, r-1에 대해:
a. 개시자 노드가, i≠j인 q개의 쌍(i, j)을 무작위로 선택한다.
b. Ui에 대응하는 토큰의 양(mi)이 0<Δi≤min(mi(t), mj(t)) 조건에서 확률 분포(Φi)로부터 랜덤 증분 Δi만큼씩 증분된다.
c. Uj가 Δji만큼 감소한다.
d. 각 단계에서, 벡터 m(t)=(m1(t), …, mn(t))가 업데이트된다.
단계 1에서, 개시자 노드는 복수의 또는 제1 그룹의 랜덤 트랜잭션을 생성하며, 그 결과 복수의 참여 노드 쌍 사이에 토큰 전송이 일어난다. 프로토콜의 각 라운드(즉, 라운드 1 내지 r-1)마다, q 쌍의 참여 노드가 무작위로 선택되며, 따라서 q 쌍 각각이 트랜잭션에 참여해서 이들 쌍 사이에 소정 수량 또는 간접 토큰 수량(Δi)의 토큰의 전송이 발생한다. 각 라운드 후에, 참여 노드 각각에 할당된 토큰의 수량은 q개의 트랜잭션(즉, 간접 토큰 트랜잭션)을 반영하도록 업데이트된다. 라운드 내에 각 q 쌍 사이에 전송된 토큰의 수량(Δi)은 규정된 범위 내로 제한된다. 특히, 조건 0<Δi≤min(mi(t), mj(t))은, q 쌍의 각각에 대해 전송된 수량이 (1) 양(positive)이고, (2) 그 쌍의 노드와 연관된 할당된 토큰의 수량의 최소치 미만임을 보장하도록 지정된다. 이런 방식으로, IATP의 참여 노드에 할당된 토큰의 수량은 프로토콜 라운드 전체에 걸쳐 양으로 유지된다. Δi 값은 확률 분포(예컨대, 이산 균등 분포)로부터 선택되며, 일반성을 잃지 않고, 프로토콜의 참여 노드에 동일한 확률 분포가 사용될 수 있다.
단계 2
최종 라운드(t=r)에 대해, 도달될 송신자-수신자 사이의 원하는 토큰 전송을 반영하는 "최종 트랜잭션"의 시퀀스 또는 제 2 그룹이 생성되어 최종 조건을 시행한다. 프로토콜을 완료하는데 필요한 최종 트랜잭션의 시퀀스를 생성하기 위해, 개시자 노드는,
a. 차를 계산한다
D=m(r-1)-m(r)=(m1(r-1)-m1(r), m2(r-1)-m2(r), …, mn(r-1)-mn(r))
b. 벡터 D의 최소 및 최대 요소를 매칭시키고, 연관된 참여 노드들 사이의 제1 트랜잭션을 구축하는데, 예컨대, max(D)=D1이고 min(D)=D4, D4<0이면, 노드 1은 양 A를 노드 4로 전송하며, 여기서 A는 다음과 같다.
Figure pct00009
c. 벡터(D)가 업데이트되는데, 즉, D'=(D1-A, D2, …, D4+A, …, Dn)이다. 그 다음에 프로세스는 D=0이 될 때까지, 즉, 참여 노드가 원하는 최종 단계에 이를 때까지 반복된다.
단계 2에서, 원하는 최종 상태 m(r)와 프로토콜의 뒤에서 두 번째 라운드로부터 벡터 m(r-1)의 값을 조정하기 위해 "최종 트랜잭션"의 시퀀스가 생성된다. 즉, 제 2 트랜잭션 그룹은, 제1 트랜잭션 그룹으로부터 발생하는 순 토큰 전송을 발신자와 수신자 노드 쌍 사이의 원하는 양의 토큰의 순 전송으로 조정하는데 사용된다. 최종 상태에서, 적어도 하나의 송신자-수신자 쌍에 속하는 모든 참여 노드는 토큰 수량이 원래 규정된 수량만큼 증분되거나 감소한다. 즉, IATP 내의 모든 참여 노드가 송신자 및/또는 수신자인 경우, 참여 노드와 연관된(참여 노드가 소유한) 할당된 토큰은 원하는 토큰 전송의 결과 값에 따라 조정된다. 최종 상태의 송신자-수신자 노드와 연관된 토큰 수량은 송신자-수신자 쌍 사이의 원하는 토큰 전송을 반영한다. 특히, 송신자-수신자 쌍 사이의 전송을 위한 원하는 토큰 수량이 최종 상태에 반영되며, 따라서 이 수량은 최종 트랜잭션을 생성하는 데 고려된다. 즉, 간접 토큰 트랜잭션의 세트는 송신자-수신자 쌍 사이에서 전송되는 원하는 토큰 수량에 적어도 부분적으로 기초하여 생성된다.
참여 노드들 중 다수의 송신자-수신자 쌍의 경우, 최종 트랜잭션은 송신자-수신자 쌍 사이에서 전송되는 각각의 토큰 수량에 의존할 것이다. 보다 구체적으로, 최종 상태(m(r))는 복수의 송신자-수신자 쌍에 대한 전송을 반영할 것이다.
실제 환경에서는, 각 참여 노드가 보유한 토큰을 "추적"하는 것은 불가능하며, 대신, 블록체인에서 브로드캐스트된 트랜잭션을 모니터링하여 프로토콜 단계마다 이득 또는 손실을 추적하는 것은 가능하다는 점에 유의하라. 설명에서 "저장된" 또는 "할당된" 토큰에 대한 언급은 프로토콜 단계를 명확하게 설명하기 위한 것이다. IATP를 사용하면, 송신자-수신자 쌍은, 여러 라운드에 걸쳐 여러 쌍의 참여 노드를 통해 임의의 양의 토큰(Δi)을 이동시킴으로써, 서로 간에 소정 양의 토큰을 간접적으로 전송할 수 있다.
간접 토큰 트랜잭션 세트가 개시자 모드에 의해 생성된 후에, 각각의 참여 노드는 그들이 관여하는 트랜잭션에 대해 통지받는다. 특히, IATP의 각 참여 노드의 경우, 개시자 노드는, 참여 노드가 입력 노드(즉, 양도인) 또는 출력 노드(즉, 양수인)인 트랜잭션만 포함하는 모든 간접 토큰 트랜잭션 세트의 서브세트를 결정한다. 개시자 노드는 트랜잭션의 서브세트를 식별하는 메시지를 제각기의 참여 노드에게 보낸다. 일부 실시예에서, 개시자 노드는 참여 노드의 공개 키를 사용하여 트랜잭션의 서브세트를 포함하는 메시지를 암호화할 수 있다.
IATP에서, 간접 토큰 트랜잭션은 프로토콜의 r 라운드를 통해 순차적으로 생성되고, 하나 이상의 트랜잭션을 포함하는 순서화된 벡터 시퀀스로 표현될 수도 있지만, 이들 트랜잭션은 무작위 순서로 완료될 수도 있다. 벡터의 순서와 벡터 내 트랜잭션이 수행되는 순서는 각 참여자에 대해 원하는 최종 순 토큰 할당에 영향을 주지 않는다. 기본적으로, 참여자들 사이에 토큰을 이동하도록 실행되는 간접 트랜잭션은 임의의 순서로 행해질 수 있다. 송신자-수신자 쌍 사이의 올바른 전송에 대한 유일한 요건은 IATP의 일부로서 생성된 모든 간접 토큰 트랜트랜잭션이 실행되는 것이다.
도 3으로 돌아가서, 동작(206)에서, 참여 노드에 의해 획득된 서브세트에서 식별된 각각의 간접 토큰 트랜잭션에 대해, 노드는 제각기의 제2 참여 노드와 협력하여 자신과 제2 참여 노드 사이의 트랜잭션에 대한 커미트먼트 채널을 생성한다. 즉, 참여 노드가 관련된 각각의 간접 토큰 트랜잭션에 대해, 커미트먼트 채널은 트랜잭션을 용이하게 하도록 구성된다. 커미트먼트 채널은 IATP에서 간접 토큰 트랜잭션 세트에 대한 참여 노드 쌍 사이의 개별 트랜잭션을 보호하기 위해 사용된다. 동작 208에서, 노드는 생성된 커미트먼트 채널을 사용하여, IATP의 다른 모든 참여 노드와 협력하여 자신과 관련된 간접 토큰 트랜잭션을 실행한다. 토큰 트랜잭션을 실행하기 위한 모든 참여 노드 사이의 이러한 협업은, 노드가 도중에 트랜잭션을 취소할 수 없게 하면서 대응하는 모든 커미트먼트 채널이 올바르게 생성되고 완료되도록 한다. 간접 토큰 트랜잭션을 실행하기 위해 협력하는 기술은 도 4를 참고하여 아래에 상세히 설명할 것이다.
이제 송신자-수신자 쌍 사이에 소정 수량의 토큰을 전송하기 위한 토큰 전송 프로세스에 참여하기 위한 예시적인 방법(300)을 흐름도 형태로 도시한 도 4를 참고한다. 이 방법(300)은 본 명세서에 설명된 IATP와 같은 간접 익명 전송을 위한 프로토콜에 참여하는 노드에 의해 구현된다. 동작(302 및 304)은 도 3에 도시된 방법(200)의 단계(202 및 204)에 대응한다. 구체적으로, 동작(302)에서, 노드는 토큰 전송 프로세스에 참여하고, 동작(304)에서, 노드는 (예를 들어, 프로토콜의 개시자 노드로부터) 관련된 간접 토큰 트랜잭션의 리스트/서브세트를 획득한다.
방법(300)은 IATP의 간접 토큰 트랜잭션의 생성 및 실행을 관리하는 보안 프로토콜을 포함한다. 위에서 설명한 바와 같이, IATP는 참여 노드들 사이의 복수의 쌍 단위의 토큰 전송을 수반한다. 프로토콜의 트랜잭션이 실행됨에 따라, 일부 참여자는 토큰을 수신하여 해당 노드가 프로토콜에 커밋한 토큰의 최초 수량에 할당된 토큰에 일시적 이득이 생긴다. 즉, 특정 참여자 노드는 프로토콜 실행 동안 최초 상태(즉, 커밋된 토큰의 최초 수량)보다 컨트롤 토큰 보유 측면에서 "국부적으로" 더 나은 상태일 수 있다. 노드가 로컬 토큰 나머지를 갖는 순간에 참여자 노드가 프로토콜을 떠나는 것을 방지하기 위해, IATP는 프로토콜의 각 참여자 노드가 커미트먼트 채널이 생성되었음을 확인할 때까지 간접 토큰 트랜잭션 세트의 실행을 막는 기능을 갖는 메커니즘을 포함한다.
이 보안 메커니즘을 가능하게 하기 위해, 커미트먼트 채널에 대응하는 각각의 간접 토큰 트랜잭션은 비밀 값 k의 공개 키 Q에 의해 보호되어 Q=kG로 되며, 여기서 G는 타원 곡선의 기준점이다. 프로토콜에 의해 요구된 커미트먼트 채널을 생성하기 전에, 값 k는 어떠한 참여자에게도 알려져 있지 않다. 대신, 각 사용자에게 키(k)의 비밀 셰어(ki)가 부여된다. 따라서, 단계(306)에서, 참여 노드는 개인 키(k)의 키 셰어를 획득한다. 키 셰어는 비밀 값(k)를 생성하는 함수에 이용되며, 특히, 참여 노드의 모든 키 셰어(ki)가 값 k를 생성하는 데 필요하다. 공개 키(Q)는 커미트먼트 채널을 생성할 때 참여 노드에 의해 사용되며, 따라서 커미트먼트 채널은 모든 참여자가 비밀 값(k)을 재구성하기 위해 협력할 때에만 잠금 해제될 수 있다. IATP에서, 임의의 랜덤 비밀이 t차 다항식(f(x))에 f(0)으로 저장되며, 참여자 i만이 자신의 셰어(f(xi))를 계산할 수 있다. n명의 참여자 중에서 t+1명이 협력할 경우, 이들은, 라그랑주 다항식 보간법을 이용하여 f(x) 상의 임의의 점을 f(x1), f(x2), …, f(xn)에 대응하는 이들의 셰어(k1, k2, …, kn)로 재구성할 수 있다.
동작(308)에서, 참여 노드는 프로토콜의 다른 모든 노드와 협력하여, 비밀 셰어 참여를 이용하여, 개인 키(k)에 대응하는 공개 키(Q)를 생성한다. 전술한 바와 같이, 공개 키(Q)는 간접 토큰 트랜잭션을 생성하는데 사용된다. Q의 계산은 어떠한 참여자 노드도 자신의 개인 키 셰어를 공개하지 않고 또한 참여자들이 먼저 개인 키(k)를 찾기 위해 협력하는 것 없이 수행된다.
IATP에서, 프로토콜 참여자는 커미트먼트 채널을 작성하는 데 사용된 공개 키 Q와 일치하는 올바른 키 셰어가 제공되는지 확인할 수 있다. 일치하지 않는 셰어가 참여 노드간에 분배되면, 참여자는 프로토콜에 의해 요구되는 비밀(k)을 재구성할 수 없을 것이다. 적어도 일부 실시예들에서, 공개적으로 검증 가능한 비밀 공유(PVSS) 방식이 참여자들의 키 셰어 검증을 위해 이용될 수 있다. PVSS 방식에서, 각각의 참여자(Ui)는 대응하는 공개 암호화 함수(Ei)로 암호화된 정보에 액세스할 수 있는 복호화 함수(Di)를 갖는다. 그런 다음 딜러는 공개 암호화 함수를 사용하여 셰어를 배포하고 이들을 다음 형태로 공개한다.
Figure pct00010
암호화된 셰어는 관심있는 개인에 의해 공개적으로 확인될 수 있으며, (참여자 자신뿐만 아니라) 누구라도 참여자가 올바른 키 셰어를 받았는지 확인할 수 있다.
공개 키(Q)가 획득되면, 프로토콜의 참여 노드 사이의 간접 토큰 트랜잭션이 설정될 수 있다. 서로 다른 참여 노드 쌍 사이의 간접 전송은 커미트먼트 채널을 사용하여 수행된다. IATP에서 "커미트먼트 채널"은 세 개의 개별 트랜잭션, 즉, 커미트먼트 트랜잭션(Tc), 반환 트랜잭션(Tr,0) 및 전송 트랜잭션(Tt)에 의해 정의된다. 즉, 일반성을 잃지 않고 전송자 노드(UA)와 양도인 노드(UB) 사이에 이루어진 각각의 간접 전송에 대해, 3 개의 블록체인 트랜잭션이 생성된다.
Figure pct00011
· 커미트먼트 트랜잭션(Tc)은 UA가 UB로 전송하기 위해 소정 수량의 토큰(x)을 커밋(즉, 트랜잭션의 출력 주소)하는데 이용하는 2/2 다중 서명 P2SH 트랜잭션이다.
· 반환 트랜잭션(Tr,0)은 커밋된 수량의 토큰(x)을 UA(즉, 트랜잭션의 입력 주소)로 다시 반환한다.
· 전송 트랜잭션(Tt)은 실제로 커밋된 양의 토큰(x)을 UB(즉, 트랜잭션의 출력 주소)로 전송한다.
IATP의 일부로 생성된 각 커미트먼트 채널은 비밀 값에 의해 "잠금"된다. IATP의 적어도 하나의 구현예에서, 커미트먼트 채널(
Figure pct00012
)의 비밀 값은 k+kB이며, 여기서 k는 공개 키(Q)에 대응하는 개인 키이고, kB는 양수인 노드(UB)에 의해 선택된 난수이다. 후술하는 바와 같이, 비밀 값(svB=k+kB)의 암호화된 값(QB)은 전송기 노드(UA)에 의해 계산될 수 있고 커미트먼트 채널(
Figure pct00013
)의 구성 동안 사용된다.
커미트먼트 채널(
Figure pct00014
)을 구성하기 위한 예시적인 프로세스(400)가 도 5에 도시되어 있다.
1. 동작(402): UB가 난수(kB)를 선택한다. 각 커미트먼트 채널은, 외부 당사자가 트랜잭션 세트를 동일한 IATP 인스턴스의 요소인 것으로 연관시키기 어렵게 하기 위해, 다른 난수를 사용할 수 있다. 특히, 블록체인에서 볼 수 있는 서로 다른 트랜잭션은 모두 동일한 비밀로 태그되어 있지 않기 때문에 이들 트랜잭션을 IATP의 공통 인스턴스에 연결하는 것이 더 복잡해질 수 있다.
2. 동작(402): UB가 kB의 값을 UA에게 전달한다.
3. 동작(404): UA가 다음 관계를 이용하여 QB를 계산한다.
Figure pct00015
여기서 Q는 (비밀 셰어 참여에 의해) 협업적으로 획득되며, 비밀 키(k)의 암호화로 간주된다.
4. 동작(406): UA가 암호화된 값(QB)을 이용하여 커미트먼트 트랜잭션(Tc)을 생성하는데, 이 커미트먼트 트랜잭션은 (1) UA와 UB 모두의 서명 또는 (2) svB와 UB의 서명에 의해서만 소비될 수 있는 소정 수량의 토큰(x)을 커밋한다.
5. 동작(408): UA가 반환 트랜잭션(Tr,0)을 생성하는데, 이는 커밋된 수량의 토큰(x)(하나 이상의 토큰을 소비할 수 있는 어떠한 트랜잭션 비용보다 작음) 전체를 UA에 반환한다. 반환 트랜잭션은 시점을 나타내는 파라미터(nLockTime)를 포함하는데, 이 시점 후에 반환 트랜잭션이 블록체인에 제출될 수 있다.
6. 동작(410): UB가 반환 트랜잭션에 서명한다.
7. 동작(412): UA가 커미트먼트 트랜잭션에 서명하고 이를 블록체인에 제출한다.
8. 동작(414): 전송 트랜잭션(Tt)이 양도인(UA) 또는 양수인(UB)에 의해 생성되고, 이 트랜잭션은 커미트 트랜잭션의 커밋된 수량의 토큰(x)을 UB로 전송한다. 전송 트랜잭션의 잠금 해제 스크립트 또는 <scriptSig>는 트랜잭션이 블록체인에 성공적으로 제출될 경우 값(svB)을 포함해야 한다.
따라서, 동작(310)에서 참여 노드에 대한 간접 토큰 트랜잭션의 서브세트에 포함된 각 트랜잭션에 대해, 노드는 트랜잭션의 상대방과 협력하여 커미트먼트 채널을 구성한다. 특히, 참여 노드가 트랜잭션의 양도인인 경우, 노드는 (1) UB(트랜잭션의 상대방)에 의해 전달된 난수(kB)를 사용하여 커미트 트랜잭션을 생성하고, (2) 커밋된 토큰을 노드에 반환하는 반환 트랜잭션을 생성한다.
IATP 인스턴스의 필요한 모든 트랜잭션에 대해 모든 커미트먼트 채널이 생성된 후, 동작(312)에서, 노드는 키 셰어 및 적절한 비밀 공유 방식(예컨대, 샤미르의 비밀 공유)을 이용하여 프로토콜의 다른 모든 참여 노드와 협력해서 개인 키(k)를 복구한다. k 값이 결정되면, 참여 노드가 커미트먼트 채널의 양수인인 경우, 노드는 전송된 수량의 토큰을 획득하기 위해 대응하는 전송 트랜잭션의 <scriptSig>에서 비밀 값(svB=k+kB)을 사용한다. 그런 다음 IATP 인스턴스의 모든 전송 트랜잭션(Tt)이 블록체인에 제출될 수 있다. 전송 트랜잭션은 구조화되지 않은 방식으로 브로드캐스트될 수 있으며, 랜덤 순서 또는 트랜잭션을 제출하는 참여자 노드에 의해 결정된 임의의 순서일 수 있다. 트랜잭션이 브로드캐스트되는 순서의 임의성은 프로토콜의 최종 및 최초 단계를 추적하고 인식하기 어렵게 만드는 데 도움이 될 수 있다.
IATP의 적어도 일부 인스턴스에서, 노드가 관련된 간접 전송 트랜잭션을 위해 참여 노드에 의해 제공되는 각각의 입력 및 출력 주소는 고유하다. 즉, 입력 주소든 또는 출력 주소든 노드의 주소는 IATP 프로토콜의 어느 시점에서도 재사용되지 않는다. 다시 말해서, 일부 경우에, 노드(Ui)가 ni1 간접 전송 트랜잭션에서 입력 노드 역할을 하고 ni2 간접 전송 트랜잭션에서 출력 노드 역할을 하는 경우, Ui는 적어도 ni1+ni2개의 별개의 주소 및 IATP에 참여하기 전에 입력으로 사용되는 이들 주소에서 이미 사용 가능한 충분한 자금을 갖도록 IATP의 참여 노드에 제한이 부과될 수 있다. 이들 복수의 "연결 해제된" 주소는 참여자의 복수의 커미트먼트 채널이 동시에 존재할 수 있게 하고, 외부 당사자가 토큰 흐름을 추적하는 것을 더 어렵게 하여 참여 노드가 관련된 트랜잭션에 대한 익명성을 향상시킬 수 있다.
이제 참여 노드(500)의 단순화된 예를 블록도 형태로 도시한 도 6을 참조할 것이다. 노드(500)는 입력 노드 또는 출력 노드일 수 있다. 노드(500)는 하나 이상의 마이크로 프로세서, ASICs(application specific integrated chips), 마이크로 컨트롤러 또는 유사한 컴퓨터 처리 장치를 포함할 수 있는 프로세서(502)를 포함한다. 노드(500)는 또한 값, 변수, 및 일부 경우에는 프로세서 실행 가능 프로그램 명령어를 저장하기 위한 영구 및 비영구 메모리를 포함할 수 있는 메모리(504) 및 유선 또는 무선 네트워크를 통해 네트워크 연결을 제공하는 네트워크 인터페이스(506)를 포함한다.
노드(500)는 실행될 때 프로세서(502)로 하여금 본 명세서에 설명된 기능 또는 동작 중 하나 이상을 수행하게 하는 프로세서 실행 가능 명령어를 포함하는 프로세서 실행 가능 블록체인 애플리케이션(508)을 포함한다.
본 명세서에 기술된 장치 및 프로세스 그리고 참여 노드를 구성하기 위한 설명된 방법/프로세스를 구현하는 임의의 모듈, 루틴, 프로세스, 스레드, 애플리케이션, 또는 다른 소프트웨어 구성 요소는 표준 컴퓨터 프로그래밍 기술 및 언어를 사용하여 실현될 수 있음을 이해할 수 있을 것이다. 본 출원은 특정 프로세서, 컴퓨터 언어, 컴퓨터 프로그래밍 규칙, 데이터 구조 및 다른 그러한 구현 세부 사항으로 제한되지 않는다.
전술한 실시예는 본 발명을 제한하기보다는 예시하는 것이며, 당업자는 첨부된 청구범위에 의해 정의된 본 발명의 범위를 벗어나지 않고 많은 대안적인 실시예를 고안할 수 있을 것이라는 점에 유의해야 한다. 청구범위에서, 괄호 안의 참조 부호는 청구범위를 제한하는 것으로 해석되지 않아야 한다. "포함하는(comprising)" 및 "포함한다(comprises)" 등의 단어는 임의의 청구항 또는 명세서 전체에 열거된 것 이외의 요소 또는 단계의 존재를 배제하지 않는다. 본 명세서에서, "포함"이라는 표현은 "갖고 있다거나 구성된다"는 것을 의미한다. 요소의 단수 참조는 그러한 요소의 복수 참조를 배제하지 않으며 그 반대도 마찬가지이다. 본 발명은 몇 가지 별개의 요소를 포함하는 하드웨어 및 적절하게 프로그래밍된 컴퓨터에 의해 구현될 수 있다. 여러 수단을 열거하는 장치 청구항에서, 이들 수단 중 일부는 하나의 동일한 하드웨어 항목에 의해 구현될 수 있다. 특정 수단들이 서로 다른 종속 항들에서 인용된다는 사실은 이러한 수단들의 조합이 유리하게 사용될 수 없다는 것을 나타내지는 않는다.

Claims (10)

  1. 블록체인을 사용하는 송신자 노드와 제각기의 수신자 노드의 복수의 쌍들 사이에서 제각기의 제1 수량의 토큰을 전송하는 토큰 전송 프로세스를 개시하는 컴퓨터 구현 방법으로서,
    상기 토큰 전송 프로세스에서 트랜잭션 라운드(transaction round)의 수를 결정하는 단계와,
    상기 제각기의 제1 수량의 토큰 및 상기 트랜잭션 라운드의 수에 기초하여 간접 토큰 트랜잭션 세트를 생성하는 단계 - 상기 세트 내의 모든 간접 토큰 트랜잭션의 실행 결과 상기 송신자 노드로부터 이들의 제각기의 수신자 노드로 상기 제각기의 수량의 토큰의 순 전송(net transfer)이 이루어지고, 상기 간접 토큰 트랜잭션 세트는 특정 간접 토큰 트랜잭션에 대한 입력 노드 또는 출력 노드일 수 있는 무작위의 송신자 노드 및 수신자 노드 쌍을 포함함 - 와,
    각각의 상기 송신자 노드 및 상기 수신자 노드에 대해, 상기 간접 토큰 트랜잭션 세트의 서브세트를 해당 노드로 송신하는 단계 - 상기 서브세트는 해당 노드가 입력 노드 또는 출력 노드인 트랜잭션을 포함함 - 를 포함하는,
    방법.
  2. 제1항에 있어서,
    상기 간접 토큰 트랜잭션 세트는 무작위로 생성된 제1 트랜잭션 그룹을 포함하고, 상기 제1 트랜잭션 그룹 내의 각 트랜잭션은 무작위로 선택된 참여 노드 쌍 사이에서 전송하기 위한 제각기의 간접 토큰 수량을 명시하는,
    방법.
  3. 제2항에 있어서,
    상기 간접 토큰 수량은 무작위로 선택되는,
    방법.
  4. 제3항에 있어서,
    상기 간접 토큰 수량은 확률 분포에서 결정되는,
    방법.
  5. 제2항에 있어서,
    상기 간접 토큰 수량은 임계값 이하인,
    방법.
  6. 제2항에 있어서,
    상기 간접 토큰 트랜잭션 세트는, 상기 제1 트랜잭션 그룹으로 인한 순 토큰 전송을 상기 송신자 노드와 상기 수신자 노드 사이의 상기 제1 수량의 토큰의 순 전송으로 조정하기 위한 제2 트랜잭션 그룹을 더 포함하는,
    방법.
  7. 제1항에 있어서,
    상기 서브세트를 상기 참여 노드로 송신하는 것은 상기 서브세트를 포함하는 암호화된 메시지를 상기 참여 노드로 송신하는 것을 포함하고, 상기 메시지는 상기 참여 노드와 연관된 공개 키를 사용하여 암호화되는,
    방법.
  8. 제1항에 있어서,
    상기 간접 토큰 트랜잭션 세트는 라운드당 트랜잭션의 수(q)에 기초하여 생성되는,
    방법.
  9. 복수의 참여 노드들을 포함하는 토큰 전송 프로세스를 개시하는 컴퓨팅 장치로서,
    메모리와,
    네트워크 접속을 제공하는 네트워크 인터페이스와,
    제1항 내지 제8항 중 어느 한 항에 따른 방법을 수행하도록 구성된 프로세서를 포함하는,
    컴퓨팅 장치.
  10. 복수의 참여 노드들을 포함하는 토큰 전송 프로세스를 개시하기 위한 프로세서 실행가능 명령어를 저장하는 비일시적 프로세서 판독가능 매체로서,
    상기 프로세서 실행가능 명령어는 프로세서에 의해 실행될 경우, 상기 프로세서로 하여금 제1항 내지 제8항 중 어느 한 항에 따른 방법을 수행하게 하는,
    방법.
KR1020197038779A 2017-06-20 2018-06-19 블록체인 네트워크를 이용한 멀티 라운드 토큰 분배 시스템 및 방법 Active KR102610335B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GB1709871.6 2017-06-20
GBGB1709868.2A GB201709868D0 (en) 2017-06-20 2017-06-20 Computer-implemented system and method
GBGB1709871.6A GB201709871D0 (en) 2017-06-20 2017-06-20 Computer-implemented system and method
GB1709868.2 2017-06-20
PCT/IB2018/054505 WO2018234991A1 (en) 2017-06-20 2018-06-19 SYSTEM AND METHOD FOR DISTRIBUTING MULTITOUR TOKENS USING A BLOCK CHAIN NETWORK

Publications (2)

Publication Number Publication Date
KR20200020735A true KR20200020735A (ko) 2020-02-26
KR102610335B1 KR102610335B1 (ko) 2023-12-07

Family

ID=62904534

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020197038779A Active KR102610335B1 (ko) 2017-06-20 2018-06-19 블록체인 네트워크를 이용한 멀티 라운드 토큰 분배 시스템 및 방법
KR1020197038793A Active KR102618691B1 (ko) 2017-06-20 2018-06-19 블록체인 네트워크를 이용한 멀티 라운드 토큰 분배 시스템 및 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020197038793A Active KR102618691B1 (ko) 2017-06-20 2018-06-19 블록체인 네트워크를 이용한 멀티 라운드 토큰 분배 시스템 및 방법

Country Status (8)

Country Link
US (6) US11397943B2 (ko)
EP (6) EP3642774B1 (ko)
JP (4) JP7199383B2 (ko)
KR (2) KR102610335B1 (ko)
CN (4) CN110785782B (ko)
SG (2) SG11201910768QA (ko)
WO (2) WO2018234990A1 (ko)
ZA (2) ZA201907839B (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3642774B1 (en) 2017-06-20 2023-05-10 nChain Licensing AG System and method of multi-round token distribution using a blockchain network
CN113765657B (zh) * 2017-08-28 2023-10-24 创新先进技术有限公司 一种密钥数据处理方法、装置及服务器
WO2019158209A1 (en) * 2018-02-16 2019-08-22 Ecole polytechnique fédérale de Lausanne (EPFL) Methods and systems for secure data exchange
GB201806448D0 (en) * 2018-04-20 2018-06-06 Nchain Holdings Ltd Computer-implemented methods and systems
GB201811773D0 (en) * 2018-07-19 2018-09-05 Nchain Holdings Ltd Computer-implemented system and method
CN109829716B (zh) * 2019-01-04 2021-08-03 武汉大学 一种基于区块链的应用通证的循环方法及装置
KR102135727B1 (ko) * 2019-01-16 2020-07-20 목포대학교산학협력단 토큰을 활용한 IoT 블록체인 시스템 및 이를 이용한 다단계 인증 방법
WO2019120332A2 (en) * 2019-04-12 2019-06-27 Alibaba Group Holding Limited Performing parallel execution of transactions in a distributed ledger system
GB2601125A (en) * 2020-11-18 2022-05-25 Nchain Holdings Ltd Node versioning
US20220188781A1 (en) * 2020-12-12 2022-06-16 Samer M. EL-BIZRI Systems and methods for efficient electronic token ecosystems
CN117242473A (zh) * 2021-02-25 2023-12-15 Nym技术股份公司 去中心化激励混合网络
US12316752B2 (en) * 2021-09-30 2025-05-27 Seagate Technology Llc Polynomial function secret sharing
US11823531B1 (en) * 2022-05-04 2023-11-21 Gad Research, Llc Proof of play blockchain mining
CN118195601A (zh) * 2024-04-25 2024-06-14 第一资本(香港)有限公司 一种基于区块链技术的代币交易系统和方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070120125A (ko) * 2005-04-19 2007-12-21 마이크로소프트 코포레이션 온라인 거래 허가 방법, 시스템 및 장치
KR20160095720A (ko) * 2015-02-03 2016-08-12 한양대학교 에리카산학협력단 암호화 화폐의 거래를 보호하는 방법 및 장치
KR101701131B1 (ko) * 2016-04-28 2017-02-13 주식회사 라피 이종간 블록체인 연결을 이용한 데이터 기록/검증 방법 및 시스템
KR101727525B1 (ko) * 2016-09-05 2017-04-17 주식회사 스케일체인 블록체인 기반 분산 저장 방법 및 이를 이용한 장치
KR101735708B1 (ko) * 2016-02-02 2017-05-15 주식회사 코인플러그 파일에 대한 노터리 서비스를 제공하고 상기 노터리 서비스를 사용하여 기록된 파일에 대한 검증을 수행하는 방법 및 서버

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2403579A (en) * 2003-06-05 2005-01-05 Liquid Drop Ltd System for rapid and secure processing of mobile-tokens
CN101529770A (zh) * 2006-08-25 2009-09-09 亚马逊技术有限公司 在交易中利用短语令牌
US10692325B2 (en) 2008-06-20 2020-06-23 Ag 18, Llc Location based restrictions on networked gaming
CN101720099B (zh) * 2009-11-27 2012-04-25 华为技术有限公司 一种节点协作方法及节点设备
CN101754399B (zh) * 2009-12-16 2012-09-12 北京航空航天大学 多信道协作多址接入方法和系统
CN102831515A (zh) * 2011-06-17 2012-12-19 苏州工业园区辰烁软件科技有限公司 一种通过移动设备进行电子转账的方法及系统
US20170140145A1 (en) * 2012-05-14 2017-05-18 Netspective Communications Llc Computer-controlled physically distributed collaborative asynchronous digital transactions
CN103679443A (zh) * 2012-09-18 2014-03-26 中国银联股份有限公司 一种利用手机终端进行的支付方法及其处理系统
US9710808B2 (en) 2013-09-16 2017-07-18 Igor V. SLEPININ Direct digital cash system and method
FR3018378A1 (fr) 2014-03-12 2015-09-11 Enrico Maim Systeme et procede transactionnels a architecture repartie fondees sur des transactions de transferts d'unites de compte entre adresses
EP4693151A3 (en) 2014-05-09 2026-04-08 Veritaseum, Inc. Devices, systems, and methods for facilitating low trust and zero trust value transfers
US10396992B2 (en) 2014-06-30 2019-08-27 Vescel, Llc Authentication of a user and/or a device through parallel synchronous update of immutable hash histories
EP3248159A4 (en) 2015-01-19 2018-08-01 Royal Bank Of Canada Secure processing of electronic payments
EP3251046B1 (fr) * 2015-01-30 2021-03-24 Enrico Maim Systèmes et procédés pour la gestion d'engagements en réseau d'entités sécurisées
CN107408245A (zh) 2015-02-27 2017-11-28 维萨国际服务协会 利用非对称密码学的交易签名
KR20160128170A (ko) * 2015-04-28 2016-11-07 고려대학교 산학협력단 비밀키 암호화 및 복원을 제공하는 단말, 서버 및 방법
US20160342977A1 (en) * 2015-05-20 2016-11-24 Vennd.io Pty Ltd Device, method and system for virtual asset transactions
US20170032365A1 (en) * 2015-07-31 2017-02-02 Mozido, Inc. Crypto-currency-based accrued value interoperability
US20180331832A1 (en) 2015-11-05 2018-11-15 Allen Pulsifer Cryptographic Transactions System
US11941588B2 (en) 2015-11-06 2024-03-26 Cable Television Laboratories, Inc. Systems and methods for blockchain virtualization and scalability
WO2017091530A1 (en) 2015-11-24 2017-06-01 Gartland & Mellina Group Blockchain solutions for financial services and other transaction-based industries
US10230756B2 (en) 2015-11-25 2019-03-12 International Business Machines Corporation Resisting replay attacks efficiently in a permissioned and privacy-preserving blockchain network
AU2017216289A1 (en) 2016-02-04 2018-09-27 Nasdaq Technology Ab Systems and methods for storing and sharing transactional data using distributed computer systems
US11354658B2 (en) 2016-02-11 2022-06-07 Mastercard International Incorporated Method and system for offline blockchain exchanges
US10529041B2 (en) 2016-04-18 2020-01-07 Rs Ltd. System and method for managing transactions in dynamic digital documents
KR102639135B1 (ko) 2016-07-29 2024-02-20 매직 립, 인코포레이티드 암호화방식으로 싸인된 레코드들의 안전한 교환
CN106296138A (zh) * 2016-08-09 2017-01-04 西安电子科技大学 基于部分盲签名技术的比特币支付系统及其方法
MX2019002573A (es) 2016-09-09 2019-08-01 Microsoft Technology Licensing Llc Rastreo de objetos a traves de diferentes partes.
EP3539026B1 (en) * 2016-11-10 2021-12-08 Swirlds, Inc. Methods and apparatus for a distributed database including anonymous entries
CN106559211B (zh) * 2016-11-22 2019-12-13 中国电子科技集团公司第三十研究所 一种区块链中隐私保护智能合约方法
CN106790112B (zh) * 2016-12-26 2020-05-05 重庆高开清芯科技产业发展有限公司 一种集成轻量级区块链的节点操作系统及数据更新的方法
CN110603557B (zh) 2017-03-16 2024-04-12 香港物流及供应链管理应用技术研发中心 控制交易账本的系统和方法
US20180285996A1 (en) 2017-04-03 2018-10-04 FutureLab Consulting Inc. Methods and system for managing intellectual property using a blockchain
US10832230B2 (en) 2017-04-04 2020-11-10 International Business Machines Corporation Scalable and distributed shared ledger transaction management
GB201705621D0 (en) * 2017-04-07 2017-05-24 Nchain Holdings Ltd Computer-implemented system and method
US10503614B2 (en) * 2017-04-21 2019-12-10 Vmware, Inc. Byzantine agreement using communications having linear complexity
EP3642774B1 (en) 2017-06-20 2023-05-10 nChain Licensing AG System and method of multi-round token distribution using a blockchain network
WO2019028068A1 (en) 2017-08-01 2019-02-07 Digital Asset (Switzerland) GmbH METHOD AND APPARATUS FOR AUTOMATICALLY ENGAGED PAYMENT OF DIGITAL GOODS
US10887090B2 (en) 2017-09-22 2021-01-05 Nec Corporation Scalable byzantine fault-tolerant protocol with partial tee support
CN111612446A (zh) 2018-01-19 2020-09-01 阿里巴巴集团控股有限公司 区块链余额的调整方法及装置、电子设备
US10754693B2 (en) 2018-07-05 2020-08-25 Vmware, Inc. Secure transfer of control over computational entities in a distributed computing environment
US11240003B2 (en) * 2019-03-26 2022-02-01 International Business Machines Corporation Consent-based data management
US11853291B2 (en) * 2020-07-06 2023-12-26 International Business Machines Corporation Privacy preserving architecture for permissioned blockchains

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070120125A (ko) * 2005-04-19 2007-12-21 마이크로소프트 코포레이션 온라인 거래 허가 방법, 시스템 및 장치
KR20160095720A (ko) * 2015-02-03 2016-08-12 한양대학교 에리카산학협력단 암호화 화폐의 거래를 보호하는 방법 및 장치
KR101735708B1 (ko) * 2016-02-02 2017-05-15 주식회사 코인플러그 파일에 대한 노터리 서비스를 제공하고 상기 노터리 서비스를 사용하여 기록된 파일에 대한 검증을 수행하는 방법 및 서버
KR101701131B1 (ko) * 2016-04-28 2017-02-13 주식회사 라피 이종간 블록체인 연결을 이용한 데이터 기록/검증 방법 및 시스템
KR101727525B1 (ko) * 2016-09-05 2017-04-17 주식회사 스케일체인 블록체인 기반 분산 저장 방법 및 이를 이용한 장치

Also Published As

Publication number Publication date
US20240265372A1 (en) 2024-08-08
US20210182839A1 (en) 2021-06-17
EP4468649B1 (en) 2026-03-25
SG11201910769WA (en) 2020-01-30
EP3642773A1 (en) 2020-04-29
KR102618691B1 (ko) 2023-12-29
US12277548B2 (en) 2025-04-15
US11488144B2 (en) 2022-11-01
CN110785782B (zh) 2024-07-19
EP3642774B1 (en) 2023-05-10
WO2018234990A1 (en) 2018-12-27
CN110785782A (zh) 2020-02-11
CN118798863A (zh) 2024-10-18
EP4224392A1 (en) 2023-08-09
EP4468649A2 (en) 2024-11-27
EP3642773B1 (en) 2023-03-22
EP3642774A1 (en) 2020-04-29
JP2020524926A (ja) 2020-08-20
US12073387B2 (en) 2024-08-27
JP2023040203A (ja) 2023-03-22
JP7606801B2 (ja) 2024-12-26
US11397943B2 (en) 2022-07-26
KR102610335B1 (ko) 2023-12-07
US12131313B2 (en) 2024-10-29
JP7199383B2 (ja) 2023-01-05
EP4224392B1 (en) 2024-11-20
WO2018234991A1 (en) 2018-12-27
EP4407923B1 (en) 2025-12-10
US12602681B2 (en) 2026-04-14
JP2020524925A (ja) 2020-08-20
JP7210479B2 (ja) 2023-01-23
JP7587607B2 (ja) 2024-11-20
JP2023036765A (ja) 2023-03-14
CN110770773A (zh) 2020-02-07
EP4209979B1 (en) 2024-07-24
SG11201910768QA (en) 2020-01-30
CN110770773B (zh) 2024-07-19
ZA201907839B (en) 2023-05-31
ZA201907838B (en) 2023-10-25
US20250086615A1 (en) 2025-03-13
EP4407923A3 (en) 2024-11-06
US20210184855A1 (en) 2021-06-17
EP4468649A3 (en) 2025-02-19
US20230110433A1 (en) 2023-04-13
KR20200020736A (ko) 2020-02-26
EP4407923A2 (en) 2024-07-31
CN118710261A (zh) 2024-09-27
US20230120073A1 (en) 2023-04-20
EP4209979A1 (en) 2023-07-12

Similar Documents

Publication Publication Date Title
KR102610335B1 (ko) 블록체인 네트워크를 이용한 멀티 라운드 토큰 분배 시스템 및 방법
KR20200019944A (ko) 블록체인 네트워크에서 계층적 토큰 분산을 위한 시스템 및 방법
HK40092144A (en) System and method of multi-round token distribution using a blockchain network
HK40092145A (en) System and method of multi-round token distribution using a blockchain network
HK40017117B (en) System and method of multi-round token distribution using a blockchain network
HK40017117A (en) System and method of multi-round token distribution using a blockchain network

Legal Events

Date Code Title Description
PA0105 International application

St.27 status event code: A-0-1-A10-A15-nap-PA0105

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

P22-X000 Classification modified

St.27 status event code: A-2-2-P10-P22-nap-X000

D14-X000 Search report completed

St.27 status event code: A-1-2-D10-D14-srh-X000

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

T11-X000 Administrative time limit extension requested

St.27 status event code: U-3-3-T10-T11-oth-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

Fee payment year number: 1

St.27 status event code: A-2-2-U10-U12-oth-PR1002

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000