KR102110138B1 - 멀티블록 구조를 갖는 블록체인 기반 트랜잭션 처리 장치 및 방법 - Google Patents

멀티블록 구조를 갖는 블록체인 기반 트랜잭션 처리 장치 및 방법 Download PDF

Info

Publication number
KR102110138B1
KR102110138B1 KR1020180117649A KR20180117649A KR102110138B1 KR 102110138 B1 KR102110138 B1 KR 102110138B1 KR 1020180117649 A KR1020180117649 A KR 1020180117649A KR 20180117649 A KR20180117649 A KR 20180117649A KR 102110138 B1 KR102110138 B1 KR 102110138B1
Authority
KR
South Korea
Prior art keywords
block
sub
blockchain
blocks
transaction processing
Prior art date
Application number
KR1020180117649A
Other languages
English (en)
Other versions
KR20200038043A (ko
Inventor
이재환
이청준
정상민
Original Assignee
한국항공대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국항공대학교산학협력단 filed Critical 한국항공대학교산학협력단
Priority to KR1020180117649A priority Critical patent/KR102110138B1/ko
Publication of KR20200038043A publication Critical patent/KR20200038043A/ko
Application granted granted Critical
Publication of KR102110138B1 publication Critical patent/KR102110138B1/ko

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

블록체인 기반 트랜잭션 처리 장치 및 방법에 관한 것으로, 본원의 일 실시예에 따른 블록체인 기반 트랜잭션 처리 방법은, (a) 블록 생성 주기에 따라 블록체인에 직접 연결되는 메인블록이 생성되면 트랜잭션 풀에서 대기하는 대기 트랜잭션의 수에 기초하여 상기 메인블록 과 연관되어 생성할 서브블록의 수를 연산하고, 상기 서브블록을 연산 결과에 따라 결정된 수만큼 생성하는 단계 및 (b) 생성된 상기 서브블록을 통해 상기 대기 트랜잭션 중 적어도 일부를 처리하는 단계를 포함하되,상기 메인블록은 상기 연산 결과에 따라 결정된 수의 상기 서브블록 각각의 해시값 및 상기 서브블록 전체에 대한 통합 해시값을 포함하여, 상기 서브블록과 연결될 수 있다.

Description

멀티블록 구조를 갖는 블록체인 기반 트랜잭션 처리 장치 및 방법{DEVICE AND METHOD FOR TRANSACTION PROCESSING BASED ON BLOCK CHAIN HAVING MULTI-BLOCK STRUCTURE}
본원은 멀티블록 구조를 갖는 블록체인 기반 트랜잭션 처리 장치 및 방법 에 관한 것이다.
P2P 분산 컴퓨팅을 기반으로 데이터의 보안성을 보장하고 투명한 관리를 가능하게 하며 4차 산업 시대의 핵심 기술인 블록체인은 금융, 의료 등 다양한 분야에 적용되는 추세이다. 블록체인은 비트코인, 이더리움 등과 같은 가상화폐의 주요 기술로써 블록에 데이터를 담고 블록들을 연결함으로써 블록체인을 이루어 데이터를 관리하는 기술이다.
블록체인의 블록이 생성되는 주기는 일정하게 정해져 있고 블록이 생성되는 사이에 발생하는 트랜잭션은 트랜잭션 풀에서 블록이 생성되기를 기다린다. 블록이 생성될 때 트랜잭션 풀에서 블록에 올라가기를 기다리고 있는 트랜잭션이 블록에 올라간다. 그런데 한 블록에 올라갈 수 있는 트랜잭션 수보다 트랜잭션 풀에서 대기하고 있는 트랜잭션 수가 더 많은 경우 일부 트랜잭션은 다음 블록이 생성될 때까지 또 기다려야한다. 비트코인의 경우 약 10분, 이더리움의 경우 약 15초 동안 더 기다려야하는 경우가 발생한다. 최악의 경우 블록에 올라가지 못하고 트랜잭션 풀에서 계속 대기하는 트랜잭션이 발생할 수 있다. 블록체인 기술에 대해 보안적인 측면을 장점이라고 하지만 위에서 제시한 트랜잭션 처리량은 여전히 해결해야하는 문제로 남아있다.
본원의 배경이 되는 기술은 한국등록특허공보 제10-1856038호에 개시되어 있다.
본원은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 블록체인의 평균 트랜잭션 대기 시간을 감소시켜 트랜잭션 처리 속도를 향상시킬 수 있는 블록체인 기반 트랜잭션 처리 장치 및 방법을 제공하는 것을 목적으로 한다.
본원은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 블록이 생성될 때, 대기하고 있는 트랜잭션을 모두 처리할 수 있는 블록체인 기반 트랜잭션 처리 장치 및 방법을 제공하는 것을 목적으로 한다.
다만, 본원의 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들도 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상기한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본원의 일 실시예에 따른 블록체인 기반 트랜잭션 처리 방법은 (a) 블록 생성 주기에 따라 블록체인에 직접 연결되는 메인블록이 생성되면 트랜잭션 풀에서 대기하는 대기 트랜잭션의 수에 기초하여 상기 메인블록 과 연관되어 생성할 서브블록의 수를 연산하고, 상기 서브블록을 연산 결과에 따라 결정된 수만큼 생성하는 단계; 및
(b) 생성된 상기 서브블록을 통해 상기 대기 트랜잭션 중 적어도 일부를 처리하는 단계를 포함하되,상기 메인블록은 상기 연산 결과에 따라 결정된 수의 상기 서브블록 각각의 해시값 및 상기 서브블록 전체에 대한 통합 해시값을 포함하여, 상기 서브블록과 연결될 수 있다.
본원의 일 실시예에 따르면, 상기 (a)단계에서, 생성할 상기 서브블록의 수는, 하나의 블록이 처리 가능한 트랜잭션의 수에 대한 상기 대기 트랜잭션의 수의 비율에 기초하여 연산될 수 있다.
본원의 일 실시예에 따르면, 상기 서브블록의 수는 상기 비율을 올림한 자연수로 결정될 수 있다.
본원의 일 실시예에 따르면, 상기 (a) 단계는, 블록체인 적용 환경을 고려한 식 1에 기초하여 블록 생성 주기당 생성되는 최대 서브블록 수를 결정하고, 식1을 만족하는 가장 큰 n값이 상기 최대 서브블록 수로 결정되며, 상기 (a) 단계에서 생성되는 상기 서브블록의수는 상기 최대 서브블록 수 이하로 제한될 수 있다.
본원의 일 실시예에 따르면, 상기 (b)단계는 트랜잭션 검증 속도가 향상되도록, 복수의 쓰레드를 통해 상기 대기 트랜잭션 중 적어도 일부를 병렬적으로 검증할 수 있다.
본원의 일 실시예에 따르면, 상기 메인블록과 연결되는 서브블록은 상기 메인블록의 해시값을 포함하고, 이전 서브블록과 연결되는 서브블록은 상기 이전 서브블록의 해시값을 포함할 수 있다.
본원의 일 실시예에 따르면, 상기 메인블록, 상기 메인블록과 연결되는 서브블록, 및 상기 이전 서브블록과 연결되는 서브블록은, 상기 메인블록으로부터 순차적으로 직렬 연결될 수 있다.
본원의 일 실시예에 따르면, 상기 메인블록은 이전 블록 생성 주기에 생성된 이전 메인블록에 관한 해시값을 포함할 수 있다.
본원의 일 실시예에 따르면, 상기 이전 메인블록에 관한 해시값은, 상기 이전 메인블록과 연관되어 생성된 서브블록 전체에 대한 통합 해시값으로 설정될 수 있다.
본원의 일 실시예에 따르면, 상기 (a) 단계 및 상기 (b) 단계는 하나의 노드를 포함하는 노드군에 의해 수행되고, 상기 하나의 노드가 블록헤더만 가지는 라이트 노드가 아닌 풀 노드인 경우, 상기 하나의 노드에는 인센티브가 부여될 수 있다.
본원의 일 실시예에 따르면, 상기 인센티브는, 이전 블록 생성 주기와 대비한 금번 블록 생성 주기에서의 블록체인 데이터 증가율 및 상기 금번 블록 생성 주기 기준 상기 하나의 노드가 포함된 전체 네트워크의 풀 노드 비율을 고려하여 결정될 수 있다.
본원의 일 실시예에 따르면, 상기 인센티브는 상기 블록체인 데이터 증가율이 커지거나 상기 풀 노드 비율이 작아질수록 증가될 수 있다.
본원의 일 실시예에 따르면, 블록체인 기반 트랜잭션 처리 장치는 블록 생성 주기에 따라 블록체인에 직접 연결되는 메인블록이 생성되면, 트랜잭션 풀에서 대기하는 대기 트랜잭션의 수에 기초하여 상기 메인블록과 연관되어 생성할 서브블록의 수를 연산하고, 상기 서브블록을 연산 결과에 따라 결정된 수만큼 생성하는 서브블록 생성부 및 생성된 상기 서브블록을 통해 상기 대기 트랜잭션 중 적어도 일부를 처리하는 트랜잭션 처리부를 포함하되, 상기 메인블록은 상기 연산 결과에 따라 결정된 수의 상기 서브블록 각각의 해시값 및 상기 서브블록 전체에 대한 통합 해시값을 포함하여, 상기 서브블록과 연결될 수 있다.
본원의 일 실시예에 따르면, 상기 서브블록 생성부에서 생성되는 상기 서브블록의 수는, 하나의 블록이 처리 가능한 트랜잭션의 수에 대한 상기 대기 트랜잭션의 수의 비율에 기초하여 연산될 수 있다.
본원의 일 실시예에 따르면, 상기 서브블록의 수는 상기 비율을 올림한 자연수로 결정될 수 있다.
본원의 일 실시예에 따르면, 상기 서브블록 생성부는, 블록체인 적용 환경을 고려한 식 2에 기초하여 블록 생성 주기당 생성되는 최대 서브블록 수를 결정하고, 식2를 만족하는 가장 큰 n값을 상기 최대 서브블록 수로 결정하며, 상기 서브블록 생성부에서 생성되는 서브블록의 수는 상기 최대 서브블록 수 이하로 제한될 수 있다.
본원의 일 실시예에 따르면, 상기 트랜잭션 처리부는, 트랜잭션 검증 속도가 향상되도록, 복수의 쓰레드를 통해 상기 대기 트랜잭션 중 적어도 일부를 병렬적으로 검증할 수 있다.
본원의 일 실시예에 따르면, 상기 메인블록과 연결되는 서브블록은 상기 메인블록의 해시값을 포함하고, 이전 서브블록과 연결되는 서브블록은 상기 이전 서브블록의 해시값을 포함할 수 있다.
본원의 일 실시예에 따르면, 상기 메인블록, 상기 메인블록과 연결되는 서브블록, 및 상기 이전 서브블록과 연결되는 서브블록은, 상기 메인블록으로부터 순차적으로 직렬 연결될 수 있다.
본원의 일 실시예에 따르면, 상기 메인블록은 이전 블록 생성 주기에 생성된 이전 메인블록에 관한해시값을 포함할 수 있다.
본원의 일 실시예에 따르면, 상기 이전 메인블록에 관한 해시값은, 상기 이전 메인블록과 연관되어 생성된 서브블록 전체에 대한 통합 해시값으로 설정될 수 있다.
본원의 일 실시예에 따르면, 상기 서브블록 생성부에 의한 서브블록 생성 및 상기 트랜잭션 처리부에 의한 트랜잭션 처리는 하나의 노드를 포함하는 노드군에 의해 수행되고, 상기 하나의 노드가 블록헤더만 가지는 라이트 노드가 아닌 풀 노드인 경우, 상기 하나의 노드에는 인센티브가 부여될 수 있다.
본원의 일 실시예에 따르면, 상기 인센티브는, 이전 블록 생성 주기와 대비한 금번 블록 생성 주기에서의 블록체인 데이터 증가율 및 상기 금번 블록 생성 주기 기준 상기 하나의 노드가 포함된 전체 네트워크의 풀 노드 비율을 고려하여 결정될 수 있다.
본원의 일 실시예에 따르면, 상기 인센티브는 상기 블록체인 데이터 증가율이 커지거나 상기 풀 노드 비율이 작아질수록 증가될 수 있다.
상술한 과제 해결 수단은 단지 예시적인 것으로서, 본원을 제한하려는 의도로 해석되지 않아야 한다. 상술한 예시적인 실시예 외에도, 도면 및 발명의 상세한 설명에 추가적인 실시예가 존재할 수 있다.
전술한 본원의 과제 해결 수단에 의하면, 블록체인의 평균 트랜잭션 대기 시간을 감소시켜 트랜잭션 처리 속도를 향상시킬 수 있는 블록체인 기반 트랜잭션 처리 장치 및 방법을 제공할 수 있다.
전술한 본원의 과제 해결 수단에 의하면, 블록이 생성될 때, 대기하고 있는 트랜잭션을 모두 처리할 수 있는 블록체인 기반 트랜잭션 처리 장치 및 방법을 제공할 수 있다.
도 1은 본원의 일 실시예에 따른 블록체인 기반 트랜잭션 처리 장치의 구성을 도시한 도면이다.
도 2는 본원의 일 실시예에 따른 블록체인 기반 트랜잭션 처리 장치의 멀티블록 구조의 예를 도시한 도면이다.
도 3은 본원의 일 실시예에 따른 블록체인 기반 트랜잭션 처리 장치의 서브블록 및 트랜잭션 풀을 도시한 도면이다.
도 4는 본원의 일 실시예에 따른 블록체인 기반 트랜잭션 처리 장치의 트랜잭션 병렬 검증의 예를 도시한 도면이다.
도 5는 본원의 일 실시예에 따른 블록체인 기반 트랜잭션 처리 장치의 메인블록 및 서브블록 연결의 예를 도시한 도면이다.
도 6은 본원의 일 실시예에 따른 블록체인 기반 트랜잭션 처리 방법의 흐름을 도시한 도면이다.
아래에서는 첨부한 도면을 참조하여 본원이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본원의 실시예를 상세히 설명한다. 그러나 본원은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본원을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본원 명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다.
본원 명세서 전체에서, 어떤 부재가 다른 부재 "상에", "상부에", "상단에", "하에", "하부에", "하단에" 위치하고 있다고 할 때, 이는 어떤 부재가 다른 부재에 접해 있는 경우뿐 아니라 두 부재 사이에 또 다른 부재가 존재하는 경우도 포함한다.
본원 명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함" 한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
도 1은 본원의 일 실시예에 따른 블록체인 기반 트랜잭션 처리 장치의 구성을 도시한 도면이고, 도 2는 본원의 일 실시예에 따른 블록체인 기반 트랜잭션 처리 장치의 멀티블록 구조의 예를 도시한 도면이다.
본원의 일 실시예에 따른 블록체인 기반 트랜잭션 처리 장치(100)는 블록체인 네트워크에 참여하는 단일한 노드일 수 있고, 또는 상기 노드를 복수개 포함하는 노드군일 수도 있다. 이하에서 설명하는 블록체인 기반 트랜잭션 처리 장치(100)는 하나의 노드에서 수행되는 것을 중심으로 설명한다.
도 1을 참조하면, 블록체인 기반 트랜잭션 처리 장치는 서브블록 생성부(110) 및 트랜잭션 처리부(120)를 포함할 수 있다.
블록이 생성되는 주기는 일정하게 설정될 수 있다. 예시적으로, PoW(Proof of Work)를 사용하는 블록체인의 경우, 난이도 조절 알고리즘을 통한 난이도를 설정함으로써 설정될 수 있다. 또한, 하나의 블록에 올라가는 트랜잭션의 수(블록사이즈)가 제한되어 있는 블록체인 네트워크의 경우, 블록체인 네트워크의 규모가 커질수록 블록에 탑재되지 못하고 다음 주기까지 처리를 기다리는 트랜잭션이 많아지게 된다. 이렇게 발생하는 트랜잭션 처리의 시간 지연에 의해 블록체인 네트워크의 초당 트랜잭션 처리량이 낮아지게 된다. 따라서, 본원은 트랜잭션 처리량을 보다 향상시키기 위해 블록체인에 직접 연결되는 메인블록과 각 메인블록이 관리하는 서브블록으로 이루어진 멀티블록 구조의 트랜잭션 처리 방안을 제시한다.
도 3은 본원의 일 실시예에 따른 블록체인 기반 트랜잭션 처리 장치의 서브블록 및 트랜잭션 풀을 도시한 도면이다.
서브블록 생성부(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개의 서브블록 각각은 기존의 블록체인 구조와 같이, 이전 서브블록의 해시값을 통해 연결될 수 있다.
트랜잭션 처리부(120)는 생성된 서브블록(11)을 통해 대기 트랜잭션 중 적어도 일부를 처리할 수 있다. 트랜잭션 처리부(120)는 대기 트랜잭션 중 적어도 일부 뿐만 아니라 모든 대기 트랜잭션을 처리할 수도 있다. 그러나, 하나의 블록 생성 주기에 생성되는 서브블록(11)의 수가 많아질수록 트랜잭션 처리부(120)가 부담해야할 대기 트랜잭션이 증가하여 모든 대기 트랜잭션을 처리하지 못하는 경우가 발생할 수 도 있다. 이하에서는 서브블록(11)의 수가 많아짐에 따라 발생하는 세가지 문제점과 각각의 해결방안에 설명한다.
하나의 블록 생성 주기에 생성되는 서브블록(11)의 수가 많아질수록 발생하는 문제점 중 첫번째로 동기화를 수행중인 노드들이, 한 주기에 생성되어 브로드캐스트(brodcast)되는 서브블록(11)들을 한 주기안에 네트워크를 통해 수신할 만한 네트워크 성능(bps: bit per second)을 갖지못할 수 있다. 트랜잭션을 처리하는 각 노드가 트랜잭션이 탑재된 서브블록(11)을 수신하지 못하면, 수신되지 못한 서브블록(11)은 다음 블록 생성 주기에서 생성된 서브블록(11)의 수신을 지연시키므로, 블록체인 네트워크의 효율이 저하된다. 이러한 현상을 방지하기 위해, 서브블록 생성부(110)는 한 주기에 생성되는 서브블록의 최대 개수를 제한할 수 있다. 구체적으로, 서브블록 생성부(110)는 블록체인 적용 환경을 고려한 하기의 수학식 1에 기초하여 블록 생성 주기당 생성되는 최대 서브블록 수를 결정할 수 있다.
[수학식 1]
Figure 112018097451605-pat00001
상기 수학식 1은 하기의 수학식 2와 같이 변형될 수 있다.
[수학식 2]
Figure 112018097451605-pat00002
여기서, b(bps)는 블록체인 적용 환경의 네트워크 성능 평균을 나타내고, B(bit)는 블록 사이즈를 나타내고, p(sec)은 블록 생성 주기를 나타내고, n은 최대 서브블록 수를 나타낸다. 서브블록 생성부(110)는 수학식 2를 만족하는 가장 큰 n값을 최대 서브블록 수로 결정할 수 있다. 즉, 서브블록 생성부(110)에서 생성되는 서브블록의 수는 상기 최대 서브블록 수 이하로 제한될 수 있다. 이와 같이, 블록 생성 주기당 생성되는 최대 서브블록 수를 제한함으로써, 최대 서브블록 수를 통한 트랜잭션 처리에 의해 블록 동기화의 병목현상이 제거되며, 최대 tps(transaction per second)로 트랜잭션이 처리될 수 있다.
도 4는 본원의 일 실시예에 따른 블록체인 기반 트랜잭션 처리 장치의 트랜잭션 병렬 검증의 예를 도시한 도면이다.
두번째 문제점은 하나의 블록 생성 주기에 노드로 수신된 서브블록(11)에 탑재된 복수의 트랜잭션을 다음 블록 생성 주기까지 검증을 마치지 못할 수 있다는 것이다. 이에 트랜잭션 처리부(120)는 트랜잭션 검증 속도가 향상되도록, 복수의 쓰레드를 통해 대기 트랜잭션 중 적어도 일부를 병렬적으로 검증할 수 있다. 대기 트랜잭션을 처리하는 각 노드들은 트랜잭션 병렬 검증을 위한 쓰레드 스케줄러를 가지며, 병렬 검증을 통해 트랜잭션 검증 속도를 향상시켜 복수의 트랜잭션을 하나의 블록 생성 주기에 검증할 수 있다. 구체적으로, 상술한 블록 동기화 과정에서 하나의 노드에 포함된 복수의 쓰레드는 복수의 서브블록에 탑재된 트랜잭션 데이터를 병렬적으로 검증할 수 있다. 서브블록의 트랜잭션 데이터는 블록체인 네트워크에 등재된 데이터(블록체인에 올라간 데이터)로서, 블록 동기화 시 노드의 복수의 쓰레드에 의해 병렬적으로 검증된 것일 수 있다. 하나의 노드는 하나의 쓰레드 풀과 복수의 쓰레드를 가질 수 있다. 블록 동기화 시 하나의 노드는 복수의 쓰레드에 의해 병렬적으로 트랜잭션 데이터를 검증하여 검증 속도를 높이고, 결과적으로 블록 동기화의 속도를 향상시킬 수 있다.
세번째 문제점은 하나의 블록 생성 주기에 생성되는 서브블록(11)의 수가 많아질수록, 블록체인 네트워크의 전체 데이터 크기가 증가하여 각 노드들이 블록데이터를 보유하는 것이 어려워질 수 있다. 이에 블록헤더만 가지는 라이트 노드도 머클루트의 해시값을 통해 트랜잭션의 유효성을 검사할 수 있으므로 하드웨어가 충분한 사용자만 풀 노드로 구동시킬 수 있다. 이 때, 하나의 노드가 블록헤더만 가지는 라이트 노드가 아닌 풀 노드인 경우, 상기 하나의 노드에는 인센티브가 부여될 수 있다. 상기 서브블록 생성부(110)에 의한 서브블록 생성 및 상기 트랜잭션 처리부(120)에 의한 트랜잭션 처리는 하나의 노드를 포함하는 노드군에 의해 수행될 수 있다. 따라서, 트랜잭션을 처리하기 위해 서브블록 생성부(110) 및 트랜잭션 처리부(120)를 제어하는 노드군이 모든 트랜잭션 정보를 가지는 풀 노드인 경우, 라이트 노드에는 제공되지 않는 인센티브를 제공함으로써, 풀 노드의 블록체인 네트워크의 참여를 유도할 수 있다. 인센티브는 토큰의 형태로 제공될 수 있다. 제공되는 인센티브(토큰)의 양에 대한 계산 방법은 다음에서 확인할 수 있다.
구체적으로, 인센티브는 이전 블록 생성 주기와 대비한 금번 블록 생성 주기에서의 블록체인 데이터 증가율 및 금번 블록 생성 주기 기준 하나의 노드가 포함된 전체 네트워크의 풀 노드 비율을 고려하여 결정될 수 있다. 다시 말해, 상기 인센티브는 블록체인 데이터 증가율이 커지거나 풀 노드 비율이 작아질수록 증가될 수 있다. 결과적으로, 라이트 노드로 블록체인 네트워크에 참여하되 모든 노드가 라이트 노드로 구동되는 상황을 방지하기 위하여 풀 노드에게 인센티브를 부여함으로써, 풀 노드의 블록체인 네트워크의 참여를 유도할 수 있고, 모든 노드가 블록데이터를 갖지 않더라도 인센티브를 제공받은 풀 노드가 블록체인 네트워크에 참여함으로써, '분산원장'이라는 블록체인의 근본이 흔들리지 않을 수 있다.
도 5는 본원의 일 실시예에 따른 블록체인 기반 트랜잭션 처리 장치의 메인블록 및 서브블록 연결의 예를 도시한 도면이다.
도 5는 하나의 블록 생성 주기에 생성되어 트랜잭션 데이터를 포함하는 n개의 서브블록(11, 12, 13) 및 메인블록(10)간의 연결을 도시한다. 설명의 편의를 위해, 메인블록과 연결되는 첫번째 서브블록을 제1서브블록(11)이라 하고, 제1서브블록과 연결되는 두번째 서브블록을 제2서브블록(12)이라 하며, n번째 서브블록을 제n서브블록(13)이라 하겠다.
도 5를 참조하면, 메인블록(10)은 생성할 서브블록(11, 12, 13) 수에 대한 연산 결과에 따라 결정된 수의 서브블록(11, 12, 13) 각각의 해시값(102) 및 서브블록(11, 12, 13) 전체에 대한 통합 해시값(103)을 포함하여, 서브블록(11, 12, 13)과 연결될 수 있다. 또한, 도 2에 도시된 바와 같이, 메인블록(10)은 이전 블록 생성 주기에 생성된 메인블록과도 연결될 수 있다. 즉, 메인블록(10)은 이전 블록 생성 주기에 생성된 이전 메인블록에 관한 해시값(101)을 포함할 수 있다. 이 때, 이전 메인블록에 관한 해시값(101)은, 상기 이전 메인블록과 연관되어 생성된 서브블록 전체에 대한 통합 해시값으로 설정될 수 있다. 블록체인 네트워크로 체인 연결된 메인블록들은 각 블록 생성 주기마다 생성되며, 각 블록 생성 주기에 따른 트랜잭션 수에 기초하여 생성된 서브블록의 해시값을 포함한다. 따라서, 각각의 메인블록들은 실제 트랜잭션 데이터를 담고 있는 서브블록들에 대한 메타 데이터로서의 기능을 수행할 수 있다.
또한, 메인블록(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)은, 상기 메인블록으로부터 순차적으로 직렬 연결될 수 있다. 메인블록과 서브블록을 포함하는 블록체인 구조가 제공됨에 따라, 트랜잭션이 다음 블록 생성 주기로 지연되는 경우를 방지할 수 있으므로, 트랜잭션의 처리량을 보다 향상시킬 수 있다. 또한 메인블록과 서브블록의 관계를 통해 블록관리, 데이터참조, 데이터 인증 측면에서 성능을 보다 향상시킬 수 있다.
도 6은 본원의 일 실시예에 따른 블록체인 기반 트랜잭션 처리 방법의 흐름을 도시한 도면이다.
도 6에 도시된 블록체인 기반 트랜잭션 처리 방법은 앞선 도1 내지 도 5를 통해 설명된 블록체인 기반 트랜잭션 처리 장치(100)에 의하여 수행될 수 있다. 따라서 이하 생략된 내용이라고 하더라도 도 1 내지 도5를 통해 블록체인 기반 트랜잭션 처리 장치(100)에 대하여 설명된 내용은 도 6에도 동일하게 적용될 수 있다.
도 6을 참조하면, 단계 S610에서 서브블록 생성부(110)는 블록 생성 주기에 따라 블록체인에 직접 연결되는 메인블록(10)이 생성되면, 트랜잭션 풀(200)에서 대기하는 대기 트랜잭션의 수에 기초하여 메인블록(10)과 연관되어 생성할 서브블록(11)의 수를 연산할 수 있다. 또한, 서브블록 생성부(110)는 연산 결과에 따라 결정된 수만큼 서브블록(11)을 생성할 수 있다. 트랜잭션은 블록(서브블록(11))에 탑재되기 이전에 트랜잭션 풀(200)에서 대기할 수 있다. 또한, 메인블록(10)은 블록체인에 직접 연결되고, 서브블록(11)은 블록체인에 직접 연결되지 않고 각 메인블록(10)과 연결될 수 있다. 또한, 블록 생성 주기에 따라 생성되는 각각의 메인블록(10)에 연결되는 서브블록(11)의 수는 서로 상이할 수 있다. 예시적으로 서브블록 생성부(110)에서 생성되는 서브블록(11)의 수는, 하나의 블록이 처리 가능한 트랜잭션의 수에 대한 대기 트랜잭션의 수의 비율에 기초하여 연산될 수 있다.
서브블록 생성부(110)는 메인블록(10)이 생성될 때 트랜잭션 풀(200)에서 대기하는 대기 트랜잭션의 수가 N이고, 한 블록에 탑재될 수 있는 트랜잭션의 수가 M일 때, N과 M의 비율(N/M) K를 생성할 서브블록(11)의 개수로서 연산할 수 있다. 또한, 서브블록(11)의 수는 상기 비율을 올림한 자연수로 결정될 수 있다.
생성된 K개의 서브블록 각각은 기존의 블록체인 구조와 같이, 이전 서브블록의 해시값을 통해 연결될 수 있다. 또한, 메인블록(10)은 연산 결과에 따라 결정된 수의 서브블록(11) 각각의 해시값 및 서브블록(11) 전체에 대한 통합 해시값을 포함하여, 서브블록(11)과 연결될 수 있다.
서브블록 생성부(110)는 블록체인 적용 환경을 고려한 하기의 수학식 3에 기초하여 블록 생성 주기당 생성되는 최대 서브블록 수를 결정할 수 있다.
[수학식 3]
Figure 112018097451605-pat00003
여기서, b(bps)는 블록체인 적용 환경의 네트워크 성능 평균을 나타내고, B(bit)는 블록 사이즈를 나타내고, p(sec)은 블록 생성 주기를 나타내고, n은 최대 서브블록 수를 나타낸다. 서브블록 생성부(110)는 수학식 2를 만족하는 가장 큰 n값을 최대 서브블록 수로 결정할 수 있다. 즉, 서브블록 생성부(110)에서 생성되는 서브블록의 수는 상기 최대 서브블록 수 이하로 제한될 수 있다. 이와 같이, 블록 생성 주기당 생성되는 최대 서브블록 수를 제한함으로써, 최대 서브블록 수를 통한 트랜잭션 처리에 의해 블록 동기화의 병목현상이 제거되며, 최대 tps(transaction per second)로 트랜잭션이 처리될 수 있다.
단계 S620에서 트랜잭션 처리부(120)는 생성된 서브블록(11)을 통해 대기 트랜잭션 중 적어도 일부를 처리할 수 있다. 또한, 트랜잭션 처리부(120)는 트랜잭션 검증 속도가 향상되도록, 복수의 쓰레드를 통해 대기 트랜잭션 중 적어도 일부를 병렬적으로 검증할 수 있다. 대기 트랜잭션을 처리하는 각 노드들은 트랜잭션 병렬 검증을 위한 쓰레드 스케줄러를 가지며, 병렬 검증을 통해 트랜잭션 검증 속도를 향상시켜 복수의 트랜잭션을 하나의 블록 생성 주기에 검증할 수 있다.
하나의 블록 생성 주기에 생성되는 서브블록(11)의 수가 많아질수록, 블록체인 네트워크의 전체 데이터 크기가 증가하여 각 노드들이 블록데이터를 보유하는 것이 어려워질 수 있다. 이에 블록헤더만 가지는 라이트 노드도 머클루트의 해시값을 통해 트랜잭션의 유효성을 검사할 수 있으므로 하드웨어가 충분한 사용자만 풀 노드로 구동시킬 수 있다. 이 때, 하나의 노드가 블록헤더만 가지는 라이트 노드가 아닌 풀 노드인 경우, 상기 하나의 노드에는 인센티브가 부여될 수 있다. 상기 서브블록 생성부(110)에 의한 서브블록 생성 및 상기 트랜잭션 처리부(120)에 의한 트랜잭션 처리는 하나의 노드를 포함하는 노드군에 의해 수행될 수 있다. 따라서, 트랜잭션을 처리하기 위해 서브블록 생성부(110) 및 트랜잭션 처리부(120)를 제어하는 노드군이 모든 트랜잭션 정보를 가지는 풀 노드인 경우, 라이트 노드에는 제공되지 않는 인센티브를 제공함으로써, 풀 노드의 블록체인 네트워크의 참여를 유도할 수 있다. 인센티브는 토큰의 형태로 제공될 수 있다. 제공되는 인센티브(토큰)의 양에 대한 계산 방법은 다음에서 확인할 수 있다.
구체적으로, 인센티브는 이전 블록 생성 주기와 대비한 금번 블록 생성 주기에서의 블록체인 데이터 증가율 및 금번 블록 생성 주기 기준 하나의 노드가 포함된 전체 네트워크의 풀 노드 비율을 고려하여 결정될 수 있다. 다시 말해, 상기 인센티브는 블록체인 데이터 증가율이 커지거나 풀 노드 비율이 작아질수록 증가될 수 있다. 결과적으로, 라이트 노드로 블록체인 네트워크에 참여하되 모든 노드가 라이트 노드로 구동되는 상황을 방지하기 위하여 풀 노드에게 인센티브를 부여함으로써, 풀 노드의 블록체인 네트워크의 참여를 유도할 수 있고, 모든 노드가 블록데이터를 갖지 않더라도 인센티브를 제공받은 풀 노드가 블록체인 네트워크에 참여함으로써, '분산원장'이라는 블록체인의 근본이 흔들리지 않을 수 있다.
메인블록(10)은 생성할 서브블록(11, 12, 13) 수에 대한 연산 결과에 따라 결정된 수의 서브블록(11, 12, 13) 각각의 해시값(102) 및 서브블록(11, 12, 13) 전체에 대한 통합 해시값(103)을 포함하여, 서브블록(11, 12, 13)과 연결될 수 있다. 또한, 메인블록(10)은 이전 블록 생성 주기에 생성된 메인블록과도 연결될 수 있다. 즉, 메인블록(10)은 이전 블록 생성 주기에 생성된 이전 메인블록에 관한 해시값(101)을 포함할 수 있다. 이 때, 이전 메인블록에 관한 해시값(101)은, 상기 이전 메인블록과 연관되어 생성된 서브블록 전체에 대한 통합 해시값으로 설정될 수 있다. 블록체인 네트워크로 체인 연결된 메인블록들은 각 블록 생성 주기마다 생성되며, 각 블록 생성 주기에 따른 트랜잭션 수에 기초하여 생성된 서브블록의 해시값을 포함한다. 따라서, 각각의 메인블록들은 실제 트랜잭션 데이터를 담고 있는 서브블록들에 대한 메타 데이터로서의 기능을 수행할 수 있다.
또한, 메인블록(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)은, 상기 메인블록으로부터 순차적으로 직렬 연결될 수 있다.
본원의 일 실시 예에 따른 블록체인 기반 트랜잭션 처리 방법은, 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
전술한 본원의 설명은 예시를 위한 것이며, 본원이 속하는 기술분야의 통상의 지식을 가진 자는 본원의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본원의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본원의 범위에 포함되는 것으로 해석되어야 한다.
10: 메인블록
11, 12: 서브블록
100: 블록체인 기반 트랜잭션 처리 장치
110: 서브블록 생성부
120: 트랜잭션 처리부
200: 트랜잭션 풀

Claims (24)

  1. 블록체인 기반 트랜잭션 처리 방법으로서,
    (a) 블록 생성 주기에 따라 블록체인에 직접 연결되는 메인블록이 생성되면 트랜잭션 풀에서 대기하는 대기 트랜잭션의 수에 기초하여 상기 메인블록과 연관되어 생성할 서브블록의 수를 연산하고, 상기 서브블록을 연산 결과에 따라 결정된 수만큼 생성하는 단계; 및
    (b) 생성된 상기 서브블록을 통해 상기 대기 트랜잭션 중 적어도 일부를 처리하는 단계를 포함하되,
    상기 메인블록은 상기 연산 결과에 따라 결정된 수의 상기 서브블록 각각의 해시값 및 상기 서브블록 전체에 대한 통합 해시값을 포함하여, 상기 서브블록과 연결되고,
    상기 메인블록과 연결되는 서브블록은 상기 메인블록의 해시값을 포함하고,
    이전 서브블록과 연결되는 서브블록은 상기 이전 서브블록의 해시값을 포함하는 것인, 블록체인 기반 트랜잭션 처리 방법.
  2. 제1항에 있어서,
    상기 (a)단계에서,
    생성할 상기 서브블록의 수는, 하나의 블록이 처리 가능한 트랜잭션의 수에 대한 상기 대기 트랜잭션의 수의 비율에 기초하여 연산되는 것인, 블록체인 기반 트랜잭션 처리 방법.
  3. 제2항에 있어서,
    상기 서브블록의 수는 상기 비율을 올림한 자연수로 결정되는 것인, 블록체인 기반 트랜잭션 처리 방법.
  4. 제1항에 있어서,
    상기 (a) 단계는,
    블록체인 적용 환경을 고려한 하기의 식 1에 기초하여 블록 생성 주기당 생성되는 최대 서브블록 수를 결정하고, 하기의 식1을 만족하는 가장 큰 n값이 상기 최대 서브블록 수로 결정되며,
    [식 1]
    Figure 112018097451605-pat00004

    여기서, b(bps)는 블록체인 적용 환경의 네트워크 성능 평균을 나타내고, B(bit)는 블록 사이즈를 나타내고, p(sec)은 블록 생성 주기를 나타내고, n은 최대 서브블록 수를 나타내고,
    상기 (a) 단계에서 생성되는 상기 서브블록의수는 상기 최대 서브블록 수 이하로 제한되는 것인, 블록체인 기반 트랜잭션 처리 방법.
  5. 제1항에 있어서,
    상기 (b)단계는 트랜잭션 검증 속도가 향상되도록, 복수의 쓰레드를 통해 상기 대기 트랜잭션 중 적어도 일부를 병렬적으로 검증하는 것인, 블록체인 기반 트랜잭션 처리 방법.
  6. 삭제
  7. 제1항에 있어서,
    상기 메인블록, 상기 메인블록과 연결되는 서브블록, 및 상기 이전 서브블록과 연결되는 서브블록은, 상기 메인블록으로부터 순차적으로 직렬 연결되는 것인, 블록체인 기반 트랜잭션 처리 방법.
  8. 제1항에 있어서,
    상기 메인블록은 이전 블록 생성 주기에 생성된 이전 메인블록에 관한 해시값을 포함하는 것인, 블록체인 기반 트랜잭션 처리 방법.
  9. 제8항에 있어서,
    상기 이전 메인블록에 관한 해시값은, 상기 이전 메인블록과 연관되어 생성된 서브블록 전체에 대한 통합 해시값으로 설정되는 것인, 블록체인 기반 트랜잭션 처리 방법.
  10. 제1항에 있어서,
    상기 (a) 단계 및 상기 (b) 단계는 하나의 노드를 포함하는 노드군에 의해 수행되고,
    상기 하나의 노드가 블록헤더만 가지는 라이트 노드가 아닌 풀 노드인 경우, 상기 하나의 노드에는 인센티브가 부여되는 것인, 블록체인 기반 트랜잭션 처리 방법.
  11. 제10항에 있어서,
    상기 인센티브는, 이전 블록 생성 주기와 대비한 금번 블록 생성 주기에서의 블록체인 데이터 증가율 및 상기 금번 블록 생성 주기 기준 상기 하나의 노드가 포함된 전체 네트워크의 풀 노드 비율을 고려하여 결정되는 것인, 블록체인 기반 트랜잭션 처리 방법.
  12. 제11항에 있어서,
    상기 인센티브는 상기 블록체인 데이터 증가율이 커지거나 상기 풀 노드 비율이 작아질수록 증가되는 것인, 블록체인 기반 트랜잭션 처리 방법.
  13. 블록체인 기반 트랜잭션 처리 장치로서,
    블록 생성 주기에 따라 블록체인에 직접 연결되는 메인블록이 생성되면, 트랜잭션 풀에서 대기하는 대기 트랜잭션의 수에 기초하여 상기 메인블록과 연관되어 생성할 서브블록의 수를 연산하고, 상기 서브블록을 연산 결과에 따라 결정된 수만큼 생성하는 서브블록 생성부; 및
    생성된 상기 서브블록을 통해 상기 대기 트랜잭션 중 적어도 일부를 처리하는 트랜잭션 처리부를 포함하되,
    상기 메인블록은 상기 연산 결과에 따라 결정된 수의 상기 서브블록 각각의 해시값 및 상기 서브블록 전체에 대한 통합 해시값을 포함하여, 상기 서브블록과 연결되고,
    상기 메인블록과 연결되는 서브블록은 상기 메인블록의 해시값을 포함하고,
    이전 서브블록과 연결되는 서브블록은 상기 이전 서브블록의 해시값을 포함하는 것인, 블록체인 기반 트랜잭션 처리 장치.
  14. 제13항에 있어서,
    상기 서브블록 생성부에서 생성되는 상기 서브블록의 수는, 하나의 블록이 처리 가능한 트랜잭션의 수에 대한 상기 대기 트랜잭션의 수의 비율에 기초하여 연산되는 것인, 블록체인 기반 트랜잭션 처리 장치.
  15. 제14항에 있어서,
    상기 서브블록의 수는 상기 비율을 올림한 자연수로 결정되는 것인, 블록체인 기반 트랜잭션 처리 장치.
  16. 제13항에 있어서,
    상기 서브블록 생성부는,
    블록체인 적용 환경을 고려한 하기의 식 2에 기초하여 블록 생성 주기당 생성되는 최대 서브블록 수를 결정하고, 하기의 식2를 만족하는 가장 큰 n값을 상기 최대 서브블록 수로 결정하며,
    [식 2]
    Figure 112018097451605-pat00005

    여기서, b(bps)는 블록체인 적용 환경의 네트워크 성능 평균을 나타내고, B(bit)는 블록 사이즈를 나타내고, p(sec)은 블록 생성 주기를 나타내고, n은 최대 서브블록 수를 나타내고,
    상기 서브블록 생성부에서 생성되는 서브블록의 수는 상기 최대 서브블록 수 이하로 제한되는 것인, 블록체인 기반 트랜잭션 처리 장치.
  17. 제13항에 있어서,
    상기 트랜잭션 처리부는,
    트랜잭션 검증 속도가 향상되도록, 복수의 쓰레드를 통해 상기 대기 트랜잭션 중 적어도 일부를 병렬적으로 검증하는 것인, 블록체인 기반 트랜잭션 처리 장치.
  18. 삭제
  19. 제13항에 있어서,
    상기 메인블록, 상기 메인블록과 연결되는 서브블록, 및 상기 이전 서브블록과 연결되는 서브블록은, 상기 메인블록으로부터 순차적으로 직렬 연결되는 것인, 블록체인 기반 트랜잭션 처리 장치.
  20. 제13항에 있어서,
    상기 메인블록은 이전 블록 생성 주기에 생성된 이전 메인블록에 관한해시값을 포함하는 것인, 블록체인 기반 트랜잭션 처리 장치.
  21. 제20항에 있어서,
    상기 이전 메인블록에 관한 해시값은, 상기 이전 메인블록과 연관되어 생성된 서브블록 전체에 대한 통합 해시값으로 설정되는 것인, 블록체인 기반 트랜잭션 처리 장치.
  22. 제13항에 있어서,
    상기 서브블록 생성부에 의한 서브블록 생성 및 상기 트랜잭션 처리부에 의한 트랜잭션 처리는 하나의 노드를 포함하는 노드군에 의해 수행되고,
    상기 하나의 노드가 블록헤더만 가지는 라이트 노드가 아닌 풀 노드인 경우, 상기 하나의 노드에는 인센티브가 부여되는 것인, 블록체인 기반 트랜잭션 처리 장치.
  23. 제22항에 있어서,
    상기 인센티브는, 이전 블록 생성 주기와 대비한 금번 블록 생성 주기에서의 블록체인 데이터 증가율 및 상기 금번 블록 생성 주기 기준 상기 하나의 노드가 포함된 전체 네트워크의 풀 노드 비율을 고려하여 결정되는 것인, 블록체인 기반 트랜잭션 처리 장치.
  24. 제23항에 있어서,
    상기 인센티브는 상기 블록체인 데이터 증가율이 커지거나 상기 풀 노드 비율이 작아질수록 증가되는 것인, 블록체인 기반 트랜잭션 처리 장치.
KR1020180117649A 2018-10-02 2018-10-02 멀티블록 구조를 갖는 블록체인 기반 트랜잭션 처리 장치 및 방법 KR102110138B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180117649A KR102110138B1 (ko) 2018-10-02 2018-10-02 멀티블록 구조를 갖는 블록체인 기반 트랜잭션 처리 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180117649A KR102110138B1 (ko) 2018-10-02 2018-10-02 멀티블록 구조를 갖는 블록체인 기반 트랜잭션 처리 장치 및 방법

Publications (2)

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

Family

ID=70291835

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180117649A KR102110138B1 (ko) 2018-10-02 2018-10-02 멀티블록 구조를 갖는 블록체인 기반 트랜잭션 처리 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102110138B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102356725B1 (ko) * 2020-04-27 2022-01-27 주식회사 시큐어링크 계층 블록체인을 이용한 인증 및 정책 관리 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101727525B1 (ko) * 2016-09-05 2017-04-17 주식회사 스케일체인 블록체인 기반 분산 저장 방법 및 이를 이용한 장치
JP2018018348A (ja) * 2016-07-28 2018-02-01 Kddi株式会社 ブロックチェーンを作成するシステム及びプログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102050129B1 (ko) * 2016-05-03 2019-11-28 안규태 블록 검증을 위한 복수의 일방향 함수를 지원하는 블록 체인

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018018348A (ja) * 2016-07-28 2018-02-01 Kddi株式会社 ブロックチェーンを作成するシステム及びプログラム
KR101727525B1 (ko) * 2016-09-05 2017-04-17 주식회사 스케일체인 블록체인 기반 분산 저장 방법 및 이를 이용한 장치

Also Published As

Publication number Publication date
KR20200038043A (ko) 2020-04-10

Similar Documents

Publication Publication Date Title
KR102417067B1 (ko) 블록 체인 네트워크의 노드에서 수행되는 블록 생성 방법 및 장치
JP7362654B2 (ja) 分割されたブロックチェーンネットワークにおけるブロックチェーンのブロックの維持管理
US10938567B2 (en) Parallel-chain architecture for blockchain systems
JP7472333B2 (ja) バリデータノードにより提供されるブロックチェーントランザクションをマイニングする方法及びシステム
US20210167966A1 (en) Method and server for providing notary service for file and verifying file recorded by notary service
KR102315473B1 (ko) 병렬-처리 블록체인 트랜잭션을 위한 시스템 및 방법
Bonneau et al. Coda: Decentralized cryptocurrency at scale
CN108846659B (zh) 基于区块链的转账方法、装置及存储介质
US10235538B2 (en) Method and server for providing notary service for file and verifying file recorded by notary service
KR20200074912A (ko) 분산 시스템에서 프라이머리 노드의 체인지 수행
TW201901482A (zh) 區塊鏈系統及區塊鏈生成方法
CN110084596B (zh) 一种处理区块链混合共识的方法和装置
JPWO2019038839A1 (ja) ブロックチェーン管理装置、ブロックチェーン管理方法及びプログラム
Bonneau et al. Mina: Decentralized cryptocurrency at scale
US20200409941A1 (en) Method for scaling computation in blockchain by delaying transaction execution
KR102110138B1 (ko) 멀티블록 구조를 갖는 블록체인 기반 트랜잭션 처리 장치 및 방법
US20220036346A1 (en) Systems and methods for re-organizing blockchains for efficient operations
KR20210072265A (ko) 블록체인을 이용한 서비스 분산 처리 방법 및 이를 구현하는 장치
KR20220010534A (ko) 작업 증명 블록체인 네트워크 상의 비병렬식 채굴용 시스템 및 방법
CN111640018A (zh) 一种区块链交易存在性验证方法及装置
CN113923217A (zh) 一种基于dag的异步拜占庭共识方法及系统
CN112636904B (zh) 随机数生成与验证方法、装置、电子设备及可读存储介质
CN111970282B (zh) 系统中异构模块的认证方法及装置
CN108933681A (zh) 一种云计算系统配置更新方法、控制中心及云计算节点
KR20200037694A (ko) 복수의 체인을 갖는 병렬 블록체인 구조를 포함하는 컴퓨팅 장치 및 병렬 블록체인 구조 생성 방법

Legal Events

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