KR102504033B1 - 스크립트 크기 및 연산 부호 제한에 대한 보안 기반 제한을 유지하는 동안 블록체인에서 복잡한 기능을 활성화하는 컴퓨터 구현 시스템 및 방법 - Google Patents

스크립트 크기 및 연산 부호 제한에 대한 보안 기반 제한을 유지하는 동안 블록체인에서 복잡한 기능을 활성화하는 컴퓨터 구현 시스템 및 방법 Download PDF

Info

Publication number
KR102504033B1
KR102504033B1 KR1020197019947A KR20197019947A KR102504033B1 KR 102504033 B1 KR102504033 B1 KR 102504033B1 KR 1020197019947 A KR1020197019947 A KR 1020197019947A KR 20197019947 A KR20197019947 A KR 20197019947A KR 102504033 B1 KR102504033 B1 KR 102504033B1
Authority
KR
South Korea
Prior art keywords
script
blockchain
transaction
stack
additional
Prior art date
Application number
KR1020197019947A
Other languages
English (en)
Other versions
KR20190094217A (ko
Inventor
스테판 빈센트
Original Assignee
엔체인 홀딩스 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from GBGB1621831.5A external-priority patent/GB201621831D0/en
Priority claimed from GBGB1621830.7A external-priority patent/GB201621830D0/en
Priority claimed from GBGB1621827.3A external-priority patent/GB201621827D0/en
Application filed by 엔체인 홀딩스 리미티드 filed Critical 엔체인 홀딩스 리미티드
Publication of KR20190094217A publication Critical patent/KR20190094217A/ko
Application granted granted Critical
Publication of KR102504033B1 publication Critical patent/KR102504033B1/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/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • 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/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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 비트코인 블록체인과 같은 블록체인 기술에 관한 것이다. 본 발명은 블록체인 거래 스크립트를 몇몇 청크 또는 기능 부분으로 분해하고, 청크의 출력을 다음 청크의 입력으로 이용하기 위해 새로운 기법을 이용한다. 이점으로는, 블록체인이 스크립트 크기를 최소화하는 동안 언제나 복잡한 작업 및 연산에 이용되도록 하며, 또한 연산 프로세스의 분산 실행에 대한 새로운 아키텍처를 제공한다. 본 발명은 컴퓨터로 구현되는 작업을 실행하기 위해 복수의 블록체인 거래를 이용하는 방법을 포함하며, 다음의 단계를 포함한다: 스택에 결과를 제공하기 위해 다른 거래(Tx1)의 제1 잠금 스크립트(LS1)에 적어도 하나의 데이터 항목을 제시하여 블록체인 거래(Tx2)의 제1 입력(In1)에 관한 잠금해제 스크립트(ULS1)를 이용하는 단계; 제2 입력(In2)에 관한 추가 잠금해제 스크립트(ULS2)를 생성하고 상기 스택의 결과를 구성하는 단계; 여기서 상기 제2 입력(In2)은 추가 블록체인 거래(Tx3)에 제공되고; 그리고 상기 스택의 결과가 추가 잠금 스크립트에 입력으로 제공되도록 추가 잠금 스크립트(LS2)에 상기 추가 잠금해제 스크립트(ULS2)를 제시하는 단계. 바람직하게는, 잠금 스크립트(LS1) 및 추가 잠금 스크립트(LS2)는 상이한 블록체인 거래의 출력과 연관된다.

Description

스크립트 크기 및 연산 부호 제한에 대한 보안 기반 제한을 유지하는 동안 블록체인에서 복잡한 기능을 활성화하는 컴퓨터 구현 시스템 및 방법
본 발명은 일반적으로 블록체인 기술에 관한 것으로서, 더 상세하게는 블록체인을 통해 복합 기능을 구현하는 것에 관한 것이다. 이점으로는, 본 발명은 실행된 코드 또는 계산의 결과가 서로 전달되도록 하며, 컴퓨터로 구현되는 프로세스의 활동을 가능하게 하고, 영향을 미치고, 지시하기 위한 제어 메커니즘으로서 블록체인 거래를 이용하는 메커니즘을 제공한다. 본 발명은 자동화 된 프로세스의 제어 및 구현에 특히 적합하나 이에 제한되지 않는다.
본 명세서에서 우리는 블록체인 및 거래-체인 기술, 허가형 또는 비-허가형 원장, 공유 원장 및 그 변형을 포함하되 이에 국한되지 않는 전자적, 컴퓨터 기반 분산 원장의 모든 형태를 포함하기 위해 '블록체인'이라는 용어를 사용한다. 비록 다른 블록체인 구현예가 제안되고 개발되었으나, 가장 널리 알려진 블록체인 기술의 어플리케이션은 비트코인 원장이다. 비트코인은 여기서 편의와 설명의 목적을 위해 언급될 수 있지만, 본 발명은 비트코인 블록체인을 사용하는 것에 제한되지 않으며 대안적인 블록체인 구현예 및 프로토콜이 본 발명의 범위 내에 있음에 주목해야 한다.
블록체인은 차례대로 거래를 구성하는 블록으로 구성된 컴퓨터 기반 분산형, 분배형 시스템으로 구현되는 합의 기반, 전자 원장이다. 각각의 거래는 적어도 하나의 입력 및 적어도 하나의 출력을 포함한다. 각각의 블록은 생성 이래로 블록체인에 기록된 모든 거래의 영구적이고 변경 불가능한 기록을 생성하기 위해 해당 블록이 서로 연결되는 이전 블록의 해시를 포함한다. 거래는 입력 및 출력에 내장된 스크립트라고 하는 작은 프로그램을 포함하며, 이는 어떻게 그리고 누구에 의해 거래의 출력에 접근할 수 있는지를 지정한다. 비트코인 플랫폼에서, 이러한 스크립트는 스택 기반(스택-based)의 스크립팅 언어를 이용하여 기록된다. 스크립트는 스택에 데이터 항목을 넣거나(push), 이들을 스택에서 빼내는(pop)는 명령어(연산 부호(opcodes))로 구성된다.
거래가 블록체인에 기록되기 위해서, "유효"해야 한다. 네트워크 노드(채굴자)는 네트워크로부터 거부된 유효하지 않은 거래를 통해, 각각의 거래가 유효한지 확인하는 작업을 수행한다. 노드에 설치된 소프트웨어 클라이언트는 잠금 및 잠금해제 스크립트를 실행하여 미사용 거래(UTXO)에 대한 이러한 확인 작업을 수행한다. 잠금 및 잠금해제 스크립트의 실행이 참(TRUE)으로 평가하면, 거래는 유효하고 거래는 블록체인에 기록된다. 따라서, 거래가 블록체인에 기록되기 위해서는, i) 거래를 수신한 제1 노드에 의해 유효성이 검사되고 - 거래가 유효하면, 노드는 네트워크의 다른 노드에 이를 중계함; ii) 채굴자에 의해 생성된 새로운 블록에 추가되고; iii) 채굴, 즉 과거 거래의 공개 원장에 추가되어야 한다.
블록체인 기술이 암호화폐 구현(implementation)의 사용으로 가장 널리 알려져 있지만, 디지털 기업은 새로운 시스템을 구현하기 위해 블록체인에 저장될 수 있는 데이터 및 비트코인에 기반한 암호화 보안 시스템 모두의 사용을 모색하기 시작했다. 암호화폐의 영역에 국한되지 않는 자동화된 작업 및 프로세스에 블록체인이 사용될 수 있다면 매우 유용할 것이다. 이러한 솔루션은 블록체인의 이점을 활용할 수 있을 뿐만 아니라(예, 영구적이고, 쉽게 변경할 수 없는 이벤트 기록, 분산 처리 등) 응용 분야에서 더욱 다양하게 활용될 수 있다.
현재 연구의 한 분야는 기계 판독 가능한 문서에서 설정된 조건에 따라 작동하고 결과를 산출하기 위해 입력을 처리할 수 있는 규칙을 포함하며, 동작이 그 결과에 따라 수행될 수 있는 기계 실행 가능한 프로그램인, "스마트 계약"의 구현을 위한 블록체인의 사용이다.
그러나, 점점 더 정교한 어플리케이션이 블록체인 기술에 대해 고안됨에 따라, 끊임없이 복잡해지는 스크립트 기능에 대한 요구도 증가하고 있다. 여기서 기술적인 문제가 발생 하지만, 블록체인 기술은 스크립트 내에서 합법적으로 달성될 수 있는 것을 제한 및 한정하기 위해 의도적으로 설계된다. 예를 들어, 보안 사항으로 인해, 비트코인 스크립트 언어는 의도적으로 비-튜링 컴플리트(non-Turing complete)이다. 또한, 서비스 거부 공격(Denial of Service(Dos) attacks)을 방지하기 위해 스크립트 당 최대 200개 연산 부호 상한치가 부과된다. 비트코인 거래 스트립트가 200개 미만의 연산 부호를 포함하고 있다면, 유효성이 검사되고 브로드캐스트 될 수 있다. 그러나, 보다 정교한 프로그램 요소(예, 프리미티브(primitives))의 출현으로, 이러한 제한은 스마트 계약 실행과 같은 어플리케이션을 위한 더 복잡한 기술 솔루션의 개발을 제한한다.
따라서, 기존 프로토콜의 어떠한 적응을 요구하거나 및/또는 보안을 침해하지 않고 복잡한 기능이 블록체인 스크립트 내에 생성 가능하도록 하는 기술 솔루션이 요구된다. 가급적, 이러한 솔루션은 비트코인 프로토콜과 같은 기존 블록체인 프로토콜의 기능이, 현재 한계를 넘도록 블록체인의 계산 능력을 확장할 수 있도록 블록체인 거래 및 스택을 이용함으로써 인프라(infrastructure)가 새롭고 유리한 방법으로 사용될 수 있도록 한다. 이러한 기법은 거래의 이용이 기술 프로세스의 실행을 제어하고, 영향을 미치며 및 지시하도록 할 수 있다.
이제 이러한 솔루션이 고안되었다. 본 발명은 적어도 여기서 설명된 이점을 제공한다.
본 발명은 첨부된 청구항에서 정의된다.
그러므로, 본 발명에 따르면, 방법 및/또는 대응하는 시스템이 제공될 수 있다.
일 관점에 따르면, 본 발명은 복잡한 기능이 블록체인의 이용을 통해 수행되도록 하는 기술 및 대응하는 구현을 제공하는 것으로 간주될 수 있다. 이점으로는, 이러한 기술은 특정 기능을 수행하기 위해 다양한 개별 컴퓨팅 구성 요소의 조합을 이용할 수 있다. 이들은 하나 이상의 소프트웨어 기반 클라이언트, 적어도 하나의 저장 리소스(바람직하게는 스택 기반 데이터 구조), 적어도 하나의 프로세스에서 실행되고 블록체인 거래 및/또는 블록체인을 생성하도록 구성되는 적어도 하나의 디지털 지갑을 포함할 수 있다. 바람직하게는, 이는 비트코인 블록체인일 수 있다.
본 발명의 실시예는 다중 거래 및 그들 각각의 입력 및 출력에 대한 기술 작업의 분해(decomposition)를 포함할 수 있다. 본 발명의 실시예는 적어도 하나의 데이터 저장 리소스를 획득할 수 있고 특히 각각의 거래 입력 및 출력 사이의 스크립트 출력을 전달함으로써 다중 블록체인 거래를 통해 구현되는 연산 또는 작업의 실행을 제어하기 위해 해당 데이터를 이용할 수 있다.
위에서 언급된 다양한 시스템 요소는 작업 및 연산이 블록체인 거래를 통해 수행되도록 구성 요소들 사이의 데이터 항목을 전달하고 얻기 위해 구성될 수 있다. 이러한 연산/작업은 길고 복잡할 수 있으며, 여기서 사용된 연산 부호의 개수 및/또는 스크립트의 크기에 대한 제한으로 인해, 본 발명 이전의 블록체인 거래를 통해서는 수행될 수 없다.
거래가 블록체인 상에 있으면, 이들은 불변하고 영구적인 방법으로 기록된다. 그러므로, 하나의 관점에서 본 발명은 개선된 블록체인 프로토콜, 개선된 블록체인 클라이언트, 개선된 연산 기법 및 대응하는 장치, 및/또는 개선된 프로세스 제어 메커니즘을 제공한다.
하나의 의미에서, 본 발명은 연산 부호 제한 및 스크립트 크기에 대한 보안 기반 제한을 계속 유지하는 동안 복합 연산이 블록체인 프로토콜을 통해 수행되도록 한다. 본 발명 이전에, 이러한 긴 연산은 예를 들어, 현재 비트코인 프로토콜을 이용하는 것이 불가능하거나 스크립트 기반의 제한을 포함하지 않는 블록체인의 다른 형태를 이용하여야 한다. 후자가 항상 바람직하거나 실현 가능한 것은 아니다. 따라서, 본 발명은 강화된 보안 메커니즘을 제공한다. 프로토콜을 통해 지금까지 불가능했던 결과를 획득하기 위한 수단을 제공함으로써, 본 발명은 개선된 블록체인 프로토콜을 제공한다.
본 발명에 관한 방법은 컴퓨터로 구현되는 작업을 수행하기 위해 복수의 블록체인 거래를 이용하는 방법으로 설명된다. 부가적으로 또는 대안적으로, 이는 다음의 방법으로 설명될 수 있다.
Figure 112019070310836-pct00001
두 개 이상의 각각의 블록체인 거래에 제공되는 잠금 및 잠금해제 스크립트에 대한 일부 작업의 실행을 할당하거나 분배함으로써 컴퓨터로 구현되는 작업의 실행을 제어하는 단계;
Figure 112019070310836-pct00002
스택 기반 데이터 구조로부터 값을 읽고 잠금해제 스크립트에서 잠금 스크립트로 이를 값으로 전달하여 컴퓨터로 구현되는 작업의 실행을 제어하는 단계.
본 발명은 컴퓨터로 구현되는 작업을 실행하기 위해 복수의 블록체인 거래를 이용하는 방법을 제공할 수 있다.
방법은 다음의 단계를 포함할 수 있다.
스택에 결과를 제공하기 위해 다른 거래(Tx1)의 제1 잠금 스크립트(LS1)에 적어도 하나의 데이터 항목을 제시하여 블록체인 거래(Tx2)의 제1 입력(In1)에 관한 잠금해제 스크립트(ULS1)를 이용하는 단계;
제2 입력(In2)에 관한 추가 잠금해제 스크립트(ULS2)를 생성하고 상기 스택의 결과를 구성하는 단계; 여기서 상기 제2 입력(In2)은 추가 블록체인 거래(Tx3)에 제공되고; 그리고
상기 스택의 결과가 추가 잠금 스크립트에 입력으로 제공되도록 추가 잠금 스크립트(LS2)에 상기 추가 잠금해제 스크립트(ULS2)를 제시하는 단계.
블록체인 거래는 비트코인 프로토콜 버전에 따라 구성될 수 있다.
상기 잠금 스크립트(LS1) 및 추가 잠금 스크립트(LS2)는 상이한 블록체인 거래의 출력과 연관될 수 있다. 다시 말해, 상기 잠금 스크립트(LS1) 및 추가 잠금 스크립트(LS2)는 서로 상대적인 별도의 거래에 제공될 수 있다.
상기 잠금해제 스크립트(ULS1) 및 추가 잠금해제 스크립트(ULS2)는 상이한 블록체인 거래의 입력과 연관될 수 있다.
방법은 다음의 단계를 더 포함할 수 있다:
상기 잠금 스크립트(LS1) 내에 제공되는 명령어의 시퀀스 또는 연산의 실행에 상기 적어도 하나의 데이터 항목을 이용하는 단계.
방법은 다음의 단계를 더 포함할 수 있다:
상기 추가 잠금 스크립트(LS2) 내에 제공되는 명령어의 시퀀스 또는 연산의 실행에 상기 스택에 제공되는 상기 결과를 이용하는 단계.
방법은 상기 스택의 결과를 획득하는 단계를 더 포함할 수 있다. 이는 메인 스택(main stack) 또는 알트 스택(alt stack)일 수 있다.
방법은 다음의 단계를 더 포함할 수 있다:
상기 스택의 상기 결과를 획득하기 위해 블록체인 클라이언트를 이용하는 단계. 상기 블록체인 클라이언트는 비트코인 클라이언트일 수 있다.
방법은 다음의 단계를 더 포함할 수 있다:
상기 스택에 상기 결과를 생성하기 위해 추가 거래(Tx3) 및/또는 상기 다른 거래(Tx1) 및/또는 상기 블록체인 거래(Tx2)를 검증하는 단계.
방법은 다음의 단계를 더 포함할 수 있다:
상기 스택의 결과를 획득하고 반환 명령 또는 명령어 다음 잠금해제 스크립트에 상기 결과를 삽입하는 단계. 상기 명령 또는 명령어는 비트코인 OP_RETURN 연산 부호일 수 있다.
상기 추가 잠금 스크립트(LS2)에 추가 잠금해제 스크립트(ULS2)를 제시하는 단계는,
상기 스택 또는 상이한 스택에 추가 결과를 제공할 수 있다.
방법은 다음의 단계를 더 포함할 수 있다:
상기 블록체인 네트워크에 추가 거래(Tx3) 및/또는 다른 블록체인 거래(Tx1) 및/또는 블록체인 거래(Tx2)를 제출하는 단계.
상기 적어도 하나의 데이터 항목은 상기 잠금해제 스크립트(ULS1) 내에 메타데이터로서 제공될 수 있다. 부가적으로 또는 대안적으로, 상기 결과는 상기 추가 잠금해제 스크립트(ULS2) 내에 메타데이터로서 제공될 수 있다.
상기에서 설명된 하나 이상의 단계는 적어도 한번 반복, 즉 한번 이상 수행될 수 있다.
본 발명에 의해 사용된 블록체인은 비트코인 블록체인일 수 있다. 상기 거래의 하나, 일부 또는 전부는 비트코인 거래일 수 있다. 방법은 비트코인 블록체인에서 실행되도록 구성될 수 있다.
본 발명은 본 발명의 "실시예 2"에 관하여 이후 주로 설명될 것이고, 및/또는 주로 도 4 내지 8 및 10에 도시된 예시에 의해 설명되는 원리 및 기법에 관한 것일 수 있다.
본 발명은 또한 대응하는 시스템 및 장치를 포함할 수 있다. 본 발명은 전술된 또는 실질적으로 후술된 임의의 선행 방법 단계를 구현하도록 배치되고 구성되는 컴퓨터로 구현되는 시스템을 포함한다.
본 발명의 이들 또는 다른 양태는 여기서 설명된 본 발명에 관해 상세히 설명되고 명백해 질 것이다. 본 발명의 실시예는 예시를 통해서 첨부된 도면에 관련하여 이제 설명될 것이다.
도 1은 본 발명의 제1 실시예에 따른 다중 입력/출력 접근에 관한 일련의 단계 및 거래 체인을 설명한다.
도 2는 본 발명의 제1 실시예의 예시 버전에 따른 거래 1(Tx1)을 나타낸다.
도 3은 본 발명의 제1 실시예의 예시 버전에 따른 거래 2(Tx2)를 나타낸다.
도 4는 실시예 2의 예시 버전에 따른 거래의 예시적인 체인을 나타낸다.
도 5 내지 8은 실시예 2의 예시 버전에 관한 거래 1, 2, 3 및 4를 나타낸다.
도 9a 및 9b는 본 발명의 예시 버전이 실시예 1에 관련하여 어떻게 제공될 수 있는지에 대한 설명을 나타낸다.
도 10은 스택의 상단에 남은 항목을 획득하는데 이용되는 블록체인 클라이언트의 간단한 설명을 나타낸다.
본 발명의 예시적 실시예
다음의 예시에서, 우리는 우리의 예시적 블록체인 구현 및 프로토콜로서 비트코인을 이용하는데, 이는 그것이 가장 널리 알려져 있기 때문이다. 이는 단지 설명의 목적을 위한 것이며 본 발명은 이러한 점에 한정되지 않는다는 점에 주목해야 한다. 다른 블록체인 구현 또한 본 발명의 범위 내에 있다.
DoS(Denial of Service) 공격의 배포를 방지하기 위해, 디폴트 비트코인 클라이언트(default Bitcoin client)는 다양한 스크립트 내에 포함될 수 있는 연산 부호(op_code) 및 바이트(byte)의 최대 개수에 대한 제한을 설정한다. 본 출원의 우선일에, 이러한 제한은 10,000 바이트와 201개 연산 부호이다. 201개 연산 부호 또는 10,000 바이트 이상을 포함하는 스크립트는 유효하지 않다. 의미있는 이유로 부과되었으나, 이러한 제한은 더 정교한 스크립트 기능의 개발을 방해하며, 따라서 블록체인 기술과 함께 작동하도록 설계될 수 있는 기술 솔루션의 복잡도(complexity)을 방해한다.
본 발명은 2개 이상의 블록체인 거래의 사용을 통해 다중 입력/출력에서 블록체인 스크립트를 사용자가 분할할 수 있도록 하는 2개의 기법을 제공한다. 본 발명의 두 버전은 다음으로 구성되는 자동화된 컴퓨팅 에이전트(또는 “봇(bots)”의 능력에 따를 수 있다.
Figure 112019070310836-pct00003
스택의 상태를 읽는다,
Figure 112019070310836-pct00004
전파(propagate), 즉, 실행된 스크립트의 결과를 미사용 거래 출력의 입력으로 전달한다.
Figure 112019070310836-pct00005
큰 복합 스크립트를 다수의 작고 간단한 단위로 나눈다.
비트코인과 같은, 일부 블록체인 구현에서, 디폴트 비트코인 클라이언트는 이러한 정보 항목에 대한 접근을 제공하지 않으므로, 커스텀 클라이언트(custom client)는 스크립트가 종결된 후에 스택의 상태가 읽혀질 수 있도록 요구될 수 있다는 점에 주목해야 한다. 스택은 비트코인 코어 프로그램(bitcoin core program)에 포함된 .cpp 파일에 목록으로 나타날 수 있다. 스택 행동을 에뮬레이트(emulate)하는 클래스에 약간의 코드 라인을 삽입함으로써, 목록에 포함된 정보를 입력하거나 획득할 수 있다. 그러면 정보는 다른 연산에서 및/또는 다른 컴퓨팅 리소스에 의한 사용을 위해 전달될 수 있다. 이는 도 10에 도시된다.
실행된 스크립트의 결과의 전파는 어떠한 자동화도 요구하지 않고 수동으로 수행될 수 있다(최소한 원칙적으로). 그러나, 일반적인 구현에서 컴파일러(compiler)와 같은 외부 시스템은 복합 스크립트를 분할하는 것에 관여된 작동의 자동화를 처리할 것으로 예상된다.
이점으로는, 본 발명에 의해 비트코인 프로토콜의 수정이 요구되지 않는다. 다시 말해, 커스텀 클라이언트가 거래를 준비하기 위해 필요할 수 있지만, 거래가 브로드캐스트(broadcast)되면, 비트코인 네트워크의 모든 노드는 이들을 검증할 수 있을 것이다.
따라서, (모든 버전의) 발명에 따르면, 기본 개념은 스크립트를 몇몇 청크(chunk) 또는 기능 부분으로 분할하고, 다음 청크의 입력으로서 청크의 출력을 이용하는 것이다. 이는 선행 기술로부터 중요한 차이이다. 이는 스크립트 크기에 대한 제한을 유지하면서 블록체인이 항상 복잡한 작업 및 연산에 이용되도록 하며, 연산 프로세스의 분산된 실행에 대한 새로운 아키텍처를 제공한다.
그러나, 스크립트 실행의 최종 출력은 이진(binary), 즉, 거래가 유효로 표시되거나 무효로 표시된다는 것을 명심해야 한다(다른 요건을 충족한다고 가정). 그러므로, 연산의 하나의 청크의 출력과 연산의 다음 청크의 입력을 "연결"하기 위해, 위에서 설명한 바와 같이, 하나는 스택에 대한 값에 접근할 수 있는 비기준(non-reference) 클라이언트를 이용하고 이들을 재사용해야 한다.
다음의 간단한 예시를 통해 시작한다.
x + y > 3
이는 다음과 같은 방법으로 연산 부호에 대해 기록될 수 있다.
OP_<x> OP_<y> OP_ADD OP_3 OP_GREATERTHAN
이를 다음 두 개의 청크로 분할한다.
z = x + y
z > 3
첫번째 접근에 따르면, 솔루션은 지금 설명한 대로 채택될 수 있다.
앨리스(Alice)는 다음과 같이 Tx1을 준비한다:
Tx1
In0:
amount: A + <dust> + tf
ref: ...
unlocked by: ...
Out1:
amount: <dust>
locked by: OP_ADD OP_SWAP <Bob's pubKey> OP_SWAP OP_CHECKSIG OP_DROP
Out2:
amount: A
locked by: OP_3 OP_GREATERTHAN OP_SWAP <Bob's pubKey> OP_DROP
밥(Bob)은 다음의 방법으로 Tx2를 준비하기 시작한다.
Tx2
In0:
amount: tf
ref: ...
unlocked by: ...
In1:
amount: <dust>
ref: Tx1:Out1
unlocked by: <Bob's signature> OP_2 OP_3
Out0:
amount: <dust>
locked by: ...
밥은 이제 거래에 서명하고, 그것을 검증하고, 스택으로부터 Tx1:Out1의 잠금해제 스크립트와 연결된(chained) Tx2:In1의 잠금해제 스크립트의 출력을 읽을(읽기 위해 최적화된 클라이언트를 이용할) 것이다.
그러면 그는 다음의 입력 및 출력을 추가하여 Tx2를 변경할 것이다.
In2:
amount: A
ref: Tx1:Out2
unlocked by: <Bob's signature> OP_5
Out1:
amount: A
locked by: ...
여기서, 분명히 OP_5는 연산의 제1 청크의 결과이다. 또한 이 경우, 밥이 OP_5를 다른 것으로 대체하는 거래를 브로드캐스트 하지 못하도록 다중 서명(multi-signature)을 이용할 수 있다. 이러한 접근은 많은 수의 청크(거래에서 입력 및 출력의 개수에 대한 제한까지)가 두 개의 거래만을 이용하여 연결될 수 있다는 이점을 가진다. 그러므로, 복잡한 기능 및 연산은 블록체인 네트워크에 의해 채굴되고 검증되기 위해 두 개의 거래만을 요구하고, 블록체인에 대한 최소한의 필요 메모리(storage requirement)를 이용하여, 효율적인 방식으로 수행될 수 있다.
대안적인 접근에 따라, 다음의 단계가 수행될 수 있다.
제1 거래 Tx1은 입력의 모든 소유자에 의해 공동으로 서명되고 준비된다.
입력은 다음의 잠금 스크립트를 이용하여 앨리스의 공개키에 전송된다:
OP_ADD OP_SWAP <Alice's pubKey> OP_SWAP OP_CHECKSIG OP_DROP
Tx1
In:
amount: A + tf
ref: ...
unlocked by: ...
Out1:
amount: A
locked by: OP_ADD OP_SWAP <Alice's pubKey> OP_SWAP OP_CHECKSIG OP_DROP
이제 앨리스는 다음의 방법으로 Tx2를 준비할 것이다.
Tx2
In1:
amount: 2*<dust> + tf
ref: ...
unlocked by: ...
In2:
amount: A
ref: Tx1:Out1
unlocked by: <Alice's signature> OP_2 OP_3
Out1:
amount: <dust>
locked by: ...
여기서 Tx2:In2는 이제 플래그(flag) SIGHASH_NONE으로 서명될 것이므로, 다른 출력이 추가될 수 있다. 기술분야에서 알려진 것처럼, SIGHASH_NONE은 입력만을 서명하는 비트코인 서명 해시 타입이다. 그러므로, SIGHASH_NONE이 사용되면, 누구든 그들이 선택한 어떠한 방식으로든 출력을 수정할 수 있다.
Tx2:In1은 아마도 앨리스의 자금을 고려하고 SIGHASH_SINGLE을 통해 잠금해제 될 수 있으므로, 다시, 다른 출력이 추가될 수 있다. 현재 형태에서, 거래는 거래 금액 A를 거래 수수료로 이체할 것이다. 그러나, 앨리스는 현재 형태에서 거래를 브로드캐스트 하지 않고, 단순히 국지적으로(locally) 이를 확인한다. 확인 프로세스에서 Tx2:In2의 잠금해제 스크립트는 Tx1:Out의 잠금 스트립트와 함께 실행될 것이다.
<Alice's signature> OP_2 OP_3 OP_ADD OP_SWAP <Alice's pubKey> OP_SWAP OP_CHECKSIG OP_DROP
그리고 스택의 실행 말단에서 나머지 결과는 5, 즉 연산의 제1 청크의 결과일 것이다. 앨리스의 커스텀 비트코인 클라이언트는 연산의 제1 청크의 결과를 기록하거나 저장하고 다음 두 개의 출력을 추가함으로써 Tx2를 수정할 것이다.
Out2:
amount: A
locked by: OP_3 OP_GREATERTHAN OP_SWAP <Bob's pubKey> OP_DROP
Out3:
amount: <dust>
locked by: OP_RETURN OP_5
그러나 이번에는 통상적인 플래그 SIGHASH_ALL을 통해, 그녀는 다시 Tx2의 입력에 서명할 것이며, 이제 거래의 출력은 수정될 수 없다. 밥은 이제 OP_RETURN후 Out3에 저장된 데이터를 읽음으로써 연산을 완료할 수 있다.
기술분야에서 알려진 것처럼, OP_RETURN은 거래 출력(TxO)을 무효로 표시하는데 사용될 수 있는 비트코인 연산 부호다. OP_RETURN 후 제공된 데이터는 비트코인 지불에 대하여 무시되므로, OP_RETURN은 블록체인을 통해 미지불 관련 데이터를 전달하기 위한 메커니즘으로서 종래 기술에서 사용되어 왔다.
밥은 이제 다음 거래를 준비한다.
Tx3
In:
amount: A
ref: Tx2:Out2
unlocked by: <Bob's signature> OP_5
Out: ...
원칙적으로, OP_RETURN 후 DHT에 인덱스 된 해시를 저장할 수 있으므로, 임의로 긴 중간 결과가 거래 사이에 전달될 수 있다. 분명히, 이 예시에서 앨리스는 밥이 상기에서처럼 Tx3를 준비할 것으로 믿으므로, 연산은 성공적으로 완료될 수 있다. 간단한 확장은 Tx2:Out2가 앨리스와 밥에 의해 서명되도록 요청할 수 있으므로, 앨리스는 밥이 올바른 거래를 준비하였다는 것을 검증할 수 있다. 그러나, 밥은 거래를 준비하거나 이에 서명하는 것을 거절함으로써 실행을 무기한 연기할 수 있다. 앨리스는 또한Tx3를 준비하고, 그것을 밥에서 보내고, OP_RETURN 후 데이터를 저장하지 않을 수 있다. 이러한 접근은 누군가에게 연산의 각 청크가 블록체인에 있다는 확인을 기다리도록 요청할 수 있다는 점에 주목해야 한다.
기본 기법의 이러한 두 가지 구현의 상세한 예시는 첨부된 도면을 참조하여 아래에서 제공된다. 다음의 설명은 아래와 같이 구성된다.
Figure 112019070310836-pct00006
"실시예 1"은 두 개의 거래만을 이용하는 첫번째 접근을 설명한다; 다중 입력 및 출력이 조작됨
Figure 112019070310836-pct00007
"실시예 2"는 동일한 기술 효과를 얻기 위해 다중 거래를 "링크(link)"하거나 연결(chain)시키는 대체 접근을 설명한다. 두 가지 접근의 조합이 가능하다는 점에 주목해야 한다.
두 실시예의 이용을 설명하기 위해, 우리는 이제 다음과 같이 정의되는 함수 f(x,y,z)를 평가하는 다음의 예시를 고려한다.
Figure 112019070310836-pct00008
우리(또는 컴파일러)는 간단한 함수의 합으로써 f(x,y,z)를 표현한다.
Figure 112019070310836-pct00009
Figure 112019070310836-pct00010
Figure 112019070310836-pct00011
양 실시예에서, 함수(function) g1 및 g2 자체는 잠금 스크립트에 포함되는 반면, 인수(argument) g1 및 g2를 나타내는 변수(variable) x, y 및 z는 거래 잠금해제 스크립트에 포함될 것이다. 그러므로, 이후부터는, 용어 “함수” 및 “잠금 스크립트”를 교환적으로 사용할 것이다. 특히, x 및 y는 g1을 포함하는 잠금 스크립트를 잠금해제하는 스크립트에 있을 것이다. 유사하게, g1(x, y) 및 z는 g2를 포함하는 잠금 스크립트를 잠금해제하는 스크립트에 있을 것이다.
이 문서의 후속 섹션에서, 우리가 사용하는 예시는 연산 부호 OP_ADD 및 PrO_MULT를 포함한다. 이들 식별자는 산술 연산자 덧셈 (+) 및 곱셈 (
Figure 112019070310836-pct00012
)을 각각 나타낸다. 연산 부호 OP_X, OP_Y 및 OP_Z는 변수 x, y 및 z를 나타낸다. 부호 G1 및 G2는 g1 및 g2에 대응하는 잠금 스크립트가 잠금해제 된 후 스택의 상단에 있는 값을 나타낸다. OP_ADD는 비트코인 스크립트 언어의 일부를 형성하는 연산 부호이다. 우리는 곱셈 연산을 수행하기 위해 실행될 수 있는 연산을 나타내는 “기본 연산자(primitive operator)”를 줄인, 용어 “PrO_MULT”를 사용한다. 비트코인의 현재 버전에서, 곱셈에 대한 연산 부호(OP_MUL, OP_2MUL과 같은)는 비활성화되고, 그래서 PrO_MULT는 그러한 현재 비활성화된 기능을 제공하기 위해 맞춤 정의된(custom-defined) 연산일 수 있다. 물론, OP_MUL 등의 연산 부호가 재활성화되면 이들은 대신 사용될 수 있다. 따라서, 본 발명은 표준(활성화된) 연산 부호를 사용하는 기능에만 사용될 수 있고, 맞춤 생성(custom-built) 연산자의 구현 세부 사항은 본 발명의 일부가 아니거나 관련성이 없다. 그러므로 PrO_MULT가 어떻게 구현될 수 있는가에 관련된 세부 사항은 본 발명의 이해에 필수적이지 않고, 명확성을 위해 여기에 포함되지 않았다.
여기서 제시된 예시는 긴 스크립트의 성공적인 실행을 조건으로, 자금이 앨리스에서 밥으로 전달되는 매우 간단한 스마트 계약의 실행에 해당한다. 스크립트 입력은 밥에 의해 제공되고, 두 개의 가능한 악의적 행동을 예상할 수 있다. 첫번째로, 밥은 스크립트가 성공적으로 실행되고 자금이 그에게 전달되도록 잘못된 입력을 제공할 수 있다. 그러나, 거래가 블록체인에 저장되면, 입력은 앨리스가 계약에 이의를 제기할 수 있도록 공개적으로 이용될 수 있다. 두번째로, 밥이 앨리스로터의 전달을 거절한 어떠한 이유를 가진다면, 그는 거래를 무기한 연기하도록 결정할 수 있고, 따라서 계약의 실행을 방해할 수 있다. 가장 간단한 시나리오에서, 앨리스는 밥이 계약의 실행을 연기하지 않을 것이고 그는 올바른 입력을 제공할 것이라는 것을 간단히 신뢰해야 한다. 추가적인 보안 메커니즘은 보안을 강화하기 위해 독창적 개념과 함께 활용될 수 있다.
실시예 1: 스크립트를 다수의 입력 및 출력으로 분할하기
도 1, 9a 및 9b는 실시예 1의 다중 입력/출력 접근에 관련된 순차적인 단계 및 일련의 거래를 도시한다. Tx1은 Tx2에 의해 소비될 미사용 거래 출력(Unspent Transaction Outputs, UTXOs)의 세트를 포함한다. Tx2의 구성은 점진적으로, 단계적으로 진행된다. 각 단계에서, (자동화된 소프트웨어) 에이전트는 Tx1의 하나의 UTXO에 잠금해제 스크립트를 제시한다. 에이전트는 Tx2를 검증하고, 스택 상단에 대한 값을 읽고, 새로운 잠금해제 스크립트를 준비한다. 스크립트 및 블록체인 거래의 자동화된 생성은 기술분야에 알려져 있고 따라서 여기서 설명하지 않는다.
에이전트는 이전 단계(또는 더 이른 단계로부터)의 스택으로부터 획득된 정보를 이용할 수 있고, 이러한 새로운 잠금해제 스크립트를 Tx1 내에 포함된 다른 UTXO에 제시할 수 있다. Tx2는 모든 필수 단계가 현재 작업에 대해 완료되면 브로드캐스트된다.
이점으로, 이러한 기법은 Tx2에 의해 제공된 잠금해제 스크립트에 포함된 인수로부터 Tx1의 잠금 스크립트에 포함된 함수를 분리시킨다. Tx1이 블록체인에 추가되고 검증되면 함수는 변경되지 않는다. 게다가, 이 단계에서, 함수 인수(입력)는 심지어 알려지지 않을 수 있다. Tx2가 준비되면, 이들은 나중에 공개된다. 이는 장점이고 강화된 보안을 제공할 수 있다.
실시예 1에 대한 단계의 시퀀스는 도 1, 도 9a 및 도 9b에 도시되고 다음과 같이 설명될 수 있다.
단계 0: 앨리스는 비트코인 네트워크에 거래 1을 제출한다(도1에 도시된 것처럼).
단계 1: 밥은 거래 2의 최초 버전을 준비한다.
단계 3: 밥은 출력0에 <Bob's signature> <OP_X> <OP_Y> <Redeem script 1>를 제시한다. 밥은 거래 2를 검증하고, 스택 상단에서 값 G1을 읽으나, 거래 2를 브로드캐스트하지 않는다.
단계 4: 밥은 출력1에 <Bob's signature> <G1> <OP_Z> <Redeem script 2>를 제시한다. 밥은 거래 2를 검증하고, 스택 상단에서 값 G2를 읽으나, 거래 2를 브로드캐스트하지 않는다.
단계 5: 밥은 출력2에 <Bob's signature> <G2> <OP_X> <Redeem script 3>를 제시한다. 밥은 거래 2를 검증하고 이를 브로드캐스트한다.
단순화를 위해, 우리는 Tx1의 입력 및 Tx2의 출력에 관한 확장된 세부 사항을 제공하지 않는다. 도 2는 거래 1(Tx1)을 나타낸다. 도 3은 거래2(Tx2)를 나타낸다.
실시예 2: 스크립트를 다중 거래로 분할하기
두번째 실시예는 함수를 구성하기 위해 블록체인 거래를 이용한다(도 4 참조). 이러한 접근은 이전 실시예와 원칙적으로 유사하다. 그러나, 검증 단계 동안, 에이전트는 스택 상단에서 값을 읽고, 상기에서 설명된 OP_RETURN 후에 그것/그것들을 추가한다.
도 5 내지 도 8은 실시예 2의 예시 버전에 따른 거래 1, 2, 3 및 4를 나타낸다.
상기에서 언급한 실시예는 본 발명을 제한하기 보다는 설명하기 위한 것이며, 기술분야의 당업자는 첨부된 청구항에 의해 정의되는 본 발명의 범위로부터 출발하지 않고 많은 다른 대안을 설계할 수 있음에 주목해야 한다. 청구항에서, 괄호 안에 있는 참조 부호는 청구항을 제한하는 것으로 해석해서는 안된다. "포함하는" 및 "포함한다" 그리고 이와 유사한 단어는 어떤 청구항 또는 명세서 전체에 나열된 것 이외의 구성 요소나 단계의 존재를 배제하지 않는다. 본 명세서에서, "포함한다"는 "구성하거나 이루어진다"를 의미하고, "구성하는"은 "구성하거나 이루어지는"을 의미한다. 구성 요소의 단일 참조는 그러한 구성 요소의 복수 참조를 배제하지 않으며 그 반대도 마찬가지이다. 본 발명은 몇몇 개별 구성 요소를 포함하는 하드웨어에 의해 그리고 적절하게 프로그램된 컴퓨터에 의해 구현될 수 있다. 몇몇 수단을 열거하는 장치 청구항에서, 이들 수단 중 몇몇은 하나의 동일한 하드웨어 물품에 의해 실시될 수 있다. 특정 방법이 서로 다른 종속항에 나열된다는 단순한 이러한 방법의 조합이 유리하게 이용될 수 없다는 것을 나타내지 않는다.

Claims (16)

  1. 컴퓨터로 구현되는 작업을 실행하기 위해 복수의 블록체인 거래를 이용하는 방법으로서,
    스택에 결과를 제공하기 위해 다른 거래(Tx1)의 잠금 스크립트(LS1)에 적어도 하나의 데이터 항목을 제시하여 블록체인 거래(Tx2)의 제1 입력(In1)에 관한 잠금해제 스크립트(ULS1)를 이용하는 단계;
    제2 입력(In2)에 관한 추가 잠금해제 스크립트(ULS2)를 생성하고 상기 스택의 결과를 구성하는 단계; 여기서 상기 제2 입력(In2)은 추가 블록체인 거래(Tx3)에 제공되고; 그리고
    상기 스택의 결과가 추가 잠금 스크립트에 입력으로 제공되도록 추가 잠금 스크립트(LS2)에 상기 추가 잠금해제 스크립트(ULS2)를 제시하는 단계를 포함하는 방법.
  2. 제1항에 있어서,
    상기 잠금 스크립트(LS1) 및 추가 잠금 스크립트(LS2)는 상이한 블록체인 거래의 출력과 연관되는 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 잠금해제 스크립트(ULS1) 및 추가 잠금해제 스크립트(ULS2)는 상이한 블록체인 거래의 입력과 연관되는 방법.
  4. 제1항에 있어서,
    상기 잠금 스크립트(LS1) 내에 제공되는 명령어의 시퀀스 또는 연산의 실행에 상기 적어도 하나의 데이터 항목을 이용하는 단계를 더 포함하는 방법.
  5. 제1항에 있어서,
    상기 추가 잠금 스크립트(LS2) 내에 제공되는 명령어의 시퀀스 또는 연산의 실행에 상기 스택에 제공되는 상기 결과를 이용하는 단계를 더 포함하는 방법.
  6. 제1항에 있어서,
    상기 스택의 결과를 획득하는 단계를 더 포함하는 방법.
  7. 제1항에 있어서,
    상기 스택의 상기 결과를 획득하기 위해 블록체인 클라이언트를 이용하는 단계를 더 포함하고,
    바람직하게는 상기 블록체인 클라이언트는 비트코인 클라이언트인 방법.
  8. 제1항에 있어서,
    상기 스택에 상기 결과를 생성하기 위해 추가 거래(Tx3) 및/또는 상기 다른 거래(Tx1) 및/또는 상기 블록체인 거래(Tx2)를 검증하는 단계를 더 포함하는 방법.
  9. 제1항에 있어서,
    상기 스택의 결과를 획득하고 반환 명령 또는 명령어 다음 잠금해제 스크립트에 상기 결과를 삽입하는 단계를 포함하는 방법.
  10. 제9항에 있어서,
    상기 명령 또는 명령어는 비트코인 OP_RETURN 연산 부호인 방법.
  11. 제1항에 있어서,
    상기 추가 잠금 스크립트(LS2)에 추가 잠금해제 스크립트(ULS2)를 제시하는 단계는,
    상기 스택 또는 상이한 스택에 추가 결과를 제공하는 방법.
  12. 제1항에 있어서,
    블록체인 네트워크에 추가 거래(Tx3) 및/또는 다른 블록체인 거래(Tx1) 및/또는 블록체인 거래(Tx2)를 제출하는 단계를 더 포함하는 방법.
  13. 제1항에 있어서,
    상기 적어도 하나의 데이터 항목은 상기 잠금해제 스크립트(ULS1) 내에 메타데이터로서 제공되고; 및/또는
    상기 결과는 상기 추가 잠금해제 스크립트(ULS2) 내에 메타데이터로서 제공되는 방법.
  14. 제1항에 있어서,
    상기 단계들 중 하나 이상을 한번 이상 수행하는 단계를 더 포함하는 방법.
  15. 제1항에 있어서,
    상기 블록체인은 합의 기반, 분산, 전자 원장이고; 및/또는
    상기 블록체인은 비트코인 블록체인이고; 및/또는
    상기 거래의 하나, 일부 또는 전부는 비트코인 거래이고; 및/또는
    상기 방법은 비트코인 블록체인에서 실행되도록 구성되는 방법.
  16. 삭제
KR1020197019947A 2016-12-21 2017-12-15 스크립트 크기 및 연산 부호 제한에 대한 보안 기반 제한을 유지하는 동안 블록체인에서 복잡한 기능을 활성화하는 컴퓨터 구현 시스템 및 방법 KR102504033B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
GB1621830.7 2016-12-21
GBGB1621831.5A GB201621831D0 (en) 2016-12-21 2016-12-21 Computer-implemented system and method
GBGB1621830.7A GB201621830D0 (en) 2016-12-21 2016-12-21 Computer-implemented system and method
GB1621831.5 2016-12-21
GB1621827.3 2016-12-21
GBGB1621827.3A GB201621827D0 (en) 2016-12-21 2016-12-21 Computer-implemented system and method
PCT/IB2017/058008 WO2018116105A1 (en) 2016-12-21 2017-12-15 Computer-Implemented Systems and Methods To Enable Complex Functionality On A Blockchain While Preserving Security-Based Restrictions On Script Size and Opcode Limits

Publications (2)

Publication Number Publication Date
KR20190094217A KR20190094217A (ko) 2019-08-12
KR102504033B1 true KR102504033B1 (ko) 2023-02-28

Family

ID=60990839

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020197019947A KR102504033B1 (ko) 2016-12-21 2017-12-15 스크립트 크기 및 연산 부호 제한에 대한 보안 기반 제한을 유지하는 동안 블록체인에서 복잡한 기능을 활성화하는 컴퓨터 구현 시스템 및 방법
KR1020197020420A KR102525244B1 (ko) 2016-12-21 2017-12-15 스크립트 크기 및 연산 부호 제한에 대한 보안 기반 제한을 유지하는 동안 블록체인에서 복잡한 기능을 활성화하는 컴퓨터 구현 시스템 및 방법
KR1020197020330A KR102481934B1 (ko) 2016-12-21 2017-12-15 스크립트 크기 및 연산 부호 제한에 대한 보안 기반 제한을 유지하는 동안 블록체인에서 복잡한 기능을 활성화하는 컴퓨터 구현 시스템 및 방법

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020197020420A KR102525244B1 (ko) 2016-12-21 2017-12-15 스크립트 크기 및 연산 부호 제한에 대한 보안 기반 제한을 유지하는 동안 블록체인에서 복잡한 기능을 활성화하는 컴퓨터 구현 시스템 및 방법
KR1020197020330A KR102481934B1 (ko) 2016-12-21 2017-12-15 스크립트 크기 및 연산 부호 제한에 대한 보안 기반 제한을 유지하는 동안 블록체인에서 복잡한 기능을 활성화하는 컴퓨터 구현 시스템 및 방법

Country Status (9)

Country Link
US (5) US11669836B2 (ko)
EP (3) EP3387786B1 (ko)
JP (3) JP7039594B2 (ko)
KR (3) KR102504033B1 (ko)
CN (3) CN110063041B (ko)
HK (3) HK1254559B (ko)
TW (1) TWI753983B (ko)
WO (3) WO2018116106A1 (ko)
ZA (2) ZA201903968B (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11669836B2 (en) * 2016-12-21 2023-06-06 Nchain Licensing Ag Computer-implemented systems and methods to enable complex functionality on a blockchain while preserving security-based restrictions on script size and opcode limits
GB201701589D0 (en) 2017-01-31 2017-03-15 Nchain Holdings Ltd Computer-implemented system and method
US11989208B2 (en) * 2018-08-06 2024-05-21 Inveniam Capital Partners, Inc. Transactional sharding of blockchain transactions
CN109447636A (zh) * 2018-10-15 2019-03-08 联动优势科技有限公司 一种资产转移方法及装置
CN109903161B (zh) * 2019-02-28 2021-11-09 百度在线网络技术(北京)有限公司 基于区块链的对象处理方法、装置、设备及介质
GB201907346D0 (en) * 2019-05-24 2019-07-10 Nchain Holdings Ltd Using blockchain transactions to provide off-chain functionality
GB201907345D0 (en) * 2019-05-24 2019-07-10 Nchain Holdings Ltd Protocol for validating blockchain transactions
CN110337102A (zh) * 2019-06-28 2019-10-15 阿里巴巴集团控股有限公司 基于区块链的终端锁定方法及装置
KR102057570B1 (ko) * 2019-09-16 2020-01-23 (주) 모로보기 블록체인 네트워크
GB2588660A (en) * 2019-10-31 2021-05-05 Nchain Holdings Ltd Request and response protocol using blockchain transactions
CN111652615B (zh) * 2020-06-24 2021-01-29 广西新农商供应链科技有限公司 基于区块链大数据的安全识别方法及人工智能云服务平台
CN112801665B (zh) * 2021-03-19 2021-08-24 北京万物智链科技有限公司 一种基于服务器中继的跨链交易方法及系统
GB202109064D0 (en) * 2021-06-24 2021-08-11 Nchain Licensing Ag Computer implemented method and system

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008033952A2 (en) * 2006-09-15 2008-03-20 Sandisk Corporation Non-volatile memory and method for class-based update block replacement rules
US20160085955A1 (en) * 2013-06-10 2016-03-24 Doosra, Inc. Secure Storing and Offline Transferring of Digitally Transferable Assets
US11250493B2 (en) 2014-03-31 2022-02-15 Monticello Enterprises LLC System and method for performing social media cryptocurrency transactions
US11270298B2 (en) * 2014-04-14 2022-03-08 21, Inc. Digital currency mining circuitry
CN103927397B (zh) * 2014-05-05 2017-02-22 湖北文理学院 一种基于区块树的Web页面链接块的识别方法
WO2015183497A1 (en) 2014-05-06 2015-12-03 Case Wallet, Inc. Cryptocurrency virtual wallet system and method
CN106664292A (zh) 2014-05-09 2017-05-10 凡尔塔斯姆有限公司 可选地具有估值过滤器的用于低信任和零信任价值转移的设备、系统和方法
KR101660627B1 (ko) * 2015-02-03 2016-09-28 한양대학교 에리카산학협력단 암호화 화폐의 거래를 보호하는 방법 및 장치
CN105991731A (zh) 2015-02-13 2016-10-05 中兴通讯股份有限公司 一种获取信息的方法、智能终端和服务端
US20160260095A1 (en) 2015-03-02 2016-09-08 Dell Products, Lp Containerized Computational Task Execution Management Using a Secure Distributed Transaction Ledger
US10484168B2 (en) 2015-03-02 2019-11-19 Dell Products L.P. Methods and systems for obfuscating data and computations defined in a secure distributed transaction ledger
PL3073670T4 (pl) * 2015-03-27 2021-08-23 Black Gold Coin, Inc. System i sposób osobistej identyfikacji i weryfikacji
US11200564B2 (en) 2015-03-31 2021-12-14 Nasdaq, Inc. Systems and methods of blockchain transaction recordation
US20160300234A1 (en) * 2015-04-06 2016-10-13 Bitmark, Inc. System and method for decentralized title recordation and authentication
US10963881B2 (en) * 2015-05-21 2021-03-30 Mastercard International Incorporated Method and system for fraud control of blockchain-based transactions
EP3317775B1 (en) 2015-07-02 2022-02-16 Nasdaq, Inc. Systems and methods of secure provenance for distributed transaction databases
CN105573828B (zh) * 2015-12-17 2019-04-12 布比(北京)网络技术有限公司 一种操作处理方法及装置
US9948467B2 (en) * 2015-12-21 2018-04-17 Mastercard International Incorporated Method and system for blockchain variant using digital signatures
WO2017173399A1 (en) 2016-03-31 2017-10-05 Clause, Inc. System and method for creating and executing data-driven legal contracts
US10333705B2 (en) 2016-04-30 2019-06-25 Civic Technologies, Inc. Methods and apparatus for providing attestation of information using a centralized or distributed ledger
US10838846B1 (en) * 2016-05-16 2020-11-17 Jpmorgan Chase Bank, N.A. Method and system for implementing an automation software testing and packaging framework
CN106096967A (zh) * 2016-06-20 2016-11-09 深圳市淘淘谷信息技术有限公司 一种用区块链来标示数字货币流通的方法
CN106130738A (zh) * 2016-08-25 2016-11-16 杭州天谷信息科技有限公司 一种支持国密算法的区块链系统
CN106503053B (zh) 2016-09-26 2019-07-16 江苏通付盾科技有限公司 Utxo查询方法及装置
US11669836B2 (en) * 2016-12-21 2023-06-06 Nchain Licensing Ag Computer-implemented systems and methods to enable complex functionality on a blockchain while preserving security-based restrictions on script size and opcode limits
CA3055829A1 (en) * 2017-03-08 2018-09-13 Ip Oversight Corporation System and method for creating commodity asset-secured tokens from reserves
US10891384B2 (en) * 2017-10-19 2021-01-12 Koninklijke Kpn N.V. Blockchain transaction device and method
CN111480315A (zh) * 2017-12-15 2020-07-31 区块链控股有限公司 使用低熵密码授权区块链交易的计算机实现的系统和方法
JP6736033B2 (ja) 2018-06-12 2020-08-05 フレセッツ株式会社 暗号通貨のためのウォレット装置及びその装置を用いる署名方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Alexander Mulli. A Decentralized Bitcoin Exchange with Bitsquare-Attack Scenarios and Countermeasures. Diss. Master’s thesis, 2015.
Andreas M Antonopoulos. Mastering Bitcoin: unlocking digital cryptocurrencies. " O'Reilly Media, Inc.", 2014.
Ilias Giechaskiel 외 2명. "On Bitcoin Security in the Presence of Broken Cryptographic Primitives." European Symposium on Research in Computer Security. Springer, Cham, 2016.

Also Published As

Publication number Publication date
EP3387786A1 (en) 2018-10-17
CN110169012B (zh) 2023-04-18
HK1254558B (zh) 2020-03-20
WO2018116106A1 (en) 2018-06-28
HK1254560B (zh) 2020-03-27
US20190356467A1 (en) 2019-11-21
US20230410106A1 (en) 2023-12-21
US20220398579A1 (en) 2022-12-15
KR20190094217A (ko) 2019-08-12
US20200092105A1 (en) 2020-03-19
WO2018116104A1 (en) 2018-06-28
ZA201903968B (en) 2021-01-27
CN110063041A (zh) 2019-07-26
JP6983890B2 (ja) 2021-12-17
HK1254559B (zh) 2020-03-20
JP7003133B2 (ja) 2022-01-20
CN110169013A (zh) 2019-08-23
KR20190094229A (ko) 2019-08-12
TW201830271A (zh) 2018-08-16
EP3387787B1 (en) 2019-03-20
JP2020514854A (ja) 2020-05-21
US11669836B2 (en) 2023-06-06
CN110169013B (zh) 2023-04-18
EP3387785B1 (en) 2019-02-20
WO2018116105A1 (en) 2018-06-28
TWI753983B (zh) 2022-02-01
CN110169012A (zh) 2019-08-23
JP2020503749A (ja) 2020-01-30
EP3387785A1 (en) 2018-10-17
US20190354976A1 (en) 2019-11-21
KR102481934B1 (ko) 2022-12-27
ZA201903969B (en) 2021-01-27
EP3387787A1 (en) 2018-10-17
KR102525244B1 (ko) 2023-04-24
CN110063041B (zh) 2022-08-05
KR20190094224A (ko) 2019-08-12
US11087322B2 (en) 2021-08-10
US11238450B2 (en) 2022-02-01
EP3387786B1 (en) 2019-02-20
JP7039594B2 (ja) 2022-03-22
JP2020514853A (ja) 2020-05-21

Similar Documents

Publication Publication Date Title
KR102504033B1 (ko) 스크립트 크기 및 연산 부호 제한에 대한 보안 기반 제한을 유지하는 동안 블록체인에서 복잡한 기능을 활성화하는 컴퓨터 구현 시스템 및 방법
US11941381B2 (en) Method for compiling from a high-level scripting language to a blockchain native scripting language
CN111052165A (zh) 使用区块链的并发状态机处理
CN111480162A (zh) 用于并发字节码解释的区块链实施的系统和方法
CN112425121A (zh) 关于分布式数据库的使用控制数据网络
Petz et al. Formally verified bundling and appraisal of evidence for layered attestations

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