KR102386921B1 - Computer-readable recording medium that recorded block data - Google Patents

Computer-readable recording medium that recorded block data Download PDF

Info

Publication number
KR102386921B1
KR102386921B1 KR1020190146358A KR20190146358A KR102386921B1 KR 102386921 B1 KR102386921 B1 KR 102386921B1 KR 1020190146358 A KR1020190146358 A KR 1020190146358A KR 20190146358 A KR20190146358 A KR 20190146358A KR 102386921 B1 KR102386921 B1 KR 102386921B1
Authority
KR
South Korea
Prior art keywords
transaction
block
hash
level
computer
Prior art date
Application number
KR1020190146358A
Other languages
Korean (ko)
Other versions
KR20210038271A (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 KR20210038271A publication Critical patent/KR20210038271A/en
Application granted granted Critical
Publication of KR102386921B1 publication Critical patent/KR102386921B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit 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/382Payment protocols; Details thereof insuring higher security of transaction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • H04L2209/38
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Power Engineering (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 블록 데이터를 기록한 컴퓨터로 읽을 수 있는 기록 매체가 제공된다. 상기 블록 데이터를 기록한 컴퓨터로 읽을 수 있는 기록 매체는, 블록의 버전 및 제1 레벨 해시 레벨 루트를 포함하는 블록 헤더 및 복수의 트랜잭션을 포함하는 트랜잭션 목록을 포함하고, 상기 제1 레벨 해시 레벨 루트는 16개의 제2 레벨 해시값을 해시 함수(hash function)에 입력하여 생성되고, 상기 16개의 제2 레벨 해시값은 각각 16개의 제3 레벨 해시값을 상기 해시 함수에 입력하여 생성되고, 상기 16개의 제3 레벨 해시값은 각각 상기 복수의 트랜잭션 중 16개의 트랜잭션의 해시값을 상기 해시 함수에 입력하여 생성된다.The present invention provides a computer-readable recording medium in which block data is recorded. The computer-readable recording medium recording the block data includes a block header including a version of the block and a first level hash level root, and a transaction list including a plurality of transactions, wherein the first level hash level root includes: 16 second-level hash values are generated by inputting into a hash function, the 16 second-level hash values are generated by inputting 16 third-level hash values into the hash function, respectively, and the 16 The third level hash value is generated by inputting hash values of 16 transactions among the plurality of transactions into the hash function, respectively.

Description

블록 데이터를 기록한 컴퓨터로 읽을 수 있는 기록 매체{Computer-readable recording medium that recorded block data}Computer-readable recording medium that recorded block data

본 발명은 블록 데이터를 기록한 컴퓨터로 읽을 수 있는 기록 매체에 관한 것이다.The present invention relates to a computer-readable recording medium recording block data.

블록체인은 비트코인 등과 같은 분산형 가상화폐 거래 시스템에서 노드들간 서로 주고받는 가상화폐의 거래(트랜잭션)를 지속적으로 기록하는 거래기록장부의 기능을 가지고 있다. 이와 같이 거래기록장부의 기능을 하는 블록체인이 분산형 가상화폐 거래 시스템에서 필요한 이유는 가상화폐가 실물의 물리적 화폐로 존재하는 것이 아니라 가상에서만 존재하기 때문이다. Blockchain has the function of a transaction record book that continuously records transactions (transactions) of virtual currency exchanged between nodes in a distributed virtual currency transaction system such as Bitcoin. The reason why the blockchain, which functions as a transaction record book, is needed in the distributed virtual currency transaction system, is that virtual currency does not exist as real physical currency, but only in virtual reality.

따라서, 현재 거래하는 가상화폐가 정당성을 가지고 있는가를 판단할 수 있는 자료는 최초 생성시부터 현재까지 일관성 있게 정당성을 가지는지 여부를 확인는 것이다. 이를 위해서는, 가상화폐가 최초 생성될 때부터 현재까지 거래 내역을 역추적할 수 있어야 한다. Therefore, the data that can determine whether the currently traded virtual currency has legitimacy is to check whether it consistently has legitimacy from the time of initial creation to the present. To do this, it is necessary to be able to trace back the transaction history from when the virtual currency was first created to the present.

은행과 같은 중앙서버가 총괄적으로 화폐를 관리하는 경우에는 중앙서버에서 가상화폐 거래기록을 총괄적으로 기록한다. 반면, 블록체인과 같은 암호화폐의 경우는 분산형 노드들로 이루어진 분산형 시스템 내에서 노드들에 의해 기록된다. 또한, 블록체인이 거래될 때마다 그 거래내용을 암호화하여 블록을 생성하고 새롭게 생성된 블록을 블록체인에 결합하여 거래장부를 업데이트 한다. When a central server such as a bank manages money as a whole, the central server records virtual currency transaction records as a whole. On the other hand, in the case of a cryptocurrency such as a blockchain, it is recorded by nodes in a decentralized system made up of decentralized nodes. In addition, whenever a block chain is transacted, the transaction contents are encrypted to create a block, and the newly created block is combined with the block chain to update the transaction book.

블록체인을 이용하는 가상화폐 거래 시스템에서는 시시각각으로 이루어지는 거래가 전체 노드에 전파되고, 새로운 거래기록은 블록으로 암호화되며 생성되며, 생성된 새로운 블록은 다시 기존의 블록체인에 결합되는 작업이 끊임없이 진행된다. 이와 같이, 새롭게 이루어지는 거래내역들을 함께 묶어서 일정한 주기동안 한 개의 새로운 블록을 생성하고, 그 블록이 정당성을 가지면 기존의 블록체인에 연결하는 과정을 소위 '작업증명(Proof of work)'이라고 한다. In a virtual currency transaction system using a block chain, transactions made every moment are propagated to all nodes, new transaction records are encrypted and created in blocks, and the new blocks created are continuously combined with the existing block chain. In this way, the process of creating a new block for a certain period by tying together the new transaction details, and connecting to the existing block chain if the block has legitimacy is called 'Proof of work'.

이를 위해서는 작업증명을 수행하는 참여자(이하, 채굴자)들에게 적극적으로 참여할 수 있는 보상 동기를 주어야 하는데, 이 부분이 소위 말하는 '채굴'이다. 즉, 채굴을 수행하는 채굴자가 새로운 블록을 생성하면 일정한 가상화폐를 보상으로 지불받게 된다. To this end, it is necessary to give reward motives to actively participate in the proof-of-work participants (hereafter, miners), and this is the so-called 'mining'. In other words, when a miner performing mining creates a new block, a certain amount of virtual currency is paid as a reward.

다만, 채굴의 특성상, 채굴은 참여하는 컴퓨터 능력에 의존할 수밖에 없기 때문에, 컴퓨터 능력을 집중화한 소수의 개체 또는 단체들에게 채굴이 집중되는 경향을 보이게 되는 점에서 문제가 있었다. 또한, 가상화폐 시스템의 신규화폐 공급은 채굴자가 채굴한 가상화폐를 통해 이루어지기 때문에 가상화폐가 소수의 과점 채굴자에게 편중되어 가상화폐의 빈익빈 부익부 현상을 가중시킬 수 있다는 점에서도 문제가 있었다.However, due to the nature of mining, there is a problem in that mining tends to be concentrated on a small number of individuals or groups that have centralized computer capabilities, since mining has no choice but to depend on the computing power involved. In addition, since the supply of new money in the virtual currency system is made through the virtual currency mined by miners, there is also a problem in that the virtual currency is biased towards a small number of oligopolistic miners, which may aggravate the phenomenon of the poor and the rich in the virtual currency.

본 발명의 목적은, 데이터 크기 및 참조 시간을 감소시키기 위한 인덱스 구조변경을 통해 블록체인 데이터 구조를 재설계하고, 미사용 트랜잭션 출력값(Unspent Transaction Output; 이하, UTXO)의 용량 경량화를 통하여, 처리 속도 감소 및 고속 트랜잭션을 지원할 수 있는 블록체인 구조를 제공하는 것이다.The object of the present invention is to redesign the block chain data structure through index structure change to reduce the data size and reference time, and to reduce the processing speed by reducing the capacity of the unused transaction output (Unspent Transaction Output; hereinafter, UTXO). and to provide a blockchain structure that can support high-speed transactions.

본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시예에 의해 보다 분명하게 이해될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.The objects of the present invention are not limited to the above-mentioned objects, and other objects and advantages of the present invention not mentioned may be understood by the following description, and will be more clearly understood by the examples of the present invention. It will also be readily apparent that the objects and advantages of the present invention may be realized by the means and combinations thereof indicated in the appended claims.

상기 기술적 과제를 달성하기 위한 본 발명의 실시예에 따른 블록 데이터를 기록한 컴퓨터로 읽을 수 있는 기록 매체는, 블록의 버전 및 제1 레벨 해시 레벨 루트를 포함하는 블록 헤더 및 복수의 트랜잭션을 포함하는 트랜잭션 목록을 포함하고, 상기 제1 레벨 해시 레벨 루트는 16개의 제2 레벨 해시값을 해시 함수(hash function)에 입력하여 생성되고, 상기 16개의 제2 레벨 해시값은 각각 16개의 제3 레벨 해시값을 상기 해시 함수에 입력하여 생성되고, 상기 16개의 제3 레벨 해시값은 각각 상기 복수의 트랜잭션 중 16개의 트랜잭션의 해시값을 상기 해시 함수에 입력하여 생성된다.A computer-readable recording medium recording block data according to an embodiment of the present invention for achieving the above technical problem is a block header including a version of a block and a first level hash level root, and a transaction including a plurality of transactions a list, wherein the first level hash level root is generated by inputting 16 second level hash values into a hash function, and the 16 second level hash values are each 16 third level hash values is generated by inputting to the hash function, and the 16 third-level hash values are generated by inputting hash values of 16 transactions among the plurality of transactions into the hash function, respectively.

본 발명은, 레벨 트리 구조로 트랜잭션을 관리하고 레벨 트리 루트 해시를 사용함으로써, 계산 비용을 줄이고 검증 성능 및 처리 속도를 향상시킬 수 있다.According to the present invention, by managing a transaction in a level tree structure and using a level tree root hash, it is possible to reduce calculation cost and improve verification performance and processing speed.

또한, 본 발명은, 트랜잭션에 불필요한 서명 수를 줄이고 한 쌍의 키만 사용함으로써, 트랜잭션 및 검증과정을 최적화시키고, 트랜잭션비용 및 자원소모를 감소시킬 수 있다.In addition, the present invention reduces the number of unnecessary signatures in a transaction and uses only a pair of keys, thereby optimizing a transaction and verification process, and reducing transaction costs and resource consumption.

본 발명의 효과는 전술한 효과에 한정되지 않으며, 본 발명의 당업자들은 본 발명의 구성에서 본 발명의 다양한 효과를 쉽게 도출할 수 있다.The effects of the present invention are not limited to the aforementioned effects, and those skilled in the art can easily derive various effects of the present invention from the configuration of the present invention.

도 1은 기존의 블록 체인 구조 및 본 발명의 실시예에 따른 블록 체인의 구조를 비교 설명하기 위한 도면이다.
도 2는 본 발명의 실시예에 따른 블록 체인의 트랜잭션 내에서의 단일 서명 트랜잭션 및 다중 서명 트랜잭션을 설명하기 위한 도면이다.
도 3은 본 발명의 실시예에 따른 UTXO 형식과 종래의 UTXO와의 차이를 설명하기 위한 도면이다.
도 4는 본 발명의 실시예에 따른 블록 직렬화를 설명하기 위한 도면이다.
도 5는 본 발명의 실시예에 따른 트랜잭션 내 서명의 유효성에 대해 설명하기 위한 도면이다.
도 6은 본 발명의 실시예에 따른 트랜잭션 내 노드들을 설명하기 위한 도면이다.
도 7은 본 발명의 다른 실시예에 따른 멀티 노드 병렬 트랜잭션 처리를 설명하기 위한 도면이다.
도 8은 본 발명의 또 다른 실시예에 따른 자산 트랜잭션을 설명하기 위한 도면이다.
도 9는 본 발명의 또 다른 실시예에 따른 발행 트랜잭션을 설명하기 위한 도면이다.
도 10은 본 발명의 실시예에 따른 토큰 체인 및 토큰 계약을 설명하기 위한 도면이다.
도 11은 본 발명의 실시예에 따른 분산형 응용 프로그램 트랜잭션과 토큰 체인의 관계에 대해 설명하기 위한 도면이다.
도 12는 본 발명의 실시예에 따른 점수 계산 및 순위 목록을 설명하기 위한 도면이다.
도 13은 본 발명의 몇몇 실시예들에 따른 채굴자 목록 동기화를 설명하기 위한 도면이다.
도 14는 본 발명의 실시예에 따른 옵저버 노드와 채굴자 그룹의 관계에 대해 설명하기 위한 도면이다.
도 15는 본 발명의 실시예에 따른 옵저버 노드에 의한 포크 예방을 설명하기 위한 도면이다.
1 is a diagram for explaining and comparing an existing block chain structure and a block chain structure according to an embodiment of the present invention.
2 is a diagram for explaining a single-signature transaction and a multi-signature transaction within a transaction of a block chain according to an embodiment of the present invention.
3 is a diagram for explaining the difference between the UTXO format and the conventional UTXO according to an embodiment of the present invention.
4 is a diagram for explaining block serialization according to an embodiment of the present invention.
5 is a diagram for explaining the validity of a signature in a transaction according to an embodiment of the present invention.
6 is a diagram for explaining nodes in a transaction according to an embodiment of the present invention.
7 is a diagram for explaining multi-node parallel transaction processing according to another embodiment of the present invention.
8 is a diagram for explaining an asset transaction according to another embodiment of the present invention.
9 is a diagram for explaining an issuance transaction according to another embodiment of the present invention.
10 is a diagram for explaining a token chain and a token contract according to an embodiment of the present invention.
11 is a diagram for explaining the relationship between a distributed application transaction and a token chain according to an embodiment of the present invention.
12 is a diagram for explaining a score calculation and a ranking list according to an embodiment of the present invention.
13 is a diagram for explaining miner list synchronization according to some embodiments of the present invention.
14 is a diagram for explaining the relationship between an observer node and a miner group according to an embodiment of the present invention.
15 is a diagram for explaining fork prevention by an observer node according to an embodiment of the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 따라서, 본 명세서의 예 및 실시 예는 본 개시의 범위를 제한하는 것으로 해석되어서는 안된다.Advantages and features of the present invention and methods of achieving them will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but will be implemented in a variety of different forms, and only these embodiments allow the disclosure of the present invention to be complete, and common knowledge in the technical field to which the present invention belongs It is provided to fully inform the possessor of the scope of the invention, and the present invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout. The terminology used herein is for the purpose of describing the embodiments and is not intended to limit the present invention. Accordingly, the examples and examples herein should not be construed as limiting the scope of the present disclosure.

본 명세서에서 사용된 "컴퓨터"는 다음에 따라 데이터를 조작할 수 있는 임의의 기계, 장치, 회로, 구성 요소 또는 모듈, 또는 임의의 기계, 장치, 회로, 구성 요소, 모듈 등의 시스템을 의미한다. 예를 들어, 프로세서, 마이크로 프로세서, 중앙 처리 장치, 범용 컴퓨터, 클라우드, 슈퍼 컴퓨터, 개인용 컴퓨터, 랩톱 컴퓨터, 팜탑 컴퓨터, 모바일 장치, 태블릿 컴퓨터, 노트북 컴퓨터, 데스크탑 컴퓨터, 워크 스테이션 컴퓨터, 서버 등, 또는 프로세서, 마이크로 프로세서, 중앙 처리 장치, 범용 컴퓨터, 슈퍼 컴퓨터, 개인용 컴퓨터, 랩톱 컴퓨터, 팜탑 컴퓨터, 모바일 장치, 태블릿 컴퓨터, 노트북 컴퓨터, 데스크탑 컴퓨터, 워크 스테이션 컴퓨터, 서버 등 을 포함할 수 있다. "Computer" as used herein means any machine, apparatus, circuit, component or module, or system of any machine, apparatus, circuit, component, module, etc., capable of manipulating data according to . For example, a processor, microprocessor, central processing unit, general purpose computer, cloud, supercomputer, personal computer, laptop computer, palmtop computer, mobile device, tablet computer, notebook computer, desktop computer, workstation computer, server, etc.; or processors, microprocessors, central processing units, general purpose computers, supercomputers, personal computers, laptop computers, palmtop computers, mobile devices, tablet computers, notebook computers, desktop computers, workstation computers, servers, and the like.

본 개시에서 사용되는 "서버"는 클라이언트-서버 아키텍처의 일부로서 연결된 클라이언트들에 대한 서비스를 수행하기위한 적어도 하나의 애플리케이션 및/또는 적어도 하나의 컴퓨터를 포함하는 소프트웨어 및/또는 하드웨어의 임의의 조합을 의미한다. 적어도 하나의 서버 애플리케이션은 예를 들어, 클라이언트로 응답을 다시 전송함으로써 클라이언트로부터의 서비스 요청에 대한 연결을 수락할 수 있는 애플리케이션 프로그램을 포함할 수 있지만, 이에 제한되지는 않는다. 서버는 최소한의 사람의 지시로 장시간 동안 무인 워크로드 하에서 적어도 하나의 애플리케이션을 실행하도록 구성될 수 있다. 서버는 복수의 컴퓨터를 포함할 수 있으며, 적어도 하나의 애플리케이션은 워크로드에 따라 컴퓨터들 간에 분할된다. 예를 들어 간단한 로드 중 하나 이상의 응용 프로그램이 단일 컴퓨터에서 실행될 수 있다. 그러나, 로드량이 많은 경우 하나 이상의 응용 프로그램을 실행하려면 여러 대의 컴퓨터가 필요할 수 있다. 서버 또는 해당 컴퓨터가 있는 경우 워크 스테이션으로도 이용할 수 있다.As used in this disclosure, "server" means any combination of software and/or hardware including at least one application and/or at least one computer for performing services for connected clients as part of a client-server architecture. it means. The at least one server application may include, but is not limited to, an application program that may accept a connection to a service request from a client, for example, by sending a response back to the client. The server may be configured to run at least one application under an unattended workload for an extended period of time with minimal human instruction. The server may include a plurality of computers, and at least one application is partitioned among the computers according to a workload. For example, during a simple load, one or more applications may run on a single computer. However, under heavy loads, multiple computers may be required to run more than one application. It can also be used as a server or as a workstation if you have a corresponding computer.

본 명세서에서 사용되는 "데이터베이스"는 적어도 하나의 애플리케이션 및/또는 적어도 하나의 컴퓨터를 포함하는 소프트웨어 및/또는 하드웨어의 임의의 조합을 의미한다. 데이터베이스는 구조화된 기록 모음 또는 데이터 모델에 따라 구성된 데이터를 포함할 수 있다. 데이터 모델은 예를 들어, 관계형 모델, 계층적 모델, 네트워크 모델 등이 포함될 수 있으며, 위에 적힌 모델들로 제한되지 않는다. 데이터베이스는 기술에서 알려진 대로 데이터베이스 관리 시스템 애플리케이션(DBMS)을 포함할 수 있다. 최소한 하나의 애플리케이션은, 예를 들어, 클라이언트로부터의 서비스 요청에 대한 연결을 수신할 수 있는 애플리케이션 프로그램을 포함할 수 있지만, 이에 한정되는 것은 아니다. 데이터베이스는 최소한의 사람 지시에 의해 장시간 무인으로, 종종 많은 업무량 하에서 적어도 하나의 애플리케이션을 실행하도록 구성될 수 있다.As used herein, “database” means any combination of software and/or hardware including at least one application and/or at least one computer. A database may contain a structured collection of records or data organized according to a data model. The data model may include, for example, a relational model, a hierarchical model, a network model, and the like, and is not limited to the above models. A database may include a database management system application (DBMS) as known in the art. The at least one application may include, but is not limited to, for example, an application program capable of receiving a connection for a service request from a client. The database may be configured to run at least one application unattended for extended periods of time, often under high workload, with minimal human instruction.

본 개시에서 사용되는 "통신 링크"는 적어도 2개의 지점들 사이에서 데이터 또는 정보를 전달하는 유무선 매체를 의미한다. 유선 또는 무선 매체는 예를 들어, 금속 도체 링크, 무선 주파수(RF) 통신 링크, 적외선 (IR) 통신 링크, 또는 광 통신 링크 등을 제한없이 포함할 수 있다. RF 통신 링크는 예를 들어 WiFi, WiMAX, IEEE 802.11, DECT, 0G, 1G, 2G, 3G, 4G 또는 5G 셀룰러 표준, 블루투스 등을 포함할 수 있다.As used herein, a “communication link” refers to a wired or wireless medium that transfers data or information between at least two points. Wired or wireless media can include, for example, without limitation, a metal conductor link, a radio frequency (RF) communication link, an infrared (IR) communication link, or an optical communication link, and the like. The RF communication link may include, for example, WiFi, WiMAX, IEEE 802.11, DECT, 0G, 1G, 2G, 3G, 4G or 5G cellular standards, Bluetooth, and the like.

본 개시에서 사용되는 "네트워크"는, 예를 들어, 근거리 통신망 (LAN), 광역 통신망 (WAN), 대도시 통신망 (MAN), 및 개인 영역 네트워크(PAN), 캠퍼스 영역 네트워크, 회사 영역 네트워크, 글로벌 영역 네트워크(GAN), 광대역 영역 네트워크(BAN), 셀룰러 네트워크, 인터넷, 클라우드 네트워크 등, 또는 전술 한 것의 임의의 조합으로써, 무선 및/또는 유선 통신 매체. 이러한 네트워크는 TCP/IP, IRC로 제한되지 않는 다양한 프로토콜을 실행할 수 있다.As used in this disclosure, “network” includes, for example, local area networks (LANs), wide area networks (WANs), metropolitan area networks (MANs), and personal area networks (PANs), campus area networks, company area networks, global areas. A wireless and/or wired communication medium, such as a network (GAN), a broadband area network (BAN), a cellular network, the Internet, a cloud network, or the like, or any combination of the foregoing. These networks can run a variety of protocols, not limited to TCP/IP or IRC.

본 명세서에서 사용되는 용어 "포함하는", "포함하는" 및 그 변형은, 달리 명시되지 않는 한 "포함하지만 이에 제한되지 않는"을 의미한다.As used herein, the terms "comprising", "comprising" and variations thereof mean "including, but not limited to," unless otherwise specified.

명시적으로 달리 명시되지 않는 한, 서로 통신하는 장치는 서로 지속적으로 통신할 필요는 없다. 또한, 서로 통신하는 장치는 하나 이상의 중개자를 통해 직접 또는 간접적으로 통신할 수 있다.Unless explicitly stated otherwise, devices that communicate with each other need not continuously communicate with each other. Also, devices that communicate with each other may communicate directly or indirectly through one or more intermediaries.

프로세스 단계, 방법 단계, 알고리즘 등이 순차적으로 설명될 수 있지만, 이러한 프로세스, 방법 및 알고리즘은 교대 순서대로 동작하도록 구성될 수 있다. 다시 말해서, 설명될 수 있는 임의의 순서 또는 단계 순서는 반드시 단계들이 그 순서로 수행되어야 한다는 요구사항을 나타내는 것은 아니다. 반드시 단계를 순서대로 수행할 요구 사항을 표시하지 않는다. 본 명세서에 기술된 프로세스, 방법 및 알고리즘의 단계는 임의의 순서로 수행될 수 있다. 또한, 일부 단계들이 동시에 수행될 수 있다.Although process steps, method steps, algorithms, etc. may be described sequentially, such processes, methods, and algorithms may be configured to operate in an alternating order. In other words, any order or sequence of steps that may be described does not necessarily represent a requirement that the steps be performed in that order. It does not necessarily indicate a requirement to perform the steps in sequence. The steps of the processes, methods, and algorithms described herein may be performed in any order. Also, some steps may be performed simultaneously.

단일 장치 또는 물품이 본 명세서에 기술될 때, 하나 이상의 장치 또는 물품이 단일 장치 또는 물품 대신 사용될 수 있다. 유사하게, 하나의 장치 또는 물품이 본 명세서에 기술되는 경우, 하나 이상의 장치 또는 물품이 하나의 장치 또는 물품 대신 사용될 수 있다. 장치의 기능 또는 특징은 대안적으로 그러한 기능 또는 특징을 갖는 것으로 명시되지 않은 하나 이상의 다른 장치에 의해 구현될 수 있다.When a single device or article is described herein, more than one device or article may be used in place of the single device or article. Similarly, where one device or article is described herein, more than one device or article may be used in place of the single device or article. A function or feature of a device may alternatively be implemented by one or more other devices not specified as having such function or feature.

본 명세서에서 사용되는 "컴퓨터 판독 가능 저장 매체"는 컴퓨터에 의해 판독될 수 있는 데이터 (예를 들어, 명령)를 제공하는데 참여하는 임의의 매체를 의미한다. 이러한 매체는 비휘발성 매체 및 휘발성 매체를 포함하여 많은 형태를 취할 수 있다. 비휘발성 매체는 예를 들어, 광학 또는 자기 디스크 및 기타 영구 메모리. 휘발성 매체는 동적 랜덤 액세스 메모리 (DRAM)를 포함할 수 있다. 전송 매체는 시스템 버스를 구성하는 와이어를 포함하여 동축 케이블, 구리 와이어 및 광섬유를 포함할 수 있다. 전송 매체는 무선 주파수 (RF) 및 적외선 (IR) 데이터 통신 동안 발생된 것과 같은 음향 파, 광파 및 전자기 방출을 포함하거나 전달할 수 있다. 컴퓨터 판독가능 매체의 일반적인 형태는, 예를 들어 플로피 디스크, 플렉시블 디스크, 하드 디스크, 자기 테이프, 임의의 다른 자기 매체, CD-ROM, DVD, 임의의 다른 광학 매체, 펀치 카드, 종이 테이프, 구멍 패턴을 갖는 임의의 다른 물리적 매체, RAM, PROM, EPROM, FLASH-EEPROM, 기타 메모리 칩 또는 카트리지, 여기에 기술된 반송파 또는 컴퓨터가 읽을 수 있는 기타 매체 등을 포함할 수 있다. 컴퓨터 판독가능 매체에는 "클라우드"가 포함될 수 있으며, 여기에는 여러 대의(예: 수천 대의) 컴퓨터 상에서 여러 대의(예: 수천 대의) 메모리 캐시에 걸쳐 파일을 배포하는 것이 포함된다."Computer-readable storage medium" as used herein means any medium that participates in providing data (eg, instructions) that can be read by a computer. Such media can take many forms, including non-volatile media and volatile media. Non-volatile media include, for example, optical or magnetic disks and other persistent memory. Volatile media may include dynamic random access memory (DRAM). Transmission media may include coaxial cables, copper wires, and optical fibers, including the wires constituting the system bus. Transmission media can contain or transmit acoustic waves, light waves, and electromagnetic emissions such as those generated during radio frequency (RF) and infrared (IR) data communications. Common forms of computer readable media include, for example, floppy disks, flexible disks, hard disks, magnetic tape, any other magnetic medium, CD-ROM, DVD, any other optical medium, punch card, paper tape, hole pattern. may include any other physical medium having a Computer-readable media may include the "cloud", including distributing files across multiple (eg, thousands) memory caches on multiple (eg, thousands) computers.

컴퓨터에 명령 시퀀스를 전달하는데 다양한 형태의 컴퓨터 판독 가능 매체가 포함될 수 있다. 예를 들어, 명령 시퀀스 (i)는 RAM에서 프로세서로 전달될 수 있고, (ii) 무선 전송 매체를 통해 전달될 수 있으며, (iii) WiFi, WiMAX, IEEE 802.11, DECT, 0G, 1G, 2G, 3G, 4G 및 5G 셀룰러 표준, 블루투스 등을 포함하여 기타 다양한 형식, 기준 또는 프로토콜에 따라 형식화 될 수 있다.Various forms of computer-readable media may be included to convey a sequence of instructions to a computer. For example, the command sequence (i) may be passed from RAM to the processor, (ii) may be transmitted over a wireless transmission medium, (iii) WiFi, WiMAX, IEEE 802.11, DECT, 0G, 1G, 2G, It can be formatted according to various other formats, standards or protocols, including 3G, 4G and 5G cellular standards, Bluetooth, etc.

도 1은 기존의 블록 체인 구조 및 본 발명의 실시예에 따른 블록 체인의 구조를 비교 설명하기 위한 도면이다.1 is a diagram for explaining and comparing an existing block chain structure and a block chain structure according to an embodiment of the present invention.

도 1을 참조하면, 기존 블록체인의 구조는 어카운트 구조(account structure) 혹은 UTXO(Unspent Transaction Output, 미사용 트랜잭션 출력) 구조 중 하나만 선택하여 체인을 구성한다. 이 때, 어카운트 구조는 UTXO 구조에 비해서 상대적으로 적은 데이터를 필요로 하고 처리가 빠르다. 반면, UTXO 구조는 어카운트 구조에 비해서 필요한 데이터가 상대적으로 큰 용량을 차지한다. 단, UTXO 구조 트랜잭션(20)은 어카운트 주소를 체인에 등록하는 절차 없이 바로 사용가능 하므로, 매 트랜잭션시 키를 생성하여 사용하는 경우 보안적 측면의 강점을 가질 수 있다. Referring to FIG. 1, the structure of the existing block chain configures the chain by selecting only one of the account structure or UTXO (Unspent Transaction Output) structure. At this time, the account structure requires relatively less data and processing is faster than the UTXO structure. On the other hand, the UTXO structure occupies a relatively large capacity compared to the account structure. However, since the UTXO structure transaction 20 can be used immediately without the procedure of registering the account address in the chain, when a key is generated and used in every transaction, it can have security strength.

본 발명의 몇몇 실시예들에 따른 블록 체인은 어카운트 구조 혹은 UTXO 구조가 상호 연동가능 하도록 구성되었으며, 어카운트 구조에서 UTXO 구조로, UTXO 구조에서 어카운트 구조로의 이동은 중간과정을 거치지 않고 자유롭게 전송이 가능하다. 본 발명의 몇몇 실시예들에 따른 블록 체인은 UTXO 구조를 사용해서 트랜잭션을 하는 것도 가능하고, 어카운트 구조를 사용해서 트랜잭션을 하는 것도 모두 가능할 수 있다. The block chain according to some embodiments of the present invention is configured so that the account structure or the UTXO structure is interoperable, and the transfer from the account structure to the UTXO structure and from the UTXO structure to the account structure can be freely transmitted without going through an intermediate process Do. In the block chain according to some embodiments of the present invention, it is possible to make a transaction using the UTXO structure, and it may be possible to make a transaction using the account structure.

기존의 UTXO 구조 트랜잭션(10)은 트랜잭션 헤더(transaction header), 입력 인덱스(vin), 출력 인덱스(vout) 및 서명(signatures)을 포함할 수 있다. 입력 인덱스(vin)는 해시 트랜잭션 아이디(TxID(hash)) 및 난스(Nonce)(N)를 포함할 수 있다. UTXO 구조 트랜잭션(20)도 트랜잭션 헤더(transaction header), 입력 인덱스(vin), 출력 인덱스(vout) 및 서명(signatures)을 포함할 수 있다. 입력 인덱스(vin)는 트랜잭션 아이디(height, index) 및 난스(N)를 포함할 수 있다.The existing UTXO structure transaction 10 may include a transaction header, an input index (vin), an output index (vout), and signatures (signatures). The input index (vin) may include a hash transaction ID (TxID (hash)) and a nonce (N). The UTXO structure transaction 20 may also include a transaction header, an input index (vin), an output index (vout), and signatures (signatures). The input index (vin) may include a transaction ID (height, index) and a nonce (N).

도 1의 기존의 UTXO 구조 트랜잭션(10)은 3개의 입력 인덱스(vin), 출력 인덱스(vout) 및 서명(signatures)을 포함하는 것으로 도시하였으나, 이는 예시에 불과할 뿐, 입력 인덱스(vin), 출력 인덱스(vout) 및 서명(signatures)의 개수는 이에 제한되는 것은 아니다. 도 1의 UTXO 구조 트랜잭션(20)도 3개의 입력 인덱스(vin) 및 출력 인덱스(vout)와 1개의 서명(signatures)을 포함하는 것으로 도시하였으나, 이는 예시에 불과할 뿐, 입력 인덱스(vin), 출력 인덱스(vout) 및 서명(signatures)의 개수는 이에 제한되는 것은 아니다.Although the existing UTXO structure transaction 10 of FIG. 1 has been shown to include three input indexes (vin), an output index (vout) and a signature (signatures), this is only an example, and an input index (vin), an output The number of indexes (vout) and signatures (signatures) is not limited thereto. Although the UTXO structure transaction 20 of FIG. 1 is also illustrated as including three input indexes (vin) and output indexes (vout) and one signature (signatures), this is only an example, and an input index (vin), an output The number of indexes (vout) and signatures (signatures) is not limited thereto.

기존의 UTXO 구조 블록(50)에서는 해시 트랜잭션 아이디(TxID(hash))가 해시(hash)를 사용하여 생성되고, 생성된 해시 트랜잭션 아이디(TxID(hash))는 서명(Signature)에 사용될 수 있다. 그러나, 이러한 해시 트랜잭션 아이디(TxID(hash))를 통해서는 블록의 위치와 트랜잭션의 위치를 직접 알 수 없고, 상기 블록의 위치와 트랜잭션의 위치를 알기 위해서는 추가적인 인덱싱(Indexing)이 필요할 수 있다. 기존의 UTXO 구조 트랜잭션(10)은 이 과정에서 큰 자원을 소모하며, 해시 트랜잭션 아이디(TxID(hash))를 표시하기 위해 32바이트의 큰 용량이 입력 인덱스(Vin)에 사용될 수 있다. 기존의 UTXO 구조 트랜잭션(10)은 또한, 4바이트의 난스(N)를 포함할 수 있다.In the conventional UTXO structure block 50, a hash transaction ID (TxID(hash)) is generated using a hash (hash), and the generated hash transaction ID (TxID(hash)) may be used for signature. However, the location of the block and the location of the transaction cannot be directly known through the hash transaction ID (TxID (hash)), and additional indexing may be required to know the location of the block and the location of the transaction. The existing UTXO structure transaction 10 consumes large resources in this process, and a large capacity of 32 bytes can be used for the input index Vin to display the hash transaction ID (TxID(hash)). An existing UTXO structure transaction 10 may also contain a nonce (N) of 4 bytes.

반면, 본 발명의 몇몇 실시예들에 따른 UTXO 구조 트랜잭션(20)은 32바이트의 해시 트랜잭션 아이디(TxID(hash))에서 크기가 줄어든 6바이트의 트랜잭션 아이디(TxID)를 포함할 수 있다. UTXO 구조 트랜잭션(20)의 트랜잭션 아이디(TxID)의 구성은 하기와 같다.On the other hand, the UTXO-structured transaction 20 according to some embodiments of the present invention may include a 6-byte transaction ID (TxID), which is reduced in size from a 32-byte hash transaction ID (TxID(hash)). The configuration of the transaction ID (TxID) of the UTXO structure transaction 20 is as follows.

TxID:{Height(4), Index(2)}TxID:{Height(4), Index(2)}

즉, 트랜잭션 아이디(TxID)는 4바이트의 블록의 높이(height)와 2바이트의 블록 내 트랜잭션의 위치(index)를 포함할 수 있다. UTXO 구조 트랜잭션(20)은 32바이트의 해시 트랜잭션 아이디(TxID(hash)) 대신 6바이트의 트랜잭션 아이디(TxID)를 사용함으로써 용량을 감소시킬 수 있다. 또한, 본 발명의 몇몇 실시예들에 따른 UTXO 구조 트랜잭션(20)은 난스(N)도 2바이트를 이용하여 기존의 UTXO 구조 트랜잭션(10)의 난스(N)에 비해서 용량을 절반으로 감소시킬 수 있다.That is, the transaction ID (TxID) may include a height of a block of 4 bytes and a location of a transaction within a block of 2 bytes (index). The UTXO structure transaction 20 can reduce the capacity by using a 6-byte transaction ID (TxID) instead of a 32-byte hash transaction ID (TxID (hash)). In addition, the UTXO structured transaction 20 according to some embodiments of the present invention can reduce the capacity by half compared to the nonce (N) of the existing UTXO structured transaction 10 by using 2 bytes for the nonce (N). there is.

본 발명의 몇몇 실시예들에 따른 블록 체인의 UTXO 구조 트랜잭션(20)은 트랜잭션 아이디 및 난스(N)의 용량이 감소됨에 따라, 직렬화, 처리과정, 트랜잭션 및 검색 등 모든 부분에서 처리 속도가 향상될 수 있다. 또한, 기존의 UTXO 구조 트랜잭션(10)을 본 실시예들에 따른 블록 체인의 UTXO 구조 트랜잭션(20)으로 바꾸면 약 33퍼센트의 용량을 더 절감할 수 있고, 이에 따라 전반적인 처리 성능이 40프로정도 향상될 수 있다. In the UTXO structure transaction 20 of the block chain according to some embodiments of the present invention, as the capacity of the transaction ID and nonce (N) is reduced, the processing speed will be improved in all parts such as serialization, processing, transaction and search. can In addition, if the existing UTXO structured transaction 10 is replaced with the UTXO structured transaction 20 of the block chain according to the present embodiments, the capacity can be further reduced by about 33%, and thus the overall processing performance is improved by 40% can be

트랜잭션에 필요한 트랜잭션 아이디는 모두 완성된 UTXO 구조 트랜잭션(20)에서 참조될 수 있다. 또한, 완성된 블록의 경우 블록의 높이(height) 및 블록 내 트랜잭션의 위치(index)가 고정되므로, UTXO 구조 트랜잭션(20)은 트랜잭션의 해시를 사용하지 않아도 모두 동일한 값을 참조하게 된다.All transaction IDs required for the transaction may be referenced in the completed UTXO structure transaction 20 . In addition, in the case of a completed block, since the height of the block and the position (index) of the transaction within the block are fixed, the UTXO structure transaction 20 refers to the same value even if the hash of the transaction is not used.

본 발명의 몇몇 실시예에 따른 블록체인의 네트워크는, 고속 트랜잭션 처리와 그에 기반한 분산형 응용 프로그램(Divisional Applications)의 완전히 독립적인 환경을 지원하도록 설계될 수 있다. 상기 고속 트랜잭션은 블록당 향상된 생성 시간과 트랜잭션 볼륨을 의미할 수 있다. 이러한 고속 트랜잭션을 위해서, 본 실시예들에 따른 블록 체인은 검증 속도를 높이고 데이터 용량을 줄이며, 멀티 노드 병렬 트랜잭션 처리를 통한 병렬 확장이 가능하도록 블록 구조가 기존과 다르게 재설계될 수 있다. 또한, 본 실시예들에 따른 블록 체인은 독립적인 체인 구성 및 분산형 응용 프로그램 실행을 통해 체인 간의 프로세스 간섭을 줄이고 각 분산형 응용 프로그램이 최적의 수준에서 수행되도록 할 수 있다.The blockchain network according to some embodiments of the present invention can be designed to support a completely independent environment of high-speed transaction processing and distributed applications based thereon. The high-speed transaction may mean an improved creation time and transaction volume per block. For such a high-speed transaction, the block chain according to the present embodiments increases the verification speed, reduces the data capacity, and the block structure can be redesigned differently from the existing ones to enable parallel expansion through multi-node parallel transaction processing. In addition, the block chain according to the present embodiments can reduce process interference between chains and ensure that each distributed application is performed at an optimal level through independent chain configuration and distributed application execution.

트랜잭션을 수행하기 위해 본 발명의 몇몇 실시예들에 따른 블록체인은 블록 및 트랜잭션을 통해 소유권을 확인하고 전송한다. 이러한 특성을 고려할 때, 본 실시예들에 따른 블록체인은 직렬화를 빠르게 하고, 직렬화 해제 단계에서 병렬로 블록 검증을 수행하고, 라이트 노드(Light Node)와 그에 따른 검증을 수행하고, 멀티 노드 병렬 트랜잭션 처리를 지원하는 것을 가능하게 할 수 있다. In order to perform a transaction, a blockchain according to some embodiments of the present invention confirms and transmits ownership through blocks and transactions. Considering these characteristics, the block chain according to the present embodiments speeds up serialization, performs block verification in parallel in the deserialization phase, performs light node and corresponding verification, and multi-node parallel transaction It can be made possible to support processing.

본 발명의 몇몇 실시예들에 따른 블록 체인의 코인의 소유권은 UTXO의 소유권과 동일하므로 UTXO를 사용하여 트랜잭션을 생성할 수 있다. 트랜잭션은 UTXO 생성시 삽입된 공용 키(public key)와 개인 키(private key) 입력을 이용하여 서명(Signature)을 통해 검증된다. 따라서, UTXO를 주체로 사용하는 계정은 하나의 공용 키(public key)와 개인 키(private key)를 한 쌍으로 볼 수 있다. Since ownership of coins in the block chain according to some embodiments of the present invention is the same as ownership of UTXO, a transaction can be created using UTXO. The transaction is verified through signature using the public key and private key input inserted when UTXO is created. Therefore, an account using UTXO as a subject can view one public key and one private key as a pair.

일반적으로 트랜잭션은 이전에 발생한 트랜잭션의 산출물로부터 UTXO를 입력 받은 다음 그 결과물을 다시 입력하는 것으로 구성될 수 있다. 그러나, 이것은 같은 주체가 트랜잭션을 수행하고 있더라도 복수의 서명(Signature)이 입력되기 때문에 불필요하게 트랜잭션 규모를 부풀릴 수 있다.In general, a transaction can consist of receiving UTXO from the output of a transaction that has occurred previously, and then re-entering the result. However, this may unnecessarily inflate the transaction size because a plurality of signatures are input even when the same subject is performing a transaction.

반면에, 본 실시예들에 따른 블록 체인의 단일 계정은 단일 주소를 가지며, 트랜잭션 당 하나의 서명(Signature)만이 필요할 수 있다. 본 발명의 몇몇 실시예들에 따른 블록 체인은 어카운트 방식일 때, 트랜잭션에 필요한 서명(Signature) 수를 줄이고 트랜잭션과 검증을 최적화하기 위해 계정당 한 쌍의 키만 사용할 수 있다.On the other hand, a single account in the block chain according to the present embodiments has a single address, and only one signature per transaction may be required. When the block chain according to some embodiments of the present invention is an account method, only one pair of keys per account can be used to reduce the number of signatures required for a transaction and optimize the transaction and verification.

도 2는 본 발명의 실시예에 따른 블록 체인의 트랜잭션 내에서의 단일 서명 트랜잭션 및 다중 서명 트랜잭션을 설명하기 위한 도면이다.2 is a diagram for explaining a single-signature transaction and a multi-signature transaction within a transaction of a block chain according to an embodiment of the present invention.

도 2를 참조하면, 본 발명은 계정당 하나의 공용 키(public key)와 개인 키(private key) 쌍을 사용하므로 단일 서명 트랜잭션(30)에는 단일 서명(single signature)이 존재한다.Referring to FIG. 2 , since the present invention uses one public key and one private key pair per account, a single signature exists in the single signature transaction 30 .

구체적으로, 단일 서명 트랜잭션(30)은 서명(signature), 입력 인덱스(vin) 및 출력 인덱스(vout)로 구성될 수 있다. 입력 인덱스(vin)는 트랜잭션 아이디(height, index) 및 난스(N)로 구성될 수 있다. 또한, 출력 인덱스(vout)는 금액(Amount) 및 주소(Address)로 구성될 수 있다. 여기서, 입력 인덱스(vin)에 대한 UTXO 입력의 공용 키(public key)는 모두 동일한 값이어야 한다. 그러나, 다중 서명(Multiple Signature) 기능을 제공할 수 없으므로 트랜잭션은 다중 서명 트랜잭션(40)과 같이 확장되어 다중 서명(Multiple Signature)을 지원한다.Specifically, the single signature transaction 30 may consist of a signature, an input index (vin), and an output index (vout). The input index (vin) may be composed of a transaction ID (height, index) and a nonce (N). In addition, the output index (vout) may be composed of an amount (Amount) and an address (Address). Here, the public key of the UTXO input for the input index (vin) should all be the same value. However, since a multiple signature function cannot be provided, the transaction is extended like the multi-signature transaction 40 to support multiple signatures.

다중 서명 트랜잭션(40)은 서명(signature), 입력 인덱스(vin) 및 출력 인덱스(vout)를 포함할 수 있다. 또한, 출력 인덱스(vout)는 금액(Amount) 및 주소(Address)를 포함할 수 있다.The multi-signature transaction 40 may include a signature, an input index (vin), and an output index (vout). In addition, the output index (vout) may include an amount (Amount) and an address (Address).

블록 체인에서는 원칙적으로 일치하는 공개 키 목록을 가진 UTXO만 입력 인덱스(Vin)를 입력할 수 있으며, 이것은 단일 계정에서 소유하는 단일 서명 UTXO를 포함하는 다중 서명 UTXO를 허용한다. 따라서, 입력 인덱스(vin)에 포함된 주소 수는 트랜잭션에 포함된 서명(signature) 수와 같아야 하며, 각 입력 인덱스(vin)의 주소 목록은 같아야 한다.In a blockchain, in principle, only UTXOs with a matching public key list can enter the input index (Vin), which allows for multi-signature UTXOs, including single-signature UTXOs owned by a single account. Therefore, the number of addresses included in the input index (vin) must be equal to the number of signatures included in the transaction, and the address list of each input index (vin) must be the same.

도 3은 본 발명의 실시예에 따른 UTXO 형식과 종래의 UTXO와의 차이를 설명하기 위한 도면이고, 도 4는 본 발명의 실시예에 따른 블록 직렬화를 설명하기 위한 도면이다.3 is a diagram for explaining the difference between a UTXO format according to an embodiment of the present invention and a conventional UTXO, and FIG. 4 is a diagram for explaining block serialization according to an embodiment of the present invention.

도 3 및 도 4를 참조하면, 기존의 UTXO 구조 블록(50) 및 UTXO 구조 블록(60)은 각각 블록 헤더(block header)와 트랜잭션(transactions)으로 구성된다. 기존의 UTXO 구조 블록(50)의 블록 헤더(block header)는 트랜잭션 아이디(txid)를 사용하는 이전(previous) 블록과 머클 트리 루트 해시(Merkle Tree root Hash)의 트랜잭션을 포함한다.3 and 4 , the conventional UTXO structure block 50 and the UTXO structure block 60 include a block header and transactions, respectively. The block header of the existing UTXO structure block 50 includes a previous block using a transaction ID (txid) and a transaction of a Merkle Tree root hash.

트랜잭션(transactions)의 크기를 줄이고 블록과 트랜잭션(transactions)의 위치를 즉시 추적하기 위해 본 발명의 몇몇 실시예들에 따른 블록 체인은 트랜잭션 아이디(txid)의 형식은 64비트로, 32비트의 블록 높이(height)와 16비트의 인덱스(index) 구조로 구성된다.In order to reduce the size of transactions and track the location of blocks and transactions immediately, the block chain according to some embodiments of the present invention has a transaction ID (txid) format of 64 bits and a block height of 32 bits ( height) and a 16-bit index structure.

위의 구조는 32비트의 블록 높이(height)와 16 비트의 트랜잭션 인덱스(index, 블록 내 트랜잭션 위치)로 구성된다. 이를 사용하면 32비트의 시프트 연산(Shift operation)만으로 블록 높이를 쉽게 얻을 수 있으며, 16 비트의 시프트 연산 및 비트 마스킹(Bits Masking)를 통해 블록의 트랜잭션 위치를 얻을 수 있다.The above structure consists of a block height of 32 bits and a transaction index of 16 bits (index, transaction location within a block). Using this, the block height can be easily obtained with only a 32-bit shift operation, and the transaction position of the block can be obtained through a 16-bit shift operation and bit masking.

기존의 블록체인의 구조에서는 머클 트리(Merkle Tree)를 사용하는데 이는 2개의 서로 다른 값으로부터 하나의 고유 값을 만들어 내는 방식(이하, BW)을 이용하여, 모든 값을 대표하는 값을 만들어 낸다. 머클 트리는 P2P(peer to peer) 파일 공유 방식에서 비롯되었는데, 하나의 파트와 그 인접 파트가 완성되면 BW로 완성된 값을 보장한다. 상기 BW로 완성된 값의 인접파트가 BW되면 2개의 BW된 값으로 다시 BW하여 완성된 값을 보장하는 범위를 늘릴 수 있다. 이런 방식으로 BW를 반복하면 최종적으로는 하나의 BW된 값(머클 트리 루트)로 파일의 신뢰성을 보장한다. The existing block chain structure uses a Merkle tree, which creates a value representing all values by using a method (hereinafter, BW) that creates one unique value from two different values. The Merkle tree is derived from the peer-to-peer (P2P) file sharing method, and when one part and its adjacent parts are completed, the completed value is guaranteed with BW. When the adjacent part of the value completed by BW is BW, the range for guaranteeing the completed value may be increased by BWing back to two BW values. If BW is repeated in this way, the reliability of the file is guaranteed with one BW value (Merkle tree root) in the end.

이 과정을 블록 체인에서 차용하여 머클 트리 루트를 통해 블록의 신뢰성 보장을 한다. 하나의 트랜잭션 파트를 검사하고 BW 하는 과정에서 P2P 파일 공유의 경우, 하나의 파트를 완성하는 시간(혹은 용량)이 BW시간(혹은 용량)보다 길어(커)서 머클 트리로 머클 트리 루트를 완성하는데 소모되는 비용이 적다. By borrowing this process from the block chain, the reliability of the block is guaranteed through the Merkle tree root. In the case of P2P file sharing in the process of inspecting and BWing one transaction part, the time (or capacity) to complete one part is longer (larger) than the BW time (or capacity), so the Merkle tree route is completed with the Merkle tree. The cost of consumption is low.

반면, 블록 체인의 경우 트랜잭션 하나의 크기가 작기 때문에 하나의 트랜잭션 파트를 검사하는 시간(혹은 용량)이 BW 시간(혹은 용량) 보다 작아서 BW로는 비효율적이며 머클 트리의 크기는 트랜잭션 서명의 전체 목록과 같은 수준(N이 1보다 클 때 N-1)의 개수를 가지고 있으며 이를 모두 가지고 있어야만 검증이 가능하다. 머클 트리는 비효율적인 계산 구조를 가지고 있기 때문에 간단한 트랜잭션 목록으로 라이트 노드 데이터를 확인하고 교환하기 어렵다.On the other hand, in the case of blockchain, since the size of one transaction is small, the time (or capacity) to check one transaction part is smaller than the BW time (or capacity), so it is inefficient for BW, and the size of the Merkle tree is the same as the entire list of transaction signatures. It has the number of levels (N-1 when N is greater than 1), and verification is possible only if you have all of them. Because the Merkle tree has an inefficient computational structure, it is difficult to check and exchange light node data with a simple transaction list.

따라서, 본 발명의 몇몇 실시예에 따른 블록 체인에서는 머클 트리 대신에 레벨 트리(level tree)를 채용하였다. 머클 트리는 블록 체인과 같은 P2P 네트워크 시스템에서 종종 데이터 전송 시 변경 사항을 감지하는 데 사용되지만, 이를 위해서는 전체 머클 트리가 필요할 수 있다. Accordingly, in the block chain according to some embodiments of the present invention, a level tree is employed instead of a Merkle tree. Merkle trees are often used in peer-to-peer network systems such as blockchains to detect changes in data transmission, but this may require the entire Merkle tree.

이 때, 기존의 UTXO 구조 블록(50)은 단일 노드(node)에서 로드되고 머클 트리는 전체 트랜잭션 아이디(txid) 목록과 거의 같은 크기를 가질 수 있다. 따라서, 기존의 UTXO 구조 블록(50)에서 머클 트리의 데이터 변경을 감지하는 것은 P2P 데이터 전송 시 사용한 부분을 확인하기 어려우므로 단순히 다른 각도에서 해시 함수(예를 들어, SHA256)로 해시를 추가적으로 수행하는 것과 다르지 않을 수 있다.At this time, the existing UTXO structure block 50 is loaded from a single node, and the Merkle tree may have a size approximately equal to that of the entire transaction ID (txid) list. Therefore, it is difficult to detect the data change of the Merkle tree in the existing UTXO structure block 50, so it is difficult to check the part used for P2P data transmission. may not be different from

반면에, 본 발명의 몇몇 실시예들에 따른 블록 체인의 UTXO 구조 블록(60)에서는 16개의 서로 다른 값으로부터 하나의 고유 값을 만들어 내는 방식(이하, HW)으로 대표 값을 만들 수 있다. 이로 인해 하나의 파트를 완성하는 시간이 HW 시간보다 길지 않게 되어 보다 더 효율적인 구조를 가질 수 있다. 나아가, 본 발명의 몇몇 실시예들에 따른 블록 체인의 UTXO 구조 블록(60)은 라이트 노드 및 병렬 처리의 지원도 가능할 수 있다.On the other hand, in the UTXO structure block 60 of the block chain according to some embodiments of the present invention, a representative value can be created in a way (hereinafter, HW) that creates one unique value from 16 different values. Due to this, the time to complete one part is not longer than the HW time, so that it can have a more efficient structure. Furthermore, the UTXO structure block 60 of the block chain according to some embodiments of the present invention may also support light nodes and parallel processing.

레벨 트리는 16개의 1레벨 해시값을 가지고, 각각의 1레벨 해시값은 16개의 2레벨 해시값을 가지며, 2레벨 해시값은 각각 16개의 3레벨 해시값을 가진다. 마지막으로 3레벨 해시값은 각각 16개의 트랜잭션을 가진다. 본 발명의 몇몇 실시예들에 따른 블록 체인의 UTXO 구조 블록(60)은 블록의 헤더에 3레벨의 오프셋(Offset)을 저장하여 트랜잭션 위치를 바로 알 수 있고, 어느 위치에서든 검증을 시작할 수 있어 병렬 처리에 유리하다. 1레벨 해시값 및 2레벨 해시값의 데이터의 크기는 예를 들어, 총 8880바이트(1레벨 해시값 크기: 512바이트, 2레벨 해시값 크기: 8192바이트)로 한 블록에 대한 검증 데이터를 보관할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.The level tree has 16 1-level hash values, each 1-level hash value has 16 2-level hash values, and each 2-level hash value has 16 3-level hash values. Finally, the three-level hash value has 16 transactions each. The UTXO structure block 60 of the block chain according to some embodiments of the present invention stores a three-level offset in the header of the block, so that the location of the transaction can be immediately known, and verification can be started at any location in parallel favorable for processing. The size of the data of the first-level hash value and the second-level hash value is, for example, a total of 8880 bytes (the first-level hash value size: 512 bytes, the second-level hash value size: 8192 bytes), and verification data for one block can be stored. there is. However, the present embodiment is not limited thereto.

또한, 본 발명의 몇몇 실시예들에 따른 블록 체인의 UTXO 구조 블록(60)은 트랜잭션 아이디(txid)에서 블록 높이 및 블록 내부의 인덱스 값을 즉시 알 수 있으므로 3레벨 해시값에 해당하는 512바이트 및 평균 3600바이트에 해당하는 16개의 트랜잭션만 가져오면 전체 레벨 트리 구조를 검증할 수 있어 라이트 노드로 사용이 가능하다.In addition, since the UTXO structure block 60 of the block chain according to some embodiments of the present invention can immediately know the block height and the index value inside the block from the transaction ID (txid), 512 bytes corresponding to the 3-level hash value and If only 16 transactions corresponding to an average of 3600 bytes are imported, the entire level tree structure can be verified, so it can be used as a light node.

본 실시예에 따른 블록 체인의 UTXO 구조 블록(60)은 블록 헤더(block header)와 트랜잭션 목록(transactions)으로 구성되며 레벨 트리를 사용하여 라이트 노드 및 병렬 처리를 지원한다. UTXO 구조 블록(60)은 블록 내에 블록 헤더(block header)와 트랜잭션 서명(transaction signatures), 트랜잭션(transactions) 및 블록 서명(block signatures)을 포함할 수 있다. 또한, 블록 헤더(block header)는 블록의 버전과 해시 이전 블록, 해시 레벨 루트 및 타임스탬프(Timestamp)를 포함할 수 있다.The UTXO structure block 60 of the block chain according to the present embodiment is composed of a block header and a list of transactions, and supports light nodes and parallel processing using a level tree. The UTXO structure block 60 may include a block header and transaction signatures, transactions, and block signatures in the block. In addition, the block header may include a version of the block, a block before the hash, a hash level root, and a timestamp.

먼저, 레벨 트리는 트랜잭션의 해시값을 16개씩 묶고 해당 묶음의 해시를 다시 사용하는 16진 트리 구조일 수 있다. 즉, 레벨 트리는 한 블록에 최대 기재 가능한 트랜잭션 수를 65535개로 잡고, 각 레벨 단계마다 16개의 자식을 가지도록 한 트리 구조일 수 있다. 따라서 레벨은 1레벨, 2레벨 및 3레벨이 존재한다. First, the level tree may be a hexadecimal tree structure in which hash values of transactions are bundled by 16 and the hash of the bundle is reused. That is, the level tree may have a tree structure in which the maximum number of transactions that can be written in one block is 65535 and each level has 16 children. Accordingly, there are level 1, level 2, and level 3 as the level.

블록 헤더(block header)에는 16개의 1레벨의 해시 레벨 루트가 기재되고, 1레벨의 해시 레벨 루트는 각각 16개의 2레벨 해시값에 대한 해시 값일 수 있다. 2레벨의 해시값은 각각 16개의 3레벨 해시값에 대한 해시 값일 수 있다. 3레벨의 해시값은 16개의 트랜잭션의 해시값을 이어 붙여서 이를 해시한 값을 사용한다.In a block header, 16 1-level hash level roots are described, and each 1-level hash level root may be a hash value for 16 2-level hash values. Each of the two-level hash values may be a hash value for 16 three-level hash values. The 3-level hash value uses the hashed value by concatenating the hash values of 16 transactions.

여기서 해시를 구성할 때에는 해시 값들 사이에 지정된 패턴의 1바이트 패딩(Padding)을 삽입하여 연결한 값을 해시하는 해시 함수(Hash function)를 사용할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.Here, when constructing a hash, a hash function that hashes the concatenated values by inserting 1-byte padding of a specified pattern between hash values can be used. However, the present embodiment is not limited thereto.

해시 함수는 제1 해시부터 제 16 해시까지 더한 후 각 해시마다 1바이트씩 추가할 수 있다. 이를 통해, 속도를 향상시키고 변조 가능성을 낮추도록 하였다.The hash function may add 1 byte to each hash after adding from the first hash to the 16th hash. This improves the speed and lowers the possibility of tampering.

블록 직렬화는 블록을 빠르게 병렬로 검증할 수 있도록 설계될 수 있다. 직렬화된 블록(70)은 블록 헤더(block header)와 블록 서명(block signatures), 트랜잭션 개수(transaction count)와 3레벨 인덱스(lv3 offsets), 트랜잭션 서명(transaction signatures) 및 트랜잭션(transactions)으로 구성될 수 있다. 또한, 블록 서명(block signatures)은 제작자 1개의 서명(Generator signature) 및 9개의 서명(6개의 Ranker signature, 3개의 Observer signature)을 포함할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.Block serialization can be designed to quickly verify blocks in parallel. The serialized block 70 is composed of a block header and block signatures, a transaction count and three-level indexes (lv3 offsets), transaction signatures, and transactions. can In addition, block signatures may include one generator signature and 9 signatures (6 Ranker signatures, 3 Observer signatures). However, the present embodiment is not limited thereto.

여기서 블록 헤더(block header)와 트랜잭션 개수(transaction count)는 고정된 크기이며, 3레벨 인덱스(lv3 offsets) 및 트랜잭션 서명(transaction signatures)은 트랜잭션 개수(transaction count)에 비례하는 고정 크기이다. 이는 트랜잭션(transactions)의 2진법 위치를 바로 확인할 수 있다는 것을 의미하며, 3레벨 인덱스(lv3 offsets)를 이용하면 16개 단위로 뭉쳐진 트랜잭션(transactions)의 위치를 바로 알 수 있어 병렬로 빠르게 2진법 데이터를 가져가서 바로 검증할 수 있다. Here, the block header and the transaction count have fixed sizes, and the three-level index lv3 offsets and transaction signatures have fixed sizes proportional to the transaction count. This means that the binary position of transactions can be checked immediately, and by using the 3-level index (lv3 offsets), the position of transactions grouped in 16 units can be immediately known, so that binary data can be quickly accessed in parallel. You can take it and verify it right away.

블록 서명(block signatures)은 블록 헤더(block header)에 대한 해시 값을 이용한 서명으로서, 생성자의 서명(Generator signature)과 블록 생성 그룹 노드(Ranker node) 및 옵저버 노드(Observer node)의 서명(Ranker signature, Observer signature)으로 구성되어 있다. Block signatures are signatures using a hash value for the block header, and include a generator signature and a ranker signature of a block generation group node and an observer node. , observer signature).

이때, 블록 생성은 블록 생성자가 수행할 수 있다. 즉, 블록 생성은 생성자 및 블록 생성 그룹이 하고, 그에 대한 내용 승인은 옵저버 노드에서 수행할 수 있다. 여기서, 옵저버 노드의 서명이 완료되고 완전히 검증된 블록에도 트랜잭션 서명(transaction signatures)이 같이 기재되어 전송된다. 또한, 개별 노드에서도 트랜잭션과 서명을 모두 검증하므로 잘못된 트랜잭션이 형성될 수 없다. In this case, block generation may be performed by a block producer. That is, block generation is performed by the creator and the block generation group, and content approval for it can be performed by the observer node. Here, the signature of the observer node is completed and transaction signatures are also written and transmitted in the completely verified block. In addition, since both the transaction and the signature are verified by individual nodes, an erroneous transaction cannot be formed.

도 5는 본 발명의 실시예에 따른 트랜잭션 내 서명의 유효성에 대해 설명하기 위한 도면이다.5 is a diagram for explaining the validity of a signature in a transaction according to an embodiment of the present invention.

도 5를 참조하면, 트랜잭션의 해시 레벨을 구성하고 레벨 트리의 해시 레벨 루트와 비교하여 트랜잭션(transactions)의 전체 일관성을 확인할 수 있다. 트랜잭션 서명(transaction signatures)을 16개로 나누고 3레벨 인덱스(lv3 offsets)를 사용하여 트랜잭션(transactions)을 16개로 나누어 트랜잭션 서명(transactions signatures), 트랜잭션(transactions) 및 레벨을 병렬로 비교하여 서명의 유효성을 확인할 수 있다. Referring to FIG. 5 , the overall consistency of transactions may be confirmed by configuring the hash level of the transaction and comparing it with the hash level root of the level tree. By dividing transaction signatures into 16 and transactions into 16 using 3-level indexes (lv3 offsets), we compare transaction signatures, transactions, and levels in parallel to verify the validity of the signatures. can be checked

이러한 모든 기능은 읽기 작업이므로 레벨 트리를 통해 블록의 수신과, 트랜잭션(transactions)을 16개씩 확인하는 것과, 해시를 3레벨로 구성하는 것을 동시에 수행할 수 있다. 따라서, 본 실시예들의 레벨 트리 구조는 라이트 노드의 검증에도 유리하다. Since all of these functions are read operations, it is possible to simultaneously receive blocks through the level tree, check 16 transactions, and construct three levels of hashes at the same time. Accordingly, the level tree structure of the present embodiments is also advantageous for the verification of the light node.

도 6은 본 발명의 실시예에 따른 트랜잭션 내 노드들을 설명하기 위한 도면이다.6 is a diagram for explaining nodes in a transaction according to an embodiment of the present invention.

도 6을 참조하면, 라이트 노드(Light Node)는 1레벨 당 512바이트와 2레벨 당 8192바이트를 가지므로, 라이트 노드(Light Node)는 블록 헤더를 포함하여 블록 당 8880바이트의 유효데이터를 포함할 수 있다. 특정 트랜잭션에 대한 데이터가 필요한 경우, 트랜잭션 아이디에 높이가 표시되므로 상기 트랜잭션 아이디를 통해서 특정 트랜잭션이 포함되는 블록을 즉시 알 수 있다. 또한, 특정 트랜잭션의 블록 내 위치가 인덱스에 표시되므로 특정 트랜잭션을 포함하는 레벨 트리 노드를 즉시 알 수 있다. 3레벨 내 트리에서 각각 512바이트와 3600바이트에 해당하는 16개의 트랜잭션을 가져오면, 트리 구조를 통해 트랜잭션 내용을 알 수 있다. 따라서, 라이트 노드(Light node)는 적은 데이터 수신으로 높은 수준의 트랜잭션을 확인할 수 있다.Referring to FIG. 6 , since a light node has 512 bytes per level 1 and 8192 bytes per level 2, the light node may contain effective data of 8880 bytes per block including the block header. can When data for a specific transaction is required, the height is displayed on the transaction ID, so that the block including the specific transaction can be immediately known through the transaction ID. In addition, the position in the block of a specific transaction is indicated in the index, so you can immediately know which level tree node contains the specific transaction. If 16 transactions corresponding to 512 bytes and 3600 bytes, respectively, are fetched from the tree within 3 levels, the transaction contents can be known through the tree structure. Accordingly, a light node can confirm a high-level transaction with little data reception.

현재 본 발명에는 데이터를 저장하기 위한 데이터 분할 및 이를 처리하기 위한 트랜잭션 분할의 2가지 공유형식이 있다. 아래 설명된 멀티 노드 병렬 트랜잭션 처리는 여러 노드를 샤드(Shard)로 이용함으로써 트랜잭션을 병렬로 처리하는 것을 말한다.Currently, in the present invention, there are two shared formats of data partitioning for storing data and transaction partitioning for processing the same. The multi-node parallel transaction processing described below refers to parallel processing of transactions by using multiple nodes as shards.

도 7은 본 발명의 다른 실시예에 따른 멀티 노드 병렬 트랜잭션 처리를 설명하기 위한 도면이다.7 is a diagram for explaining multi-node parallel transaction processing according to another embodiment of the present invention.

도 7을 참조하면, 본 발명의 각 샤드(shard #1~shard #4)는 독립적인 블록체인으로 취급되므로 온전히 병렬 방식으로 작동된다. 그러나, 사용자의 공용 키(public key) 및 개인 키(private key)는 샤드에 관계없이 동일한 값을 사용하여 마치 하나로 처리된 것처럼 보이고 사용될 수 있다. 이 방법을 사용하여 이중 지불이 불가능한 완전 병렬 멀티 노드 병렬 트랜잭션 처리 방법이 실행될 수 있다. 도 7에는 예시적으로 4개의 샤드가 도시되었으나, 본 실시예가 이에 제한되는 것은 아니다.Referring to FIG. 7 , each shard (shard #1 to shard #4) of the present invention is treated as an independent block chain, and thus operates in a completely parallel manner. However, the user's public key and private key can be viewed and used as if they were treated as one using the same value regardless of shard. Using this method, a fully parallel multi-node parallel transaction processing method in which double payment is not possible can be executed. Although 4 shards are illustrated by way of example in FIG. 7 , the present embodiment is not limited thereto.

사용자 지갑의 수수료는 트랜잭션을 수행하는데 사용되는 입력 및 출력 수에 비례하여 적절하게 측정된다. 트랜잭션은 여러 개의 샤드에 트랜잭션을 전송하기 위해 각 샤드의 입력을 수집하여 트랜잭션에 이용하고 원하는 출력을 트랜잭션에 분배할 수 있다.Fees in user wallets are appropriately measured in proportion to the number of inputs and outputs used to conduct transactions. In order to send a transaction to multiple shards, a transaction can collect the input of each shard, use it for the transaction, and distribute the desired output to the transaction.

기본적으로 지갑은 최소한의 트랜잭션을 생성하여 가장 적은 수의 샤드를 거치도록 설계되었다. 이를 통해, 본 실시예들에 따른 블록 체인은 필요에 따라 가장 작은 크기의 샤드 중 하나를 사용할 수 있고, 많은 양이 필요한 상황에는 큰 크기의 샤드를 사용할 수 있다. 이것이 가능하지 않을 경우, 본 실시예에 따른 블록 체인은 가능한 가장 큰 크기의 샤드를 사용하고, 나머지 양에 대해 위의 절차를 반복하여 가능한 최소한의 샤드를 사용할 수 있다. 이에 따라, 트랜잭션은 최소한의 제약을 가지고 이루어지며, 사용자는 사용한 샤드 수와 관계없이 동일한 수수료를 지불한다. By default, wallets are designed to generate minimal transactions and go through the fewest number of shards. Through this, the block chain according to the present embodiments may use one of the smallest shards as needed, and may use a large shard in a situation where a large amount is required. If this is not possible, the blockchain according to this embodiment uses the largest possible shard size, and repeats the above procedure for the remaining amount to use the smallest possible shard. Accordingly, transactions are performed with minimal restrictions, and users pay the same fee regardless of the number of shards used.

고급 트랜잭션은 사용을 확장하기 위해 추가된 유형의 트랜잭션이다. 이는 코인 트랜잭션에만 사용되었던 이전 모델보다 확장성이 뛰어나고 스마트 계약보다 처리하기가 쉽다. 고급 트랜잭션은 유형 및 구조가 추가된 코인 트랜잭션으로써 간단하게 설명될 수 있고, 기존 모델과 마찬가지로 쉽게 트랜잭션이 가능하다.An advanced transaction is a type of transaction added to extend its use. This is more scalable than previous models, which were used only for coin transactions, and easier to process than smart contracts. An advanced transaction can be simply described as a coin transaction with added type and structure, and can be easily transacted just like the existing model.

도 8은 본 발명의 또 다른 실시예에 따른 자산 트랜잭션을 설명하기 위한 도면이다.8 is a diagram for explaining an asset transaction according to another embodiment of the present invention.

도 8을 참조하면, 자산 트랜잭션은 특정 데이터에 대한 상품 또는 권한을 교환하는데 사용된다. 데이터 필드를 추가함으로써, 우선 트랜잭션 소유자는 상기 필드의 데이터에 대한 권리를 주장할 수 있고, 트랜잭션을 다시 제출함으로써 그 소유자는 트랜잭션 내의 데이터에 대한 권리를 행사할 수 있다. Referring to FIG. 8 , an asset transaction is used to exchange goods or rights for specific data. By adding a data field, first the transaction owner can assert rights over the data in that field, and by resubmitting the transaction, the owner can exercise the right over the data in the transaction.

예를 들어, 제1 사용자가 쿠폰 코드를 생성하고(1), 제1 사용자가 제2 사용자에게 쿠폰 코드가 포함된 자산을 발행하고(2), 제2 사용자는 제3 사용자에게 쿠폰을 제공하기 위해 데이터 필드에 쿠폰을 자산 트랜잭션으로 제시할 수 있다(3). 그 후, 트랜잭션 중에 제3 사용자는 그 트랜잭션에 서비스 ID를 쓸 수 있고(4), 그 서비스 ID에 쿠폰이 적용될 수 있다(5). 이 트랜잭션은 입력 인덱스(Vin)와 출력 인덱스(Vout)가 각각 1개씩만 있으며, 코인 트랜잭션과 마찬가지로 다중 서명(Multiple Signature) 기능을 허용할 수 있다.For example, a first user generates a coupon code (1), a first user issues an asset including a coupon code to a second user (2), and a second user provides a coupon to a third user Coupons can be presented as asset transactions in the data field for this purpose (3). Then, during the transaction, the third user can write the service ID to the transaction (4), and the coupon can be applied to the service ID (5). This transaction has only one input index (Vin) and one output index (Vout) each, and like a coin transaction, a multiple signature function can be allowed.

자산 트랜잭션에서는 코드를 개발하지 않고도 쿠폰 발행 및 트랜잭션 처리가 가능하며, 트랜잭션 속도는 본 발명의 블록체인에서 제공하는 고속 트랜잭션 속도를 이용할 수 있다. 메인 체인(Main chain) 외에도 독립적인 속도와 경제성이 필요한 경우, 토큰을 발행하여 토큰 체인 내에서도 사용할 수 있다.In asset transaction, coupon issuance and transaction processing are possible without developing code, and the transaction speed can use the high-speed transaction speed provided by the blockchain of the present invention. In addition to the main chain, if independent speed and economy are required, tokens can be issued and used within the token chain.

또한, 자산 트랜잭션을 이용하면 더 이상의 코드 개발 없이 쿠폰 발행과 처리가 용이하며, 자산 트랜잭션 속도도 본 발명의 블록 체인의 고속 트랜잭션 속도를 이용할 수 있다. 이것은 메인 체인뿐만 아니라 토큰 체인에서도 똑같이 사용할 수 있다.In addition, if asset transaction is used, coupon issuance and processing are easy without further code development, and the asset transaction speed can also use the high-speed transaction speed of the blockchain of the present invention. It can be used equally on the main chain as well as the token chain.

이하에서는 발행 트랜잭션에 대해 설명한다. 발행 트랜잭션 명령은 토큰을 작성하고 발행계약서를 발행할 때 사용된다. 발행 트랜잭션은 지정된 토큰을 발행하는 발행 트랜잭션을 배포하고, 이 트랜잭션의 해시 값을 해당 토큰 체인의 첫 해시로 사용할 수 있다. 토큰 체인에서는 채굴 알고리즘과 보상 메커니즘을 정의하는 토큰 계약을 발행 트랜잭션에서 함께 배포해야 한다.The issue transaction will be described below. The issuance transaction command is used to create a token and issue an issuance contract. The issuance transaction distributes the issuance transaction that issues the specified token, and the hash value of this transaction can be used as the first hash of the corresponding token chain. In a token chain, token contracts defining the mining algorithm and reward mechanism must be distributed together in the issuance transaction.

도 9는 본 발명의 또 다른 실시예에 따른 발행 트랜잭션을 설명하기 위한 도면이다.9 is a diagram for explaining an issuance transaction according to another embodiment of the present invention.

도 9를 참조하면, 발행 트랜잭션은 토큰과 본 실시예들의 코인을 교환할 수 있는 메커니즘을 제공할 수 있다. 또한, 그 반대의 경우 토큰으로 교환된 본 실시예들의 블록 체인의 코인은 토큰 관리자의 주소로 이동하여 토큰 생성을 위한 발행 트랜잭션이 발행될 수 있다. 토큰 체인(token chain)은 발행 트랜잭션을 확인하고 관련 금액이 입금된 주소에 제공할 지정된 토큰을 생성할 수 있다.Referring to FIG. 9 , the issuance transaction may provide a mechanism for exchanging a token and a coin of the present embodiments. In addition, in the opposite case, the coin of the block chain of the present embodiments exchanged for a token may be moved to the address of the token manager, and an issuance transaction for token generation may be issued. The token chain can verify the issuing transaction and create a designated token to be delivered to the address where the relevant amount is deposited.

토큰 트랜잭션(token transaction)은 토큰 체인(token chain)에서 발행된 토큰을 처리하는 트랜잭션으로 사용된다. 이는 토큰 정보가 토큰 체인 블록에 기록된다는 점을 제외하면 일반 코인 트랜잭션과 완전히 동일할 수 있다.A token transaction is used as a transaction that processes tokens issued in the token chain. This can be exactly the same as a normal coin transaction, except that the token information is recorded in the token chain block.

도 10은 본 발명의 실시예에 따른 토큰 체인 및 토큰 계약을 설명하기 위한 도면이다. 10 is a diagram for explaining a token chain and a token contract according to an embodiment of the present invention.

도 10을 참조하면, 토큰 체인(token chain)의 경우, 채굴 보상 및 체인에 대한 기타 정보를 상세히 기술하는 토큰 계약이 있으며, 토큰 관리자는 토큰 계약을 수정하여 보상 메커니즘을 업데이트할 수 있다. 이러한 관리방식은 나중에 관리자를 지정하는 투표를 도입할 것이며, 정해진 기간 동안 유권자 대다수가 동의할 경우, 토큰 계약은 더 이상 지갑 업데이트(Wallet update) 없이 새로운 보상 과정이 적용될 수 있도록 업데이트 될 수 있다.Referring to FIG. 10 , in the case of a token chain, there is a token contract that details mining rewards and other information about the chain, and the token manager can update the reward mechanism by modifying the token contract. This management method will later introduce a vote to designate a manager, and if the majority of voters agree for a set period of time, the token contract can be updated to apply a new reward process without any further wallet update.

분산형 응용 프로그램 트랜잭션 명령은 토큰 관리자가 분산형 응용 프로그램에 대한 새 데이터 체인을 작성할 때 사용된다. 본 발명의 분산형 응용 프로그램 토큰(DApp Token)은 독점 토큰 체인과 독립적인 보상 메커니즘으로 각 기능을 토큰화 할 수 있다. 서브 체인(Sub Chain)을 만들기 위하여 분산형 응용 프로그램 트랜잭션 명령이 사용될 수 있다.The decentralized application transaction command is used by the token manager to create a new data chain for the decentralized application. The decentralized application token (DApp Token) of the present invention can tokenize each function with a reward mechanism independent of the proprietary token chain. A decentralized application transaction command can be used to create a sub-chain.

도 11은 본 발명의 실시예에 따른 분산형 응용 프로그램 트랜잭션과 토큰 체인의 관계에 대해 설명하기 위한 도면이다.11 is a diagram for explaining the relationship between a distributed application transaction and a token chain according to an embodiment of the present invention.

도 11을 참조하면, 분산형 응용 프로그램 트랜잭션(DApp transaction)을 수행한 후, 토큰 관리자는 해당 트랜잭션 아이디를 사용하여 계약 트랜잭션을 작성할 수 있으며 계약 트랜잭션은 해당 서브 체인에서 스마트 계약을 분배하고 업데이트할 수 있다. 그런 다음 트랜잭션 명령을 사용하여 스마트 계약을 호출할 수 있다.Referring to Figure 11, after performing a decentralized application transaction (DApp transaction), the token manager can create a contract transaction using the corresponding transaction ID, and the contract transaction can distribute and update smart contracts in the corresponding sub-chain. there is. The smart contract can then be invoked using transaction commands.

채굴자(formulator; 이하, 채굴자)를 생성하려면, 트랜잭션을 형성하기 위해 지정된 수의 코인을 묶어야 한다. 본 발명의 블록체인에서 채굴자는 블록에 서명해야 하기 때문에, 공식 채굴자의 공용 키(public key) 및 개인 키(private key)를 미리 정의하고 배포해야 한다. 따라서, UTXO를 사용하여 채굴자 트랜잭션을 생성하며, 이때, 블록 서명 유효성을 정확히 검증하기 위해 새로 생성된 공용 키 및 개인 키 중 공용 키만 채굴자 트랜잭션에 기록된다. 이후에 채굴자 트랜잭션을 해제하는 트랜잭션을 생성하면, 이전 미사용 트랜잭션 출력값(UTXO)에 저장된 수수료의 총액에 해당하는 금액을 돌려받을 수 있다.To create a formulator (hereafter, a miner), a specified number of coins must be bundled to form a transaction. In the blockchain of the present invention, since miners must sign blocks, public and private keys of official miners must be defined and distributed in advance. Therefore, a miner transaction is created using UTXO, and at this time, only the public key among the newly generated public key and private key is recorded in the miner transaction to accurately verify the validity of the block signature. If you create a transaction that cancels the miner transaction afterwards, you can get a refund of the amount of the total fee stored in the previously unused transaction output (UTXO).

본 명세서에서 컨센서스(Consensus)는 블록 생성에 대한 합의를 뜻한다. 일반적으로 컨센서스는 난이도를 기반으로 합의하여 네트워크 전체에 블록을 전파시켜 임의의 사용자도 채굴이 가능하도록 지원하였다, In the present specification, consensus refers to a consensus on block generation. In general, consensus is supported based on the difficulty level, allowing arbitrary users to mine by propagating blocks throughout the network.

본 발명은 PoF(Proof-of-Formulator, 이하 PoF)를 개발하여 채굴자 보상 순서를 이용하여 채굴을 할 대상을 정한 후 전파 범위를 좁혀서 빠르게 블록을 생성하고 전파할 수 있다. 블록체인에는 옵저버 노드를 두어 즉시 승인처리를 하고 포크(Fork)를 예방할 수 있다.The present invention develops a PoF (Proof-of-Formulator, hereinafter referred to as PoF), determines the target to be mined using the miner reward sequence, and narrows the propagation range so that blocks can be generated and propagated quickly. By placing an observer node in the blockchain, it is possible to process approval immediately and prevent fork.

본 발명에서 블록 생성은 공공 IP(Internet Protocol)로 24시간 상시 실행함으로써 보상을 받는 채굴자들에 의해 수행될 수 있다. 채굴자가 생성한 블록에 대한 보상은 해당 채굴자가 생성한 채굴자 트랜잭션의 UTXO 주소로 이동될 수 있다. UTXO에 다중 서명(Multiple Signature)이 생성될 경우, 보상이 다중 서명(Multiple Signature)을 통해서만 사용될 수 있도록 모든 주소에 전송될 수 있다.In the present invention, block generation can be performed by miners who are rewarded by running 24 hours a day with a public Internet Protocol (IP). Rewards for blocks created by miners can be transferred to the UTXO address of the miner transaction created by the miner. When multiple signatures are generated in UTXO, rewards may be transmitted to all addresses so that they can be used only through multiple signatures.

본 발명은 이러한 목록을 사용하여 채굴 순서에 대한 합의를 생성하므로 채굴자 목록에 대한 계약이 매우 중요하다. 이것은 체인이 아니라 네트워크에서 실시간으로 합의될 수 있다. The contract on the miner list is very important as the present invention uses this list to create consensus on the order of mining. This can be agreed in real time on the network, not on the chain.

도 12는 본 발명의 실시예에 따른 점수 계산 및 순위 목록을 설명하기 위한 도면이다.12 is a diagram for explaining a score calculation and a ranking list according to an embodiment of the present invention.

도 12를 참조하면, 합의 알고리즘은 임의의 값, 보상 시간 및 네트워크 시간을 사용하여 다음과 같이 점수를 계산할 수 있다.Referring to FIG. 12 , the consensus algorithm may calculate a score as follows using an arbitrary value, a reward time, and a network time.

블록 보상 점수(score)=블록 해시 차이(block_hash_diff) + 대기 시간 차이(wait_time_diff)Block reward score (score) = Block hash difference (block_hash_diff) + Wait time difference (wait_time_diff)

여기서, 블록 해시 차이(block_hash_diff)는 '절대값([채굴자 트랜잭션 생성 블록, 마지막 보상 블록]의 마지막 블록의 해시 - 해당 블록 이전 100개 블록의 해시)'로 계산되고, 대기 시간 차이(wait_time_diff)는 '(현재 시간-[채굴자 트랜잭션 생성 블록 시간, 발견 시간, 마지막 보상 블록 시간]의 마지막 값)'으로 계산할 수 있다.Here, the block hash difference (block_hash_diff) is calculated as 'absolute value (hash of the last block of [miner transaction generation block, last reward block] - hash of 100 blocks before the block)', and the wait time difference (wait_time_diff) can be calculated as '(current time - last value of [miner transaction creation block time, discovery time, last reward block time])'.

따라서, 블록 생성을 통해 보상받을 가능성을 증가시킴으로써 점수(score)를 증가시킬 수 있다. 여기서, 해당 채굴자(formulator)가 블록을 생성할 때까지 해당 채굴자(formulator)의 채굴 트랜잭션 생성 블록 및 마지막 보상 블록은 고정된다.Therefore, it is possible to increase the score by increasing the probability of being rewarded through block generation. Here, the miner's mining transaction creation block and the last reward block are fixed until the corresponding miner (formulator) generates a block.

따라서, 점수(score)는 블록 높이가 증가하지 않으면 변경될 수 없다. 현재의 시간은 모두에게 공평하게 증가하기 때문에 차이가 없다. 이전의 경우와 같이 블록 높이가 증가하지 않으면 블록 높이가 변경되지 않으므로 채굴자 트랜잭션 생성 블록 시간 및 마지막 보상블록 시간은 합의될 수 있다. 문제는 발견시간이 하나뿐이기 때문에, 공식 목록 동기화를 사용하여 모든 채굴자(formulator)들이 가능한 동일한 값을 가질 수 있도록 한다. Therefore, the score cannot be changed without increasing the block height. There is no difference because the present time increases equally for all. As in the previous case, the block height does not change unless the block height increases, so the miner transaction creation block time and last reward block time can be agreed upon. The problem is that since there is only one discovery time, we use formal list synchronization to ensure that all formulators have the same value as possible.

즉, 공식 목록 동기화는 순서를 섞기 위해 해시를 사용하고, 동시에 블록 생성 보상 가능성을 높이기 위해 마지막 보상 블록 시간이 더 나중에 일어난 경우 채굴자(formulator)들의 점수를 증가시킨다. In other words, formal list synchronization uses hashes to shuffle, while at the same time increasing the score of formulators when the last reward block time occurs later to increase the probability of block creation rewards.

마지막으로 보상된 블록 시간이 더 오래 걸리면 채굴자(formulator)의 점수를 증가시킨다. 여기서 특정 채굴자(formulator)들의 채굴자 트랜잭션 생성 블록은 고정되고, 특정 채굴자(formulator)들이 블록을 생성하기 전까지 마지막 보상 블록 또한 고정된다. 블록 높이가 증가하지 않고 변경되지 않으므로 합의가 이루어질 수 있다. Finally, if the rewarded block time takes longer, the formulator's score is increased. Here, the miner transaction creation block of specific miners (formulators) is fixed, and the last reward block is also fixed until specific miners (formulators) generate the block. Consensus can be achieved since the block height does not increase and does not change.

이 때, 시간은 모든 사람들에게 차별없이 공평하게 증가된다. 그리고 위와 같이 블록 높이가 증가하지 않으면, 채굴자 트랜잭션 생성 블록 시간 및 마지막 보상 블록 시간은 변경되지 않는다. At this time, time is increased equally for all people without discrimination. And if the block height does not increase as above, the miner transaction creation block time and last reward block time do not change.

이에 따라서, 채굴자(formulator)들은 블록 보상 점수(score)에 따라서 순위가 지정된 경우, 마지막 순위의 채굴자(formulator)까지 모두 블록을 생성하기 전까지는 새로운 채굴자(formulator)가 유입되지 않는다. 만일, 마지막 순위의 채굴자(formulator)까지 모두 블록을 생성한 경우에는 새로운 페이즈(phase)에서 현재의 채굴자(formulator)의 블록 보상 점수(score)를 다시 산정하여 채굴자(formulator) 순위를 부여할 수 있다.Accordingly, when the miners are ranked according to the block reward score, no new formulators are introduced until all the formulators of the last rank have created blocks. If all blocks are created up to the last ranked formulator, the rank of the formulator is given by recalculating the block reward score of the current miner in a new phase. can do.

도 13은 본 발명의 몇몇 실시예들에 따른 채굴자 목록 동기화를 설명하기 위한 도면이다.13 is a diagram for explaining miner list synchronization according to some embodiments of the present invention.

도 13을 참조하면, 채굴자(formulator)는 네트워크 수준에서 일반 트랜잭션 외에도 특정 수의 채굴자 트랜잭션자를 유지하도록 설계되었다. 채굴자 목록을 동기화하기 위해, 각 채굴자(formulator)는 채굴자 개인 목록에 채굴자 목록을 요청한다. 새로운 채굴자(formulator)가 발견되면, 새로운 채굴자(formulator)는 목록에 추가되고 모든 채굴자 트랜잭션자들에게 전송된다. 이 발견 시간이 현재 시간으로부터 설정된 시간에 걸친 시간 간격을 넘는 경우, 발견 시간은 현재 시간으로 업데이트되며, 이후 저장 및 배포에도 이 시간이 사용된다. 이 과정은 점수를 높이기 위해 발견 시간을 변조하는 것을 방지하여 검색 시간이 안전하게 공유된다. 또한, 검색 시간 간격을 줄이기 위해 새로운 채굴자(formulator)가 네트워크에 배포되는 시간이 매우 중요하다.Referring to FIG. 13 , the formulator is designed to maintain a specific number of miner transacters in addition to normal transactions at the network level. To synchronize the list of miners, each formulator requests the list of miners from the private list of miners. When a new formulator is discovered, the new formulator is added to the list and sent to all miner transacters. If this discovery time exceeds the time interval from the current time to the set time, the discovery time is updated to the current time, which is also used for subsequent storage and distribution. This process prevents tampering with the discovery time to increase the score, so that the search time is shared securely. Also, the time at which new formulators are deployed to the network is very important to reduce the search time interval.

발견된 채굴자 트랜잭션이자 목록은 모두에게 알려진 네트워크에 빠르게 배포되어 신속하게 처리됨으로써 해결책이 될 수 있다. 따라서, 채굴자 발견 시간은 작은 오차 한계 내에서 서로의 노드와 공유되며, 이러한 방식으로 인한 발견 시간의 영향은 점수 계산에 큰 영향을 끼치지 않는다. 그리고 채굴자가 블록을 생성하여 최소 한 번 이상의 보상을 받는 경우, 그 후에 고정 값이 사용되어 연결이 끊어지지 않는 한 점수에서 추론된 순서가 더 확실해진다.Discovered miner transactions and lists could be a solution by being quickly distributed and expedited on a publicly known network. Therefore, the miner discovery time is shared with each other's nodes within a small margin of error, and the effect of the discovery time in this way does not significantly affect the score calculation. And if a miner is rewarded at least once for creating a block, then a fixed value is used to make the order inferred from the score more certain unless the connection is broken.

채굴자 순위는 예를 들어, 1순위에서 20순위의 범위를 갖는다. 가장 높은 순위의(1순위의) 채굴자가 블록 생성을 끝내고 순위를 벗어나면, 이전 2순위가 최고 순위가 되어 블록을 생성한다. 동시에 2~19번째 노드는 순위에 참여할 다음 채굴자를 선정하기 위해 투표에 참여한다. 그러면 투표 수가 가장 많은 채굴자가 채굴 그룹 및 순위에 참여하게 되며, 참여할 때 옵저버 노드로부터 하나 이상의 투표를 받아 상위 순위를 차지하려는 순서 변경 공격을 방지할 수 있다.Miner ranks range from rank 1 to rank 20, for example. When the highest-ranking (1st-ranked) miner finishes creating a block and leaves the rank, the previous 2nd rank becomes the highest rank and creates a block. At the same time, nodes 2-19 participate in voting to select the next miner to participate in the ranking. Then, the miner with the highest number of votes will participate in the mining group and ranking, and when participating, receive one or more votes from the observer node to prevent reordering attacks that try to occupy the top rank.

블록의 생성은 채굴자(formulator) 간의 합의된 블록 생성 순서에 따라 진행되게 되며, 이 때 생성한 블록의 보상은 블록을 생성한 채굴자(formulator)가 받는다. 블록 생성 순서는 전술한 채굴자 동기화를 사용하여 동기화된다. Block generation proceeds according to the block generation order agreed upon by the miners (formulator). The block generation order is synchronized using the miner synchronization described above.

균형 잡힌 네트워크 내에서 알고리즘은 관리되고 직접적으로 또는 여러 트랜잭션자들을 통해 연결에 접근하여, 네트워크 전체에서 그에 상응하는 블록 생성 순서에 대한 합의를 도출한다. 또한, 블록 생성은 서명이 들어감으로써 1순위만 가능하므로, 포크(fork) 생성이 가능한 노드는 최상위 노드만 가능하여 이를 방지하면 포크가 발생할 수 없다. 즉, 옵저버 노드가 실시간으로 확인되면 포크는 발생하지 않는다.In a balanced network, algorithms are managed and access connections either directly or through multiple transacters to reach consensus on the corresponding block generation order throughout the network. In addition, since block generation is possible only with the first priority by entering a signature, only the highest node can create a fork, and if this is prevented, a fork cannot occur. That is, if the observer node is confirmed in real time, a fork does not occur.

도 14는 본 발명의 실시예에 따른 옵저버 노드와 채굴자 그룹의 관계에 대해 설명하기 위한 도면이다.14 is a diagram for explaining the relationship between an observer node and a miner group according to an embodiment of the present invention.

도 14를 참조하면, 채굴 그룹은 채굴자(formulator) 중 1순위의 블록 생성자(Generator), 2순위부터 10순위까지의 동기화 그룹(Sync Group) 및 11순위부터 20순위까지의 대기 그룹(Wait Group)을 포함한다. 동기화 그룹(Sync Group)은 보상 순서에 동의하고 옵저버 노드(observers)는 컨텐츠 검증을 수행한다. 도 14의 동기화 그룹(Sync Group) 및 대기 그룹(Wait Group)의 채굴자의 개수는 예시에 불과하고, 본 실시예가 이에 제한되는 것은 아니다.Referring to FIG. 14 , the mining group is a block generator of 1st rank among formulators, a synchronization group of 2nd to 10th ranks, and a waiting group of 11th to 20th ranks (Wait Group). ) is included. The Sync Group agrees on the reward sequence, and observer nodes perform content verification. The number of miners in the sync group and the wait group of FIG. 14 is merely an example, and the present embodiment is not limited thereto.

즉, 블록 생성자(Generator)는 블록을 생성하고, 생성된 블록을 동기화 그룹(Sync Group) 및 옵저버 노드(observers)로 전송하고, 동기화 그룹(Sync Group)은 블록 생성자(Generator)의 순서와 헤더를 확인한 후 서명을 진행하여 옵저버 노드(observers)로 전송한다. 옵저버 노드(observers)는 동기화 그룹(Sync Group)으로부터 6개의 서명을 수신한 후에, 블록의 모든 트랜잭션 서명을 검토하고 옵저버 노드(observers) 간에 서명을 교환한다. 5개의 옵저버 노드(observers)에서 3개의 서명을 수집하면 블록이 완료되고, 옵저버 노드는 완성된 서명 부분을 동기화 그룹으로 전송한다. 이 때, 상술한 옵저버 노드(observers)의 개수 및 각각의 서명의 개수는 예시에 불과하여 본 실시예가 이에 제한되는 것은 아니다.That is, the block generator creates a block, and transmits the generated block to the Sync Group and observer nodes, and the Sync Group determines the order and header of the block generator. After verification, the signature is sent to observer nodes. After receiving 6 signatures from the Sync Group, observer nodes review all transaction signatures in the block and exchange signatures between observer nodes. When 3 signatures are collected from 5 observer nodes, the block is completed, and the observer node sends the completed signature part to the synchronization group. At this time, the above-described number of observer nodes (observers) and the number of each signature is only an example, and the present embodiment is not limited thereto.

동기화 그룹(Sync Group)은 이전에 수신한 블록에 서명을 부착하여 완료된 블록을 생성하여 대기 그룹에 전송한 다음 블록을 네트워크에 배포한다. 이러한 방식의 블록 생성자(Generator)는 블록을 신속하게 생성할 수 있으며, 옵저버 노드(observers)의 과반수가 서명하므로, 적어도 하나 이상의 옵저버 노드(observers)가 포크(fork)를 감지하기 때문에 포크가 발생할 수 없다. 그리고 동기화 그룹(Sync Group)이 검증 목적으로 순서에 서명하기 때문에, 편향된 옵저버 노드(observers)의 서명이 방지된다. 그리고, 동기화 그룹(Sync Group) 및 대기 그룹(Wait Group)의 역할 분담은 전송 트래픽을 분할하고 더 넓고 빠르게 네트워크에 블록이 퍼질 수 있도록 지원할 수 있다.The Sync Group creates a completed block by attaching a signature to the previously received block, sends it to the standby group, and then distributes the block to the network. In this way, block generators can generate blocks quickly, and since a majority of observer nodes sign, at least one observer node detects a fork, so a fork may occur. does not exist. And since the Sync Group signs the order for verification purposes, biased signatures of observer nodes are prevented. In addition, the division of roles between the Sync Group and the Wait Group can support the division of transmission traffic and spread of blocks in a wider and faster network.

1순위 채굴자(formulator)의 채굴을 촉진하기 위해, 2순위 채굴자(formulator)가 미리 준비될 수 있도록 2순위 채굴자(formulator)와 옵저버 노드(observers) 모두에 생성된 블록을 전송할 수 있다. 물론, 1순위 채굴자(formulator)에 의해 전송된 블록에 문제가 있거나 서명에 실패하면, 수신자 노드는 상기 블록을 폐기하고 새로운 블록을 준비하여 전달한다.To facilitate the mining of the first-order formulator, the generated block can be sent to both the second-order formulator and observer nodes so that the second-order formulator can be prepared in advance. Of course, if there is a problem with the block transmitted by the primary miner (formulator) or the signature fails, the recipient node discards the block and prepares a new block for delivery.

본 실시예에 따른 블록 체인은 생성된 블록에 문제가 없는 경우라면 빠르게 서명을 수행할 수 있다. 1순위 채굴자(formulator)가 제1 기준 시간(예, 1초) 이상 정상적인 블록을 생성하지 못하면, 2순위 채굴자(formulator)는 경우에 따라 자체적으로 새 블록을 생성할 수도 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.The block chain according to the present embodiment can quickly perform a signature if there is no problem in the generated block. If the first-order formulator fails to generate a normal block for more than the first reference time (eg, 1 second), the second-order formulator may generate a new block by itself in some cases. However, the present embodiment is not limited thereto.

또한, 이후에도 1순위 채굴자(formulator)가 제2 기준 시간(예, 3초) 이상 일반 노드를 생성하지 못하면 2순위 채굴자(formulator)는 즉시 작성된 블록을 전송하고 블록 생성을 계속 진행할 수 있다. 옵저버 노드(observers)는 1순위 채굴자(formulator)가 제2 기준 시간 이상 만들지 못함을 확인하고 서명 프로세스를 진행할 수 있다. 이 때, 제2 기준 시간은 상기 제1 기준 시간보다 긴 시간일 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.Also, if the first-order formulator fails to create a general node for more than the second reference time (eg, 3 seconds) after that, the second-order formulator immediately transmits the created block and can continue to generate the block. The observer nodes may confirm that the first-priority formulator does not create more than the second reference time and proceed with the signing process. In this case, the second reference time may be longer than the first reference time. However, the present embodiment is not limited thereto.

1순위 채굴자(formulator)가 블록을 생성하고 옵저버 노드의 서명을 받으면, 옵저버 노드는 해당 블록을 서명하고 저장한다. 동기화 그룹에 의해 서명이 완료되면, 블록을 수신하고 블록체인이 진행되어 포크(fork) 블록이 발생하여도 옵저버 노드(observers)를 통과하지 못하여 계획적으로 포크 발생을 차단할 수 있다. When the first-ranked miner (formulator) creates a block and receives the signature of the observer node, the observer node signs and stores the block. When the signature is completed by the synchronization group, even if the block is received and the block chain progresses and a fork block occurs, it cannot pass through the observer nodes, so it is possible to block the fork occurrence intentionally.

즉, 채굴자 순서가 정확하게 구성되면 1순위 채굴자(formulator)에게만 블록을 생성하고 서명할 수 있는 권리가 주어지며, 블록 체인을 포크하기 위해 2개 이상의 블록을 만드는 것은 옵저버 노드(observers)에 의해 중지된다. 따라서, 채굴자 순위 순서가 동기화되면, 블록 생성자(Generator)와 옵저버 노드(observers) 서명을 검증하는 것만으로도 포크가 되지 않은 블록을 수신할 수 있다. 이는 만들어진 블록이 확정성을 가지며 이에 따라 옵저버 노드(observers)를 거쳐서 승인된 모든 블록 트랜잭션은 즉시 승인이 된다.That is, if the order of miners is correctly configured, only the first-ranked formulator is given the right to create and sign a block, and to fork the block chain, making more than one block is done by observer nodes. Stopped. Accordingly, if the miner rank order is synchronized, blocks that have not been forked can be received simply by verifying the signatures of the block generator and observer nodes. This means that the created block has certainty, and accordingly, all block transactions approved through observer nodes are immediately approved.

도 15는 본 발명의 실시예에 따른 옵저버 노드에 의한 포크 예방을 설명하기 위한 도면이다.15 is a diagram for explaining fork prevention by an observer node according to an embodiment of the present invention.

도 15를 참조하면, 공격자는 옵저버 노드(observers)에 의하여 이중지불을 유도하는 포크 블록(Fork Block)을 생성할 수 없게 된다. 그리고 블록 생성의 주체는 채굴자이므로 블록 체인 유지는 채굴자를 생성한 개인이 담당하고, 옵저버 노드(observers)는 보상을 받지 않으므로 보상은 채굴자를 소유한 개인에게 제공된다. Referring to FIG. 15 , an attacker cannot create a fork block that induces double payment by observer nodes. And since the subject of block creation is the miner, the blockchain maintenance is carried out by the individual who created the miner.

여기서 유일하게 제어 가능한 부분은 채굴자 보상 순서 작업이지만, 모든 보상 순서는 점수에 의해 관리되고 보상받은 노드는 강제로 뒤로 밀기 때문에, 순서를 위조하는 유일한 방법은 채굴자 목록을 위조하는 것이다. 채굴자 목록은 채굴자가 네트워크에 올바르게 연결되어 있는지 여부를 평가하는데 사용되며, 위에서 동기화되어 작성된 목록을 직접 평가하므로 특정 노드를 제외하는 것은 매우 어렵다. 채굴자 블록 연결은 실제로 배포 과정에 참여하는 옵저버 노드(observers)에 의해 평가되므로 실제로 연결을 손상시키는 공격은 작동하지 않는다.The only controllable part here is the miner reward order operation, but since all reward order is managed by score and rewarded nodes are forced to push back, the only way to falsify the order is to falsify the miner list. The miner list is used to evaluate whether miners are properly connected to the network, and it is very difficult to exclude a specific node as it directly evaluates the synchronized list above. Miner block connections are actually evaluated by observers participating in the distribution process, so attacks that actually compromise the connection will not work.

가능한 나머지 공격은 의도적으로 서명을 거부하여 1순위에서 생성된 일반 블록이 필요한 서명을 받지 못하게 하는 것이다. 옵저버 노드(observers)는 서명을 수집하기 때문에 동기화 그룹으로부터 서명의 결과 또는 거부 이유를 수신한다. 유효하지 않은 거부 사유가 도착하거나 1초 이상 응답이 없으면 옵저버 노드는 5개 중 3개의 서명을 수신하고 이 정보를 동기화 그룹(Sync Group)에 분배하고 블록 생성 그룹은 해당 특정 노드를 제외한다. 동기화 그룹(Sync Group)은 옵저버 노드(observers)뿐만 아니라 전체 동기화 그룹(Sync Group)에도 블록 서명 요청을 보내므로 옵저버 노드(observers)의 응답이 유효한지 확인할 수 있다. 특정 노드가 동시에 제외 요청과 서명을 받는 경우, 노드는 서명 단계를 완료하기 위해 서명 정보를 옵저버 노드(observers)로 전송한다.The remaining possible attack is to intentionally reject the signature, preventing the normal block generated in the 1st order from receiving the required signature. Because observer nodes collect signatures, they receive the signature's result or rejection reason from the synchronization group. If an invalid rejection reason arrives or there is no response for more than 1 second, the observer node receives 3 out of 5 signatures and distributes this information to the Sync Group, and the block generation group excludes that specific node. Since the Sync Group sends a block signing request not only to the observer nodes but also to the entire Sync Group, it is possible to check whether the responses of the observer nodes are valid. When a specific node receives an exclusion request and signature at the same time, the node sends signature information to observer nodes to complete the signature step.

토큰은 토큰 체인에서 트랜잭션되며 블록 생성 및 토큰 발행은 해당 토큰의 토큰 계약에 설명된 방법에 따라 수행된다. 토큰 체인은 새로운 블록을 만들 때 메인 체인의 블록 번호 및 해시 값을 열거하여 메인 체인에 있어서의 발행 트랜잭션 처리를 보증한다. 토큰 체인은 그 아래에 분산형 응용 프로그램 트랜잭션을 생성하여 토큰에 대해 분산형 응용 프로그램을 실행할 서브 체인을 생성할 수 있다. 생성된 서브 체인은 PoF를 채굴 알고리즘으로써 따르고, 작업 증명서, 상태증명서, 상향식 기반 소셜 플랫폼 또는 토큰 생성자가 원하는 과정의 보상 메커니즘으로써 지원할 수 있다. Tokens are transacted on the token chain, and block generation and token issuance are performed according to the method described in the token contract for that token. When creating a new block, the token chain enumerates the block number and hash value of the main chain to ensure processing of the issued transaction in the main chain. The token chain can create decentralized application transactions underneath it, creating subchains that will run decentralized applications against the tokens. The created sub-chain follows PoF as a mining algorithm, and can support it as a proof of work, a state certificate, a bottom-up based social platform, or a reward mechanism for the process desired by the token creator.

발행 계약은 분산형 응용 프로그램의 기초가 되는 토큰을 생성하며 토큰과 본 발명 코인을 교환할 책임이 있다. 발행 계약에는 본 발명 코인이 토큰으로 변환되는 속도, 최대값 및 토큰 관리자가 받은 토큰 등 필요한 모든 값이 포함되어 있다. 따라서, 발행 계약은 최초 배포 후 수정할 수 없으므로, 배포하기 전에 신중하게 검토해야 한다. 사용자는 발행 계약 내에 본 발명 코인을 예치하면 토큰을 받을 수 있다. 여기서 발행 계약을 생성하는 트랜잭션과 토큰을 받는 트랜잭션을 발행 트랜잭션이라고 한다. 발행 계약은 메인 체인에 의해 운영되고 관리되며, 블록은 메인 체인을 기준으로 토큰 체인에 의해 생성되므로 토큰 생성 동기화가 가능하다.The issuance contract creates the token underlying the decentralized application and is responsible for exchanging the token for the Invention Coin. The issuance contract contains all necessary values, such as the rate at which the coin of the present invention is converted into a token, the maximum value, and the token received by the token manager. Therefore, the issuance agreement cannot be modified after initial distribution, so it should be carefully reviewed before distribution. The user can receive a token by depositing the invention coin in the issuance contract. Here, the transaction that creates the issuance contract and the transaction that receives the token are called the issuance transaction. The issuance contract is operated and managed by the main chain, and blocks are generated by the token chain based on the main chain, so token generation synchronization is possible.

토큰 계약에는 토큰 체인이 블록을 생성하는 방법, 특정 블록 높이에서의 보상 메커니즘, 블록 생성 과정 및 블록 생성을 위한 토큰 보상에 대한 정보를 포함한다. 토큰 계약을 사용할 때의 장점은 토큰 경제 구조화 시, 채굴 알고리즘과 보상 메커니즘을 지갑을 무리하게 사용하지 않고도 업데이트할 수 있다는 것이다. 물론 토큰 계약의 업데이트는 관리를 통한 의결에 의해 결정되므로 토큰 관리자는 업데이트 일정을 발행할 수 있지만 최종적으로는 토큰 소유자가 결정한다. 최고조 관리방식은 의결기간에 따라 정해지기 때문에, 토큰 계약 내에서 변동 계산은 마지막 최고조 관리방식을 통해 지원된다.The token contract contains information about how the token chain creates blocks, the reward mechanism at a specific block height, the block creation process, and the token rewards for creating blocks. The advantage of using a token contract is that when the token economy is structured, the mining algorithm and reward mechanism can be updated without overusing the wallet. Of course, the update of the token contract is determined by the decision through management, so the token manager can issue an update schedule, but ultimately the token holder decides. Since the peak management method is determined according to the voting period, the calculation of fluctuations within the token contract is supported through the last peak management method.

데이터 체인은 분산형 응용 프로그램 트랜잭션을 통해 생성된 서브 체인을 나타낸다. 데이터 체인은 분산형 응용 프로그램에 속하는 스마트 계약 데이터를 관리 및 보관하며, 토큰은 토큰 체인과 관련하여 해당 분산형 응용 프로그램의 계정에서 입금 및 출금을 할 수 있다. 이 연결에 대한 데이터 체인에 블록을 생성할 때 처리된 토큰 체인의 블록 번호와 해시 값이 나열된다.Data chains represent sub-chains created through decentralized application transactions. A data chain manages and stores smart contract data belonging to a decentralized application, and a token can be deposited and withdrawn from the account of that decentralized application in relation to the token chain. When creating a block in the data chain for this connection, the block number and hash value of the token chain that was processed is listed.

특정 분산형 응용 프로그램을 사용하려면, 분산형 응용 프로그램에 트랜잭션 호출을 보내 기능을 작동시킨다. 콜 커미션(Call Commission) 기능은 체인 생성 단계에서 무료로 설정되며, 이후 단계에서 관리자는 이를 확보하거나 보유한 토큰에 비례하여 여러 기능을 호출할 수 있다. 분산형 응용 프로그램의 데이터 체인은 모두 다르기 때문에, 각각 독립적으로 작동하여 용량, 커미션(Commission), 분산형 응용 프로그램 우선 실행 및 업데이트 문제를 해결한다. To use a particular distributed application, you send a transaction call to the distributed application to activate the function. The Call Commission function is set free at the chain creation stage, and at a later stage, the administrator can secure it or call several functions in proportion to the tokens he holds. Since the data chains of decentralized applications are all different, they each work independently to solve the problems of capacity, commission, and decentralized application priority execution and update.

데이터 체인 유형은 이벤트 소싱을 기반으로 한다. 분산형 응용 프로그램의 데이터 체인에서 작동하는 스마트 계약은 토큰 및 코인과 독립적으로 작동하므로 분산형 응용 프로그램 서비스를 최적화하도록 구성할 수 있다. 각 스마트 계약은 검토할 이벤트를 결정할 수 있으며 이벤트가 스마트 계약 증명을 통과하면 블록체인에 실행되고 기록된다. 블록체인에 기록된 이벤트는 각 노드로 전파되며 분산형 응용 프로그램 서비스를 제공하는 서버 전단은 관련 이벤트 스트림(Event Stream)에 가입하고 서비스 및 데이터를 제공하기 위해 적절한 저장소 형식을 제공한다. 만약에 특정 작업으로 인해 이벤트가 발생하면 스마트 계약으로 전송된 후 이를 검토하고 실행한다. 이는 단일 포인트 쓰기 검증과 동일하고 분산 환경에서 실행되므로, 충돌없이 일관성을 유지할 수 있어 결과적으로 일관성을 유지할 수 있다. 새 이벤트를 처리할 때는 새 스마트 계약을 배포하기만 하면 되며, 기존 이벤트 처리기 업데이트는 이동을 통해 업데이트 할 수 있다. 스마트 계약은 공통 인터페이스를 통해 확인되는 한 언어에 관계없이 인터페이스를 지원할 수 있으므로 현재 다양한 언어에 대한 지원이 가능하다.The data chain type is based on event sourcing. Smart contracts that operate on a decentralized application's data chain work independently of tokens and coins, so they can be configured to optimize decentralized application services. Each smart contract can decide which event to review, and if the event passes the smart contract proof, it is executed and recorded on the blockchain. Events recorded in the blockchain are propagated to each node, and the server front end providing decentralized application services subscribes to the relevant Event Stream and provides an appropriate storage format to provide services and data. If an event occurs due to a specific task, it is sent to the smart contract and reviewed and executed. This is equivalent to single-point write validation and runs in a distributed environment, so it can be consistent without conflicts, resulting in consistency. When handling new events, all you need to do is deploy a new smart contract, and existing event handlers can be updated via move. Smart contracts can support interfaces regardless of language as long as they are identified through a common interface, so support for multiple languages is now possible.

이때, 토큰 체인과 데이터 체인은 별도의 체인이며, 토큰 이동 및 생성된 데이터 체인의 분산형 응용 프로그램 주소는 토큰 체인에 저장된다. 실제 데이터 이동 및 스마트 계약 실행 평가는 데이터 체인에서 수행된다. 데이터 체인은 토큰 체인을 참조하므로 토큰 체인의 분산형 응용 프로그램 주소에 대한 입금 내역은 데이터 체인에서 처리될 수 있다. 문제는 특정 작업을 통해 인출이 확인되면 이 인출은 토큰 체인의 분산형 응용 프로그램 주소에서 가져와야 한다.At this time, the token chain and the data chain are separate chains, and the distributed application address of the token movement and the generated data chain is stored in the token chain. Actual data movement and smart contract execution evaluation are performed on the data chain. The data chain refers to the token chain, so deposits to the token chain's decentralized application addresses can be processed on the data chain. The problem is that once a withdrawal is confirmed through a specific operation, this withdrawal must come from a decentralized application address on the token chain.

데이터 체인을 생성하는 분산형 응용 프로그램 트랜잭션에서 데이터 체인의 모든 옵저버 주소(Observer address)를 나열해야 한다. 그런 다음 데이터 체인의 옵저버 노드(Observers)의 5개 중 3개에서 승인한 인출 트랜잭션의 경우, 해당 데이터 체인의 분산형 응용 프로그램 주소에서 인출이 허용된다. 이를 통해 스마트 계약에 의해 구동되는 데이터 체인을 여러 조각으로 분할하는 동시에 토큰 인출을 허용할 수 있다. 또한, 인출 트랜잭션에서 인출을 호출한 데이터 체인의 트랜잭션 아이디를 기록하여 필요할 때마다 확인할 수 있다.In a decentralized application transaction that creates a data chain, we need to list all observer addresses in the data chain. Then, for withdrawal transactions approved by 3 out of 5 Observers in the data chain, withdrawals are allowed from the address of the decentralized application in that data chain. This will allow for token withdrawals while splitting the data chain powered by smart contracts into multiple pieces. In addition, in the withdrawal transaction, the transaction ID of the data chain that called the withdrawal can be recorded and checked whenever necessary.

이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely illustrative of the technical idea of this embodiment, and various modifications and variations will be possible without departing from the essential characteristics of the present embodiment by those skilled in the art to which this embodiment belongs. Accordingly, the present embodiments are intended to explain rather than limit the technical spirit of the present embodiment, and the scope of the technical spirit of the present embodiment is not limited by these embodiments. The protection scope of this embodiment should be interpreted by the following claims, and all technical ideas within the scope equivalent thereto should be interpreted as being included in the scope of the present embodiment.

10: 기존의 UTXO 구조 트랜잭션
20: UTXO 구조 트랜잭션
30: 단일 서명 트랜잭션
40: 다중 서명 트랜잭션
10: Conventional UTXO structure transaction
20: UTXO structure transaction
30: single-signature transaction
40: multi-signature transaction

Claims (10)

블록의 버전 및 제1 레벨 해시 레벨 루트를 포함하는 블록 헤더; 및
복수의 트랜잭션을 포함하는 트랜잭션 목록을 포함하고,
상기 제1 레벨 해시 레벨 루트는 16개의 제2 레벨 해시값을 해시 함수(hash function)에 입력하여 생성되고,
상기 16개의 제2 레벨 해시값은 각각 16개의 제3 레벨 해시값을 상기 해시 함수에 입력하여 생성되고,
상기 16개의 제3 레벨 해시값은 각각 상기 복수의 트랜잭션 중 16개의 트랜잭션의 해시값을 상기 해시 함수에 입력하여 생성되는 블록 데이터를 기록한 컴퓨터 판독 가능 저장 매체.
a block header including a version of the block and a first level hash level root; and
including a transaction list including a plurality of transactions;
The first level hash level root is generated by inputting 16 second level hash values into a hash function,
Each of the 16 second-level hash values is generated by inputting 16 third-level hash values into the hash function,
Each of the 16 third-level hash values is a computer-readable storage medium recording block data generated by inputting hash values of 16 transactions among the plurality of transactions into the hash function.
제1 항에 있어서,
상기 해시 함수는 제1 내지 제16 입력을 받고,
상기 제1 내지 제16 입력 사이에 각각 패딩 데이터를 추가하여 직렬 입력을 생성하고,
상기 직렬 입력을 해시 처리하는 것을 포함하는 블록 데이터를 기록한 컴퓨터 판독 가능 저장 매체.
According to claim 1,
The hash function receives first to sixteenth inputs,
generating a serial input by adding padding data between the first to sixteenth inputs, respectively;
A computer readable storage medium having recorded thereon block data comprising hashing the serial input.
제2 항에 있어서,
상기 패딩 데이터의 크기는 1바이트인 블록 데이터를 기록한 컴퓨터 판독 가능 저장 매체.
3. The method of claim 2,
The size of the padding data is a computer-readable storage medium recording block data of 1 byte.
제1 항에 있어서,
상기 트랜잭션 목록은 최대 65535개의 트랜잭션을 기재하는 블록 데이터를 기록한 컴퓨터 판독 가능 저장 매체.
According to claim 1,
The transaction list is a computer-readable storage medium recording block data describing a maximum of 65535 transactions.
제1 항에 있어서,
상기 복수의 트랜잭션은 각각 트랜잭션 아이디를 포함하고,
상기 트랜잭션 아이디는 블록의 높이와 트랜잭션의 위치를 포함하는 블록 데이터를 기록한 컴퓨터 판독 가능 저장 매체.
According to claim 1,
Each of the plurality of transactions includes a transaction ID,
The transaction ID is a computer-readable storage medium recording block data including the height of the block and the location of the transaction.
제5 항에 있어서,
상기 트랜잭션 아이디의 크기는 6바이트인 블록 데이터를 기록한 컴퓨터 판독 가능 저장 매체.
6. The method of claim 5,
The size of the transaction ID is a computer-readable storage medium recording block data of 6 bytes.
제6 항에 있어서,
상기 블록의 높이는 4바이트이고,
상기 트랜잭션의 위치는 2바이트인 블록 데이터를 기록한 컴퓨터 판독 가능 저장 매체.
7. The method of claim 6,
The height of the block is 4 bytes,
A computer readable storage medium recording block data in which the location of the transaction is 2 bytes.
제1 항에 있어서,
상기 트랜잭션은 UTXO(Unspent Transaction Outputs) 방식 및 어카운트(account) 방식 중 적어도 하나가 적용되는 블록 데이터를 기록한 컴퓨터 판독 가능 저장 매체.
According to claim 1,
The transaction is a computer-readable storage medium recording block data to which at least one of an Unspent Transaction Outputs (UTXO) method and an account method is applied.
제1 항에 있어서,
상기 복수의 트랜잭션은 각각 트랜잭션 헤더, 입력 인덱스, 출력 인덱스 및 서명을 포함하고,
상기 입력 인덱스는 트랜잭션 아이디를 포함하는 블록 데이터를 기록한 컴퓨터 판독 가능 저장 매체.
According to claim 1,
Each of the plurality of transactions includes a transaction header, an input index, an output index, and a signature,
The input index is a computer-readable storage medium recording block data including a transaction ID.
제1 항에 있어서,
상기 블록 헤더는 해시 이전 블록 및 타임 스탬프를 더 포함하는 블록 데이터를 기록한 컴퓨터 판독 가능 저장 매체.
According to claim 1,
The block header is a computer-readable storage medium recording block data further including a block before hash and a time stamp.
KR1020190146358A 2019-09-30 2019-11-15 Computer-readable recording medium that recorded block data KR102386921B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190120672 2019-09-30
KR20190120672 2019-09-30

Publications (2)

Publication Number Publication Date
KR20210038271A KR20210038271A (en) 2021-04-07
KR102386921B1 true KR102386921B1 (en) 2022-04-20

Family

ID=75469471

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020190146358A KR102386921B1 (en) 2019-09-30 2019-11-15 Computer-readable recording medium that recorded block data
KR1020190146359A KR102386922B1 (en) 2019-09-30 2019-11-15 Blockchain system

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020190146359A KR102386922B1 (en) 2019-09-30 2019-11-15 Blockchain system

Country Status (1)

Country Link
KR (2) KR102386921B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023177358A1 (en) * 2022-03-18 2023-09-21 National University Of Singapore Distributed verifiable ledger database

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101660627B1 (en) * 2015-02-03 2016-09-28 한양대학교 에리카산학협력단 Method and apparatus for protecting transasction of encrypted currency
CN109923521A (en) * 2016-10-28 2019-06-21 区块链控股有限公司 Systems and methods for implementing Deterministic Finite Automata (DFAs) via blockchains
KR20180128874A (en) * 2018-11-14 2018-12-04 주식회사 미탭스플러스 Apparatus and method of deposit of cryptocurrency exchange using transaction verification

Non-Patent Citations (12)

* Cited by examiner, † Cited by third party
Title
Breaking Down FLETA’s Proof-of-Formulation, https://medium.com/fleta-first-chain/breaking-down-fletas-proof-of-formulation-2860c6cb7178 (2019.01.16.)
Ethereum Sharding: Overview and Finality, https://medium.com/@icebearhww/ethereum-sharding-and-finality-65248951f649 (2017.12.27.)
FLETA ─ Blockchain Ecosystem for DApps, https://levelup.gitconnected.com/fleta-blockchain-ecosystem-for-dapps-bd698fb4235b (2019.09.02.)
fleta level tree, https://medium.com/fleta-first-chain/fletas-block-redesign-level-tree-validation-and-parallel-sharding-82f11488fe04 (2019.01.22)
https://icosbull.com/whitepapers/5766/Fleta_whitepaper.pdf
https://medium.com/decipher-media/%EB%B8%94%EB%A1%9D%EC%B2%B4%EC%9D%B8-%ED%99%95%EC%9E%A5%EC%84%B1-%EC%86%94%EB%A3%A8%EC%85%98-%EC%8B%9C%EB%A6%AC%EC%A6%88-4-1-sharding-%EC%83%A4%EB%94%A9-611a311c80e6
LI Kejiao, "Proof of Vote, A High-Performance Consensus Protocol Based on Vote Mechanism & Consortium Blockchain", IEEE pp466-473, 2017.12.
Mitar Milutinovic. et.al., "Proof of Luck an Efficient Blockchain Consensus Protocol" (2016.12.16.) <URL: https://eprint.iacr.org/2017/249.pdf> 1부.
TechWhitepaper, https://fleta.io/download/FLETA_TechWhitepaper_EN_V2-web.pdf (2019.)
Whitepaper, https://fleta.io/download/FLETA_Buisness%20Whitepaper_EN.pdf
김성민 외 2인, 신규 참여자의 형평성 향상을 위한 블록체인에서의 새로운 증명 방식 연구: Proof-of-Probability, 정보보호학회지 제28권 제3호, 2018.06. 18-25(7페이지) 1부.
땡글닷컴, "네트워크 부담이 없는 합의 알고리즘" (2014.10.29.) <URL: https://www.ddengle.com/develop/893822> 1부.

Also Published As

Publication number Publication date
KR102386922B1 (en) 2022-04-20
KR20210038271A (en) 2021-04-07
KR20210038272A (en) 2021-04-07

Similar Documents

Publication Publication Date Title
US10965445B2 (en) Blockchain-based unexpected data detection
US11669811B2 (en) Blockchain-based digital token utilization
Hazari et al. A parallel proof of work to improve transaction speed and scalability in blockchain systems
Zhou et al. Solutions to scalability of blockchain: A survey
US11461769B2 (en) Multi-tiered digital wallet security
US11153069B2 (en) Data authentication using a blockchain approach
EP3438903B1 (en) Hierarchical network system, and node and program used in same
Kaur et al. Blockchain: A path to the future
Kaur et al. Scalability in blockchain: Challenges and solutions
EP3439231A1 (en) Private node, processing method for private node, and program for same
Zhou et al. DLattice: A permission-less blockchain based on DPoS-BA-DAG consensus for data tokenization
US10693646B2 (en) Event execution using a blockchain approach
Wang et al. Performance benchmarking and optimization for blockchain systems: A survey
KR20190068799A (en) Method and apparatus for performing hierarchically agreement based on service zone
CN115859343A (en) Transaction data processing method and device and readable storage medium
Sun et al. RTChain: A reputation system with transaction and consensus incentives for e-commerce blockchain
Liu et al. The service architecture of Internet of things terminal connection based on blockchain technology
Ren et al. Interoperability in blockchain: A survey
KR102386921B1 (en) Computer-readable recording medium that recorded block data
US11831749B1 (en) Method and system for utilizing the infrastructure of a blockchain to enhance the degree of reliability of another blockchain
Zhang et al. Consensus algorithm for medical data storage and sharing based on master–slave multi-chain of alliance chain
Wang et al. Chainsim: A p2p blockchain simulation framework
CN110321218A (en) A method of based on point to point network system solution MIXED INTEGER program
Himanshu An overview of blockchain technology: Architecture and consensus protocols
Zhao et al. Safe and Efficient Delegated Proof of Stake Consensus Mechanism Based on Dynamic Credit in Electronic Transaction

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right