KR102670611B1 - 블록체인-구현 이벤트-잠금 암호화를 위한 방법 및 시스템 - Google Patents

블록체인-구현 이벤트-잠금 암호화를 위한 방법 및 시스템 Download PDF

Info

Publication number
KR102670611B1
KR102670611B1 KR1020207002997A KR20207002997A KR102670611B1 KR 102670611 B1 KR102670611 B1 KR 102670611B1 KR 1020207002997 A KR1020207002997 A KR 1020207002997A KR 20207002997 A KR20207002997 A KR 20207002997A KR 102670611 B1 KR102670611 B1 KR 102670611B1
Authority
KR
South Korea
Prior art keywords
congress
key
event
transaction
public key
Prior art date
Application number
KR1020207002997A
Other languages
English (en)
Other versions
KR20200028961A (ko
Inventor
존 플래처
Original Assignee
엔체인 홀딩스 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엔체인 홀딩스 리미티드 filed Critical 엔체인 홀딩스 리미티드
Publication of KR20200028961A publication Critical patent/KR20200028961A/ko
Application granted granted Critical
Publication of KR102670611B1 publication Critical patent/KR102670611B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0847Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving identity based encryption [IBE] schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key 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 asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3255Cryptographic 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 using group based signatures, e.g. ring or threshold signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Storage Device Security (AREA)

Abstract

컴퓨터-구현 방법이 제공될 수 있다. 예를 들어, 비트코인 네트워크와 같은 블록체인 네트워크를 적어도 부분적으로 사용해서 구현될 수 있다. 컴퓨터-구현 방법은: i) 적어도 콩그레스 공개 키를 사용하여 아이덴티티-기반의 암호화 스킴에 따라 암호화 공개 키에 평문 메시지를 암호화해서 암호화된 메시지를 생성― 콩그레스 공개 키는 콩그레스의 멤버들과 연관되고, 콩그레스의 각각의 멤버는 적어도 개인 키 지분의 임계치가 콩그레스를 대신하여 복호 키에 대한 부분적인 기여들의 조합을 통해 복호 키를 도출하기에 충분한 임계치 복호 스킴에서 사용 가능한 개인 키 지분에 액세스함 ―하는 단계; ii) 적어도 암호화 공개 키에 대응하는 암호화 개인 키를 사용해서, 이벤트의 발생시에 암호화 연산을 수행하기 위한 제1 명령어 세트를 통해 디지털 서명을 생성하는 단계; 및 iii) 하나 이상의 트랜잭션을 작업 증명(proof-of-work) 블록체인 네트워크에 브로드캐스트― 하나 이상의 트랜잭션은 암호화된 메시지, 암호화 공개 키, 적어도 제1 명령어 세트, 및 제2 명령어 세트를 포함함 ―하는 단계를 포함하고, 제2 명령어 세트는 콩그레스의 멤버들에게: 디지털 서명이 인증된 것인지의 여부에 따라 발생하는 이벤트에 대한 컨센서스에 도달하는 것에 응답하여, 제1 명령어 세트를 수행하기 위한 고스트 체인(ghost chain)을 전개하도록 협력시키고, 제1 명령어 세트를 수행하는 것은 임계치를 만족하는 복수의 개인 키 지분 및 암호화 키로부터 적어도 복호 키를 도출하는 것을 포함하고, 복호 키는 암호화된 메시지로부터 평문 메시지를 취득하기에 충분한 암호화 자료이다.

Description

블록체인-구현 이벤트-잠금 암호화를 위한 방법 및 시스템
본 발명은 일반적으로 분산 시스템(distributed systems)에 관한 것으로, 특히 분산 시스템 상의 트랜잭션에 있어서의 이벤트-잠금된 연산(event-locked operation)을 위한 방법 및 시스템에 관한 것이다. 이벤트-잠금(event-locking) 및 이벤트-잠금 암호화(event-lock encryption)는 이벤트의 발생에 응답하여 데이터에 대한 연산을 수행하는 것을 의미할 수 있으며, 예를 들어, 이벤트-잠금 암호화 스킴 하에서는, 이벤트의 발생에 응답하여 암호문 메시지가 복호될 수 있다. 특정 유형의 이벤트-잠금 암호화는, 메시지가 암호화되고 나서, 일정 시간이 경과한 후에, 암호화된 메시지가 복호되거나 또는 복호 가능해지는 시한-잠금(time-lock) 암호화 스킴이다. 본 발명은, 한정되는 것은 아니지만, 효율적이고 신뢰할 수 있게 메시지를 생성하고, 이벤트의 발생을 검출하고, 분산 시스템을 사용해서 이벤트의 발생을 검증하는 것에 응답하여 연산을 수행하는 데 특히 적합하다. 예를 들어, 메시지는 시한-잠금 암호화 스킴 하에서 암호화될 수 있으며, 이 경우, 상응하는 복호 연산은 상당한 (가능하게는 무작위의) 시간의 경과의 결과로서 발생할 수 있다.
본 명세서에 있어서는, '블록체인(blockchain)'이라는 용어를 모든 형태의 전자적인, 컴퓨터-기반의, 분산 원장(distributed ledgers)을 포함한다는 의미로 사용한다. 이는 블록체인 및 트랜잭션-체인 기술, 허가 및 무허가 원장, 공유 원장 및 이들의 변형을 포함하지만, 이들에 한정되는 것은 아니다. 다른 블록체인 구현예들이 제안되고 개발되었지만, 가장 널리 알려져 있는 블록체인 기술의 용례는 비트코인(Bitcoin) 원장이다. 본 명세서에서는 편의 및 예시의 목적으로 비트코인이 언급될 수 있지만, 본 발명은 비트코인 블록체인에 사용하는 것으로 한정되지 않으며 대안적인 블록체인 구현예 및 프로토콜도 본 발명의 범위 내에 있는 것이라는 점에 유의해야 한다.
블록체인은, 결국 트랜잭션들 및 그 밖의 정보로 구성된 블록들로 구성되는 컴퓨터-기반의 탈-중앙집중형 분산 시스템으로 구현된 컨센서스(consensus)-기반의 전자 원장이다. 비트코인의 경우, 각각의 트랜잭션은 블록체인 시스템 참여자들 사이의 디지털 자산의 제어의 전송을 인코딩하는 데이터 구조이며, 적어도 하나의 입력 및 적어도 하나의 출력을 포함한다. 각각의 블록이 이전 블록의 해시를 포함하고, 해당 블록들이 함께 연쇄되어 그 개시 이래로 블록체인에 작성된 모든 트랜잭션의 영구적인 불변의 레코드를 생성한다. 트랜잭션은 그 입력 및 출력에 내재된 스크립트(script)라고 하는 소규모 프로그램을 포함하고, 이는 트랜잭션의 출력에 액세스할 수 있는 방법 및 대상을 특정한다. 비트코인 플랫폼의 경우, 이러한 스크립트는 스택-기반 스크립팅 언어를 사용해서 작성된다.
블록체인에 트랜잭션이 작성되게 하기 위해서는, 트랜잭션이 "유효성 검증(validate)"되어야 한다. 일부 네트워크 노드는 채굴자로서의 역할을 하며, 각각의 트랜잭션이 유효함을 보장하고, 무효한 트랜잭션이 네트워크로부터 거부되게 하는 작업을 수행한다. 예를 들어, 노드에 인스톨되는 소프트웨어 클라이언트는 아직 소비되지 않은 트랜잭션 출력(unspent transaction outputs)(UTXO)을 참조하는 트랜잭션에 대하여 이 유효성 검증 작업을 수행한다. 유효성 검증은 그 잠금 및 잠금 해제 스크립트를 실행함으로써 수행될 수 있다. 잠금 및 잠금 해제 스크립트의 실행이 TRUE로 평가하고, 다른 특정 조건들이 충족되면, 트랜잭션은 유효하고, 트랜잭션이 블록체인에 작성될 수 있다. 따라서, 블록체인에 트랜잭션이 작성되게 하기 위해서는, i) 트랜잭션을 수신하는 노드에 의해 유효성 검증되어야 하고 ― 트랜잭션이 유효성 검증되면, 해당 노드가 네트워크 내의 다른 노드들에 트랜잭션을 중계하고; ii) 채굴자에 의해 구축되는 신규 블록에 추가되어야 하고; iii) 채굴, 즉 과거 트랜잭션들의 공공 원장에 추가되어야 한다. 트랜잭션을 사실상 불가역적으로 만들기 위해 충분한 수의 블록들이 블록체인에 추가된 경우, 트랜잭션은 확인된 것으로 간주된다.
암호화폐 구현용으로 블록체인 기술이 가장 널리 알려져 있지만, 디지털 사업가는 비트코인이 기초로 하는 암호화 보안 시스템 및 신규 시스템을 구현하기 위해 블록체인에 저장될 수 있는 데이터를 모두 이용하는 것을 모색하기 시작했다. 블록체인이 전적으로 암호화폐로 액수가 정해지는 지불에 한정되지 않는 자동화된 작업 및 프로세스에 사용될 수 있다면 매우 유리할 것이다. 이러한 해법은 블록체인의 이점(예컨대, 영구적인 변조 방지 이벤트 레코드, 분산 처리 등)을 활용할 수 있으면서 그 용례에 있어서 더욱 다용도이다.
블록체인 기술이 새로운 특징을 제공하도록 확장됨에 따라, 블록체인 및 그 안에서 표현되는 디지털 자산의 보안을 유지하는 것이 중요하다. 블록체인에 의존하는 확장된 특징 세트는 악의적인 파티들로부터의 공격 대상이 될 수 있다. 따라서, 블록체인에 또는 블록체인의 새로운 특징에 추가적인 보안을 제공하거나 또는 디지털 자산에 대한 소유권을 제어해서 블록체인의 무결성을 유지하는 방법 및 장치를 제공하는 것이 유용할 수 있다.
또한, 블록체인에 대한 새로운 개량 또는 수정이 개발됨에 따라, 하나의 블록체인에서 다른 블록체인으로, 양 블록체인의 무결성을 유지하면서 디지털 자산을 제어 및 전송하기 위한 기술을 보유하는 것이 도움이 된다. 따라서, 하나 이상의 이들 양태에서 블록체인 기술을 향상시키는 개선된 방법 및 장치를 제공하는 것이 바람직하다.
따라서, 본 발명에 따르면, 첨부된 청구항들에서 정의되는 바와 같은 방법/시스템이 제공된다.
아래에서 더욱 상세하게 설명되는 바와 같이, 블록체인 네트워크 상에 콩그레스(congress)가 형성될 수 있다. 콩그레스는 해당 콩그레스와 연관된 풀(pool)에 충분한 지분의 제출시에 블록체인 네트워크의 임의의 노드가 가담할 수 있는 개방형-멤버십 그룹이다. 예를 들어, 노드는 디지털 통화(예를 들면, 비트코인), 토큰, 또는 그 밖의 지분 또는 가치와 같은 디지털 자산을 콩그레스와 연관된 리소스(예컨대, 계정)에 전송하는 것을 통해 콩그레스에 가담할 수 있다. 콩그레스는, 부분적으로, 개인 키 지분(private key shares)의 분산 생성을 통해 보호될 수 있다. 각각의 개인 키 지분은 그 보유자에 의해 사용되어 트랜잭션에 대한 부분 서명(partial signature)을 생성할 수 있다. 임계치 서명 스킴은 적어도 부분 서명의 임계치를 사용해서 이러한 트랜잭션에 대한 유효한 서명을 생성하는 데 사용될 수 있다. 멤버 예치금은 악의적인 행위에 대한 몰수 대상이 된다.
유리하게는, 키 지분(key shares) 및 그 밖의 보안 특징의 분산 생성의 사용을 통해, 키 지분이 그룹 멤버 또는 비-그룹 멤버에 의한 악의적인 활동을 방지하도록 보호된다. 임계치 서명 스킴의 사용과 결합되는 이러한 보안은 탈-중앙집중화된 자치 그룹이 형성될 수 있게 하고, 해당 그룹은, 예를 들어, 양방향 페그(peg)를 제공하는 것을 포함하여, 다수의 목적들 중 어느 하나에 대하여 사용될 수 있다. 특히, 임계치 서명 스킴은 해당 그룹이 그룹과 연관된 공개 키에 의해 저당잡히는 디지털 자산을 제어할 수 있게 한다.
따라서, 본 발명에 따르면, 컴퓨터-구현 방법이 제공될 수 있다. 컴퓨터-구현 방법은: i) 적어도 콩그레스 공개 키를 사용하여 아이덴티티-기반의 암호화 스킴에 따라 암호화 공개 키에 평문 메시지를 암호화해서 암호화된 메시지를 생성― 콩그레스 공개 키는 콩그레스의 멤버들과 연관되고, 콩그레스의 각각의 멤버는 적어도 개인 키 지분의 임계치가 콩그레스를 대신하여 복호 키에 대한 부분적인 기여들의 조합을 통해 복호 키를 도출하기에 충분한 임계치 복호 스킴에서 사용 가능한 개인 키 지분에 액세스함 ―하는 단계; ii) 적어도 암호화 공개 키에 대응하는 암호화 개인 키를 사용해서, 이벤트의 발생시에 암호화 연산을 수행하기 위한 제1 명령어 세트를 통해 디지털 서명을 생성하는 단계; 및 iii) 하나 이상의 트랜잭션을 작업 증명(proof-of-work) 블록체인 네트워크에 브로드캐스트― 하나 이상의 트랜잭션은 암호화된 메시지, 암호화 공개 키, 적어도 제1 명령어 세트, 및 제2 명령어 세트를 포함함 ―하는 단계를 포함할 수 있고, 제2 명령어 세트는 콩그레스의 멤버들에게: 디지털 서명이 인증된 것인지의 여부에 따라 발생하는 이벤트에 대한 컨센서스에 도달하는 것에 응답하여, 제1 명령어 세트를 수행하기 위한 고스트 체인(ghost chain)을 전개하도록 협력시키고, 제1 명령어 세트를 수행하는 것은 임계치를 만족하는 복수의 개인 키 지분 및 암호화 키로부터 적어도 복호 키를 도출하는 것을 포함하고, 복호 키는 암호화된 메시지로부터 평문 메시지를 취득하기에 충분한 암호화 자료이다.
일부 구현예에 있어서, 복호 키는 타원 곡선(elliptic curve)들에 대한 페어링(pairing)에 기초한 스킴에 적어도 부분적으로 기초하여 도출 가능하다.
일부 구현예에 있어서, 아이덴티티-기반의 암호화 스킴은 Boneh(보네)-Franklin(프랭클린) 아이덴티티-기반의 암호화 스킴에 따른다.
일부 구현예에 있어서, 하나 이상의 트랜잭션은 콩그레스와 연관된 공개 그룹 어드레스에 대한 수수료를 포함하는 트랜잭션을 포함하고, 해당 수수료는 복호 키를 도출하기 위해 협력하는 고스트 체인의 채굴자들 중 적어도 일부 채굴자에게 분산된다.
일부 구현예에 있어서, 고스트 체인의 채굴자들은 작업 증명 블록체인으로부터 취득 가능한 정보에 기초하여 이벤트에 대한 컨센서스에 도달한다.
일부 구현예에 있어서, 작업 증명 블록체인으로부터 취득 가능한 정보는 작업 증명 블록체인에 대한 트랜잭션 제출의 타임스탬프이다.
일부 구현예에 있어서, 작업 증명 블록체인으로부터 취득 가능한 정보는 적어도 특정 높이의 유효한 블록의 검출이다.
일부 구현예에 있어서, 컨센서스에는 콩그레스의 멤버들이 적어도 이벤트가 발생했다는 증명(attestation)의 임계치를 내보낸다는 것을 검출하는 것에 적어도 부분적으로 기초하여 도달되고, 이벤트의 발생은 작업 증명 블록체인 외부의 정보에 적어도 부분적으로 기초하여 결정되고, 또한, 증명의 진본성(authenticity)은 콩그레스의 각각의 멤버들과 연관된 암호화 공개 키를 사용해서 암호화 방식으로 검증 가능하다.
일부 구현예에 있어서, 증명은 소정의 기간 동안 내보내진다.
일부 구현예에 있어서, 하나 이상의 암호화 연산은 하나 이상의 복호 연산을 포함한다.
일부 구현예에 있어서, 하나 이상의 암호화 연산은 하나 이상의 인증(authentication) 연산을 포함한다.
일부 구현예에 있어서, 콩그레스의 멤버의 각각의 개인 키 지분은 멤버와 연관된 노드 내의 신뢰된 실행 환경(trusted execution environment) 내에서 암호화 연산을 수행하기 위해 생성 및 사용된다.
본 발명에 따르면, 전자 장치가 제공될 수 있다. 전자 장치는 인터페이스 장치, 인터페이스 장치에 결합되는 프로세서 및 프로세서에 결합되는 메모리를 포함한다. 메모리에는, 실행시에, 프로세서를 본 명세서에서 설명되는 방법을 수행하도록 구성하는 컴퓨터 실행 가능 명령어가 저장된다.
본 발명에 따르면, 컴퓨터 판독 가능 저장 매체가 제공될 수 있다. 컴퓨터 판독 가능 저장 매체는, 실행시에, 프로세서를 본 명세서에서 설명되는 방법을 수행하도록 구성하는 컴퓨터 실행 가능 명령어를 포함한다.
본 발명의 이들 및 다른 양태들은 본 명세서에서 설명되는 실시형태로부터 분명해지며 이를 참조하여 설명될 것이다. 이제, 본 발명의 실시형태가 첨부 도면을 참조하여 단지 예시로서 설명될 것이다:
도 1은 예시적인 블록체인 네트워크의 블록도를 도시한다.
도 2는 블록체인 네트워크에서 노드로서 기능할 수 있는 예시적인 전자 장치의 블록도를 도시한다.
도 3은 콩그레스를 개시하는 예시적인 방법의 흐름도이다.
도 4는 콩그레스에 가담하는 예시적인 방법의 흐름도이다.
도 5는 디지털 자산을 몰수하는 예시적인 방법의 흐름도이다.
도 6은 키 지분을 재분산하는 예시적인 방법의 흐름도이다.
도 7은 키 지분을 재분산하는 추가의 예시적인 방법의 흐름도이다.
도 8은 예치금을 반환하는 예시적인 방법의 흐름도이다.
도 9는 예시적인 블록체인 및 예시적인 고스트 체인의 블록도이다.
도 10은 작업의 완료를 요청하기 위한 예시적인 요청자(requester) 방법의 흐름도이다.
도 11은 작업에 대한 해법을 제안하기 위한 예시적인 제안자(proposer) 방법의 흐름도이다.
도 12는 작업에 대한 해법에 이의를 제기하기 위한 예시적인 챌린저(challenger) 방법의 흐름도이다.
도 13은 작업에 대한 해법에 대하여 챌린저를 중재하기 위한 예시적인 중재자(arbitrator) 방법의 흐름도이다.
도 14는 예시적인 블록체인 및 이벤트-잠금된 메지지의 블록도이다.
도 15는 이벤트-잠금된 메시지를 생성하기 위한 예시적인 암호화 방법의 흐름도이다.
도 16은 이벤트-잠금된 메시지에서 지정된 이벤트를 검출하고 이벤트-잠금된 메시지를 복호하는 데 사용 가능한 복호 키를 생성하는 것에 응답하여 단계들을 수행하기 위한 예시적인 방법의 흐름도이다.
블록체인 네트워크(Blockchain Network)
블록체인과 연관된 예시적인 블록체인 네트워크(100)를 블록도 형태로 도시하는 도 1을 먼저 참조한다. 블록체인 네트워크는 다른 멤버들로부터의 초대나 동의 없이 누구나 가담할 수 있는 피어-투-피어(peer-to-peer) 개방형 멤버십 네트워크인 공공 블록체인 네트워크일 수 있다. 블록체인 네트워크(100)가 동작하고 있는 블록체인 프로토콜의 인스턴스를 실행하는 분산 전자 장치는 블록체인 네트워크(100)에 참여할 수 있다. 이러한 분산 전자 장치를 노드(102)라고 할 수 있다. 블록체인 프로토콜은, 예를 들어 비트코인 프로토콜일 수 있다.
블록체인 프로토콜을 실행하고 블록체인 네트워크(100)의 노드(102)를 형성하는 전자 장치는, 예를 들어, 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 서버와 같은 컴퓨터, 스마트폰과 같은 모바일 장치, 스마트 워치와 같은 웨어러블 컴퓨터 또는 그 밖의 전자 장치를 포함하는 다양한 유형으로 될 수 있다.
블록체인 네트워크(100)의 노드(102)들은 유선 및 무선 통신 기술을 포함할 수 있는 적절한 통신 기술을 사용해서 서로 연결된다. 이러한 통신은 블록체인과 연관된 프로토콜을 준수한다. 예를 들어, 블록체인이 비트코인 블록체인일 경우, 비트코인 프로토콜이 사용될 수 있다.
노드(102)들은 블록체인 상의 모든 트랜잭션의 글로벌 원장을 유지한다. 따라서, 글로벌 원장은 분산 원장이다. 각각의 노드(102)는 글로벌 원장의 전체 복사본 또는 부분 복사본을 저장할 수 있다. 작업 증명에 의해 보호되는 블록체인의 경우, 글로벌 원장에 영향을 미치는 노드(102)에 의한 트랜잭션들은 다른 노드(102)들에 의해 검증되어 글로벌 원장의 유효성이 유지된다. 블록체인이 작업 증명 기반의 블록체인일 경우, 블록들도 마찬가지로 블록과 함께 제출되는 작업 증명을 검사함으로써 검증된다.
적어도 일부 노드(102)는 블록체인 네트워크(100)의 채굴자(104)로서 동작한다. 도 1의 블록체인 네트워크(100)는 채굴자(104)가 블록체인 상의 트랜잭션을 용이하게 하기 위해 비용이 많이 드는 연산을 수행하는 작업 증명 블록체인이다. 예를 들어, 작업 증명 블록체인은 채굴자에게 암호화 문제를 해결할 것을 요구할 수 있다. 비트코인에 있어서, 채굴자(104)는 블록 헤더(block header)가, SHA-256으로, 난이도에 따라 현재까지 정의된 가치보다 작은 수로 해싱하도록 논스(nonce)를 찾는다. 작업 증명 알고리즘에 필요한 해싱 능력은 트랜잭션이 그 외에 특정 수의 블록이 채굴된 후에는 사실상 불가역적인 것으로 간주됨을 의미한다. 암호화 문제를 해결한 채굴자(104)는 블록체인을 위한 새로운 블록을 생성하고 새로운 블록을 다른 노드(102)들에 브로드캐스트한다. 다른 노드(102)들은 채굴자(104)가 암호화 문제를 실제로 해결했고, 그에 따라 블록이 블록체인에 추가되어야 한다는 것을 수락하기 전에 충분한 작업 증명을 입증했는지를 검증한다. 블록은 노드(102)들의 컨센서스에 의해 블록체인(즉, 분산 글로벌 원장)에 추가된다.
채굴자(104)에 의해 생성되는 블록은 노드(102)들에 의해 블록체인에 브로드캐스트된 트랜잭션들을 포함한다. 예를 들어, 블록은 노드(102)들 중 하나와 연관된 어드레스로부터 노드(102)들 중 다른 하나와 연관된 어드레스로의 트랜잭션을 포함할 수 있다. 이렇게, 블록은 한 어드레스에서 다른 어드레스로의 트랜잭션의 레코드로서 기능한다. 트랜잭션이 블록에 포함되도록 요청한 파티는 그들이 그들의 공개 키에 대응하는 개인 키를 사용해서 요청에 서명함으로써 전송을 개시(예컨대, 비트코인의 경우, 비트코인을 소비)할 권한이 있음을 증명한다. 전송은 요청이 유효하게 서명된 경우에만 블록에 추가될 수 있다.
비트코인의 경우, 공개 키들과 어드레스들 사이에는 일대일 대응관계가 존재한다. 즉, 각각의 공개 키는 단일의 어드레스와 연관된다. 따라서, 본 명세서에서 디지털 자산을 공개 키로 또는 공개 키로부터 전송하는 것(예컨대, 공개 키에 지불) 및 디지털 자산을 해당 공개 키와 연관된 어드레스로 또는 어드레스로부터 전송하는 것에 대한 임의의 언급은 공통의 동작을 지칭한다.
노드(102)들 중 일부는 채굴자로서 동작하지 않을 수 있으며, 대신에, 유효성 검증 노드로서 참여할 수 있다. 트랜잭션의 유효성 검증은 서명(들)을 검사하는 것, 유효한 UTXO에 대한 참조를 확인하는 것 등을 수반할 수 있다.
도 1의 실시예는 6개의 노드(102)를 포함하고, 그 중 2개는 채굴자(104)로서 참여하고 있다. 실제로, 노드(102) 또는 채굴자(104)의 수는 상이할 수 있다. 많은 블록체인 네트워크에 있어서, 노드(102) 및 채굴자(104)의 수는 도 1에 도시된 수보다 훨씬 더 많을 수 있다.
후술되는 바와 같이, 다양한 노드(102)들이 협력해서, 본 명세서에서는 콩그레스(110)라고 하는 그룹을 형성한다. 도시된 실시예에 있어서, 3개의 노드(102)가 콩그레스(110)에 참가하는 것으로 도시된다. 그러나, 실제 콩그레스(110) 멤버의 수는 훨씬 더 클 수 있다.
콩그레스(110)는 해당 콩그레스(110)와 연관된 풀에 충분한 지분의 제출시에 임의의 노드(102)가 가담할 수 있는 개방형-멤버십 그룹이다. 예를 들어, 노드는 디지털 통화(예를 들면, 비트코인), 토큰, 또는 그 밖의 지분 또는 가치와 같은 디지털 자산을 콩그레스(110)와 연관된 계정에 전송하는 것을 통해 콩그레스에 가담할 수 있다. 콩그레스에 가담하는 노드(102)는 채굴 노드 및 비-채굴 노드를 모두 포함하는 블록체인 네트워크에서의 임의의 노드일 수 있다. 콩그레스의 적어도 일부 용례(예를 들면, 후술하는 바와 같이 콩그레스가 양방향 페그를 수행하고 있을 경우)에 있어서, 콩그레스 멤버로서의 역할을 하는 노드는 전체 블록체인을 다운로드(하지만 반드시 유지할 필요는 없음)한다는 의미에서 블록체인을 모니터링한다.
콩그레스(110)에 가담, 이탈 및 참여하기 위한 기술이 아래에서 더 상세하게 논의될 것이다.
노드로서 동작하는 전자 장치(Electronic Device operating as A Node)
도 2는 피어-투-피어 블록체인 네트워크(100)(도 1)에서 노드(102)(도 1)로서 기능할 수 있는 예시적인 전자 장치(200)의 컴포넌트들을 도시하는 블록도이다. 예시적인 전자 장치(200)를 처리 장치라고 할 수도 있다. 전자 장치는, 예를 들어, 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 서버, 스마트폰과 같은 모바일 장치, 스마트 워치와 같은 웨어러블 컴퓨터, 또는 다른 유형의 형태를 포함하는 다양한 형태를 취할 수 있다.
전자 장치(200)는 프로세서(210), 메모리(220) 및 인터페이스 장치(230)를 포함한다. 이들 컴포넌트는 서로 직접적으로 또는 간접적으로 결합될 수 있으며 서로 통신할 수 있다. 예를 들어, 프로세서(210), 메모리(220) 및 인터페이스 장치(230)는 버스(240)를 통해 서로 통신할 수 있다. 메모리(220)는 본 명세서에서 설명되는 기능들을 수행하기 위한 기계-판독 가능 명령어 및 데이터를 포함하는 컴퓨터 소프트웨어 프로그램을 저장한다. 예를 들어, 메모리는, 프로세서(210)에 의한 실행시에, 전자 장치로 하여금 본 명세서에서 설명되는 방법을 수행하게 하는 프로세서-실행 가능 명령어를 포함할 수 있다. 프로세서-실행 가능 명령어는, 프로세서(210)에 의한 실행시에, 전자 장치로 하여금 블록체인 네트워크(100)(도 1)와 연관된 프로토콜을 구현하게 하는 명령어를 포함할 수 있다. 예를 들어, 명령어는 비트코인 프로토콜을 구현하기 위한 명령어를 포함할 수 있다.
메모리(220)는 블록체인 네트워크(100)(도 1)의 글로벌 원장 또는 그 일부를 저장할 수 있다. 즉, 메모리(220)는 블록체인의 모든 블록 또는 가장 최근의 블록들과 같이, 블록들 중 일부, 또는 일부 블록들 내의 정보의 일부를 저장할 수 있다.
메모리(220)는 도 2에서 단일의 블록으로 도시되어 있지만, 실제로 전자 장치(200)는 다수의 메모리 컴포넌트를 포함할 수 있다. 메모리 컴포넌트는, 예를 들어, RAM, HDD, SSD, 플래시 드라이브 등을 포함하는 다양한 유형으로 될 수 있다. 서로 다른 유형의 메모리는 서로 다른 목적에 적합할 수 있다. 또한, 메모리(220)가 프로세서(210)와는 별도로 예시되어 있지만, 프로세서(210)가 내장 메모리를 포함할 수 있다.
도 2에 도시된 바와 같이, 프로세서(210)는 신뢰된 실행 환경(Trusted Execution Environment)(TEE)(250)과 같은 보안 영역을 포함할 수 있다. TEE(250)는 격리된 실행, 신뢰할 수 있는 애플리케이션의 무결성, 및 자산 기밀성과 같은 추가적인 보안을 전자 장치(200)에 제공하는 격리된 실행 환경이다. TEE(250)는, TEE(250) 내부에 로딩되는 컴퓨터 명렁어 및 데이터가 기밀성 및 무결성 측면에서 보호되는 것을 보장하는 실행 공간을 제공한다. TEE(250)는 키와 같은 중요한 리소스의 무결성 및 기밀성을 보호하는 데 사용될 수 있다. TEE(250)는 적어도 부분적으로 하드웨어 레벨에서 구현되므로, TEE(250) 내부에서 실행되는 명령어 및 데이터는 전자 장치(200)의 다른 부분으로부터의, 그리고 전자 장치의 소유자와 같은 외부 파티로부터의 액세스 및 조작에 대하여 보호된다. TEE(250) 내부의 데이터 및 연산은 TEE(250)를 포함하는 노드(102)를 운영하는 파티로부터 보호된다.
TEE(250)는 인클레이브(enclave)를 인스턴스화하고 나서 메모리의 페이지들을 한 번에 하나씩 추가하되 점증적으로 해싱하도록 동작할 수 있다. 유사한 동작이 원격 기계(개발자 기계 또는 다른 기계일 수 있음) 상에서 수행되어, 원격 기계가 예상 해시를 결정 및 저장할 수도 있다. 따라서, 인클레이브의 내용은, 인클레이브가 승인된 알고리즘을 실행하고 있는지 확인하기 위해 임의의 원격 기계에 의해 검증될 수 있다. 이 검증은 해시들을 비교함으로써 수행될 수 있다. 인클레이브는 완전히 구축되면 잠기게 된다. TEE(250)에서 코드를 실행하고 코드에 비밀을 송신할 수 있지만, 해당 코드는 변경될 수 없다. 최종 해시는 증명 키(attestation key)에 의해 서명될 수 있고 데이터 소유자가 임의의 비밀을 인클레이브에 송신하기 전에 그것을 검증하도록 데이터 소유자가 이용 가능하게 될 수 있다.
TEE(250)는 콩그레스(110)(도 1)에 의해 사용되는 콩그레스 공개 키와 연관된 개인 키 지분의 기밀성 및 무결성을 보호하는 데 사용될 수 있다. 예를 들어, TEE(250)는 개인 키 지분의 생성 및 저장에 사용될 수 있다. TEE(250)는, 어떠한 멤버도 TEE(250) 인클레이브 내부에 유지된 개인 키 지분, 또는 다른 개인 키 지분에 관한 정보를 멤버간 통신 또는 인클레이브간 통신으로부터 직접 취득할 수 없도록 하기 위한 것이다. 또한, 프로토콜은 인클레이브의 임계치의 훼손에 대하여 강력하다. 또한, TEE(250)는, 노드(102)(도 1)에 의해 사용될 수 있는 원격 증명이, TEE(250)가 인증된 것이고 콩그레스(110)에 의해 구현된 프로토콜에 대한 승인된 컴퓨터 실행 가능 명령어를 실행하고 있다는 것을 다른 노드(102)들에게 입증하게 할 수 있다. 원격 증명은, 특정 코드 부분을 실행하고 인클레이브에 대한 내부 증명 키에 의해 서명되는 인클레이브 내부의 코드의 해시를 송신함으로써, TEE(250)에 의해 제공될 수 있다.
TEE(250)는, 이전에 전자 장치(200)에 대한 개인 키 지분을 사용한 콩그레스(110)의 멤버가 콩그레스를 이탈하기로 선택했을 경우, 개인 키 지분의 안전한 삭제를 증명하는 데 사용될 수 있다. 전자 장치(200)는 삭제의 증명을 TEE(250)에서 제공되는 원격 증명 프로토콜을 통해 다른 콩그레스 멤버들에게 제공할 수 있다. 멤버가 자신의 멤버 예치금을 인출하는 것이 허용되기 전에, 삭제의 증명이 필요할 수 있다. 즉, 예치금의 반환은 멤버의 인클레이브 내에 유지되는 개인 키 지분의 삭제에 대한 증명에 대하여 조건부일 수 있다.
TEE(250)는 비밀 키, 랜덤 과제, 또는 그 밖의 랜덤 데이터를 생성하는 데 사용될 수 있는 TEE의 인클레이브 내부의 안전한 난수 생성기를 구비할 수 있다. 또한, TEE(250)는 외부 메모리로부터 데이터를 판독하도록 구성될 수 있으며, 외부 메모리에 데이터를 기록하도록 구성될 수 있다. 이러한 데이터는 인클레이브 내부에만 유지되는 비밀 키로 암호화될 수 있다.
TEE(250)는 TPM(Trusted Platform Module) 또는 SGX(Intel Software Guard Extensions)와 같은 다양한 플랫폼을 사용해서 구현될 수 있다. SGX는, 예를 들어, 쿼트(quote)라고 하는 멤버를 갖고 있는 특정 인클레이브를 실행하고 있는 프로세서로부터 인클레이브가 서명된 스테이트먼트를 획득할 수 있게 하는 원격 증명을 지원한다. IAS(Intel Attestation Service)와 같은 제3자 증명 서비스는 이러한 서명된 스테이트먼트가 SGX 사양을 준수하는 인증된 CPU에서 비롯된 것임을 증명할 수 있다.
전자 장치(200)는 블록체인 네트워크(100)(도 1)에서 노드(102)(도 1)로서의 역할을 하며, 콩그레스(110)(도 1)에 가담하거나 참가할 수 있다. 콩그레스(110)는 디지털 자산 소지자 그룹이 블록체인 네트워크(100)(도 1)에 의해 지원되는 디지털 통화, 토큰 또는 그 밖의 지분 또는 가치와 같은 디지털 자산을 모집할 때 형성된다.
콩그레스 및 임계치 서명(Congresses and Threshold Signatures)
콩그레스(110)는 허가 또는 무허가 그룹일 수 있다. 즉, 콩그레스(110)는 블록체인 네트워크(100)(도 1) 내의 임의의 노드(102)(도 1)에 의해(즉, 블록체인에서의 정보의 적어도 일부를 모니터링 및 저장하는 임의의 노드에 의해) 가담될 수 있다. 콩그레스(110)에 가담하기 위해, 노드(102)는 하나 이상의 디지털 자산을 콩그레스(110)와 연관된 디지털 자산 풀에(즉, 결국 콩그레스의 다른 멤버들과 연관된 하나 이상의 디지털 자산과 연관된 공개 그룹 어드레스에) 전송한다. 이 디지털 자산 풀을 콩그레스 풀(congress pool)이라고 할 수 있다. 예를 들어, 노드(102)는 이러한 디지털 자산을 콩그레스 풀과 연관된 어드레스에(즉, 공개 그룹 어드레스라고 할 수도 있는 "콩그레스 어드레스(congress address)"에) 전송(즉, 예치)함으로써 콩그레스(110)에 가담할 수 있다. 디지털 자산은 콩그레스 공개 키라고 하는 단일의 공개 키를 갖는 그룹 임계치 서명의 제어하에 놓인다. 콩그레스 멤버들은 분산적으로 생성된 개인 키 지분들은 보유한다. 보유한 공유의 수는 풀에 예치된 수량에 비례할 수 있다.
콩그레스 어드레스에 전송되는 임의의 디지털 자산을 포함하는 콩그레스(110)에 의해 제어된 디지털 자산은 임계치 서명 스킴의 제어 하에 놓인다. 임계치 서명 스킴 하에서는, 디지털 자산을 콩그레스(110)의 제어로부터 전송할 수 있는 유효한 서명을 생성하기 위해, 총 개인 키 지분 보유량이 임계치를 초과하는 멤버들의 그룹이 필요하다. 즉, 콩그레스(110)에 의해 제어되는 디지털 자산의 임의의 발신 전송을 위한 유효한 서명을 생성하기 위해 적어도 임계 개수의 개인 키 지분들이 사용되어야 한다.
콩그레스 공개 키는 개인 키 지분의 대가로 콩그레스(110)의 멤버들에 의해 콩그레스 풀에 예치되는 디지털 자산, 및 개인 키 지분을 취득하는 것 이외의 이유로 예치된 콩그레스(110)의 멤버들 또는 비-멤버들에 의한 콩그레스 풀과 연관된(즉, 콩그레스의 완전, 부분 또는 조건부 제어 하에 놓인) 어드레스에 예치되는 임의의 디지털 자산을 저당잡는다. 비-멤버들 또는 멤버들은 다양한 이유로 콩그레스와 연관된 어드레스에 디지털 자산을 예치할 수 있다.
동일한 콩그레스 공개 키가 양 멤버의 예치금(즉, 개인 키 지분의 대가로 콩그레스 멤버들에 의해 제공되는 디지털 자산) 및 다른 목적으로 멤버들 또는 비-멤버들에 의해 제공되는 디지털 자산을 제어할 수 있기 때문에, 콩그레스와 연관된 어드레스로 송신되는 적어도 일부 예치금은 예치금의 유형을 나타내기 위해 특별히 플래깅될 수 있다. 예를 들어, 콩그레스 어드레스에 디지털 자산을 전송하는 트랜잭션은 예치금의 성격을 나타내는 플래그, 식별자 또는 다른 속성을 포함할 수 있다. 실시예로서, 콩그레스에 가담하려는 또는 콩그레스 멤버십의 지분을 늘리려는 목적으로 만들어지지 않은 콩그레스 어드레스에 디지털 자산을 전송하는 트랜잭션은 예치금이 다른 목적에 대하여 만들어지고 있음을 나타내는 특별한 식별자를 포함할 수 있다. 이러한 식별자는 개인 키 생성을 관리할 때 콩그레스(110)와 연관된 노드(102)들에 의해 사용될 수 있다. 특히, 그룹에 가담할 목적으로 디지털 자산을 예치하는 노드(102)들은 (디지털 자산을 예치한 결과로서) 콩그레스(110)에 대한 개인 키 지분을 할당받지만, 다른 목적으로(예컨대, 사이드체인(sidechain)에 전송하기 위해) 디지털 자산을 예치한 다른 노드(102)들은 콩그레스에 대한 콩그레스 개인 키 지분(즉, 콩그레스 공개 키에 대응)를 보유하지 않을 수 있다.
콩그레스(110)는 멤버 예치금의 전부 또는 일부의 몰수의 위협을 통해 협력적인 행위가 강제되는 자치 그룹으로으로서 역할을 할 수 있다. 비-협력적인 또는 악의적인 멤버들은 다수의 정직한 멤버들에 의한 협력적인 프로토콜에의 참여에 의해 이러한 디지털 자산을 몰수당할 수 있다. 즉, 모든 노드(102)들이 미리 정의된 프로토콜 또는 기준에 따라 동작하도록 하기 위해, 콩그레스 풀에의 멤버 예치금은 몰수 대상이 될 수 있다. 몰수는 몰수된 것으로 간주된 멤버 예치금의 반환을 영구적으로 방지하는 것을 의미한다. 악의적인 활동으로 인해 반환되지 않는 멤버 예치금을 형성하는 디지털 자산(들)은 콩그레스 풀에 남아 있지만 반환되지 않을 수 있거나(예컨대, 반환되지 않아야 한다는 (알트-체인(alt-chain)에서) 컨센서스(합의)에 도달되었을 경우), 즉시 또는 장래에 다른 소비 불가능한 어드레스에 전송될 수 있거나, 또는 몰수될 수 있고, 몰수의 성격은 콩그레스가 사이드체인에 대하여 설정되는 담보부 유효성 검증자(bonded validator)로서 기능하는지의 여부에 따라 달라질 수 있다.
또한, 콩그레스 멤버가 콩그레스(110)를 이탈하기를 바라는 경우, 그들은 자신의 멤버 예치금을 인출할 수 있다(즉, 콩그레스(110)가 멤버 예치금을 해당 멤버의 개인 어드레스로 다시 전송하도록 요청함). 그러나, 자금의 인출은 유효한 디지털 서명을 생성하는 데 필요한 임계치를 초과하는 다수의 개인 캐 공유가 그룹(즉, 콩그레스)의 멤버들에 의해 인출을 승인하도록 사용되는 경우에만 수행된다.
콩그레스(110)에 의해 구현되는 임계치 서명 스킴은 다양한 유형으로 될 수 있다. 임계치 서명 스킴은 적어도 임계 개수의 개인 키 지분들이 유효한 서명을 생성하는 데 기여하는 한 n개의 파티들 사이의 서명 능력(signing power)의 공유를 허용한다. 임계치보다 작은 서브세트는 유효한 서명을 생성할 수 없다. 특히, 각각의 파티가 개인 서명 키의 공유를 제어하고, 부분 서명들의 결합을 통해 유효한 서명을 생성하기 위해 임계 개수의 키 지분들이 사용되어야 한다. 임계치보다 적은 키 지분의 서브세트는 유효한 서명을 생성할 수 없다.
임계치 서명 스킴은 타원 곡선 디지털 서명 알고리즘(Elliptic Curve Digital Signature Algorithm)(ECDSA) 스킴일 수 있다. 예를 들어, ECDSA 스킴은 2003 EIII 46th Midwest Symposium on Circuits and Systems, 1:276-280 (2003)의 "A robust threshold elliptic curve digital signature providing a new verifiable secret sharing scheme"에서 Ibrahim(이브라힘) 등에 의해 제안된 유형으로 될 수 있다. 이 임계치 서명 스킴은 n개의 키 지분 보유자로부터의 t+1개의 키 지분이 개인 키를 재구성하는 데 필요한 타원 곡선 암호화 기반 알고리즘인 디지털 서명 스킴의 확장이다. 이 스킴은 개인 키를 재구성할 필요 없이, 또한 임의의 파티가 그들의 키 지분을 다른 파티에게 드러낼 필요 없이, 유효한 서명을 구성하는 데 사용될 수 있다.
t+1개의 키 지분은 비밀을 재구성하기에 충분하기 때문에, 이 기술에 따라 허용되는 적대자(adversary)의 최대 수는 t이다. Ibrahim 등의 모델에 있어서의 적대자는 비밀 공유를 보유한 파티를 부패하게 만들고 해당 비밀 공유에 액세스한 엔티티이다. 적대자는 다양한 유형으로 될 수 있다. 예를 들어, 비잔틴 적대자(Byzantine adversary)는 프로토콜에 참여하는 척 할 수 있으면서 실제로는 부정확한 정보를 송신할 수 있는 적대자이다. Ibrahim에 의해 제안되는 ECDSA 스킴은 t<=n/4까지의 악의적인 적대자에 대하여 강력하다. 이 견고성은 t<=n/3까지 상승할 수 있지만, 복잡성이 증가된다.
Ibrahim 등의 ECDSA 스킴은 t<=n/3의 중단 적대자의 중단에 대하여 강력하다. 중단 적대자는 부패한 파티가 프로토콜에 참여하는 것을 방지할 수 있고 참여 도중에 중단할 수 있다.
이 ECDSA 스킴은 악의적인 또는 비협력적인 파티를 식별하기 위해 노드(102)에 의해 사용될 수 있는 다양한 메커니즘을 포함한다. 예를 들어, 검증 가능한 비밀 공유(verifiable secret sharing)(VSS)는 샤미르의 비밀 공유(Shamir's Secret Sharing)(SSS)에 필요한 다항식을 공유하는 데 사용될 수 있다. SSS는 비밀이 여러 부분으로 분할되고 각각의 참여자에게 그 자신의 고유한 부분으로 제공되는 비밀 공유의 한 형태이다. 이들 부분은 비밀을 재구성하는 데 사용될 수 있다. VSS는, 일치되지 않는 공유들이 서로 다른 노드(102)들에 제공되는 경우, 또는 모든 노드에게 브로드캐스트되는 블라인드형 공유와는 다른 공유가 노드에 비밀리에 송신되는 경우, 악의적인 노드(102) 또는 멤버를 식별하기 위해 노드(102)들에 의해 사용될 수 있다. 일치되지 않는 공유들은 노드(102)들 중 어느 하나에 의해 식별될 수 있다. 비밀의 공유는 노드(102)들이 그들의 공유를 일치되는 것으로 검증할 수 있게 하는 보조 정보를 포함하는 것에 의해 검증 가능해질 수 있다.
개별 노드에의 부정확한 공유(즉, 브로드캐스트되는 블라인드형 공유와는 다른 공유)의 송신은 공유의 의도한 수신자 노드에 의해 식별될 수 있다. 노드에 비밀리에 송신되는 부정확한 공유의 식별은 공개적으로 검증 가능한 비밀 공유(Publically Verifiable Secret Sharing)(PVSS)의 기술을 사용해서 공개적으로 검증 가능하게 될 수 있다. 이러한 기술은, PVSS가 사용되지 않고 부정확한 공유가 송신될 때 부정확한 공유의 수신자가 오프라인 상태이거나 네트워크의 상당 부분에서 차단되는 경우에 발생할 수 있는, 부정한 송신자의 식별이 지연될 가능성을 회피할 수 있다.
상이한 노드들에 일치되지 않는 공유를 제공하는 것과 같은 부정행위는 악의적인 행위를 저지하도록 콩그레스(110)에 의해 대처될 수 있다. 예를 들어, 노드(102)(도 1)가 다른 노드(102)들에 의해 악의적인 파티로 식별되는 경우, 임계치를 초과하는(예컨대, t+1) 다수의 노드(102)(즉, 콩그레스 멤버들과 연관된 노드들)는 협력하여 악의적인 파티를 처벌할 수 있다. 예를 들어, 노드(102)들은 악의적인 파티에 의해 콩그레스에 예치되는 디지털 자산(예를 들면, 디지털 통화, 토큰 또는 그 밖의 지분 또는 가치)과 관련지어서 조치를 취할 수 있다. 예를 들어, 콩그레스는 디지털 통화, 토큰, 지분 또는 가치를 소비 불가능한 어드레스에 전송함으로써 이들을 소각할 수 있거나, 또는 콩그레스는 다른 노드들과 거부하도록 합의함으로써 이러한 디지털 자산을 몰수할 수 있다. 부정행위 노드가 아닌 노드(102)들은 부정행위 노드를 배제하도록 협력함으로써(예컨대, 키 지분을 효과적으로 무효화함으로써; 예를 들어, 노드가 콩그레스 프로토콜에 참여하는 것을 배제함으로써, 또는 개인 키를 재공유하고 부정행위 노드에게 공유를 할당하지 않음으로써) 부정행위를 저지할 수도 있다.
전술한 ECDSA 기술은 TEE의 사용을 통해 강화될 수 있다. 예를 들어, Ibrahim 등에 기초한 임계치 ECDSA 서명 기술은 여기서 비잔틴 적대자(Byzantine adversary)라고 불리는 강한 적대자 형태를 고려한다. 이러한 유형의 적대자는 독단적으로 행동할 수 있고, 예를 들어, 그들은 서명 프로세스에 참여하는 것을 거부하거나 파티의 진행을 중단시킬 뿐만 아니라, 정직하게 참여하는 척 가장해서 부정확한 정보를 송신할 수도 있다. 그러나, TEE를 사용하는 것에 의하면, 또한 비밀 개인 키 지분이 저장된 TEE의 인클레이브 내부에 서명하는 데 사용되는 데이터를 생성하는 것에 의하면, 인클레이브가 상당수 훼손될 가능성이 거의 없기 때문에, 추가적인 보안이 제공될 수 있다. 각각의 TEE가 하나 이하의 키 지분을 할당받으면, 예를 들어, 가능한 훼손된 TEE의 수가, n이 충분히 크다고 가정할 때, 비잔틴 적대자에 대한 견고성의 임계치에 도달하지 않을 것이라고 합리적으로 예상할 수 있다. 이로 인해, 키 지분의 총 수에 비해 작은 비율의 악의적인 적대자에 대하여 견뎌낸다면 프로토콜이 안전해질 수 있다.
예를 들어, 모든 노드가 TEE를 가질 경우, TEE의 제조자가 부패해 있지 않다면, 인클레이브 내부에 저장된 비밀을 획득하는 것은 노드에 대한 물리적인 액세스에 의해서만, 그리고 상당한 노력과 비용을 들여서만 달성될 수 있다. 이러한 제조자-레벨에서의 부패는 관리 가능할 것으로 예상된다. 예를 들어, 제조자가 다수의 공개 키가 진정한 TEE에 대응한다고 부정하게 주장했을 경우, 개인 키 지분에 직접 액세스하여 공격을 개시하게 될 수 있다. 그러나, 이러한 공격에는, 제조자가 다른 노드들로부터의 도움 없이 유효한 서명을 생성할 수 있도록 충분한 수의 키 지분이 필요해진다. 이것은 전체 지분의 많은 부분을 축적한다는 것을 의미하고, 이는 상당한 비용이 들게 된다. 또한, 공격을 수행함으로써, 보유한 지분 가치의 상당 부분이 파괴되게 된다.
TEE가 사용되는 경우, "부패한 노드(corrupted nodes)"에 대하여 프로토콜의 견고성을 고려하는 것이 유용하다. 부패한 노드는, TEE 외부의 하드웨어가 손상되었지만, TEE의 무결성이 훼손되지 않는 노드이다. 부패한 노드는 인클레이브가 어떤 정보를 수신하고 어떤 정보를 수신하지 않는지에 대하여 제어할 수 있다. 특히, 부패한 노드는 프로토콜에의 참여를 중단, 즉 자제할 수 있다. 프로토콜에 제공되는 정보가 인클레이브에 안전하게 유지된 개인 키에 의해 서명될 필요가 있으면(증명 동안 상응하는 공개 키가 인증되었을 경우), 개인 키는 인클레이브 자체만큼 신뢰할 수 있다. 따라서, 부패한 노드는 임의적인 (인증된) 정보를 프로토콜에 송신할 수 없고, 단지 중단에 의해 간섭하려고 시도할 수 있거나, 또는 예를 들어, 낡은 정보를 제공함으로써, 부적절하게 행동하는 것으로 인클레이브를 속이려고 시도할 수 있을 뿐이다. 결과적으로, 부패한 노드의 경우, 성공적인 공격을 위해서는 완전한 서명을 생성하기에 충분한 수의 부분 서명을 수집하는 것이 필요하다. TEE에 의하면, Ibrahim 등의 프로토콜은 2t의 부패한 노드들에 대하여 강력하다. n-2t >= 2t+1일 경우에 서명이 생성될 수 있기 때문에, 크기 2t+1 <= (n+1)/2의 임의의 정규화된 키 지분 서브세트로 충분하다. 따라서, TEE가 사용될 때, 임계치 서명 스킴에 대한 임계치는 부패한 노드의 존재하에서 유효한 서명을 생성하기 위해 키 지분의 50% 이상의 수로 구성될 수 있다.
다른 임계치 서명 스킴이 사용될 수도 있다. 예를 들어, 임계치 서명 스킴은 Goldfeder(골드페더) 등의 "Securing Bitcoin Wallets Via a New DSA/ECDSA threshold signature scheme"(2015)에 의해 제안된 유형의 ECDSA 임계치 스킴일 수 있다. 이 프로토콜은 t+1 파티가 유효한 서명을 생성할 수 있게 한다. 결과적으로, 적대자가 유효한 서명을 생성하기 위해 제어해야 하는 키 지분의 수는 적대자가 개인 키를 재구성하기 위해 소유해야 하는 키 지분의 수와 같다. 이 기술은 유효한 서명을 생성하기 위해 만장일치가 필요한 경우에 유효한 스킴을 제공할 수 있다. 가장 일반적인 경우, 이 스킴은, 임의의 임계치에 대하여 n에서 t+1 플레이어의 임의의 가능한 서브세트에 대하여 전체 프로토콜을 반복할 필요가 있기 때문에, 콩그레스 멤버의 수에 따라 지수함수적으로 스케일링되는 공간 요건을 부과한다. 따라서, n과 t의 값이 클 경우, 많은 수의 키 지분이 저장될 필요가 있을 것이다. 이러한 저장 요건을 완화하기 위해, 표준 비트코인 다중-서명이 임계치 서명과 조합될 수 있다. 특히, 디지털 자산은 각각의 개인 키가 공유들로 분할되도록 다중 서명을 사용해서 잠금될 수 있다. 이 기술은 공간 요건의 측면에서 더 큰 콩그레스를 더욱 효율적으로 만든다. 많은 수의 참여자들에 대하여 보다 작은 파티 크기에서 다수의 레벨로 반복적인 형태로 스킴을 구성함으로써 스케일링 특성이 향상될 수도 있다. 예를 들어, 임계치 서명 스킴은 Cohen(코헨) 등의 기술, 즉 Efficient Multiparty Protocols via Log-Depth Threshold Formulae (2013), Advances in Cryptology ― CRYPTO 2013 pp 185-202와 조합될 수 있다.
비-ECDSA 서명 스킴을 포함하여, 다른 임계치 스킴들이 사용될 수 있다. 예를 들어, Schnorr(슈노르) 스킴에 기초한 임계치 서명이 노드(102)들에 의해 사용되어 콩그레스(110)를 구현할 수 있다.
블록체인 네트워크(100)(도 1)에서의 노드(102)(도 1)들은 선택된 임계치 서명 스킴에 기초하여 콩그레스 프로토콜을 구현할 수 있다. 이러한 노드(102)는 콩그레스 프로토콜을 구현하는 메모리(220)(도 2)에 저장된 컴퓨터 실행 가능 명령어를 포함할 수 있다. 이러한 명령어는, 프로세서(210)(도 2)에 의한 실행시에, 노드(102)(예를 들면, 도 2를 참조하여 설명한 유형의 전자 장치(200))로 하여금 콩그레스 프로토콜의 하나 이상의 방법을 수행하게 한다. 이러한 방법은 도 4 내지 도 8 및 도 10의 방법들(300, 400, 500, 600, 700, 800, 1000) 중 어느 하나 또는 이들의 조합을 포함할 수 있다. 따라서, 콩그레스 프로토콜은 도 4 내지 도 8 및 도 10의 방법들(300, 400, 500, 600, 700, 800, 1000) 중 하나 이상을 포함할 수 있다. 방법들은 노드에 의해 다른 콩그레스 멤버들과 연관된 다른 노드들과 협력하여 수행될 수 있다.
콩그레스 개시(Congress Initiation)
이제, 도 3을 참조하면, 콩그레스(110)를 개시하는 방법(300)이 도시된다. 방법(300)은 콩그레스(110)를 설정하기 위해 초기에 신뢰할 수 있는 파티에 의해 수행될 수 있다. 즉, 초기에 신뢰할 수 있는 파티와 연관된 노드(102)가 방법(300)을 수행할 수 있다.
방법(300)은, 동작(302)에서, 콩그레스 공개 키를 제공하는 단계를 포함한다. 콩그레스 공개 키는 다른 노드들이 콩그레스에 가담하고자 하는 경우 콩그레스 공개 키에 지불할 수 있도록 다른 노드(102)들에 제공될 수 있다. 즉, 다른 노드들은 콩그레스에 가담하기 위해 콩그레스 공개 키와 연관된 어드레스에 디지털 자산을 전송할 수 있다.
방법(300)을 수행하는 노드(102)는, 동작(304)에서, 하나 이상의 조건이 만족될 때까지 공개 키에의 지불을 허용한다. 예를 들어, 노드는 소정의 기간 동안 또는 소정의 블록 수에 대하여 공개 키에의 지불을 허용할 수 있다. 조건이 만족되고 나서(예컨대, 이 기간의 만료 이후 또는 해당 블록 수의 채굴 이후), 방법(300)을 수행하는 노드(102)는, 동작(306)에서, 초기 콩그레스 멤버를 식별한다.
콩그레스의 초기 멤버십을 구성하게 될 파티들이 식별된 후에, 동작(307)에서 임계치 서명 스킴에 따라 개인 키가 개인 키 지분들로 분할된다. 이후, 개인 키 지분들은, 동작(308)에서, 방법(300)을 수행하는 노드(102)로부터 식별된 파티들에게 분산된다. 개인 키 지분들은 본 명세서에서 설명되는 유형으로 될 수 있는 임계치 서명 스킴과 연관된다.
동작(308) 동안, 콩그레스 멤버로서 식별된 노드(102)들은 새로운 개인 키 지분들 및 새로운 공개 키를 생성하도록 협력한다. 초기에 신뢰할 수 있는 파티에 의해 이러한 노드들에 송신된 원래의 키 지분들은, 콩그레스 풀 내의 모든 디지털 자산을 나중에 콩그레스 공개 키가 되는 새로운 공개 키로 송신하기 위해 트랜잭션을 서명 및 브로드캐스트하는 데 사용될 수 있다. 즉, 동작(408) 동안, 새로운 그룹 공개 어드레스가 확립되고, 디지털 자산은 콩그레스의 제어 하에서, 해당 그룹에 대한 새로운 어드레스가 되며 콩그레스 공개 키와 연관된 이 새로운 어드레스에 전송된다. 이 전송이 확인된 후에는, 콩그레스가 신뢰할 수 없게 동작할 수 있다. 새로운 그룹 공개 어드레스는 콩그레스(110)에 가담하고자 하는 다른 노드들로부터 또는 전술한 바와 같은 다른 목적으로 장래에 디지털 자산의 예치금이 수신될 수 있는 형태로 형성된다. 이제, 콩그레스 멤버들은 콩그레스에 가입된 것으로 간주되며, 이들 노드는 이제 초기에 신뢰할 수 있는 파티의 도움 없이 동작할 수 있다. 또한, 초기에 신뢰할 수 있는 파티는 더 이상 콩그레스의 동작에 관여하지 않는다.
콩그레스가 개시된 후 콩그레스에 가담(Joining a Congress After the Congress Has Been Initiated)
이제, 콩그레스에 가담하는 방법(400)을 도시하는 도 4를 참조한다. 도 4의 방법(400)은 도 3의 방법(300)과 함께 동작할 수 있지만, 도 4의 방법(400)은 도 3의 방법(300)을 수행하는 노드가 동작하는 동일한 블록체인 네트워크(100)(도 1)에서 동작하는 노드(102)들 중 다른 노드에 의해 수행된다. 도 4의 방법(400)은, 동작(402)에서, 콩그레스 공개 키를 취득하는 단계를 포함한다. 콩그레스 공개 키는, 도 3의 방법(300)을 수행하는 노드와 같이, 콩그레스를 개시하는 파티로부터 직접적으로 취득될 수 있거나, 또는 예를 들어, 블록체인 네트워크(100)(도 1) 외부에서 동작하는 제3자 시스템을 포함하는 제3의 파티로부터 취득될 수 있다. 예를 들어, 콩그레스 공개 키는 공공 인터넷을 통해 액세스 가능한 공공 웹 서버로부터 취득될 수 있다.
방법(400)을 수행하는 노드(102)는 동작(404)에서 디지털 자산의 트랜잭션을 노드(102)와 연관된 개인 계정으로부터 콩그레스 어드레스(즉, 콩그레스 공개 키와 연관된 어드레스)로 브로드캐스트함으로써 콩그레스 공개 키에 지불한다. 특히, 노드(102)는 하나 이상의 디지털 자산을 콩그레스 공개 키와 연관된 공개 그룹 어드레스에 전송하기 위해 트랜잭션을 브로드캐스트한다. 공개 그룹 어드레스는 콩그레스 풀에 대한 어드레스이다. 콩그레스 풀은 콩그레스의 다른 멤버들과 연관된 다른 디지털 자산들을 포함한다. 따라서, 동작(404)에서, 트랜잭션은, 채굴자(104)(도 1)에 의해 블록에 추가되면, 디지털 자산을 다른 멤버들로부터의 디지털 자산을 포함하는 콩그레스 풀에 전송한다. 공개 그룹 어드레스는 콩그레스에 가담하고자 하는 파티들로부터의 전송 및 콩그레스에 가담하고자 하지 않는 파티들로부터의 전송을 모두 수신할 수 있다. 콩그레스에 가담하고자 하지 않는 파티들은 디지털 자산을 콩그레스 풀에 전송하는데, 이러한 디지털 자산은 콩그레스가 채택한 임계치 서명 스킴을 사용해서 콩그레스에 의한 전체, 부분 또는 조건부 제어하에 놓일 수 있다.
동작(404)에서의 트랜잭션은 디지털 자산을 전송하는 파티가 콩그레스에 가담하고자 하는 것 및 이러한 목적을 위해 예치가 이루어지고 있다는 것을 나타내는 플래그, 식별자 또는 다른 속성을 포함할 수 있다.
콩그레스 풀에 디지털 자산을 예치한 후에, 방법(400)을 수행하는 노드(102)는, 동작(406)에서, 개인 키 지분을 수신한다. 이후, 노드(102)는 프로토콜의 단일의 인스턴스를 실행함으로써 동작(408)에서 개인 키 지분을 재생성한다. 개인 키 지분의 생성은 노드(102)의 TEE 내에서 수행될 수 있다.
동작(408)에서, 노드(102)는 적어도 개인 키 지분의 임계치가 콩그레스를 대신하여 트랜잭션에 대한 유효한 서명을 생성하는 데 사용되어야 하는 임계치 서명 스킴에서 사용될 개인 키 지분을 생성한다. 다른 개인 키 지분 보유자들은 각각의 디지털 자산의 공개 그룹 어드레스에의 전송에 의해 허가 또는 무허가 기반으로 콩그레스에 가담한 콩그레스의 다른 멤버들이다.
개인 키 지분을 재생성하기 위해, 동작(408)에서, 기존의 콩그레스 멤버들은 해당 키 지분을 업데이트하도록 협력할 수 있다. 예를 들어, 노드(102)는 상수항이 영(zero)인 를 갖는 t차 랜덤 다항식을 생성할 수 있다. 노드(102)는 점 함수 를 계산하고 이를 자신의 개인 키 지분로서 설정할 수 있다. 노드(102)는 이 다항식 (i) 상의 점들을 기존의 콩그레스 멤버들, 즉 i=1, ..., n 각각에 분산할 수 있다. 각각의 기존의 콩그레스 멤버(i=1, ..., n)는 수신된 값을 자신의 기존의 개인 키 지분에 더해서 새로운 개인 키 지분을 취득한다. 이제, 노드(102)는 다른 모든 멤버들과 동등한 개인 키를 갖게 되고, 상응하는 공개 키는 변함없이 유지된다. 전술한 바와 같이, 임계치 서명 스킴은 타원 곡선 디지털 서명 알고리즘(Elliptic Curve Digital Signature Algorithm) 또는 Schnorr 스킴에 기반한 임계치 스킴을 포함하여 다양한 유형으로 될 수 있다.
개인 키 지분은 TEE(250)(도 2) 내에서 생성될 수 있으며 노드(102) 상에 안전하게 저장될 수 있다. 예를 들어, 개인 키 지분은 TEE(250)에 저장될 수 있다.
각각의 노드에 의해 개인 키 지분이 생성된 후에, 이전의 콩그레스 공개 키의 제어 하의 자금(예컨대, 원래의 콩그레스 공개 키와 연관된 공개 그룹 어드레스에 전송되는 자금)은 (임계치 서명 스킴 하에서 유효한 서명을 생성하기에 충분한 다수의 그룹 노드의 협력을 통해) 새로운 개인 키 지분들과 연관된 새로운 콩그레스 공개 키에 전송될 수 있다.
동작(408)에서 개인 키 지분이 생성된 후에, 방법(400)의 동작(410)에서 사용될 수 있다. 개인 키 지분은 멤버에 의해 브로드캐스트될 수 있는 공개 그룹 어드레스로부터의 트랜잭션에 대한 유효한 서명을 협력적으로 생성하는 데 사용될 수 있다. 즉, 개인 키 지분은 임계치 서명 스킴에서 사용되어 서명 생성에 기여할 수 있다. 임계치 서명 스킴 하에서, 콩그레스의 임계 개수의 개인 키 지분들은 디지털 자산이 콩그레스로부터 전송될 수 있게 하는 유효한 서명을 생성하기 위해 각각의 멤버에 의해 사용될 필요가 있다. 방법(400)을 수행하는 노드(102)는 스토리지로부터 개인 키 지분을 검색하고 서명 생성에 기여하기 위해 개인 키 지분을 사용할 수 있다. 또한, 충분한 수의 다른 콩그레스 멤버들이 각자의 개인 키를 사용해서 서명 생성에 기여하면, 서명이 생성되고 유효한 발신 트랜잭션이 브로드캐스트될 수 있다. 블록체인 네트워크(100)의 채굴자(104)(도 1)가 블록체인 네트워크(100) 내의 노드(102)들의 컨센서스에 의해 블록체인에 추가된 채굴된 블록에 트랜잭션을 추가하고 해당 블록이 확인된 경우, 발신 트랜잭션이 완료된다. 이 시점에, 트랜잭션에 표시되는 디지털 자산은 더 이상 콩그레스의 제어 하에 있지 않을 수 있다. 즉, 이러한 디지털 자산은 더 이상 콩그레스 공개 키에 의해 저당잡히지 않을 수 있다.
동작(408)에서 개인 키 지분의 사용은 노드(102)의 TEE 내에서 수행될 수 있다. TEE는 시스템의 다른 부분들이나 멤버들 자신조차도 개인 키 지분와 같은 인클레이브에 저장된 데이터에 액세스할 수 없도록 개인 키 지분을 보호한다. 또한, TEE는, 멤버가 자신의 예치금을 돌려받기를 원하고 자신의 예치금을 수령하면 멤버 예치금을 반환받기 전에 개인 키의 삭제를 증명해야 하기 때문에 개인 키의 복사본을 보유할 수 없다는 점에서, 개인 키를 보호한다.
도 4의 방법(400)은 초기 설정 단계 동안 또는 그 이후에 수행될 수 있다. 즉, 방법(400)은 초기 키 지분이 분산되기 전에(예컨대, 도 3의 방법(300)의 동작(308) 동안) 또는 나중에(예컨대, 아래에서 더 상세하게 논의되는 균형 조정(rebalancing) 동안) 수행될 수 있다.
동작(410)에서 트랜잭션은 디지털 자산을 콩그레스 풀에 예치한 원래의 파티에게 해당 디지털 자산을 다시 전송할 수 있다. 즉, 전송은 디지털 자산을 예치자에게 반환할 수 있다. 또한, 전송은 디지털 자산을 다른 곳으로 전송할 수도 있다. 예를 들어, 디지털 자산은 제3자에게 또는 소비 불가능한 어드레스에 전송될 수 있다.
디지털 자산의 몰수(Confiscation of Digital Asset)
이제, 도 5를 참조하면, 디지털 자산을 몰수하는 예시적인 방법(500)이 도시된다. 도 5의 방법(500)은 도 4의 방법(400)을 수행하는 동일한 노드일 수 있는 노드(102)에 의해 수행될 수 있다. 방법(500)은 도 4의 방법(400)의 동작(408) 이후에 수행될 수 있으므로, 도 5의 방법(500)이 수행될 때는 이미 노드(102)가 개인 키 지분에 액세스해 있다.
동작(502)에서, 노드(102)는 악의적인 파티에 의한 악의적인 활동을 검출한다. 악의적인 파티는 콩그레스의 다른 멤버일 수 있다. 노드(102)가 콩그레스의 멤버가 미리 정의된 프로토콜 또는 기준을 위반하고 있다고 결정할 때 악의적인 활동이 검출된다. 예를 들어, 콩그레스의 멤버인 노드가 콩그레스의 다른 멤버들에게 잘못된 정보(즉, 거짓 정보, 일관성이 없는 정보 내지는 수용할 수 없는 정보)를 보고할 경우, 해당 멤버는 악의적인 멤버로 간주될 수 있다.
동작(503)에서, 악의적인 활동을 검출하는 것에 응답하여, 노드(102)는 콩그레스의 다른 노드들과 협력하여 악의적인 파티인 멤버를 일시중지시킬 수 있다. 즉, 콩그레스는 악의적인 파티가 더 이상 콩그레스에 참여하지 못하게 할 수 있다.
모든 노드(102)들이 미리 정의된 프로토콜 또는 기준에 따라 동작하도록 하기 위해, 콩그레스 풀에의 멤버 예치금은 몰수 대상이 될 수 있다. 몰수는 몰수된 것으로 간주된 멤버 예치금의 반환을 영구적으로 방지하는 것을 의미한다. 악의적인 활동으로 인해 반환되지 않는 멤버 예치금을 형성하는 디지털 자산(들)은 콩그레스 풀에 남아 있지만 반환되지 않을 수 있거나(이 행위를 취해야 한다는 컨센서스에 응답하여), 즉시 또는 장래에 다른 소비 불가능한 어드레스에 전송될 수 있거나, 또는 몰수될 수 있고, 몰수의 성격은 콩그레스가 사이드체인에 대하여 설정되는 담보부 유효성 검증자로서 기능하는지의 여부에 따라 달라질 수 있다. 예를 들어, 동작(504)에서, 악의적인 파티에 의한 악의적인 활동을 검출하는 것에 응답하여, 방법(500)을 수행하는 노드(102)는 개인 키 지분을 사용해서 몰수 트랜잭션(악의적인 활동을 노출시키는 것에 대한 보상으로서 디지털 자산을 소비 불가능한 어드레스에 또는 다른 노드에 전송하는 트랜잭션임)에 대한 부분 서명을 제공할 수 있다. 즉, 노드는 악의적인 파티에 의해 공개 그룹 어드레스에(즉, 콩그레스 풀에) 사전에 전송된 디지털 자산의 적어도 일부를 콩그레스의 다른 노드들과 협력해서 몰수한다. 즉, 그룹 멤버가 사전 정의된 프로토콜 또는 기준을 위반하고 있는 것으로 관찰되면, 개인 키 지분은 해당 그룹 멤버와 연관되며 콩그레스 풀에 보유되는 하나 이상의 디지털 자산의 트랜잭션의 승인에 기여하는 데 이용된다.
임계치 서명 스킴이 콩그레스 공개 키와 함께 사용되기 때문에, 단독으로 역할을 수행하는 개별 노드는 다른 콩그레스 멤버의 디지털 자산 예치금을 콩그레스 풀로부터 (예컨대, 소비 불가능한 어드레스로) 전송할 수 없다. 오히려, 디지털 자산은 임계 개수의 개인 키 지분이 디지털 자산(들)을 다른 어드레스에 전송하기 위한 유효한 서명을 생성하기 위해 그 각각의 멤버에 의해 사용될 때 또는 적어도 임계 개수의 개인 키 지분을 갖는 멤버들의 그룹이 (동작(503)에서) 하나의 멤버를 일시중지하는 컨센서스― 이는 일시중지된 멤버로부터의 임의의 인출 요청이 자동으로 무시되게 함 ―에 도달할 때 전송에 의해서만 몰수될 수 있다. 디지털 자산이 전송에 의해 몰수될 경우, 디지털 자산(들)이 전송될 수 있는 다른 어드레스는 소비 불가능한 어드레스와 연관될 수 있다. 예를 들어, 다른 어드레스는 어떠한 파티도 해당 어드레스에 대한 공개 키에 구애된 디지털 자산에 액세스할 수 없도록 어떠한 개인 키도 존재하지 않는 어드레스일 수 있다. 디지털 자산을 소비 불가능한 어드레스로 전송하는 트랜잭션이 확인되는 경우 또는 디지털 자산을 몰수해야 하는 사이드체인에서 컨센서스에 도달할 경우, 디지털 자산은 소각된 것으로 간주될 수 있는데, 그 이유는 디지털 자산이 더 이상 콩그레스의 멤버들에 의해 또는 실제로는 블록체인 네트워크(100) 내의 임의의 노드들에 의해 소비될 수 없기 때문이다.
따라서, 동작(504)에서, 노드는 콩그레스의 다른 멤버들과 협력하여 트랜잭션에 대한 유효한 서명을 생성하기 위한 개인 키 지분을 사용해서 소비 불가능한 어드레스로의 디지털 자산을 몰수할 수 있으며, 일부 구현예에 있어서는, 제2 블록체인에서, 멤버가 자신의 예치금의 전부 또는 일부를 영구적으로 박탈당해야 한다는 컨센서스를 달성하는 것을 수반할 수 있다.
또한, 일부 구현예에 있어서, 콩그레스는 지분 증명(proof-of-stake) 사이드체인을 보증하는 담보부 유효성 검증자로서 기능할 수 있고, 이 사이드체인은 브로드캐스트 채널로서 사용될 수 있다. 예를 들어, 사이드체인 상의 콩그레스 멤버들에 의해 한 멤버가 악의적으로 행동했다는 컨센서스에 도달될 수 있다. 이 컨센서스는 악의적인 활동의 입증 증거를 포함하는 사이드체인 트랜잭션의 확인에 대응할 수 있다. 컨센서스에 도달할 경우, 악의적인 멤버에 의해 이루어진 멤버 예치금 인출 요청은 거부될 것이고, 해당 예치금은 몰수된 것으로 간주된다. 몰수된 디지털 자산은 장래의 어느 시점에 소각될 수 있다. 즉, 어느 정도 이후에, 멤버들의 임계치(악의적인 멤버를 포함하지 않음)는 몰수된 디지털 자산의 소비 불가능한 어드레스로의 전송을 승인하도록 협업할 수 있다.
콩그레스는 블록체인 네트워크(100)의 임의의 노드(102)가 디지털 자산의 예치를 통해 가담할 수 있는 개방형 그룹이기 때문에, 그룹 멤버십은 주기적으로 변경될 수 있다. 이러한 변경이 발생할 경우, 개인 키 지분 분산이 갱신될 수 있다. 이제, 도 6을 참조하면, 개인 키 지분 분산을 업데이트하는 예시적인 방법(600)이 도시된다. 방법(600)은 블록체인 네트워크(100)의 노드(102)에 의해 블록체인 네트워크(100)의 다른 노드들과 협력하여 수행될 수 있다.
새로운 공개 어드레스를 사용한 개인 키 지분 분산의 업데이트(Updating Private Key Share Distributions Using New Public Address)
방법(600)의 동작(602)에서, 노드(102)는 재분산 요청을 검출하고, 재분산 요청은 그 이행으로 인해 키 지분의 재분산이 수반되는 요청이다. 예를 들어, 노드(102)는 장래의 새로운 멤버가 디지털 자산을 공개 그룹 어드레스에 전송했는지, 또는 기존의 멤버가 멤버 예치금의 인출을 요청했는지를 검출할 수 있다.
디지털 자산은, 콩그레스에 가담한다고 요청하는 또는 콩그레스에서의 그들의 참여를 늘리겠다고 요청하는 노드들에 의해, 또는 콩그레스에 가담한다고 요청하지 않지만, 대신 디지털 자산을 다른 목적으로 콩그레스에 전송(예를 들면, 후술되는 바와 같이, 디지털 자산을 사이드체인에 전송)하는 다른 노드들에 의해 공개 그룹 어드레스에 전송될 수 있다. 동작(602)에서, 노드(102)는 공개 그룹 어드레스로의 디지털 자산의 트랜잭션들 중 적어도 일부 트랜잭션에 포함되는 하나 이상의 속성을 사용해서 콩그레스 멤버(즉, 다른 목적이 아니라, 콩그레스에 가담하기 위해 디지털 자산을 콩그레스 공개 키에 전송한 파티)를 식별할 수 있다. 예를 들어, 특정 트랜잭션들은 트랜잭션들 내의 속성을 사용해서 특수 트랜잭션으로서 플래깅될 수 있다. 이러한 속성(또는 그 존재 유무)은 전송이 이루어진 목적을 나타낼 수 있다. 예를 들어, 플래그는 전송자가 콩그레스에 가담한다고 요청하고 있지 않은 경우에 트랜잭션에 포함될 수 있다.
동작(602)에서 요청을 검출하는 것에 응답하여, 그 이행은 키 지분의 재분산을 수반하고, 도 4의 방법(400)의 동작(408)에서 개인 키 지분을 생성한 방식과 유사한 방식으로, 동작(604)에서, 노드(102)에 의해 새로운 개인 키 지분이 생성된다. 콩그레스의 다른 멤버 노드들도 각각의 개인 키 지분을 생성한다. 이들 개인 키 지분은 새로운 콩그레스 공개 키에 대한 임계치 서명 스킴에서 사용될 수 있다. 이 시점에 콩그레스를 이탈하려는 멤버들은 동작(604) 동안 새로운 개인 키 지분을 생성하지 않으며, 이들은 새로운 콩그레스 공개 키와 함께 사용할 개인 키 지분을 할당받지 못할 것이기 때문에, 콩그레스에 참가할 수 있는 능력을 상실하고 더 이상 콩그레스 멤버로 간주되지 않는다.
또한, 재분산 요청(그 이행으로 인해 키 지분의 재분산이 수반되는 요청임)을 검출하는 것에 응답하여, 동작(606)에서, 노드(102)는 다른 콩그레스 멤버들과 협업하여 공개 그룹 어드레스 내의 모든 디지털 자산을 새로운 공개 키(나중에, 새로운 콩그레스 공개 키로 됨)와 연관된 새로운 공개 어드레스로 전송한다.
따라서, 도 6의 방법(600)에 따르면, 예치금의 분산이 변경될 경우 또는 멤버로부터 예치금을 인출한다는 요청이 수신될 경우, 개인 키 지분들이 재생성될 수 있고 콩그레스의 제어 하에 있는 모든 디지털 자산이 새로운 공개 키로 이동될 수 있다. 콩그레스의 멤버십을 업데이트할 수 있는 빈도는 블록체인 네트워크(100)의 블록 시간에 의해 제한된다. 많은 용례는 작업 증명 메인체인(mainchain)의 평균 블록 생성 시간에 비해 낮은 빈도의 균형 조정만을 필요로 할 수 있다.
기존의 공개 그룹 어드레스를 유지한 상태에서 개인 키 지분 분산의 업데이트(Updating Private Key Share Distributions While Retaining Existing Public Group Address)
이제, 도 7을 참조하면, 개인 키 지분 분산을 업데이트하는 추가의 예시적인 방법(700)이 도시된다. 방법(700)은 블록체인 네트워크(100)의 노드(102)에 의해 블록체인 네트워크(100)의 다른 노드들과 협력하여 수행될 수 있다.
도 7의 방법(700)에 있어서, 콩그레스 공개 키는 멤버 예치금의 분산이 변경될 때마다 변경되지는 않는다. 새로운 키 지분을 할당하기 위한 요청이 검출될 경우(동작(702)에서, 디지털 자산의 공개 그룹 어드레스로의 예치를 통해 발생할 수 있음), 노드(102)는 콩그레스의 다른 멤버들과 협업하여 동일한 공개 키에 대한 새로운 개인 키 지분들을 그룹의 새로운 멤버들에게 발행한다(동작(704)에서). 협업하는 노드들의 수는 적어도 임계치 서명 스킴 하에서 디지털 서명을 생성하는 데 필요한 노드들의 임계 수이다. 동작(704)에서, 다른 키 지분들을 동일하게 유지하면서 추가의 키 지분이 할당될 수 있다. 이는 (임계치 서명 스킴의) 임계치의 변경을 수반할 수 있지만, 실제로는 변경이 적을 수 있다. 대안으로서, 동작(704)에서, 다른 키 지분들이 갱신되는 동안 추가의 키 지분이 할당될 수 있다. 이러한 갱신에는 이전에 생성된 키 지분들의 삭제에 대한 증명이 수반되어야 한다. 이 경우, 동일한 임계치를 유지하면서 새로운 공유들이 할당될 수 있다(SSS의 맥락에서, 이는 증가된 차수의 새로운 다항식에서의 공유를 수반함).
동작(702)에서, 노드(102)는 공개 그룹 어드레스로의 디지털 자산의 트랜잭션들 중 적어도 일부 트랜잭션에 포함되는 하나 이상의 속성을 사용해서 콩그레스 멤버(즉, 다른 목적이 아니라, 콩그레스에 가담하기 위해 디지털 자산을 콩그레스 공개 키에 전송한 파티)를 식별할 수 있다. 예를 들어, 특정 트랜잭션들은 트랜잭션들 내의 속성을 사용해서 특수 트랜잭션으로서 플래깅될 수 있다. 이러한 속성(또는 그 존재 유무)은 전송이 이루어진 목적을 나타낼 수 있다. 예를 들어, 플래그는 전송자가 콩그레스에 가담한다고 요청하고 있지 않은 경우에 트랜잭션에 포함될 수 있다.
멤버들이 방법(700)을 사용하는 콩그레스를 이탈할 경우, 이들은 자신의 개인 키 지분을 안전하게 삭제할 수 있다. 기존 멤버들의 개인 키 지분들을 사용할 수 없도록 하기 위해, 콩그레스의 멤버들은 특수한 TEE를 갖는 노드(102)들을 사용해야 할 수 있다. TEE는 명령어 및 그 안에서 실행되는 데이터가 시스템의 나머지 부분으로부터의 액세스 및 조작에 대하여 보호되도록 하는 하드웨어 레벨에서 구현되는 아키텍처이다. TEE는 콩그레스 내의 다른 노드들과 같은 외부 파티에 대한 시스템의 무결성을 검증하는 데 사용될 수 있는 원격 증명 과제에 대응하기 위해 하드웨어 메커니즘을 채택할 수 있다.
각각의 멤버 노드는 집적 회로 레벨에서 하드웨어를 훼손하지 않으면서 호스트 시스템에 액세스할 수 없게 유지되는 하나 이상의 랜덤 비밀 값을 생성하도록 구성된 공인된 TEE를 사용할 수 있다. 이렇게 생성된 비밀 값은 (예컨대, 도 4의 방법(400)의 동작(410)에서) 개인 키 지분의 분산 생성에 사용될 것이다. 이 비밀 값은 콩그레스의 설정 단계에서 공유된 공개 키를 확립하는 데 사용될 수도 있다. 설정 프로토콜과 연관된 연산은 TEE 내에서 수행되므로, 멤버 또는 이전의 멤버는 그들 자신의 또는 다른 멤버의 개인 키 지분에 관한 어떠한 정보도 멤버간 통신으로 또는 임의의 다른 방법으로 도출할 수 없다. TEE 내의 인클레이브는, TEE 인클레이브가 인증된 것이고 승인된 컴퓨터 판독 가능 명령어를 실행하고 있음을 다른 노드들에게 입증하는 데 사용될 수 있는 원격 증명 프로토콜이 수행되게 할 수 있다.
그룹 변경과 연관된 연산은 TEE 인클레이브 내에서 수행된다. 예를 들어, SSS의 목적을 위해 새로운 다항식을 계산하는 데 사용될 수 있는 새로운 보안 랜덤 비밀의 생성이 TEE 인클레이브에서 수행된다.
TEE 인클레이브는 또한, 더 이상 사용되지 않는 이전의 키 지분 및 이전의 비밀이 멤버 예치금이 반환될 수 있기 전에 안전하게 삭제되도록 하는 것을 목적으로 한다. 특히, 멤버 예치금을 반환하기 위해, 증명 프로토콜은 TEE 인클레이브가 키 지분의 삭제를 증명하도록 요구할 수 있다. 각각의 노드(102)는 이러한 증명을, 필요한 삭제가 원격 증명 프로토콜을 통해 다른 노드들에서 발생했다는 확인으로서 해석할 수 있다. 따라서, 방법(700)은 콩그레스를 이탈한 멤버의 TEE 내에 이전에 보유된 개인 키 지분이 해당 멤버와 연관된 노드로부터 삭제되었음을 확인하는 단계를 또한 포함할 수 있다. 이 확인은 개인 키 지분의 삭제의 증명을 수신함으로써 수행될 수 있다. 따라서, 원격 증명 프로토콜은 콩그레스를 이탈한 멤버의 TEE에 이전에 보유된 개인 키 지분의 삭제에 대한 증명을 취득하기 위해 사용될 수 있다.
도 6의 방법(600) 및 도 7의 방법(700)은 각각 다양한 이점을 제공한다. 예를 들어, 도 6의 방법(600)은 안전한 삭제에 의존하지 않으며 신뢰할 수 있는 하드웨어에 의존할 필요가 없다. 다만, 도 6의 방법(600)은, 어떤 상황에서는 이러한 하드웨어가 키 지분의 악의적인 모집을 더 어렵게 만들 수 있기 때문에, 이러한 하드웨어로부터 이점을 얻을 수도 있다.
도 7의 방법(700)은 멤버십이 변경될 때마다 디지털 자산을 새로운 콩그레스 공개 키 하에서 다시 잠그지 않아도 된다. 또한, 어떤 상황에서는, 방법(700)이 도 6의 방법(600)보다 신속하게 멤버십을 업데이트할 수 있는데, 그 이유는 도 7의 방법(700) 하에서는, 디지털 자산이 새로운 공개 키로 이동되지 않기 때문에 모든 디지털 자산을 새로운 공개 키로 이동시키기 위해 트랜잭션이 블록체인에 추가될 필요가 없기 때문이다. 즉, 공개 키가 변경되지 않기 때문에 디지털 자산의 새로운 공개 키로의 전송을 확인하기 위해 몇 개의 블록이 생성되기를 기다릴 필요없이, 도 7의 방법(700)을 사용해서 멤버십이 업데이트될 수 있다.
콩그레스로부터의 탈퇴(Disenrollment From Congress)
앞서 주지된 바와 같이, 그룹 멤버들은 때때로 콩그레스를 이탈하기 위한 요청을 할 수 있으며, 그룹 멤버가 콩그레스로부터 탈퇴할 경우, 그들이 콩그레스 풀에 예치한 디지털 자산은 그들에게 반환될 수 있다. 이제, 도 8을 참조하면, 예치금을 반환하는 예시적인 방법(800)이 흐름도 형태로 도시된다. 방법은 노드(102)에 의해 콩그레스의 다른 노드(102)들과 협력하여 수행될 수 있다.
방법(800)의 동작(802)에서, 노드(102)는 콩그레스 멤버인 요청자로부터 인출 요청을 수신한다. 인출 요청을 탈퇴 요청이라고 할 수도 있다. 인출 요청은 요청자에 의해 사전에 예치되고 현재 콩그레스에 의해 제어되고 있는 디지털 자산을 인출하기 위한 요청이다. 요청은 요청자에 의해 모든 콩그레스 멤버들에게 브로드캐스트되어 있을 수 있다.
요청을 수신하는 것에 응답하여, 동작(804)에서, 노드(102)는 요청을 결정된 기준에 대하여 평가한다. 이러한 기준은 소정의 기준일 수 있다. 콩그레스 공개 키가 그룹 멤버십이 변경될 때마다 변경되지 않는 콩그레스 프로토콜에 따라 콩그레스가 동작하면, 동작(804)에서, 노드(102)는 개인 키 지분이 요청자에 의해 삭제되었음을 확인할 수 있다. 이러한 확인은 TEE와 연관된 원격 증명 프로토콜을 사용해서 취득될 수 있다.
콩그레스 프로토콜이 멤버십이 변경될 때 콩그레스 공개 키가 변경되는 프로토콜이면, 개인 키 지분이 더 이상 유효하지 않기 때문에 노드(102)는 개인 키 지분의 삭제를 확인하지 않아도 된다. 대신, 새로운 콩그레스 키가 사용될 수 있고, 콩그레스 제어 하의 다른 디지털 자산이 새로운 콩그레스 키에 전송될 수 있다.
노드(102)가 인출 요청을 평가에 기초하여 승인하면, 동작(806)에서, 노드는 디지털 자산의 인출을 가능하게 한다. 즉, 노드(102)는 그 개인 키 지분을 사용해서 협력적으로 디지털 서명을 생성하고, 디지털 서명을 사용해서 요청자에 의해 사전에 예치된 디지털 자산을 다시 요청자에게 전송한다. 예를 들어, 디지털 자산은 사전에 수신되었던 어드레스로 다시 송신될 수 있다. 동작(806)은 적어도 임계 수의 콩그레스 멤버들이 인출을 승인한 경우에만 인출이 실행되도록 임계치 서명 스킴에 따라 수행된다. 동작(806)은 탈퇴를 희망하는 멤버가 일정 기간 동안 활동이 일시중지된 후에 수행된다. 이 대기 기간은 멤버 예치금의 반환 프로토콜이 수행되는 동안 멤버가 부정행위를 하는 것을 방지한다.
콩그레스 프로토콜은 다수의 상이한 목적으로 사용될 수 있다. 콩그레스는 다양한 기능을 수행하기 위한 안전한 메커니즘을 제공한다. 콩그레스는 신뢰할 수 없게 동작하고 디지털 자산에 대한 소유권을 제어할 수 있다.
콩그레스 프로토콜은, 예를 들어, 고스트 체인을 구현하는 데 사용될 수 있으며, 이 경우, 콩그레스 프로토콜을 고스트 체인 프로토콜이라고 할 수 있다.
고스트 체인(Ghost Chains)
이제, 도 9를 참조하면, 다이어그램(900)은 블록체인(902) 및 고스트 체인(904)을 도시한다. 블록체인(902)은 블록-기반의 분산 작업 증명 원장이다. 고스트 체인(904)은, 임의의 목적에, 예를 들면, 플래깅된 트랜잭션에서 지정되는 하나 이상의 조건에 따라 복호 키를 구성하거나 또는 블록체인 네트워크의 노드들 사이의 분쟁을 중재하는 데 사용될 수 있는 블록-기반의 지분 증명 분산 원장이다. 예를 들어, 블록체인은 하나의 노드가 다른 노드에 의해 제출된 작업 성과물(work product)에 이의를 제기하는 챌린지(challenge)를 포함할 수 있다. 이러한 챌린지는 도 9에서 "C"로 표시된다. 챌린지는, 예를 들어, 노드(즉, 챌린저)가 요청의 이행에서 제안된 결과가 유효하지 않다는 것을 나타낼 때, 발생할 수 있다.
노드에 의해 챌린지가 행해진 경우, 고스트 체인(904)이 전개된다. 고스트 체인은 챌린지에 응답하여 챌린지 C가 발생한 후에 인스턴스화된다. 고스트 체인은 고스트 체인의 이전 인스턴스화로부터의 최종(final) 블록(터미널(terminal) 블록이라고도 함)인 기원(genesis) 블록으로 인스턴스화될 수 있다. 고스트 체인이 J로 표시되는 판단(judgment)에 도달할 때까지 디지털 분쟁을 해결하기 위해 다수의 블록이 채굴자에 의해 고스트 체인에 추가된다.
판단에 도달될 때, 트랜잭션(아래에서는, 최종 트랜잭션 또는 결제 트랜잭션으로 인용됨)이 구성 및 서명될 수 있다(아래에서 더 상세하게 설명됨). 이 트랜잭션은 판단에 따라 메인 블록체인(902)에서 자금을 분산시키거나, 고스트 체인의 채굴자에게 보상하기 위해 자금을 분산시키는 등의 트랜잭션일 수 있다. 트랜잭션은 판단의 결과를 다시 메인 블록체인(902)에 통신할 수도 있다. 특히, 결과가 트랜잭션에 캡슐화될 수 있다.
판단에 도달되고 최종 트랜잭션이 구성 및 서명된 후에, 고스트 체인(904)이 종료되고, 구성된 트랜잭션이 메인 블록체인(902)으로 채굴된다. 고스트 체인(904)이 종료되기 때문에, 터미널 블록을 갖는다는 점에서 일반적인 블록체인과는 다르다. 고스트 체인(904)의 마지막 블록인 이 터미널 블록은, 판단이 결정되고 판단에 따라 메인 블록체인(902)에서 자금을 분산시키거나, 고스트 체인의 채굴자에게 보상하기 위해 자금을 분산시키는 등의 결과적인 트랜잭션이 유효하게 서명될 때 발생한다.
요청자-제안자-챌린저 및 고스트 체인(Requester-Proposer-Challenger and Ghost Chains)
따라서, 블록체인 네트워크(100)(도 1)에서의 노드(102)(도 1)들은 요청자-제안자-챌린저 프로토콜 및/또는 고스트 체인 해결 프로토콜을 구현할 수 있다. 이러한 노드(102)는 이러한 프로토콜을 구현하는 메모리(220)(도 2)에 저장되는 컴퓨터 실행 가능 명령어를 포함할 수 있다. 이러한 명령어는, 프로세서(210)(도 2)에 의한 실행시에, 노드(102)(예를 들면, 도 2를 참조하여 설명되는 유형의 전자 장치(200))로 하여금 프로토콜의 하나 이상의 방법을 수행하게 한다. 이러한 방법은 도 10 내지 도 13의 방법들(1000, 1100, 1200, 1300) 중 어느 하나 또는 임의의 조합을 포함할 수 있다.
이제, 요청자-제안자-챌린저 프로토콜 및/또는 고스트 체인 해결 프로토콜에 포함될 수 있는 방법들을 도시하는 도 10 내지 도 13을 참조한다. 도 10에 도시된 요청자 방법(1000)은 연산 교환(computation exchange)에서 작업의 요청자에 의해 수행될 수 있다. 즉, 작업의 완료를 요청하는 노드(102)가 도 10의 요청자 방법(1000)을 수행할 수 있다. 노드는 블록체인 네트워크(100)(도 1)에서의 노드이고, 노드를 요청자라고 할 수 있다.
제안자 방법(1100)은 도 11에 도시된다. 제안자 방법(1100)은 작업에 대한 해법의 제안자에 의해 수행될 수 있다. 즉, 작업을 완료했다고 주장하는 노드(102)가 도 11의 방법(1100)을 수행할 수 있다. 노드는 블록체인 네트워크(100)(도 1)에서의 노드이고, 노드를 제안자라고 할 수 있다.
챌린저 방법(1200)은 도 12에 도시된다. 챌린저 방법(1200)은 작업에 대한 해법의 챌린저에 의해 수행될 수 있다. 즉, 제안자에 의해 제안된 해법에 이의를 제기하는 노드(102)가 도 12의 방법(1200)을 수행할 수 있다. 노드는 블록체인 네트워크(100)(도 1)에서의 노드이고, 노드를 챌린저라고 할 수 있다.
중재자 방법(1300)은 도 13에 도시된다. 중재자 방법(1300)은 블록체인 네트워크의 노드에 의해 블록체인 네트워크의 다른 노드들과 협력하여 수행될 수 있다. 다른 노드들과 협력하여 중재자 방법을 수행하는 노드를 중재자라고 할 수 있다.
도 10 내지 도 13의 방법들(1000, 1100, 1200, 1300)은 협력적으로 수행된다. 예를 들어, 방법들은 제안자의 해법의 유효성을 보증하기 위해 고스트 체인이 사용되는 요청자-제안자-챌린저 프로토콜을 종합적으로 제공한다.
요청자 방법(1000)(도 10)의 동작(1002)에서, 요청자라고도 하는 노드가 요청을 발행한다. 요청은 작업을 완료하기 위한 요청이다. 예를 들어, 작업은 작업 성과물에 대한 요청일 수 있거나, 또는 오프-체인(off-chain) 이벤트가 발생했는지의 여부를 결정하기 위한 것일 수 있으며, 이는 아래에서 더 상세하게 설명된다. 요청은 성공적인 작업 완료에 대한 대가로 블록체인 네트워크(100)와 연관된 디지털 자산 형태의 포상금(bounty)을 제공한다. 요청은 블록체인에서 발행될 수 있다(즉, "오프-체인"). 예를 들어, 요청은 인터넷을 통해 액세스 가능한 웹 서버에서 발행될 수 있다. 요청은, 요청에 대한 후보자 해법이 일정 기간("챌린지 기간(challenge period)"이라고 할 수도 있음) 동안 챌린지가 행해지지 않은 경우, 또는 후보자 해법이 정확한지의 여부에 대하여 콩그레스의 멤버들이 투표함으로써 챌린지가 해결된 경우, 성공적으로 완료된 것으로 정의된다. 일부 실시형태에 있어서, 고스트 체인은 투표 결과에 응답하여 전개된다.
후술하는 바와 같은 일부 실시형태에 있어서, 연산 교환은 노드들이 연산 작업을 떠넘기는 것을 허용할 수 있다. 요청(동작(1002)에서)은 연산 교환에서 발행될 수 있다. 연산 교환은 요청된 작업들의 집합일 수 있다. 예를 들어, 복수의 작업이 연산 교환에서 공개될 수 있다. 작업들은 동일한 요청자에 의해 또는 상이한 요청자들에 의해 공개될 수 있다. 연산 교환은 노드들이 연산 또는 알고리즘 성능을 다른 노드들에게 떠넘기는 것을 허용한다.
제안자 방법(1100)(도 11)의 동작(1102)에서, 제안자라고 할 수 있는 노드가 요청을 식별한다. 이어서, 노드는 작업 오프-체인을 완료하기 위해 (동작(1104)에서) 진행한다. 예를 들어, 요청자에 의해 요청되는 알고리즘, 데이터, 또는 그 밖의 결과가 프로세서에 의해 작업 성과물로서 취득될 수 있다.
이어서, 제안자는 방법(1100)(도 11)의 동작(1106)에서 제안을 제출할 수 있다. 제안은 도 10의 방법(1000)의 동작(1002)에서 요청자에 의해 발행된 요청과 연관된 작업을 완료했다는 주장이다. 제안을 제출하기 위해, 제안자는 블록체인 네트워크(100)에 대한 자신의 공개 키를 요청자에게 송신할 수 있다. 제안자는 또한, 작업에 대한 해법에 커미트(commit)할 수도 있다. 이 커미트는 해법의 해시(즉, 연산의 출력 또는 다른 유형의 해법과 같이, 작업 성과물의 해시) 형태일 수 있다.
요청자는 도 10의 방법(1000)의 동작(1004)에서 제안을 수신한다. 예를 들어, 요청자는 제안자의 공개 키 및 "커미트(commit)"(예컨대, 의도된 작업 성과물의 해시)를 수신할 수 있다.
제안을 수신하는 것에 응답하여, 도 10의 방법(1000)의 동작(1006)에서, 요청자는 트랜잭션 T1을 구성할 수 있다. 트랜잭션은 입력으로서 포상금을 포함한다. 트랜잭션은 포상금을 포함하는 한편, 출력으로서 제안자 예치금을 또한 포함한다(즉, T1_out = bounty + proposer_deposit). 트랜잭션 T1은 제안자가 자신의 입력을 추가할 수 있도록 서명된다. 예를 들어, 트랜잭션 T1은 SIGHASH_ALL | SIGHASH_ANYONECANPAY 서명될 수 있다. SIGHASH_ALL은 서명된 부분의 수정을 방지하는 임의의 서명 스크립트를 제외한 전체 트랜잭션에 서명하는 디폴트 서명 해시 타입이다. SIGHASH_ANYONECANPAY는 현재의 입력에만 서명하는 서명 해시 타입이다.
트랜잭션 T1은 2가지 방식으로 잠금 해제되도록 구성된다. 챌린지 기간(후술함)의 만료 이후에, 트랜잭션은 제안자의 서명(즉, 제안자가 요청자에게 제공한 공개 키에 대응하는 서명) 및 커미트에 대응하는 해법으로 잠금 해제될 수 있다. 예를 들어, 연산 코드 OP_CHECKSEQUENCEVERIFY는 챌린지 기간 동안 트랜잭션을 잠그되, 이 기간 내에 챌린지가 없으면 제안자에 의한 잠금 해제를 허용하는 데 사용될 수 있다. 트랜잭션은 또한, 언제든지 콩그레스(110)(도 1)의 그룹 서명으로 잠금 해제되도록 구성된다. 즉, 트랜잭션은 콩그레스의 멤버인 노드들이 각자의 개인 키 지분을 사용해서 협력하여 콩그레스(110)에 대한 임계치 서명 스킴에 따라 트랜잭션을 잠금 해제할 경우에는 챌린지 기간의 만료 전에 또는 후에 잠금 해제될 수 있다.
트랜잭션은 또한, 커미트와 같은 주장된 해법에 관한 정보를 포함할 수도 있다. 예를 들어, 의도된 작업 성과물의 해시가 OP_PUSHDATA 연산 코드를 사용해서 트랜잭션에 추가될 수 있다. 특히, 의도된 작업 성과물의 해시는 트랜잭션의 잠금 스크립트에 추가될 수 있다. 이 잠금 스크립트는 잠금 스크립트에 포함되는 의도된 작업 성과물의 해시를 해싱하는 해법을 제공하는 잠금 해제 스크립트에 의해 (챌린지 기간의 만료 이후에) 잠금 해제되도록 구성된다.
도 10 및 도 11에는 도시되어 있지 않지만, 제안자는 동작(1006)에서 구성되는 트랜잭션 T1을 수신할 수 있으며, 트랜잭션 T1에 대한 입력으로서 제안자 예치금을 추가할 수 있다. 제안자는 트랜잭션을 블록체인 네트워크(100)(도 1)의 다른 노드들에 브로드캐스트한다. 이어서, 트랜잭션이 블록체인 상에 채굴(즉, 블록에 추가)되어 공개적으로 볼 수 있게 된다.
트랜잭션이 블록체인 상에 채굴되면, 챌린지 기간이 개시되며, 이 기간 동안 임의의 노드(102)(도 1)가 제안자에 의해 제출된 제안에 이의를 제기할 수 있다. 챌린지 기간 동안 챌린지가 행해지지 않으면, 제안자는 트랜잭션 T1로부터 포상금 및 제안자 예치금을 청구할 수 있다. 제안자는 챌린지 기간의 남은 시간을 추적하기 위해 타이머를 개시할 수 있으며, 챌린지 기간이 만료했을 때 자동으로 조치를 취할 수 있다. 예를 들어, 제안자는 프로세서 작업 성과물과 같은 작업 성과물(해법이라고 할 수도 있음)을 요청자에게 제공할 수 있으며 트랜잭션을 잠금 해제할 수 있다. 실시예에 있어서, 제안자는 오프-체인 이벤트가 발생했음을 나타내는 작업 성과물을 제공하고, 임의의 노드(102)(도 1)는 오프-체인 이벤트가 실제로 발생한 제안된 해법에 이의를 제기할 수 있다.
제안자는 해법을 요청자에게 직접적으로 제공하지 않을 수 있다. 대신에, 제안자는 해법을 메인 블록체인 네트워크 상의 트랜잭션에 내재시킴으로써 해법을 제공할 수 있다. 예를 들어, 제안자는 포상금 및 제안자 예치금을 저당잡는 (트랜잭션 T1에서의) 잠금 스크립트를 잠금 해제하는 잠금 해제 스크립트에서(예컨대, T1의 잠금 스크립트를 TRUE로 평가하는 잠금 해제 스크립트에서) 해법을 제공할 수 있다. 앞서 주지된 바와 같이, 잠금 스크립트는 잠금 해제 스크립트에서의 제안된 해법이 요청자가 제안자에 의해 이전에 제공받은 값(즉, "커미트"에서)을 해싱하는 것을 검사하도록 구성될 수 있다. 잠금 해제 스크립트가 트랜잭션 T1의 잠금 스크립트에 의해 이전에 저당잡힌 디지털 자산(즉, 트랜잭션 T1의 UTXO)을 저당잡는 잠금 스크립트를 성공적으로 잠금 해제할 경우, 잠금 해제 스크립트를 포함하는 트랜잭션은 디지털 자산(즉, 제안자 예치금 및 포상금)을 새로운 잠금 스크립트(예를 들어, 제안자가 이제 디지털 자산을 완전히 제어할 수 있도록 제안자의 공개 키를 사용해서 디지털 자산을 저당잡을 수 있음)로 저당잡는 것에 의해 트랜잭션을 소비한다.
앞서 주지된 바와 같이, 트랜잭션 T1은 OP_CHECKSEQUENCEVERIFY 코드를 사용해서 포상금 및 제안자 예치금을 잠그도록 구성될 수 있다. 이는 요청자로부터의 추가 승인없이 챌린지 기간의 만료 이후에 제안자가 포상금 및 제안자 예치금을 자동으로 청구할 수 있게 한다.
제안자의 해법에 대한 챌린지가 없으면, 챌린지 프로토콜 또는 고스트 체인 프로토콜을 실행할 필요 없이 작업 증명 메인 블록체인(902)(도 9)에서 완전한 트랜잭션이 수행될 수 있다는 점에 주목할 수 있다.
그러나, 챌린저는 챌린지 기간 동안 챌린지를 행할 수 있다. 예를 들어, 방법(1200)의 동작(1202)에서, 챌린저가 챌린지를 한다. 챌린저는 도 11의 방법(1100)에서의 동작들(1102 및 1104)과 유사한 동작을 수행했을 수 있다. 즉, 챌린저는 요청을 식별했을 수 있으며, 동작(1202)에서 챌린지를 하기 전에 작업 오프-체인을 완료했을 수 있다. 챌린저는 또한, 챌린저의 해법이 제안자의 것과는 다르다고 결정함으로써 챌린지가 행해져야 한다고 결정했을 수도 있다. 챌린저는, 예를 들어, 그 해법의 해시를 수행하고 해당 해시를 제안자의 해법의 해시와 비교할 수 있으며, 해시들이 상이하면, 챌린저가 챌린지를 행할 수 있다.
도 12의 방법(1200)의 동작(1202)에서, 챌린저는 챌린지 기간 내에 이의를 제기한다. 챌린저는 챌린지 의지를 블록체인 네트워크(100)에 브로드캐스트함으로써 챌린지를 행할 수 있다. 챌린지가 행해질 경우, 노드들의 그룹은 해법의 유효성을 결정하는 데 도움을 줄 수 있다. 예를 들어, 오프-체인 이벤트가 발생했다는 제안에 응답하여 챌린지가 행해질 수 있으며, 오프-체인 이벤트가 실제로 발생하지 않았다고 주장하는 챌린지에 의하면, 노드들의 그룹(예컨대, 콩그레스)은 제안자 또는 챌린저에 의해 제공되는 해법의 수락 여부를 결정할 수 있다.
예를 들어, 중재자 방법(1300)의 흐름도를 도시하는 도 13을 간략히 참조하면, 노드들의 그룹은 챌린지가 행해질 때 중재를 수행하는 데 사용될 수 있는 콩그레스를 형성할 수 있다. 콩그레스는, 앞서 주지된 바와 같이, 작업 증명 블록체인 네트워크에서 디지털 자산의 예치에 의해 보호된다. 예를 들어, 방법(1300)의 동작(1302)에서, 중재자 방법(1300)을 수행하는 중재자가 콩그레스에 가담할 수 있다. 예를 들어, 중재자는 도 4를 참조하여 전술한 콩그레스에 가담하는 방법(400)을 수행할 수 있다. 따라서, 동작(1302)에서, 중재자는 콩그레스와 연관된 공개 그룹 어드레스에 대한 디지털 자산의 예치를 통해, 콩그레스라고 할 수 있는 그룹에 가담하여 그룹 멤버가 된다. 중재자는 작업 증명 블록체인 네트워크 상에서 이 예치를 한다. 전술한 바와 같이, 그룹은 노드가 개인 키 지분을 제어하는 임계치 서명 스킴과 연관된다. 그룹의 가담(가입이라고 할 수도 있음)은, 예를 들어, 고스트 체인의 전개 동안 수행될 수 있다. 도 13이 동작(1302)(콩그레스에 가담)을 동작(1306)(고스트 체인의 전개)에 앞서 수행되는 것으로 도시하고 있기 때문에, 고스트 체인의 이전의 전개 동안(즉, 동작(1306)에서의 전개 도중이 아닐 때) 콩그레스에 가담한 노드에 의해 수행된다. 그러나, 동작들(1306, 1308 및 1310)은, 예를 들어, 동작(1306) 동안 그룹에 가담하는 노드들에 의해 수행될 수 있다.
동작(1304)에서, 중재자는 그룹의 다른 노드들과 협력하여 도 12의 챌린저 방법(1200)의 동작(1202)에서 챌린저에 의해 이루어진 챌린지를 검출한다. 특히, 중재자는 그룹의 다른 노드들과 협력하여, 요청자에 의해 이루어진 요청에 응답하여 제안자의 작업 성과물에 대한, 챌린저에 의한 챌린지를 검출한다.
전술한 트랜잭선 T1로 인해, 챌린지가 행해진 경우, 그룹은 포상금 및 제안자 예치금의 제어를 담당한다. 즉, 트랜잭션 T1은 언제든지 콩그레스에 의해 잠금 해제 가능하도록 구성된다. 따라서, 포상금 및 예치금은 요청에 대한 해법을 제안자가 수용한 후의 챌린지 시간이라고 하는 기간 내에 챌린지가 검출될 때 그룹의 제어 하에 놓여서 유지된다. 따라서, 챌린지가 검출될 경우, 그룹은 포상금 및 제안자 예치금을 제어한다.
그룹이 포상금 및 제안자 예치금을 제어한 후에, 챌린저를 검출하는 것에 응답하여, 중재자는 그룹의 다른 노드들과 협력하여 챌린저에 의한 디지털 자산의 예치를 촉진하게 할 수 있다. 예를 들어, 챌린지를 검출하는 것에 응답하여, 콩그레스는 포상금 및 제안자 예치금과 동일한 입력(예컨대, T2_in = bounty + proposer deposit) 및 포상금, 제안자 예치금, 및 챌린저 예치금의 합계와 동일한 출력(예컨대, T2_out=bounty + proposer deposit + challenger deposit)을 갖는 트랜잭션 T2를 구성할 수 있다. 트랜잭션 T2는 언제든지 그룹에 지불하도록 구성된다. 즉, 트랜잭션 T2는 콩그레스 공개 키에 지불하도록 구성된다. 트랜잭션 T2는 SIGHASH_ALL | SIGHASH_ANYONECANPAY 서명될 수 있다. 중재자는, 다른 중재자들과 함께, 트랜잭션 T2를 챌린저 예치금을 입력으로서 추가하기 위한 챌린저에게 제공할 수 있다. 예를 들어, 중재자는, 다른 노드들과 함께, 트랜잭션 T2를 다른 노드들이 공개적으로 이용 가능하게 만들 수 있다.
트랜잭션 T2가 공개적으로 이용 가능해진 후에, 챌린저는 챌린저 예치금을 트랜잭션 T2에 대한 입력으로서 추가한다. 즉, 챌린저는 디지털 자산의 예치금(도 12의 챌린저 방법(1200)의 동작(1204)에서)을 제공하고 이러한 예치금을 그룹의 제어 하에 둔다. 특히, 챌린저 예치금은 콩그레스 공개 키의 제어 하에 놓인다. 따라서, 포상금, 제안자 예치금 및 챌린저 예치금은 모두 그룹의 제어 하에 놓이고 콩그레스 공개 키에 의해 저당잡힌다. 상기 콩그레스에 대한 설명에서 더 상세하게 설명된 바와 같이, 임계치 서명 스킴은 콩그레스의 임계 인원의 멤버가 각각의 개인 키 지분을 사용해서 포상금, 제안자 예치금 및 챌린저 예치금을 포함하는 트랜잭션에 대한 유효한 서명을 협력적으로 생성할 수 있게 한다. 제안자 예치금 및 챌린저 예치금은 동일한 크기일 수 있다.
챌린저는 또한 그 챌린지 해법에 커미트할 수 있다. 예를 들어, 챌린저는 연산 코드, 예를 들어 OP_PUSHDATA를 사용해서 해법의 해시를 트랜잭션 T2에 추가할 수 있다.
트랜잭션 T2가 메인 블록체인 네트워크에 브로드캐스트되고 메인 블록체인 네트워크 상에 채굴되어, 챌린저 예치금이 콩그레스 공개 키에 의해 저당잡힌다. 포상금, 제안자 예치금 및 챌린저 예치금은 이제 그룹의 독점적인 제어 하에 놓인다.
따라서, 챌린저는 대안적인 해법의 증거 및 예치금을 중재자에게 제공한다. 트랜잭션 T2가 메인 블록체인 네트워크 상에 채굴된 후에, 중재자 방법(1300)의 동작(1306)에서, 중재자는 그룹의 다른 노드들과 협력하여 고스트 체인을 전개해서 챌린지를 해결한다. 전술한 바와 같이, 고스트 체인은 고스트 체인의 채굴자가 그룹의 멤버인 지분 증명 블록체인이다. 즉, 콩그레스의 멤버들은 고스트 체인에서의 채굴이 허용된다. 지분 증명 블록체인 네트워크 상의 그 멤버 예치금은 멤버들이 고스트 체인에서 채굴하는 것을 허용하기 위한 지분으로서의 역할을 하고, 임의의 멤버가 채굴하도록 선택될 확률은 그 예치금의 상대적인 수량에 비례한다.
고스트 체인이 (동작(1306)에서) 전개되는 동안, 고스트 체인의 기원 블록이 중재자에 의해 그룹의 다른 노드들과 협력하여 생성 또는 취득될 수 있다. 기원 블록은 마지막 고스트 체인 전개로부터의 최종 블록(예컨대, 고스트 체인이 실행되었고 이전의 실행이 과거의 챌린지에 응답하여 이루어진 것일 수 있는 마지막 인스턴스로부터의 터미널 블록)일 수 있다. 이 블록은 기원 지불(genesis payment)에 관한 정보를 포함할 수 있다. 기원 지불은 고스트 체인의 이전의 전개에 기초하여 아직 지불이 이루어지지 않은 디지털 자산의 전송이다.
또한, 고스트 체인이 전개되는 동안, 멤버들은 그룹에의 가입이 허락될 수 있거나, 또는 그룹으로부터의 탈퇴를 요청할 수 있다. 가입 단계 동안, (도 4를 참조하여 전술한 바와 같이) 새로운 멤버들이 가입되어 개인 키 지분을 할당받을 수 있다. 새로운 멤버들에게는 기원 블록(현재의 멤버들의 임계치에 의해 인증됨) 및 가입 프로세스 동안 생성된 임의의 후속 블록들이 제공된다.
또한, 사전-탈퇴 단계가 고스트 체인 실행에 포함될 수도 있다. 이 사전-탈퇴 단계 동안, 탈퇴를 요청한 임의의 멤버는 특정 개인 데이터의 삭제에 대한 증명을 송신할 수 있다. 이러한 증명은 멤버 예치금의 반환에 필요할 수 있다. 멤버 예치금의 반환을 가로막을 수 있는 부정행위의 증거가 이 단계에서 송신될 수 있다(예를 들어, 새롭게 가입한 멤버가 현재의 멤버 또는 멤버들에 의해 사전에 커미트되어 있지만 가짜일 것으로 의심되는 기원 블록을 제출할 수 있음). 탈퇴를 위한 기술은 도 8을 참조하여 상기에서 더 상세하게 설명된다.
고스트 체인의 전개는, 중재자에 의해 그룹의 다른 노드들과 협력하여, 판정(adjudication) 동작을 포함할 수 있다. 판정 동작은 제안자 및 챌린저로부터 증거를 수신하는 것 및 증거에 기초하여 챌린지를 해결하는 것을 포함할 수 있다. 예를 들어, 수신된 증거는 최종 해법 또는 중간 결과 중 하나 또는 둘 모두를 포함할 수 있다. 중간 결과는 요청된 작업을 수행하는 데 필요한 단계 또는 일련의 단계의 결과일 수 있다. 예를 들어, 중간 단계는 작업에 대한 부분적인 작업 성과물일 수 있다. 최종 해법은 요청된 작업을 완료한 최종 작업 성과물이다. 증거는 도 11의 제안자 방법(1100)의 동작(1108)에서 제안자에 의해, 그리고 도 12의 챌린저 방법(1200)의 동작(1206)에서 챌린저에 의해 제출될 수 있다. 경우에 따라, 최종 해법은 최종 해법에 도달하는 데 사용된 중간 결과 없이 제공된다(예컨대, 오프-체인 이벤트가 발생했다는 또는 발생하지 않았다는 주장이 중간 결과 없이 제공될 수 있음).
중재자 또는 콩그레스의 다른 노드들은 정확한 해법을 결정하기 위한 요청과 연관된 작업을 수행함으로써 챌린지를 해결할 수 있다. 예를 들어, 작업(예컨대, 연산 또는 알고리즘)이 온-체인(on-chain)으로(즉, 고스트 체인 자체에서) 수행될 수 있다. 그룹은 제안자 해법 및 챌린저 해법 중 어느 해법이 정확한 것인지를 결정함에 있어서, 이러한 해법들을 고스트 체인 상에서 결정되는 그 자체의 해법과 비교할 수 있다. 이 프로세스 동안, 그룹 멤버들(즉, 고스트 체인 채굴자들)은 연산 및/또는 분석을 수행해서 분쟁을 중재한다. 그룹 멤버들은 이 프로세스 동안 컨센서스에 이르고 블록들에 서명한다. 경우에 따라, 챌린지를 해결하는 것은 제안자 해법 또는 챌린저 해법이 수락되어야 하는지의 여부를 결정하기 위해 노드들(예컨대, 콩그레스의 멤버들)에 의한 투표를 수반할 수 있으며, 이는, 예를 들어, 오프-체인이 발생했는지 또는 발생하지 않았는지의 여부를 결정하는 것과 같이, 해법이 2개의 값 중 어느 하나를 갖는 이원 해법일 경우에 사용될 수 있다. 투표의 결과는 오프-체인 이벤트가 발생했는지의 여부에 대하여 참으로 정의될 수 있으며, 정확한 해법으로서 취급될 수 있다.
고스트 체인이 전개되는 동안 중재자는 (그룹의 다른 노드들과 협력하여) 판단에 도달한다. 중재자와 콩그레스의 다른 노드들이 챌린지를 해결할 때(즉, 이러한 노드들이 해결에 대한 컨센서스를 형성할 때) 판단에 도달되었다고 한다.
블록체인에서 중재에 대한 판단에 도달된 후에, 중재자는 그룹의 다른 노드들과 협력하여 (완전히 서명된 경우 메인 블록체인 네트워크에 채굴될) 최종 트랜잭션을 구성한다. 결제 트랜잭션이라고 할 수도 있는 최종 트랜잭션은 다양한 디지털 자산 전송; 예를 들어: (i) 포상금+예치금(판정 과정에서 성공적인 것으로 간주된 또는 정당한 것으로 입증된 노드에게 전송될 수 있음); (ii) 채굴 수수료(이미 수행한 고스트 체인 채굴에 관한 것); (iii) 기원 지불금(고스트 체인의 이전의 실행에 기초하여 지불되어야 하며 기원 블록으로부터 결정된 디지털 자산 전송임); 및/또는 (iv) 탈퇴한 회원의 멤버 예치금의 반환금을 포함할 수 있다.
이 트랜잭션은 또한, 유용한 메타데이터를 포함할 수 있으며; 예를 들어, 결제 트랜잭션은 해법을 블록체인 네트워크에 다시 전송할 수 있다. 따라서, 이 프로세스 동안, 그룹(즉, 그룹의 다른 노드들과 협력하는 중재자)은 판정 결과를 블록체인 네트워크에 커미트할 수 있다. 그룹은 또한, 중간 연산 상태의 머클 루트 해시(Merkle root hash)를 고스트 체인 상의 결정된 온-체인으로서 블록체인 네트워크에 커미트할 수 있다.
따라서, 그룹 제어 하의 디지털 자산은 중재자에 의해 그룹의 다른 노드들과 협력하여 분산될 수 있다(동작(1308)). 이러한 디지털 자산의 분산은 콩그레스에 대하여(즉, 그룹에 대하여) 정의된 임계치 서명 스킴에 따라 수행된다. 상기의 콩그레스에 대한 논의에서 주지된 바와 같이, 임계치 서명 스킴은 적어도 임계 인원의 멤버가 콩그레스 공개 키에 대한 유효한 서명을 생성할 필요가 있도록 구성된다. 따라서, 중재자는, 그룹의 다른 노드들과 함께(즉, 다른 중재자들과 함께), 중재자의 개인 키 지분을 사용해서 부분 서명을 최종 트랜잭션에 추가함으로써 디지털 자산을 전송하는 것에 동의할 수 있다. 다른 노드들도, 임계치 서명 스킴 하에서 필요한 적어도 임계 개수의 개인 키 지분이 최종 트랜잭션에 대한 유효한 서명을 생성하는 데 사용될 때까지 각자의 개인 키 지분을 사용해서 부분 서명을 추가한다.
최종 트랜잭션에서 디지털 자산을 분산하기 위한 특정한 방법은 중재의 결과에 의존할 것이다. 예를 들어, 챌린지가 성공적일 경우, 중재자는 다른 노드들과 협력해서 적어도 챌린저 예치금을 챌린저에게 전송할 수 있으며, 제안자 예치금을 채굴된 블록의 절대 개수에 비례하여 고스트 체인의 채굴자들에게 분산할 수 있다. 챌린지가 성공적이고 챌린저의 해법이 정확한 것으로 결정될 경우, 포상금이 또한 챌린저에게 전송될 수 있다. 따라서, 챌린저는 도 12의 챌린저 방법(1200)의 동작(1208)에서 디지털 자산을 수신할 수 있다. 그러나, 정확한 해법이 식별되지 않도록 이원 검색이 사용될 경우에는, 챌린저가 그 답변에 기초하여 제안을 제출할 수 있게 하는 요청을 재공개할 수 있는 요청자에게 포상금이 반환될 수 있다. 대안으로서, 제안자가 이원 검색을 통해 배제될 경우, 요청자는 챌린저의 커미트를 제안으로서 취급할 수 있고 도 10의 방법(1000)의 동작(1006)에서 동작들을 재개할 수 있다. 즉, 요청자는 챌린저의 제안에 기초하여 새로운 트랜잭션 T1을 구성할 수 있다. 이 트랜잭션은 이전에 챌린저로 간주되었던 노드가 이제는 제안자로 간주된다는 점을 제외하고는 동작(1006)을 참조하여 전술한 바와 같을 수 있다. 따라서, 새로운 트랜잭션 T1은 전술한 트랜잭션 T2에서 챌린저에 의해 제공된 바와 같은 해법의 해시에 대응하는 해법을 제공함으로써 챌린지 기간의 만료 이후에 챌린저에 의해 잠금 해제되도록 구성될 수 있다.
제안자의 작업 성과물이 유효한 것으로 결정될 경우, 중재자는 다른 노드들과 협력해서 포상금 및 제안자 예치금을 제안자에게 전송할 수 있으며 챌린저 예치금을 채굴된 블록의 절대 개수에 비례하여 고스트 체인의 채굴자들에게 분산할 수 있다. 따라서, 제안자는 도 11의 방법(1100)의 동작(1110)에서 디지털 자산을 수신할 수 있다.
요청자는 도 10의 요청자 방법(1000)의 동작(1008)에서 해법을 수신할 수 있다. 요청자가 동작(1008)에서 해법을 수신하는 방법은 챌린지가 행해졌는지의 여부에 의존할 수 있다. 예를 들어, 챌린지가 행해지지 않았으면, 제안자는 도 10의 방법(1000)의 동작(1006)을 참조하여 전술한 트랜잭션 T1을 사용해서 해법을 블록체인에 커미트했다. 그러나, 챌린지가 행해지고 고스트 체인이 요청에 대한 해법을 결정하면, 고스트 체인은 (예컨대, 도 13의 중재 방법(1300)의 동작(1310)에서) 고스트 체인의 종료시에 해법을 요청자에게 전송할 수 있다. 따라서, 고스트 체인 프로토콜은 해법이 결정되면 고스트 체인에 참여하는 노드들로 하여금 해법을 요청자에게 자동으로 전송하게 할 수 있다.
또한, 고스트 체인에서 판단에 도달되고 트랜잭션이 구성되어 유효하게 서명된 후에, (도 13의 중재자 방법(1300)의 동작(1310)에서) 고스트 체인이 종료된다. 즉, 챌린지의 해결시에 고스트 체인이 종료된다. 고스트 체인이 종료되면, 챌린지의 해결과 관련된 정보가 작업 증명 블록체인 네트워크에 다시 전송될 수 있다.
고스트 체인이 종료되면, 고스트 체인 상에 더 이상 추가 블록이 채굴되지 않는다. 즉, 통상의 블록체인과 달리, 고스트 체인은 터미널 블록을 갖는다. 고스트 체인은 분기(fork)되지 않는 지분 증명 블록체인으로서 구현될 수 있다. 분기가 없다는 것은 고스트 체인이 종료될 때 명확한 터미널 블록(즉, 그룹의 모든 노드에 의해 동의된 터미널 블록)이 존재하게 됨을 의미한다. 이 터미널 블록 이후에, 고스트 체인은 그 목적을 달성한 것이며 추가되지 않는다.
앞서 주지된 바와 같이, 중재자들(즉, 콩그레스의 노드들)이 판단에 도달할 경우, 노드들은 전술한 바와 같은 임계치 서명 스킴에 따른 부분 서명의 추가를 통해 트랜잭션에 유효한 서명이 생성된 후 메인체인 상에서 브로드캐스트될(동작(1308)에서) 트랜잭션을 구성하도록 협력한다. 이 트랜잭션은 그 자체가 다자 연산이기 때문에, 이 트랜잭션에 기여하는 노드들은 이 트랜잭션에 참가하는 것에 대하여 보상을 받게 됨을 예상할 수 있다. 그러나, 트랜잭션이 서명되기 전에 특정되기 때문에, 서명에 참가하는 것(트랜잭션을 통해 고스트 체인에 부분 서명을 송신하는 것 및 실제로 블록을 채굴하는 것을 포함할 수 있음)에 대한 보상은 추가적인 고스트 체인이 전개될 때까지 연기될 수 있다. 이러한 연기는 동작(1310)에서 제공될 수 있다. 특히, 터미널 블록은 고스트 체인의 장래의 전개 동안 기원 지불이 처리될 수 있게 하는 정보로 구성될 수 있다. 이러한 정보는, 최종 트랜잭션의 서명 동안 생성된 블록들과 같이, 최종 트랜잭션이 구성된 후에 생성된 블록들에 대하여 지불되어야 하는 채굴 수수료의 레코드일 수 있다. 즉, 기원 지불은 최종 트랜잭션의 서명에 기여한 노드들에게 보상하기 위해 정의될 수 있다. 고스트 체인의 터미널 블록은 다음 고스트 체인 실행(즉, 다음 번 고스트 체인의 전개시)의 기원 블록이 될 것이다. 따라서, 레코드는 장래의 기원 지불을 위해 터미널 블록에서 생성된다. 직전에 주지한 구현예에 따르면, 고스트 체인 실행 동안 멤버들이 가입/탈퇴하고, 이는 챌린지에 의해 트리거될 수 있다는 점에 유의한다. 또한, 대안적인 구현예는 규칙적인 간격으로 또는 다른 조건 하에서 가입/탈퇴를 허용할 것이다. 이는, 특히 이 목적을 위해, 판정 단계 및 판단 단계가 없는 것을 제외하면 전술한 고스트 체인 전개와 유사한 예정된 고스트 체인 실행을 수반할 수 있다. 이 경우, 채굴 수수료는 적어도 부분적으로 가입의 대가로 요구된 '가입 수수료(enrolment fees)'로부터 지불될 수 있다.
전술한 방법(1300)은 고스트 체인 실행을 설명했고, 이는 첫 번째 고스트 체인 실행이 아니라는 점에 유의한다. 즉, 방법(1300)은 과거의 어느 시점에 전개된 고스트 체인의 전개를 설명하므로 기원 지불을 포함하는 터미널 블록이 이미 고스트 체인에 존재한다. 방법(1300)은 첫 번째 고스트 체인이 전개되는 것을 허용하도록 수정될 수 있다. 예를 들어, 고스트 체인이 처음 전개될 때, 기원 블록이 다른 방식으로 확립될 수 있다. 예를 들어, 기원 블록은 초기에 신뢰된 파티에 의해 제공될 수 있다.
지분 증명이 더욱 규칙적인 블록 생성을 허용하고 높은 빈도의 블록 생성을 허용하도록 구성될 수 있기 때문에, 챌린지를 중재하기 위해 지분 증명 기반의 블록체인을 사용함으로써, 고스트 체인 해법은 작업 증명 블록체인 네트워크 자체에 대하여 이러한 중재를 수행하는 것보다 빠른 해결을 제공할 수 있다. 또한, 메인 블록체인 자체가 아닌 고스트 체인에 대하여 이러한 중재 작업을 수행함으로써, 메인 블록체인 네트워크로부터 작업이 푸시되어 메인 블록체인 네트워크의 부담이 줄어든다.
또한, 고스트 체인의 순시적 특성(즉, 고스트 체인이 사실상 일시적이고 종료된다는 사실)은 일반적으로 지분 증명 블록체인 네트워크에 영향을 미치는 '손해가 전혀 없는(nothing-at-stake)' 문제점의 위험을 피하거나 줄일 수 있다. 고스트 체인 네트워크의 일시적 특성은 콩그레스가 고스트 체인의 채굴자들에게 그들의 예치금을 고스트 체인이 종료될 때까지는 그대로 두도록 요구할 수 있게 한다. 즉, 콩그레스는 고스트 체인이 실행되고 있는 동안에는 어떠한 콩그레스 멤버도 자신의 지분을 인출하는 것을 허락하지 않도록 구성될 수 있다.
전술한 실시예들은 비트코인에서 이용 가능한 연산 코드를 참조했지만, 본 명세서에서 설명되는 방법들은 다른 유형의 블록체인 네트워크에서도 사용될 수 있다.
전술한 방법들은 일반적으로 노드에서 수행되는 것으로 설명되었지만, 방법의 특징들은 다른 노드들과의 협력에 의존하며 다른 곳에서 수행될 수 있다.
콩그레스 및 고스트 체인으로부터의 이벤트-잠금 암호화(Event-Lock Encryption From Congresses and Ghost Chains)
콩그레스 및 고스트 체인을 사용해서 이벤트-잠금 암호화를 수행하기 위한 기술을 아래에서 설명한다.
이벤트-잠금 암호화는 이벤트의 발생에 응답하여 암호화 연산을 수행하기 위한 메커니즘을 의미할 수 있다. 실시예로서, 시한 잠금 암호화는 정해진 암호문이 장래의 특정 시점에 또는 그 이후에 복호되도록 메시지를 "장래에" 송신하기 위한 메커니즘을 의미하는 특정한 유형의 이벤트-잠금 암호화이다. 이 경우, 이벤트는 (가능하게는 무작위의) 시간의 경과이다. 따라서, 이벤트-잠금 암호화는 이벤트의 발생에 따른 암호화 연산의 성능을 보장하기 위해 사용된다. 수행될 수 있는 암호화 연산의 실시예들은 암호문의 복호, 디지털 서명된 메시지 또는 데이터의 인증 등을 포함한다. 예를 들어, 본 명세서에서 설명되는 기술은, 예를 들어, Bitanksy(비탄스키) 등에 의한 "Time-Lock Puzzles from Randomized Encodings"에서 논의되는 바와 같이, 증인 암호화(witness encryption)와 관련하여 제시되는 문제점을 해결하는 효율을 향상시키기 위해 이용될 수 있다.
설명의 목적상, 도 9 및 도 10과 관련하여 논의되는 이벤트-잠금 암호화의 일부로서 수행되는 암호화 연산은 이벤트의 발생을 결정하는 것에 따른 암호문의 복호이다. 그러나, 다양한 실시형태에 있어서, 도 9 및 도 10에 도시된 것들과 관련하여 설명되는 것들을 대신하여 또는 그에 부가하여 다른 암호화 연산들이 수행될 수 있다. 일반적으로 말하면, 암호화 연산과 같은 하나 이상의 연산은 이벤트가 발생했다는 결정시에 수행될 수 있다.
이벤트-잠금 암호화를 가능하게 하는 데 사용되는 이벤트들은 온-체인 이벤트와 오프-체인 이벤트로 분류될 수 있다. 온-체인 이벤트는 블록체인의 검사를 통해 관찰될 수 있는 이벤트를 의미할 수 있고, 오프-체인 이벤트는 온-체인 이벤트가 아닌 이벤트를 의미할 수 있다. 메시지는 아이덴티티-기반의 암호화 스킴에 따라 공개 키 A에 대하여 암호화될 수 있다. 공개 키 A는 암호화를 수행하는 엔티티가 액세스한 상응하는 암호화 개인 키 SkA를 갖는 암호화 공개 키일 수 있다. 콩그레스 공개 키는 다른 곳에서 설명된, 예를 들면 도 1과 관련하여 설명된 내용을 따를 수 있다. 암호화된 메시지, 공개 키 A, 및 개인 키 SkA에 의해 디지털 서명된 이벤트(예컨대, 시간 임계치)는 플래깅된 트랜잭션을 통해 블록체인에 송신될 수 있다. 콩그레스에 의해 이벤트가 관찰될 경우, 고스트 체인이 인스턴스화될 수 있으며 복호 키가 구성될 수 있고, 그에 따라 암호화된 메시지의 복호가 가능해진다. 이벤트가 발생한 시기를 검출하기 위한 다양한 기술이 아래에서 논의된다.
다른 곳에서, 예를 들면 도 4와 관련하여 논의된 바와 같이, 엔티티는 디지털 자산을 콩그레스 풀에 예치할 수 있고, 이에 응답하여, 콩그레스(110)에 대한 개인 키 지분을 수신할 수 있다. 일부 실시형태에 있어서, 엔티티가 수신하는 공유들은 예치되는 디지털 자산의 수량 및/또는 가치에 비례할 수 있다. 개인 키 지분은 콩그레스가 콩그레스와 연관된 공개 키에 의해 저당잡히는 디지털 자산을 제어하는 임계치 서명 스킴에서 이용될 수 있다. 콩그레스 공개 키는 개인 키 지분의 대가로 콩그레스(110)의 멤버들에 의해 콩그레스 풀에 예치되는 디지털 자산, 및 개인 키 지분을 취득하는 것 이외의 이유로 예치된 콩그레스(110)의 멤버들 또는 비-멤버들에 의한 콩그레스 풀과 연관된(즉, 콩그레스의 완전, 부분 또는 조건부 제어 하에 놓인) 어드레스에 예치되는 임의의 디지털 자산을 저당잡는다. 비-멤버들 또는 멤버들은 다양한 이유로 콩그레스와 연관된 어드레스에 디지털 자산을 예치할 수 있다. 예를 들어, 콩그레스와 연관된 어드레스에 디지털 자산을 예치하는 이유는 이벤트의 발생을 검출할 때 하나 이상의 명령어의 실행에 대한 수수료를 제공하기 위함이다.
고스트 체인의 채굴자들은 복호 키를 구성하기 위해 협력할 수 있다. 일반적으로, 고스트 체인(904)은 분쟁을 해결하려는 이유만이 아니라, 임의의 이유로 전개될 수 있다. 고스트 체인은 인스턴스화되어 복호 키의 구성에 사용되는 정보를 공유하기 위한 첨부-전용 게시판으로서의 역할을 할 수 있다. 콩그레스의 멤버들은 고스트 체인의 채굴자들일 수 있다.
일부 실시형태들에 있어서, 임계치 암호화 및 복호를 수행하기 위한 방법이 본 명세서에서 설명되는 기술에 따라 설명될 수 있다. 엔티티는 아이덴티티-기반의 암호화 스킴에 따라 암호화를 수행할 수 있다. 예를 들어, 엔티티는 엔티티와 연관된 암호화 공개 키에 메시지를 암호화할 수 있으며, 이 암호화는 콩그레스 공개 키를 아이덴티티-기반의 암호화 스킴의 시스템-전체의 공개 키로서 이용한다. 아이덴티티-기반의 암호화 스킴은 Boneh 및 Franklin에 의한 "Identity-based encryption from the Weil pairing"에서 설명되는 내용에 따를 수 있다. 따라서, 엔티티는 시스템-전체의 공개 키를 사용해서 암호화 공개 키에 메시지를 암호화할 수 있다. 엔티티는 상응하는 암호화 개인 키에 액세스할 수 있으며, 시스템-전체의 공개 키는 콩그레스 공개 키일 수 있다.
트랜잭션은 작업 증명 블록체인 네트워크에 브로드캐스트될 수 있으며, 해당 트랜잭션은 아이덴티티-기반의 암호화 스킴에 따라 암호화된 메시지, 메시지 공개 키 A(즉, 아이덴티티-기반의 암호화 스킴 하에서 메시지가 암호화된 암호화 공개 키), 암호화된 메시지의 복호를 트리거해야 하는 이벤트, 및 수수료를 포함할 수 있다. 일부 실시형태에 있어서, 메시지 공개 키 A는 서명 키 SkA에 액세스한 엔티티와 연관되고, 해당 메시지 공개 키 A 및 서명 키 SkA는 제각기 비대칭 키 쌍의 공개 키 및 개인 키이다. 트랜잭션은 개인 서명 키 SkA를 사용해서 디지털 서명된 데이터를 더 포함할 수 있다. 예를 들어, 암호화된 메시지를 복호하기 위한 일련의 조건은, 디지털 서명의 유효성이 복호 키를 도출하기 전에 메시지 공개 키 A를 사용해서 검증되도록(예컨대, 메시지 공개 키 A 및 개인 서명 키 SkA가 비대칭 키 쌍을 형성하는 경우), 개인 서명 키 SkA를 사용해서 디지털 서명될 수 있다. 일반적으로 말하면, 일련의 조건은, 복호가 발생해야 하는 시기(예컨대, 시간-기반의 이벤트에 응답하여) 및 복호가 발생해야 하는 방식(예컨대, 공개 키 세트 S에 대응하는 개인 키 세트에 대한 액세스 권한을 갖는 하나 이상의 엔티티에 대하여 복호 키를 이용 가능하게 만들기 위해 복호 키에 대한 기여가 공개 키 세트 S 하에서 직접 암호화되어야 하는지의 여부)과 같은 정보를 포함할 수 있다. 이벤트는, 만족될 때, 복호 키를 이용 가능하게 만들어서 암호화된 메시지가 복호될 수 있어야 한다는 것을 나타내는 이벤트 또는 조건일 수 있다. 수수료는 콩그레스(110)의 공개 그룹 어드레스와 연관된 어드레스로의 디지털 자산의 전송일 수 있다. 수수료는 암호화된 메시지의 이벤트-잠금 복호를 수행하는 데 협력 및 참여하는 콩그레스의 멤버들 사이에 분산될 수 있다.
경우에 따라, 이벤트의 발생의 검증시에 암호화된 메시지가 복호되어야 하거나 및/또는 복호 가능해져야 한다는 것을 암시적으로 이해할 수 있다. 다른 경우들에 있어서, 트랜잭션은 암호화된 메시지와 관련하여 하나 이상의 연산을 수행하기 위한 명령어를 더 포함할 수 있다. 예를 들어, 명령어는 메시지의 복호 및 복호된 내용의 인증을 수행하는 것일 수 있다. 다른 실시형태들에 있어서, 명령어는 그 소유권이 자산을 소지자에게 효율적으로 전송하는 정보(예컨대, 개인 키)를 포함할 수 있는 메시지의 복호를 수행하는 것일 수 있다.
이벤트가 발생한 메인 블록체인에서 컨센서스에 도달되었을 때, 고스트 체인이 전개되어 암호화된 메시지를 복호하는 데 사용될 수 있는 복호 키를 생성할 수 있다. 일반적으로, 온-체인 이벤트의 경우, 이벤트가 발생했다는 컨센서스에 도달되는 반면, 오프-체인 이벤트의 경우, 임계 수의 증명이 관찰되었다는 컨센서스에 도달될 수 있다. 그에 따라, 고스트 체인이 전개될 수 있다. 고스트 체인은, 도 9 내지 도 13과 관련하여 논의된 것들과 같이, 본 개시물의 다른 곳에서 설명된 내용을 따를 수 있다. 고스트 체인(904)은 고스트 체인의 이전의 인스턴스화로부터의 최종 블록인 기원 블록으로 인스턴스화될 수 있다. 복호 키를 도출하기 위해 채굴자들에 의해 고스트 체인에 다수의 블록이 추가된다.
고스트 체인에 추가된 블록들은 암호화된 메시지를 복호하는 데 사용 가능한 복호 키를 구성하는 데 사용될 수 있다. 고스트 체인 블록에 필요한 수량을 포함시키면(예컨대, 복호 키가 생성될 수 있을 때), 메인 블록체인(902)에 자금을 분배하게 되는 최종 트랜잭션이 구성되고 서명될 수 있으며, 예를 들어, 고스트 체인의 채굴에 참여하는 노드들이 복호 키를 구성하는 것에 대하여 지불받을 수 있다. 경우에 따라, 복호 키는 의도된 수신자와 연관된 공개 키를 사용해서 암호화될 수 있으며, 암호화된 형식으로 고스트 체인(904)에 제출될 수 있다. 의도된 수신자는 상응하는 개인 키를 사용해서 복호 키를 암호화 방식으로 도출할 수 있다. 경우에 따라, 이 정보는 메인 블록체인에 공개될 수 있다.
최종 트랜잭션이 구성되어 서명된 후에, 고스트 체인(904)이 종료되고, 구성된 트랜잭션이 메인 블록체인(902)으로 채굴된다. 고스트 체인(904)이 종료되기 때문에, 터미널 블록을 갖는다는 점에서 일반적인 블록체인과는 다르다. 고스트 체인(904)에서의 마지막 블록인 이 터미널 블록은 복호 키의 도출시에 또는 지정될 수 있는 다른 연산들의 완료시에, 그리고 메인 블록체인(902)에 자금을 분산시키고, 고스트 체인의 채굴자들에게 보상하기 위해 자금을 분산시키는 등의 결과적인 트랜잭션이 유효하게 서명될 때 발생한다.
실시형태에 있어서, 대안적으로, 복호 키는 사이드체인을 사용해서 도출될 수 있다. 사이드체인은 지속적으로 실행되는 지분 증명 블록체인을 의미할 수 있으며 복호 키의 도출시에 종료하도록 구성되지 않고, 즉 사이드체인은 연산을 지속할 수 있으며 복호 키를 도출하는 것 외에도 다양한 작업을 수행하도록 구성될 수 있다. 실시형태에 있어서, 사이드체인은, 한정되는 것은 아니지만, 암호화 키를 도출하는 것을 포함하여 복수의 활동을 가능하게 하도록 구성된 지분 증명 블록체인이다. 복호 키를 도출하기 위해 채굴자들에 의해 다수의 블록이 사이드체인에 추가된다. 사이드체인에 추가된 블록들은 암호화된 메시지를 복호하는 데 사용 가능한 복호 키를 구성하는 데 사용될 수 있다. 사이드체인 블록에 필요한 수량을 포함시키면, 복호 키를 취득할 수 있다.
이벤트는 일반적으로 온-체인 이벤트 및 오프-체인 이벤트로 분류될 수 있다. 온-체인 이벤트는 발생 또는 비-발생이 블록체인으로부터 취득 가능한 정보에 기초할 수 있는 이벤트를 의미할 수 있다. 예를 들어, 블록체인으로부터 취득 가능한 정보는 하나 이상의 트랜잭션의 발생에 대한 정보(예컨대, 디지털 자산일 경우 특정 파티로부터 다른 파티로의 전송, 특정 전송 횟수, 특정 전송 수량 등), 트랜잭션이 발생한 타임스탬프와 같이 트랜잭션에 포함되는 정보를 포함할 수 있거나, 또는 블록 높이와 같은 블록 헤더의 정보를 포함할 수 있다. 일반적으로 말하면, 온-체인 이벤트에 대한 컨센서스에는 콩그레스의 멤버들에 의해 신속하게 효율적으로 도달될 수 있다. 온-체인 이벤트의 경우, TEE는 블록체인 상의 확인된 블록에서 필요한 이벤트를 관찰할 때 내부에 보유된 키 지분들을 이용해서 복호 키의 구성에 기여할 것이다.
오프-체인 이벤트는 발생 또는 비-발생이 블록체인 외부의 정보에 기초할 수 있는 이벤트를 의미할 수 있다. 오프-체인 이벤트는 콩그레스의 어느 멤버가 결정을 내릴 수 있는지에 대한 임의의 정보를 포함할 수 있다. 예를 들어, 오프-체인 이벤트는 사람이 사망했다는 결정을 내릴 수 있다. 복호 키는 이벤트가 발생했다고 결정하는 것에 응답하여 생성될 수 있다(또는 암호화된 메시지의 복호가 발생할 수 있음). 일반적으로 말하면, TEE는 오프-체인 이벤트가 발생했는지의 여부를 평가하지 않는다. 대신에, 콩그레스의 노드들이 이벤트가 발생했는지의 여부를 평가하고, 이벤트의 발생 또는 비-발생에 대한 증명을 생성하고 노드만이 액세스하는 비밀 키를 사용해서 증명에 서명함으로써 이벤트의 발생 또는 비-발생을 검증했음을 입증할 수 있다. 예를 들어, 증명은 멤버의 보증금이 전송된 계정에 대응하는 공개 키를 사용해서 디지털 서명되며 암호화 방식으로 검증될 수 있다. 증명의 임계치의 관찰에 대하여 컨센서스에 도달될 수 있으며, 트랜잭션은 전술한 바와 같이 구성 및 서명될 수 있다.
실시형태에 있어서, 이벤트-잠금 암호화는, 예를 들어, 전술한 다양한 실시형태들과 관련하여, 적어도 부분적으로 메인체인 및 블록체인을 사용해서 구현될 수 있다. 사이드체인을 사용해서 하나 이상의 암호화 연산(예컨대, 복호 키의 도출)을 수행하도록 구성된 실시형태들에 있어서, 복호 키의 구성을 트리거하는 온-체인 이벤트는 메인 블록체인 또는 사이드체인의 이벤트일 수 있다. 예를 들어, 복호 키가 임계 시간에 이용 가능해야 하는 시한-잠금 암호화의 경우, 임계 시간의 경과는 메인 블록체인 또는 사이드체인에 채굴된 블록에서 검출되는 타임스탬프에 기초하여 검출될 수 있다. 또한, 사이드체인의 경우, 오프-체인 이벤트의 발생에 대한 증명은 메인체인 또는 사이드체인에 채굴될 수 있으며, 경우에 따라, 증명이 메인체인 또는 사이드체인에 송신되는지의 여부는 메인체인 또는 사이드체인이 더 신속하고 더 규칙적인 블록 생성을 갖는지의 여부의 판정에 기초할 수 있다. 더 신속하고 더 규칙적인 블록 생성의 장점은 블록을 확인하는 데 걸리는 시간이 줄어든다는 것일 수 있다. 부가적으로, 고스트 체인을 이용해서 복호 키를 구성하는 다양한 실시형태에 있어서, 증명은 메인체인에 송신될 수 있으며, 고스트 체인은 충분한 증명이 관찰되는 것에 응답하여 인스턴스화될 수 있다는 점에 유의해야 한다.
이제 도 14를 참조하면, 다이어그램(1400)은 본 개시물의 다양한 기술을 수행하기 위해 이용될 수 있는 블록체인(1402)을 도시한다. 일부 실시형태에 있어서, 블록체인(1402)은 블록-기반의 분산 작업 증명 원장이다.
일부 실시형태에 있어서, 메시지(1404)는, 이벤트의 발생시에 메시지가 복호 가능하게 렌더링되도록 및/또는 복호되도록 이벤트-잠금 암호화 스킴 하에서 송신자가 암호화한, 디지털 형태로 될 수 있는 데이터, 정보 등을 포함할 수 있다. 메시지(1404)는 콩그레스 공개 키(1406)를 이용하는 아이덴티티-기반의 암호화 스킴에 따라 암호화 공개 키(1408)에 대하여 암호화될 수 있다. 암호화 공개 키(1408)는 이벤트-잠금된 메시지를 생성하는 엔티티에 액세스 가능한 상응하는 암호화 개인 키(1422)를 가질 수 있다. 콩그레스 공개 키(1406)는 도 14에 도시된 콩그레스(1410)와 연관된 비대칭 공개 키일 수 있다. 도 14에 도시된 콩그레스(1410)는 본 개시물의 다른 곳에서 설명한 콩그레스에 따를 수 있다. 콩그레스는 온-체인 이벤트 및 오프-체인 이벤트의 발생을 검증하는 데 이용될 수 있다. 메시지(1404)는 콩그레스 공개 키(1406)를 이용하는 아이덴티티-기반의 암호화 스킴에 따라 암호화 공개 키(1408)에 대하여 암호화될 수 있으며, 그에 따라, 암호화된 메시지(1414)가 생성된다.
트랜잭션(1416)은 블록체인(1402)에 브로드캐스트될 수 있으며, 트랜잭션은 암호화된 메시지(1414), 송신자 공개 키(1408), 및 이벤트(1412)를 포함할 수 있다. 트랜잭션은, 메타데이터로서, 특정 목적을 제공하는 트랜잭션으로서 인식될 수 있게 하는 식별자를 포함하는 플래깅된 트랜잭션일 수 있다. 이벤트(1412)는, 만족될 때, 암호화된 메시지(1414)가 복호될 수 있어야 한다는 것을 나타내는 이벤트 또는 조건일 수 있다. 이벤트(1412)는 온-체인 이벤트 또는 오프-체인 이벤트일 수 있거나, 또는 이들의 임의의 조합일 수 있다. 이벤트는 본 개시물의 다른 곳에서 설명된 온-체인 이벤트 및 오프-체인 이벤트에 따를 수 있다. 이벤트(1412)는, TRUE 또는 FALSE 스테이트먼트로 평가될 수 있는 술어로서의 표현과 같이, 다양한 형식으로 인코딩될 수 있다. 예를 들어, 이벤트(1412)는 지정된 시간의 경과일 수 있으며, 그 후에 암호화된 메시지(1414)가 수신자(1420)에 의해 복호될 수 있어야 한다. 이벤트(1412)는 메시지를 암호화한 엔티티에 의해 디지털 서명될 수 있다. 디지털 서명은 암호화된 메시지(1414)를 생성하기 위해 사용된 송신자 공개 키(1408)에 대응하는 비대칭 개인 키인 송신자 개인 키(1422)를 사용해서 생성될 수 있다. 송신자 공개 키(1408)는 트랜잭션(1416)에 포함될 수 있으며, 이벤트(1412)에 대하여 생성된 디지털 서명이 인증된 것인지를 암호화 방식으로 검증하는 데 이용될 수 있다. 일부 실시형태에 있어서, 트랜잭션(1416)은 수수료를 또한 포함한다. 수수료는 콩그레스(1410)의 공개 그룹 어드레스와 연관된 어드레스로의 디지털 자산의 전송일 수 있다. 수수료는 암호화된 메시지의 이벤트-잠금 복호를 수행하는 데 협력 및 참여하는 콩그레스의 멤버들 사이에 분산될 수 있다. 이벤트-잠금된 메시지를 생성하기 위한 방법 및 프로세스는 아래에서 도 15와 관련하여 더욱 상세하게 설명된다.
콩그레스(1410)의 멤버가 이벤트가 만족되었음을 검출할 경우, 고스트 체인이 전개되어 복호 키를 구성할 수 있다. 고스트 체인은, 도 9 내지 도 13과 관련하여 논의된 것들과 같이, 본 개시물의 다른 곳에서 설명된 내용을 따를 수 있다. 고스트 체인은 노드(예컨대, 콩그레스의 멤버)가 이벤트 잠금된 암호화된 메시지가 복호되어야 함을 나타내는 이벤트가 발생했다고 결정한 후에 인스턴스화될 수 있다. 고스트 체인(904)은 고스트 체인의 이전의 인스턴스화로부터의 최종 블록인 기원 블록으로 인스턴스화될 수 있다. 복호 키의 구성을 용이하게 하기 위해 채굴자들에 의해 고스트 체인에 다수의 블록이 추가된다.
복호 키가 구성되면, 고스트 체인에서 트랜잭션이 구성되고 서명될 수 있다. 트랜잭션은 메인 블록체인(902)에서 자금을 분산시키는 트랜잭션일 수 있으며, 예를 들어, 고스트 체인의 채굴에 참여하는 노드들은 이벤트가 발생했다고 결정되면(예컨대, 복호 키(1418)를 구성 및/또는 분산) 하나 이상의 연산을 수행하는 것에 대하여 지불받을 수 있다. 경우에 따라, 복호 키(1418)는 하나 이상의 특정 파티가 이용 가능하게 될 수 있다. 예를 들어, 암호화된 메시지가 의도된 수신자에 대해서만 복호될 수 있어야 하는 경우를 고려한다. 콩그레스(1410)의 멤버들에 속하는 TEE는, 이벤트 발생의 검출시에, 복호 키의 각각의 공유를 생성하고, 해당 공유를 의도된 수신자와 연관된 공개 키로 암호화하고, 암호화된 해당 공유를 고스트 체인에 포함시킬 수 있다. 따라서, 의도된 수신자는 상응하는 개인 키를 이용해서 복호 키에 대한 액세스를 취득할 수 있다. 수신자(1420)는 복호 키(1418)를 수신하는 엔티티를 대신하는 엔티티 또는 컴퓨팅 엔티티를 의미할 수 있다. 복호 키(1418)는 블록체인(1402)을 통해 수신자(1420)가 이용할 수 있는 암호화된 메시지(1414)를 수신자(1420)가 복호할 수 있게 하는 암호화 연산을 수행하는 데 이용될 수 있다. 경우에 따라, 수신자는 사용자 그룹 또는 심지어 일반 대중과 같은 여러 엔티티를 의미할 수 있으며, 예를 들어, 복호 키는 누구나 복호 키를 취득해서 암호화된 메시지를 복호할 수 있도록 메인체인에 공개될 수 있다. 복호 키를 취득하고 복호 키를 사용해서 암호화된 메시지의 복호를 수행하기 위한 방법 및 프로세스는 도 16과 관련하여 더욱 상세하게 설명된다.
이제 도 15를 참조하면, 이벤트의 발생에 기초하여 복호 가능할 수 있는 이벤트-잠금된 메시지를 구성하는 예사적인 방법(1500)이 도시된다. 방법(1500)은 블록체인 네트워크(100)가 동작하는 블록체인 프로토콜의 인스턴스를 실행하는 컴퓨팅 장치와 같은 임의의 적절한 시스템에 의해 수행될 수 있다. 방법은 노드(104)에 의해 수행될 수 있다. 방법은, 예를 들어, 메시지가 암호화되고, 지정된 시간에 도달되거나 또는 경과될 때, 암호화된 메시지가 복호 가능해지거나 및/또는 복호되는 시한-잠금 암호화를 수행하기 위한 기술을 구현하는 데 사용될 수 있다.
시스템은 암호화 공개 키 및 상응하는 암호화 개인 키를 취득할 수 있다(1502). 시스템은 Boneh-Franklin 아이덴티티-기반의 암호화 스킴과 같은 아이덴티티-기반의 암호화 스킴에 따라 암호화 공개 키에 메시지를 암호화할 수 있다(1504). 암호화는 Boneh 및 Franklin에 의해 "Identity-based encryption from the Weil pairing"에서 설명되는 기술에 따라 수행될 수 있다. 암호화는 아래에서 설명되는 바와 같은 방식으로 타원 곡선 암호화를 사용해서 수행될 수 있다. 메시지를 암호화한 결과는 암호화된 메시지 또는 암호문이 생성되는 것일 수 있다.
시스템은 또한, 하나 이상의 복호 조건을 지정하는 이벤트를 통해 디지털 서명을 생성할 수 있다(1506). 조건은, 예를 들어, 복호가 발생해야 하는 시간을 (예컨대, 시한-잠금 암호화로) 나타낼 수 있다. 경우에 따라, 복호 키에 대한 기여가 TEE에 의해 출력되기 전에 암호화되어야 하는지의 여부, 및 그러한 경우, 암호화에 사용되어야 하는 키 세트를 조건으로 지정할 수 있다. 복호 키에 대한 기여를 포함하는 트랜잭션은 아이덴티티-기반의 암호화 스킴에 따라 메시지를 암호화하는 데 이용되는 암호화 공개 키에 대응하는 암호화 개인 키를 사용해서 디지털 서명될 수 있다. 디지털 서명의 진본성은 트랜잭션의 일부로서 작업 증명 네트워크에 제출될 수 있는 암호화 공개 키를 사용해서 암호화 방식으로 검증 가능할 수 있다. 일부 실시형태에 있어서, 디지털 서명은 논스와 같은 추가 데이터를 통해 생성될 수 있다.
일부 실시형태에 있어서, 시스템은 암호화된 메시지, 메시지가 암호화된 공개 키, 암호화된 메시지가 복호되어야 하는 조건을 나타내는 이벤트 및 적어도 이벤트에 대한 상응하는 디지털 서명, 및 수수료를 포함하는 하나 이상의 트랜잭션을 작업 증명 블록체인 네트워크에 제출한다(1506). 이벤트는 콩그레스(110)가 이벤트가 발생했는지의 여부에 대한 컨센서스에 도달할 수 있도록 온-체인 이벤트 또는 오프-체인 이벤트일 수 있다. 오프-체인 이벤트의 경우, 복호는 이벤트의 발생에 대한 임계 수의 증명이 관찰되었다는 컨센서스에 응답하여 발생할 수 있다. 임계치가 (예컨대, 철회가 가능한 시스템에서) 특정 시간 동안 유지될 것을 요구하는 것과 같이, 발생할 복호에 대한 추가 조건이 있을 수 있다. 조건은 요청자에 의해 지정될 수 있고, 전술한 하나 이상의 트랜잭션에 인코딩될 수 있다. 예를 들어, 시한-잠금 암호화의 경우, 이벤트는 (가능하게는 무작위의) 시간의 경과일 수 있고, 이는 온-체인 정보를 사용해서 결정 및 검증 가능한 것일 수 있다. 수수료는 콩그레스(110)의 공개 그룹 어드레스와 연관된 어드레스로의 디지털 자산의 전송일 수 있다. 수수료는 암호화된 메시지의 이벤트-잠금 복호를 수행하는 데 협력 및 참여하는 콩그레스의 멤버들 사이에 분산될 수 있다. 경우에 따라, 하나 이상의 트랜잭션은 복호에 더하여 또는 복호를 대신하여 하나 이상의 연산이 수행되어야 한다는 것을 나타낼 수 있다.
일부 실시형태에 있어서, 방법(1500)은 "Identity-based encryption from the Weil pairing"에서 Boneh 및 Franklin에 의해 설명된 것들과 같은 아이덴티티-기반의 임계치 스킴에 따라 구현될 수 있으며, 방법(1500)과 관련하여 설명된 기술 및 본 개시물의 다른 곳에서의 기술을 사용해서 향상된 효율 및 신뢰성을 제공할 수 있다. 일부 실시형태에 있어서, 방법(1500)은 이중 선형 맵핑(bilinear mapping) 및 G1의 생성기 P를 갖는 G1 및 G2가 존재한다고 가정할 수 있다. 실시형태에 있어서, G1 및 G2는 모두 동일한 소수 위수 q의 유한한 순환 그룹이고 G1 및 G2에서 이산 대수 문제는 어려운 것으로 가정된다. 또한, 콩그레스 공개 키 및 상응하는 개인 키 를 가정하고, 즉, s는 = 가 되도록 집합 {1,2,...,q}로부터 무작위로 도출된다. (예컨대, 사용자를 대신하여) 이벤트-잠금 암호화의 실행을 요청하는 시스템은 시스템이 액세스한 상응하는 개인 키를 갖는 공개 키 A를 지정할 수 있다. 따라서, 메시지 m을 공개 키 A에 암호화하는 암호화 기능은 다음과 같을 수 있다:
, a random oracle(랜덤 오라클)
, a random oracle(랜덤 오라클)
따라서, 암호문 가 생성될 수 있다.
이제 도 16을 참조하면, 이벤트-잠금 복호의 예시적인 방법(1600)이 도시된다. 도 16의 방법(1600)은 콩그레스의 노드들과 같은 하나 이상의 컴퓨터 시스템에 의해 협력하여 수행될 수 있다. 방법(1600)은 도 15와 관련하여 설명된 바와 같은 트랜잭션이 블록체인 네트워크에서 전송 및 확인된 후에 어느 시점에 수행될 수 있다. 하나 이상의 트랜잭션은 암호화된 메시지, 의도된 수신자와 연관된 공개 키와 같은 암호화 키 등을 포함할 수 있다. 예를 들어, 제1 트랜잭션은 암호화된 메시지, 암호화 키, 암호화된 메시지가 복호 가능해져야 하는 시기를 나타내는 이벤트 또는 조건을 포함할 수 있고, 제2 트랜잭션은 제1 트랜잭션에서 지정되는 이벤트 또는 조건의 발생시에 복호 키의 생성과 관련하여 분산될 수 있는 콩그레스에 대한 수수료를 포함할 수 있다.
콩그레스의 멤버, 또는 보다 일반적으로, 블록체인 네트워크의 노드와 같은 시스템은 상기에서 논의된 바와 같은 트랜잭션과 관련하여 이벤트의 발생을 검출할 수 있다(1602). 이벤트는 온-체인 이벤트 또는 오프-체인 이벤트일 수 있다. 온-체인 이벤트의 경우, TEE는 블록체인에서 필요한 이벤트를 관찰할 때 내부에 보유된 키-공유들을 이용해서 복호 키의 구성에 기여할 것이다. 경우에 따라, 온-체인 이벤트는 확인된 트랜잭션에서 관찰되어야 한다. 오프-체인 이벤트의 경우, 컨센서스는 오프-체인 이벤트가 실제로 발생했다는 신뢰할 수 있는 지표로 여겨지는 온-체인 이벤트에 대하여 도달될 수 있다. 예를 들어, 상응하는 온-체인 이벤트는, 특정한 플래깅된 트랜잭션들을 블록체인에 송신함으로써, 콩그레스 멤버들의 임계치가 오프-체인 이벤트가 발생했다는 것을 믿는다고 신호하는 것일 수 있다. 경우에 따라, 이들 신호는 콩그레스 멤버들이 나중에 오프-체인 이벤트가 발생하지 않았다고 결정하는 경우에 취소될 수 있으며(예컨대, 노드는, 나중에 및/또는 추가 정보에 기초하여, 오프-체인 이벤트가 실제로 발생하지 않았다고 결정할 수 있음) ― 이러한 시스템에 있어서, 컨센서스에 도달하는 것은 플래깅된 트랜잭션이 정해진 기간 동안 취소되지 않고 유지될 것을 더 필요로 할 수 있다.
오프-체인 이벤트가 발생했는지의 여부를 결정하기 위한 대안적인 방법으로서, 노드는 이벤트가 발생했다는 표시를 제출할 수 있고 디지털 자산의 예치금을 포함할 수 있다. 예치금은 콩그레스가 이벤트가 발생했다고 결정하는 경우에 반환될 수 있으며(또한, 이벤트-잠금된 메시지를 복호하는 것에 대한 보상으로서 예치된 수수료의 적어도 일부의 지불), 콩그레스가 이벤트가 발생하지 않았다고 결정하는 경우에는 몰수될 수 있다. 경우에 따라, 노드에 의해 제공되는 해법은 이의 제기받을 수 있으며, 오프-체인 이벤트가 발생했는지의 여부에 대한 해법은 이벤트가 발생했음 또는 발생하지 않았음을 수락할지의 여부에 대하여 콩그레스의 멤버들이 투표함으로써 결정될 수 있다.
도 15와 관련하여 설명되는 바와 같은 트랜잭션은 암호화된 메시지, 아이덴티티-기반의 암호화 스킴에 따라 메시지가 암호화된 공개 키 A, 및 디지털 서명된 이벤트를 포함할 수 있다. 이벤트에 대한 디지털 서명의 유효성은 공개 키 A를 사용해서 검증될 수 있다(1604). 경우에 따라, 고스트 체인에 의한 복호 키의 구성은 디지털 서명이 유효한지에 따를 수 있다. 시한-잠금 암호화 스킴에서, 이벤트는 암호화된 메시지가 복호 가능해져야 하는 시기를 나타내는 타임스탬프일 수 있다. 타임스탬프에 대한 디지털 서명의 진본성을 검증하는 것은 공개 키 A에 대응하는 개인 서명 키 SkA에 액세스하지 않은 엔티티가 복호 키의 구성을 조기에 트리거할 수 없게 한다. 트랜잭션에 포함되는 공개 키 A로 암호화 방식으로 검증 가능한 디지털 서명을 생성함으로써, 적대자는 트랜잭션을 보다 조기의 복호 시간 및 공개 키 A에 암호화된 임의의 암호문을 포함하는 다른 트랜잭션과 '선행 매매(front running)'하는 것에 의해 콩그레스가 복호 키를 조기에 해제하도록 유도할 수 없게 된다. 트랜잭션에 유효한 서명을 포함하도록 요구함으로써, 트랜잭션이 공개 키 A에 대응하는 개인 서명 키 SkA를 사용해서 생성되는 유효한 디지털 서명을 포함하지 않는 한 콩그레스가 진행하지 못할 것이기 때문에, '선행 매매' 공격이 가능하지 않을 것이다.
고스트 체인이 전개될 수 있으며(1606), 고스트 체인에 대한 기원 블록은 콩그레스의 멤버들에 의해 그룹의 다른 노드들과 협력하여 생성 또는 취득될 수 있다. 기원 블록은 이전의 고스트 체인 전개로부터의 최종 블록(예컨대, 고스트 체인이 실행되었고 이전의 실행이, 예를 들어 과거의 챌린지 또는 이전의 이벤트-잠금 복호에 응답하여 이루어진 것일 수 있는 마지막 인스턴스로부터의 터미널 블록)일 수 있다. 이 블록은 기원 지불(genesis payment)에 관한 정보를 포함할 수 있다. 기원 지불은 고스트 체인의 이전의 전개에 기초하여 아직 지불이 이루어지지 않은 디지털 자산의 전송이다. 고스트 체인은 도 13 등과 관련하여 다른 곳에서 설명된 기술을 사용해서 전개될 수 있다.
적어도 개인 키 지분들의 임계치를 유지하는 그룹 사이의 컨센서스시에, 콩그레스의 노드들은 암호화된 메시지를 복호하는 데 사용될 수 있는 복호 키를 구성할 수 있다(1608). 복호 키는 필요한 수량을 고스트 체인 블록에 포함하는 것에 의해 구성될 수 있다. 예를 들어, 이는 전술한 바와 같이 해당 수량을 트랜잭션을 통해 고스트 체인에 송신함으로써 또는 해당 수량을 직접적으로 고스트 체인에 채굴함으로써 달성될 수 있다. 예를 들어, 타원 곡선 상의 쌍들에 기초한 스킴에 따르면, 복호 키  = 이고, 여기서 는 메시지의 암호화에서 이용되는 암호화 키로부터 도출될 수 있고, 복호 키는 임계치 비밀 공유 스킴에 따라 적어도 임계 인원의 개인 키 지분 보유자들(즉, 콩그레스의 멤버들)의 협력에 의해 도출될 수 있다.
일부 실시형태에 있어서, 복호 키는 복호 키를 평문 형식으로 메인 블록체인에 공개함으로써 일반 대중이 이용 가능하게 될 수 있다. 경우에 따라, 복호 키는 정해진 개인 키 세트를 보유한 그룹만이 액세스할 수 있게 될 수 있다. 예를 들어, 일부 시스템에 있어서, 이벤트-잠금된 메시지는 공개 키 세트 S에 대응하는 개인 키 세트의 보유자에 의해 복호 가능하게 될 수 있다. 일 실시예에 있어서, 복호 키에 대한 각각의 기여는 TEE에 의해 출력되기 전에 각각의 공개 키 세트 S를 사용해서 암호화되고, 이들 암호화는 블록체인에 송신된다. 암호문이 공개 키 세트 S에 대응하는 개인 키 세트의 보유자들에 의해 어떻게 복호 가능하게 될 수 있는지에 대한 제2 실시예로서, 이벤트-잠금된 메시지를 포함하는 트랜잭션이 관찰되어 확인된 후에, 서명 키 SkA는 공개 키 세트 S로부터의 각각의 공개 키를 사용해서 암호화될 수 있고 공개 키 세트 S에 대응하는 개인 키들의 개별 소유자들에게 분산될 수 있다(예를 들어, 이들 암호화는 다른 트랜잭션에 포함된 블록체인에 채굴될 수 있음). 또한, 이벤트-잠금된 메시지를 포함하는 트랜잭션은 복호 키 dA에 대한 기여가 TEE에 의해 출력되고 블록체인에 송신되기 전에 공개 키 A(즉, 서명 키 SkA에 대응하는 공개 키)를 사용해서 암호화되어야 한다는 것을 규정할 수 있다. 이것이 완료되면, 서명 키 SkA의 암호화의 수신자는 복호 키를 구성할 수 있게 된다.
고스트 체인이 종료된다(1608). 즉, 작업(예컨대, 복호 키의 구성)의 완료시에, 고스트 체인이 종료된다. 고스트 체인이 종료되면, 복호 키가 작업 증명 블록체인 네트워크에 기록될 수 있다. 고스트 체인은 도 13 등과 관련하여 다른 곳에서 설명된 기술을 사용해서 종료될 수 있다.
도 15와 관련하여 논의된 이전의 실시예를 계속하면, 전술한 암호화된 메시지에 대응하는 암호문 를 복호하기 위한 복호 함수이다. 비밀 키는  = 로서 도출될 수 있으며, 는 상기 로서 정의된다. 따라서, 암호문 c를 복호하기 위한 복호 함수는 다음과 같을 수 있다:
"Identity-based encryption from the Weil pairing"에서 Boneh 및 Franklin에 의해 주지된 바와 같이, 상기 내용은 특히 유효한 임계치 복호 스킴으로 이어지고, 암호문 의 복호는 를 브로드캐스트함으로써 시스템-전체의 비밀 키에서 공유 를 각각 보유하는 참여자들의 임계치에 의해 달성될 수 있다. 이후, 이는 맴핑 e의 기본 특성을 따르고:
여기서, 는 적절한 Lagrange(라그랑즈) 계수이다. 는 이제 상기의 연산의 제2 라인에 삽입될 수 있다.
전술한 실시형태들은 본 발명을 한정하는 것이 아니라 예시하는 것이며, 당업자라면, 첨부된 청구항들에 의해 규정되는 바와 같은 발명의 범위로부터 일탈함이 없이, 다양한 대안적인 실시형태들을 설계할 수 있을 것이라는 점에 유의해야 한다. 청구항들에 있어서, 괄호 안의 임의의 참조 부호는 해당 청구항들을 제한하는 것으로 해석되지 않아야 한다. "포함하는(comprising)" 및 "포함한다(comprises)" 등의 단어는 전체적으로 임의의 청구항 또는 명세서에 열거된 요소들 또는 단계들 이외의 것들의 존재를 배제하지 않는다. 본 명세서에 있어서, "포함한다"는 "구비한다 또는 구성된다(includes or consists of)"를 의미하고, "포함하는"은 "구비하는 또는 구성되는(including or consisting of)"을 의미한다. 요소의 단수형 참조는 그러한 요소들의 복수형 참조를 배제하지 않으며, 그 반대도 마찬가지이다. 본 발명은 몇 개의 별개의 요소를 포함하는 하드웨어에 의해, 그리고 적절하게 프로그래밍된 컴퓨터에 의해 구현될 수 있다. 몇 개의 수단을 열거하는 장치 청구항에 있어서, 이들 수단 중 몇몇은 하나의 동일한 하드웨어 아이템에 의해 구체화될 수 있다. 단지 특정 조치들이 서로 다른 종속 청구항들에서 인용된다는 사실만으로 이들 조치의 조합이 유리하게 사용될 수 없다는 것을 나타내는 것은 아니다.

Claims (15)

  1. 컴퓨터-구현 방법으로서,
    아이덴티티-기반 암호화 스킴(identity-based encryption scheme)에 따라 메시지를 암호화하는 단계 ― 상기 메시지의 암호화에는 암호화를 수행하는 엔티티와 연관된 암호화 공개 키(cryptographic public key)(A)와 콩그레스 공개 키(congress public key)()가 사용되며, 상기 콩그레스 공개 키는 콩그레스의 멤버들과 연관되고, 상기 콩그레스의 각각의 멤버는 임계치 복호 스킴(threshold decryption scheme)에서 사용 가능한 개인 키 지분(private key shares)에 액세스를 가지며, 상기 임계치 복호 스킴에서 적어도 개인 키 지분들의 임계 개수(at least a threshold number of private key shares)는 상기 콩그레스를 대신하여 복호 키에 대한 부분적인 기여들의 조합을 통하여 상기 복호 키를 도출하기에 충분한 것임―하는 단계와,
    적어도 상기 암호화 공개 키(A)에 대응하는 암호화 개인 키(SkA)를 사용해서, 이벤트의 발생시에 암호화 연산을 수행하기 위한 제1 명령어 세트를 통해 디지털 서명을 생성하는 단계와,
    하나 이상의 트랜잭션을 작업 증명(proof-of-work) 블록체인 네트워크에 브로드캐스트― 상기 하나 이상의 트랜잭션은 상기 암호화된 메시지, 상기 암호화 공개 키(A), 적어도 상기 제1 명령어 세트, 상기 콩그레스의 멤버에 대한 제2 명령어 세트를 포함함 ―하는 단계
    를 포함하되,
    상기 제2 명령어 세트는, 상기 이벤트 발생에 대한 컨센서스(consensus)에 도달하는 것에 응답하여, 상기 디지털 서명이 인증된 경우, 상기 콩그레스의 멤버들이 협력하여, 상기 제1 명령어 세트를 수행하기 위한 고스트 체인(ghost chain)을 전개하게 하며,
    상기 제1 명령어 세트를 수행하는 것은 상기 임계 개수를 만족하는 복수의 개인 키 지분 및 상기 암호화 공개 키(A)로부터 적어도 상기 복호 키를 도출하여 상기 암호화된 메시지로부터 상기 메시지를 취득하는 것을 포함하는,
    컴퓨터-구현 방법.
  2. 제1항에 있어서,
    상기 복호 키는 타원 곡선(elliptic curve)들에 대한 페어링(pairing)에 기초한 스킴에 적어도 부분적으로 기초하여 도출 가능한,
    컴퓨터-구현 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 아이덴티티-기반의 암호화 스킴은 Boneh(보네)-Franklin(프랭클린) 아이덴티티-기반의 암호화 스킴에 따르는,
    컴퓨터-구현 방법.
  4. 제1항 또는 제2항에 있어서,
    상기 하나 이상의 트랜잭션은 상기 콩그레스와 연관된 공개 그룹 어드레스에 대한 수수료를 포함하는 트랜잭션을 포함하고, 상기 수수료는 상기 복호 키를 도출하기 위해 협력하는 상기 고스트 체인의 채굴자들 중 적어도 일부 채굴자에게 분산되는,
    컴퓨터-구현 방법.
  5. 제1항 또는 제2항에 있어서,
    상기 고스트 체인의 채굴자들은 상기 작업 증명 블록체인으로부터 취득 가능한 정보에 기초하여 상기 이벤트에 대한 컨센서스에 도달하는,
    컴퓨터-구현 방법.
  6. 제5항에 있어서,
    상기 작업 증명 블록체인으로부터 취득 가능한 정보는 상기 작업 증명 블록체인에 대한 트랜잭션 제출의 타임스탬프인,
    컴퓨터-구현 방법.
  7. 제5항에 있어서,
    상기 작업 증명 블록체인으로부터 취득 가능한 정보는 적어도 특정 높이의 유효한 블록의 검출인,
    컴퓨터-구현 방법.
  8. 제1항 또는 제2항에 있어서,
    상기 컨센서스는 상기 콩그레스의 멤버들이 이벤트가 발생했다는 증명(attestation)을 적어도 임계치만큼 내보냄을 검출하는 것에 적어도 부분적으로 기초하여 도달되고, 상기 이벤트의 발생은 상기 작업 증명 블록체인의 외부의 정보에 적어도 부분적으로 기초하여 결정되고, 또한, 상기 증명의 진본성(authenticity)은 상기 콩그레스의 각각의 멤버들과 연관된 암호화 공개 키를 사용해서 암호화 방식으로 검증 가능한,
    컴퓨터-구현 방법.
  9. 제8항에 있어서,
    상기 증명은 소정의 기간 동안 내보내지는,
    컴퓨터-구현 방법.
  10. 제1항 또는 제2항에 있어서,
    상기 암호화 연산은 하나 이상의 복호 연산을 포함하는,
    컴퓨터-구현 방법.
  11. 제1항 또는 제2항에 있어서,
    상기 암호화 연산은 하나 이상의 인증(authentication) 연산을 포함하는,
    컴퓨터-구현 방법.
  12. 제1항 또는 제2항에 있어서,
    상기 콩그레스의 멤버의 각각의 개인 키 지분은 상기 멤버와 연관된 노드 내의 신뢰된 실행 환경(trusted execution environment) 내에서 암호화 연산을 수행하기 위해 생성 및 사용되는,
    컴퓨터-구현 방법.
  13. 실행시에, 제1항 또는 제2항에 기재된 방법을 수행하도록 프로세서를 구성하는 컴퓨터-실행 가능 명령어를 포함하는 컴퓨터 판독 가능 저장 매체.
  14. 전자 장치로서,
    인터페이스 장치와,
    상기 인터페이스 장치에 결합되는 프로세서와,
    상기 프로세서에 결합되는 메모리
    를 포함하되,
    상기 메모리에는, 실행시에, 제1항 또는 제2항에 기재된 방법을 수행하도록 상기 프로세서를 구성하는 컴퓨터 실행 가능 명령어가 저장되어 있는,
    전자 장치.
  15. 제14항에 있어서,
    상기 프로세서는 신뢰된 실행 환경을 포함하고, 상기 컴퓨터 실행 가능 명령어는 상기 신뢰된 실행 환경 내에서 실행되는,
    전자 장치.
KR1020207002997A 2017-07-24 2018-07-16 블록체인-구현 이벤트-잠금 암호화를 위한 방법 및 시스템 KR102670611B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GBGB1711878.7A GB201711878D0 (en) 2017-07-24 2017-07-24 Computer - implemented system and method
GB1711878.7 2017-07-24
PCT/IB2018/055236 WO2019021105A1 (en) 2017-07-24 2018-07-16 METHODS AND SYSTEMS FOR ENCRYPTION EVENT ENCRYPTION IMPLEMENTED BY BLOCK CHAINS

Publications (2)

Publication Number Publication Date
KR20200028961A KR20200028961A (ko) 2020-03-17
KR102670611B1 true KR102670611B1 (ko) 2024-05-31

Family

ID=59771575

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207002997A KR102670611B1 (ko) 2017-07-24 2018-07-16 블록체인-구현 이벤트-잠금 암호화를 위한 방법 및 시스템

Country Status (8)

Country Link
US (3) US11159313B2 (ko)
EP (3) EP3659293B1 (ko)
JP (3) JP7153056B6 (ko)
KR (1) KR102670611B1 (ko)
CN (1) CN110999204A (ko)
GB (1) GB201711878D0 (ko)
SG (1) SG11201912230SA (ko)
WO (1) WO2019021105A1 (ko)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11538031B2 (en) * 2017-03-31 2022-12-27 Vijay Madisetti Method and system for identity and access management for blockchain interoperability
US11861619B1 (en) * 2017-11-30 2024-01-02 Worldpay, Llc Systems and methods for payment transactions, alerts, dispute settlement, and settlement payments, using multiple blockchains
US11271717B2 (en) 2018-02-21 2022-03-08 Thunder Token Inc. Blockchain consensus methods and systems
US11038676B2 (en) * 2018-05-25 2021-06-15 Incertrust Technologies Corporation Cryptographic systems and methods using distributed ledgers
US10409783B1 (en) * 2018-06-06 2019-09-10 Capital One Services, Llc Distributed work data management
US11546138B2 (en) * 2018-09-28 2023-01-03 Benjamin Allan Mord Information integrity in blockchain and related technologies
CN109767325A (zh) * 2018-12-13 2019-05-17 重庆金融资产交易所有限责任公司 基于区块链的交易方法、装置及计算机可读存储介质
US20220014367A1 (en) * 2018-12-13 2022-01-13 Login Id Inc. Decentralized computing systems and methods for performing actions using stored private data
KR102204403B1 (ko) * 2019-01-02 2021-01-18 라인플러스 주식회사 블록체인의 확장을 가능하게 하는 트랜잭션 처리 시스템 및 방법
CN109617699A (zh) * 2019-01-16 2019-04-12 北京沃东天骏信息技术有限公司 一种密钥生成方法、区块链网络服务平台及存储介质
CN110009346A (zh) * 2019-03-11 2019-07-12 巍乾全球技术有限责任公司 用于拆分和恢复密钥的方法、程序产品、存储介质和系统
CN110048851B (zh) * 2019-03-26 2020-03-24 阿里巴巴集团控股有限公司 区块链中生成和验证多层可链接环签名的方法及装置
US11451406B2 (en) * 2019-04-04 2022-09-20 Moac Blockchain Tech Inc Cross-chain messaging and message validation
CN110084050B (zh) * 2019-04-23 2023-03-24 武汉大学 一种基于区块链的属性基加密微网交易方法
CN110086804B (zh) * 2019-04-25 2021-08-31 广州大学 一种基于区块链及可信硬件的物联网数据隐私保护方法
CA3061808C (en) * 2019-04-26 2022-07-19 Alibaba Group Holding Limited Securely executing smart contract operations in a trusted execution environment
CN110213231B (zh) * 2019-04-26 2021-11-30 西安电子科技大学 一种面向sgx的轻量级的外包数据访问控制方法及控制系统
CN110225016B (zh) * 2019-05-31 2020-05-19 北京理工大学 一种基于区块链网络的数据隐蔽传输方法
CN112039821B (zh) * 2019-06-03 2022-09-27 本无链科技(深圳)有限公司 一种基于区块链的群组内私密消息交换方法及系统
CN112488703A (zh) * 2019-06-26 2021-03-12 创新先进技术有限公司 基于环签名的匿名交易方法及装置
US11238447B2 (en) 2019-06-26 2022-02-01 Advanced New Technologies Co., Ltd. Blockchain transactions with ring signatures
US10790990B2 (en) 2019-06-26 2020-09-29 Alibaba Group Holding Limited Ring signature-based anonymous transaction
CN110189131B (zh) * 2019-06-26 2020-11-06 创新先进技术有限公司 采用环签名的机密区块链交易的实现方法及装置
US11424916B2 (en) * 2019-07-19 2022-08-23 Fujitsu Limited Selectively private distributed computation for blockchain
CN110417553B (zh) * 2019-08-07 2022-12-27 北京阿尔山区块链联盟科技有限公司 多方保密通信方法、装置及用户终端
US11424920B2 (en) 2019-08-19 2022-08-23 Red Hat, Inc. Proof-of-work key wrapping for cryptographically controlling data access
US11271734B2 (en) 2019-08-19 2022-03-08 Red Hat, Inc. Proof-of-work key wrapping for verifying device capabilities
US11411728B2 (en) 2019-08-19 2022-08-09 Red Hat, Inc. Proof-of-work key wrapping with individual key fragments
US11303437B2 (en) 2019-08-19 2022-04-12 Red Hat, Inc. Proof-of-work key wrapping with key thresholding
US11436352B2 (en) 2019-08-19 2022-09-06 Red Hat, Inc. Proof-of-work key wrapping for restricting data execution based on device capabilities
US11316839B2 (en) 2019-08-19 2022-04-26 Red Hat, Inc. Proof-of-work key wrapping for temporally restricting data access
US11411938B2 (en) 2019-08-19 2022-08-09 Red Hat, Inc. Proof-of-work key wrapping with integrated key fragments
CN110955909B (zh) * 2019-10-12 2022-08-05 四川九洲电器集团有限责任公司 个人数据保护方法及区块链节点
KR102372718B1 (ko) * 2019-11-05 2022-03-11 한국전자통신연구원 발행인 익명성 인증서 시스템을 위한 분산화된 그룹 서명 방법
CN112787837A (zh) * 2019-11-07 2021-05-11 华为技术有限公司 数据共享的方法、设备及系统
US11263310B2 (en) 2019-11-26 2022-03-01 Red Hat, Inc. Using a trusted execution environment for a proof-of-work key wrapping scheme that verifies remote device capabilities
US11811933B2 (en) 2019-11-27 2023-11-07 Visa International Service Association System and method for fair, secure n-party computation using at least one blockchain
GB2589636A (en) * 2019-12-06 2021-06-09 Nchain Holdings Ltd Identity-based public-key generation protocol
US11343075B2 (en) * 2020-01-17 2022-05-24 Inveniam Capital Partners, Inc. RAM hashing in blockchain environments
US11184339B2 (en) * 2020-03-25 2021-11-23 Wipro Limited Method and system for secure communication
US20210392003A1 (en) * 2020-06-12 2021-12-16 Login Id Inc. Decentralized computing systems and methods for performing actions using stored private data
CN111814195B (zh) * 2020-09-04 2021-05-25 支付宝(杭州)信息技术有限公司 一种基于可信硬件的数据管理方法、装置及设备
EP4208979A1 (en) * 2020-09-06 2023-07-12 David Chaum Computation mixing
KR102426078B1 (ko) * 2020-11-10 2022-07-27 포항공과대학교 산학협력단 공개 검증 가능한 블록체인 지갑 키 보관 방법 및 장치
US11763332B2 (en) 2020-11-16 2023-09-19 Theta Labs, Inc. Edge computing platform supported by smart contract enabled blockchain network
CN112511309B (zh) * 2020-11-19 2022-07-08 从法信息科技有限公司 区块链上面向监管的信息定向共享方法、装置和电子设备
CN115088003B (zh) * 2020-12-11 2023-10-31 维萨国际服务协会 用于安全实时n方计算的系统、方法和计算机程序产品
CN112636929B (zh) * 2020-12-29 2023-01-17 北京百度网讯科技有限公司 群组业务实现方法、装置、设备和存储介质
CN112751667B (zh) * 2020-12-29 2023-03-14 北京百度网讯科技有限公司 密钥生成方法、签名和验签方法、装置、设备和介质
US20220321332A1 (en) * 2021-03-30 2022-10-06 International Business Machines Corporation Post-quantum cryptography secured execution environments for edge devices
CN113159769B (zh) * 2021-04-21 2022-07-19 中国人民解放军国防科技大学 一种基于区块链的数据流通智能合约实现方法及系统
CN113378227A (zh) * 2021-06-25 2021-09-10 山东省食品药品检验研究院 信息数据资源共享系统及方法
CN113592650B (zh) * 2021-07-29 2023-10-24 成都质数斯达克科技有限公司 基于区块链智能合约的交易方法、装置和设备
CN113347009B (zh) * 2021-08-05 2022-01-07 成都飞机工业(集团)有限责任公司 基于椭圆曲线密码体制的无证书门限签密方法
US11677552B2 (en) * 2021-09-09 2023-06-13 Coinbase Il Rd Ltd. Method for preventing misuse of a cryptographic key
CN115499135B (zh) * 2022-09-14 2024-04-12 山东大学 一种基于对称密码的环签名方法及系统

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3486043B2 (ja) * 1996-03-11 2004-01-13 株式会社東芝 ソフトウエア流通システムの動作方法及びソフトウエアシステム
US7181017B1 (en) 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
US7571471B2 (en) * 2006-05-05 2009-08-04 Tricipher, Inc. Secure login using a multifactor split asymmetric crypto-key with persistent key security
WO2008127446A2 (en) 2006-12-01 2008-10-23 President And Fellows Of Harvard College A method and apparatus for time-lapse cryptography
US10231077B2 (en) * 2007-07-03 2019-03-12 Eingot Llc Records access and management
US9483657B2 (en) * 2013-01-14 2016-11-01 Accenture Global Services Limited Secure online distributed data storage services
US9449177B1 (en) * 2013-03-13 2016-09-20 Hrl Laboratories, Llc General protocol for proactively secure computation
KR102408299B1 (ko) * 2013-12-19 2022-06-13 비자 인터네셔널 서비스 어소시에이션 클라우드-기반 트랜잭션 방법 및 시스템
US10423961B1 (en) * 2014-02-19 2019-09-24 Hrl Laboratories, Llc System and method for operating a proactive digital currency ledger
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
WO2015144971A1 (en) * 2014-03-27 2015-10-01 Nokia Technologies Oy Method and apparatus for automatic inter-device authorisation
US10812274B2 (en) 2015-05-07 2020-10-20 Blockstream Corporation Transferring ledger assets between blockchains via pegged sidechains
US20160378998A1 (en) 2015-06-23 2016-12-29 Erybo Incorporated System configurations for encryption of contest data parts
WO2017008084A1 (en) 2015-07-09 2017-01-12 Sensoriant, Inc. Method and system for creating adaptive user interfaces using user provided and controlled data
US20170228731A1 (en) 2016-02-09 2017-08-10 Fmr Llc Computationally Efficient Transfer Processing and Auditing Apparatuses, Methods and Systems
WO2017027484A1 (en) 2015-08-09 2017-02-16 Ramasamy Celambarasan System and method for microshare based content funding and distribution
RU2015146675A (ru) 2015-10-29 2017-05-03 Дмитрий Сергеевич Ермолаев Способ учёта изобретений, товарных знаков, договорных отношений и иных данных, требующих удостоверения подписи и времени подписания и создания их в средах учёта вроде bitcoin
EP3403213A2 (fr) 2016-01-15 2018-11-21 Enrico Maim Procédés et systèmes mis en oeuvre dans une architecture en réseau de noeuds susceptibles de réaliser des transactions basées sur messages
US10108812B2 (en) 2016-01-28 2018-10-23 Nasdaq, Inc. Systems and methods for securing and disseminating time sensitive information using a blockchain
US10250591B2 (en) * 2016-02-12 2019-04-02 International Business Machines Corporation Password-based authentication
EP3424177B1 (en) * 2016-02-29 2021-10-13 SecureKey Technologies Inc. Systems and methods for distributed identity verification
CN107203368A (zh) 2016-03-16 2017-09-26 蓝树荣 一种建立智能合约模型的方法
US10063572B2 (en) * 2016-03-28 2018-08-28 Accenture Global Solutions Limited Antivirus signature distribution with distributed ledger
AU2017240796A1 (en) 2016-03-31 2018-10-25 Clause, Inc. System and method for creating and executing data-driven legal contracts
CN105893042A (zh) 2016-03-31 2016-08-24 北京航空航天大学 一种基于区块链的智能合约的实现方法
US10803537B2 (en) 2016-04-18 2020-10-13 R3 Ltd. System and method for managing transactions in dynamic digital documents
KR101701131B1 (ko) 2016-04-28 2017-02-13 주식회사 라피 이종간 블록체인 연결을 이용한 데이터 기록/검증 방법 및 시스템
KR102050129B1 (ko) * 2016-05-03 2019-11-28 안규태 블록 검증을 위한 복수의 일방향 함수를 지원하는 블록 체인
US9785369B1 (en) * 2016-05-23 2017-10-10 Accenture Global Solutions Limited Multiple-link blockchain
CN106982205B (zh) 2017-03-01 2020-05-19 中钞信用卡产业发展有限公司杭州区块链技术研究院 基于区块链的数字资产处理方法和装置
CN106940854A (zh) 2017-03-06 2017-07-11 钱德君 一种utxo模型与合约之间的搭桥方法
US10505723B1 (en) * 2017-04-26 2019-12-10 Wells Fargo Bank, N.A. Secret sharing information management and security system
US10747905B2 (en) * 2017-05-11 2020-08-18 Microsoft Technology Licensing, Llc Enclave ring and pair topologies

Also Published As

Publication number Publication date
EP3896898B1 (en) 2023-09-20
US20240064007A1 (en) 2024-02-22
CN110999204A (zh) 2020-04-10
EP3896898A1 (en) 2021-10-20
KR20200028961A (ko) 2020-03-17
EP4236195A3 (en) 2023-09-06
JP2024038320A (ja) 2024-03-19
US11799637B2 (en) 2023-10-24
JP7153056B6 (ja) 2022-11-28
EP3659293B1 (en) 2021-05-26
US20210091934A1 (en) 2021-03-25
WO2019021105A1 (en) 2019-01-31
GB201711878D0 (en) 2017-09-06
JP7420890B2 (ja) 2024-01-23
JP7153056B2 (ja) 2022-10-13
JP2020528689A (ja) 2020-09-24
US11159313B2 (en) 2021-10-26
EP3659293A1 (en) 2020-06-03
SG11201912230SA (en) 2020-02-27
EP4236195A2 (en) 2023-08-30
JP2022180596A (ja) 2022-12-06
US20220123927A1 (en) 2022-04-21

Similar Documents

Publication Publication Date Title
KR102670611B1 (ko) 블록체인-구현 이벤트-잠금 암호화를 위한 방법 및 시스템
JP7442606B2 (ja) 動的ノードグループのための秘密鍵のセキュアな再利用
JP7537721B2 (ja) 安全なブロックチェーンベースのコンセンサス

Legal Events

Date Code Title Description
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant