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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1046—Joining mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1059—Inter-group management mechanisms, e.g. splitting, merging or interconnection of groups
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
- H04L67/1082—Resource 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
Description
본원은 멀티블록 구조를 갖는 블록체인 기반 트랜잭션 처리 장치 및 방법 에 관한 것이다.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
본원의 일 실시예에 따르면, 상기 (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
본원의 일 실시예에 따르면, 상기 트랜잭션 처리부는, 트랜잭션 검증 속도가 향상되도록, 복수의 쓰레드를 통해 상기 대기 트랜잭션 중 적어도 일부를 병렬적으로 검증할 수 있다.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
도 1을 참조하면, 블록체인 기반 트랜잭션 처리 장치는 서브블록 생성부(110) 및 트랜잭션 처리부(120)를 포함할 수 있다.Referring to FIG. 1, a blockchain-based transaction processing device may include a
블록이 생성되는 주기는 일정하게 설정될 수 있다. 예시적으로, 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
트랜잭션 처리부(120)는 생성된 서브블록(11)을 통해 대기 트랜잭션 중 적어도 일부를 처리할 수 있다. 트랜잭션 처리부(120)는 대기 트랜잭션 중 적어도 일부 뿐만 아니라 모든 대기 트랜잭션을 처리할 수도 있다. 그러나, 하나의 블록 생성 주기에 생성되는 서브블록(11)의 수가 많아질수록 트랜잭션 처리부(120)가 부담해야할 대기 트랜잭션이 증가하여 모든 대기 트랜잭션을 처리하지 못하는 경우가 발생할 수 도 있다. 이하에서는 서브블록(11)의 수가 많아짐에 따라 발생하는 세가지 문제점과 각각의 해결방안에 설명한다.The
하나의 블록 생성 주기에 생성되는 서브블록(11)의 수가 많아질수록 발생하는 문제점 중 첫번째로 동기화를 수행중인 노드들이, 한 주기에 생성되어 브로드캐스트(brodcast)되는 서브블록(11)들을 한 주기안에 네트워크를 통해 수신할 만한 네트워크 성능(bps: bit per second)을 갖지못할 수 있다. 트랜잭션을 처리하는 각 노드가 트랜잭션이 탑재된 서브블록(11)을 수신하지 못하면, 수신되지 못한 서브블록(11)은 다음 블록 생성 주기에서 생성된 서브블록(11)의 수신을 지연시키므로, 블록체인 네트워크의 효율이 저하된다. 이러한 현상을 방지하기 위해, 서브블록 생성부(110)는 한 주기에 생성되는 서브블록의 최대 개수를 제한할 수 있다. 구체적으로, 서브블록 생성부(110)는 블록체인 적용 환경을 고려한 하기의 수학식 1에 기초하여 블록 생성 주기당 생성되는 최대 서브블록 수를 결정할 수 있다.As the number of
[수학식 1][Equation 1]
상기 수학식 1은 하기의 수학식 2와 같이 변형될 수 있다.
[수학식 2][Equation 2]
여기서, 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
도 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
세번째 문제점은 하나의 블록 생성 주기에 생성되는 서브블록(11)의 수가 많아질수록, 블록체인 네트워크의 전체 데이터 크기가 증가하여 각 노드들이 블록데이터를 보유하는 것이 어려워질 수 있다. 이에 블록헤더만 가지는 라이트 노드도 머클루트의 해시값을 통해 트랜잭션의 유효성을 검사할 수 있으므로 하드웨어가 충분한 사용자만 풀 노드로 구동시킬 수 있다. 이 때, 하나의 노드가 블록헤더만 가지는 라이트 노드가 아닌 풀 노드인 경우, 상기 하나의 노드에는 인센티브가 부여될 수 있다. 상기 서브블록 생성부(110)에 의한 서브블록 생성 및 상기 트랜잭션 처리부(120)에 의한 트랜잭션 처리는 하나의 노드를 포함하는 노드군에 의해 수행될 수 있다. 따라서, 트랜잭션을 처리하기 위해 서브블록 생성부(110) 및 트랜잭션 처리부(120)를 제어하는 노드군이 모든 트랜잭션 정보를 가지는 풀 노드인 경우, 라이트 노드에는 제공되지 않는 인센티브를 제공함으로써, 풀 노드의 블록체인 네트워크의 참여를 유도할 수 있다. 인센티브는 토큰의 형태로 제공될 수 있다. 제공되는 인센티브(토큰)의 양에 대한 계산 방법은 다음에서 확인할 수 있다.The third problem is that as the number of
구체적으로, 인센티브는 이전 블록 생성 주기와 대비한 금번 블록 생성 주기에서의 블록체인 데이터 증가율 및 금번 블록 생성 주기 기준 하나의 노드가 포함된 전체 네트워크의 풀 노드 비율을 고려하여 결정될 수 있다. 다시 말해, 상기 인센티브는 블록체인 데이터 증가율이 커지거나 풀 노드 비율이 작아질수록 증가될 수 있다. 결과적으로, 라이트 노드로 블록체인 네트워크에 참여하되 모든 노드가 라이트 노드로 구동되는 상황을 방지하기 위하여 풀 노드에게 인센티브를 부여함으로써, 풀 노드의 블록체인 네트워크의 참여를 유도할 수 있고, 모든 노드가 블록데이터를 갖지 않더라도 인센티브를 제공받은 풀 노드가 블록체인 네트워크에 참여함으로써, '분산원장'이라는 블록체인의 근본이 흔들리지 않을 수 있다.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
도 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
또한, 메인블록(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
도 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
도 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
서브블록 생성부(110)는 메인블록(10)이 생성될 때 트랜잭션 풀(200)에서 대기하는 대기 트랜잭션의 수가 N이고, 한 블록에 탑재될 수 있는 트랜잭션의 수가 M일 때, N과 M의 비율(N/M) K를 생성할 서브블록(11)의 개수로서 연산할 수 있다. 또한, 서브블록(11)의 수는 상기 비율을 올림한 자연수로 결정될 수 있다.When the
생성된 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
서브블록 생성부(110)는 블록체인 적용 환경을 고려한 하기의 수학식 3에 기초하여 블록 생성 주기당 생성되는 최대 서브블록 수를 결정할 수 있다.The
[수학식 3][Equation 3]
여기서, 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
단계 S620에서 트랜잭션 처리부(120)는 생성된 서브블록(11)을 통해 대기 트랜잭션 중 적어도 일부를 처리할 수 있다. 또한, 트랜잭션 처리부(120)는 트랜잭션 검증 속도가 향상되도록, 복수의 쓰레드를 통해 대기 트랜잭션 중 적어도 일부를 병렬적으로 검증할 수 있다. 대기 트랜잭션을 처리하는 각 노드들은 트랜잭션 병렬 검증을 위한 쓰레드 스케줄러를 가지며, 병렬 검증을 통해 트랜잭션 검증 속도를 향상시켜 복수의 트랜잭션을 하나의 블록 생성 주기에 검증할 수 있다.In step S620, the
하나의 블록 생성 주기에 생성되는 서브블록(11)의 수가 많아질수록, 블록체인 네트워크의 전체 데이터 크기가 증가하여 각 노드들이 블록데이터를 보유하는 것이 어려워질 수 있다. 이에 블록헤더만 가지는 라이트 노드도 머클루트의 해시값을 통해 트랜잭션의 유효성을 검사할 수 있으므로 하드웨어가 충분한 사용자만 풀 노드로 구동시킬 수 있다. 이 때, 하나의 노드가 블록헤더만 가지는 라이트 노드가 아닌 풀 노드인 경우, 상기 하나의 노드에는 인센티브가 부여될 수 있다. 상기 서브블록 생성부(110)에 의한 서브블록 생성 및 상기 트랜잭션 처리부(120)에 의한 트랜잭션 처리는 하나의 노드를 포함하는 노드군에 의해 수행될 수 있다. 따라서, 트랜잭션을 처리하기 위해 서브블록 생성부(110) 및 트랜잭션 처리부(120)를 제어하는 노드군이 모든 트랜잭션 정보를 가지는 풀 노드인 경우, 라이트 노드에는 제공되지 않는 인센티브를 제공함으로써, 풀 노드의 블록체인 네트워크의 참여를 유도할 수 있다. 인센티브는 토큰의 형태로 제공될 수 있다. 제공되는 인센티브(토큰)의 양에 대한 계산 방법은 다음에서 확인할 수 있다.As the number of
구체적으로, 인센티브는 이전 블록 생성 주기와 대비한 금번 블록 생성 주기에서의 블록체인 데이터 증가율 및 금번 블록 생성 주기 기준 하나의 노드가 포함된 전체 네트워크의 풀 노드 비율을 고려하여 결정될 수 있다. 다시 말해, 상기 인센티브는 블록체인 데이터 증가율이 커지거나 풀 노드 비율이 작아질수록 증가될 수 있다. 결과적으로, 라이트 노드로 블록체인 네트워크에 참여하되 모든 노드가 라이트 노드로 구동되는 상황을 방지하기 위하여 풀 노드에게 인센티브를 부여함으로써, 풀 노드의 블록체인 네트워크의 참여를 유도할 수 있고, 모든 노드가 블록데이터를 갖지 않더라도 인센티브를 제공받은 풀 노드가 블록체인 네트워크에 참여함으로써, '분산원장'이라는 블록체인의 근본이 흔들리지 않을 수 있다.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
또한, 메인블록(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
본원의 일 실시 예에 따른 블록체인 기반 트랜잭션 처리 방법은, 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(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.
상기 (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.
상기 서브블록의 수는 상기 비율을 올림한 자연수로 결정되는 것인, 블록체인 기반 트랜잭션 처리 방법.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.
상기 (a) 단계는,
블록체인 적용 환경을 고려한 하기의 식 1에 기초하여 블록 생성 주기당 생성되는 최대 서브블록 수를 결정하고, 하기의 식1을 만족하는 가장 큰 n값이 상기 최대 서브블록 수로 결정되며,
[식 1]
여기서, 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]
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.
상기 (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.
상기 메인블록과 연결되는 서브블록은 상기 메인블록의 해시값을 포함하고,
이전 서브블록과 연결되는 서브블록은 상기 이전 서브블록의 해시값을 포함하는 것인, 블록체인 기반 트랜잭션 처리 방법.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.
상기 메인블록, 상기 메인블록과 연결되는 서브블록, 및 상기 이전 서브블록과 연결되는 서브블록은, 상기 메인블록으로부터 순차적으로 직렬 연결되는 것인, 블록체인 기반 트랜잭션 처리 방법.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.
상기 메인블록은 이전 블록 생성 주기에 생성된 이전 메인블록에 관한 해시값을 포함하는 것인, 블록체인 기반 트랜잭션 처리 방법.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.
상기 이전 메인블록에 관한 해시값은, 상기 이전 메인블록과 연관되어 생성된 서브블록 전체에 대한 통합 해시값으로 설정되는 것인, 블록체인 기반 트랜잭션 처리 방법.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.
상기 (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.
상기 인센티브는, 이전 블록 생성 주기와 대비한 금번 블록 생성 주기에서의 블록체인 데이터 증가율 및 상기 금번 블록 생성 주기 기준 상기 하나의 노드가 포함된 전체 네트워크의 풀 노드 비율을 고려하여 결정되는 것인, 블록체인 기반 트랜잭션 처리 방법.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.
상기 인센티브는 상기 블록체인 데이터 증가율이 커지거나 상기 풀 노드 비율이 작아질수록 증가되는 것인, 블록체인 기반 트랜잭션 처리 방법.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.
상기 서브블록 생성부에서 생성되는 상기 서브블록의 수는, 하나의 블록이 처리 가능한 트랜잭션의 수에 대한 상기 대기 트랜잭션의 수의 비율에 기초하여 연산되는 것인, 블록체인 기반 트랜잭션 처리 장치.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.
상기 서브블록의 수는 상기 비율을 올림한 자연수로 결정되는 것인, 블록체인 기반 트랜잭션 처리 장치.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.
상기 서브블록 생성부는,
블록체인 적용 환경을 고려한 하기의 식 2에 기초하여 블록 생성 주기당 생성되는 최대 서브블록 수를 결정하고, 하기의 식2를 만족하는 가장 큰 n값을 상기 최대 서브블록 수로 결정하며,
[식 2]
여기서, 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]
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.
상기 트랜잭션 처리부는,
트랜잭션 검증 속도가 향상되도록, 복수의 쓰레드를 통해 상기 대기 트랜잭션 중 적어도 일부를 병렬적으로 검증하는 것인, 블록체인 기반 트랜잭션 처리 장치.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.
상기 메인블록과 연결되는 서브블록은 상기 메인블록의 해시값을 포함하고,
이전 서브블록과 연결되는 서브블록은 상기 이전 서브블록의 해시값을 포함하는 것인, 블록체인 기반 트랜잭션 처리 장치.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.
상기 메인블록, 상기 메인블록과 연결되는 서브블록, 및 상기 이전 서브블록과 연결되는 서브블록은, 상기 메인블록으로부터 순차적으로 직렬 연결되는 것인, 블록체인 기반 트랜잭션 처리 장치.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.
상기 메인블록은 이전 블록 생성 주기에 생성된 이전 메인블록에 관한해시값을 포함하는 것인, 블록체인 기반 트랜잭션 처리 장치.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.
상기 이전 메인블록에 관한 해시값은, 상기 이전 메인블록과 연관되어 생성된 서브블록 전체에 대한 통합 해시값으로 설정되는 것인, 블록체인 기반 트랜잭션 처리 장치.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.
상기 서브블록 생성부에 의한 서브블록 생성 및 상기 트랜잭션 처리부에 의한 트랜잭션 처리는 하나의 노드를 포함하는 노드군에 의해 수행되고,
상기 하나의 노드가 블록헤더만 가지는 라이트 노드가 아닌 풀 노드인 경우, 상기 하나의 노드에는 인센티브가 부여되는 것인, 블록체인 기반 트랜잭션 처리 장치.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.
상기 인센티브는, 이전 블록 생성 주기와 대비한 금번 블록 생성 주기에서의 블록체인 데이터 증가율 및 상기 금번 블록 생성 주기 기준 상기 하나의 노드가 포함된 전체 네트워크의 풀 노드 비율을 고려하여 결정되는 것인, 블록체인 기반 트랜잭션 처리 장치.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.
상기 인센티브는 상기 블록체인 데이터 증가율이 커지거나 상기 풀 노드 비율이 작아질수록 증가되는 것인, 블록체인 기반 트랜잭션 처리 장치.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.
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)
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)
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 |
-
2018
- 2018-10-02 KR KR1020180117649A patent/KR102110138B1/en active IP Right Grant
Patent Citations (3)
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)
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 |