KR20200038043A - Device and method for transaction processing based on block chain having multi-block structure - Google Patents

Device and method for transaction processing based on block chain having multi-block structure Download PDF

Info

Publication number
KR20200038043A
KR20200038043A KR1020180117649A KR20180117649A KR20200038043A KR 20200038043 A KR20200038043 A KR 20200038043A KR 1020180117649 A KR1020180117649 A KR 1020180117649A KR 20180117649 A KR20180117649 A KR 20180117649A KR 20200038043 A KR20200038043 A KR 20200038043A
Authority
KR
South Korea
Prior art keywords
block
sub
blockchain
transaction processing
blocks
Prior art date
Application number
KR1020180117649A
Other languages
Korean (ko)
Other versions
KR102110138B1 (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 한국항공대학교산학협력단
Priority to KR1020180117649A priority Critical patent/KR102110138B1/en
Publication of KR20200038043A publication Critical patent/KR20200038043A/en
Application granted granted Critical
Publication of KR102110138B1 publication Critical patent/KR102110138B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1046Joining mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1059Inter-group management mechanisms, e.g. splitting, merging or interconnection of groups
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/1082Resource delivery mechanisms involving incentive schemes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The present invention relates to a blockchain-based transaction processing apparatus and a method thereof. According to an embodiment of the present application, the blockchain-based transaction processing apparatus comprises the steps of: (a) when a main block directly connected to a blockchain is generated according to a block generation cycle, calculating the number of sub-blocks to be generated in association with the main block based on the number of waiting transactions waiting in a transaction pool and generating the determined number of sub-blocks according to the calculation result; and (b) processing at least a portion of the waiting transactions through the generated sub-blocks. The main block may be connected to the sub-block including a hash value of each of the sub-blocks determined according to the calculation result and an integrated hash value for the entire sub-blocks.

Description

멀티블록 구조를 갖는 블록체인 기반 트랜잭션 처리 장치 및 방법{DEVICE AND METHOD FOR TRANSACTION PROCESSING BASED ON BLOCK CHAIN HAVING MULTI-BLOCK STRUCTURE}Blockchain-based transaction processing device and method with multi-block structure {DEVICE AND METHOD FOR TRANSACTION PROCESSING BASED ON BLOCK CHAIN HAVING MULTI-BLOCK STRUCTURE}

본원은 멀티블록 구조를 갖는 블록체인 기반 트랜잭션 처리 장치 및 방법 에 관한 것이다.The present application relates to a block chain based transaction processing apparatus and method having a multi-block structure.

P2P 분산 컴퓨팅을 기반으로 데이터의 보안성을 보장하고 투명한 관리를 가능하게 하며 4차 산업 시대의 핵심 기술인 블록체인은 금융, 의료 등 다양한 분야에 적용되는 추세이다. 블록체인은 비트코인, 이더리움 등과 같은 가상화폐의 주요 기술로써 블록에 데이터를 담고 블록들을 연결함으로써 블록체인을 이루어 데이터를 관리하는 기술이다.Based on peer-to-peer distributed computing, data security is ensured, transparent management is possible, and a key technology in the fourth industrial era, blockchain, is a trend applied to various fields such as finance and healthcare. Blockchain is the main technology of cryptocurrency such as Bitcoin and Ethereum, and is a technology that manages data by forming a blockchain by storing data in blocks and connecting blocks.

블록체인의 블록이 생성되는 주기는 일정하게 정해져 있고 블록이 생성되는 사이에 발생하는 트랜잭션은 트랜잭션 풀에서 블록이 생성되기를 기다린다. 블록이 생성될 때 트랜잭션 풀에서 블록에 올라가기를 기다리고 있는 트랜잭션이 블록에 올라간다. 그런데 한 블록에 올라갈 수 있는 트랜잭션 수보다 트랜잭션 풀에서 대기하고 있는 트랜잭션 수가 더 많은 경우 일부 트랜잭션은 다음 블록이 생성될 때까지 또 기다려야한다. 비트코인의 경우 약 10분, 이더리움의 경우 약 15초 동안 더 기다려야하는 경우가 발생한다. 최악의 경우 블록에 올라가지 못하고 트랜잭션 풀에서 계속 대기하는 트랜잭션이 발생할 수 있다. 블록체인 기술에 대해 보안적인 측면을 장점이라고 하지만 위에서 제시한 트랜잭션 처리량은 여전히 해결해야하는 문제로 남아있다.The cycle in which blocks of the blockchain are created is fixed, and transactions occurring between blocks are waiting for the block to be created in the transaction pool. When a block is created, the transaction in the transaction pool is waiting for the block to climb to the block. However, if the number of transactions waiting in the transaction pool is greater than the number of transactions that can go up to one block, some transactions must wait until the next block is created. In the case of Bitcoin, it takes about 10 minutes to wait for Ethereum and about 15 seconds. In the worst case, there may be transactions that fail to climb the block and continue to wait in the transaction pool. The security aspect of blockchain technology is an advantage, but the transaction throughput suggested above remains a problem to be solved.

본원의 배경이 되는 기술은 한국등록특허공보 제10-1856038호에 개시되어 있다.The background technology of the present application is disclosed in Korean Registered Patent Publication No. 10-1856038.

본원은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 블록체인의 평균 트랜잭션 대기 시간을 감소시켜 트랜잭션 처리 속도를 향상시킬 수 있는 블록체인 기반 트랜잭션 처리 장치 및 방법을 제공하는 것을 목적으로 한다.The present application is to solve the above-described problems of the prior art, and an object of the present invention is to provide a blockchain-based transaction processing apparatus and method capable of improving the transaction processing speed by reducing the average transaction waiting time of the blockchain.

본원은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 블록이 생성될 때, 대기하고 있는 트랜잭션을 모두 처리할 수 있는 블록체인 기반 트랜잭션 처리 장치 및 방법을 제공하는 것을 목적으로 한다.An object of the present invention is to solve the above-described problems of the prior art, and an object of the present invention is to provide a blockchain-based transaction processing apparatus and method capable of processing all waiting transactions when a block is generated.

다만, 본원의 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들도 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.However, the technical problems to be achieved by the embodiments of the present application are not limited to the technical problems as described above, and other technical problems may exist.

상기한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본원의 일 실시예에 따른 블록체인 기반 트랜잭션 처리 방법은 (a) 블록 생성 주기에 따라 블록체인에 직접 연결되는 메인블록이 생성되면 트랜잭션 풀에서 대기하는 대기 트랜잭션의 수에 기초하여 상기 메인블록 과 연관되어 생성할 서브블록의 수를 연산하고, 상기 서브블록을 연산 결과에 따라 결정된 수만큼 생성하는 단계; 및As a technical means for achieving the above technical problem, the blockchain-based transaction processing method according to an embodiment of the present application (a) waits in a transaction pool when a main block directly connected to the blockchain is generated according to a block generation cycle Calculating the number of sub-blocks to be generated in association with the main block based on the number of waiting transactions, and generating the sub-blocks by a number determined according to a result of the operation; And

(b) 생성된 상기 서브블록을 통해 상기 대기 트랜잭션 중 적어도 일부를 처리하는 단계를 포함하되,상기 메인블록은 상기 연산 결과에 따라 결정된 수의 상기 서브블록 각각의 해시값 및 상기 서브블록 전체에 대한 통합 해시값을 포함하여, 상기 서브블록과 연결될 수 있다.(b) processing at least a portion of the waiting transaction through the generated sub-block, wherein the main block is a hash value of each of the sub-blocks determined according to the calculation result and the entire sub-block. Including an integrated hash value, it can be connected to the sub-block.

본원의 일 실시예에 따르면, 상기 (a)단계에서, 생성할 상기 서브블록의 수는, 하나의 블록이 처리 가능한 트랜잭션의 수에 대한 상기 대기 트랜잭션의 수의 비율에 기초하여 연산될 수 있다.According to an embodiment of the present application, in step (a), the number of the subblocks to be generated may be calculated based on a ratio of the number of waiting transactions to the number of transactions that one block can process.

본원의 일 실시예에 따르면, 상기 서브블록의 수는 상기 비율을 올림한 자연수로 결정될 수 있다.According to one embodiment of the present application, the number of sub-blocks may be determined as a natural number rounded up with the ratio.

본원의 일 실시예에 따르면, 상기 (a) 단계는, 블록체인 적용 환경을 고려한 식 1에 기초하여 블록 생성 주기당 생성되는 최대 서브블록 수를 결정하고, 식1을 만족하는 가장 큰 n값이 상기 최대 서브블록 수로 결정되며, 상기 (a) 단계에서 생성되는 상기 서브블록의수는 상기 최대 서브블록 수 이하로 제한될 수 있다.According to an embodiment of the present application, in step (a), the maximum number of subblocks generated per block generation cycle is determined based on Equation 1 considering the blockchain application environment, and the largest n value satisfying Equation 1 is It is determined by the maximum number of sub-blocks, and the number of sub-blocks generated in step (a) may be limited to the maximum number of sub-blocks or less.

본원의 일 실시예에 따르면, 상기 (b)단계는 트랜잭션 검증 속도가 향상되도록, 복수의 쓰레드를 통해 상기 대기 트랜잭션 중 적어도 일부를 병렬적으로 검증할 수 있다.According to an embodiment of the present application, in step (b), at least some of the waiting transactions may be verified in parallel through a plurality of threads so that the transaction verification speed is improved.

본원의 일 실시예에 따르면, 상기 메인블록과 연결되는 서브블록은 상기 메인블록의 해시값을 포함하고, 이전 서브블록과 연결되는 서브블록은 상기 이전 서브블록의 해시값을 포함할 수 있다.According to an embodiment of the present disclosure, a sub-block connected to the main block may include a hash value of the main block, and a sub-block connected to the previous sub-block may include a hash value of the previous sub-block.

본원의 일 실시예에 따르면, 상기 메인블록, 상기 메인블록과 연결되는 서브블록, 및 상기 이전 서브블록과 연결되는 서브블록은, 상기 메인블록으로부터 순차적으로 직렬 연결될 수 있다.According to an embodiment of the present application, the main block, a sub-block connected to the main block, and a sub-block connected to the previous sub-block, may be sequentially connected in series from the main block.

본원의 일 실시예에 따르면, 상기 메인블록은 이전 블록 생성 주기에 생성된 이전 메인블록에 관한 해시값을 포함할 수 있다.According to one embodiment of the present application, the main block may include a hash value for the previous main block generated in the previous block generation cycle.

본원의 일 실시예에 따르면, 상기 이전 메인블록에 관한 해시값은, 상기 이전 메인블록과 연관되어 생성된 서브블록 전체에 대한 통합 해시값으로 설정될 수 있다.According to an embodiment of the present application, a hash value for the previous main block may be set as an integrated hash value for all subblocks generated in association with the previous main block.

본원의 일 실시예에 따르면, 상기 (a) 단계 및 상기 (b) 단계는 하나의 노드를 포함하는 노드군에 의해 수행되고, 상기 하나의 노드가 블록헤더만 가지는 라이트 노드가 아닌 풀 노드인 경우, 상기 하나의 노드에는 인센티브가 부여될 수 있다.According to one embodiment of the present application, steps (a) and (b) are performed by a group of nodes including one node, and when the one node is a full node, not a light node having only block headers , Incentives may be provided to the one node.

본원의 일 실시예에 따르면, 상기 인센티브는, 이전 블록 생성 주기와 대비한 금번 블록 생성 주기에서의 블록체인 데이터 증가율 및 상기 금번 블록 생성 주기 기준 상기 하나의 노드가 포함된 전체 네트워크의 풀 노드 비율을 고려하여 결정될 수 있다.According to an embodiment of the present application, the incentive, the block chain data growth rate in the current block generation cycle compared to the previous block generation cycle and the full node ratio of the entire network including the one node based on the current block generation cycle It can be decided in consideration.

본원의 일 실시예에 따르면, 상기 인센티브는 상기 블록체인 데이터 증가율이 커지거나 상기 풀 노드 비율이 작아질수록 증가될 수 있다.According to one embodiment of the present application, the incentive may be increased as the blockchain data growth rate increases or the full node rate decreases.

본원의 일 실시예에 따르면, 블록체인 기반 트랜잭션 처리 장치는 블록 생성 주기에 따라 블록체인에 직접 연결되는 메인블록이 생성되면, 트랜잭션 풀에서 대기하는 대기 트랜잭션의 수에 기초하여 상기 메인블록과 연관되어 생성할 서브블록의 수를 연산하고, 상기 서브블록을 연산 결과에 따라 결정된 수만큼 생성하는 서브블록 생성부 및 생성된 상기 서브블록을 통해 상기 대기 트랜잭션 중 적어도 일부를 처리하는 트랜잭션 처리부를 포함하되, 상기 메인블록은 상기 연산 결과에 따라 결정된 수의 상기 서브블록 각각의 해시값 및 상기 서브블록 전체에 대한 통합 해시값을 포함하여, 상기 서브블록과 연결될 수 있다.According to one embodiment of the present application, the blockchain-based transaction processing apparatus is associated with the main block based on the number of waiting transactions waiting in the transaction pool when the main block directly connected to the blockchain is generated according to the block generation cycle. It includes a sub-block generating unit for calculating the number of sub-blocks to be generated, and generating a predetermined number of sub-blocks according to the calculation result, and a transaction processing unit for processing at least a part of the waiting transaction through the generated sub-block, The main block may be connected to the sub-block, including a hash value of each of the sub-blocks determined according to the calculation result and an integrated hash value for the entire sub-block.

본원의 일 실시예에 따르면, 상기 서브블록 생성부에서 생성되는 상기 서브블록의 수는, 하나의 블록이 처리 가능한 트랜잭션의 수에 대한 상기 대기 트랜잭션의 수의 비율에 기초하여 연산될 수 있다.According to an embodiment of the present disclosure, the number of sub-blocks generated by the sub-block generating unit may be calculated based on a ratio of the number of waiting transactions to the number of transactions that can be processed by one block.

본원의 일 실시예에 따르면, 상기 서브블록의 수는 상기 비율을 올림한 자연수로 결정될 수 있다.According to one embodiment of the present application, the number of sub-blocks may be determined as a natural number rounded up with the ratio.

본원의 일 실시예에 따르면, 상기 서브블록 생성부는, 블록체인 적용 환경을 고려한 식 2에 기초하여 블록 생성 주기당 생성되는 최대 서브블록 수를 결정하고, 식2를 만족하는 가장 큰 n값을 상기 최대 서브블록 수로 결정하며, 상기 서브블록 생성부에서 생성되는 서브블록의 수는 상기 최대 서브블록 수 이하로 제한될 수 있다.According to an embodiment of the present application, the sub-block generation unit determines the maximum number of sub-blocks generated per block generation cycle based on Equation 2 in consideration of the blockchain application environment, and determines the largest n value satisfying Equation 2 The maximum number of subblocks is determined, and the number of subblocks generated by the subblock generation unit may be limited to the maximum number of subblocks or less.

본원의 일 실시예에 따르면, 상기 트랜잭션 처리부는, 트랜잭션 검증 속도가 향상되도록, 복수의 쓰레드를 통해 상기 대기 트랜잭션 중 적어도 일부를 병렬적으로 검증할 수 있다.According to one embodiment of the present application, the transaction processing unit may verify at least some of the waiting transactions in parallel through a plurality of threads so that the transaction verification speed is improved.

본원의 일 실시예에 따르면, 상기 메인블록과 연결되는 서브블록은 상기 메인블록의 해시값을 포함하고, 이전 서브블록과 연결되는 서브블록은 상기 이전 서브블록의 해시값을 포함할 수 있다.According to an embodiment of the present disclosure, a sub-block connected to the main block may include a hash value of the main block, and a sub-block connected to the previous sub-block may include a hash value of the previous sub-block.

본원의 일 실시예에 따르면, 상기 메인블록, 상기 메인블록과 연결되는 서브블록, 및 상기 이전 서브블록과 연결되는 서브블록은, 상기 메인블록으로부터 순차적으로 직렬 연결될 수 있다.According to an embodiment of the present application, the main block, a sub-block connected to the main block, and a sub-block connected to the previous sub-block, may be sequentially connected in series from the main block.

본원의 일 실시예에 따르면, 상기 메인블록은 이전 블록 생성 주기에 생성된 이전 메인블록에 관한해시값을 포함할 수 있다.According to one embodiment of the present application, the main block may include a hash value for the previous main block generated in the previous block generation cycle.

본원의 일 실시예에 따르면, 상기 이전 메인블록에 관한 해시값은, 상기 이전 메인블록과 연관되어 생성된 서브블록 전체에 대한 통합 해시값으로 설정될 수 있다.According to an embodiment of the present application, a hash value for the previous main block may be set as an integrated hash value for all subblocks generated in association with the previous main block.

본원의 일 실시예에 따르면, 상기 서브블록 생성부에 의한 서브블록 생성 및 상기 트랜잭션 처리부에 의한 트랜잭션 처리는 하나의 노드를 포함하는 노드군에 의해 수행되고, 상기 하나의 노드가 블록헤더만 가지는 라이트 노드가 아닌 풀 노드인 경우, 상기 하나의 노드에는 인센티브가 부여될 수 있다.According to one embodiment of the present application, sub-block generation by the sub-block generation unit and transaction processing by the transaction processing unit are performed by a node group including one node, and the single node has only a block header. In the case of a full node rather than a node, an incentive may be given to the one node.

본원의 일 실시예에 따르면, 상기 인센티브는, 이전 블록 생성 주기와 대비한 금번 블록 생성 주기에서의 블록체인 데이터 증가율 및 상기 금번 블록 생성 주기 기준 상기 하나의 노드가 포함된 전체 네트워크의 풀 노드 비율을 고려하여 결정될 수 있다.According to an embodiment of the present application, the incentive, the block chain data growth rate in the current block generation cycle compared to the previous block generation cycle and the full node ratio of the entire network including the one node based on the current block generation cycle It can be decided in consideration.

본원의 일 실시예에 따르면, 상기 인센티브는 상기 블록체인 데이터 증가율이 커지거나 상기 풀 노드 비율이 작아질수록 증가될 수 있다.According to one embodiment of the present application, the incentive may be increased as the blockchain data growth rate increases or the full node rate decreases.

상술한 과제 해결 수단은 단지 예시적인 것으로서, 본원을 제한하려는 의도로 해석되지 않아야 한다. 상술한 예시적인 실시예 외에도, 도면 및 발명의 상세한 설명에 추가적인 실시예가 존재할 수 있다.The above-described problem solving means are merely exemplary and should not be construed as limiting the present application. In addition to the exemplary embodiments described above, additional embodiments may exist in the drawings and detailed description of the invention.

전술한 본원의 과제 해결 수단에 의하면, 블록체인의 평균 트랜잭션 대기 시간을 감소시켜 트랜잭션 처리 속도를 향상시킬 수 있는 블록체인 기반 트랜잭션 처리 장치 및 방법을 제공할 수 있다.According to the above-described problem solving means of the present application, it is possible to provide a blockchain-based transaction processing apparatus and method capable of improving the transaction processing speed by reducing the average transaction waiting time of the blockchain.

전술한 본원의 과제 해결 수단에 의하면, 블록이 생성될 때, 대기하고 있는 트랜잭션을 모두 처리할 수 있는 블록체인 기반 트랜잭션 처리 장치 및 방법을 제공할 수 있다.According to the above-described problem solving means of the present application, when a block is generated, it is possible to provide a blockchain-based transaction processing apparatus and method capable of processing all queued transactions.

도 1은 본원의 일 실시예에 따른 블록체인 기반 트랜잭션 처리 장치의 구성을 도시한 도면이다.
도 2는 본원의 일 실시예에 따른 블록체인 기반 트랜잭션 처리 장치의 멀티블록 구조의 예를 도시한 도면이다.
도 3은 본원의 일 실시예에 따른 블록체인 기반 트랜잭션 처리 장치의 서브블록 및 트랜잭션 풀을 도시한 도면이다.
도 4는 본원의 일 실시예에 따른 블록체인 기반 트랜잭션 처리 장치의 트랜잭션 병렬 검증의 예를 도시한 도면이다.
도 5는 본원의 일 실시예에 따른 블록체인 기반 트랜잭션 처리 장치의 메인블록 및 서브블록 연결의 예를 도시한 도면이다.
도 6은 본원의 일 실시예에 따른 블록체인 기반 트랜잭션 처리 방법의 흐름을 도시한 도면이다.
1 is a block diagram of a blockchain-based transaction processing apparatus according to an embodiment of the present application.
2 is a diagram showing an example of a multi-block structure of a blockchain-based transaction processing apparatus according to an embodiment of the present application.
3 is a diagram illustrating a sub-block and a transaction pool of a blockchain-based transaction processing apparatus according to an embodiment of the present application.
4 is a diagram illustrating an example of parallel transaction verification of a blockchain-based transaction processing apparatus according to an embodiment of the present application.
5 is a diagram illustrating an example of a main block and a sub-block connection of a blockchain-based transaction processing apparatus according to an embodiment of the present application.
6 is a diagram illustrating a flow of a method for processing a blockchain-based transaction according to an embodiment of the present application.

아래에서는 첨부한 도면을 참조하여 본원이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본원의 실시예를 상세히 설명한다. 그러나 본원은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본원을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present application will be described in detail with reference to the accompanying drawings so that those skilled in the art to which the present application pertains may easily practice. However, the present application may be implemented in various different forms and is not limited to the embodiments described herein. In addition, in order to clearly describe the present application in the drawings, parts irrelevant to the description are omitted, and like reference numerals are assigned to similar parts throughout the specification.

본원 명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. Throughout this specification, when a part is "connected" to another part, it includes not only "directly connected" but also "electrically connected" with another element in between. do.

본원 명세서 전체에서, 어떤 부재가 다른 부재 "상에", "상부에", "상단에", "하에", "하부에", "하단에" 위치하고 있다고 할 때, 이는 어떤 부재가 다른 부재에 접해 있는 경우뿐 아니라 두 부재 사이에 또 다른 부재가 존재하는 경우도 포함한다.Throughout the present specification, when a member is positioned on another member “on”, “on the top”, “top”, “bottom”, “bottom”, and “bottom”, it means that a member is on another member. This includes cases where there is another member between the two members as well as when in contact.

본원 명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함" 한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.Throughout the present specification, when a part “includes” a certain component, it means that the component may further include other components, not to exclude other components, unless specifically stated to the contrary.

도 1은 본원의 일 실시예에 따른 블록체인 기반 트랜잭션 처리 장치의 구성을 도시한 도면이고, 도 2는 본원의 일 실시예에 따른 블록체인 기반 트랜잭션 처리 장치의 멀티블록 구조의 예를 도시한 도면이다.1 is a view showing the configuration of a blockchain-based transaction processing apparatus according to an embodiment of the present application, and FIG. 2 is a view showing an example of a multi-block structure of a blockchain-based transaction processing apparatus according to an embodiment of the present application to be.

본원의 일 실시예에 따른 블록체인 기반 트랜잭션 처리 장치(100)는 블록체인 네트워크에 참여하는 단일한 노드일 수 있고, 또는 상기 노드를 복수개 포함하는 노드군일 수도 있다. 이하에서 설명하는 블록체인 기반 트랜잭션 처리 장치(100)는 하나의 노드에서 수행되는 것을 중심으로 설명한다.The blockchain-based transaction processing apparatus 100 according to an embodiment of the present application may be a single node participating in a blockchain network, or may be a group of nodes including a plurality of the nodes. The blockchain-based transaction processing apparatus 100 described below will be mainly described as being performed in one node.

도 1을 참조하면, 블록체인 기반 트랜잭션 처리 장치는 서브블록 생성부(110) 및 트랜잭션 처리부(120)를 포함할 수 있다.Referring to FIG. 1, a blockchain-based transaction processing device may include a sub-block generation unit 110 and a transaction processing unit 120.

블록이 생성되는 주기는 일정하게 설정될 수 있다. 예시적으로, PoW(Proof of Work)를 사용하는 블록체인의 경우, 난이도 조절 알고리즘을 통한 난이도를 설정함으로써 설정될 수 있다. 또한, 하나의 블록에 올라가는 트랜잭션의 수(블록사이즈)가 제한되어 있는 블록체인 네트워크의 경우, 블록체인 네트워크의 규모가 커질수록 블록에 탑재되지 못하고 다음 주기까지 처리를 기다리는 트랜잭션이 많아지게 된다. 이렇게 발생하는 트랜잭션 처리의 시간 지연에 의해 블록체인 네트워크의 초당 트랜잭션 처리량이 낮아지게 된다. 따라서, 본원은 트랜잭션 처리량을 보다 향상시키기 위해 블록체인에 직접 연결되는 메인블록과 각 메인블록이 관리하는 서브블록으로 이루어진 멀티블록 구조의 트랜잭션 처리 방안을 제시한다.The period at which the block is generated may be set constant. For example, in the case of a blockchain using a PoW (Proof of Work), it can be set by setting a difficulty level through a difficulty adjustment algorithm. In addition, in the case of a blockchain network in which the number of transactions (block size) that goes up to one block is limited, the larger the size of the blockchain network, the more transactions that cannot be loaded into the block and wait for processing until the next cycle. Due to the time delay of the transaction processing, the transaction throughput per second of the blockchain network is lowered. Accordingly, the present application proposes a multi-block transaction processing scheme consisting of a main block directly connected to a blockchain and sub-blocks managed by each main block to further improve transaction throughput.

도 3은 본원의 일 실시예에 따른 블록체인 기반 트랜잭션 처리 장치의 서브블록 및 트랜잭션 풀을 도시한 도면이다.3 is a diagram illustrating a sub-block and a transaction pool of a blockchain-based transaction processing apparatus according to an embodiment of the present application.

서브블록 생성부(110)는 하나의 블록 생성 주기 동안 처리해야할 트랜잭션의 수에 기초하여 서브블록(11, 12)을 생성할 수 있다. 생성되는 서브블록 수는 단수 복수에 한정하지 않으며, 이하에서는 하나의 서브블록(11)을 중심으로 설명한다. 구체적으로, 서브블록 생성부(110)는 블록 생성 주기에 따라 블록체인에 직접 연결되는 메인블록(10)이 생성되면, 트랜잭션 풀(200)에서 대기하는 대기 트랜잭션의 수에 기초하여 메인블록(10)과 연관되어 생성할 서브블록(11)의 수를 연산할 수 있다. 또한, 서브블록 생성부(110)는 연산 결과에 따라 결정된 수만큼 서브블록(11)을 생성할 수 있다. 도 3을 참조하면, 트랜잭션은 블록(서브블록(11))에 탑재되기 이전에 트랜잭션 풀(200)에서 대기할 수 있다. 또한, 도 2에 도시된 바와 같이, 메인블록(10)은 블록체인에 직접 연결되고, 서브블록(11)은 블록체인에 직접 연결되지 않고 각 메인블록(10)과 연결될 수 있다. 또한, 블록 생성 주기에 따라 생성되는 각각의 메인블록(10)에 연결되는 서브블록(11)의 수는 서로 상이할 수 있다. 예시적으로, 서브블록 생성부(110)에서 생성되는 서브블록(11)의 수는, 하나의 블록이 처리 가능한 트랜잭션의 수에 대한 대기 트랜잭션의 수의 비율에 기초하여 연산될 수 있다. 서브블록 생성부(110)는 메인블록(10)이 생성될 때 트랜잭션 풀(200)에서 대기하는 대기 트랜잭션의 수가 N이고, 한 블록에 탑재될 수 있는 트랜잭션의 수가 M일 때, N과 M의 비율(N/M=k) K를 연산하여 생성할 서브블록(11)의 개수를 산출할 수 있다. 또한, 서브블록(11)의 수는 상기 비율을 올림한 자연수로 결정될 수 있다. 예를 들면, 상기 올림은 소수점 첫째 자리에서 올림할 수 있다. 상기 K가 소수점 자리수를 포함할 경우, 상기 K를 올림한 자연수만큼 서브블록(11)을 생성해야만 트랜잭션 풀(200)에 포함된 모든 대기 트랜잭션이 서브블록(11)에 탑재될 수 있다. 도 3을 참조하면, 하나의 블록 생성 주기에 생성된 서브블록(11, 12)이더라도 N과 M의 비율의 소수점 발생 여부에 따라 서브블록(11, 12)에 탑재되는 트랜잭션의 수가 상이할 수 있다. 생성된 K개의 서브블록 각각은 기존의 블록체인 구조와 같이, 이전 서브블록의 해시값을 통해 연결될 수 있다. The sub-block generation unit 110 may generate the sub-blocks 11 and 12 based on the number of transactions to be processed during one block generation cycle. The number of generated subblocks is not limited to a plurality of singularities, and hereinafter, description will be made focusing on one subblock 11. Specifically, when the main block 10 directly connected to the blockchain is generated according to the block generation cycle, the sub-block generator 110 generates a main block 10 based on the number of waiting transactions waiting in the transaction pool 200. ) To calculate the number of subblocks 11 to be generated. Also, the sub-block generation unit 110 may generate the sub-blocks 11 as many as determined according to the calculation result. Referring to FIG. 3, a transaction may wait in the transaction pool 200 before being mounted in a block (subblock 11). In addition, as shown in FIG. 2, the main block 10 is directly connected to the blockchain, and the sub-block 11 can be connected to each main block 10 without being directly connected to the blockchain. In addition, the number of sub-blocks 11 connected to each main block 10 generated according to the block generation period may be different from each other. For example, the number of sub-blocks 11 generated by the sub-block generating unit 110 may be calculated based on a ratio of the number of waiting transactions to the number of transactions that can be processed by one block. When the main block 10 is generated, the sub-block generating unit 110 has N and the number of waiting transactions waiting in the transaction pool 200, and when the number of transactions that can be mounted in one block is M, N and M The number of sub-blocks 11 to be generated can be calculated by calculating the ratio (N / M = k) K. In addition, the number of sub-blocks 11 may be determined as a natural number raised to the above ratio. For example, the rounding may be rounded up to one decimal place. When the K includes the number of decimal places, all the waiting transactions included in the transaction pool 200 can be mounted on the subblock 11 only by generating the subblock 11 as many as the natural number rounded up by the K. Referring to FIG. 3, even in the case of sub-blocks 11 and 12 generated in one block generation cycle, the number of transactions loaded in the sub-blocks 11 and 12 may be different depending on whether a decimal point of N and M is generated. . Each of the generated K sub-blocks can be connected through the hash value of the previous sub-block, like the existing blockchain structure.

트랜잭션 처리부(120)는 생성된 서브블록(11)을 통해 대기 트랜잭션 중 적어도 일부를 처리할 수 있다. 트랜잭션 처리부(120)는 대기 트랜잭션 중 적어도 일부 뿐만 아니라 모든 대기 트랜잭션을 처리할 수도 있다. 그러나, 하나의 블록 생성 주기에 생성되는 서브블록(11)의 수가 많아질수록 트랜잭션 처리부(120)가 부담해야할 대기 트랜잭션이 증가하여 모든 대기 트랜잭션을 처리하지 못하는 경우가 발생할 수 도 있다. 이하에서는 서브블록(11)의 수가 많아짐에 따라 발생하는 세가지 문제점과 각각의 해결방안에 설명한다.The transaction processing unit 120 may process at least a part of the waiting transaction through the generated sub-block 11. The transaction processing unit 120 may process not only at least some of the waiting transactions, but also all waiting transactions. However, as the number of sub-blocks 11 generated in one block generation cycle increases, the number of wait transactions to be charged by the transaction processing unit 120 increases, which may result in failure to process all the wait transactions. Hereinafter, three problems occurring as the number of the sub-blocks 11 increases and each solution will be described.

하나의 블록 생성 주기에 생성되는 서브블록(11)의 수가 많아질수록 발생하는 문제점 중 첫번째로 동기화를 수행중인 노드들이, 한 주기에 생성되어 브로드캐스트(brodcast)되는 서브블록(11)들을 한 주기안에 네트워크를 통해 수신할 만한 네트워크 성능(bps: bit per second)을 갖지못할 수 있다. 트랜잭션을 처리하는 각 노드가 트랜잭션이 탑재된 서브블록(11)을 수신하지 못하면, 수신되지 못한 서브블록(11)은 다음 블록 생성 주기에서 생성된 서브블록(11)의 수신을 지연시키므로, 블록체인 네트워크의 효율이 저하된다. 이러한 현상을 방지하기 위해, 서브블록 생성부(110)는 한 주기에 생성되는 서브블록의 최대 개수를 제한할 수 있다. 구체적으로, 서브블록 생성부(110)는 블록체인 적용 환경을 고려한 하기의 수학식 1에 기초하여 블록 생성 주기당 생성되는 최대 서브블록 수를 결정할 수 있다.As the number of subblocks 11 generated in one block generation period increases, nodes performing synchronization in the first place among the problems that occur are one cycle of subblocks 11 generated and broadcast in one cycle. It may not have the network performance (bps: bit per second) that can be received through the network. If each node processing the transaction fails to receive the subblock 11 on which the transaction is mounted, the unreceived subblock 11 delays the reception of the subblock 11 generated in the next block generation cycle, thus blocking the blockchain The efficiency of the network is reduced. In order to prevent such a phenomenon, the sub-block generator 110 may limit the maximum number of sub-blocks generated in one cycle. Specifically, the sub-block generation unit 110 may determine the maximum number of sub-blocks generated per block generation cycle based on Equation 1 below considering the blockchain application environment.

[수학식 1][Equation 1]

Figure pat00001
Figure pat00001

상기 수학식 1은 하기의 수학식 2와 같이 변형될 수 있다.Equation 1 may be modified as shown in Equation 2 below.

[수학식 2][Equation 2]

Figure pat00002
Figure pat00002

여기서, b(bps)는 블록체인 적용 환경의 네트워크 성능 평균을 나타내고, B(bit)는 블록 사이즈를 나타내고, p(sec)은 블록 생성 주기를 나타내고, n은 최대 서브블록 수를 나타낸다. 서브블록 생성부(110)는 수학식 2를 만족하는 가장 큰 n값을 최대 서브블록 수로 결정할 수 있다. 즉, 서브블록 생성부(110)에서 생성되는 서브블록의 수는 상기 최대 서브블록 수 이하로 제한될 수 있다. 이와 같이, 블록 생성 주기당 생성되는 최대 서브블록 수를 제한함으로써, 최대 서브블록 수를 통한 트랜잭션 처리에 의해 블록 동기화의 병목현상이 제거되며, 최대 tps(transaction per second)로 트랜잭션이 처리될 수 있다.Here, b (bps) represents the network performance average of the blockchain application environment, B (bit) represents the block size, p (sec) represents the block generation cycle, and n represents the maximum number of subblocks. The sub-block generator 110 may determine the largest n value that satisfies Equation 2 as the maximum number of sub-blocks. That is, the number of sub-blocks generated by the sub-block generator 110 may be limited to the maximum number of sub-blocks or less. As such, by limiting the maximum number of subblocks generated per block generation cycle, the bottleneck of block synchronization is eliminated by transaction processing through the maximum number of subblocks, and transactions can be processed at a maximum transaction per second (tps). .

도 4는 본원의 일 실시예에 따른 블록체인 기반 트랜잭션 처리 장치의 트랜잭션 병렬 검증의 예를 도시한 도면이다.4 is a diagram illustrating an example of parallel transaction verification of a blockchain-based transaction processing apparatus according to an embodiment of the present application.

두번째 문제점은 하나의 블록 생성 주기에 노드로 수신된 서브블록(11)에 탑재된 복수의 트랜잭션을 다음 블록 생성 주기까지 검증을 마치지 못할 수 있다는 것이다. 이에 트랜잭션 처리부(120)는 트랜잭션 검증 속도가 향상되도록, 복수의 쓰레드를 통해 대기 트랜잭션 중 적어도 일부를 병렬적으로 검증할 수 있다. 대기 트랜잭션을 처리하는 각 노드들은 트랜잭션 병렬 검증을 위한 쓰레드 스케줄러를 가지며, 병렬 검증을 통해 트랜잭션 검증 속도를 향상시켜 복수의 트랜잭션을 하나의 블록 생성 주기에 검증할 수 있다. 구체적으로, 상술한 블록 동기화 과정에서 하나의 노드에 포함된 복수의 쓰레드는 복수의 서브블록에 탑재된 트랜잭션 데이터를 병렬적으로 검증할 수 있다. 서브블록의 트랜잭션 데이터는 블록체인 네트워크에 등재된 데이터(블록체인에 올라간 데이터)로서, 블록 동기화 시 노드의 복수의 쓰레드에 의해 병렬적으로 검증된 것일 수 있다. 하나의 노드는 하나의 쓰레드 풀과 복수의 쓰레드를 가질 수 있다. 블록 동기화 시 하나의 노드는 복수의 쓰레드에 의해 병렬적으로 트랜잭션 데이터를 검증하여 검증 속도를 높이고, 결과적으로 블록 동기화의 속도를 향상시킬 수 있다.The second problem is that a plurality of transactions mounted in the sub-block 11 received as a node in one block generation cycle may not be verified until the next block generation cycle. Accordingly, the transaction processing unit 120 may verify at least some of the waiting transactions in parallel through a plurality of threads so that the transaction verification speed is improved. Each node that processes waiting transactions has a thread scheduler for parallel verification of transactions, and it is possible to verify multiple transactions in one block generation cycle by improving the transaction verification speed through parallel verification. Specifically, in the above-described block synchronization process, a plurality of threads included in one node can verify transaction data mounted in a plurality of sub-blocks in parallel. The transaction data of the sub-block is data registered on the blockchain network (data uploaded on the blockchain), and may be verified in parallel by a plurality of threads of the node when the block is synchronized. One node can have one thread pool and multiple threads. During block synchronization, one node can verify transaction data in parallel by a plurality of threads to increase the verification speed, and consequently, the speed of block synchronization.

세번째 문제점은 하나의 블록 생성 주기에 생성되는 서브블록(11)의 수가 많아질수록, 블록체인 네트워크의 전체 데이터 크기가 증가하여 각 노드들이 블록데이터를 보유하는 것이 어려워질 수 있다. 이에 블록헤더만 가지는 라이트 노드도 머클루트의 해시값을 통해 트랜잭션의 유효성을 검사할 수 있으므로 하드웨어가 충분한 사용자만 풀 노드로 구동시킬 수 있다. 이 때, 하나의 노드가 블록헤더만 가지는 라이트 노드가 아닌 풀 노드인 경우, 상기 하나의 노드에는 인센티브가 부여될 수 있다. 상기 서브블록 생성부(110)에 의한 서브블록 생성 및 상기 트랜잭션 처리부(120)에 의한 트랜잭션 처리는 하나의 노드를 포함하는 노드군에 의해 수행될 수 있다. 따라서, 트랜잭션을 처리하기 위해 서브블록 생성부(110) 및 트랜잭션 처리부(120)를 제어하는 노드군이 모든 트랜잭션 정보를 가지는 풀 노드인 경우, 라이트 노드에는 제공되지 않는 인센티브를 제공함으로써, 풀 노드의 블록체인 네트워크의 참여를 유도할 수 있다. 인센티브는 토큰의 형태로 제공될 수 있다. 제공되는 인센티브(토큰)의 양에 대한 계산 방법은 다음에서 확인할 수 있다.The third problem is that as the number of sub-blocks 11 generated in one block generation cycle increases, the overall data size of the blockchain network increases, making it difficult for each node to hold the block data. Therefore, even a light node having only a block header can check the validity of a transaction through a hash value of Mercut, so that only users with sufficient hardware can run it as a full node. At this time, if one node is a full node, not a light node having only a block header, an incentive may be given to the one node. Subblock generation by the subblock generation unit 110 and transaction processing by the transaction processing unit 120 may be performed by a node group including one node. Therefore, when a group of nodes that control the sub-block generation unit 110 and the transaction processing unit 120 to process a transaction is a full node having all transaction information, by providing an incentive that is not provided to the light node, It can induce participation of blockchain networks. Incentives can be provided in the form of tokens. The calculation method for the amount of incentives (tokens) provided can be found below.

구체적으로, 인센티브는 이전 블록 생성 주기와 대비한 금번 블록 생성 주기에서의 블록체인 데이터 증가율 및 금번 블록 생성 주기 기준 하나의 노드가 포함된 전체 네트워크의 풀 노드 비율을 고려하여 결정될 수 있다. 다시 말해, 상기 인센티브는 블록체인 데이터 증가율이 커지거나 풀 노드 비율이 작아질수록 증가될 수 있다. 결과적으로, 라이트 노드로 블록체인 네트워크에 참여하되 모든 노드가 라이트 노드로 구동되는 상황을 방지하기 위하여 풀 노드에게 인센티브를 부여함으로써, 풀 노드의 블록체인 네트워크의 참여를 유도할 수 있고, 모든 노드가 블록데이터를 갖지 않더라도 인센티브를 제공받은 풀 노드가 블록체인 네트워크에 참여함으로써, '분산원장'이라는 블록체인의 근본이 흔들리지 않을 수 있다.Specifically, the incentive may be determined in consideration of the rate of increase of the blockchain data in the current block generation cycle compared to the previous block generation cycle and the full node ratio of the entire network including one node based on the current block generation cycle. In other words, the incentive may increase as the blockchain data growth rate increases or the full node rate decreases. As a result, by participating in the blockchain network as a light node, but by incentivizing the full node to prevent the situation where all nodes are driven as the light node, it is possible to induce participation of the blockchain network of the full node. Even if you do not have block data, since the full node provided with the incentive participates in the blockchain network, the fundamental of the blockchain called 'distributed ledger' may not be shaken.

도 5는 본원의 일 실시예에 따른 블록체인 기반 트랜잭션 처리 장치의 메인블록 및 서브블록 연결의 예를 도시한 도면이다.5 is a diagram illustrating an example of a main block and a sub-block connection of a blockchain-based transaction processing apparatus according to an embodiment of the present application.

도 5는 하나의 블록 생성 주기에 생성되어 트랜잭션 데이터를 포함하는 n개의 서브블록(11, 12, 13) 및 메인블록(10)간의 연결을 도시한다. 설명의 편의를 위해, 메인블록과 연결되는 첫번째 서브블록을 제1서브블록(11)이라 하고, 제1서브블록과 연결되는 두번째 서브블록을 제2서브블록(12)이라 하며, n번째 서브블록을 제n서브블록(13)이라 하겠다.FIG. 5 shows the connection between the n sub-blocks 11, 12, 13 and the main block 10, which are generated in one block generation cycle and contain transaction data. For convenience of description, the first sub-block connected to the main block is called the first sub-block 11, the second sub-block connected to the first sub-block is called the second sub-block 12, and the n-th sub-block Will be referred to as the n-th sub-block 13.

도 5를 참조하면, 메인블록(10)은 생성할 서브블록(11, 12, 13) 수에 대한 연산 결과에 따라 결정된 수의 서브블록(11, 12, 13) 각각의 해시값(102) 및 서브블록(11, 12, 13) 전체에 대한 통합 해시값(103)을 포함하여, 서브블록(11, 12, 13)과 연결될 수 있다. 또한, 도 2에 도시된 바와 같이, 메인블록(10)은 이전 블록 생성 주기에 생성된 메인블록과도 연결될 수 있다. 즉, 메인블록(10)은 이전 블록 생성 주기에 생성된 이전 메인블록에 관한 해시값(101)을 포함할 수 있다. 이 때, 이전 메인블록에 관한 해시값(101)은, 상기 이전 메인블록과 연관되어 생성된 서브블록 전체에 대한 통합 해시값으로 설정될 수 있다. 블록체인 네트워크로 체인 연결된 메인블록들은 각 블록 생성 주기마다 생성되며, 각 블록 생성 주기에 따른 트랜잭션 수에 기초하여 생성된 서브블록의 해시값을 포함한다. 따라서, 각각의 메인블록들은 실제 트랜잭션 데이터를 담고 있는 서브블록들에 대한 메타 데이터로서의 기능을 수행할 수 있다.Referring to FIG. 5, the main block 10 hash values 102 of each of the number of subblocks 11, 12, and 13 determined according to an operation result for the number of subblocks 11, 12, and 13 to be generated, and It may be connected to the sub-blocks (11, 12, 13), including the integrated hash value (103) for the entire sub-block (11, 12, 13). In addition, as shown in FIG. 2, the main block 10 may be connected to a main block generated in a previous block generation cycle. That is, the main block 10 may include a hash value 101 for the previous main block generated in the previous block generation cycle. At this time, the hash value 101 for the previous main block may be set as an integrated hash value for all subblocks generated in association with the previous main block. The main blocks chained to the blockchain network are generated for each block generation cycle, and include a hash value of the subblock generated based on the number of transactions according to each block generation cycle. Accordingly, each main block can function as meta data for sub-blocks containing actual transaction data.

또한, 메인블록(10)과 연결되는 서브블록 즉, 제1서브블록(11)은 메인블록(10)의 해시값(111)을 포함할 수 있다. 또한, 제1서브블록(11)을 제외한 나머지 서브블록 즉, 이전 서브블록과 연결되는 서브블록(제2서브블록(12) 내지 제n서브블록(13))은 이전 서브블록의 해시값을 포함할 수 있다. 구체적으로, 제2서브블록(12)은 제1서브블록의 해시값(121)을 포함하여 제1서브블록과 연결되고, 제n서브블록(13)은 제n-1서브블록의 해시값(131)을 포함하여 제n-1서브블록과 연결될 수 있다. 블록 상호간 해시값으로 연결됨에 따라 메인블록(10), 메인블록(10)과 연결되는 서브블록(11), 및 이전 서브블록과 연결되는 서브블록(12, 13)은, 상기 메인블록으로부터 순차적으로 직렬 연결될 수 있다. 메인블록과 서브블록을 포함하는 블록체인 구조가 제공됨에 따라, 트랜잭션이 다음 블록 생성 주기로 지연되는 경우를 방지할 수 있으므로, 트랜잭션의 처리량을 보다 향상시킬 수 있다. 또한 메인블록과 서브블록의 관계를 통해 블록관리, 데이터참조, 데이터 인증 측면에서 성능을 보다 향상시킬 수 있다.In addition, the sub-block connected to the main block 10, that is, the first sub-block 11 may include a hash value 111 of the main block 10. In addition, the remaining sub-blocks except the first sub-block 11, that is, a sub-block (second sub-block 12 to n-th sub-block 13) connected to the previous sub-block includes a hash value of the previous sub-block. can do. Specifically, the second sub-block 12 is connected to the first sub-block including the hash value 121 of the first sub-block, and the n-th sub-block 13 is the hash value of the n-1 sub-block ( 131) may be connected to the n-1 sub-block. The main block 10, the sub-block 11 connected to the main block 10, and the sub-blocks 12 and 13 connected to the previous sub-blocks are sequentially connected from the main block as they are connected to each other by hash values. Can be connected in series. Since a blockchain structure including a main block and a sub-block is provided, it is possible to prevent a case where a transaction is delayed to a next block generation cycle, thereby improving the throughput of the transaction. Also, through the relationship between the main block and the sub-block, performance can be further improved in terms of block management, data reference, and data authentication.

도 6은 본원의 일 실시예에 따른 블록체인 기반 트랜잭션 처리 방법의 흐름을 도시한 도면이다.6 is a diagram illustrating a flow of a method for processing a blockchain-based transaction according to an embodiment of the present application.

도 6에 도시된 블록체인 기반 트랜잭션 처리 방법은 앞선 도1 내지 도 5를 통해 설명된 블록체인 기반 트랜잭션 처리 장치(100)에 의하여 수행될 수 있다. 따라서 이하 생략된 내용이라고 하더라도 도 1 내지 도5를 통해 블록체인 기반 트랜잭션 처리 장치(100)에 대하여 설명된 내용은 도 6에도 동일하게 적용될 수 있다.The block chain based transaction processing method illustrated in FIG. 6 may be performed by the block chain based transaction processing apparatus 100 described with reference to FIGS. 1 to 5 above. Therefore, even if omitted below, the contents described with respect to the blockchain-based transaction processing apparatus 100 through FIGS. 1 to 5 may be applied to FIG. 6 as well.

도 6을 참조하면, 단계 S610에서 서브블록 생성부(110)는 블록 생성 주기에 따라 블록체인에 직접 연결되는 메인블록(10)이 생성되면, 트랜잭션 풀(200)에서 대기하는 대기 트랜잭션의 수에 기초하여 메인블록(10)과 연관되어 생성할 서브블록(11)의 수를 연산할 수 있다. 또한, 서브블록 생성부(110)는 연산 결과에 따라 결정된 수만큼 서브블록(11)을 생성할 수 있다. 트랜잭션은 블록(서브블록(11))에 탑재되기 이전에 트랜잭션 풀(200)에서 대기할 수 있다. 또한, 메인블록(10)은 블록체인에 직접 연결되고, 서브블록(11)은 블록체인에 직접 연결되지 않고 각 메인블록(10)과 연결될 수 있다. 또한, 블록 생성 주기에 따라 생성되는 각각의 메인블록(10)에 연결되는 서브블록(11)의 수는 서로 상이할 수 있다. 예시적으로 서브블록 생성부(110)에서 생성되는 서브블록(11)의 수는, 하나의 블록이 처리 가능한 트랜잭션의 수에 대한 대기 트랜잭션의 수의 비율에 기초하여 연산될 수 있다.Referring to FIG. 6, in step S610, when the main block 10 directly connected to the blockchain is generated according to the block generation cycle, the sub-block generation unit 110 determines the number of waiting transactions waiting in the transaction pool 200. Based on this, the number of subblocks 11 to be generated in association with the main block 10 may be calculated. Also, the sub-block generation unit 110 may generate the sub-blocks 11 as many as determined according to the calculation result. Transactions may be queued in the transaction pool 200 prior to being mounted in a block (subblock 11). In addition, the main block 10 is directly connected to the blockchain, and the sub-block 11 can be connected to each main block 10 without being directly connected to the blockchain. In addition, the number of sub-blocks 11 connected to each main block 10 generated according to the block generation period may be different from each other. For example, the number of sub-blocks 11 generated in the sub-block generating unit 110 may be calculated based on a ratio of the number of waiting transactions to the number of transactions that can be processed by one block.

서브블록 생성부(110)는 메인블록(10)이 생성될 때 트랜잭션 풀(200)에서 대기하는 대기 트랜잭션의 수가 N이고, 한 블록에 탑재될 수 있는 트랜잭션의 수가 M일 때, N과 M의 비율(N/M) K를 생성할 서브블록(11)의 개수로서 연산할 수 있다. 또한, 서브블록(11)의 수는 상기 비율을 올림한 자연수로 결정될 수 있다.When the main block 10 is generated, the sub-block generating unit 110 has N and the number of waiting transactions waiting in the transaction pool 200, and when the number of transactions that can be mounted in one block is M, N and M It can be calculated as the number of sub-blocks 11 to generate the ratio (N / M) K. In addition, the number of sub-blocks 11 may be determined as a natural number raised to the above ratio.

생성된 K개의 서브블록 각각은 기존의 블록체인 구조와 같이, 이전 서브블록의 해시값을 통해 연결될 수 있다. 또한, 메인블록(10)은 연산 결과에 따라 결정된 수의 서브블록(11) 각각의 해시값 및 서브블록(11) 전체에 대한 통합 해시값을 포함하여, 서브블록(11)과 연결될 수 있다.Each of the generated K sub-blocks can be connected through the hash value of the previous sub-block, like the existing blockchain structure. In addition, the main block 10 may be connected to the sub-block 11, including a hash value of each of the sub-blocks 11 determined according to the calculation result and an integrated hash value for the entire sub-block 11.

서브블록 생성부(110)는 블록체인 적용 환경을 고려한 하기의 수학식 3에 기초하여 블록 생성 주기당 생성되는 최대 서브블록 수를 결정할 수 있다.The sub-block generator 110 may determine the maximum number of sub-blocks generated per block generation cycle based on Equation 3 below considering the blockchain application environment.

[수학식 3][Equation 3]

Figure pat00003
Figure pat00003

여기서, b(bps)는 블록체인 적용 환경의 네트워크 성능 평균을 나타내고, B(bit)는 블록 사이즈를 나타내고, p(sec)은 블록 생성 주기를 나타내고, n은 최대 서브블록 수를 나타낸다. 서브블록 생성부(110)는 수학식 2를 만족하는 가장 큰 n값을 최대 서브블록 수로 결정할 수 있다. 즉, 서브블록 생성부(110)에서 생성되는 서브블록의 수는 상기 최대 서브블록 수 이하로 제한될 수 있다. 이와 같이, 블록 생성 주기당 생성되는 최대 서브블록 수를 제한함으로써, 최대 서브블록 수를 통한 트랜잭션 처리에 의해 블록 동기화의 병목현상이 제거되며, 최대 tps(transaction per second)로 트랜잭션이 처리될 수 있다.Here, b (bps) represents the network performance average of the blockchain application environment, B (bit) represents the block size, p (sec) represents the block generation cycle, and n represents the maximum number of subblocks. The sub-block generator 110 may determine the largest n value that satisfies Equation 2 as the maximum number of sub-blocks. That is, the number of sub-blocks generated by the sub-block generator 110 may be limited to the maximum number of sub-blocks or less. As such, by limiting the maximum number of subblocks generated per block generation cycle, the bottleneck of block synchronization is eliminated by transaction processing through the maximum number of subblocks, and transactions can be processed at a maximum transaction per second (tps). .

단계 S620에서 트랜잭션 처리부(120)는 생성된 서브블록(11)을 통해 대기 트랜잭션 중 적어도 일부를 처리할 수 있다. 또한, 트랜잭션 처리부(120)는 트랜잭션 검증 속도가 향상되도록, 복수의 쓰레드를 통해 대기 트랜잭션 중 적어도 일부를 병렬적으로 검증할 수 있다. 대기 트랜잭션을 처리하는 각 노드들은 트랜잭션 병렬 검증을 위한 쓰레드 스케줄러를 가지며, 병렬 검증을 통해 트랜잭션 검증 속도를 향상시켜 복수의 트랜잭션을 하나의 블록 생성 주기에 검증할 수 있다.In step S620, the transaction processing unit 120 may process at least a part of the waiting transaction through the generated sub-block 11. In addition, the transaction processing unit 120 may verify at least some of the waiting transactions in parallel through a plurality of threads so that the transaction verification speed is improved. Each node that processes waiting transactions has a thread scheduler for parallel verification of transactions, and it is possible to verify multiple transactions in one block generation cycle by improving the transaction verification speed through parallel verification.

하나의 블록 생성 주기에 생성되는 서브블록(11)의 수가 많아질수록, 블록체인 네트워크의 전체 데이터 크기가 증가하여 각 노드들이 블록데이터를 보유하는 것이 어려워질 수 있다. 이에 블록헤더만 가지는 라이트 노드도 머클루트의 해시값을 통해 트랜잭션의 유효성을 검사할 수 있으므로 하드웨어가 충분한 사용자만 풀 노드로 구동시킬 수 있다. 이 때, 하나의 노드가 블록헤더만 가지는 라이트 노드가 아닌 풀 노드인 경우, 상기 하나의 노드에는 인센티브가 부여될 수 있다. 상기 서브블록 생성부(110)에 의한 서브블록 생성 및 상기 트랜잭션 처리부(120)에 의한 트랜잭션 처리는 하나의 노드를 포함하는 노드군에 의해 수행될 수 있다. 따라서, 트랜잭션을 처리하기 위해 서브블록 생성부(110) 및 트랜잭션 처리부(120)를 제어하는 노드군이 모든 트랜잭션 정보를 가지는 풀 노드인 경우, 라이트 노드에는 제공되지 않는 인센티브를 제공함으로써, 풀 노드의 블록체인 네트워크의 참여를 유도할 수 있다. 인센티브는 토큰의 형태로 제공될 수 있다. 제공되는 인센티브(토큰)의 양에 대한 계산 방법은 다음에서 확인할 수 있다.As the number of sub-blocks 11 generated in one block generation cycle increases, the overall data size of the blockchain network increases, and it may be difficult for each node to hold the block data. Therefore, even a light node having only a block header can check the validity of a transaction through a hash value of Mercut, so that only users with sufficient hardware can run it as a full node. At this time, if one node is a full node, not a light node having only a block header, an incentive may be given to the one node. Subblock generation by the subblock generation unit 110 and transaction processing by the transaction processing unit 120 may be performed by a node group including one node. Therefore, when a group of nodes that control the sub-block generation unit 110 and the transaction processing unit 120 to process a transaction is a full node having all transaction information, by providing an incentive that is not provided to the light node, It can induce participation of blockchain networks. Incentives can be provided in the form of tokens. The calculation method for the amount of incentives (tokens) provided can be found below.

구체적으로, 인센티브는 이전 블록 생성 주기와 대비한 금번 블록 생성 주기에서의 블록체인 데이터 증가율 및 금번 블록 생성 주기 기준 하나의 노드가 포함된 전체 네트워크의 풀 노드 비율을 고려하여 결정될 수 있다. 다시 말해, 상기 인센티브는 블록체인 데이터 증가율이 커지거나 풀 노드 비율이 작아질수록 증가될 수 있다. 결과적으로, 라이트 노드로 블록체인 네트워크에 참여하되 모든 노드가 라이트 노드로 구동되는 상황을 방지하기 위하여 풀 노드에게 인센티브를 부여함으로써, 풀 노드의 블록체인 네트워크의 참여를 유도할 수 있고, 모든 노드가 블록데이터를 갖지 않더라도 인센티브를 제공받은 풀 노드가 블록체인 네트워크에 참여함으로써, '분산원장'이라는 블록체인의 근본이 흔들리지 않을 수 있다.Specifically, the incentive may be determined in consideration of the rate of increase of the blockchain data in the current block generation cycle compared to the previous block generation cycle and the full node ratio of the entire network including one node based on the current block generation cycle. In other words, the incentive may increase as the blockchain data growth rate increases or the full node rate decreases. As a result, by participating in the blockchain network as a light node, but by incentivizing the full node to prevent the situation where all nodes are driven as the light node, it is possible to induce participation of the blockchain network of the full node. Even if you do not have block data, since the full node provided with the incentive participates in the blockchain network, the fundamental of the blockchain called 'distributed ledger' may not be shaken.

메인블록(10)은 생성할 서브블록(11, 12, 13) 수에 대한 연산 결과에 따라 결정된 수의 서브블록(11, 12, 13) 각각의 해시값(102) 및 서브블록(11, 12, 13) 전체에 대한 통합 해시값(103)을 포함하여, 서브블록(11, 12, 13)과 연결될 수 있다. 또한, 메인블록(10)은 이전 블록 생성 주기에 생성된 메인블록과도 연결될 수 있다. 즉, 메인블록(10)은 이전 블록 생성 주기에 생성된 이전 메인블록에 관한 해시값(101)을 포함할 수 있다. 이 때, 이전 메인블록에 관한 해시값(101)은, 상기 이전 메인블록과 연관되어 생성된 서브블록 전체에 대한 통합 해시값으로 설정될 수 있다. 블록체인 네트워크로 체인 연결된 메인블록들은 각 블록 생성 주기마다 생성되며, 각 블록 생성 주기에 따른 트랜잭션 수에 기초하여 생성된 서브블록의 해시값을 포함한다. 따라서, 각각의 메인블록들은 실제 트랜잭션 데이터를 담고 있는 서브블록들에 대한 메타 데이터로서의 기능을 수행할 수 있다.The main block 10 has a hash value 102 and a sub-block 11, 12 of each of the sub-blocks 11, 12, 13 of the number determined according to the calculation result for the number of sub-blocks 11, 12, 13 to be generated. , 13) It may be connected to the sub-blocks (11, 12, 13), including the integrated hash value (103) for the whole. Also, the main block 10 may be connected to the main block created in the previous block generation cycle. That is, the main block 10 may include a hash value 101 for the previous main block generated in the previous block generation cycle. At this time, the hash value 101 for the previous main block may be set as an integrated hash value for all subblocks generated in association with the previous main block. The main blocks chained to the blockchain network are generated for each block generation cycle, and include a hash value of the subblock generated based on the number of transactions according to each block generation cycle. Accordingly, each main block can function as meta data for sub-blocks containing actual transaction data.

또한, 메인블록(10)과 연결되는 서브블록 즉, 제1서브블록(11)은 메인블록(10)의 해시값(111)을 포함할 수 있다. 또한, 제1서브블록(11)을 제외한 나머지 서브블록 즉, 이전 서브블록과 연결되는 서브블록(제2서브블록(12) 내지 제n서브블록(13))은 이전 서브블록의 해시값을 포함할 수 있다. 구체적으로, 제2서브블록(12)은 제1서브블록의 해시값(121)을 포함하여 제1서브블록과 연결되고, 제n서브블록(13)은 제n-1서브블록의 해시값(131)을 포함하여 제n-1서브블록과 연결될 수 있다. 블록 상호간 해시값으로 연결됨에 따라 메인블록(10), 메인블록(10)과 연결되는 서브블록(11), 및 이전 서브블록과 연결되는 서브블록(12, 13)은, 상기 메인블록으로부터 순차적으로 직렬 연결될 수 있다.In addition, the sub-block connected to the main block 10, that is, the first sub-block 11 may include a hash value 111 of the main block 10. In addition, the remaining sub-blocks except the first sub-block 11, that is, a sub-block (second sub-block 12 to n-th sub-block 13) connected to the previous sub-block includes a hash value of the previous sub-block. can do. Specifically, the second sub-block 12 is connected to the first sub-block including the hash value 121 of the first sub-block, and the n-th sub-block 13 is the hash value of the n-1 sub-block ( 131) may be connected to the n-1 sub-block. The main block 10, the sub-block 11 connected to the main block 10, and the sub-blocks 12 and 13 connected to the previous sub-block are sequentially connected from the main block as they are connected to each other by hash values. Can be connected in series.

본원의 일 실시 예에 따른 블록체인 기반 트랜잭션 처리 방법은, 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The blockchain-based transaction processing method according to an embodiment of the present application may be implemented in a form of program instructions that can be executed through various computer means and may be recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, or the like alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the present invention, or may be known and available to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs, DVDs, and magnetic media such as floptical disks. Includes hardware devices specifically configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include high-level language code that can be executed by a computer using an interpreter, etc., as well as machine language codes produced by a compiler. The hardware device described above may be configured to operate as one or more software modules to perform the operation of the present invention, and vice versa.

전술한 본원의 설명은 예시를 위한 것이며, 본원이 속하는 기술분야의 통상의 지식을 가진 자는 본원의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The above description of the present application is for illustrative purposes, and those skilled in the art to which the present application pertains will understand that it is possible to easily modify to other specific forms without changing the technical spirit or essential features of the present application. Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive. For example, each component described as a single type may be implemented in a distributed manner, and similarly, components described as distributed may be implemented in a combined form.

본원의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본원의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present application is indicated by the claims below, rather than the detailed description, and it should be interpreted that all changes or modifications derived from the meaning and scope of the claims and equivalent concepts thereof are included in the scope of the present application.

10: 메인블록
11, 12: 서브블록
100: 블록체인 기반 트랜잭션 처리 장치
110: 서브블록 생성부
120: 트랜잭션 처리부
200: 트랜잭션 풀
10: main block
11, 12: subblock
100: Blockchain based transaction processing device
110: sub-block generator
120: transaction processing unit
200: transaction pool

Claims (24)

블록체인 기반 트랜잭션 처리 방법으로서,
(a) 블록 생성 주기에 따라 블록체인에 직접 연결되는 메인블록이 생성되면 트랜잭션 풀에서 대기하는 대기 트랜잭션의 수에 기초하여 상기 메인블록과 연관되어 생성할 서브블록의 수를 연산하고, 상기 서브블록을 연산 결과에 따라 결정된 수만큼 생성하는 단계; 및
(b) 생성된 상기 서브블록을 통해 상기 대기 트랜잭션 중 적어도 일부를 처리하는 단계를 포함하되,
상기 메인블록은 상기 연산 결과에 따라 결정된 수의 상기 서브블록 각각의 해시값 및 상기 서브블록 전체에 대한 통합 해시값을 포함하여, 상기 서브블록과 연결되는 것인, 블록체인 기반 트랜잭션 처리 방법.
As a blockchain-based transaction processing method,
(a) When the main block directly connected to the blockchain is generated according to the block generation cycle, the number of sub-blocks to be generated in association with the main block is calculated based on the number of waiting transactions waiting in the transaction pool, and the sub-block is generated. Generating as many as the number determined according to the calculation result; And
(b) processing at least a portion of the waiting transaction through the generated sub-block,
The main block is connected to the sub-block, including a hash value of each of the sub-blocks determined according to the result of the operation and an integrated hash value for the entire sub-block, the blockchain-based transaction processing method.
제1항에 있어서,
상기 (a)단계에서,
생성할 상기 서브블록의 수는, 하나의 블록이 처리 가능한 트랜잭션의 수에 대한 상기 대기 트랜잭션의 수의 비율에 기초하여 연산되는 것인, 블록체인 기반 트랜잭션 처리 방법.
According to claim 1,
In step (a),
The number of sub-blocks to be generated is calculated based on a ratio of the number of waiting transactions to the number of transactions that can be processed by one block.
제2항에 있어서,
상기 서브블록의 수는 상기 비율을 올림한 자연수로 결정되는 것인, 블록체인 기반 트랜잭션 처리 방법.
According to claim 2,
The number of the sub-blocks is determined by the natural number rounded up the ratio, blockchain-based transaction processing method.
제1항에 있어서,
상기 (a) 단계는,
블록체인 적용 환경을 고려한 하기의 식 1에 기초하여 블록 생성 주기당 생성되는 최대 서브블록 수를 결정하고, 하기의 식1을 만족하는 가장 큰 n값이 상기 최대 서브블록 수로 결정되며,
[식 1]
Figure pat00004

여기서, b(bps)는 블록체인 적용 환경의 네트워크 성능 평균을 나타내고, B(bit)는 블록 사이즈를 나타내고, p(sec)은 블록 생성 주기를 나타내고, n은 최대 서브블록 수를 나타내고,
상기 (a) 단계에서 생성되는 상기 서브블록의수는 상기 최대 서브블록 수 이하로 제한되는 것인, 블록체인 기반 트랜잭션 처리 방법.
According to claim 1,
Step (a) is,
Based on the following equation 1 considering the blockchain application environment, the maximum number of subblocks generated per block generation cycle is determined, and the largest n value satisfying the following equation 1 is determined as the maximum number of subblocks.
[Equation 1]
Figure pat00004

Here, b (bps) represents the average network performance of the blockchain application environment, B (bit) represents the block size, p (sec) represents the block generation cycle, n represents the maximum number of subblocks,
The number of the sub-blocks generated in the step (a) is limited to the maximum number of sub-blocks or less, blockchain-based transaction processing method.
제1항에 있어서,
상기 (b)단계는 트랜잭션 검증 속도가 향상되도록, 복수의 쓰레드를 통해 상기 대기 트랜잭션 중 적어도 일부를 병렬적으로 검증하는 것인, 블록체인 기반 트랜잭션 처리 방법.
According to claim 1,
The step (b) is a method for processing a blockchain-based transaction, in which at least some of the waiting transactions are verified in parallel through a plurality of threads so that the transaction verification speed is improved.
제1항에 있어서,
상기 메인블록과 연결되는 서브블록은 상기 메인블록의 해시값을 포함하고,
이전 서브블록과 연결되는 서브블록은 상기 이전 서브블록의 해시값을 포함하는 것인, 블록체인 기반 트랜잭션 처리 방법.
According to claim 1,
The sub-block connected to the main block includes a hash value of the main block,
The sub-block connected with the previous sub-block includes a hash value of the previous sub-block, a method for processing a blockchain-based transaction.
제6항에 있어서,
상기 메인블록, 상기 메인블록과 연결되는 서브블록, 및 상기 이전 서브블록과 연결되는 서브블록은, 상기 메인블록으로부터 순차적으로 직렬 연결되는 것인, 블록체인 기반 트랜잭션 처리 방법.
The method of claim 6,
The main block, the sub-block connected to the main block, and the sub-block connected to the previous sub-block, is a block chain-based transaction processing method sequentially connected from the main block.
제1항에 있어서,
상기 메인블록은 이전 블록 생성 주기에 생성된 이전 메인블록에 관한 해시값을 포함하는 것인, 블록체인 기반 트랜잭션 처리 방법.
According to claim 1,
The main block includes a hash value for the previous main block generated in the previous block generation cycle, a blockchain-based transaction processing method.
제8항에 있어서,
상기 이전 메인블록에 관한 해시값은, 상기 이전 메인블록과 연관되어 생성된 서브블록 전체에 대한 통합 해시값으로 설정되는 것인, 블록체인 기반 트랜잭션 처리 방법.
The method of claim 8,
The hash value for the previous main block is set to an integrated hash value for all of the sub-blocks generated in association with the previous main block, a blockchain-based transaction processing method.
제1항에 있어서,
상기 (a) 단계 및 상기 (b) 단계는 하나의 노드를 포함하는 노드군에 의해 수행되고,
상기 하나의 노드가 블록헤더만 가지는 라이트 노드가 아닌 풀 노드인 경우, 상기 하나의 노드에는 인센티브가 부여되는 것인, 블록체인 기반 트랜잭션 처리 방법.
According to claim 1,
Steps (a) and (b) are performed by a node group including one node,
When the one node is a full node, not a light node having only a block header, an incentive is given to the one node, and the blockchain-based transaction processing method.
제10항에 있어서,
상기 인센티브는, 이전 블록 생성 주기와 대비한 금번 블록 생성 주기에서의 블록체인 데이터 증가율 및 상기 금번 블록 생성 주기 기준 상기 하나의 노드가 포함된 전체 네트워크의 풀 노드 비율을 고려하여 결정되는 것인, 블록체인 기반 트랜잭션 처리 방법.
The method of claim 10,
The incentive is determined by taking into account the rate of increase of the blockchain data in the current block generation cycle compared to the previous block generation cycle and the full node ratio of the entire network including the one node based on the current block generation cycle. Chain-based transaction processing method.
제11항에 있어서,
상기 인센티브는 상기 블록체인 데이터 증가율이 커지거나 상기 풀 노드 비율이 작아질수록 증가되는 것인, 블록체인 기반 트랜잭션 처리 방법.
The method of claim 11,
The incentive increases as the blockchain data growth rate increases or the full node rate decreases.
블록체인 기반 트랜잭션 처리 장치로서,
블록 생성 주기에 따라 블록체인에 직접 연결되는 메인블록이 생성되면, 트랜잭션 풀에서 대기하는 대기 트랜잭션의 수에 기초하여 상기 메인블록과 연관되어 생성할 서브블록의 수를 연산하고, 상기 서브블록을 연산 결과에 따라 결정된 수만큼 생성하는 서브블록 생성부; 및
생성된 상기 서브블록을 통해 상기 대기 트랜잭션 중 적어도 일부를 처리하는 트랜잭션 처리부를 포함하되,
상기 메인블록은 상기 연산 결과에 따라 결정된 수의 상기 서브블록 각각의 해시값 및 상기 서브블록 전체에 대한 통합 해시값을 포함하여, 상기 서브블록과 연결되는 것인, 멀티블록 구조를 이용한 블록체인 기반 트랜잭션 처리 장치.
As a blockchain-based transaction processing device,
When the main block directly connected to the blockchain is generated according to the block generation cycle, the number of sub-blocks to be generated in association with the main block is calculated based on the number of waiting transactions waiting in the transaction pool, and the sub-block is calculated. A sub-block generating unit generating a determined number according to the result; And
Including the transaction processing unit for processing at least a portion of the waiting transaction through the generated sub-block,
The main block includes a hash value of each of the sub-blocks determined according to the calculation result and an integrated hash value for the entire sub-block, and is connected to the sub-block, based on a blockchain using a multi-block structure Transaction processing unit.
제13항에 있어서,
상기 서브블록 생성부에서 생성되는 상기 서브블록의 수는, 하나의 블록이 처리 가능한 트랜잭션의 수에 대한 상기 대기 트랜잭션의 수의 비율에 기초하여 연산되는 것인, 블록체인 기반 트랜잭션 처리 장치.
The method of claim 13,
The number of the sub-blocks generated by the sub-block generating unit is calculated based on the ratio of the number of waiting transactions to the number of transactions that can be processed by one block.
제14항에 있어서,
상기 서브블록의 수는 상기 비율을 올림한 자연수로 결정되는 것인, 블록체인 기반 트랜잭션 처리 장치.
The method of claim 14,
The number of the sub-blocks is determined by the natural number raised by the ratio, a blockchain-based transaction processing device.
제13항에 있어서,
상기 서브블록 생성부는,
블록체인 적용 환경을 고려한 하기의 식 2에 기초하여 블록 생성 주기당 생성되는 최대 서브블록 수를 결정하고, 하기의 식2를 만족하는 가장 큰 n값을 상기 최대 서브블록 수로 결정하며,
[식 2]
Figure pat00005

여기서, b(bps)는 블록체인 적용 환경의 네트워크 성능 평균을 나타내고, B(bit)는 블록 사이즈를 나타내고, p(sec)은 블록 생성 주기를 나타내고, n은 최대 서브블록 수를 나타내고,
상기 서브블록 생성부에서 생성되는 서브블록의 수는 상기 최대 서브블록 수 이하로 제한되는 것인, 블록체인 기반 트랜잭션 처리 장치.
The method of claim 13,
The sub-block generating unit,
Based on Equation 2 below considering the blockchain application environment, the maximum number of subblocks generated per block generation cycle is determined, and the largest n value satisfying Equation 2 below is determined as the maximum number of subblocks.
[Equation 2]
Figure pat00005

Here, b (bps) represents the average network performance of the blockchain application environment, B (bit) represents the block size, p (sec) represents the block generation cycle, n represents the maximum number of subblocks,
The number of sub-blocks generated by the sub-block generating unit is limited to the maximum number of sub-blocks or less, a blockchain-based transaction processing device.
제13항에 있어서,
상기 트랜잭션 처리부는,
트랜잭션 검증 속도가 향상되도록, 복수의 쓰레드를 통해 상기 대기 트랜잭션 중 적어도 일부를 병렬적으로 검증하는 것인, 블록체인 기반 트랜잭션 처리 장치.
The method of claim 13,
The transaction processing unit,
A blockchain-based transaction processing device that verifies at least some of the waiting transactions in parallel through a plurality of threads so that the transaction verification speed is improved.
제13항에 있어서,
상기 메인블록과 연결되는 서브블록은 상기 메인블록의 해시값을 포함하고,
이전 서브블록과 연결되는 서브블록은 상기 이전 서브블록의 해시값을 포함하는 것인, 블록체인 기반 트랜잭션 처리 장치.
The method of claim 13,
The sub-block connected to the main block includes a hash value of the main block,
A sub-block connected to a previous sub-block includes a hash value of the previous sub-block, a blockchain-based transaction processing device.
제18항에 있어서,
상기 메인블록, 상기 메인블록과 연결되는 서브블록, 및 상기 이전 서브블록과 연결되는 서브블록은, 상기 메인블록으로부터 순차적으로 직렬 연결되는 것인, 블록체인 기반 트랜잭션 처리 장치.
The method of claim 18,
The main block, a sub-block connected to the main block, and a sub-block connected to the previous sub-block, is a block chain-based transaction processing apparatus sequentially connected from the main block.
제13항에 있어서,
상기 메인블록은 이전 블록 생성 주기에 생성된 이전 메인블록에 관한해시값을 포함하는 것인, 블록체인 기반 트랜잭션 처리 장치.
The method of claim 13,
The main block includes a hash value for the previous main block generated in the previous block generation cycle, a blockchain-based transaction processing device.
제20항에 있어서,
상기 이전 메인블록에 관한 해시값은, 상기 이전 메인블록과 연관되어 생성된 서브블록 전체에 대한 통합 해시값으로 설정되는 것인, 블록체인 기반 트랜잭션 처리 장치.
The method of claim 20,
The hash value for the previous main block is set to an integrated hash value for all of the sub-blocks generated in association with the previous main block, a blockchain-based transaction processing device.
제13항에 있어서,
상기 서브블록 생성부에 의한 서브블록 생성 및 상기 트랜잭션 처리부에 의한 트랜잭션 처리는 하나의 노드를 포함하는 노드군에 의해 수행되고,
상기 하나의 노드가 블록헤더만 가지는 라이트 노드가 아닌 풀 노드인 경우, 상기 하나의 노드에는 인센티브가 부여되는 것인, 블록체인 기반 트랜잭션 처리 장치.
The method of claim 13,
The subblock generation by the subblock generation unit and the transaction processing by the transaction processing unit are performed by a node group including one node,
When the one node is a full node, not a light node having only a block header, an incentive is given to the one node, a blockchain-based transaction processing device.
제22항에 있어서,
상기 인센티브는, 이전 블록 생성 주기와 대비한 금번 블록 생성 주기에서의 블록체인 데이터 증가율 및 상기 금번 블록 생성 주기 기준 상기 하나의 노드가 포함된 전체 네트워크의 풀 노드 비율을 고려하여 결정되는 것인, 블록체인 기반 트랜잭션 처리 장치.
The method of claim 22,
The incentive is determined by taking into account the rate of increase of the blockchain data in the current block generation cycle compared to the previous block generation cycle and the full node ratio of the entire network including the one node based on the current block generation cycle. Chain-based transaction processing device.
제23항에 있어서,
상기 인센티브는 상기 블록체인 데이터 증가율이 커지거나 상기 풀 노드 비율이 작아질수록 증가되는 것인, 블록체인 기반 트랜잭션 처리 장치.
The method of claim 23,
The incentive increases as the rate of increase of the blockchain data increases or the rate of the full node decreases.
KR1020180117649A 2018-10-02 2018-10-02 Device and method for transaction processing based on block chain having multi-block structure KR102110138B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180117649A KR102110138B1 (en) 2018-10-02 2018-10-02 Device and method for transaction processing based on block chain having multi-block structure

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180117649A KR102110138B1 (en) 2018-10-02 2018-10-02 Device and method for transaction processing based on block chain having multi-block structure

Publications (2)

Publication Number Publication Date
KR20200038043A true KR20200038043A (en) 2020-04-10
KR102110138B1 KR102110138B1 (en) 2020-05-13

Family

ID=70291835

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180117649A KR102110138B1 (en) 2018-10-02 2018-10-02 Device and method for transaction processing based on block chain having multi-block structure

Country Status (1)

Country Link
KR (1) KR102110138B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210132526A (en) * 2020-04-27 2021-11-04 주식회사 시큐어링크 Authentication and Policy Management Methods Using Layer Blockchain

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170040079A (en) * 2016-05-03 2017-04-12 안규태 Block chain supporting multiple one-way functions used for verification of blocks
KR101727525B1 (en) * 2016-09-05 2017-04-17 주식회사 스케일체인 Block chain based distributed storage method and device thereof
JP2018018348A (en) * 2016-07-28 2018-02-01 Kddi株式会社 System for creating block chain, and program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170040079A (en) * 2016-05-03 2017-04-12 안규태 Block chain supporting multiple one-way functions used for verification of blocks
JP2018018348A (en) * 2016-07-28 2018-02-01 Kddi株式会社 System for creating block chain, and program
KR101727525B1 (en) * 2016-09-05 2017-04-17 주식회사 스케일체인 Block chain based distributed storage method and device thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210132526A (en) * 2020-04-27 2021-11-04 주식회사 시큐어링크 Authentication and Policy Management Methods Using Layer Blockchain

Also Published As

Publication number Publication date
KR102110138B1 (en) 2020-05-13

Similar Documents

Publication Publication Date Title
TWI836988B (en) Computer-implemented method, system, and computer-readable storage medium for maintaining blocks of a blockchain in a partitioned blockchain network
KR102417067B1 (en) Method and apparatus for generating blocks in node on a block-chain network
KR102134549B1 (en) Change of primary node in distributed system
TWI721699B (en) System and method for parallel-processing blockchain transactions
US20210167966A1 (en) Method and server for providing notary service for file and verifying file recorded by notary service
Xu et al. A survey of blockchain consensus protocols
Bonneau et al. Coda: Decentralized cryptocurrency at scale
US10235538B2 (en) Method and server for providing notary service for file and verifying file recorded by notary service
Kim et al. SCC: Storage compression consensus for blockchain in lightweight IoT network
KR20200074908A (en) Achieving consensus among network nodes in a distributed system
CN110084596B (en) Method and device for processing block chain mixed consensus
Bonneau et al. Mina: Decentralized cryptocurrency at scale
KR102110138B1 (en) Device and method for transaction processing based on block chain having multi-block structure
CN111640018A (en) Block chain transaction existence verification method and device
EP3970048A1 (en) Systems and methods for non-parallelised mining on a proof-of-work blockchain network
CN113994324B (en) Block chain system with efficient world state data structure
WO2021114796A1 (en) Method and apparatus for updating trusted point in multi-layer blockchain structure
CN111159286B (en) Method and apparatus for generating multi-layer block chain structure
KR102169943B1 (en) Computing device comprising a parallel block chain structure having a plurality of chains and a method for generating a parallel block chain structure
KR102061030B1 (en) a cryptocurrency system
Ruan et al. Ursa: Robust performance for Nakamoto consensus with self-adaptive throughput
Chishti et al. Increasing TPS rate of state‐based blockchains by parallel mining
KR102582359B1 (en) Method and apparatus for generating block in blockchain system
TWI843135B (en) Method of uploading and managing single data set larger than maximum block size on blockchain
WO2022120521A1 (en) Blockchain consensus method and system, and electronic device and storage medium

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant