KR102652551B1 - 분산 조정을 사용한 스마트 계약 실행 - Google Patents

분산 조정을 사용한 스마트 계약 실행 Download PDF

Info

Publication number
KR102652551B1
KR102652551B1 KR1020207009476A KR20207009476A KR102652551B1 KR 102652551 B1 KR102652551 B1 KR 102652551B1 KR 1020207009476 A KR1020207009476 A KR 1020207009476A KR 20207009476 A KR20207009476 A KR 20207009476A KR 102652551 B1 KR102652551 B1 KR 102652551B1
Authority
KR
South Korea
Prior art keywords
private key
transaction
blockchain
group
outcome
Prior art date
Application number
KR1020207009476A
Other languages
English (en)
Other versions
KR20200059233A (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 KR20200059233A publication Critical patent/KR20200059233A/ko
Application granted granted Critical
Publication of KR102652551B1 publication Critical patent/KR102652551B1/ko

Links

Images

Classifications

    • 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/3823Payment protocols; Details thereof insuring higher security of transaction combining multiple encryption tools for 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time 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/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • 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/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; 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/08Payment architectures
    • G06Q20/085Payment architectures involving remote charge determination or related payment systems
    • 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/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • G06Q20/108Remote banking, e.g. home banking
    • 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/08Payment architectures
    • G06Q20/12Payment architectures specially adapted for electronic shopping systems
    • G06Q20/123Shopping for digital content
    • G06Q20/1235Shopping for digital content with control of digital rights management [DRM]
    • 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/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/32Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
    • G06Q20/322Aspects of commerce using mobile devices [M-devices]
    • 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/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • GPHYSICS
    • G06COMPUTING; 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
    • 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/3821Electronic credentials
    • G06Q20/38215Use of certificates or encrypted proofs of transaction rights
    • 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
    • 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/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • 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
    • G06Q30/00Commerce
    • G06Q30/018Certifying business or products
    • G06Q30/0185Product, service or business identity fraud
    • 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/02Banking, e.g. interest calculation or account maintenance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; 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
    • G06Q2220/00Business processing using cryptography
    • 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/16Obfuscation or hiding, e.g. involving white box
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Theoretical Computer Science (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Marketing (AREA)
  • Human Resources & Organizations (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Data Mining & Analysis (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Technology Law (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

본 발명은 합의 기반의 블록체인과 같은 분산 원장 기술에 관한 것이다. 스마트 계약 결과 결정을 위한 컴퓨터 구현 방법이 설명된다. 본 발명은, 예를 들면, 비트코인 블록체인일 수도 있는 블록체인 네트워크를 사용하여 구현된다. 대응 당사자의 세트로 조건의 세트의 결과를 결정하기 위한 동의가 전달되는데, 조건의 세트는 제1 가능한 결과 및 제2 가능한 결과를 갖는다. 비밀 공유 프로토콜을 사용하여, 제1 가능한 결과에 대응하는 제1 개인 키 지분 및 제2 가능한 결과에 대응하는 제2 개인 키 지분이 생성된다. 디지털 자산의 금액은 제1 블록체인 트랜잭션과 관련되는 어드레스로 양도된다. 결과를 제1 가능한 결과인 것으로 결정하는 것의 결과로서, 특정한 시간 프레임 내에서 제1 개인 키 지분가 공개되는데, 제1 개인 키 지분은, 결과를 결정하기 위한 대응 당사자의 세트에 의해 적어도 부분적으로 사용 가능하다. 블록체인 트랜잭션은 블록체인 네트워크 내의 노드에서 유효성이 확인되게 된다.

Description

분산 조정을 사용한 스마트 계약 실행
본 발명은 일반적으로 블록체인 기술에 관한 것으로, 더욱 상세하게는, 딜러가 없는 비밀 공유(dealer-free secret sharing) 및 타원 곡선 연산 및 서명(elliptic curve arithmetic and signature)의 속성(property)의 조합을 사용하여 블록체인 기반의 스마트 계약의 실행을 제어하는 것에 관한 것이다. 본 발명은 또한, 블록체인 네트워크를 통해 수행되는 전자적 양도(electronic transfer)와 관련하여 보안을 시행하기 위해 암호화(cryptographic) 및 수학 기법을 활용한다. 본 발명은 스마트 계약에서의 사용에 특히 적합되지만, 그러나 이것으로 제한되지는 않는다.
본 문헌에서, 용어 "블록체인(blockchain)"은, 여러 가지 타입의 전자적 컴퓨터 기반의 분산 원장(distributed ledger) 중 임의의 것을 지칭할 수도 있다. 이들은, 합의 기반의 블록체인 및 트랜잭션 체인 기술, 허가된(permissioned) 및 허가되지 않은(unpermissioned) 원장, 공유된 원장(shared ledger) 및 이들의 변형을 포함한다. 다른 블록체인 구현예가 제안되고 개발되었지만, 블록체인 기술의 가장 널리 알려진 애플리케이션은 비트코인 원장(Bitcoin ledger)이다. "비트코인"의 예가 편의성 및 예시의 목적을 위해 본 개시에서 설명되는 기술의 유용한 애플리케이션으로서 언급될 수도 있지만, 비트코인은, 본 개시에서 설명되는 기술이 적용될 수도 있는 많은 애플리케이션 중 하나에 불과하다. 그러나, 본 발명은 비트코인 블록체인과의 사용으로 제한되지 않으며; 비상업적 애플리케이션을 비롯한 대안적인 블록체인 구현 및 프로토콜도 또한 본 발명의 범위에 속한다는 것을 유의해야 한다. 예를 들면, 본 개시 내에서 설명되는 기술은, 암호 화폐의 교환이 발생하는지에 관계없이, 트랜잭션 내에서 어떤 제약(constraint)이 인코딩될 수 있는지에 관해 비트코인과 유사한 제한 사항을 갖는 블록체인 구현을 활용하는 것에 대한 이점을 제공할 것이다.
블록체인은, 결국에는, 트랜잭션 및 다른 정보로 구성될 수도 있는, 블록으로 구성되는 컴퓨터 기반의 탈집중화된(decentralised) 분산 시스템으로서 구현되는 피어 투 피어(peer-to-peer) 전자 원장이다. 몇몇 예에서, "블록체인 트랜잭션"은 데이터 및 조건의 세트를 포함하는 필드 값의 구조화된 콜렉션(collection)을 인코딩하는 입력 메시지를 지칭하는데, 필드의 세트가 블록체인 데이터 구조에 기록되기 위해서는, 조건의 세트의 이행이 필수이다. 예를 들면, 비트코인에서, 각각의 트랜잭션은, 블록체인 시스템에서의 참가자 사이에서 디지털 자산의 제어의 양도를 인코딩하는 데이터 구조이며, 적어도 하나의 입력 및 적어도 하나의 출력을 포함한다. 몇몇 실시형태에서, "디지털 자산"은 사용할 권리와 관련되는 이진 데이터를 지칭한다. 디지털 자산의 예는, 비트코인(Bitcoin), 이더(ether), 및 라이트코인(Litecoin)을 포함한다. 몇몇 구현예에서, 디지털 자산의 제어를 양도하는 것은, 디지털 자산의 적어도 일부를 제1 엔티티로부터 제2 엔티티로 재관련시키는 것에 의해 수행될 수 있다. 각각의 블록은, 블록체인의 시작 이후 블록체인에 기록된 모든 트랜잭션의 영구적이고 불변인 레코드를 생성하게끔 블록이 함께 체인화되도록, 이전 블록의 해시를 포함한다. 트랜잭션은, 트랜잭션 출력이 어떻게 그리고 누구에 의해 액세스될 수 있지를 명시하는, 그들의 입력 및 출력에 임베딩되는 스크립트로 알려진 작은 프로그램을 포함한다. 비트코인 플랫폼 상에서, 이들 스크립트는 스택 기반의 스크립팅 언어를 사용하여 작성된다.
몇몇 예에서, "스택 기반의 스크립팅 언어"는, 다양한 스택 기반의 또는 스택 지향 실행 모델 및 동작을 지원하는 프로그래밍 언어를 지칭한다. 즉, 스택 기반의 스크립팅 언어는 스택을 활용할 수도 있다. 스택을 사용하여, 값은 스택 최상부(top)로 푸시될 수 있거나 또는 스택의 최상부로부터 팝핑될(popped) 수 있다. 스택에 대해 수행되는 다양한 동작은, 스택의 최상부로의 또는 최상부로부터의 값 중 하나 이상의 푸시 또는 팝핑으로 나타날 수 있다. 예를 들면, OP_EQUAL 동작은, 스택으로부터 최상부의 두 개의 아이템을 팝핑하고, 그들을 비교하고, 결과(예를 들면, 동일한 경우 1 또는 동일하지 않은 경우 0)를 스택의 최상부로 푸시한다. OP_PICK와 같은, 스택에 대해 수행되는 다른 동작은, 스택의 최상부 이외의 위치로부터 아이템이 선택되는 것을 허용할 수도 있다. 본 실시형태 중 일부에 의해 활용되는 몇몇 스크립팅 언어에서, 적어도 두 개의 스택: 메인 스택 및 대안적인 스택이 존재할 수도 있다. 스크립팅 언어의 몇몇 동작은 아이템을 하나의 스택의 최상부로부터 다른 스택의 최상부로 이동시킬 수 있다. 예를 들면, OP_TOALTSTACK는 값을 메인 스택의 최상부로부터 대안적인 스택의 최상부로 이동시킨다. 스택 기반의 스크립팅 언어는, 몇몇 경우에, 엄격한 후입 선출(last-in-first-out; LIFO) 방식의 동작으로만 전적으로 제한되지 않을 수도 있다는 것을 유의해야 한다. 예를 들면, 스택 기반의 스크립팅 언어는, 스택에서의 n 번째 아이템을 최상부로 복사 또는 이동하는 동작(예를 들면, 비트코인에서, 각각, OP_PICK 및 OP_ROLL)을 지원할 수도 있다. 스택 기반의 스크립팅 언어로 작성되는 스크립트는, 벡터, 목록, 또는 스택과 같은 임의의 적절한 데이터 구조를 사용하여 구현될 수 있는 논리적 스택 상으로 푸시될 수도 있다.
트랜잭션을 블록체인에 기록되기 위해서는, 그것은 "유효성 확인이 되어야"만 한다. 네트워크 노드(채굴 노드(mining node))는, 무효한 트랜잭션이 네트워크로부터 거절되어, 각각의 트랜잭션이 유효하다는 것을 보장하기 위한 작업을 수행한다. 노드는 다른 노드와는 상이한 유효성에 대한 표준을 가질 수 있다. 블록체인에서의 유효성이 합의에 기반하기 때문에, 트랜잭션이 유효하다는 것을 대다수의 노드가 동의하면, 트랜잭션은 유효한 것으로 간주된다. 노드 상에 설치되는 소프트웨어 클라이언트는 미사용 트랜잭션(UTXO)을, UTXO 잠금용 및 잠금 해제용 스크립트를 실행하는 것에 의해, 부분적으로 참조하여 트랜잭션에 대한 이 유효성 확인 작업을 수행한다. 잠금용 및 잠금 해제용 스크립트의 실행이 TRUE로 평가되고, 해당되는 경우, 다른 유효성 확인 조건이 충족되면, 트랜잭션은 노드에 의해 유효성이 확인된다(validated). 유효성이 확인된 트랜잭션은 다른 네트워크 노드로 전파되고, 그 결과, 채굴 노드는 트랜잭션을 블록체인에 포함할 것을 선택할 수 있다. 따라서, 트랜잭션이 블록체인에 기록되기 위해서는, 그것은, i) 트랜잭션을 수신하는 제1 노드에 의해 유효성이 확인되어야만 하고 - 트랜잭션이 유효성이 확인되면, 노드는 그것을 네트워크 내의 다른 노드로 중계함 - ; 그리고, ii) 채굴 노드에 의해 구축되는 새로운 블록에 추가되어야만 하고; 그리고 iii) 채굴되어야만 한다, 즉, 과거 트랜잭션의 공개 원장에 추가되어야만 한다. 충분한 수의 블록이 블록체인에 추가되어 트랜잭션을 실제로 비가역적으로 만드는 경우, 트랜잭션은 확인된 것으로 간주된다.
비록 블록체인 기술이 암호 화폐 구현의 사용을 위해 가장 널리 알려져 있지만, 디지털 기업가는, 비트코인이 기반으로 하는 암호화 보안 시스템 및 새로운 시스템을 구현하기 위해 블록체인에 저장될 수 있는 데이터 둘 모두의 사용을 탐구하기 시작하였다. 블록체인이, 암호 화폐의 영역으로 제한되지 않는 자동화된 태스크 및 프로세스를 위해 사용될 수 있다면, 그것은 고도로 유리할 것이다. 그러한 솔루션은, 그들의 애플리케이션에서 더욱 다재 다능하면서, 블록체인의 이점(예를 들면, 이벤트의 영구적이고 무단 변경 방지 기록, 분산 프로세싱, 등등)을 이용할 수 있을 것이다.
본 개시는 하나 이상의 블록체인 기반의 컴퓨터 프로그램의 기술적 양태를 설명한다. 블록체인 기반의 컴퓨터 프로그램은 블록체인 트랜잭션에서 기록되는 머신 판독 가능하고 실행 가능한 프로그램이다. 블록체인 기반의 컴퓨터 프로그램은 결과를 생성하기 위해 입력을 프로세싱할 수 있는 규칙을 포함하는데, 그 결과는, 그 다음, 액션으로 하여금 그들 결과에 의존하여 수행되게 할 수 있다. 현재의 연구의 한 영역은 "스마트 계약(smart contract)"을 구현하기 위한 블록체인 기반의 컴퓨터 프로그램의 사용이다. 자연어로 작성될 전통적인 계약과는 달리, 스마트 계약은, 머신 판독 가능 계약 또는 합의의 관점에서 실행을 자동화하도록 설계되는 컴퓨터 프로그램일 수도 있다.
실시형태에서, 비록 특정한 엔티티와의 상호 작용이 스마트 계약에서의 특정한 단계에서 인코딩될 수 있지만, 스마트 계약은, 다르게는, 자동적으로 실행될 수 있고 자체 시행될 수 있다. 그것은 머신 판독 가능하고 실행 가능하다. 몇몇 예에서, 자동 실행은, UTXO의 양도를 가능하게 하기 위해 성공적으로 수행되는 스마트 계약의 실행을 지칭한다. 그러한 예에서, UTXO의 양도를 야기할 수 있는 "엔티티"는, 어떤 비밀의 지식을 입증하도록 요구받지 않으면서도 잠금 해제용 스크립트를 생성할 수 있는 엔티티를 가리킨다는 것을 유의한다. 다시 말하면, 잠금 해제용 트랜잭션(unlocking transaction)은, 데이터의 소스(예를 들면, 잠금 해제용 트랜잭션을 생성한 엔티티)가 암호화 비밀(예를 들면, 개인 비대칭 키, 대칭 키, 등등)에 액세스할 수 있다는 것을 검증하지 않고도 유효성이 확인될 수 있다. 또한, 그러한 예에서, 자체 시행은, 제약에 따라 블록체인 네트워크의 유효성 확인 노드(validation node)가 잠금 해제용 트랜잭션을 시행하게 되는 것을 지칭한다. 몇몇 예에서, UTXO를 "잠금 해제하는"(UTXO를 "지출하는"으로 또한 칭해짐) 것은 기술적인 의미에서 사용되며, UTXO를 참조하고 유효한 것으로 실행하는 잠금 해제용 트랜잭션을 생성하는 것을 지칭한다.
블록체인 트랜잭션 출력은 잠금용 스크립트 및 비트코인과 같은 디지털 자산의 소유권에 관한 정보를 포함한다. 방해물(encumbrance)로도 또한 칭해질 수도 있는 잠금용 스크립트는, UTXO를 양도하기 위해 충족될 필요가 있는 조건을 명시하는 것에 의해 디지털 자산을 "잠근다". 예를 들면, 잠금용 스크립트는 관련된 디지털 자산을 잠금 해제하기 위해 잠금 해제용 스크립트에서 소정의 데이터가 제공되어야 한다는 것을 규정할 수 있다. 잠금용 스크립트는 비트코인에서 "scriptPubKey"로 또한 알려져 있다. 당사자(party)에게 디지털 자산을 잠금 해제할 데이터를 제공할 것을 요구하기 위한 기술은, 잠금용 스크립트 내에 데이터의 해시를 임베딩하는 것을 수반한다. 그러나, 이것은, 잠금용 스크립트가 생성되는 시간에 데이터가 결정되지 않는 경우(예를 들면, 알려지지 않고 고정된 경우) 문제를 제시한다.
본 발명은, 검증 방법/시스템으로서, 및/또는 블록체인 트랜잭션의 유효성 확인을 제어하기 위한 제어 방법/시스템으로서 설명될 수도 있다. 몇몇 실시형태에서, 유효성이 확인된 블록체인 트랜잭션이 블록체인에 대한 트랜잭션의 기록으로 귀결되는데, 이것은, 몇몇 애플리케이션에서는, 블록체인을 통한 디지털 자산의 교환 또는 양도로 귀결될 수도 있다. 디지털 자산은, 블록체인에 의해 관리되는 리소스의 단위일 수도 있다. 비록 디지털 자산이, 몇몇 실시형태에서, 암호 화폐로서 사용될 수도 있지만, 실시형태에서, 디지털 자산은, 다른 컨텍스트에서, 추가적으로 또는 대안적으로 사용 가능하다는 것이 고려된다. 본 발명은, 본 발명은, 디지털 자산의 제어에 적용 가능하지만, 본질적으로 기술적인 것이며, 디지털 자산의 양도를 반드시 수반하지 않으면서 블록체인 데이터 구조를 활용하는 다른 컨텍스트에서 사용될 수 있다는 것을 유의한다.
따라서, 이들 양태 중 하나 이상에서 블록체인 기술을 향상시키는 방법 및 시스템을 제공하는 것이 바람직하다. 그러한 향상된 솔루션이 이제 고안되었다. 따라서, 본 발명에 따르면, 첨부된 청구범위에서 정의되는 바와 같은 방법이 제공된다.
따라서, 컴퓨터 구현 방법을 제공하는 것이 바람직한데, 컴퓨터 구현 방법은 다음의 것을 포함한다:
대응 당사자(counterparty) 사이의 스마트 계약을 결정하는 것 - 조건의 세트는:
디지털 자산의 제1 분배와 관련되는 제1 가능한 결과; 및
디지털 자산의, 제1 분배와는 상이한 제2 분배와 관련되는 제2 가능한 결과
를 포함하는 복수의 가능한 결과(outcome)를 가짐 - ;
출력으로서, 컴퓨터 실행 가능 명령어 안으로 인코딩되는 조건의 세트 및 디지털 자산을 포함하는 대응 당사자 트랜잭션을 생성하는 것;
제3 당사자(third party)로부터 결과 - 결과는 제1 가능한 결과 또는 제2 가능한 결과에 대응함 - 를 수신하는 것;
대응 당사자 트랜잭션의 디지털 자산의 제어를 양도하기 위해 결과 트랜잭션(outcome transaction) - 결과 트랜잭션은 입력으로서 결과를 포함함 - 을 생성하는 것; 및
블록체인 네트워크 내의 노드에서 결과 트랜잭션의 유효성을 확인하는 것의 결과로서, 결과에 적어도 부분적으로 기초하여, 제1 가능한 결과 또는 제2 가능한 결과에 따라 디지털 자산을 대응 당사자에 분배하는 것.
제3 당사자는 복수의 멤버를 포함하는 그룹일 수도 있다.
결과는 복수의 멤버에 의해 제출되는 답변(answer)의 합의의 결과일 수도 있다.
복수의 멤버를 포함할 멤버의 양이 결정될 수도 있다. 추가적으로 또는 대안적으로, 결과를 결정하기 위한 임계 수가 결정될 수도 있다. 결과는 적어도 임계 수의 복수의 멤버에 의해 제출되는 답변과 매치할 수도 있다.
결과는 복수의 멤버에 의해 제출되는 키 지분(key share)에 적어도 부분적으로 기초하여 결정될 수도 있다. 추가적으로 또는 대안적으로, 키 지분은 비밀 공유 스킴(secret sharing scheme)에 따라 결정될 수도 있다.
키 지분은 복수의 멤버에 의해 지분 증명(proof-of-stake) 블록체인의 블록으로 커밋될 수도 있다.
제2 디지털 자산과 관련되는 적어도 하나의 조정 알고리즘 트랜잭션(coordination algorithm transaction)이 생성될 수도 있다. 추가적으로 또는 대안적으로, 제2 디지털 자산의 제어를 양도하기 위해 생성되는 분배 트랜잭션의 유효성을 확인하는 것의 결과로서, 제2 디지털 자산은 제3 당사자에게 분배될 수도 있다.
제2 디지털 자산은 제3 당사자에 의해 기여되는 예치금 부분(deposit portion)을 포함할 수도 있다.
제2 디지털 자산은, 추가적으로 또는 대안적으로, 대응 당사자에 의해 기여되는 분배 부분(distribution portion)을 포함할 수도 있다.
복수의 멤버는, 답변이 합의와 매치하지 않는 멤버를 포함할 수도 있다. 추가적으로 또는 대안적으로, 답변이 답변의 합의와 매치하지 않는 것의 결과로서, 제2 디지털 자산의 분배는, 멤버가 분배 부분을 수령하는 것을 배제할 수도 있다.
디지털 자산은 제1 당사자에 의해 기여되는 디지털 자산의 제1 금액 및 제2 당사자에 의해 기여되는 디지털 자산의 제2 금액을 포함할 수도 있다.
복수의 가능한 결과 중 하나는 조건의 세트에 대한 타임아웃 조건과 관련될 수도 있다. 추가적으로 또는 대안적으로, 추가로 결과 트랜잭션의 유효성을 확인하는 것의 결과로서 그리고 타임아웃 조건의 발생 결과로서, 제1 금액은 제1 당사자에게 환불될 수도 있다. 추가적으로 또는 대안적으로, 추가로 결과 트랜잭션의 유효성을 확인하는 것의 결과로서 그리고 타임아웃 조건의 발생의 결과로서, 제2 금액은 제2 당사자에게 환불될 수도 있다.
복수의 가능한 결과에 대응하는 복수의 개인 결과 키(private outcome key)가 제3 당사자로부터 수신될 수도 있다. 추가적으로 또는 대안적으로, 결과는 복수의 개인 결과 키 중 하나에 대응하는 암호화 키일 수도 있다. 대응 당사자에 의해 결정되는 비밀 값은, 복수의 개인 결과 키의 각각과 결합되어 복수의 난독화된 결과 키(obfuscated outcome key)를 생성할 수도 있다. 대응 당사자 트랜잭션은 복수의 난독화된 개인 키를 더 포함하도록 생성될 수도 있다. 결과 트랜잭션의 유효성을 확인하는 것은 암호화 키를 비밀 값과 결합하여 결과 서명용 키(outcome signing key)를 생성하는 것을 포함할 수도 있다. 추가적으로 또는 대안적으로, 결과 트랜잭션의 유효성을 확인하는 것은, 복수의 난독화된 개인 키 중 어떤 것이 결과 서명용 키와 관련되는지에 적어도 부분적으로 기초하여 디지털 자산을 대응 당사자에게 분배하는 것을 포함할 수도 있다.
따라서, 컴퓨터 구현 방법을 제공하는 것이 더 바람직한데, 컴퓨터 구현 방법은 다음의 것을 포함한다:
대응 당사자의 세트로, 조건의 세트 - 조건의 세트는 제1 가능한 결과 및 제2 가능한 결과를 가짐 - 의 결과를 결정하기 위한 동의를 전달하는 것;
비밀 공유 프로토콜을 사용하여, 제1 가능한 결과에 대응하는 제1 개인 키 지분 및 제2 가능한 결과에 대응하는 제2 개인 키 지분을 생성하는 것;
디지털 자산의 금액을 제1 블록체인 트랜잭션과 관련되는 어드레스로 양도하는 것;
결과를 제1 가능한 결과인 것으로 결정하는 것의 결과로서, 특정한 시간 프레임 내에서 제1 개인 키 지분 - 제1 개인 키 지분은, 결과를 결정하기 위한 대응 당사자의 세트에 의해 적어도 부분적으로 사용 가능함 - 를 공개하는(revealing) 것;
제1 개인 키 지분에 적어도 부분적으로 기초하여, 제1 블록체인 트랜잭션과 관련되는 디지털 자산의 금액을 지출하기 위해 제2 블록체인 트랜잭션의 유효성을 확인하는 데 적어도 부분적으로 사용 가능한 서명을 생성하는 것; 및
제2 블록체인 트랜잭션으로 하여금, 블록체인 네트워크의 노드에서 유효성이 확인되게 하여 디지털 자산의 금액의 제어를 획득하는 것.
컴퓨터 구현 방법을 제공하는 것이 또한 바람직한데, 컴퓨터 구현 방법은 다음의 것을 포함한다:
대응 당사자의 세트로, 조건의 세트 - 조건의 세트는 제1 가능한 결과 및 제2 가능한 결과를 가짐 - 의 결과를 결정하기 위한 동의를 전달하는 것;
비밀 공유 프로토콜을 사용하여, 제1 가능한 결과에 대응하는 제1 개인 키 지분 및 제2 가능한 결과에 대응하는 제2 개인 키 지분을 생성하는 것;
디지털 자산의 금액을 제1 블록체인 트랜잭션과 관련되는 어드레스로 양도하는 것;
결과를 제1 가능한 결과인 것으로 결정하는 것의 결과로서, 특정한 시간 프레임 내에서 제1 개인 키 지분 - 제1 개인 키 지분은, 결과를 결정하기 위한 대응 당사자의 세트에 의해 적어도 부분적으로 사용 가능함 - 를 공개하는(revealing) 것;
제1 개인 키 지분에 적어도 부분적으로 기초하여, 제1 블록체인 트랜잭션과 관련되는 디지털 자산의 금액을 잠금 해제하기 위해 제2 블록체인 트랜잭션의 유효성을 확인하는 데 적어도 부분적으로 사용 가능한 서명을 생성하는 것; 및
제2 블록체인 트랜잭션으로 하여금, 블록체인 네트워크 내의 노드에서 유효성이 확인되게 하는 것.
제1 가능한 결과와 관련되는 제1 공개 키 및 제2 가능한 결과와 관련되는 제2 공개 키가 생성될 수도 있다. 추가적으로 또는 대안적으로, 제1 공개 키 및 제2 공개 키는 대응 당사자의 세트로 제공될 수도 있다. 추가적으로 또는 대안적으로, 제1 개인 키 지분은, 적어도 부분적으로 제1 개인 키 지분을 사용하여, 제1 개인 키를 생성하는 것에 의해 결과를 결정하는 데 사용 가능할 수도 있다. 추가적으로 또는 대안적으로, 제1 개인 키 지분은, 제1 개인 키가 제1 공개 키와 관련되어 있다는 것을 결정하는 것에 의해 결과를 결정하는 데 사용 가능할 수도 있다.
비밀 공유 프로토콜은 딜러가 없는 비밀 공유 프로토콜일 수도 있다.
제1 개인 키 지분을 공개하는 것은 제3 블록체인 트랜잭션에서 제1 개인 키 지분을 공개하는 것을 포함할 수도 있다.
제3 블록체인 트랜잭션은 지분 증명 블록체인에서의 트랜잭션일 수도 있다.
특정한 시간 프레임은 제2 시간 프레임일 수도 있다. 추가적으로 또는 대안적으로, 제1 개인 키 지분을 공개하는 것은, 제2 시간 프레임 이전에, 제1 시간 프레임 내에 커밋 트랜잭션(commit transaction)에서 제1 개인 키 지분의 암호화 해시를 커밋하는 것을 더 포함할 수도 있다. 추가적으로 또는 대안적으로, 제3 블록체인 트랜잭션의 유효성을 확인하는 것은, 제3 블록체인 트랜잭션에서의 제1 개인 키 지분이 커밋 트랜잭션에서의 암호화 해시에 대응한다는 것을 결정하는 것을 포함할 수도 있다.
제1 블록체인 트랜잭션은 대응 당사자의 세트의 서브세트로부터 양도되는 제2 디지털 자산의 제2 금액을 더 포함할 수도 있다. 추가적으로 또는 대안적으로, 추가로 제2 블록체인 트랜잭션으로 하여금 유효성이 확인되게 하는 것의 결과로서, 제2 디지털 자산의 제2 금액의 제어가 양도될 수도 있다.
제1 블록체인 트랜잭션은 타임아웃 조건을 더 포함할 수도 있다. 추가적으로 또는 대안적으로, 타임아웃 조건의 이행의 결과로, 제2 블록체인 트랜잭션으로 하여금 유효성이 확인되게 하는 것은, 제2 디지털 자산의 제2 금액의 제어를 대응 당사자의 세트의 서브세트로 양도할 수도 있다.
제2 블록체인 트랜잭션의 유효성을 확인하는 것은, 그룹 암호화 키를 사용하여 생성되는 디지털 서명의 유효성을 확인하는 것을 포함할 수도 있는데, 그룹 암호화 키는 결과를 결정할 것을 동의한 참가자의 그룹과 관련된다.
참가자의 그룹은, 제1 가능한 결과에 대응하는 키 지분을 공개하는 참가자의 제1 서브세트를 포함할 수도 있다. 추가적으로 또는 대안적으로, 참가자의 그룹은, 제2 가능한 결과에 대응하는 키 지분을 공개하는 참가자의 제2 서브세트를 포함할 수도 있다. 추가적으로 또는 대안적으로, 제2 금액의 제어를 양도하는 것은, 참가자의 제2 서브세트를 제외한, 참가자의 제1 서브세트로 제2 금액의 제어를 양도하는 것을 포함할 수도 있다.
참가자의 그룹과 관련되는 그룹 공개 키가 생성될 수도 있다. 추가적으로 또는 대안적으로, 그룹 공개 키는 대응 당사자의 세트에 제공될 수도 있다. 추가적으로 또는 대안적으로, 제1 블록체인 트랜잭션은, 적어도 부분적으로, 그룹 공개 키를 사용하여, 생성될 수도 있다. 추가적으로 또는 대안적으로, 제2 블록체인 트랜잭션의 유효성 확인은, 그룹 암호화 키가 제1 블록체인 트랜잭션의 그룹 공개 키와 관련된다는 것을 결정하는 것을 포함할 수도 있다.
비밀 공유 프로토콜을 사용하여 그룹 개인 키 지분이 생성될 수도 있다. 추가적으로 또는 대안적으로, 추가로 결과를 결정하는 것의 결과로서, 그룹 암호화 키는 그룹 개인 키 지분에 적어도 부분적으로 기초하여 생성될 수도 있다.
제1 개인 키 지분은 참가자의 그룹 사이에서 분배되는 복수의 제1 개인 키 지분에 속할 수도 있다. 추가적으로 또는 대안적으로, 제1 개인 키 지분은 제1 가능한 결과에 대응할 수도 있다. 추가적으로 또는 대안적으로, 결과를 제1 가능한 결과로 결정하는 것은, 복수의 제1 개인 키 지분의 임계 수가 참가자의 그룹에 의해 공개되었다는 것을 결정하는 것을 포함할 수도 있다.
프로세서; 및 실행 가능 명령어를 포함하는 메모리:를 포함하는 시스템을 제공하는 것이 또한 바람직한데, 실행 가능 명령어는, 프로세서에 의한 실행의 결과로서, 시스템으로 하여금, 청구되는 바와 같은 방법 중 임의의 것을 수행하게 한다.
또한, 실행 가능 명령어를 저장한 비일시적 컴퓨터 판독 가능 저장 매체를 제공하는 것이 또한 바람직한데, 실행 가능 명령어는, 컴퓨터 시스템의 하나 이상의 프로세서에 의한 실행의 결과로서, 컴퓨터 시스템으로 하여금, 청구되는 바와 같은 방법 중 임의의 것을 적어도 수행하게 한다.
본 발명은, 검증 방법/시스템으로서, 및/또는 블록체인을 통한 디지털 자산의 교환 또는 양도를 제어하기 위한 제어 방법/시스템으로서 설명될 수 있다. 몇몇 실시형태에서, 디지털 자산은 토큰 또는 암호 화폐의 일부이다. 하기에서 설명되는 바와 같이, 본 발명은 또한, 블록체인 네트워크 또는 플랫폼을 통해 동작을 수행하는 새롭고, 향상되고 유리한 방식을 위한 보안 방법/시스템으로서 설명될 수 있다.
본 발명의 이들 및 다른 양태는 본원에서 설명되는 실시형태로부터 명백해질 것이고 그 실시형태를 참조하여 설명될 것이다. 이제, 본 발명의 실시형태가, 단지 예로서, 그리고 첨부하는 도면을 참조하여, 설명될 것인데, 첨부하는 도면에서:
도 1은 다양한 실시형태가 구현될 수 있는 블록체인 환경을 예시한다;
도 2는 한 실시형태에 따른 스마트 계약의 예를 예시한다;
도 3은 한 실시형태에 따른 스마트 계약을 셋업하는 예를 예시한다;
도 4는 한 실시형태에 따른 결과 결정을 조정하는 예를 예시한다;
도 5는 한 실시형태에 따른 스마트 계약 실행의 예를 예시한다;
도 6은 한 실시형태에 따른 스마트 계약 및 조정 알고리즘 트랜잭션을 생성하는 예를 예시하는 스윔 다이어그램(swim diagram)이다;
도 7은 한 실시형태에 따른 스마트 계약을 실행하는 예를 예시하는 스윔 다이어그램이다; 그리고
도 8은 다양한 실시형태가 구현될 수 있는 컴퓨팅 환경을 예시한다.
본 개시의 실시형태에 따른 블록체인과 관련되는 예시적인 블록체인 네트워크(100)를 예시하는 도 1에 대한 참조가 먼저 이루어질 것이다. 실시형태에서, 예시적인 블록체인 네트워크(100)는, 노드(102)의 운영자 사이에서, 적어도 부분적으로, 동의되는 블록체인 프로토콜을 따르는 동작을 수행하는 소프트웨어 및/또는 하드웨어의 인스턴스를 각각 실행하는 피어 투 피어의 분산된 전자 디바이스(peer-to-peer distributed electronic device)로서 구현되는 블록체인 노드를 포함한다. 몇몇 예에서, "노드"는 블록체인 네트워크 사이에 분산되는 피어 투 피어 전자 디바이스를 지칭한다. 블록체인 프로토콜의 예는 비트코인 프로토콜이다.
몇몇 실시형태에서, 노드(102)는, (예를 들면, 데이터 센터 내의 서버에 의한, 클라이언트 컴퓨팅 디바이스(예를 들면, 데스크탑 컴퓨터, 랩탑 컴퓨터, 태블릿 컴퓨터, 스마트폰, 등등)에 의한, 컴퓨팅 리소스 서비스 공급자의 분산형 시스템에서의 다수의 컴퓨팅 디바이스에 의한, 또는 도 8의 컴퓨팅 디바이스(800)와 같은 임의의 적절한 전자 클라이언트 디바이스에 의한) 임의의 적절한 컴퓨팅 디바이스로 구성될 수 있다. 몇몇 실시형태에서, 노드(102)는 트랜잭션(104)과 같은 제안된 트랜잭션을 나타내는 데이터 메시지 또는 오브젝트를 수신하기 위한 입력을 갖는다. 몇몇 실시형태에서, 노드는 그들이 유지하는 정보에 대해, 예컨대 트랜잭션(104)의 상태의 정보에 대해 질의 가능하다.
도 1에서 도시되는 바와 같이, 노드(102) 중 몇몇은, 노드(102) 중 하나 이상의 다른 노드에 통신 가능하게 커플링될 수도 있다. 그러한 통신 커플링은 유선 또는 무선 통신 중 하나 이상을 포함할 수 있다. 실시형태에서, 노드(102) 각각은 블록체인 내의 모든 트랜잭션의 "원장"의 적어도 일부를 유지한다. 이러한 방식으로, 원장은 분산 원장이 될 것이다. 원장에 영향을 끼치는 노드에 의해 프로세싱되는 트랜잭션은, 원장의 무결성이 유지되도록 다른 노드 중 하나 이상에 의해 검증 가능하다.
어떤 노드(102)가 어떤 다른 노드와 통신할 수 있는지에 관해서는, 블록체인 프로토콜이 나타내는 메시지가 포워딩되어야 한다는 것을 가정하여, 노드 사이에서 전달되는 메시지가 예시적인 블록체인 네트워크(100)(또는 그것의 어떤 중요한 부분) 전체에 걸쳐 전파될 수 있도록 예시적인 블록체인 네트워크(100) 내의 노드의 각각이 노드(102) 중 하나 이상의 다른 것과 통신할 수 있으면 충분할 수 있다. 하나의 그러한 메시지는, 노드(102A)와 같은 노드(102) 중 하나에 의한 제안된 트랜잭션의 발행일 수도 있는데, 그 제안된 트랜잭션은, 그 다음, 경로(106)와 같은 경로를 따라 전파될 것이다. 다른 그러한 메시지는, 블록체인 상으로의 포함을 위해 제안되는 새로운 블록의 발행일 수도 있다.
한 실시형태에서, 노드(102) 중 적어도 일부는 암호화 문제를 해결하는 것과 같은 복잡한 계산을 수행하는 채굴 노드이다. 암호화 문제를 해결하는 채굴 노드는 블록체인에 대한 새로운 블록을 생성하고 새로운 블록을 노드(102) 중 다른 것으로 브로드캐스트한다. 노드(102) 중 다른 것은 채굴 노드의 작업을 검증하고, 검증시, (예를 들면, 블록체인의 분산 원장에 블록을 추가하는 것에 의해) 블록체인 안으로 블록을 수용한다. 몇몇 예에서, 블록은 트랜잭션의 그룹이며, 종종 이전 블록의 "핑거프린트"(예를 들면, 해시) 및 타임스탬프와 함께 마킹된다. 이러한 방식으로, 각각의 블록은 이전 블록에 연결되게 될 수도 있고, 그에 의해, 블록체인에서 블록을 연결하는 "체인"을 생성할 수도 있다. 실시형태에서, 유효 블록은 노드(102)의 합의에 의해 블록체인에 추가된다. 또한, 몇몇 예에서, 블록체인은 유효성이 확인된 블록의 목록을 포함한다.
한 실시형태에서, 노드(102) 중 적어도 일부는 본 개시에서 설명되는 바와 같이 트랜잭션의 유효성을 확인하는 유효성 확인용 노드(validating node)로서 동작한다. 몇몇 예에서, 트랜잭션은 디지털 자산(예를 들면, 비트코인의 수)의 소유권의 증명을 제공하는 데이터 및 디지털 자산의 소유권/제어를 수락 또는 양도하기 위한 조건을 포함한다. 몇몇 예에서, "잠금 해제용 트랜잭션"은, 이전 트랜잭션의 미사용 UTXO에 의해 표시되는, 디지털 자산의 적어도 일부를, 블록체인 어드레스와 관련되는 엔티티에 재관련시키는(예를 들면, 소유권 또는 제어를 양도함) 블록체인 트랜잭션을 가리킨다. 몇몇 예에서, "이전 트랜잭션"은 잠금 해제용 트랜잭션에 의해 참조되고 있는 UTXO를 포함하는 블록체인 트랜잭션을 지칭한다. 몇몇 실시형태에서, 트랜잭션은, 소유권/제어가 양도될("잠금 해제될") 수 있기 이전에 이행되어야만 하는 조건으로 트랜잭션을 차단하는 "잠금용 스크립트"를 포함한다.
몇몇 실시형태에서, 블록체인 어드레스는, 디지털 자산의 적어도 일부의 제어가 양도/재관련되고 있는 엔티티와 관련되는 영숫자의 문자열이다. 몇몇 실시형태에서 구현되는 몇몇 블록체인 프로토콜에서, 엔티티와 관련되는 공개 키와 블록체인 어드레스 사이에는 일대일 대응성이 존재한다. 몇몇 실시형태에서, 트랜잭션의 유효성 확인은 잠금용 스크립트 및/또는 잠금 해제용 스크립트에서 명시되는 하나 이상의 조건의 유효성을 확인하는 것을 수반한다. 트랜잭션(104)의 성공적인 유효성 확인시, 유효성 확인 노드는 트랜잭션(104)을 블록체인에 추가하고 그것을 이를 노드(102)에 분배한다.
본 개시에서 언급되는 동작 코드의 예는 다음의 것을 포함한다:
OP_CHECKSIG, 공개 키 및 서명이 스택으로부터 팝핑되고 SIGHASH 타입에 따라 트랜잭션 필드의 서명에 대해 검증됨. 서명이 유효하면, 1이 리턴되고 그렇지 않으면 0이 리턴된다.
OP_DUP, 최상부 스택 아이템을 복제함
OP_ELSE, 선행 OP_IF 또는 OP_NOTIF 또는 OP_ELSE가 실행되지 않은 경우, 이들 명령문이 실행되고; 그렇지 않고, 선행 OP_IF 또는 OP_NOTIF 또는 OP_ELSE가 실행된 경우, 이들 명령문이 실행되지 않음
OP_ENDIF, if/else 블록을 종료함.
OP_IF, 최상부 스택 값이 False가 아닌 경우, 명령문이 실행되고 최상부 스택 값이 제거됨
OP_CHECKMULTISIG, 매치를 찾을 때까지, 제1 서명을 각각의 공개 키와 비교함. 그 다음, 후속 공개 키를 사용하여, 매치를 찾을 때까지, 제2 서명을 나머지 각각의 나머지 공개 키에 대해 비교한다. 모든 서명이 체크될 때까지 프로세스가 반복된다. 서명이 유효하면, 1이 리턴되고, 그렇지 않으면, 0이 리턴된다.
OP_CHECKLOCKTIMEVERIFY, 최상부 스택 아이템이 트랜잭션 nLockTime보다 더 크면 에러와 함께 종료됨; 그렇지 않으면, 스크립트 평가는 계속됨
도 2는 본 개시의 예시적인 실시형태(200)를 예시한다. 도 2에서 도시되는 바와 같이, 예시적인 실시형태(200)는, 분배(222)를 대가로 답변(214)을 객관적으로 결정하기 위해 모집되는 멤버(204A-04M)(p1-pm)의 그룹으로부터 수신되는 답변(214)의 합의에 의존하는 디지털 자산(220)의 금액을 분배하는 스마트 계약(206)을 생성하는 대응 당사자(202A-02N)(C1-Cn)를 포함할 수도 있다. 즉, 실시형태에서, 멤버(204A-04M)는, 결정 문제 또는 기능 문제에 대한 답변을 제공하기 위해 분산된 신뢰 오라클(distributed trusted oracle)로서 집합적으로 역할을 한다. 몇몇 예에서, "오라클"은, 결과를 결정할 수 있는 입력을 제공하는 외부 에이전트를 가리킨다; 오라클 관련 서비스는 Oraclize(오라클라이즈), Town Crier(타운 크라이어), 및 Orisi(오리시스) 서비스를 포함한다. 몇몇 실시형태에서, 멤버(204A-04M)는 그룹의 다른 멤버의 식별자의 지식을 가지지 않을 수도 있거나 또는 그룹의 다른 멤버에 의해 제공되는 답변의 지식을 가질 수도 있다. 멤버를 서로 익명으로 유지하는 것에 의해, 멤버 사이의 공모에 대한 가능성은 최소화된다.
몇몇 실시형태에서, 대응 당사자(202A-02N)는 스마트 계약의 조건에 동의한 두 개 이상의 엔티티일 수도 있다. 다양한 실시형태에서, 대응 당사자(202) 중 하나는, 개인, 개인의 그룹, 회사, 컴퓨팅 디바이스, 또는 스마트 계약(206)의 조건을 결정 또는 동의할 수 있는 어떤 다른 엔티티이다. 하나의 사용 사례에서, 제1 대응 당사자는 클라이언트이고 제2 대응 당사자는 보험사(insurer)이다. 몇몇 실시형태에서, 대응 당사자(202A-02N) 중 적어도 하나는, 다른 엔티티가 스마트 계약(206)의 결과를 결정하는 멤버(204A-04M)로서 참가하는 것에 관심을 가지게 하기 위한 분배로서 분배(222)를 공급한다. 몇몇 실시형태에서, 대응 당사자(202A-02N) 중 적어도 하나는 멤버(204A-04B)의 그룹을 얼마나 많은 멤버가 포함할 것인지를 결정한다. 다양한 실시형태에서, 수는 멤버의 정확한 수, 최소 수, 또는 최대 수이다. 그룹 내의 멤버가 더 많을수록, 그룹에 의해 제공되는 합의 답변은 더욱 신뢰 가능해야 한다.
몇몇 실시형태에서, 멤버(204A-04M)는 스마트 계약(206)의 조건의 결과를 결정할 수 있는 엔티티의 그룹이다. 대응 당사자(202A-02N)에서와 같이, 다양한 실시형태에서, 멤버 중 하나는 개인, 개인의 그룹, 회사, 소프트웨어 애플리케이션, 컴퓨팅 디바이스, 또는 스마트 계약(206)의 결과를 결정하기 위해 사용 가능한 답변을 제공할 수 있는 어떤 다른 엔티티이다. 상기에서 언급되는 바와 같이, 몇몇 실시형태에서, 멤버(204A-04M)의 수는 대응 당사자(202A-02N)에 의해 명시될 수도 있다. 하나의 예에서, 대응 당사자(202A-02N)는 그룹 내에 15 명의 멤버가 있어야 한다는 것을 명시한다.
한 실시형태에서, 대응 당사자(202A-02N)는, (예를 들면, 명시된 양의 시간 내에) 충분하지 않은 멤버가 그룹에 참가하는 경우, 대응 당사자(202A-02N)에 의해 예치되는 (트랜잭션 분배를 뺀) 디지털 자산의 임의의 금액을 환불하기 위해 스마트 계약(206)을 생성한다. 상기에서 언급되는 바와 같이, 몇몇 실시형태에서, 멤버(204A-04M)는, 대응 당사자(202A-02N)에 의해 제시되는 분배(222)에 의해 답변(214)을 결정하는 데 참가할 이유를 제공받을 수도 있다. 몇몇 실시형태에서, 멤버(204A-04M)는 답변의 합의와 매치하는 답변을 제출하고 분배(222) 또는 (예를 들면, 멤버의 수에 의해 나누어지는) 분배(222)의 어떤 비율을 수령한다. 이들 실시형태 중 일부에서, 비 합의 답변(합의 답변에 일치하지 않는 답변)을 제출하는 멤버는 그들의 분배(222) 또는 분배(222)의 비율을 상실한다. 다른 실시형태에서, 비 합의 답변을 제출하는 멤버는, 합의와 매치하는 답변을 제출하는 멤버에 의해 수령되는 것보다 더 적은 분배 또는 분배(222)의 더 적은 비율을 수령한다.
다양한 예에서, 합의는 간단한 대다수의 매칭 답변, 절대 대다수의 매칭 답변, 임계치에 도달하기 이전에 제출되는 대다수의 매칭 답변(예를 들면, 처음 세 개의 매칭 답변은 합의 답변으로 간주됨), 또는 매칭 답변의 임계 수를 지칭한다. 몇몇 실시형태에서, 대응 당사자(202A-02N)는 합의를 결정하기 위한 임계치를 결정한다. 한 예에서, 대응 당사자(202A-02N)는, 합의가 도달하기 위해서는 멤버(204A-04M)의 적어도 60 %가 매칭 답변을 제출해야만 한다는 것을 결정한다.
또한, 몇몇 실시형태에서, 멤버의 각각은 (예를 들면, 디지털 자산의 어떤 금액의) 예치금을 커밋하는 데, 이것은 멤버(204A-04M)가 답변을 제출할 추가 이유를 제공한다. 즉, 이들 실시형태에서, 참가에 동의하지만 그러나 협정을 취소하는 멤버는, 그 멤버가 커밋한 예치금을 잃는다. 몇몇 실시형태에서, 멤버가 비 합의 답변을 제출하더라도, 멤버가 참가하는 것에 의해 적어도 디지털 자산을 잃지 않도록, 멤버는 여전히 예치금을 환불받는다. 요구할 예치금의 금액을 결정함에 있어서, 대응 당사자(202A-02N)는, 멤버(204A-04M)가 참가하기를 원하는 것을 완전히 막도록 그렇게 크지 않으면서, 멤버(204A-04M)가 그들의 예치금이 반환되게 하기 위해 신속하고 정확한 답변을 제공할 이유를 제공받을 만큼 충분히 크게 예치금을 만드는 것의 균형을 맞출 수도 있다.
몇몇 실시형태에서, 스마트 계약(206)은 대응 당사자(202A-02N)에 의해 동의되는 조건에 따라 디지털 자산의 제어를 자동적으로 양도하도록 설계되는 컴퓨터 실행 가능 명령어(예를 들면, 동작 코드)의 세트이다. 몇몇 실시형태에서, 스마트 계약(206)은 (예를 들면, 스크립팅 언어로 작성되는 컴퓨터 실행 가능 명령어로서) 블록체인 트랜잭션 내에서 코딩되고, 블록체인 네트워크의 유효성 확인 노드에 의한 블록체인 트랜잭션의 유효성 확인에 의해 활성화된다. 실시형태에서, 블록체인 트랜잭션과 관련되는 디지털 자산은 스마트 계약(206)에서 명시되는 조건의 이행에 의해 상환 가능하다(예를 들면, 획득 가능하다). 실시형태에서, 스마트 계약(206)은 블록체인 네트워크의 분산 원장에서 유효성이 확인된 트랜잭션의 잠금용 스크립트에 포함된다. 이러한 방식으로, 실행 가능한 명령어는 불변으로 되며, 스마트 계약(206)을 포함하는 잠금용 스크립트의 성공적인 실행은 유효성이 확인된 트랜잭션의 디지털 자산을 양도하기 위한 전제 조건이다.
또한, 상기에서 언급되는 바와 같이, 실시형태에서, 스마트 계약(206)은 조건의 세트를 포함하고, 유효성이 확인된 트랜잭션의 UTXO를 잠금 해제하는 것은 조건의 세트의 이행에 의존한다. 한 예에서, 스마트 계약(206)은, 블록체인 트랜잭션의 잠금용 스크립트에 대한 입력으로서, 피보험자(insuree)가 보험 계약에 의해 보장되는 손실을 입었다는 증거를 제공할 때 보험 계약에 따라 피보험자에게 디지털 자산을 분배하는 보험 계약이다. 더구나, 몇몇 실시형태에서, 스마트 계약(206)은 복수의 가능한 결과와 관련되고, 스마트 계약(206)을 포함하는 유효성 확인의 성공적인 실행의 결과는 특정한 결과에 따라 상이할 수도 있다. 상기의 예에서, 스마트 계약(206)은 적어도 두 개의 가능한 결과: 제1 가능한 결과 및 제2 가능한 결과를 갖는다. 제1 가능한 결과는, 피보험자가 보장된 손실을 겪고 보험 계약에 따라 지급금을 받는다는 것이다. 제2 가능한 결과는, 피보험자가 손실을 겪지 않고 보험사가 디지털 자산 및 피보험자의 보험료 불입(premium payment)을 유지하는 것이다. 실시형태에서, 스마트 계약(206)에서 컴퓨터 실행 가능 명령어의 실행은, 특정한 결과를 증명하는 데이터가 잠금용 스크립트에 대한 입력으로서 제공되는 경우 스마트 계약(206)으로 하여금 가능한 결과 중 하나에 따라 디지털 자산을 양도하게 할 것이다.
몇몇 실시형태에서, 답변(214)은 스마트 계약(206)에서 명시되는 결과 조건 중 하나 이상에 대응하는 답변이다. 예로서, 스마트 계약은, 지급되는 디지털 자산(220)의 금액 및 디지털 자산(220)이 어떤 엔티티에게 지급되는지에 영향을 주는 복수의 조건을 포함할 수도 있다. 멤버(204A-04M)는 (만약 있다면) 복수의 조건 중 어떤 것이 이행되는지를 결정하는 데 사용 가능한 답변(214)을 제출한다. 몇몇 실시형태에서, 답변(214)은 암호화 키 또는 디지털 서명의 형태로 제출된다. 이러한 방식으로, 이행되는 조건은 스마트 계약(206)에서의 어떤 조건이 멤버(204A-04M)의 합의에 의해 제출되는 암호화 키 또는 디지털 서명에 대응하는지를 결정하는 것에 의해 결정 가능하다.
몇몇 실시형태에서, 디지털 자산(220)은 이행되는 스마트 계약(206)의 특정한 조건에 따라 지급되는 디지털 자산의 금액이다. 즉, 어떤 특정한 조건이 이행되는지에 따라, 디지털 자산의 금액은 변할 수 있다. 예를 들면, 제1 조건이 이행된 조건인 경우, 10 단위의 디지털 자산이 특정한 엔티티에 지급될 수도 있고, 반면, 제2 조건이 이행된 조건인 경우, 2 단위의 디지털 자산이 동일한 또는 상이한 엔티티에게 지급될 수도 있다.
상기에서 언급되는 바와 같이, 몇몇 실시형태에서, 분배(222)는, 답변(214)을 제공하는 데 참가하는 것에 동의하는 멤버(204A-04M)에게 대응 당사자(202A-02N) 중 하나 이상에 의해 분배로서 제공되는 디지털 자산의 금액이다. 몇몇 실시형태에서, 분배(222)는 제3 당사자에 의해 제공된다.
본 개시에서, 모든 참가자는 서로를 인증할 수 있고 보안 통신 채널을 통해 서로 통신할 수 있다는 것이 가정된다. 한 실시형태에서, 공개 키 암호화 시스템 또는 Diffie-Hellman(디피-헬먼) 키 교환 프로토콜을 사용하여 보안 통신이 달성될 수 있다. 한 실시형태에서, 스킴에서의 각각의 참가자는, 적어도 소정 레벨의 엔트로피를 갖는 암호화적으로 안전한 의사 난수 생성기(cryptographically secure pseudorandom number generators; CSPRNG)로부터 유도되는 비밀 값(개인 키)을 생성할 필요가 있다. 한 실시형태에서, 비트코인 프로토콜과의 호환성을 유지하기 위해, 이들 값은 256 비트 수이다.
한 실시형태에서, 타원 곡선 연산의 사용을 통해 소정의 기능성(functionality)이 촉진된다. 한 실시형태에서, 타원 곡선(elliptic curve; EC) 동작은, 공개 키 생성, 서명 생성, 및 서명 검증을 수행하기 위해 비트코인 프로토콜에서 현재 사용되는 Secp256k1 곡선에 의해 정의되는 파라미터를 사용하여 수행된다. 곡선 파라미터 외에도, Secp256k1 표준은 생성기 포인트 G 및 그것의 순서 p를 명시한다. 달리 명시되지 않는 한, 실시형태에서, 본 개시에서 설명되는 알고리즘에서의 동작은 모듈로 p(modulo p)를 통해 수행된다. 또한, 비록 본 개시의 소정의 실시형태가 비트코인 블록체인과 관련하여 제시되지만, 개념은 타원 곡선 서명 스킴을 활용하는 임의의 암호 화폐 블록체인에도 또한 적용 가능하다는 것이 고려된다는 것을 유의한다.
한 실시형태에서, 주 계약에 대한 대응 당사자(Ci) 및 Schelling(셸링) 조정 게임과 같은 조정 알고리즘에 기여하는 멤버(Pi)인, 참가자의 두 개의 별개의 그룹이 수반된다. 예를 들면, 셸링 조정 게임은, 두 명 이상의 개인이 서로 통신하지 않고도 동일한 솔루션("초점" 또는 "셸링 포인트"로 또한 칭해짐)에 도달하는 경향이 있는 조정 게임이다. 이러한 방식으로, 멤버는 주요 연락처의 결과를 결정하기 위해 정확한 입력을 제공하는 분산 그룹 오라클(distributed group oracle)로서 기능한다. 실시형태에서, 대응 당사자(202A-02N)는 계약의 제어 하에 있는 자금(fund)을 가지며, 분배(222)를 별개의 블록체인 트랜잭션에 있는 멤버에게 일괄적으로 제공한다. 그러나, 조정 알고리즘이 임계 수의 멤버에 의해 제출되는 것과 동일한 답변을 제출하는 멤버에게 분배를 제공하기 때문에, 답변은 반드시 정확하지는 않지만 그러나 다른 멤버가 제출할 것이라고 개개의 멤버가 생각하는 답변을 반영할 수도 있다는 것을 유의한다.
또한 실시형태에서, 멤버는 별개의 블록체인 트랜잭션에서 보증금(security deposit)을 커밋하는데, 그 보증금은 멤버가 그들의 답변을 제출한 이후 환불될 수 있고, 그들의 답변이 합의 답변과 매치하는 경우 분배 또는 분배의 일부를 잠재적으로 획득할 수 있다. 그들의 답변이 합의 답변이 아닌 경우, 멤버는 그들의 예치금을 되돌려 받을 수도 있지만 그러나 분배(222) 또는 분배(222)의 일부를 수령할 수 없을 수도 있거나, 또는 합의 답변을 제출한 멤버에 의해 수신되는 것보다 더 작은 부분을 수령할 수도 있다.
계약 셋업
한 실시형태에서, 주 계약("대응 당사자 계약"으로 또한 칭해짐)은, 다음의 방식으로, 연결된 조정 알고리즘(예컨대, 셸링 조정 게임)으로서 구현될 수 있다: 다수(n)의 대응 당사자(202A-02N)(C1, C2..., Cn)가, 수반되는 자금을 비롯하여, 계약의 이용 약관(terms and conditions)에 동의한다. 이 단계에서, 동의는 비공식적일 수도 있으며, 자금은 트랜잭션이 서명될 때까지 커밋될 필요가 없다는 것을 유의한다. 이 단계에서의 계약의 일반적인 구조는 하기의 표 1에 나타내어진다.
표 1:
한 실시형태에서, 제1 조건의 이행시, 대응 당사자(202A-02N)는 결과에서 명시되는 바와 같은 디지털 자산(DA)의 일정 금액(X)을 수령한다. 실시형태에서, 조건(결과)은 모호하지 않게 명시되어야만 하고 상호 배타적이어야만 한다는 것을 유의한다. 게다가, 한 실시형태에서, 각각의 조건(i)에 대한 금액 의 합은 또한, (임의의 트랜잭션 채굴 금액을 뺀) 계약에 지급될 자금과 동일하다. 또한, 몇몇 실시형태에서, 타임아웃 기간 이후에 프로토콜이 실패하는 경우 자금에 어떤 일이 발생해야 하는지를 명시하기 위해, 타임아웃 조건이 추가된다. 한 실시형태에서, 각각의 대응 당사자(Cj)는 공개 키(PKCj)를 갖는다.
도 3은 본 개시의 예시적인 실시형태(300)를 예시한다. 구체적으로, 도 3은, 본 개시의 예시적인 실시형태(300)에 대한 공개 키 셋업 프로세스의 하이 레벨의 개략도를 묘사한다. 예시적인 실시형태(300)는, 계약(306)에 동의하였고 계약에서의 조건에 결과를 제공할 것을 다수의 멤버(304)에 대해 요청(308)을 행한 대응 당사자(302)를 포함한다. 알 수 있는 바와 같이, 요청(308)은 계약 조건의 정의(Def), 공급된 분배(F), 필요로 되는 멤버 수(N), 멤버당 필요로 되는 보증금의 금액(D), 필수 임계치(M), 고스트 체인 블록 간격(ghost chain block interval)(ΔT) 및 커미트먼트(commitment) 블록 높이(hB)와 같은 관련 정보를 포함할 수 있다. 스마트 계약 트랜잭션(330)에 의해 제어되는 대응 당사자의 식별자 및 디지털 자산의 분배는, 그룹 멤버 투표에 영향을 끼치지 않도록 요청(308)이 없을 수도/보류될 수도 있다.
예시적인 실시형태(300)에서, 대응 당사자는 또한 계약 공개 키(contract public key)(316)를 생성한다. 실시형태에서, 대응 당사자(302)는 (예를 들면, 전자 메일 및/또는 다른 전자 통신을 통해) 서로 통신할 수 있고, 대응 당사자(302) 중 적어도 하나는, 예컨대 포털, 온라인 장터(online marketplace), 웹로그, 피어 투 피어 커뮤니케이션, 또는 몇몇 다른 커뮤니케이션 포럼을 통해 멤버(304)와 통신할 수 있다. 한 실시형태에서, 충분한(적어도, 요청(308)에서 대응 당사자(302)에 의해 명시되는 수와 동일한) 멤버가 그룹의 일부가 되려는 동의를 시그널링한 이후의 시간에, 멤버(304)는 그룹 공개 키(312) 및 각각의 계약 조건/결과에 대응하는 공유된 공개 키(314)를 생성할 것을 동의한다. 예시적인 실시형태(309)에서, 멤버(304)는 그룹 공개 키(312) 및 공유된 공개 키(314)를 생성하기 위해 딜러가 없는 비밀 공유 스킴을 활용한다. 예시적인 실시형태(300)에서, 대응 당사자(302)에 의해 제공되는 계약 공개 키(316)의 값은 별개의 공개 키(314)와 결합되어, 계약 조건 공개 키(318)를 생성한다.
예시적인 실시형태(300)에서, 대응 당사자 트랜잭션(330)은, 계약 조건 공개 키(318) 중 하나에 대응하는 적절한 디지털 서명에 기초하여 결정되는 결과에 따라 대응 당사자(302) 중 하나 이상으로 분배한다. 마찬가지로, 예시적인 실시형태(300)에서, 조정 알고리즘 트랜잭션(332)은 당첨 결과(winning outcome)의 (조정 알고리즘을 통한) 결정시 분배 및 예치금을 멤버(304)에게 양도한다.
다음의 것은 상기의 계약 셋업의 예시적인 사용 사례이다. 예시적인 사용 사례에서, 보험 계약은, 두 명의 대응 당사자(302), 클라이언트(C1)와 보험사(C2) 사이에서 생성된다. 클라이언트는, 이 예에서, 2018년 4월 동안의 임의의 시간에 자신의 포도밭에서의 혹한(hard frost)의 가능성에 대해 보험에 들기를 원한다. 이 예에서, 혹한은 "2018년 4월 한 달 동안 Surrey(서리) 카운티에서 기온이 -4 ℃ 미만으로 유지되는 적어도 4 시간의 임의의 연속하는 기간"으로서 모호하지 않게 정의된다. 예에서, 보험사는, 클라이언트로부터의 2 DA의 보험료를 대가로, 혹한의 경우에 10 DA를 지급할 정책에 동의한다. 따라서, 보험사는 계약에 10 DA를 커밋하고 클라이언트는 계약에 2 DA를 커밋한다. 결과적으로, 계약은, 하기의 표 2에서 나타내어지는 바와 같이, 총 12 DA(보험사 예치금 및 보험료)를 제어한다.
표 2:
따라서, 혹한이 발생하면, 클라이언트는 10 DA를 수령하고 보험사는 2 DA를 수령한다. 다른 한편, 혹한이 발생하지 않으면, 클라이언트는 자금을 수령하지 못하고, 한편 보험사는 원래 10 DA에 2 DA 보험료를 더한 총 12 DA를 되찾는다. 조건이 모호하지 않게 검증되지 않고 타임아웃 조건이 발생하는 경우, 클라이언트는 2 DA 보험료를 환불받고 마찬가지로 보험사는 10 DA 지급금을 환불받는다. 이벤트에 대한 모호성이 없으면 타임아웃 조건이 중복되어야 한다는 것을 유의한다; 타임아웃은, 프로토콜이 결정을 제공하는 데 실패하면, 자금이 손실되는 것을 방지하기 위해 존재하고, 이 예에서는 단지 각각의 당사자에게 환불을 발행한다. 또한, 실시형태에서, 대응 당사자는 또한 계약의 실행을 위한 분배 및 이 분배를 누가 지급할 것인지에 동의한다는 것을 유의한다; 분배를 위해 선택되는 금액은 필요로 되는 보안 및 조건의 성질(nature)에 의존할 수 있다.
실시형태에서, 대응 당사자 중 하나(또는 그들의 이익을 위하여 작용하는 제3 당사자/서비스)는, 계약 조건의 정의(Def), 공급된 분배(F), 필요로 되는 멤버의 수(N), 멤버당 필요로 되는 보증금의 금액(D), 필수 임계치(M), 고스트 체인 블록 간격(ΔT) 및 커미트먼트 블록 높이(hB)를 명시하는 요청을 오픈 마켓(open marketplace)(또는 공개 포럼)에 게시한다. 실시형태에서, 고스트 체인 블록 간격은, 블록이 고스트 체인 블록체인에 커밋되는 빈도를 가리킨다. 또한 실시형태에서, 커미트먼트 블록 높이는 고스트 체인에서의 블록의 수를 가리킨다.
따라서, 상기의 예시적인 사용 사례에서, 보험사는 0.2 DA의 분배를 제공하며 10 명의 멤버의 그룹에게 다음의 두 개의 결과 중 하나를 제출할 것을 요구한다:
1. 결과 #1: "2018년 4월 한 달 동안, 영국 Surrey(서리) 카운티의 임의의 곳에서 기온이 적어도 4 시간 동안 연속적으로 -4 ℃ 미만으로 유지됨".
2. 결과 2: "[조건 1을 제외한 몇몇 다른 결과]"
예시적인 사용 사례에서, 보험사 및 클라이언트는 6의 임계치에 동의한다. 즉, 10 명의 멤버 중 적어도 6 명에 의한 동의가 상기의 조건 중 어떤 것이 이행되는지를 지시할 것이다. 이 예에서, 멤버는 각각 0.1 DA의 예치금을 제출할 필요가 있다. 결과적으로, 이용 가능한 멤버는 결과 정의를 볼 수 있고, 조건을 평가하는 능력(예를 들면, 그들은 필수 정보에 직접적으로 또는 간접적으로[즉, 뉴스/인터넷을 통해] 액세스할 수 있음), 잠재적 상금(F) 및 필수 예치금에 기초하여 그들이 참가하기를 소망하는지를 결정할 수 있다. 멤버는 대응 당사자에게 그들의 수락을 전달하고, 예치금을 포함하는 인증된 UTXO, 및 통신을 위한 공개 어드레스를 포함한다.
충분한 수의 멤버(Pi)가 그들의 요청 수락을 시그널링한 경우, 한 실시형태에서, 대응 당사자는 그들의 통신 어드레스를 멤버의 그룹에게 분배한다. 실시형태에서, 멤버 및 대응 당사자는, 그 다음, 서로와의 안전한 피어 투 피어 통신 채널을 확립할 수 있다. 실시형태에서, 멤버의 그룹은 임계치(M)를 가지고 딜러가 없는 비밀 공유 프로토콜을 실행하여, 계약 조건/결과(IPKi)의 각각에 대한 그룹 공개 키(group public key; GPK) 및 별개의 공개 키(및 관련된 개개의 키 지분)를 생성하고, 이들 공개 키는 대응 당사자에게 전송된다.
실시형태에서, 멤버는, 각각의 멤버가 (아직 알려 지지 않은) 비밀 키의 지분을 가지도록 비밀 키를 공유하는 방법을 사용한다. 비밀 키 그 자체는 임계 수의 지분으로부터 계산될 수 있다(임계치가 멤버의 수 이하인 경우). 따라서, 비록 비밀 키가 임의의 단일의 당사자에게 알려지지 않더라도, 멤버의 그룹은, 보안 다자간 계산(secure multiparty computation)을 통해 아직 알려지지 않은 비밀 키에 대응하는 타원 공개 키를 결정할 수 있다. 이러한 방식으로, 블록체인 출력은 신뢰할 수 없는 방식으로 공유된 그룹 키의 제어 하에 놓일 수 있고, 개인 키는 임계 수의 멤버의 협업을 통해 결정될 수 있다(또는 서명이 생성될 수 있다).
몇몇 실시형태에서, 이 목적을 위해 샤미르의 비밀 공유 스킴(Shamir's Secret Sharing scheme; SSSS)이 사용된다. SSSS는 t 차 다항식이 t + 1(임계) 포인트의 임의의 세트로 적합될 수 있다는 개념에 기초한다. t 차 다항식 f(x)는, 공유된 개인 키를 상수 항(a0 = f(0))으로 하여 형성되고 나머지 계수는 랜덤하게 선택된다. 그룹 내의 멤버의 수와 동일한 곡선 상의 포인트의 수가 각각의 멤버에게 제공된다. 자신의 포인트를 결합하는 멤버의 수가 (t + 1) 이상이면, 이들 포인트에 t 차 다항식을 적합시키기에 충분한 정보가 존재하며, a0가 비밀로 공개된다. 실시형태에서, 이 스킴은, 임의의 임계치를 갖는 임의적을 큰 수의 멤버 사이에서 단일의 개인 키의 공유를 가능하게 한다.
표준 SSSS는, 다항식을 생성하고 비밀 지분을 분배하기 위한 신뢰된 딜러의 요건을 제거하도록 확장될 수 있는데, 이것은 신뢰된 딜러에 대한 의존성을 제거한다. 이 딜러가 없는 SSSS에서, 각각의 멤버(Pi)는 그들 고유의 랜덤한 t 차 다항식 fi(x)를 생성하고, 그 다음 fi(j)를 각각의 다른 참가자(Pj)에게 안전하게 전송한다. 그 다음, 각각의 Pi는 모든 수신된 포인트를 합산하여 그들의 비밀 지분(si = f(i))을 획득하는데, 이것은 공유된 다항식 f(x) 상의 Pi 포인트이다.
비밀 지분이 생성된 이후, (어떤 멤버도 아직 알지 못하는) 공유된 개인 키에 대응하는 공개 키(A)는, 타원 곡선 생성기(G)를 사용하여 다음과 같이 계산된다. 참가자(Pi)(i = 1,..., t + 1)는 그들의 공개 키 지분을 bisi×G로서 계산하는데, 여기서
이들 공개 키 지분은, 그 다음, 모든 멤버에게 브로드캐스트되고, 공유된 공개 키 A는, 그 다음, t + 1 개의 지분의 합으로서 간단하게 계산된다:
타원 곡선 암호화(elliptic curve cryptography; ECC)의 산술적 속성이 본 개시에서 활용된다는 것을 유의한다. ECC 연산은 순서 p의 생성기 포인트 G를 사용하여 정의될 수 있다. 일단 랜덤 개인 키(a)가 (1과 p 사이에서) 선택되면, 공개 키(A)는 포인트 곱셈(point multiplication)에 의해 유도될 수 있다:
더구나, 포인트 곱셈의 기본 속성에 기인하여:
여기서 r은 넌스(nonce)일 수 있다. 실시형태에서, 이 속성은 타원 곡선 서명에 대한 랜덤 블라인딩 넌스(random blinding nonce)를 활용하기 위해 사용될 수 있다. 또한, 본 개시에서, 타원 곡선 디지털 서명 알고리즘 스킴은, 전체 개인 키(full private key)를 재구성하지 않고도 키 지분의 임계치를 사용하여 그룹이 트랜잭션에 일괄적으로 서명하는 것을 가능하게 하기 위해, 다양한 실시형태에서 사용된다.
상기에서 설명되는 예시적인 사용 사례를 사용하여 더 진행하기 위해, 10 명의 멤버의 그룹은 딜러가 없는 SSSS 프로토콜을 일괄적으로 세 번(상기에서 동의되는 바와 같이, 6의 임계치를 가짐) 실행한다. 10 명의 멤버의 그룹은 그룹 공개 키(GPK) 및 두 개의 결과 공개 키(IPK1 및 IPK2)를 생성한다. 결과적으로, 각각의 멤버(j)는, 그 다음, 3 개의 비밀 키 지분(GPrivj, )을 소유한다. 그룹 공개 키는 또한, 멤버(304)가 그들의 예치금을 전송할 블록체인 어드레스를 결정하는 것을 가능하게 한다.
한 실시형태에서, 대응 당사자(302)는, 그 다음, 랜덤 블라인딩 넌스(RB)에 동의한다. 본 실시형태에서, 선택되는 값은 모든 대응 당사자에 의해 저장되지만 그러나 멤버 그룹으로부터 비밀로 유지된다. 한 실시형태에서, 대응 당사자는, 그 다음, RB에 대한 대응하는 타원 곡선 공개 키를 계산한다:
그 다음, PKR의 값은 계약 조건 공개 키의 각각에 추가된다:
따라서, 예에서, 대응 당사자(302)는 계약 조건 공개 키(318), , 및 등등을 계산한다. 이러한 방식으로, 공개 키(314)는 랜덤 블라인딩 넌스(RB)의 사용에 기인하여 난독화되고, 그 결과, 멤버(304)와 같은, 대응 당사자(302) 이외의 다른 엔티티가, 대응 당사자 트랜잭션(330)에서 사용되는 계약 조건 공개 키(318) 중 임의의 것을, 멤버(304)가 생성한 별개의 공개 키(314)에 연결할 가능성이 극도로 낮을 것이다. 이러한 방식으로, 대응 당사자 트랜잭션(330)(및 그것이 포함하는 금액)은 익명으로 유지되고, 멤버(304)에 의해 이루어지는 결정은 계약 트랜잭션의 세부 사항의 지식(예를 들면, 위험에 처한 디지털 자산의 금액, 등등)에 의해 영향을 받게 되는 것으로부터 격리된다.
예에서, 대응 당사자(302)의 동의에 의해 두 개의 트랜잭션: 대응 당사자 트랜잭션(330)(TxC) 및 조정 알고리즘 트랜잭션(332)(TxS)이 생성된다. 한 실시형태에서, 대응 당사자 트랜잭션(330)은, 입력으로서, 트랜잭션 대응 당사자(302)로부터의 계약 자금을 갖는다. 또한 한 실시형태에서, 대응 당사자 트랜잭션(330)은 계약 결과(예를 들면, 의 각각의 고유 값)에 따라 대응 당사자(302) 중 하나 또는 둘 모두에 지급 가능한 각각의 금액에 대한 별개의 출력을 갖는다. 따라서, 이들 UTXO의 각각은, 조건 및 타임아웃 조건에 의존하여 각각의 대응 당사자에게 분배된다. 또한, 몇몇 예에서, 출력은 대응 당사자(302)의 멤버가 아닌 제3 당사자에게 지급하도록 구성될 수 있다는 것을 유의해야만 한다. 몇몇 실시형태에서, 출력 제약은 2 중 2 다중 서명 함수(2-of-2 multi-signature function)로서 구현된다.
예시적인 사용 사례에 대한 대응 당사자 트랜잭션(320)의 조건의 예는 표 3에서 볼 수 있다.
표 3:
예시적인 사용 사례에 대한 스크립트는 표 4에서 볼 수 있다.
표 4:
한 실시형태에서, 조정 알고리즘 트랜잭션(332)은, 입력으로서, 멤버 예치금의 각각으로부터의 N 개의 UTXO 및 대응 당사자로부터의 분배를 구성하는 UTXO를 갖는다. 몇몇 실시형태에서, 두 개의 UTXO가 존재한다: 도 4의 컨텍스트에서 설명되는 바와 같이, 예치금을 포함하는 그룹 공개 키(GPK)로부터의 서명을 사용하여 잠금 해제될 수 있는 하나 및 GPK로부터의 서명을 사용하여 또는 타임아웃 이후에 대응 당사자 서명에 의해 또한 잠금 해제될 수 있는 분배를 포함하는 다른 하나.
실시형태에서, GPriv를 명시적으로 결정하지 않고도 그룹 개인 키(GPriv)에 대응하는 서명을 생성하기 위해 임계 수의 그룹 멤버가 협력할 수 있다. 실시형태에서, 서명은 GPriv로부터 직접적으로 생성되는 서명과 구별 불가능할 것이지만, 그러나, 실제로는 임계 서명 스킴을 통해 개인 키 지분(GPrivj)으로부터 직접적으로 생성될 것이다. 이러한 방식으로, GPriv는 임의의 포인트에서 결정될 필요가 없지만, 그러나 그것에 대응하는 서명은 임계 수의 개인 키 지분(GPrivj)으로부터 결정될 수 있다.
이들 실시형태에서, 그룹 멤버의 임계치는 제1 UTXO(예치금)를 양도하는 것에 동의한다(그리고 공동으로 서명을 생성한다). 이들 실시형태에서, 임계 수의 그룹 멤버는 분배를 청구하기 위한 서명을 생성하기 위해 또한 협력할 수 있지만, 그러나, 결과 개인 키 중 하나에 대응하는 추가적인 서명을 생성할 수 있다. 그러한 실시형태에서, 그룹 멤버가 합의에 도달하는 것에 의해 결과 개인 키 중 하나를 재구성할 수 없다면, 그들은 분배를 청구할 수 없고, 분배는 타임아웃 이후에 대응 당사자(들)로 리턴될 것이다.
몇몇 실시형태에서, 그룹 멤버는, 전체 개인 키를 재구성하지 않고도 그들의 개인 키 지분(GPrivj)의 임계치가 임의의 시간에 (예를 들면, 딜러가 없는 비밀 공유 프로토콜의 일부로서) (GPK)에 대응하는 유효한 서명을 생성할 것인지의 여부를 체크할 수 있을 수도 있다는 것을 유의한다. 그러한 실시형태에서, 임계 수의 그룹 멤버는 또한 임의의 시간에 예치금을 회수할 수 있을 수도 있지만, 그러나 당첨 결과 키(winning outcome key)를 또한 생성함에 있어서 그들이 그들의 역할을 수행하지 않았다면 분배를 상실할 것이다. 예시적인 사용 사례에 대한 조정 알고리즘 트랜잭션(332)의 입력 및 출력의 예는 표 5에서 볼 수 있다.
표 5:
한 실시형태에서, 조정 알고리즘 트랜잭션(332)은 분배를 제공하는 대응 당사자(302)에 의해 서명되고, 그 다음, 멤버 그룹으로 전송되어 멤버(304)의 각각에 의해 차례로 서명된다. 실시형태에서, 일단 각각의 입력이 서명되면, 조정 알고리즘 트랜잭션(332)은 블록체인 네트워크로 브로드캐스트된다. 몇몇 실시형태에서, 조정 알고리즘 트랜잭션(332)이 서명될 때까지, 임의의 참가자는 프로토콜을 종료할 수 있고(또는 협력하지 못할 수 있고) 어떠한 자금도 위험에 처하지 않는다는 것을 유의한다. 한 실시형태에서, 일단 조정 알고리즘 트랜잭션(332)이 블록체인 상에서 확인되면, 각각의 대응 당사자는, 그 다음, 대응 당사자 트랜잭션(330)에 그들 각각의 입력을 서명하고 그것을 블록체인 네트워크로 브로드캐스트한다. 실시형태에서, 일단 대응 당사자 트랜잭션(330)이 블록체인에서 확인되면, 대응 당사자 계약은 활성일 수도 있다.
계약 실행
한 실시형태에서, 대응 당사자 트랜잭션(330)이 확인된 이후, 멤버(304)는, 요청(308)의 조건/아이템에서 명시되는 시간 기간이 만료된 이후까지, 대기한다. 한 실시형태에서, 멤버(304)는, 그 다음, 고스트 체인과 같은 별개의 블록체인을 활용하여 그들의 투표를 기록한다. 몇몇 예에서, "고스트 체인"은, 예치금이 그룹 키(GPK)를 통해 조정 알고리즘 트랜잭션에 커밋되는 멤버의 그룹에 의해 채굴되는 지분 증명 블록체인을 가리킨다. 즉, 작업을 수행하는 것에 대해 수여되는 분배에 관심이 있는 채굴 노드에 의해 트랜잭션이 유효성이 확인되는 작업 증명 기반의 블록체인(proof-of-work based blockchain)(예를 들면, 비트코인)과는 달리, 고스트 체인 지분 증명 블록체인에서, 참가자는 고스트 체인에서 이루어지는 예치금(예를 들면, 그들 자신의 디지털 자산의 어떤 금액의 그들의 "보유분(stake)")을 회수하는 데 관심이 있을 수도 있다.
전통적인 블록체인과는 대조적으로, 고스트 체인은, 하나 이상의 기준, 목표 또는 지정된 목적의 수행 또는 만족시, 종료하도록, 사라지도록, 및/또는 만료되도록 구성될 수 있다. 즉, 몇몇 실시형태에서, 고스트 체인은 일단 자신의 목적이 달성되면 더 이상 사용되지 않는 단일 목적의 블록체인이다. 몇몇 실시형태에서, 고스트 체인은 초기 블록("최초(genesis) 블록"으로 또한 칭해짐)을 포함하는데, 이것은 고스트 체인이 자신의 목적, 기준, 또는 목표를 위해 전개 또는 생성될 때 생성된다.
몇몇 실시형태에서, 고스트 체인에 의해 활용되는 지분 증명 합의 알고리즘은, 규칙적인 블록 시간, 타임스탬프가 부가된 블록 및 낮은 포킹(forking) 확률의 속성을 가질 수 있다. 몇몇 실시형태에서, 블록 분배("채굴 금액")는 미리 결정된 레이트에서 분배(F)로부터 지급된다. 몇몇 실시형태에서, 채굴 분배는 유효성 확인용 블록의 무시 가능한 비용에 기인하여 인해 낮을 수 있다. 몇몇 실시형태에서, 충분한 스크립팅 성능 및 블록체인 인식의 단일의 지급 검증(single payment verification; SPV) 증명이 주어지면, 조정 알고리즘은 조정 알고리즘 트랜잭션을 갖는 블록체인(즉, 고스트 체인 대신)에 대해 전적으로 플레이될 수 있다는 것을 유의한다. 그러한 블록체인 플랫폼의 예는 이더리움이다.
한 실시형태에서, 고스트 체인 블록은 ΔT의 간격을 가지고 생성되는데, 이것은, 몇몇 경우에, 요청에서 명시된다. 몇몇 실시형태에서, ΔT의 값은, 계약의 결의(resolution)의 소망되는 속도 및 멤버(304)로부터의 소망되는 응답 시간에 기초하여 선택된다. 한 실시형태에서, 멤버(304)의 각각은 대응 당사자 계약에 의해 추구되는 결과의 결정에 도달한다. 상기에서 주어지는 예시적인 사용 사례를 사용하여, 멤버(304)의 각각은 2018년 4월 한 달 동안 혹한이 발생하였는지의 여부의 결정을 행한다. 모든 멤버(304)가 동일한 결정에 도달하지 않을 수도 있는 가능성을 허용하면(예를 들면, 멤버 중 일부가 부정확한 정보를 가질 수 있거나 또는 실수로 또는 의도적으로 잘못된 답변을 제출할 수 있음), 결정이 결과로서 수락되기 위해서는, 멤버(304)의 임계치(M)만이 동일한 결정에 도달할 필요가 있다.
도 4는 본 개시의 예시적인 실시형태(400)를 예시한다. 구체적으로, 도 4는 본 개시의 실시형태의 스마트 계약 셋업의 하이 레벨 개략도를 묘사한다. 알 수 있는 바와 같이, 도 4는 간격을 두고 고스트 체인(434)에 커밋되는 트랜잭션(438)을 포함한다. 몇몇 실시형태에서, 고스트 체인(434)은 조정 알고리즘에서 투표를 기록하기 위해 생성되는 일시적인 지분 증명 사이드체인(proof-of-stake sidechain)일 수도 있다. 몇몇 실시형태에서, 트랜잭션(438)은 고스트 체인(434)의 블록으로 채굴되는 블록체인 트랜잭션이다. 몇몇 실시형태에서, 각각의 연속적인 블록은, 고스트 체인에서 이전 블록의 암호화 해시인 해시(436)를 포함한다. 해시(436)는 고스트 체인(434)에서 블록을 연결한다.
실시형태에서, 커미트먼트 스킴은, 특정한 값을 다른 사람에게 숨겨지게 유지하면서, 멤버가 그 값으로 미리 커밋하는 것을 가능하게 한다. 일단 값이 커밋되면, 그것은 나중의 단계에서 공개될 수 있다. 이러한 방식으로, 그룹의 멤버는 그들이 어떤 값으로 커밋한 이후에는 그 값을 변경할 수 없지만, 그 값은 다른 멤버에게는 공개되지 않고, 이러한 방식으로, 보안 투표 프로토콜로서 사용될 수 있다.
일반적으로, 커미트먼트 스킴은 두 가지 단계: 멤버에 의해 값이 선택되고 커밋되는 커밋 단계, 및 값이 멤버에 의해 공개되고 커밋과 일치하는 것으로 확인되는 공개 단계(reveal phase)에서 발생할 수 있다. 일반적으로, 보안 커미트먼트 스킴은, 커밋 단계 이후 커밋된 값에 대한 임의의 정보가 공개되는 것을 방지하기 위해 랜덤 블라인딩 넌스에 의존할 수도 있다. 그러나, 본 개시에서, 커밋된 값은 이미 랜덤하게 생성된 키일 수도 있다. 결과적으로, 커미트먼트 프로토콜은 보안 해시 함수를 간단하게 활용하는 것으로 감소될 수 있다.
따라서, 본 개시의 익명의 투표 프로토콜에서: 커밋 단계에서, 각각의 멤버는 그들이 커밋하려고 소망하는 값을 해시(예를 들면, SHA256을 사용하여) 해싱하고(hash) 그 해시를 그룹에 공개하고, 공개 단계에서, 각각의 멤버는, 그 다음, 해시 사전 이미지(hash pre-image)(커밋된 값)를 그룹에 공개하고 그룹은 각각의 해시를 검증한다. 이런 식으로, 그룹은, 그룹의 나머지 중 임의의 것이 투표하고 있는 방식을 미리 알지 않고도, 투표에 커밋될 수 있다.
따라서, 한 실시형태에서, 요청에서 명시되는 블록 높이(hB)에서, 멤버(예를 들면, 도 3의 멤버(304))의 각각은, 그들이 개별적으로 결정한 계약 결과에 대응하는 조건/아이템 공개 키의 개인 키 지분(i 번째 조건에 대한 멤버 j의 개인 키 지분())에 커밋(424)을 제출한다. 한 실시형태에서, 각각의 멤버는 그들 각각의 커밋(424)에 서명하고 커밋은 고스트 체인으로 채굴된다. 실시형태에서, 각각의 커밋은, 결정되는 결과에 대응하는 각각의 멤버의 개인 키 지분의 간단한 해시(예를 들면, 보안 해시 알고리즘(Secure Hash Algorithm; SHA) 256)일 수 있고; 개인 키 지분을 해싱하는 것에 의해, 각각의 멤버의 투표는, 하기에서 설명되는 공개 단계까지, 비밀로 유지된다. 이러한 방식으로, 한 멤버의 투표가 다른 멤버의 투표에 영향을 끼치는 위험성이 최소화된다.
한 실시형태에서, 각각의 멤버는, 그 다음, 그들이 커밋한 키 지분(426)을 ()로 제출하는데, 이것은 그 다음 블록(hB + 1)으로 채굴된다. 몇몇 실시형태에서, 각각의 그룹 멤버에 의해 유지되는 키 지분(426)은, 전체 개인 키의, 예컨대 상기에서 설명되는 비밀 공유 스킴에 따라 결정되는, 지분이다. 그러한 비밀 공유 스킴에서, 적어도 임계 수의 키 지분(426)을 획득하는 것은 전체 개인 키(428)가 수학적으로 결정되는 것을 허용할 수 있다. 한 실시형태에서, 일단 이 블록이 유효성이 확인되면, 임계치의 멤버가 하나의 특정한 결과에 대응하는 키 지분을 제출한 경우, 당첨 결과 공개 키(winning outcome public key)(IPKw)(예를 들면, 도 3의 별개의 공개 키(314) 중 하나)에 대응하는 당첨 전체 개인 키(winning full private key)(428)(IPrivw)는 쉽게 결정될 수 있고 공개적으로 공개된다(w는 당첨 결과 인덱스(winning outcome index)임). 몇몇 실시형태에서, 당첨 전체 개인 키(428)는, 대응 당사자에게 전송되며 스마트 계약 트랜잭션 내에서 인코딩되는 당첨 공개 키(winning public key)(예를 들면, 별개의 공개 키(314) 중 하나)에 대한 대응부인 암호화 키이다.
예시적인 실시형태에서, 커밋 높이(hB)는 블록 x - 1이고, 커밋된 키 지분(426)(멤버 j에 대한 결과 개인 키의 지분)은 블록 x에서 공개된다. 공개 이후, 당첨 개인 키 지분의 임계 수는 당첨 전체 개인 키(428)가 결정되는 것을 가능하게 한다.
도 5는 본 개시의 예시적인 실시형태(500)를 예시한다. 구체적으로, 도 5는 도 4에 따라 결과가 결정된 이후 도 3의 스마트 계약 셋업의 실행의 하이 레벨 개략도를 묘사한다. 예시적인 실시형태(500)는, 대응 당사자 트랜잭션(530A)을 잠금 해제하는 결과 트랜잭션(530B)에 서명하는 것에 의해 당첨 전체 개인 키(528)와 관련되는 결과에 따라 디지털 자산(520)의 금액을 징수하는 대응 당사자(502)를 포함한다. 예시적인 실시형태(500)는, 당첨 전체 개인 키(528)를 대응 당사자(502)에게 제공하기 위한 분배로서 조정 알고리즘 트랜잭션(532A)을 잠금 해제하는 분배 트랜잭션(532B)에 서명하는 것에 의해 출력(522)을 통해 분배(들) 및 예치금을 징수하는 그룹의 멤버(504)를 더 포함한다.
몇몇 실시형태에서, 대응 당사자(502)는 도 2의 대응 당사자(202)와 유사하다. 몇몇 실시형태에서, 멤버(504)는 도 2의 멤버(204)와 유사하다. 몇몇 실시형태에서, 서명(518A)은, 각각이 그들의 분배 및 예치금을 수령하기 위한 멤버(504)의 집합적인 디지털 서명이다. 몇몇 실시형태에서, 서명(518B)은 대응 당사자의 디지털 서명 및 당첨 전체 개인 키(528) 및 랜덤 블라인딩 넌스(516)를 조합하는 것에 의해 형성되는, 완전한 결과 서명용 키(526)를 사용하여 생성되는 디지털 서명이다.
몇몇 실시형태에서, 당첨 전체 개인 키(528)는 도 4의 당첨 전체 개인 키(428)와 유사하다. 몇몇 실시형태에서, 랜덤 블라인딩 넌스(516)는 계약 조건 공개 키를 난독화하기 위해 도 6의 612에서 생성되는 넌스와 동일하다. 몇몇 실시형태에서, 완전한 결과 서명용 키(526)는 타원 곡선 연산을 사용하여 랜덤 블라인딩 넌스(516)와 결합되는 당첨 전체 개인 키(428)이고, 그 결과, 완전한 결과 서명용 키(526)를, 대응 당사자 트랜잭션(530A) 잠금용 스크립트에서의 스마트 계약에서의 그것의 대응부 계약 조건 공개 키에 매치시키는 것에 의해 스마트 계약의 결과가 결정될 수 있다.
몇몇 실시형태에서, 디지털 자산(520)은, 서명(518B)의 유효성 확인시 대응 당사자 트랜잭션(530)에서 미리 잠기는(locked) 디지털 자산의, 스마트 계약의 당첨 결과에 따른 분배이다. 몇몇 실시형태에서, 출력(522)은 서명(518A)의 유효성 확인시 멤버(504)에게 지급 가능한 적어도 하나의 조정 알고리즘 트랜잭션에서 미리 잠기는 디지털 자산을 반영한다. 몇몇 실시형태에서, 대응 당사자 트랜잭션(530A)은, 도 2의 스마트 계약(206)과 같은 스마트 계약을 포함하는, 도 3의 대응 당사자 트랜잭션(330)과 유사한 블록체인 트랜잭션이다. 몇몇 실시형태에서, 결과 트랜잭션(530B)은, 스마트 계약의 결정된 결과에 따른 대응 당사자 트랜잭션(530A)의 적절한 디지털 자산을 상환/청구하기 위해 생성되는 블록체인 트랜잭션이다.
몇몇 실시형태에서, 조정 알고리즘 트랜잭션(532A)은, 멤버(504)의 분배 및 예치금(522)을 포함하는, 도 3의 조정 알고리즘 트랜잭션(332)과 유사한 블록체인 트랜잭션이다. 몇몇 실시형태에서, 분배 트랜잭션(532B)는, 멤버의 예치금 및 분배를 청구하기 위해 멤버(504)에 의해 생성되는 블록체인 트랜잭션이다. 도 4에서의 당첨 전체 개인 키(428)를 결정하는 것의 결과로서, 당첨 개인 키 지분으로 커밋되는 멤버는 결정 가능하다. 한 실시형태에서, 고스트 체인 합의 알고리즘은 "당첨(winning)" 멤버(즉, 합의를 가지고 투표한 멤버)를 식별하고, 분배 트랜잭션(532B)(TxF)은, (예를 들면, 임계치 서명 스킴을 통해) 임계치(m)의 멤버에 의해 GPK를 사용하여 서명되는 분배(F)를 당첨 멤버에게 지급하기 위해, 그룹에 의해, 그룹을 위해, 또는 그룹의 멤버에 의해 생성된다. 실시형태에서, 멤버는 분배 트랜잭션(532B)의 메타데이터에 당첨 전체 개인 키(428)를 임베딩한다.
몇몇 실시형태에서, 멤버의 예치금은 또한 분배 트랜잭션(532B)의 유효성을 확인하는 것의 결과로서 변상된다. 몇몇 실시형태에서, 멤버(504)의 예치금은 조정 알고리즘 트랜잭션(532A)과는 상이한 트랜잭션에 커밋된다. 그들 실시형태 중 일부에서, 환불 트랜잭션(TxD)은, 각각의 멤버의 예치금을 환불하기 위해, 그룹에 의해, 그룹을 위해, 또는 그룹의 멤버에 의해 생성된다. 몇몇 실시형태에서, 소정의 고스트 체인 합의 규칙을 어기는 멤버는 다른 멤버 사이에서 그들의 예치금을 분배되게 할 것이다. 실시형태에서, 분배 트랜잭션 및 환불 트랜잭션은, 그 다음, 블록체인 네트워크로 브로드캐스트된다.
예로서, 2018년 4월 동안 임의의 시간에 포도밭에서 혹한의 가능성에 대해서 클라이언트를 보호하기 위한 클라이언트 및 보험사가 보험 계약에 동의한 상기에서 설명되는 사용 사례를 사용하여, 멤버 그룹은 2018년 5월 1일, ΔT = 1일의 블록 생성 시간을 가지고, 고스트 체인을 인스턴스화한다. 사용 사례 예에서, hB는 5로 설정되고, 결과적으로, 5월 5일, 멤버(예를 들면, 도 3의 멤버(304))는 5월 5일에 그들의 서명된 커미트먼트(예를 들면, 커밋(424))를 제출한다. ΔT에 후속하여, 5월 6일에, 멤버의 각각은 키 지분(예를 들면, 426)을 제출하여 그들의 커미트먼트를 공개한다.
예시적인 사용 사례에서, 10 명의 멤버(504) 중 9 명은 IPK1의 그들의 지분을 커밋하였고, 멤버(504) 중 1 명은 IPK2의 그들의 지분을 커밋하였다(예를 들면, 동의하지 않는 멤버의 정보의 소스가 잘못되었다). 그 예에서, 멤버 그룹은 IPriv1이 커밋의 임계치(6)로부터 재구성될 수 있다는 것을 결정하고, 그 다음 어떤 멤버가 당첨 지분(9)에 커밋하였는지를 식별할 수 있다. 한 실시형태에서, 임계치의 멤버 그룹(당첨자(winner)의 서브세트)이, 그 다음, 9 명의 당첨자에게 분배를 지급하고 모든 멤버 예치금(수수료 및 예치금(522))을 반환하는 트랜잭션(532)를 생성하고 집합적으로 서명할 수 있다(서명(518A)).
대응 당사자 그룹
한 실시형태에서, 당첨 결과 공개 키(IPKw)에 대응하는 당첨 전체 개인 키(528)(예를 들면, 도 4의 당첨 전체 개인 키(428))(IPrivw)가 멤버 그룹에 의해 공개된다. 한 실시형태에서, 대응 당사자(502)(예를 들면, 도 3의 대응 당사자(302)), 또는 "당첨" 대응 당사자(들) 중 하나가 이 값에 랜덤 블라인딩 넌스(516)를 추가하여, 완전한 결과 서명용 키(526)를 획득한다:
실시형태에서, 그 다음, 이 값은, 당첨 결과에 대응하는 대응 당사자 트랜잭션(530)(예를 들면, 도 3의 대응 당사자 트랜잭션(330))의 출력(522)을 청구할 서명(518B)을 (그들 자신의 공개 키로부터의 서명과 함께) 생성하기 위해, "당첨" 대응 당사자(들)(502)에 의해 사용될 수 있다. 예시적인 사용 사례에서, 대응 당사자는, 혹한의 결과가 객관적으로 발생했다는 것을 멤버의 합의로부터 결정하는 것에 의해 조정 알고리즘이 (IPriv1)을 생성한 당첨 전체 개인 키(528)를 들어서 안다. 결과적으로, 보험 계약은 분배를 양도한다. 예시적인 사용 사례에서, 대응 당사자(502)의 각각(예를 들면, 대응 당사자(302)의 각각)은, 완전한 결과 서명용 키(526)()를 획득하기 위해, 랜덤 블라인딩 넌스(516)(RB)를 IPriv1에 추가한다. 이 값은, 그 다음, 대응 당사자 트랜잭션(530)의 대응하는 출력(522B)을 양도할 서명(518B)을 생성하기 위해, 각각의 대응 당사자의 개인 키와 함께 사용될 수 있다:
도 6은, 다양한 실시형태에 따른 스마트 계약 및 조정 알고리즘 트랜잭션을 생성하기 위한 프로세스(600)의 예를 예시하는 스윔 다이어그램이다. 프로세스(600)의 일부 또는 모두(또는 설명되는 임의의 다른 프로세스, 또는 그들 프로세스의 변형 및/또는 조합)는, 실행 가능한 명령어 및/또는 다른 데이터를 가지고 구성되는 하나 이상의 컴퓨터 시스템의 제어 하에서 수행될 수 있고, 하나 이상의 프로세서 상에서 집합적으로 실행되는 실행 가능한 명령어로서 구현될 수도 있다. 실행 가능 명령어 및/또는 다른 데이터는 비일시적 컴퓨터 판독 가능 저장 매체 상에 저장될 수 있다(예를 들면, 자기, 광학 또는 플래시 매체에 영구적으로 저장되는 컴퓨터 프로그램).
예를 들면, 프로세스(600)의 일부 또는 모두는 하나 이상의 컴퓨팅 디바이스에 의해(예를 들면, 데이터 센터 내의 서버에 의해, 클라이언트 컴퓨팅 디바이스에 의해, 컴퓨팅 리소스 서비스 공급자의 분산 시스템 내의 다수의 컴퓨팅 디바이스에 의해, 또는 도 8의 컴퓨팅 디바이스(800)와 같은 임의의 적절한 전자 클라이언트 디바이스에 의해) 수행될 수 있다. 프로세스(600)는, 두 개 이상의 대응 당사자가 스마트 계약에 대한 요건 및 조정 알고리즘 트랜잭션의 파라미터에 동의하고, 스마트 계약의 결과를 결정하기 위해 멤버의 그룹과 연동하고, 스마트 계약 및 조정 알고리즘 트랜잭션을 생성하는 일련의 동작을 포함한다.
몇몇 실시형태에서, 602에서, 도 2의 대응 당사자(202)과 같은 두 개 이상의 대응 당사자가 스마트 계약의 파라미터를 결정한다. 예를 들면, 대응 당사자는, 대응 당사자의 각각이 스마트 계약 트랜잭션에 커밋할 디지털 자산(예를 들면, 비트코인)의 금액, 조건의 세트, 및 조건의 각각의 이행시, 지급할 디지털 자산의 금액 및 그들이 누구에게 지급하는지에 대해 합의에 이를 수도 있다. 더욱 특정한 예로서, 세 명의 대응 당사자(Alice(앨리스), Bob(밥), Carol(캐롤)) 사이에서 합의가 도달되고, 그 결과, 스마트 계약 트랜잭션에, 앨리스는 금액(X1)을 커밋할 것이고, Bob은 금액(X2)을 커밋할 것이고, Carol은 디지털 자산의 금액(X3)을 커밋할 것이다.
예에서, 동의된 조건의 세트는, 제1 조건이 충족되는 경우, Alice는 커밋된 디지털 자산의 60 %를 수령하고, Bob은 커밋된 디지털 자산의 30 %를 수령하고, Carol은 스마트 계약의 커밋된 디지털 자산의 나머지 10 %를 수령한다. 대안적으로, 제2 조건이 충족되면, Bob 및 Carol 각각은 커밋된 디지털 자산의 50 %를 획득한다(Alice는 아무 것도 얻지 못함). 여전히 대안적으로, 제3 조건이 충족되면, Alice의 남편인 Ted(테드)(스마트 계약에 어떠한 디지털 자산도 커밋하지 않은 사람)가 스마트 트랜잭션의 디지털 자산의 100 % 상속한다. 제4 조건으로서, 명시된 시간 프레임 동안 제1, 제2 및 제3 조건이 충족되지 않는 경우, Bob, Carol, 및 Alice는 그들의 커밋된 디지털 자산을 환불받을 수 있다.
몇몇 실시형태에서, 604에서, 대응 당사자는, 조건 중 어떤 것이 이행되는지를 결정하기 위한 그룹 오라클로서 역할을 할 멤버의 특성을 결정한다. 즉, 대응 당사자는, 결과를 결정하는 데 멤버가 참가할 것을 동의할 이유를 제공하기 위해 분배로서 얼마나 많은 디지털 자산을 공급할지, 그룹에 대해 필요로 되는 멤버의 수, 보증금으로서 멤버의 각각이 얼마나 많이 커밋해야 하는지, 합의로서 정량화하기 위한 매칭 투표의 수에 대한 임계치에 대해 합의에 이르게 된다. 예로서, Bob, Carol, 및 Alice는 스마트 계약의 특정한 결과에 동의하는 그룹의 최대 10 명의 멤버의 각각에게 10 단위의 디지털 자산을 제공하는 데 동의하는데, 합의 답변으로서 고려되기 위해서는 그룹으로부터의 적어도 6 개의 답변이 매치해야 한다. 그 예에서, Bob, Carol, 및 Alice는 그룹의 각각의 멤버가 담보물로서 0.1 단위의 디지털 자산을 커밋해야 한다는 것을 규정할 것이다.
몇몇 실시형태에서, 606에서, 대응 당사자는, 그룹 멤버가 그들의 답변을 커밋할 고스트 체인의 블록 높이 및 블록 간격과 같은, 조정 알고리즘 트랜잭션의 타이밍 파라미터를 결정한다. 예를 들면, 블록 높이(예를 들면, 블록체인에 있을 블록의 수)가 5인 것으로 명시되고 블록 간격이, 특정한 시간에 시작하는 하루로 명시되면, 그것은 그룹 멤버에게 그들의 결정을 제출할 시작 시간 이후 5일(1일×5)을 준다; 다섯 번째 블록에서, 그룹 멤버는 그들의 서명된 커미트먼트를 제출하고, 이어지는 날 그들은 그들의 커미트먼트를 공개한다.
몇몇 실시형태에서, 608에서, 대응 당사자는, 도 3의 요청(308)과 유사하게, 그룹 멤버에 대한 요청을 제출한다. 즉, 요청은 계약 조건의 정의, 공급된 분배, 추구되는 멤버의 수, 멤버당 필요한 보증금의 금액, 합의 답변에 대한 매칭 투표의 필수 임계치, 고스트 체인 블록 간격 및 커미트먼트 블록 높이(hB)와 같은 정보를 포함할 수 있다. 언급한 바와 같이, 요청은, 웹 사이트 포럼, 게시판, 피어 투 피어 애플리케이션, 또는 온라인 시장과 같은, 그러한 요청을 제출/게시하기에 적절한 임의의 포럼 또는 통신 매체 상에 제출/게시될 수도 있다.
몇몇 실시형태에서, 610에서, 그룹의 멤버는 스마트 계약의 결과를 결정하는 데 참가하려는 그들의 동의를 시그널링한다. 몇몇 실시형태에서, 계약의 시그널링은, 요청이 제출/게시된 포럼과 동일한 또는 유사한 포럼을 통해 행해진다. 다른 실시형태에서, 합의의 시그널링은 (예를 들면, 요청에서의 통신 링크를 통해) 대응 당사자 중 하나 이상에 대한 직접 통신을 통해 수행된다.
몇몇 실시형태에서, 612에서, 그룹 멤버십 요건이 충족되었다는 통지를 수신한 이후, 대응 당사자는 랜덤 블라인딩 넌스를 생성하는데, 랜덤 블라인딩 넌스를 사용하여 스마트 계약 트랜잭션에서 결과를 난독화한다. 랜덤 블라인딩 넌스는 다양한 방식으로 결정될 수도 있다. 예를 들면, 한 명의 대응 당사자가 랜덤 블라인딩 넌스를 생성할 수 있고 다른 당사자 또는 당사자들이 승인/동의를 시그널링할 수 있다. 대안적으로, 각각의 당사자는 랜덤 블라인딩 넌스의 일부를 생성할 수 있고, 모든 생성된 부분은 랜덤 블라인딩 넌스를 형성하도록 수학적 알고리즘에 따라 결합될 수 있다.
몇몇 실시형태에서, 614에서, 대응 당사자는 스마트 계약에 대해 도 3의 계약 공개 키(316)와 유사한 공개 키를 생성/동의한다. 실시형태에서, 공개 키는 랜덤 블라인딩 넌스에 대응한다(예를 들면, 이 경우, 블라인딩 넌스는 개인 키이고, 공개 키는 블라인딩 넌스에 대한 타원 곡선 공개 키이다). 몇몇 실시형태에서, 계약 공개 키는 616에서 멤버에 의해 생성되는 결과 공개 키의 각각과 결합될 것이다. 언급된 바와 같이, 616에서, 그룹 멤버는 그룹 공개 키를, 그리고, 계약 결과의 각각에 대해, 결과 공개 키를 생성한다. 언급한 바와 같이, 그룹 공개 키 및 결과 키는 상기에서 설명되는 바와 같이 딜러가 없는 비밀 공유 프로토콜을 사용하여 생성될 수도 있다. 각각의 그룹 멤버는 결과 공개 키에 대응하는 개인 키 지분을 가질 수도 있다. 개인 키 지분은, 당첨 결과의 결과 공개 키에 대응하는 전체 개인 키를 재생성하는 데 필요한 키 지분의 수로서 도 6의 604에서 대응 당사자에 의해 명시되는 매칭 투표의 수에 대한 임계치를 사용하여 본 개시에서 설명되는 바와 같은 비밀 공유 프로토콜을 사용하여 생성될 수도 있다. 실시형태에서, 그룹 멤버는 608-12에서 확립되는 통신 매체를 통해 그룹 공개 키 및 결과 공개 키를 대응 당사자에게 제공한다.
몇몇 실시형태에서, 618에서, 대응 당사자 중 적어도 한 명은, 616에서 멤버 그룹에 의해 생성되는 결과 공개 키의 각각을, 612에서 생성되는 랜덤 블라인딩 넌스와 결합하는 것에 의해, 계약 조건 공개 키를 생성한다. 이러한 방식으로, 계약 조건 공개 키는 그룹 멤버로부터 620에서 생성되는 스마트 계약 트랜잭션에서 숨겨진다. 언급한 바와 같이, 몇몇 실시형태에서, 620에서, 스마트 계약 트랜잭션은, 대응 당사자에 의해 생성 및 서명되고, 대응 당사자의 각각이 동의한 자금(예를 들면, 디지털 자산의 금액)과 함께 블록체인에 커밋된다. 스마트 계약 트랜잭션은, 계약 결과에 따라, 하나의 대응 당사자 또는 대응 당사자 둘 모두에게 지급 가능한 각각의 금액에 대한 별개의 UTXO를 가질 수도 있다.
마지막으로, 몇몇 실시형태에서, 622에서, 대응 당사자는 도 3의 조정 알고리즘 트랜잭션(332)과 유사한 조정 알고리즘 트랜잭션을 생성한다. 몇몇 실시형태에서, 조정 알고리즘 트랜잭션은, 그룹 멤버가 그들의 답변을 제출한 이후 또는 타임아웃 이후, 616에서 멤버 그룹에 의해 생성되는, 그룹 공개 키로부터의 서명을 사용하여 지급될 수도 있는, 그룹 멤버로부터의 예치금을, UTXO로서, 포함할 수도 있다. 몇몇 실시형태에서, 조정 알고리즘 트랜잭션은, 추가적으로 또는 대안적으로, 그룹 공개 키를 사용하는 서명을 사용하여 또는 타임아웃 이후 대응 당사자 서명에 의해 역시 잠금 해제될 수 있는 대응 당사자에 의해 공급되는 분배를 포함할 수도 있다. 몇몇 실시형태에서, UTXO는 동일한 조정 알고리즘 트랜잭션에 있을 수도 있고, 반면, 다른 실시형태에서, UTXO는 별개의 트랜잭션에 있을 수도 있다. 602-22에서 수행되는 동작 중 하나 이상은, 병렬을 비롯하여, 다양한 순서 및 조합에서 수행될 수 있다는 것을 유의한다.
도 7은 다양한 실시형태에 따른 스마트 계약을 실행하기 위한 프로세스(700)의 예를 예시하는 스윔 다이어그램이다. 프로세스(700)의 일부 또는 모두(또는 설명되는 임의의 다른 프로세스, 또는 그들 프로세스의 변형 및/또는 조합)는, 실행 가능한 명령어 및/또는 다른 데이터를 가지고 구성되는 하나 이상의 컴퓨터 시스템의 제어 하에서 수행될 수 있고, 하나 이상의 프로세서 상에서 집합적으로 실행되는 실행 가능한 명령어로서 구현될 수도 있다. 실행 가능 명령어 및/또는 다른 데이터는 비일시적 컴퓨터 판독 가능 저장 매체 상에 저장될 수 있다(예를 들면, 자기, 광학 또는 플래시 매체에 영구적으로 저장되는 컴퓨터 프로그램).
예를 들면, 프로세스(700)의 일부 또는 모두는 하나 이상의 컴퓨팅 디바이스에 의해(예를 들면, 데이터 센터 내의 서버에 의해, 클라이언트 컴퓨팅 디바이스에 의해, 컴퓨팅 리소스 서비스 공급자의 분산 시스템 내의 다수의 컴퓨팅 디바이스에 의해, 또는 도 8의 컴퓨팅 디바이스(800)와 같은 임의의 적절한 전자 클라이언트 디바이스에 의해) 수행될 수 있다. 프로세스(700)는, 멤버가 그들의 답변 키 지분을 커밋 및 공개하고, 매칭 답변의 임계치가 존재하면, 합의 답변과 관련되는 개인 결과 키가 결정될 수 있고, 그로부터, 완전한 결과 서명용 키가 계산될 수 있는 일련의 동작을 포함한다.
몇몇 실시형태에서, 시작 시간이 시작된 이후, 그룹 멤버의 각각은 스마트 계약 결과에 관해서 특정한 시간 프레임 내에서 결정을 내린다. 특정한 시간 프레임은 도 4의 고스트 체인(434)과 같은 고스트 체인의 블록 높이 및 블록 간격과 같은 인자에 의존할 수도 있다. 상기의 예에서, 5의 블록 높이 및 하루의 블록 간격은, 그룹 멤버에게 그들의 답변을 결정할 5일을 준다.
시간 기간의 끝에서, 몇몇 실시형태에서, 702에서, 그룹 멤버의 각각은, 도 4의 커밋(424)으로 도시되는, 고스트 체인 내의 블록에 대한 그들 자신의 결정된 답변에 대응하는 키 지분을 커밋한다. 상기에서 언급되는 바와 같이, 각각의 그룹 멤버는 특정한 답변의 그룹 멤버의 키 지분의 간단한 해시(예를 들면, SHA-256)로서 답변을 제출할 수도 있다. 몇몇 실시형태에서, 모든 그룹 멤버가 동일한 블록에서 그들의 답변을 제출할 필요가 있는 것은 아니다는 것을 유의한다. 예를 들면, 그룹 멤버가 5일 중 세 번째 날에 그의/그녀의 답변에 도달하면, 그 그룹 멤버는 3 번째 블록에서 그들의 답변을 제출할 수도 있다.
몇몇 실시형태에서, 고스트 체인에서의 다음 블록인 704에서, 멤버는 도 4의 공개(426)로서 도시되는, 그들의 커미트먼트를 공개하는데, 이것은, 공개의 해시를 이전 커밋의 해시와 비교하는 것에 의해 검증될 수 있다. 몇몇 실시형태에서, 706에서, 키 지분의 수가 유효한 결과 개인 키에 대응하는 개인 키를 구성하기에 충분한지의 여부의 결정이 이루어진다. 그렇지 않은 경우, 708에서, 대응 당사자는 그들의 자금을 회수할 수도 있고, 멤버는 그들의 예치금을 환불받을 수도 있다. 그러한 경우에, 몇몇 실시형태에서, 어떠한 합의 답변도 도달하지 않았기 때문에, 멤버는 분배를 수령할 수 없을 수도 있거나, 또는 더 적은 분배를 수령할 수도 있다.
그렇지 않으면, 몇몇 실시형태에서, 710에서, 당첨 결과 개인 키(winning outcome private key)가 생성된다. 당첨 답변을 제출한 멤버는, 분배를 수집하고 712에서 멤버 예치금을 반환하기 위해 생성되는, 도 5의 분배 트랜잭션(532B)과 같은 트랜잭션에 집합적으로 서명할 수 있다. 당첨 결과 개인 키는, 714에서, 당첨 결과 개인 키를, 도 6의 612에서 결정되는 랜덤 블라인딩 넌스와 결합하여 완전한 결과 서명용 키(예를 들면, 도 5의 완전한 결과 서명용 키(526))를 생성할 수도 있는 대응 당사자에게 그룹에 의해 제공될 수도 있다.
몇몇 실시형태에서, 716에서, 대응 당사자의 각각은, 그들 자신의 개인 키를 사용하여 생성되는 서명 및 완전한 결과 서명용 키를 사용하여 생성되는 서명을 사용하여, 결과 트랜잭션(520B)과 유사한 결과 트랜잭션에 서명할 수 있고, 그에 의해, 도 6의 602에서 동의되는 바와 같은 스마트 계약의 결과에 적절한 자금을 청구할 수 있다. 702-16에서 수행되는 동작 중 하나 이상은, 병렬을 비롯하여, 다양한 순서 및 조합에서 수행될 수 있다는 것을 유의한다.
개시된 실시형태를 설명하는 맥락에서, 달리 명시되지 않는 한, 도움 없이는 "명령어"가 보통은 수행하지 않는 동작(예를 들면, 데이터의 송신, 계산, 등등)을 수행하는 실행 가능 명령어(코드, 애플리케이션, 에이전트, 등등으로 또한 칭해짐)에 관한 표현의 사용은, 명령어가 머신에 의해 실행되고 있고, 그에 의해, 머신으로 하여금 명시된 동작을 수행하게 한다는 것을 나타낸다는 것을 유의한다.
도 8은 본 개시의 적어도 하나의 실시형태를 실시하기 위해 사용될 수 있는 컴퓨팅 디바이스(800)의 예시적이고 단순화된 블록도이다. 다양한 실시형태에서, 컴퓨팅 디바이스(800)는 상기에서 예시되고 설명되는 시스템 중 임의의 것을 구현하기 위해 사용될 수 있다. 예를 들면, 컴퓨팅 디바이스(800)는, 데이터 서버, 웹 서버, 휴대용 컴퓨팅 디바이스, 개인용 컴퓨터, 또는 임의의 전자 컴퓨팅 디바이스로서의 사용을 위해 구성될 수 있다. 도 8에서 도시되는 바와 같이, 컴퓨팅 디바이스(800)는, 실시형태에서, 버스 서브시스템(804)을 통해 다수의 주변장치 서브시스템과 통신하도록 구성되며 그것에 동작 가능하게 커플링되는 하나 이상의 프로세서(802)를 포함할 수 있다. 몇몇 실시형태에서, 이들 주변장치 서브시스템은, 메모리 서브시스템(808) 및 파일/디스크 스토리지 서브시스템(810), 하나 이상의 유저 인터페이스 입력 디바이스(812), 하나 이상의 유저 인터페이스 출력 디바이스(814), 및 네트워크 인터페이스 서브시스템(816)을 포함하는 스토리지 서브시스템(806)을 포함한다. 그러한 스토리지 서브시스템(806)은 정보의 일시적 또는 장기 저장을 위해 사용될 수 있다.
몇몇 실시형태에서, 버스 서브시스템(804)은 컴퓨팅 디바이스(800)의 다양한 컴포넌트 및 서브시스템이 의도되는 대로 서로 통신하는 것을 가능하게 하기 위한 메커니즘을 제공한다. 비록 버스 서브시스템(804)이 단일의 버스로서 개략적으로 도시되지만, 버스 서브시스템의 대안적인 실시형태는 다수의 버스를 활용한다. 몇몇 실시형태에서, 네트워크 인터페이스 서브시스템(816)은 다른 컴퓨팅 디바이스 및 네트워크에 대한 인터페이스를 제공한다. 네트워크 인터페이스 서브시스템(816)은, 몇몇 실시형태에서, 컴퓨팅 디바이스(800)로부터의 다른 시스템으로부터 데이터를 수신하기 위한 그리고 그 다른 시스템으로 데이터를 송신하기 위한 인터페이스로서 역할을 한다. 몇몇 실시형태에서, 버스 서브시스템(804)은 세부 사항, 검색 용어(search terms), 및 등등과 같은 데이터를 통신하기 위해 이용된다.
몇몇 실시형태에서, 유저 인터페이스 입력 디바이스(812)는, 키보드; 통합 마우스, 트랙볼, 터치패드, 또는 그래픽 태블릿과 같은 포인팅 디바이스; 스캐너; 바코드 스캐너; 디스플레이에 통합되는 터치스크린; 음성 인식 시스템, 마이크와 같은 오디오 입력 디바이스; 및 다른 타입의 입력 디바이스와 같은 하나 이상의 유저 입력 디바이스를 포함한다. 일반적으로, 용어 "입력 디바이스"의 사용은, 컴퓨팅 디바이스(800)에 정보를 입력하기 위한 모든 가능한 타입의 디바이스 및 메커니즘을 포함하도록 의도된다. 몇몇 실시형태에서, 하나 이상의 유저 인터페이스 출력 디바이스(814)는 디스플레이 서브시스템, 프린터, 또는 오디오 출력 디바이스 등과 같은 비시각적 디스플레이, 등등을 포함한다. 몇몇 실시형태에서, 디스플레이 서브시스템은, 음극선관(cathode ray tube; CRT), 액정 디스플레이(liquid crystal display; LCD)와 같은 플랫 패널 디바이스, 발광 다이오드(light emitting diode; LED) 디스플레이, 또는 투영 또는 다른 디스플레이 디바이스를 포함한다. 일반적으로, 용어 "출력 디바이스"의 사용은 컴퓨팅 디바이스(800)로부터 정보를 출력하기 위한 모든 가능한 타입의 디바이스 및 메커니즘을 포함하도록 의도된다. 하나 이상의 유저 인터페이스 출력 디바이스(814)는, 예를 들면, 설명되는 프로세스 및 그 변형예를 수행하는 애플리케이션과의 유저 상호 작용을, 그러한 상호 작용이 적절할 수도 있는 경우, 용이하게 하기 위한 유저 인터페이스를 제시하기 위해 사용될 수 있다.
몇몇 실시형태에서, 스토리지 서브시스템(806)은 본 개시의 적어도 하나의 실시형태의 기능성을 제공하는 기본 프로그래밍 및 데이터 구성을 저장하기 위한 컴퓨터 판독 가능 저장 매체를 제공한다. 애플리케이션(프로그램, 코드 모듈, 명령어)은, 몇몇 실시형태에서 하나 이상의 프로세서에 의해 실행될 때, 본 개시의 하나 이상의 실시형태의 기능성을 제공하고, 실시형태에서, 스토리지 서브시스템(806)에 저장된다. 이들 애플리케이션 모듈 또는 명령어는 하나 이상의 프로세서(802)에 의해 실행될 수 있다. 다양한 실시형태에서, 스토리지 서브시스템(806)은 본 개시에 따라 사용되는 데이터를 저장하기 위한 저장소를 추가적으로 제공한다. 몇몇 실시형태에서, 스토리지 서브시스템(806)은 메모리 서브시스템(808) 및 파일/디스크 스토리지 서브시스템(810)을 포함한다.
실시형태에서, 메모리 서브시스템(808)은, 프로그램 실행 동안 명령어 및 데이터의 저장을 위한 메인 랜덤 액세스 메모리(random access memory; RAM)(818) 및/또는 고정된 명령어가 저장될 수 있는 리드 온리 메모리(read only memory; ROM)(820)와 같은 다수의 메모리를 포함한다. 몇몇 실시형태에서, 파일/디스크 스토리지 서브시스템(810)은 프로그램 및 데이터 파일에 대한 비일시적인 영구적(불휘발성) 스토리지를 제공하고, 하드 디스크 드라이브, 관련된 착탈식(removable) 매체를 수반한 플로피 디스크 드라이브, 컴팩트 디스크 리드 온리 메모리(Compact Disk Read Only Memory; CD-ROM) 드라이브, 광학 드라이브, 착탈식 매체 카트리지, 또는 다른 유사한 저장 매체를 포함할 수 있다.
몇몇 실시형태에서, 컴퓨팅 디바이스(800)는 적어도 하나의 로컬 클록(824)을 포함한다. 로컬 클록(824)은, 몇몇 실시형태에서, 특정한 시작 날짜로부터 발생된 틱의 수를 나타내는 카운터이며, 몇몇 실시형태에서, 컴퓨팅 디바이스(800) 내에 일체로 위치된다. 다양한 실시형태에서, 로컬 클록(824)은 특정한 클록 펄스에서 컴퓨팅 디바이스(800)에 대한 프로세서 및 그에 포함되는 서브시스템에서의 데이터 전송을 동기화하기 위해 사용되고, 컴퓨팅 디바이스(800)와 데이터 센터 내의 다른 시스템 사이의 동기 동작을 조정하기 위해 사용될 수 있다. 다른 실시형태에서, 로컬 클록은 프로그래밍 가능한 인터벌 타이머(interval timer)이다.
컴퓨팅 디바이스(800)는, 휴대용 컴퓨터 디바이스, 태블릿 컴퓨터, 워크스테이션, 또는 하기에서 설명되는 임의의 다른 디바이스를 비롯한, 다양한 타입 중 임의의 타입의 것일 수 있다. 추가적으로, 컴퓨팅 디바이스(800)는, 몇몇 실시형태에서, 하나 이상의 포트(예를 들면, USB, 헤드폰 잭, 라이트닝(Lightning) 커넥터, 등등)를 통해 컴퓨팅 디바이스(800)에 연결될 수 있는 다른 디바이스를 포함할 수 있다. 실시형태에서, 그러한 디바이스는 광섬유 커넥터를 수용하도록 구성되는 포트를 포함한다. 따라서, 몇몇 실시형태에서, 이 디바이스는 광학 신호를, 프로세싱을 위해 디바이스를 컴퓨팅 디바이스(800)에 연결하는 포트를 통해 송신되는 전기 신호로 변환하도록 구성된다. 컴퓨터 및 네트워크의 끊임없이 변화하는 성질에 기인하여, 도 8에서 묘사되는 컴퓨팅 디바이스(800)의 설명은 디바이스의 바람직한 실시형태를 예시하는 목적을 위한 특정한 예로서만 의도된다. 도 8에서 묘사되는 시스템보다 더 많은 또는 더 적은 컴포넌트를 갖는 많은 다른 구성이 가능하다.
따라서, 명세서 및 도면은 제한적인 의미가 아니라 예시적인 의미에서 고려되어야 한다. 그러나, 청구범위에서 기술되는 바와 같은 본 발명의 범위를 벗어나지 않으면서 다양한 수정 및 변경이 이루어질 수도 있다는 것이 명백할 것이다. 마찬가지로, 다른 변형예도 본 개시의 범위 내에 있다. 따라서, 개시된 기술이 다양한 수정 및 대안적인 구성을 허용하지만, 그것의 소정의 예시된 실시형태가 도면에 도시되고 상기에서 상세하게 설명되었다. 그러나, 본 발명을 개시되는 특정한 형태 또는 형태들로 제한하려는 의도가 있는 것이 아니라, 반대로, 본 발명은, 첨부된 청구범위에서 정의되는 바와 같은 본 발명의 범위 내에 속하는 모든 수정예, 대안적인 구성예 및 등가예를 포괄할 것이다는 것이 이해되어야 한다.
개시된 실시형태를 설명하는 맥락에서(특히, 다음의 청구범위의 맥락에서) 용어 "a(한)" 및 "an(한)" 및 "the(그)" 및 유사한 지시어의 사용은, 달리 지시되지 않는 한 또는 문맥에 의해 명확하게 부정되지 않는 한, 단수 및 복수 둘 모두를 포괄하도록 해석되어야 한다. 용어 "포함하는(comprising)", "구비하는(having)", "포함하는(including)" 및 "함유하는(containing)"은, 달리 언급되지 않는 한, 확장 가능한(open-ended) 용어(즉, "~를 포함하지만, 그러나 ~로 제한되지 않는"을 의미함)로서 해석되어야 한다. 용어 "연결되는(connected)"은, 수식되지 않고 물리적인 연결을 지칭하는 경우, 개입하는 어떤 것이 있더라도, 부분적으로 또는 전체적으로 포함되는, 부착되는 또는 함께 결합되는 것으로 해석되어야 한다. 본 개시에서 값의 범위의 열거는, 달리 지시되지 않는 한, 그 범위 내에 속하는 각각의 별개의 값을 개별적으로 지칭하는 약기법(shorthand method)으로서 역할을 하도록 의도되는 것에 불과하며, 각각의 별개의 값은, 마치 그것이 개별적으로 열거되는 것처럼, 본 명세서에 통합된다. 달리 언급되거나 또는 문맥에 의해 부정되지 않는 한, 용어 "세트"(예를 들면, "아이템의 세트") 또는 "서브세트"의 사용은, 하나 이상의 멤버를 포함하는 비어 있지 않은 집합으로서 해석되어야 한다. 또한, 달리 언급되거나 또는 문맥에 의해 부정되지 않는 한, 대응하는 세트의 "서브세트"라는 용어는 대응하는 세트의 적절한 서브세트를 반드시 나타내는 것은 아니며, 서브세트 및 대응하는 세트는 동일할 수도 있다.
"A, B, 및 C 중 적어도 하나", 또는 "A, B 및 C 중 적어도 하나"의 형태의 어구와 같은 접속 언어는, 달리 명시적으로 언급되지 않는 한 또는 문맥에 의해 달리 명백하게 부정되지 않는 한, 다르게는, 아이템, 용어, 등등이 A 또는 B 또는 C일 수도 있거나, 또는 A 및 B 및 C의 세트의 임의의 비어 있지 않은 서브세트일 수도 있다는 것을 제시하기 위해 일반적으로 사용되는 바와 같은 맥락에서 이해된다. 예를 들면, 세 개의 멤버를 갖는 세트의 예시적인 예에서, 접속 어구 "A, B, 및 C 중 적어도 하나" 및 "A, B 및 C 중 적어도 하나"는 다음의 세트 중 임의의 것을 지칭한다: {A}, {B}, {C}, {A, B}, {A, C}, {B, C}, {A, B, C}. 따라서, 그러한 접속 언어는, 일반적으로, 소정의 실시형태가 A 중 적어도 하나, B 중 적어도 하나 및 C 중 적어도 하나 각각이 존재할 필요가 있음을 암시하도록 의도되지 않는다.
설명되는 프로세스의 동작은 달리 지시되지 않는 한 또는 문맥에 의해 달리 명확하게 부정되지 않는 한, 임의의 적절한 순서로 수행될 수 있다. 설명되는 프로세스(또는 그 변형 및/또는 조합)는, 실행 가능한 명령어를 가지고 구성되는 하나 이상의 컴퓨터 시스템의 제어 하에서 수행될 수 있고, 하드웨어 또는 그 조합에 의해, 하나 이상의 프로세서 상에서 일괄적으로(collectively) 실행되는 코드(예를 들면, 실행 가능 명령어, 하나 이상의 컴퓨터 프로그램 또는 하나 이상의 애플리케이션)로서 구현될 수 있다. 몇몇 실시형태에서, 코드는, 예를 들면, 하나 이상의 프로세서에 의해 실행 가능한 복수의 명령어를 포함하는 컴퓨터 프로그램 형태로, 컴퓨터 판독 가능 저장 매체 상에 저장될 수 있다. 몇몇 실시형태에서, 컴퓨터 판독 가능 저장 매체는 비일시적이다.
제공되는 예, 또는 예시적인 언어(예를 들면, "예컨대") 중 임의의 것 또는 모두의 사용은, 단지 본 발명의 실시형태를 더욱 잘 조명하도록 의도되는 것에 불과하며, 달리 청구되지 않는 한, 본 발명의 범위에 대해 제한을 부과하지는 않는다. 본 명세서에서의 어떤 언어도, 임의의 청구되지 않은 엘리먼트를 본 발명의 실시에 필수적인 것으로 나타내는 것으로 해석되지 않아야 한다.
본 발명을 수행하기 위한 본 발명자에게 알려진 최상의 모드를 비롯한, 본 개시의 실시형태가 설명된다. 그들 실시형태의 변형예는, 전술한 설명의 판독시, 기술 분야에서 통상의 지식을 가진 자에게 명백하게 될 것이다. 본 발명자는, 숙련된 기술자가, 그러한 변형예를 적절히 활용하기를 기대하고, 본 발명자는, 본 개시의 실시형태가 구체적으로 설명된 것과는 달리 실시되는 것을 의도한다. 따라서, 본 개시의 범위는, 적용 가능한 법률에 의해 허용되는 바와 같은 본원에 첨부되는 청구범위에서 열거되는 주제의 모든 수정예 및 등가예를 포함한다. 더욱이, 그 모든 가능한 변형예에서 상기 설명된 엘리먼트의 임의의 조합은, 달리 지시되지 않는 한 또는 문맥에 의해 달리 명백하게 부정되지 않는 한, 본 개시의 범위에 의해 포괄된다.
인용되는 출판물, 특허 출원, 및 특허를 비롯한, 모든 참고 문헌은, 마치 각각의 참고 문헌이 참조에 의해 개별적으로 그리고 구체적으로 통합된 것으로 나타내어지고 그 전체가 기술되는 것과 동일한 정도로 참조에 의해 본원에 통합된다.
상기 언급된 실시형태는 본 발명을 제한하기 보다는 예시하는 것이며, 기술 분야의 숙련된 자는, 첨부된 청구범위에 의해 정의된 바와 같은 본 발명의 범위를 벗어나지 않으면서, 많은 대안적인 실시형태를 설계할 수도 있을 것이다는 것을 유의해야 한다. 청구범위에서, 괄호 안에 놓이는 임의의 참조 부호는 청구범위를 제한하는 것으로 해석되지 않아야 한다. 단어 "포함하는(comprising)", "포함한다(comprises)", 및 등등은, 임의의 청구항 또는 명세서 전체에서 열거되는 것 이외의 엘리먼트 또는 단계의 존재를 배제하지는 않는다. 본 명세서에서, "포함한다(comprises)"는, "포함하거나 또는 구성된다(includes or consists of)"를 의미하고 "포함하는(comprising)"은 "포함하거나 또는 구성되는(including or consisting of)"을 의미한다. 엘리먼트의 단수의 참조는, 그러한 엘리먼트의 복수의 참조를 배제하지는 않으며, 그 반대도 마찬가지이다. 본 발명은, 여러 가지 별개의 엘리먼트를 포함하는 하드웨어에 의해 그리고 적절히 프로그래밍된 컴퓨터에 의해 구현될 수 있다. 여러 가지 수단을 열거하는 장치 청구항에서, 이들 수단 중 몇몇은 하드웨어의 하나의 그리고 동일한 아이템에 의해 구현될 수 있다. 소정의 조치가 상이한 종속 청구항에서 인용된다는 단순한 사실은, 이들 조치의 조합이 유리하게 사용될 수 없다는 것을 나타내지는 않는다.
개요
본 개시에서 설명되고 제안되는 신규 기술은, 블록체인 데이터 구조 내에 저장되는 데이터의 무결성을 보장하는 블록체인의 속성을 방해하지 않으면서 블록체인의 기능성을 확장시킨다. 예를 들면, 기술은, 실세계 이벤트에 관한 정확하고 객관적인 정보를 획득하기 위한 방법을 블록체인 상에서 트러스트리스(trustless) 방식으로 수행하고 실행하는 것에 의해, 컴퓨팅의 분야를, 구체적으로는, 유효성 확인을 위한 조건이 레코드 내에 내장되는 블록체인 트랜잭션 내에서 정의되는 디지털 레코드 유효성 확인의 분야를 향상시킨다. 추가적으로, 본 개시에서 설명되고 제안되는 기술은, 스마트 계약 결과를 결정하기 위한 분산된 신뢰 오라클로서 역할을 하도록 임부를 부여받은 참가자에 대한 투표를 관리하기 위해 일시적인 지분 증명 블록체인을 활용하는 것에 의해, 블록체인 컴퓨터 네트워크 내에서 스마트 계약의 실행을 향상시킬 수도 있다.
또한, 본 개시에서 설명되고 제안되는 기술은, 결과를 결정하는 임무를 부여받은 참가자에게 스마트 계약을 난독화하고, 그에 의해, 대응 당사자의 프라이버시를 유지하고 결과 프로토콜을 뒤엎기 위해 참가자가 공모할 이유를 제거하는 것에 의해, 스마트 계약 결과를 조작하는 것의 위험성과 함께 특히 발생하는 문제점을 극복하기 위해 컴퓨터 기술에 반드시 기반을 두고 있을 수도 있다. 더구나, 셸링 조정과 같은 게임 이론 개념을 활용하는 것에 의해, 익명의 참가자는 프로토콜에 정확한 정보를 제공할 이유를 제공받을 수도 있다.

Claims (15)

  1. 컴퓨터 구현 방법으로서,
    대응 당사자(counterparty)의 세트로 조건의 세트의 결과(outcome)를 결정하기 위한 동의를 전달하는 단계 - 상기 조건의 세트는 제1 가능한 결과 및 제2 가능한 결과를 가짐 - ;
    비밀 공유 프로토콜을 사용하여, 상기 제1 가능한 결과에 대응하는 제1 개인 키 지분(a first private key share) 및 상기 제2 가능한 결과에 대응하는 제2 개인 키 지분을 생성하는 단계;
    디지털 자산의 금액을 제1 블록체인 트랜잭션과 관련되는 어드레스로 양도하는 단계;
    상기 결과를 상기 제1 가능한 결과인 것으로 결정함으로써, 특정한 시간 프레임 내에서 상기 제1 개인 키 지분 - 상기 제1 개인 키 지분은, 상기 결과를 결정하기 위한 상기 대응 당사자의 세트에 의해 적어도 부분적으로 사용 가능함 - 을 공개하는(revealing) 단계;
    상기 제1 개인 키 지분에 적어도 부분적으로 기초하여, 상기 제1 블록체인 트랜잭션과 관련되는 상기 디지털 자산의 금액을 잠금 해제하기 위해 제2 블록체인 트랜잭션의 유효성을 확인하는 데 적어도 부분적으로 사용 가능한 서명을 생성하는 단계; 및
    상기 제2 블록체인 트랜잭션으로 하여금 블록체인 네트워크 내의 노드에서 유효성이 확인되게 하는 단계를 포함하는
    컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 컴퓨터 구현 방법은,
    상기 제1 가능한 결과와 관련되는 제1 공개 키 및 상기 제2 가능한 결과와 관련되는 제2 공개 키를 생성하는 단계; 및
    상기 제1 공개 키 및 상기 제2 공개 키를 상기 대응 당사자의 세트에 제공하는 단계를 더 포함하고,
    상기 제1 개인 키 지분은,
    적어도 부분적으로 상기 제1 개인 키 지분을 사용하여, 제1 개인 키를 생성하고,
    상기 제1 개인 키가 상기 제1 공개 키와 관련되어 있다고 결정하는 것에 의해 상기 결과를 결정하는 데 사용 가능한
    컴퓨터 구현 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 비밀 공유 프로토콜은 딜러가 없는 비밀 공유 프로토콜인
    컴퓨터 구현 방법.
  4. 제1항 또는 제2항에 있어서,
    상기 제1 개인 키 지분을 공개하는 것은 제3 블록체인 트랜잭션에서 상기 제1 개인 키 지분을 공개하는 것을 포함하는
    컴퓨터 구현 방법.
  5. 제4항에 있어서,
    상기 제3 블록체인 트랜잭션은 지분 증명 블록체인(proof-of-stake blockchain)에서의 트랜잭션인
    컴퓨터 구현 방법.
  6. 제4항에 있어서,
    상기 특정한 시간 프레임은 제2 시간 프레임이고,
    상기 제1 개인 키 지분을 공개하는 것은,
    상기 제2 시간 프레임 이전에, 제1 시간 프레임 내에 커밋 트랜잭션(commit transaction)에서 상기 제1 개인 키 지분의 암호화 해시를 커밋하는 것을 더 포함하고,
    상기 제3 블록체인 트랜잭션의 유효성을 확인하는 것은, 상기 제3 블록체인 트랜잭션에서의 상기 제1 개인 키 지분이 상기 커밋 트랜잭션에서의 암호화 해시에 대응한다고 결정하는 것을 포함하는
    컴퓨터 구현 방법.
  7. 제1항 또는 제2항에 있어서,
    상기 제1 블록체인 트랜잭션은 상기 대응 당사자의 세트의 서브세트로부터 양도되는 제2 디지털 자산의 제2 금액을 더 포함하고,
    상기 방법은 추가로 상기 제2 블록체인 트랜잭션으로 하여금 유효성이 확인되게 하는 것의 결과로서 상기 제2 디지털 자산의 제2 금액의 제어를 양도하는 단계를 더 포함하는
    컴퓨터 구현 방법.
  8. 제7항에 있어서,
    상기 제1 블록체인 트랜잭션은 타임아웃 조건을 더 포함하고,
    상기 타임아웃 조건의 이행의 결과로서, 상기 제2 블록체인 트랜잭션으로 하여금 유효성이 확인되게 하는 것은, 상기 제2 디지털 자산의 제2 금액의 제어를 상기 대응 당사자의 세트의 서브세트로 양도하는 것인
    컴퓨터 구현 방법.
  9. 제7항에 있어서,
    상기 제2 블록체인 트랜잭션의 유효성을 확인하는 것은, 그룹 암호화 키를 사용하여 생성되는 디지털 서명의 유효성을 확인하는 것을 포함하고,
    상기 그룹 암호화 키는 상기 결과를 결정하도록 동의한 참가자의 그룹과 관련되는
    컴퓨터 구현 방법.
  10. 제9항에 있어서,
    상기 참가자의 그룹은,
    상기 제1 가능한 결과에 대응하는 키 지분을 공개하는 참가자의 제1 서브세트와,
    상기 제2 가능한 결과에 대응하는 키 지분을 공개하는 참가자의 제2 서브세트를 포함하고,
    상기 제2 금액의 제어를 양도하는 것은, 상기 참가자의 제2 서브세트를 제외한, 상기 참가자의 제1 서브세트로 상기 제2 금액의 제어를 양도하는 것을 포함하는
    컴퓨터 구현 방법.
  11. 제9항에 있어서,
    상기 컴퓨터 구현 방법은 ,
    상기 참가자의 그룹과 관련되는 그룹 공개 키를 생성하는 단계와,
    상기 그룹 공개 키를 상기 대응 당사자의 세트에 제공하는 단계를 더 포함하고,
    상기 제1 블록체인 트랜잭션은, 적어도 부분적으로, 상기 그룹 공개 키를 사용하여 생성되고,
    상기 제2 블록체인 트랜잭션의 유효성 확인은, 상기 그룹 암호화 키가 상기 제1 블록체인 트랜잭션의 그룹 공개 키와 관련된다고 결정하는 것을 포함하는
    컴퓨터 구현 방법.
  12. 제9항에 있어서,
    상기 비밀 공유 프로토콜을 사용하여 그룹 개인 키 지분를 생성하는 단계와,
    추가로 상기 결과를 결정함으로써, 상기 그룹 개인 키 지분에 적어도 부분적으로 기초하여 상기 그룹 암호화 키를 생성하는 단계를 더 포함하는
    컴퓨터 구현 방법.
  13. 제9항에 있어서,
    상기 제1 개인 키 지분은 상기 참가자의 그룹 사이에서 분배되는 복수의 제1 개인 키 지분에 속하고, 상기 제1 개인 키 지분은 상기 제1 가능한 결과에 대응하며,
    상기 결과를 상기 제1 가능한 결과로 결정하는 것은, 상기 복수의 제1 개인 키 지분의 임계 수가 상기 참가자의 그룹에 의해 공개되었다고 결정하는 것을 포함하는
    컴퓨터 구현 방법.
  14. 시스템으로서,
    프로세서; 및
    상기 프로세서에 의한 실행의 결과로서, 상기 시스템으로 하여금 제1항 또는 제2항에 따른 컴퓨터 구현 방법을 수행하게 하는 실행 가능 명령어를 포함하는 메모리를 포함하는
    시스템.
  15. 실행 가능 명령어를 저장한 비일시적 컴퓨터 판독 가능 저장 매체로서,
    상기 실행 가능 명령어는, 컴퓨터 시스템의 프로세서에 의해 실행되는 것의 결과로서, 상기 컴퓨터 시스템으로 하여금 제1항 또는 제2항에 따른 컴퓨터 구현 방법을 적어도 수행하게 하는
    컴퓨터 판독 가능 저장 매체.
KR1020207009476A 2017-09-22 2018-09-14 분산 조정을 사용한 스마트 계약 실행 KR102652551B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GBGB1715423.8A GB201715423D0 (en) 2017-09-22 2017-09-22 Computer-implemented system and method
GB1715423.8 2017-09-22
GB1715701.7 2017-09-28
GBGB1715701.7A GB201715701D0 (en) 2017-09-22 2017-09-28 Computer-implemented system and method
PCT/IB2018/057056 WO2019058240A1 (en) 2017-09-22 2018-09-14 INTELLIGENT CONTRACT EXECUTION USING DISTRIBUTED COORDINATION

Publications (2)

Publication Number Publication Date
KR20200059233A KR20200059233A (ko) 2020-05-28
KR102652551B1 true KR102652551B1 (ko) 2024-04-01

Family

ID=60244269

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020207009476A KR102652551B1 (ko) 2017-09-22 2018-09-14 분산 조정을 사용한 스마트 계약 실행
KR1020207009493A KR20200059234A (ko) 2017-09-22 2018-09-14 분산 조정을 사용한 스마트 계약 실행

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020207009493A KR20200059234A (ko) 2017-09-22 2018-09-14 분산 조정을 사용한 스마트 계약 실행

Country Status (8)

Country Link
US (2) US20200311678A1 (ko)
EP (2) EP3685331A1 (ko)
JP (4) JP7284747B2 (ko)
KR (2) KR102652551B1 (ko)
CN (2) CN111133463A (ko)
GB (2) GB201715423D0 (ko)
SG (2) SG11202002183QA (ko)
WO (2) WO2019058240A1 (ko)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6775086B2 (ja) * 2016-12-16 2020-10-28 株式会社日立製作所 ブロックチェーン監視及び管理
GB201715423D0 (en) * 2017-09-22 2017-11-08 Nchain Holdings Ltd Computer-implemented system and method
CN118041602A (zh) * 2017-11-09 2024-05-14 区块链控股有限公司 使用调解器计算机系统确保计算机程序正确执行的系统和方法
GB201721021D0 (en) * 2017-12-15 2018-01-31 Nchain Holdings Ltd Computer-implemented methods and systems
GB201805633D0 (en) * 2018-04-05 2018-05-23 Nchain Holdings Ltd Computer implemented method and system
WO2019235864A1 (ko) * 2018-06-05 2019-12-12 주식회사 네트워크디파인즈 신뢰가 없는 네트워크에서 데이터 전달을 증명하는 방법 및 장치
US11487741B2 (en) * 2018-08-07 2022-11-01 International Business Machines Corporation Preservation of uniqueness and integrity of a digital asset
CN109598504B (zh) * 2018-10-25 2020-09-01 阿里巴巴集团控股有限公司 基于区块链的交易处理方法及装置、电子设备
US11195179B2 (en) * 2018-10-31 2021-12-07 Dell Products L.P. Detecting cashback and other related reimbursement frauds using blockchain technology
US20200177373A1 (en) * 2018-11-14 2020-06-04 Royal Bank Of Canada System and method for storing contract data structures on permissioned distributed ledgers
EP3905165A4 (en) * 2018-12-27 2022-08-10 Hefei Dappworks Technology Co., Ltd. DATA PROCESSING METHOD AND APPARATUS FOR A CHAIN OF BLOCKS
KR102355918B1 (ko) * 2019-07-29 2022-02-07 주식회사 그루크리에이티브랩 블록체인을 이용한 전자 데이터 제공 방법 및 그 시스템
KR102269753B1 (ko) * 2019-08-16 2021-06-28 주식회사 코인플러그 컨소시엄 블록체인 네트워크에서의 프라이빗 키를 백업 및 복원하는 방법 및 장치
JP6840319B1 (ja) * 2019-09-24 2021-03-10 スタンダードキャピタル株式会社 取引情報処理システム
CN110807844B (zh) * 2019-10-09 2020-09-22 国网上海市电力公司 一种基于区块链技术的电网基塔巡检方法
US11315193B1 (en) * 2020-02-12 2022-04-26 BlueOwl, LLC Systems and methods for implementing a decentralized insurance platform using smart contracts and multiple data sources
CN112581131B (zh) 2020-05-15 2022-08-19 支付宝(杭州)信息技术有限公司 资产转移方法、装置、设备及系统
EP3844942B1 (en) * 2020-06-12 2023-04-05 Alipay Labs (Singapore) Pte. Ltd. Blockchain-based message services for time-sensitive events
CN111934858B (zh) * 2020-07-09 2022-03-18 中国电子科技集团公司第三十研究所 一种可监管的随机公钥派生方法
CN111898112B (zh) * 2020-07-15 2022-04-08 浙江甬恒科技有限公司 一种基于区块链技术的知识产权交易平台
CA3091660A1 (en) * 2020-08-31 2021-11-03 Polymath Inc. Method, system, and medium for blockchain-enabled atomic settlement
US11449494B2 (en) 2020-12-29 2022-09-20 Raytheon Company Distributed secure database system using an evolving nonce
CN112734574B (zh) * 2021-01-11 2023-11-28 杭州复杂美科技有限公司 交易执行方法、计算机设备和存储介质
CN113283985A (zh) * 2021-04-27 2021-08-20 上海添玑网络服务有限公司 基于htlc的跨链交易方法
JP7361994B2 (ja) * 2021-05-14 2023-10-16 ゴールドマン サックス アンド カンパニー エルエルシー トークンに対する併合請求を伴うブロックチェーン
WO2023055371A1 (en) * 2021-09-30 2023-04-06 Visa International Service Association Replicated secret share generation for distributed symmetric cryptography
KR20230048868A (ko) * 2021-10-05 2023-04-12 브이스트로 주식회사 자산의 분할 및 배당금 지급을 통한 자산 관리 방법
KR102610011B1 (ko) * 2021-10-21 2023-12-04 고려대학교 산학협력단 DApp의 스마트 컨트랙트 수수료 감소 방법, 이를 수행하기 위한 기록 매체 및 연산 서버
GB2612310A (en) * 2021-10-26 2023-05-03 Nchain Licensing Ag Generating shared keys
CN113706150B (zh) * 2021-10-27 2022-02-08 深圳前海微众银行股份有限公司 一种区块确认方法及装置
US20230298064A1 (en) * 2022-01-26 2023-09-21 Seek Xr, Inc. Systems and methods for facilitating redemption of unique digital asset utility
WO2023188258A1 (ja) * 2022-03-31 2023-10-05 日本電信電話株式会社 計算装置、計算方法、およびプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130046983A1 (en) * 2010-04-27 2013-02-21 China Mobile Communications Corporation Authentication method and device, authentication centre and system
US20170180134A1 (en) * 2015-12-21 2017-06-22 Mastercard International Incorporated Method and system for blockchain variant using digital signatures
US20170237554A1 (en) * 2016-02-12 2017-08-17 Mondo Jacobs Methods and systems for using digital signatures to create trusted digital asset transfers

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2001264183A1 (en) * 2000-07-07 2002-01-21 Newsymphony Technologies Limited Data processing system
US20070118449A1 (en) * 2004-11-22 2007-05-24 De La Motte Alain L Trust-linked debit card technology
US8856121B1 (en) * 2011-04-28 2014-10-07 Adobe Systems Incorporated Event based metadata synthesis
US20130304599A1 (en) * 2012-05-11 2013-11-14 Interactive Bid Games, Inc. Method and system of conducting interactive online auctions
US20140058968A1 (en) * 2012-08-21 2014-02-27 Richard A. Booth System, method, and computer program product for aggregating and distributing charitable contributions
US9876775B2 (en) * 2012-11-09 2018-01-23 Ent Technologies, Inc. Generalized entity network translation (GENT)
CA2884070A1 (en) * 2013-04-10 2014-10-10 Iconic Worldwide Gaming Limited Method, apparatus, and computer-readable media for enabling real-time competition based on commodities
US10497037B2 (en) * 2014-03-31 2019-12-03 Monticello Enterprises LLC System and method for managing cryptocurrency payments via the payment request API
US20180019984A1 (en) * 2014-03-31 2018-01-18 Monticello Enterprises LLC System and method for providing a credential management api
US20160162897A1 (en) * 2014-12-03 2016-06-09 The Filing Cabinet, LLC System and method for user authentication using crypto-currency transactions as access tokens
US20180240107A1 (en) * 2015-03-27 2018-08-23 Black Gold Coin, Inc. Systems and methods for personal identification and verification
US11392955B2 (en) * 2015-05-20 2022-07-19 Ripple Luxembourg S.A. Temporary consensus networks in a resource transfer system
US10778439B2 (en) * 2015-07-14 2020-09-15 Fmr Llc Seed splitting and firmware extension for secure cryptocurrency key backup, restore, and transaction signing platform apparatuses, methods and systems
US20170048209A1 (en) * 2015-07-14 2017-02-16 Fmr Llc Crypto Key Recovery and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems
US20170046689A1 (en) * 2015-07-14 2017-02-16 Fmr Llc Crypto Voting and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems
US10402792B2 (en) * 2015-08-13 2019-09-03 The Toronto-Dominion Bank Systems and method for tracking enterprise events using hybrid public-private blockchain ledgers
US9794074B2 (en) * 2016-02-04 2017-10-17 Nasdaq Technology Ab Systems and methods for storing and sharing transactional data using distributed computing systems
US20170243193A1 (en) * 2016-02-18 2017-08-24 Skuchain, Inc. Hybrid blockchain
WO2017145007A1 (en) * 2016-02-23 2017-08-31 nChain Holdings Limited System and method for controlling asset-related actions via a blockchain
CN109643420A (zh) * 2016-02-23 2019-04-16 区块链控股有限公司 用于在区块链上有效转移实体的方法和系统
US11625694B2 (en) * 2016-02-23 2023-04-11 Nchain Licensing Ag Blockchain-based exchange with tokenisation
CA3013182A1 (en) * 2016-02-23 2017-08-31 nChain Holdings Limited Universal tokenisation system for blockchain-based cryptocurrencies
US10558980B2 (en) * 2016-02-26 2020-02-11 Amadeus S.A.S. Online transaction processing system for transactions including multiple product suppliers
US11057198B2 (en) * 2016-03-04 2021-07-06 Assured Enterprises, Inc. Utilization of a proxy technique in escrow encryption key usage
WO2017161417A1 (en) * 2016-03-21 2017-09-28 National Ict Australia Limited Business process execution on a blockchain platform
KR102050129B1 (ko) * 2016-05-03 2019-11-28 안규태 블록 검증을 위한 복수의 일방향 함수를 지원하는 블록 체인
US10445698B2 (en) * 2016-06-30 2019-10-15 Clause, Inc. System and method for forming, storing, managing, and executing contracts
US11514448B1 (en) * 2016-07-11 2022-11-29 Chicago Mercantile Exchange Inc. Hierarchical consensus protocol framework for implementing electronic transaction processing systems
JP6939791B2 (ja) * 2016-07-28 2021-09-22 日本電気株式会社 掲示板情報管理システム
JP7093340B2 (ja) * 2016-07-29 2022-06-29 エヌチェーン ホールディングス リミテッド ブロックチェーンにより実現される方法及びシステム
US10878522B2 (en) * 2016-08-18 2020-12-29 First American Financial Corporation Systems and methods for using blockchains to record, manage, and transfer ownership rights to land titles
US10824737B1 (en) * 2017-02-22 2020-11-03 Assa Abloy Ab Protecting data from brute force attack
US20180260921A1 (en) * 2017-03-08 2018-09-13 Bsquare Corp. Remote machine operation through distributed permissioning
EP3379767B1 (en) * 2017-03-24 2021-01-13 Hewlett-Packard Development Company, L.P. Distributed authentication
GB201709188D0 (en) * 2017-06-09 2017-07-26 Nchain Holdings Ltd Computer-Implemented system and method
US11055703B2 (en) * 2017-06-19 2021-07-06 Hitachi, Ltd. Smart contract lifecycle management
EP3422221A1 (en) * 2017-06-29 2019-01-02 Nokia Technologies Oy Electronic health data access control
US10541804B2 (en) * 2017-08-18 2020-01-21 Intel Corporation Techniques for key provisioning in a trusted execution environment
US10546276B2 (en) * 2017-09-13 2020-01-28 Microsoft Technology Licensing, Llc Cyber ownership transfer
US10361870B2 (en) * 2017-09-14 2019-07-23 The Toronto-Dominion Bank Management of cryptographically secure exchanges of data using permissioned distributed ledgers
GB201715423D0 (en) * 2017-09-22 2017-11-08 Nchain Holdings Ltd Computer-implemented system and method
US20210082044A1 (en) * 2018-03-30 2021-03-18 Lukasz Jakub SLIWKA Distributed ledger lending systems having a smart contract architecture and methods therefor
US11315193B1 (en) * 2020-02-12 2022-04-26 BlueOwl, LLC Systems and methods for implementing a decentralized insurance platform using smart contracts and multiple data sources

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130046983A1 (en) * 2010-04-27 2013-02-21 China Mobile Communications Corporation Authentication method and device, authentication centre and system
US20170180134A1 (en) * 2015-12-21 2017-06-22 Mastercard International Incorporated Method and system for blockchain variant using digital signatures
US20170237554A1 (en) * 2016-02-12 2017-08-17 Mondo Jacobs Methods and systems for using digital signatures to create trusted digital asset transfers

Also Published As

Publication number Publication date
US20200313884A1 (en) 2020-10-01
SG11202002223VA (en) 2020-04-29
KR20200059234A (ko) 2020-05-28
EP3685331A1 (en) 2020-07-29
CN111164626A (zh) 2020-05-15
US20200311678A1 (en) 2020-10-01
GB201715701D0 (en) 2017-11-15
JP7320493B2 (ja) 2023-08-03
WO2019058241A1 (en) 2019-03-28
JP7284747B2 (ja) 2023-05-31
JP2023103434A (ja) 2023-07-26
JP2023134800A (ja) 2023-09-27
JP2020534733A (ja) 2020-11-26
JP2020534734A (ja) 2020-11-26
SG11202002183QA (en) 2020-04-29
KR20200059233A (ko) 2020-05-28
CN111133463A (zh) 2020-05-08
WO2019058240A1 (en) 2019-03-28
GB201715423D0 (en) 2017-11-08
EP3850569A1 (en) 2021-07-21

Similar Documents

Publication Publication Date Title
KR102652551B1 (ko) 분산 조정을 사용한 스마트 계약 실행
JP7461417B2 (ja) セキュアなオフチェーンのブロックチェーントランザクション
JP7181232B2 (ja) 一般的な計算のためのブロックチェーン
CN111316615B (zh) 使用调解器计算机系统确保计算机程序正确执行的系统和方法
CN109242675B (zh) 基于区块链的资产发布方法及装置、电子设备
US11153069B2 (en) Data authentication using a blockchain approach
US11164165B1 (en) Multi-asset blockchain network platform
US10693646B2 (en) Event execution using a blockchain approach
KR102537774B1 (ko) 기밀 지식의 특화된 증명을 제공하는 시스템들 및 방법들
Yadav et al. A comparative study on consensus mechanism with security threats and future scopes: Blockchain
CN114424223A (zh) 可分割代币
CN114945931A (zh) 用于减轻票据融资欺诈的方法和设备
Tran et al. Blockchain in a nutshell
CN118044151A (zh) 传播锁定脚本
Singh Blockchain Technologies
Sharma et al. Reinshard: An optimally sharded dual-blockchain for concurrency resolution
US20220058597A1 (en) Multi-asset blockchain network platform
Conley The Geeq Project Technical Paper
Ghosh Design and Analysis of Blockchain-based E-voting Protocols
CN116244709A (zh) 区块链网络中出块节点的确定方法及相关装置

Legal Events

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