KR20220010534A - 작업 증명 블록체인 네트워크 상의 비병렬식 채굴용 시스템 및 방법 - Google Patents

작업 증명 블록체인 네트워크 상의 비병렬식 채굴용 시스템 및 방법 Download PDF

Info

Publication number
KR20220010534A
KR20220010534A KR1020217041235A KR20217041235A KR20220010534A KR 20220010534 A KR20220010534 A KR 20220010534A KR 1020217041235 A KR1020217041235 A KR 1020217041235A KR 20217041235 A KR20217041235 A KR 20217041235A KR 20220010534 A KR20220010534 A KR 20220010534A
Authority
KR
South Korea
Prior art keywords
blockchain
transaction
block
output
mining
Prior art date
Application number
KR1020217041235A
Other languages
English (en)
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 KR20220010534A publication Critical patent/KR20220010534A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/46Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using electromechanical counter-type accumulators
    • G06F7/462Multiplying; dividing
    • G06F7/466Multiplying; dividing by successive multiplication or division by 2
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/723Modular exponentiation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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
    • H04L2209/38
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

본 개시는 블록체인 및 연관된 네트워크의 보안을 보장하고, 블록체인의 상태에 대한 합의의 확립을 가능하게 하는 방법 및 시스템을 제공한다. 개시의 방법은 계산 난이도 매개변수, 적어도 하나의 블록체인 트랜잭션의 해시 및/또는 적어도 하나의 블록체인 블록 헤더의 해시에 기초하여 출력을 계산하기 위하여 병렬화할 수 없는 알고리즘을 사용하여 블록체인 네트워크 상의 하나 이상의 노드에 의해 구현될 수 있다. 병렬화할 수 없는, 본질적으로 순차적인 알고리즘은 다음의 연산: 재귀 연산, 모듈식 지수 및/또는 반복된 제곱 연산, 또는 이들의 조합 중 적어도 하나를 포함한다.

Description

작업 증명 블록체인 네트워크 상의 비병렬식 채굴용 시스템 및 방법
이 개시는 일반적으로 네트워크 내에서 수행되는 계산 작업에 대한 처리 효율성, 신뢰성, 보안 및 자원 요구사항을 개선하기 위한 방법 및 시스템에 관한 것이다. 개시는 블록체인 관련 채굴, 검증 및 자원 이전과 관련하여 사용하기에 특히 적합하지만 이에 제한되지 않는다.
이 문서에서 우리는 모든 형태의 전자, 컴퓨터 기반, 분산 원장을 포함하기 위하여 '블록체인'이라는 용어를 사용한다. 이는 합의 기반(consensus-based) 블록체인 및 트랜잭션 체인 기술, 허가 및 비허가 원장, 공유 원장, 공용 및 사설 블록체인 및 그 변형을 포함한다. 다른 블록체인 구현이 제안되고 개발되었지만, 블록체인 기술의 가장 널리 알려진 응용은 비트코인 원장이다. 비트코인은 편의 및 예시의 목적으로 본원에서 언급될 수 있지만, 개시는 비트코인 블록체인과 함께 사용하는 것으로 제한되지 않으며, 대안적인 블록체인 구현 및 프로토콜이 본 개시의 범위 내에 속한다는 점에 유의하여야 한다. 용어 "사용자"는 본원에서 사람 또는 프로세서 기반 자원을 지칭할 수 있다. 본원에서 용어 "비트코인"은 비트코인 프로토콜로부터 도출되거나 이에 기초하는 모든 버전 또는 변형을 포함하는 것으로 사용된다.
블록체인은 트랜잭션으로 구성된 블록으로 구성된 컴퓨터 기반 탈중앙화된 분산 시스템으로 구현되는 피어-투-피어(peer-to-peer) 전자 원장이다. 각 트랜잭션은 블록체인 시스템 참여자 사이의 디지털 자산/자원 제어 전송을 인코딩하는 데이터 구조이며, 적어도 하나의 입력과 적어도 하나의 출력을 포함한다. 각 블록에는 이전 블록의 해시가 포함되어 블록이 함께 연결되어 처음부터 블록체인에 기록된 모든 트랜잭션에 대한 영구적이고 변경 불가능한 기록을 생성한다. 트랜잭션에는 그 입력 및 출력에 내장된 스크립트로 알려진 작은 프로그램이 포함되며, 이는 트랜잭션의 출력에 접근할 수 있는 방법과 대상을 지정한다. 비트코인 플랫폼에서, 이러한 스크립트는 스택 기반 스크립트 언어를 사용하여 작성된다.
트랜잭션이 블록체인에 기록되려면, "유효성 검증(validated)"되어야 한다. 네트워크 상의 노드("채굴자")는 각 트랜잭션이 유효함을 보장하며, 유효하지 않은 트랜잭션은 네트워크에서 거부된다. 노드에 설치된 소프트웨어 클라이언트는 지출되지 않은 트랜잭션에 대하여 그것이 블록체인 프로토콜 규칙을 따르는지 검사하고 또한 잠금 및 대응하는 잠금 해제 스크립트를 실행하여 이 유효성 검증 작업을 수행한다. 잠금 및 잠금 해제 스크립트의 실행이 참(TRUE)으로 평가되면, 트랜잭션은 유효하다. 따라서, 트랜잭션이 블록체인에 기록되려면, i) 트랜잭션을 수신하는 제1 노드에 의해 유효성 검증되어야 하며-트랜잭션이 유효성 검증되면, 채굴 노드는 이를 네트워크의 다른 노드에 중계하고, ii) 채굴자가 구축한 새로운 블록에 추가되어야 하며, iii) 채굴, 즉 과거 트랜잭션의 공개 원장에 추가되어야 한다.
새로운 블록을 구축하기 위해, 채굴자들은 계산(당업계에서 "퍼즐" 또는 "도전"으로 알려져 있을 수 있음)에 대한 해(작업 증명(proof of work), 또한 "PoW" 또는 "논스(nonce)"로 알려져 있음)를 먼저 찾고자 하는 목적으로 자원 집약적인 작업을 수행하여 경쟁한다. 퍼즐의 난이도는 새로운 블록이 블록체인에 추가되는 속도에 영향을 미치기 위해 시간이 지남에 따라 조정될 수 있다. 이는 해를 찾는 것이 얼마나 어려운지에 영향을 미치는 변경 가능한 난이도 매개변수를 사용하여 수행되므로, 프로토콜은 네트워크의 해시 파워가 변경될 때 상대적으로 일정한 속도로 새로운 블록 사이의 평균 시간을 유지할 수 있다. 비트코인에서, 채굴자는 SHA256 해싱 알고리즘을 사용하여 해싱될 때 네트워크 프로토콜에 의해 설정된 현재 난이도 수준(매개변수)보다 낮거나 같은 해시 값을 생성하는 PoW를 찾는다.
채굴자가 현재 퍼즐에 대한 PoW를 가장 먼저 찾으면, 해당 채굴자는 새로운 블록을 생성한 다음 네트워크의 다른 채굴자에게 메시지로 브로드캐스팅한다. 다른 채굴자가 유효한 것으로 수락하려면 새로운 블록에 검증 가능한 PoW가 포함되어야 한다. 따라서, 채굴은 네트워크 상의 노드가 동기화되는 것을 보장하고 블록체인의 합법적인 현재 상태에 대해 동의하도록 하는 합의 메커니즘을 제공한다. 또한 특정 유형의 잠재적인 네트워크 공격으로부터 보호하여 네트워크에 보안을 제공한다.
비트코인의 초기에는, 채굴의 계산 요구사항이 충분히 낮아서 채굴자들이 표준 CPU로 구성된 범용 컴퓨터를 사용할 수 있었다. 그러나, 더 강력한 컴퓨터를 가진 채굴자는 덜 강력한 컴퓨터를 가진 채굴자보다 경쟁 우위를 가지고 있다. 이 인센티브는 퍼즐 난이도의 역사적 증가와 결합되어 주문형 집적 회로(Application-Specific Integrated Circuit; ASIC) 채굴 디바이스의 광범위한 사용으로 이어졌다. 또한, ASIC 디바이스 그룹을 연결하여 PoW 해를 찾는 데 관련된 작업을 공유할 수 있다. 이러한 경우, 상이한 기계를 사용하여 상이한 PoW 논스 또는 범위를 시도할 수 있다. 따라서, 채굴 알고리즘이 디바이스에 걸쳐 병렬화될 수 있다.
그러나, 더 강력한 디바이스는 더 비싸고 작동 및 냉각에 더 많은 에너지가 필요하다. 일부에서는 하드웨어 불평등이 네트워크 내에서 채굴력의 잠재적인 중앙 집중화를 촉진하여, 가능한 결점이나 취약성을 초래할 수 있다고 주장했다. 이러한 우려는 "ASIC 내성" 채굴 해결책의 개발에 대한 관심을 불러일으켰다. 그러나, 제안된 해결책은 충돌 내성 SHA256 해시 알고리즘을 소위 '대역폭 하드(bandwidth-hard)' 함수로 변경하기 위한 PoW 알고리즘 수정이 포함되며 제한적이거나 논란의 여지가 있다.
따라서 블록체인 네트워크에서 (적어도) 경쟁 노드가 제공하는 합의 메커니즘과 보안을 유지하면서 비용, 에너지 사용량 및 필요한 계산 자원을 줄이고 탈중앙화 네트워크의 이점을 유지하는 기술적 도전을 해결하여야 할 필요가 있다.
본 개시는 병렬화할 수 없는 합의 메커니즘을 사용하는 비병렬식 채굴(non-parallelised mining; NPM) 기술, 하드웨어 및 소프트웨어 배열, 네트워킹 기술 및 방법 및 이들의 조합을 포함하는 양상 및 실시예를 제공함으로써 적어도 이러한 기술적 문제를 다룬다. 개시는 본질적으로 순차적인 알고리즘을 사용하여 블록체인의 상태에 대한 보안을 제공하고 합의를 확립할 수 있다.
본원에서, "순차적 알고리즘(sequential algorithm)"이라는 용어는 다른 처리가 병렬로 실행되지 않고 처음부터 끝까지 순차적으로 실행되어야 하는 알고리즘을 의미한다. 예로는 뉴튼(Newton)의 방법(립슨, 존 D. "뉴튼의 방법: 훌륭한 대수 알고리즘". 기호 및 대수 계산에 대한 제3차 ACM 심포지엄 회보. ACM, 1976.)과 같은 반복적 수치 방법과 재귀 공식을 사용하여 수학적으로 표현할 수 있는 알고리즘이 있다.
"본질적으로 순차적인(inherently sequential)"(또는 본원에서 또한 지칭될 수 있는 바와 같이 "병렬화할 수 없는(non-parallelisable)") 알고리즘이라는 용어는 본원에서 병렬화할 수 있는 루틴/서브루틴을 사용하여 최적화될 수 없는 순차적인 알고리즘을 지칭하기 위하여 사용된다. 본원에서 사용되는 정의(아래 상세한 설명의 "조정 가능한 난이도 채굴 함수" 참조)가 문헌(그린로, 레이몬드. "그래프 검색에 대한 애플리케이션과 함께 알고리즘을 본질적으로 순차적인 것으로 분류하는 모델, 정보 및 계산 97.2 (1992): 133-149)에 존재하는 용어 및 정의의 직관적인 사용과 양립할 수 있지만 이 문구는 기술 분야 내에서 엄격하게 정의되지는 않았음을 유의한다.
도 1을 참조하면, 본 개시는 블록체인 채굴을 위한 대안적이고 개선된 시스템 및 방법을 제공한다. 블록체인 원장에 추가될 블록체인 트랜잭션(UTXO)를 채굴하기 위하여 병렬화할 수 없는 채굴 함수 또는 알고리즘이 사용된다.
요약하자면, 이는 다음에 의해 달성될 수 있다:
[단계 1]: 복수의 트랜잭션(UTXO)로부터 하나 이상의 트랜잭션(UTXO) 식별. 이 복수는 블록체인, 블록체인 프로토콜 및 블록체인 네트워크와 연관된 블록체인 프로토콜에 따른 멤풀(mempool)일 수 있다. 하나 이상의 실시예에서, 이는 작업 증명 블록체인/프로토콜/네트워크이다.
[단계 2]: 프로토콜에 따라 적용 가능하면 보상 트랜잭션(TX0) 생성
[단계 3]: 선택된 트랜잭션(즉, 블록)의 표현 R 생성
[단계 4]: 병렬화할 수 없는 채굴 알고리즘을 사용하여 블록에 대한 계산 증명 해인 계산 출력 C 제공. 이는 작업 증명 해로도 지칭될 수 있다.
[단계 5]: 블록체인 네트워크 상의 노드(들)로 메시지 전송, 메시지는 표현, 해 C 및 TX0(적용 가능하면)를 포함한다.
[단계 6]: 메시지를 수신하면 네트워크 노드(들)은 블록을 검증하고자 시도한다. 네트워크 상의 다수의 채굴자에 의해 검증되면, 블록은 블록체인에 추가되고, 그렇지 않으면 거부되고 블록체인에 추가되지 않는다.
본 개시의 양상 및 실시예가 이제, 단지 예로서, 첨부 도면을 참조하여 설명될 것이다.
도 1은 본 개시의 실시예의 개요를 도시하는 흐름도이다.
도 2는 다양한 실시예가 구현될 수 있는 컴퓨팅 환경을 예시하는 개략도이다.
이제 비병렬식 채굴(Non- Parallelised Mining; NPM ) 블록체인으로 지칭될 수 있는, 트랜잭션 데이터의 공용, 시간 순서 원장에 대한 일반화된 구조를 포함하는, 본 개시의 양상을 설명한다. 이는 다음의 요소로 구성된다:
I. 블록 내에 존재하는 트랜잭션;
Ⅱ. 트랜잭션의 집합으로 구성된 블록; 및
III. 블록 사이의 암호화 링크.
이러한 요소가 결합되어 블록체인 원장을 형성하여 모든 트랜잭션 데이터가 표준 형식의 블록으로 집계되어, 연속적인 블록이 이전 블록으로의 암호화 링크(예를 들어 해시)를 포함함으로써 체인을 형성하여 서로 관련된다.
예시적인 실시예의 구성요소
이제 본 개시의 하나 이상의 실시예에 따라 이용될 수 있는 구성요소, 및 이들을 지칭하기 위해 본원에서 사용되는 용어를 설명할 것이다.
블록체인 트랜잭션(TX)는 일부 디지털 자산 또는 자원을 제1 당사자로부터 제2 당사자에게 이전하는 것을 인코딩하는 표준화된 데이터 구조이다. 높은 수준에서, 각 트랜잭션은 입력과 출력을 포함한다. 트랜잭션의 입력은 각각 다음의 정보를 지정한다.
i. 디지털 자산이 존재한다는 기록, 즉 원장의 이전 출력에 대한 포인터,
ii. 발신인(즉, 제1 당사자)이 자산의 소유권을 이전(즉, 지출)하도록 승인하는 필수 잠금 해제 조건(들). 이것은 일반적으로 디지털 서명 또는 제1 당사자만 아는 비밀일 것이다.
트랜잭션의 출력은 각각 다음의 정보를 지정한다.
i. 디지털 자산의 소유권이 이전되는 수령인(즉, 제2 당사자).
ii. 수령인이 이후에 디지털 자산을 잠금 해제하여 '지출'할 수 있는 방법을 지정하는 잠금 조건(들)
블록체인 원장에 기록될 각 트랜잭션에는 고유 식별자가 할당된다. 본원에서 하나 이상의 예시적인 실시예에 대해 사용하기로 선택할 식별자를 트랜잭션 식별자라고 한다. 식별자는 트랜잭션 TX 와 제2 매개변수 X의 해시이다.
Figure pct00001
.
매개변수 X는 이전 블록 헤더의 해시이다. 트랜잭션은 또한 채굴자/네트워크 노드가 트랜잭션을 처음 본 시점이 아니라, 트랜잭션이 처음 생성된 시점에 따라 달라지는 타임스탬프인 TTX를 포함한다.
또한, 각 트랜잭션은 생성된 시간을 나타내는 타임스탬프를 포함한다. 이 개시에서 설명된 블록체인 실시예에 의해 사용되는 비병렬식 채굴 알고리즘은 타임스탬프가 기록된 트랜잭션을 사용한다.
TX0으로 표시되는 보상 트랜잭션은 각 블록의 제1 트랜잭션이며 새로 발행된 NPM 코인을 가장 먼저 유효한 블록을 생성한 채굴자에게 배포한다. 이는 하나의 입력만을 가질 수 있다는 점을 제외하고는, 위에서 설명한 표준 트랜잭션과 구조적으로 동일하다. 블록 채굴에 대한 총 보상은 표준 블록 보상과 트랜잭션 수수료의 조합으로 해석되기 때문이다. 이는 일반적인 의미에서 '입력'이 필요하지 않으므로, 그 입력(들)의 필드가 널(null)이고 임의의 데이터를 저장하는 데 사용할 수 있다는 것을 의미한다. 또한 일반적으로 보상 트랜잭션은 항상 블록의 제1 트랜잭션이기 때문에 타임스탬프가 필요하지 않다는 점을 유의한다.
블록(B)은 트랜잭션의 집합을 집계하고 공용 블록체인 디지털 원장에 추가되는 표준화된 데이터 구조이다. 높은 수준에서, 각 블록은 표준 트랜잭션의 집합 S, 단일 보상 트랜잭션 및 블록 헤더로 구성된다. 트랜잭션 집합 S는 블록에 포함된 N개의 트랜잭션의 완전한 집합이며, 다음과 같이 쓸 수 있다.
Figure pct00002
.
보상 트랜잭션 TX0은 각 블록에 포함될 수 있으며 해당 블록을 블록체인에 추가하는 책임이 있는 채굴자에게 보상하는 데 사용되는 트랜잭션이다. 이 트랜잭션은 동일한 블록에 포함되어 있지만, 트랜잭션 집합 S의 일부로 간주되지 않는다. 하나 이상의 프로토콜에 따라, 미리 결정된 채굴 임계값에 도달하면, 보상 트랜잭션이 포함되지 않거나, 블록에 포함되는 것이 중단될 수 있음을 유의한다.
블록 헤더
Figure pct00003
는, 블록 번호, 블록이 블록체인에 추가된 시간 또는 사용된 블록체인 프로토콜 규칙의 버전과 같이, 이를 포함하는 트랜잭션의 블록과 관련된 많은 데이터 필드를 포함할 수 있다. 그러나, 블록 헤더에 나타나야 하는 핵심 요소는 다음과 같다.
i. 암호화 링크 X;
ii.
Figure pct00004
및 트랜잭션 집합 S의 표현
Figure pct00005
, 여기에서 G는 알고리즘임;
iii. 채굴 알고리즘에 대한 계산 해
Figure pct00006
iv. 블록 타임스탬프
Figure pct00007
알고리즘 G의 요구사항은 블록의 전체 트랜잭션 집합 S와 보상 트랜잭션 TX0을 입력으로 취해야 하며 이러한 N+1개의 트랜잭션을 나타내는 데 사용할 수 있는 단일 값 R을 반환해야 한다는 것이다. G에 대한 적절한 선택은 R이 머클(Merkle) 루트에 대응하는 머클 트리 생성 알고리즘이다.
암호화 링크는 디지털 서명 또는 해시 다이제스트와 같은 여러 형식 중 하나를 취할 수 있다. 본원에서, 설명적 목적과 참조의 용이성을 위해, 암호화 링크 X를 이전 블록 헤더의 해시로 간주한다.
계산 해
Figure pct00008
(또는 C)는 비병렬식 채굴 기술/알고리즘의 출력으로 해석되는 값이다. 이 해는 블록이 블록체인에 추가되기 전에 계산되어야 하며, 이것이 없으면 유효한 블록으로 간주될 수 없는 계산 증명을 나타낸다. 본원에 설명된 PoC 해는 비트코인 PoW 퍼즐 해 또는 "논스(nonce)"와 유사하다고 볼 수 있다. 이는 또한 본원에서 C로 지칭될 수 있다. 이 PoC 해는 본 개시의 실시예를 구현하는 노드에 의해 해결되는 계산적으로 어렵지만 결정성인 문제에 대한 전역 해이다.
블록을 의미 있는 방식으로 연결하여 불변의 체인을 형성하려면, 한 블록을 다음 블록으로 연결하는 방법이 필요하다. 이것은 블록과 그 직전의 것 사이에 암호화 링크 X를 구성함으로써 달성된다. 이러한 암호화 링크에 필요한 속성은 다음과 같다.
i. 각 링크는 단방향이어야 한다.
ii. 각 링크는 정확히 두 블록을 연결해야 한다.
iii. 연결된 블록의 각 쌍은 블록체인에서 연속적으로 나타나야 한다.
이러한 특징은 암호화 링크 X를 다음과 같이 정의하는 이전 블록 헤더의 해시로 선택하기 위한 기초를 형성한다.
Figure pct00009
,
여기에서 인덱스 i는 블록 번호를 나타낸다. 여기에서, 또한 일방 암호화 해시 함수를 H로 표시하였다. 새로운 블록이 구성될 때마다, 자체 블록 헤더
Figure pct00010
내에 이전 블록 헤더의 해시
Figure pct00011
를 포함하여야 한다. 본원에서 용어 '이전 블록'은 블록체인에 성공적으로 추가된 가장 최근 블록을 의미하도록 사용된다. 이는 각각의 새로운 블록이 제1 블록인 B0에 도달할 때까지 체인을 통해 순서대로 마지막 블록에 직접 연결된다는 것을 의미한다.
NPM 블록체인의 상태를 제어하는 규칙을 프로토콜 규칙으로 지칭한다. 이러한 규칙은 다음과 같이 요약할 수 있다.
i. 트랜잭션 포맷;
ii. 블록 포맷;
iii. 트랜잭션 유효성 검증 규칙;
iv. 블록 유효성 검증 규칙; 및
v. 새로운 블록이 (채굴 프로세스를 통해) 원장에 추가되는 방법
트랜잭션 유효성 검증
가장 일반적인 경우, 유효한 트랜잭션은 프로토콜 규칙에 따라 수락되는 표준 형식이어야 한다. 트랜잭션에 대한 일반적인 규칙은 다음과 같다.
- 입력의 총 값은 출력 총 값보다 크거나 같아야 한다.
- 트랜잭션 타임스탬프는 블록 타임스탬프보다 작거나 같아야 한다.
본원에 개시된 NPM 블록체인 시스템의 실시예에 따르면, 트랜잭션이 유효하기 위해 더 이상의 조건이 부과될 필요가 없다. 그러나, NPM 블록체인의 하나 이상의 실시예는 트랜잭션당 최대 크기 또는 최대 이전 또는 디지털 자산, 입력/출력 수에 대한 제한 및 입력 및 출력 데이터에 대한 요구 사항과 같이, 트랜잭션에 배치할 수 있는 추가 유효성 검증 규칙을 요구할 수 있어 디지털 자산 소유권이 정확히 확립될 수 있도록 한다.
블록 유효성 검증
유효한 블록은 다음을 포함하여야 한다:
i. 정확히 N개의 표준 트랜잭션 집합
Figure pct00012
;
ii. 정확히 하나의 보상 트랜잭션 T0;
iii. 이전 블록에 대한 유효한 암호화 링크 X;
iv. 트랜잭션 집합 S 및 TX0에 부합하는 표현 R; 및
v. 유효한 계산 증명 C
블록이 이러한 다섯 가지 기준을 모두 충족하면, 유효하며 블록체인에 추가될 수 있다. 임의의 주어진 시간에, 보상 트랜잭션과 채굴 보상을 받는 자만이 상이한 유효한 후보 블록이 여러 개 있을 수 있다는 점에 유의하여야 한다. 이 상황은 여러 채굴자가 올바른 PoC 증명 C를 독립적으로 계산할 때 발생한다.
채굴 프로세스는 성공적인 각 채굴자로부터 하나씩, 이러한 많은 후보 블록 중 어느 것이 블록체인에 추가되는지 결정하는 역할을 한다. 요컨대, 계산 증명 C를 '먼저' 찾는 채굴자가 항상 있을 것이며, 이것이 보상 트랜잭션과 함께 프로토콜의 채굴 알고리즘에 따라 블록체인에 추가될 그들의 블록이다. 이제 본원에 개시된 NPM 채굴 노드 및 NPM 블록체인의 실시예에서 사용할 수 있는 병렬화할 수 없는 채굴(NPM) 방법에 대한 논의에 주목한다.
병렬화할 수 없는 합의 메커니즘
본 개시의 실시예는 탈중앙화된 방식으로 블록체인의 상태에 대한 합의를 달성하기 위해 채굴 기술을 활용한다. 이 기술을 구현하는 노드는 블록체인에 새로운 블록을 추가하기 위해 병렬화할 수 없는(본질적으로 순차적인 또는 "당혹스럽게 순차적인(embarrassingly sequential)"으로도 알려짐) 알고리즘을 사용한다. 또한 블록체인의 상태에 대한 합의가 정기적으로 달성된다.
이것은 전체 네트워크가 병렬 컴퓨팅에 강한(resistant) 알고리즘을 사용하여 새로운 블록에 동의할 수 있도록 보장하여, 최소한 위에서 언급한 기술적인 어려움을 피한다. 결과적으로 이것은 임의의 채굴 엔티티 또는 그룹이 CPU 클러스터링 또는 하드웨어의 불평등을 통해 네트워크의 우세(및 잠재적인 제어)를 높이는 것을 어렵게 만든다.
비병렬식 채굴 접근법은 네트워크의 모든 채굴자가 후보 블록에 대한 PoC 해를 가장 먼저 찾기 위해 경쟁할 것을 요구한다. 이러한 노드는 최소한 다음 요구 사항을 포함할 수 있는 프로토콜 규칙을 채택한다.
1. 채굴자는 블록에서 정확히 N개의 트랜잭션을 채굴하려고 시도하고, N은 미리 결정된 상수이다.
2. 채굴자는 각 주기에서 동일한 후보 블록을 채굴하려고 시도한다.
3. 채굴 주기 시간:
a. 채굴 주기 시간에 대한 기대값은 항상 블록 유효성 검증 시간보다 크다.
b. 채굴 주기 시간에는 무작위 변동이 있다.
4. 아래에서 자세히 설명하는 것과 같이, 네트워크 지연이 충분히 낮다.
사전 합의 달성
채굴자는 후보 블록에 포함되어야 하는 동일한 트랜잭션 집합에 동의하여야 한다. 즉, 후보 블록에 포함될 트랜잭션의 집합과 순서에 동의한다. 이를 달성하기 위해, 노드는 최소한 다음 규칙을 구현한다.
- 각 트랜잭션은 생성 시점에 타임스탬프가 기록된다.
- 모든 트랜잭션은 타임스탬프에 따라 정렬된다.
- 프로토콜은 각 후보 블록에 대한 타임스탬프로 표시되는 순간을 식별할 수 있다. 이 타임스탬프를 블록 Bi에 대한 TBi 로 지칭한다.
악의적인 사용자가 있어야 하는 것보다 훨씬 더 이른 타임스탬프를 선택하는 것을 방지하기 위해, 개시의 실시예에 따른 프로토콜은 노드가 블록체인에 이미 기록된, 즉 추가된 이전 블록 타임스탬프보다 빠른 타임스탬프를 갖는 트랜잭션을 거부할 것을 요구한다. 이는 모든 채굴자가 보상 트랜잭션을 제외하고 후보 블록에 동일한 트랜잭션 집합을 갖도록 보장한다(비트코인의 코인베이스 트랜잭션과 유사하다고 볼 수 있음).
공통 트랜잭션 집합
하나 이상의 실시예에 따르면, 네트워크 상의 모든 채굴 노드는 다음 블록에 포함될 트랜잭션의 동일한 집합(동적 멤풀)을 갖는다. 이는 모든 채굴자가 동일한 트랜잭션(보상 트랜잭션 제외)를 포함하는 블록을 채굴하려고 시도하도록 보장한다. 이를 위해서는 최소한 다음 조건이 필요하다.
- 각 트랜잭션은 생성 시점에 타임스탬프가 기록된다.
- 모든 트랜잭션은 타임스탬프에 따라 정렬된다(전역 트랜잭션 정렬).
- TBi보다 이전 타임스탬프를 가진 모든 트랜잭션은 블록 Bi에 포함되어야 한다.
각 블록 Bi에서 채굴된 트랜잭션의 수 Ni
Figure pct00013
Figure pct00014
사이에 확인된(그리고 유효성 검증된) 트랜잭션의 총 수와 같다. 이에 대해서는 아래에서 더 자세히 설명한다.
이러한 조건은 네트워크 합의의 확립을 가능하게 한다. 악의적인 당사자가 있어야 하는 것보다 이른 타임스탬프를 선택하는 것을 방지하기 위해, 프로토콜은 이전 블록의 타임스탬프보다 이른 타임스탬프를 가진 트랜잭션이 거부될 것을 요구한다. 이는 각 채굴자가 보상 트랜잭션을 제외하고 후보 블록에서 정확히 동일한 트랜잭션 집합을 갖도록 보장한다.
조정 가능한 난이도 채굴 함수
난이도는 채굴 함수에서 수행되는 작업의 수로 측정된다. 표준 채굴 함수는 다음과 같이 정의할 수 있다.
F( Y 1 , ..., Y N , X, t)
여기에서 {Y 1 , ..., Y N } 은 N개의 트랜잭션 식별자 집합이고, X는 이전 블록 해시이며, t는 블록 헤더에 포함된 난이도 매개변수이다. 본원에 개시된 채굴 프로토콜 또는 함수의 주요 특징은 다음을 포함한다:
- 병렬화할 수 없는 알고리즘: 알고리즘은 병렬이 아닌 순차적으로만 수행될 수 있는 중간 출력의 계산을 요구한다. 중간 출력의 계산은 이전 중간 계산의 출력인 입력을 취하고, 차례로 그 결과/출력을 후속 중간 계산에 제공한다. 이것은 정지 조건이 발생할 때까지 반복될 수 있다.
- 정수 매개변수 t를 사용하여 조정 가능한 계산 난이도
- 입력은 트랜잭션 식별자/블록 헤더 해시 및 난이도 매개변수를 포함한다
- F를 계산하려면 목표 산술 연산 수 K가 필요하다
병렬화할 수 없는 알고리즘의 기준 예는 함수의 출력이 동일하거나 다른 함수의 다음 인스턴스화에서 입력으로 사용되는 재귀 공식이다. 다른 예는 모듈식 지수 또는 반복 제곱이다-리베스트, 로날드 L., 아디 샤미르, 데이비드 A. 와그너, "시간 잠금 퍼즐 및 시간 해제 암호화"(1996) 참조.
재귀와 모듈식 지수를 모두 사용하는 알고리즘의 예는 다음과 같이 예시로 제공된다.
주어진 {Y 0 , ... , Y N },
계산
Figure pct00015
,
0부터 N-1까지의 i에 대하여 계산
Figure pct00016
,
여기에서 알고리즘의 실행은 YNS를 산출한다. 이 경우 채굴 함수는 다음과 같이 간결하게 작성할 수 있다.
F (Y 1 , ... , Y N , X, t) = Y NS
채굴 연산 대상
전역 트랜잭션 집합 및 채굴 함수를 사용하려면 채굴자가 K 산술 연산을 수행하여야 하고, 여기서
K = K(N, t)이다.
이는 블록 생성 시간 TG가 일관되고 네트워크에서 제어할 수 있도록 보장한다. F가 N개의 재귀가 있는 함수라고 가정하면, K는 N에서 선형이고 난이도 매개변수 t는 조정 가능하며 트랜잭션에 직접적으로 의존하지 않으므로 넓은 범위의 K 값을 얻을 수 있다.
예를 들어, 위에서 설명한 바와 같이 F를 사용하여, 난이도가 t = 1000이라고 가정한다. 그런 다음 F를 계산하려면 각 YiS에 대해 2 x 1000 = 2000번의 제곱 연산을 반복해야 하므로 K = O(2000N)이다. 또는, t = 1이면 K = O(2N)이다. t는 조정되어 블록 헤더에 포함될 수 있다.
예시 1: 블록당 최대 트랜잭션 수
채굴 기술의 일 구현은 블록에서 최대 N개의 트랜잭션을 요구하며, 여기에서 N은 상수 값이다. N을 고정함으로써 K의 변동성은 t를 통해서만 제어될 수 있다.
채굴자는 블록에 N개보다 많은 트랜잭션을 포함하도록 인센티브를 받지 않는다는 점에 유의할 필요가 있는데, 이렇게 하면 계산 시간이 늘어나고 블록을 성공적으로 채굴하는 제1 채굴자가 될 확률이 줄어들기 때문이다.
더미 트랜잭션 식별자
멤풀에서 사용 가능한 트랜잭션 수가 N개 미만인 경우 더미 트랜잭션 식별자를 정의할 수 있다. 멤풀의 총 트랜잭션 수는 트랜잭션 식별자가 Y 1 , ... , Y n 인 n(n≤N)이라고 가정한다. Yn을 시드로 사용하여 생성된 해시 체인으로 더미 트랜잭션 식별자 시퀀스를 생성한다.
Figure pct00017
.
이러한 더미 트랜잭션 식별자는 채굴 함수의 표준 트랜잭션 식별자와 함께 입력으로 사용된다. 더미 트랜잭션 식별자는 순차적으로만 생성할 수 있음을 유의한다.
예시 2: 가변 수의 블록당 트랜잭션
대안적인 구현은 각 블록에 대해
Figure pct00018
을 고정함으로써 가변적인 N 값을 허용한다. 이 경우, K를 효과적으로 제어하려면 t가 N에 의존해야 한다, 즉
Figure pct00019
,
여기에서 g는 N의 단순 함수이다. 결과적으로 더미 트랜잭션 식별자를 계산할 필요가 없다. 그러나, 큰 범위의 트랜잭션량을 처리하기 위해 t가 블록마다 상당히 다를 수 있다.
네트워크 지연
바람직하게는, 네트워크 지연은 무시할 수 있거나 합리적으로 0에 가깝다. 이는 하나의 채굴 노드로부터 다른 채굴 노드로 전송된 메시지가 짧은 시간 내에 전체 네트워크에 전파된다는 것을 의미한다. 더 구체적으로, 메시지 전송 시간은 채굴자 사이의 분산 채굴 사이클 시간보다 훨씬 작아야 하며,
Figure pct00020
,
여기에서
Figure pct00021
네트워크에 대한 블록 생성 시간의 분산이다. 이 분산은 단순히 채굴자 간의 순차 컴퓨팅 속도의 차이임을 기억한다. (채굴 주기 분산으로 인해) 제1 채굴자인 앨리스가 제2 채굴자인 밥보다 먼저 성공적인 계산 증명 해를 얻으면, 앨리스는 앨리스의 해 메시지를 수신하기 전에 밥 또한 해를 구하지 못할 만큼 충분히 짧은 시간 내에 자신의 해를 밥에게 전파할 수 있어야 한다.
채굴 주기
후보 블록 구성 - 채굴자 앨리스
도 1을 참조하면, 단계 1에서 주어진
Figure pct00022
에서 앨리스는 다음의 시간 간격 동안 생성된 모든 트랜잭션, 즉
Figure pct00023
를 자신의 멤풀에 수집한다.
Figure pct00024
여기에서
Figure pct00025
은 위에서 설명한 네트워크의 블록에 대한 예상 블록 생성 시간이다.
Figure pct00026
를 블록
Figure pct00027
에 대한 트랜잭션 시간 창이라고 한다.
트랜잭션 시간을 큰 범위로 설정하면 블록 생성 시간이 변동될 수 있다. Bi에 대한 블록 타임스탬프는 트랜잭션 시간 창 상한보다 낮을 것으로 가정한다. 즉,
Figure pct00028
.
블록 생성 시간이 3E(T G ) 를 초과하는 경우(거의 가능성이 없음) 시간 범위
Figure pct00029
내에서 네트워크에 의해 트랜잭션을 예외/중계해서는 안 된다.
이제 앨리스는 다음과 같이 진행한다
2. 단계 2: 앨리스는 보상 트랜잭션 TX0을 구성한다. 보상 트랜잭션이 블록에 항상 포함되지 않을 수도 있으므로 이 단계는 선택적이라는 것을 유의해야 한다.
3. 단계 3: 앨리스는 보상 트랜잭션이 포함되는 경우 이를 제외하고 블록의 모든 트랜잭션에 대한 표현 R을 계산한다.
4. 단계 4: 앨리스는 다음과 같은 병렬화할 수 없는 채굴 기술의 실시예를 실행하여 블록을 채굴한다.
a.
Figure pct00030
계산
b.
Figure pct00031
c. 2부터 N까지의 i에 대하여
i.
Figure pct00032
계산
ii.
Figure pct00033
계산
5. 단계 5: 앨리스는 블록에 대한 계산 해를 C = YNS로 설정한다.
6. 단계 6: 앨리스는
Figure pct00034
를 네트워크에 전파한다. 앨리스는 노드에 계산 증명(Proof-of-Computation; PoC) 메시지를 전송하여 이를 수행한다.
7. 단계 7: 채굴 노드는 앨리스가 제공한 PoC C를 테스트한다. NPM 네트워크에서 정확하고 유효한 것으로 수락하면 앨리스의 블록이 NPM 블록체인에 추가된다.
참고: 명확성과 이해를 돕기 위해 위에서 설명한 예시적인 채굴 함수를 사용하였다. 그러나, 일반적으로 단계 2는 계산 증명 C를 찾기 위해 F를 실행하는 것이다.
검증
h(C)를 검증하기 위하여, 채굴자는 계산 증명 해 C를 찾아야 한다. 앨리스의 PoC 메시지를 수신하면, 다른 채굴자는 자신의 해를 찾기 위한 작업을 계속한다. 채굴자가 자신의 해를 찾으면, 이를 앨리스의 해와 비교하여 앨리스의 버전 C의 검증을 수행할 수 있다. 이는 앨리스의 보상 트랜잭션을 추가하고 블록 헤더의 해시 값을 h( B i )와 비교하여 앨리스의 블록을 구성함으로써 수행된다. 값이 같으면, 밥은 다른 모든 계산 스레드를 드랍하고 앨리스의 블록이 올바른 블록이라고 가정하는 스레드를 계속 계산한다. 값이 같지 않으면, 밥은 해시 값과 일치하는 다음 수신된 YM 값 스레드를 찾아 해당 스레드에서 계속한다.
밥은 앨리스만큼 빨리 새로운 블록을 채굴하도록 장려되고, 그렇지 않으면 앨리스는 모든 보상을 청구하기 위해 가장 긴 체인을 생성할 수 있을 것이다.
채굴 주기 시간
블록 생성 시간
블록 생성 주기 시간
Figure pct00035
은 어떤 제i 채굴자가 제안된 채굴 함수 F를 사용하여 블록을 생성하는 데 걸리는 시간이며
Figure pct00036
로 표시된다. 블록 생성 시간은 주어진 채굴자가 후보 블록에 대한 정확한 계산 증명 C를 계산하는 데 걸리는 시간이다.
이 주기 시간
Figure pct00037
이 연속적이고 정규 분포를 따르는 확률 변수라고 가정한다. 채굴 주기 시간의 기대값, 분산 및 표준편차는 각각 다음과 같이 표시된다.
Figure pct00038
,
Figure pct00039
,
Figure pct00040
.
블록 생성 시간은 채굴 기술의 매개변수이며, 이는 구현에 따라 기대값을 기간으로 확장할 수 있음을 의미한다. 예를 들어, 한 실시예에서
Figure pct00041
로 설정하는 것 대 다른 실시예에서에서
Figure pct00042
로 설정하는 것이 바람직할 수 있다. 어떤 경우에도, 기대 시간은 부등식 집합에 따라 채굴 기술에서 수행되는 연산의 수
Figure pct00043
를 늘려서 확장된다.
Figure pct00044
,
Figure pct00045
,
Figure pct00046
,
여기에서 N은 블록의 트랜잭션 수이고 t는 난이도 매개변수이다.
블록 유효성 검증 시간
두 명의 채굴자
Figure pct00047
Figure pct00048
가 동일한 후보 블록을 채굴하려고 시도하는 것을 고려한다. 이들 채굴자가 블록을 성공적으로 채굴하는 데 걸리는 관측된 시간은 각각
Figure pct00049
Figure pct00050
로 표시되며, 이들은 모두 위에 정의된 정규 분포에 의해 지배된다.
주어진 주기
Figure pct00051
에 대하여,
Figure pct00052
가 정의에 따라 후보 블록을 성공적으로 채굴한 제1 채굴자이다. 제1 채굴자
Figure pct00053
가 계산 증명
Figure pct00054
을 계산하고 브로드캐스팅하여 주어진 블록을 성공적으로 채굴하면, 제2 채굴자
Figure pct00055
(및 다른 모든 채굴자)가 독립적으로 채굴 주기를 완료하고
Figure pct00056
가 제공한 증명이 그들이 독립적으로 계산한 증명
Figure pct00057
과 동일한지 검증하여 블록을 유효성 검증한다. 블록은
Figure pct00058
인 경우 및 그 경우에만(iff) 제2 채굴자에 의해 유효한 것으로 간주된다. 제2 채굴자
Figure pct00059
가 이 유효성 검증 프로세스를 수행하는 데 걸리는 시간은
Figure pct00060
로 표시되며, 또는 일반적으로 제i 채굴자의 블록에 대한 유효성 검증을 수행하는 임의의 제j 채굴자의 경우
Figure pct00061
로 표시된다.
충분히 큰 채굴자 네트워크의 경우 블록 유효성 검증 시간
Figure pct00062
또한 정규 분포 확률 변수라고 가정할 수 있는데, 이는 기대값, 분산 및 표준 편차가 동일한 두 개의 독립적인 정규 분포 확률 변수
Figure pct00063
Figure pct00064
의 조합으로 구성될 수 있기 때문이다. 따라서 블록 유효성 검증 시간의 기대값, 분산 및 표준 편차는 다음 관계식으로 주어진다.
Figure pct00065
,
Figure pct00066
Figure pct00067
의 99.7%가
Figure pct00068
의 3 표준 편차 내에 존재한다고 가정하면, 다음의 근사치를 만들 수 있다.
Figure pct00069
위에서 설명한 최소 생성 시간의 가정이 주어지면 예상 블록 시간은 다음과 같이 계산할 수 있다.
Figure pct00070
Figure pct00071
Figure pct00072
,
및 표준 편차
Figure pct00073
Figure pct00074
Figure pct00075
이는 유효성 검증 시간의 범위가 다음과 같음을 의미한다.
Figure pct00076
이는 최악의 경우로 유효성 검사 시간을 제한하는 것으로 볼 수 있다.
(i)
Figure pct00077
가 채굴 알고리즘을 먼저 완료하고
Figure pct00078
가 최대한 늦게 알고리즘을 완료한다[RHS 조건].
(ii)
Figure pct00079
가 언제든지 채굴 알고리즘을 완료하고
Figure pct00080
가 잠시 후에 알고리즘을 완료한다[LHS 조건].
따라서, 본 채굴 알고리즘의 하나 이상의 실시예에서, 블록 생성 시간 척도
Figure pct00081
는 블록 유효성 검증 시간 척도
Figure pct00082
보다 훨씬 더 크다. 이는 가정을 다음과 같이 작성하여 블록 생성 시간 분포를 엄격하게 한 가정임을 알 수 있다.
Figure pct00083
,
그리고 블록 유효성 검증 시간을 정의하는 부등식을 이용하여 이를 다음과 같이 다시 쓸 수 있다.
Figure pct00084
.
따라서, 참여 네트워크 노드의 경우, 블록 생성 시간의 분산은 예상 블록 생성 시간 자체보다 훨씬 작다. 이것은
Figure pct00085
의 기준 기대 시간을 감안할 때 합리적인 가정이며 예상 분산은 수 초이다.
실제로 채굴 기술은 세 가지 일반적인 시나리오 중 하나를 초래할 수 있다. 이들 시나리오는 각각
Figure pct00086
Figure pct00087
의 표기가 주어진 정직한 채굴자 앨리스와 밥의 관점에서 자세히 설명된다. 또한 제3 악성 채굴자
Figure pct00088
(맬로리)를 포함하여, 일반적인 비병렬식 채굴 주기 동안 채굴자가 행동하고 상호작용하는 방식을 예시한다.
시나리오 1: 앨리스가 먼저 유효한 블록을 성공적으로 채굴하고 브로드캐스팅한다
앨리스는 다른 성공적인 블록이 채굴되었다는 소식을 듣지 않고 독립적으로 채굴 주기의 끝에 도달하고 자신의 블록을 네트워크에 브로드캐스팅한다.
앨리스는 먼저 밥으로부터 유효한 블록을 수신한다.
앨리스는 다른 채굴자 밥으로부터 블록을 수신한다. 그녀는 밥의 블록을 병렬로 유효성 검증하면서 계속해서 자신의 블록을 채굴한다.
채굴과 유효성 검증만이 병렬로 수행됨을 유의한다. 채굴 알고리즘 자체는 병렬화될 수 없다.
Figure pct00089
라는 가정을 사용하여, 앨리스는 대안을 채굴하기 전에 밥의 블록을 유효성 검증할 수 있을 것이다.
앨리스는 먼저 맬로리로부터 유효하지 않은 블록을 수신한다
앨리스는 악의적인 채굴자 맬로리로부터 블록을 수신한다. 그녀는 맬로리의 것을 병렬로 유효성 검증하면서 계속해서 자신의 블록을 채굴한다. 채굴과 유효성 검증만이 병렬로 수행됨을 유의한다. 채굴 알고리즘 자체는 어느 시점에서도 병렬화될 수 없다.
DoS 공격 가능성
채굴자가 계산 해를 전송할 때마다 새로운 스레드를 열어야 한다는 점을 감안할 때 서비스 거부(Denial-of-Service) 공격과 같은 착취가 시작될 가능성이 있다. 이는 특정 규칙이나 제약 조건을 적용하여 해결할 수 있다.
1. 채굴자당 하나의 PoC 메시지만 다른 노드에서 수락된다.
2. 채굴 노드는 네트워크에서 마지막 블록이 채굴된 후 충분한 시간이 경과한 후에만 PoC 메시지를 수락할 수 있다.
개별 채굴자가 강제로 많은 수의 계산 스레드를 여는 것을 방지하기 위하여 하나 이상의 알려진 스팸 방어를 사용할 수 있다.
개시의 예시적인 열거된 실시예:
1. 계산 난이도 매개변수;
적어도 하나의 블록체인 트랜잭션의 해시; 및/또는
적어도 하나의 블록체인 블록 헤더의 해시에 기초하여:
출력을 계산하기 위하여 병렬화할 수 없는 알고리즘을 사용하는 것을 포함하는 컴퓨터 또는 블록체인 구현 (채굴) 방법.
병렬화할 수 없는 알고리즘은 순차적 알고리즘 또는 본질적으로 순차적인 알고리즘으로 지칭될 수 있다. 출력은 값일 수 있다. 이는 퍼즐(대안적으로, "도전", "계산 도전" 또는 "문제"라고 지칭될 수 있음)에 대한 해일 수 있다. 이는 함수 또는 방법의 출력일 수 있다. 알고리즘은 블록체인 네트워크의 하나 이상의 노드에 의해 실행될 수 있다. 이들은 채굴 노드일 수 있다. 계산 난이도 매개변수와 트랜잭션 및 블록 헤더 해시는 알고리즘에 대한 입력으로 사용될 수 있다. 다른 입력이 또한 알고리즘에 제공될 수 있다. 출력은 블록체인의 노드(들)에 제공될 수 있다.
방법은 블록체인 보안 방법, 블록체인 채굴 방법, 병렬화할 수 없는 합의 메커니즘/방법, 블록체인 합의 방법 및/또는 블록체인 구현 블록 생성 방법으로 설명될 수 있다.
2. 1에 있어서, 출력 또는 출력이거나 이를 포함하는 표현을 블록체인 노드의 네트워크로 전송하는 것을 더 포함하는 방법. 출력의 표현은 출력의 해시를 포함할 수 있다. 노드는 블록체인 네트워크의 채굴 노드일 수 있다.
3. 1 또는 2에 있어서, 출력을 획득하기 위한 병렬화할 수 없는 알고리즘은:
재귀 연산;
모듈식 지수;
반복되는 제곱 연산 중 적어도 하나를 포함할 수 있는 방법.
따라서, NPM 알고리즘은 이러한 연산의 하나, 모두 또는 일부 조합의 실행을 포함 및/또는 요구할 수 있다.
4. 1 내지 3의 임의의 조합에 있어서, 블록체인 트랜잭션 집합으로부터 적어도 하나의 블록체인 트랜잭션을 선택하는 것을 포함하고, 적어도 하나의 블록체인 트랜잭션은 적어도 하나의 블록체인 트랜잭션에 제공된 타임스탬프에 기초하여 선택되는 방법.
블록체인 트랜잭션의 집합 또는 "복수"를 "멤풀(mempool)"로 지칭할 수 있다. 멤풀은 위에서 설명한 바와 같이 배열 및/또는 사용될 수 있다. 멤풀은 적어도 하나의 미지출 출력을 포함하는 블록체인 트랜잭션(UTXO)를 포함할 수 있다. 블록체인 네트워크의 모든 (채굴) 노드에서 동일한 멤풀을 공유하거나 접근할 수 있다. 하나 이상의 노드는 집합의 자체 사본을 가질 수 있다.
5. 4에 있어서, 적어도 하나의 선택된 블록체인 트랜잭션은 블록체인의 상태로부터 도출 가능 또는 식별 가능한 타임스탬프를 포함할 수 있는 방법.
6. 4 또는 5에 있어서, 적어도 하나의 선택된 트랜잭션은 블록체인 상에 기록된 블록 또는 블록체인 트랜잭션의 타임스탬프보다 늦은 타임스탬프를 포함할 수 있는 방법.
7. 4, 5 또는 6에 있어서, 적어도 하나의 선택된 블록체인 트랜잭션의 표현을 계산하는 것을 더 포함하는 방법. 적어도 하나의 선택된 블록체인 트랜잭션의 표현은 해시이거나 이를 포함할 수 있다.
8. 1 내지 7의 임의의 조합에 있어서, 제2 블록체인 네트워크 노드에서 제1 블록체인 네트워크 노드로부터 출력의 표현을 수신하는 것을 포함하는 방법. 이는 또한 제2 블록체인 네트워크 노드에서 (수신한) 출력을 검증하는 것을 포함할 수 있다. 출력을 검증하는 것은 수신한 출력(또는 그 버전)을 제2 블록체인 노드에서 계산한 검증 출력과 비교하는 것을 포함할 수 있으며, 제2 블록체인 노드는 제1 블록체인 노드와 동일한 병렬화할 수 없는 알고리즘 및 동일한 입력을 사용하여 검증 출력을 계산한다.
9. 8에 있어서, 제2 블록체인 네트워크 노드에서 출력을 검증하는 것은:
제2 블록체인 네트워크 노드에서 출력을 계산하는 것;
제2 블록체인 네트워크 노드에서 출력의 표현을 생성하는 것;
제2 블록체인 네트워크 노드에서 생성된 표현을 제1 블록체인 네트워크 노드로부터 수신한 표현과 비교하는 것을 포함할 수 있는 방법.
10. 1 내지 9의 임의의 조합에 있어서, 계산 난이도 매개변수는 출력을 계산하기 위하여 병렬화할 수 없는 알고리즘에 필요한 연산의 수에 영향을 미치거나, 이를 결정하거나, 및/또는 제어하는 값인 방법.
11. 1 내지 10의 임의의 조합에 있어서, 병렬화할 수 없는 알고리즘은:
i) 출력을 계산하기 위하여 하나 이상의 중간 값을 계산하여야 하거나; 및/또는
ii) 복수의 병렬식 계산 자원에 의해 실행될 수 없는 방법.
12. 1 내지 11의 임의의 조합에 있어서, 하나 이상의 블록체인 트랜잭션을 포함하는 블록체인 블록을 생성하는 것을 포함하는 방법.
13. 12에 있어서, 블록체인 블록을 블록체인에 추가하는 것을 더 포함하는 방법. 이는 위에서 설명한 바와 같이, 암호화 링크를 사용하여 새로 생성된 블록을 블록체인에 기록(즉 추가된) 이전 (마지막) 블록에 연관시켜 달성될 수 있다.
개시의 다른 양상에 따르면 본원에서 설명되거나 청구된 임의의 방법 단계 또는 방법 단계의 조합을 수행하도록 배열된 컴퓨터 구현 시스템이 제공된다. 복수의 컴퓨터 구현 노드를 포함하는 블록체인 시스템(네트워크)가 제공되며, 블록체인 네트워크 내의 각 노드는:
프로세서; 및
프로세서에 의한 실행의 결과로, 시스템이 본원에서 설명되거나 청구된 컴퓨터 구현 방법의 임의의 변형을 수행하도록 하는 실행 가능한 명령을 포함하는 메모리를 포함한다.
네트워크는 본원에 설명된 블록체인 프로토콜을 사용하여 작동하도록 배열될 수 있다.
다른 양상에 따르면, 컴퓨터 시스템의 프로세서에 의해 실행된 결과로, 컴퓨터 시스템이 본원에서 설명되거나 청구된 컴퓨터 구현 방법의 임의의 버전을 수행하도록 하는 실행 가능한 명령을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체가 제공된다.
이제 도 2로 돌아 가면, 본 개시의 적어도 하나의 실시예를 실행하는데 사용될 수 있는 컴퓨팅 디바이스(2600)의 예시적이고 단순화된 블록도가 제공된다. 다양한 실시예에서, 컴퓨팅 디바이스(2600)는 위에서 예시되고 설명된 임의의 시스템을 구현하는 데 사용될 수 있다. 예를 들어, 컴퓨팅 디바이스(2600)는 지불 서비스 또는 지불 클라이언트 엔티티와 연관된, 즉 지불 서비스 제공을 담당하는 호스트를 구현하거나 지급인 또는 수취인 지불 클라이언트 엔티티를 구현하기 위하여 웹 서버 또는 하나 이상의 프로세서 또는 컴퓨팅 디바이스로 사용하도록 구성될 수 있다. 따라서 컴퓨팅 디바이스(2600)는 휴대용 컴퓨팅 디바이스, 개인용 컴퓨터 또는 임의의 전자 컴퓨팅 디바이스일 수 있다. 도 2에 도시된 바와 같이, 컴퓨팅 디바이스(2600)는 하나 이상의 캐시 메모리 레벨 및 주 메모리(2608) 및 영구 저장소(2610)를 포함하는 저장 서브시스템(2606)과 통신하도록 구성될 수 있는 메모리 제어기를 갖는 하나 이상의 프로세서(집합적으로 2602로 라벨링됨)를 포함할 수 있다. 주 메모리(2608)는 도시된 바와 같이 동적 임의 접근 메모리(DRAM)(2618) 및 읽기 전용 메모리(ROM)(2620)를 포함할 수 있다. 저장 서브시스템(2606) 및 캐시 메모리(2602)는 본 개시에서 설명된 바와 같이 트랜잭션 및 블록과 연관된 세부사항과 같은 정보의 저장을 위해 사용될 수 있다. 프로세서(들)(2602)는 본 개시에서 설명된 바와 같은 임의의 실시예의 단계 또는 기능을 제공하기 위해 이용될 수 있다.
프로세서(들)(2602)는 또한 하나 이상의 사용자 인터페이스 입력 디바이스(2612), 하나 이상의 사용자 인터페이스 출력 디바이스(2614) 및 네트워크 인터페이스 서브시스템(2616)과 통신할 수 있다.
버스 서브시스템(2604)은 컴퓨팅 디바이스(2600)의 다양한 구성요소 및 서브시스템이 의도된 대로 서로 통신할 수 있도록 하는 메커니즘을 제공할 수 있다. 버스 서브시스템(2604)이 단일 버스로서 개략적으로 도시되어 있지만, 버스 서브시스템의 대안적인 실시예는 다중 버스를 이용할 수 있다.
네트워크 인터페이스 서브시스템(2616)은 다른 컴퓨팅 디바이스 및 네트워크에 대한 인터페이스를 제공할 수 있다. 네트워크 인터페이스 서브시스템(2616)은 다른 시스템으로부터 컴퓨팅 디바이스(2600)로 데이터를 수신하고 데이터를 전송하기 위한 인터페이스 역할을 할 수 있다. 예를 들어, 네트워크 인터페이스 서브시스템(2616)은 데이터 기술자가 디바이스를 네트워크에 연결하여 데이터 기술자가 데이터 센터와 같은 원격 위치에 있는 동안 디바이스로 데이터를 전송하고 디바이스에서 데이터를 수신할 수 있도록 할 수 있다.
사용자 인터페이스 입력 디바이스(2612)는 키보드; 통합 마우스, 트랙볼, 터치패드 또는 그래픽 태블릿과 같은 포인팅 디바이스; 스캐너; 바코드 스캐너; 디스플레이에 통합된 터치스크린; 음성 인식 시스템, 마이크와 같은 오디오 입력 디바이스; 및 다른 유형의 입력 디바이스와 같은 하나 이상의 사용자 입력 디바이스를 포함할 수 있다. 일반적으로, "입력 디바이스"라는 용어의 사용은 컴퓨팅 디바이스(2600)에 정보를 입력하기 위한 모든 가능한 유형의 디바이스 및 메커니즘을 포함하도록 의도된다.
하나 이상의 사용자 인터페이스 출력 디바이스(2614)는 디스플레이 서브시스템, 프린터, 또는 오디오 출력 디바이스 등과 같은 비시각적 디스플레이를 포함할 수 있다. 디스플레이 서브시스템은 음극선관(CRT), 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이와 같은 평면 패널 디바이스, 프로젝션 또는 다른 디스플레이 디바이스일 수 있다. 일반적으로, "출력 디바이스"라는 용어의 사용은 컴퓨팅 디바이스(2600)로부터 정보를 출력하기 위한 모든 가능한 유형의 디바이스 및 메커니즘을 포함하도록 의도된다. 하나 이상의 사용자 인터페이스 출력 디바이스(2614)는, 예를 들어, 그러한 상호 작용이 적절할 수 있는 경우 설명된 프로세스 및 변형을 수행하는 애플리케이션과의 사용자 상호작용을 용이하게 하는 사용자 인터페이스를 표시하는 데 사용될 수 있다.
저장 서브시스템(2606)은 본 개시의 적어도 하나의 실시예의 기능을 제공할 수 있는 기본 프로그래밍 및 데이터 구조를 저장하기 위한 컴퓨터 판독 가능 저장 매체를 제공할 수 있다. 하나 이상의 프로세서에 의해 실행될 때, 애플리케이션(프로그램, 코드 모듈, 명령)은 본 개시의 하나 이상의 실시예의 기능을 제공할 수 있고, 저장 서브시스템(2606)에 저장될 수 있다. 이러한 애플리케이션 모듈 또는 명령은 하나 이상의 프로세서(2602)에 의해 실행될 수 있다. 저장 서브시스템(2606)은 본 개시에 따라 사용되는 데이터를 저장하기 위한 저장소를 추가로 제공할 수 있다. 예를 들어, 주 메모리(2608) 및 캐시 메모리(2602)는 프로그램 및 데이터를 위한 휘발성 저장소를 제공할 수 있다. 영구 저장소(2610)는 프로그램 및 데이터를 위한 영구(비 휘발성) 저장소를 제공할 수 있으며, 플래시 메모리, 하나 이상의 솔리드 스테이트 드라이브, 하나 이상의 자기 하드 디스크 드라이브, 연관된 이동식 매체가 있는 하나 이상의 플로피 디스크 드라이브, 연관된 이동식 매체가 있는 하나 이상의 광학 드라이브(예를 들어, CD-ROM 또는 DVD 또는 블루레이) 및 다른 유사한 저장 매체를 포함할 수 있다. 이러한 프로그램 및 데이터는 본 개시에 설명된 바와 같은 트랜잭션 및 블록과 연관된 데이터뿐만 아니라 본 개시에 설명된 바와 같은 하나 이상의 실시예의 단계를 수행하기 위한 프로그램을 포함할 수 있다.
컴퓨팅 디바이스(2600)는 휴대용 컴퓨터 디바이스, 태블릿 컴퓨터, 워크스테이션, 또는 아래에서 설명되는 임의의 다른 디바이스를 포함하는 다양한 유형일 수 있다. 추가적으로, 컴퓨팅 디바이스(2600)는 하나 이상의 포트(예를 들어, USB, 헤드폰 잭, 라이트닝 커넥터 등)를 통해 컴퓨팅 디바이스(2600)에 연결될 수 있는 다른 디바이스를 포함할 수 있다. 컴퓨팅 디바이스(2600)에 연결될 수 있는 디바이스는 광섬유 커넥터를 수용하도록 구성된 복수의 포트를 포함할 수 있다. 따라서, 이 디바이스는 광학 신호를 처리를 위해 디바이스를 컴퓨팅 디바이스(2600)에 연결하는 포트를 통해 전송될 수 있는 전기 신호로 변환하도록 구성될 수 있다. 컴퓨터 및 네트워크의 끊임없이 변화하는 특성으로 인해, 도 2에 도시된 컴퓨팅 디바이스(2600)에 대한 설명은 디바이스의 바람직한 실시예를 설명하기 위한 특정 예로서만 의도된다. 도 2에 도시된 시스템보다 더 많거나 더 적은 구성요소를 갖는 많은 다른 구성이 가능하다.
위에서 언급된 실시예는 개시를 제한하기보다는 예시하고, 당업자는 첨부된 청구범위에 의해 정의되는 개시의 범위를 벗어나지 않고 많은 대안적인 실시예를 설계할 수 있음을 유의하여야 한다. 청구범위에서, 괄호 안의 참조 부호는 청구범위를 제한하는 것으로 해석되어서는 안 된다. "포함하는(comprising)" 및 "포함하다(comprises)" 등의 단어는 전체로서 청구범위 또는 명세서에 나열된 것 이외의 요소 또는 단계의 존재를 배제하지 않는다. 본 명세서에서, "포함하다(comprises)"는 "포함하거나 구성한다(includes or consists of)"를 의미하고 "포함하는(comprising)"은 "포함하거나 구성하는(including or consisting of)"을 의미한다. 이 명세서 전체에 걸쳐, 단어 "포함하다(comprise)", 또는 "포함하다(includes)", "포함하다(comprises)" 또는 "포함하는(comprising)"과 같은 변형은 명시된 요소, 정수 또는 단계, 또는 요소, 정수 또는 단계의 그룹을 포함하지만, 임의의 다른 요소, 정수 또는 단계, 또는 요소, 정수 또는 단계의 그룹의 배제를 의미하지 않는 것으로 이해될 것이다. 요소의 단수 참조는 그러한 요소의 복수 참조를 배제하지 않으며 그 반대의 경우도 마찬가지이다. 개시는 몇몇 별개의 요소를 포함하는 하드웨어에 의해, 그리고 적절하게 프로그래밍된 컴퓨터에 의해 구현될 수 있다. 여러 수단을 열거하는 디바이스 청구항에서, 이러한 수단 중 몇 가지는 하나의 동일한 하드웨어 항목으로 구현될 수 있다. 특정 조치가 서로 다른 종속항에 인용되어 있다는 단순한 사실이 이러한 조치의 조합이 유리하게 사용될 수 없다는 것을 나타내지는 않는다.

Claims (13)

  1. 계산 난이도 매개변수;
    적어도 하나의 블록체인 트랜잭션의 해시; 및/또는
    적어도 하나의 블록체인 블록 헤더의 해시에 기초하여
    출력을 계산하기 위하여 병렬화할 수 없는 알고리즘을 사용하는 단계(4)를 포함하는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 출력 또는 상기 출력의 표현을 블록체인 노드의 네트워크로 전송하는 단계(5)를 더 포함하는 방법.
  3. 제1항 또는 제2항에 있어서, 상기 병렬화할 수 없는 알고리즘은 다음의 연산:
    재귀 연산;
    모듈식 지수;
    반복되는 제곱 연산
    중 적어도 하나를 포함하는 방법.
  4. 전술한 청구항 중 어느 한 항에 있어서,
    블록체인 트랜잭션 집합으로부터 적어도 하나의 블록체인 트랜잭션을 선택하는 단계를 포함하고, 상기 적어도 하나의 블록체인 트랜잭션은 상기 적어도 하나의 블록체인 트랜잭션에 제공된 타임스탬프에 기초하여 선택되는 방법.
  5. 제4항에 있어서, 상기 적어도 하나의 선택된 블록체인 트랜잭션은 상기 블록체인의 상태로부터 도출 가능 또는 식별 가능한 타임스탬프를 포함하는 방법.
  6. 제4항 또는 제5항에 있어서, 상기 적어도 하나의 선택된 트랜잭션은 블록체인 상에 기록된 블록 또는 블록체인 트랜잭션의 타임스탬프보다 늦은 타임스탬프를 포함하는 방법.
  7. 제4항 내지 제6항 중 어느 한 항에 있어서,
    상기 적어도 하나의 선택된 블록체인 트랜잭션의 표현을 계산하는 단계(3)를 더 포함하는 방법.
  8. 전술한 청구항 중 어느 한 항에 있어서,
    제1 블록체인 네트워크 노드로부터 제2 블록체인 네트워크 노드에서 상기 출력의 표현을 수신하고 상기 제2 블록체인 네트워크 노드에서 상기 출력을 검증하는 단계를 포함하는 방법.
  9. 제8항에 있어서, 상기 제2 블록체인 네트워크 노드에서 상기 출력을 검증하는 단계는:
    상기 제2 블록체인 네트워크 노드에서 상기 출력을 계산하는 것;
    상기 제2 블록체인 네트워크 노드에서 상기 출력의 표현을 생성하는 것;
    상기 제2 블록체인 네트워크 노드에서 생성된 상기 표현을 상기 제1 블록체인 네트워크 노드로부터 수신한 상기 표현과 비교하는 것을 포함하는 방법.
  10. 전술한 청구항 중 어느 한 항에 있어서, 상기 계산 난이도 매개변수는 상기 출력을 계산하기 위하여 상기 병렬화할 수 없는 알고리즘에 필요한 연산의 수에 영향을 미치거나 이를 제어하는 값인 방법.
  11. 전술한 청구항 중 어느 한 항에 있어서, 상기 병렬화할 수 없는 알고리즘은:
    iii) 상기 출력을 계산하기 위하여 하나 이상의 중간 값의 계산을 필요로 하고; 및/또는
    iv) 복수의 병렬식 계산 자원에 의해 실행될 수 없는 방법.
  12. 복수의 노드를 포함하는 블록체인 네트워크에 있어서, 상기 블록체인 네트워크 내의 각 노드는:
    프로세서; 및
    상기 프로세서에 의한 실행의 결과로, 시스템이 전술한 청구항 중 어느 한 항의 컴퓨터 구현 방법을 수행하도록 하는 실행 가능한 명령을 포함하는 메모리를 포함하는 블록체인 네트워크.
  13. 컴퓨터 시스템의 프로세서에 의해 실행된 결과로, 상기 컴퓨터 시스템이 제1항 내지 제11항 중 어느 한 항의 컴퓨터 구현 방법을 수행하도록 하는 실행 가능한 명령을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체.
KR1020217041235A 2019-05-16 2020-04-28 작업 증명 블록체인 네트워크 상의 비병렬식 채굴용 시스템 및 방법 KR20220010534A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1906893.1 2019-05-16
GBGB1906893.1A GB201906893D0 (en) 2019-05-16 2019-05-16 Computer-Implemented system and method
PCT/IB2020/053995 WO2020229922A1 (en) 2019-05-16 2020-04-28 Systems and methods for non-parallelised mining on a proof-of-work blockchain network

Publications (1)

Publication Number Publication Date
KR20220010534A true KR20220010534A (ko) 2022-01-25

Family

ID=67385084

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217041235A KR20220010534A (ko) 2019-05-16 2020-04-28 작업 증명 블록체인 네트워크 상의 비병렬식 채굴용 시스템 및 방법

Country Status (9)

Country Link
US (1) US20220217004A1 (ko)
EP (1) EP3970048A1 (ko)
JP (1) JP2022532764A (ko)
KR (1) KR20220010534A (ko)
CN (1) CN113939821A (ko)
GB (1) GB201906893D0 (ko)
SG (1) SG11202112101SA (ko)
TW (1) TW202109333A (ko)
WO (1) WO2020229922A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113157693B (zh) * 2021-03-21 2023-05-19 贵州大学 一种面向数字货币的区块链存储优化方案
CA3233314A1 (en) * 2021-09-30 2023-04-06 Ureeqa Inc. Groups a and b: system and method for decentralized timestamping of a submission of content onto a blockchain group c: method for timestamping verification of a submission of content onto a blockchain
CN117560161B (zh) * 2024-01-11 2024-04-09 中移信息系统集成有限公司 区块链的共识节点轮换方法及装置、可读存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10068228B1 (en) * 2013-06-28 2018-09-04 Winklevoss Ip, Llc Systems and methods for storing digital math-based assets using a secure portal
US10269009B1 (en) * 2013-06-28 2019-04-23 Winklevoss Ip, Llc Systems, methods, and program products for a digital math-based asset exchange
US9892460B1 (en) * 2013-06-28 2018-02-13 Winklevoss Ip, Llc Systems, methods, and program products for operating exchange traded products holding digital math-based assets
US10796000B2 (en) * 2016-06-11 2020-10-06 Intel Corporation Blockchain system with nucleobase sequencing as proof of work
US10262140B2 (en) * 2016-09-29 2019-04-16 Intel Corporation Methods and apparatus to facilitate blockchain-based boot tracking
US10397328B2 (en) * 2017-05-17 2019-08-27 Nec Corporation Method and system for providing a robust blockchain with an integrated proof of storage
US11271717B2 (en) * 2018-02-21 2022-03-08 Thunder Token Inc. Blockchain consensus methods and systems
EP3605944B1 (en) * 2018-07-31 2023-08-30 Siemens Healthcare GmbH Documenting timestamps within a blockchain
US10700850B2 (en) * 2018-11-27 2020-06-30 Alibaba Group Holding Limited System and method for information protection

Also Published As

Publication number Publication date
CN113939821A (zh) 2022-01-14
TW202109333A (zh) 2021-03-01
US20220217004A1 (en) 2022-07-07
GB201906893D0 (en) 2019-07-03
EP3970048A1 (en) 2022-03-23
SG11202112101SA (en) 2021-11-29
JP2022532764A (ja) 2022-07-19
WO2020229922A1 (en) 2020-11-19

Similar Documents

Publication Publication Date Title
JP7208989B2 (ja) ブロックチェーン上に検証鍵を記録するためのシステム
JP7285840B2 (ja) プルーフ検証に基づいてオフ・チェーン・データを認証するシステム及び方法
JP7362654B2 (ja) 分割されたブロックチェーンネットワークにおけるブロックチェーンのブロックの維持管理
JP7220702B2 (ja) ブロックチェーンにおける擬似乱数生成
TWI770307B (zh) 用以使用調解方電腦系統來確保電腦程式正確執行的系統與方法
KR20200011435A (ko) 파라미터화 가능 스마트 계약
KR20220010534A (ko) 작업 증명 블록체인 네트워크 상의 비병렬식 채굴용 시스템 및 방법
CN114982193A (zh) 使用区块链事务的数字合约
US20210272075A1 (en) Methods and devices for controlling a mining pool for multiple blockchain networks
JP2022551874A (ja) セキュアな共生(Symbiosis)マイニングのための方法および装置
JP2023184657A (ja) 公開鍵結合検証を含む、コンピュータにより実施されるシステム及び方法
CN117610087B (zh) 区块处理方法及装置、电子设备
Sharma et al. Reinshard: An optimally sharded dual-blockchain for concurrency resolution
Zindros et al. Implementing a Gasefficient Superlight Bitcoin Client in Solidity
TW202414256A (zh) 基於證明驗證之認證資料饋入