KR102139549B1 - 피어의 클러스터에 의한 분할 연산 기반 블록체인망 시스템 및 분할 연산 방법 - Google Patents

피어의 클러스터에 의한 분할 연산 기반 블록체인망 시스템 및 분할 연산 방법 Download PDF

Info

Publication number
KR102139549B1
KR102139549B1 KR1020190049258A KR20190049258A KR102139549B1 KR 102139549 B1 KR102139549 B1 KR 102139549B1 KR 1020190049258 A KR1020190049258 A KR 1020190049258A KR 20190049258 A KR20190049258 A KR 20190049258A KR 102139549 B1 KR102139549 B1 KR 102139549B1
Authority
KR
South Korea
Prior art keywords
block
hash value
data
peer
transaction data
Prior art date
Application number
KR1020190049258A
Other languages
English (en)
Inventor
황헌주
Original Assignee
에스지에이비엘씨 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스지에이비엘씨 주식회사 filed Critical 에스지에이비엘씨 주식회사
Priority to KR1020190049258A priority Critical patent/KR102139549B1/ko
Application granted granted Critical
Publication of KR102139549B1 publication Critical patent/KR102139549B1/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/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 피어의 클러스터에 의한 분할 연산 기반 블록체인망 시스템 및 분할 연산 방법에 관한 것으로서, 피어의 클러스터에 의한 분할 연산 기반 블록체인망 시스템에 관한 것으로서, 서로 연결된 다수의 피어를 포함하고, 각 피어는 다수의 연산 노드를 포함하고, 하나의 피어(이하 제1 피어)가 새로운 트랜잭션 데이터에 대해 새로운 블록(이하 제1 블록)을 생성하여 자신의 블록체인 원장에 추가할 때, 트랜잭션 데이터를 다수의 분할 데이터로 분할하여, 자신의 다수의 연산 노드로 분배하고, 각 연산 노드에서 연산된 분할 데이터의 해시값을 병합하여 상기 제1 블록의 블록 헤더의 블록 해시값을 설정하고, 상기 제1 피어를 제외한 나머지 피어는 상기 제1 블록을 수신하면, 상기 제1 블록의 트랜잭션 데이터를 다수의 분할 데이터로 분할하여, 자신의 다수의 연산 노드로 분배하고, 각 연산 노드에서 연산된 분할 데이터의 해시값을 병합하여 블록 해시값을 연산하고, 연산된 블록 해시값과 상기 제1 블록에 기록된 블록 해시값을 비교하여 상기 제1 블록을 검증하는 구성을 마련한다.
상기와 같은 시스템 및 방법에 의하여, 하나의 블록체인망에서 갱신된 내용을 다른 블록체인망에도 추가함으로써, 하나의 트랜잭션 데이터를 분할하여 다수의 연산 노드에서 분산 연산함으로써, 해시값 연산 속도를 향상시킬 수 있다.

Description

피어의 클러스터에 의한 분할 연산 기반 블록체인망 시스템 및 분할 연산 방법 { A block-chain network system using division distributed operation of peers' cluster and the distributed operation method thereof }
본 발명은 각 피어가 다수의 연산 노드로 구성되어, 하나의 트랜잭션 데이터를 분할하여 각 연산 노드에 분산시키고, 각 연산 노드에서 분할된 데이터에 대해 해시값을 연산하게 하는, 피어의 클러스터에 의한 분할 연산 기반 블록체인망 시스템 및 분할 연산 방법에 관한 것이다.
일반적으로, 블록 체인(Block chain)은 공공 거래 장부라고도 부르며 가상 화폐로 거래할 때 발생할 수 있는 해킹을 막는 기술이다. 기존 금융 회사의 경우 중앙 집중형 서버에 거래 기록을 보관하는 반면, 블록체인은 거래에 참여하는 모든 사용자에게 거래 내역을 보내 주며 거래 때마다 이를 대조해 데이터 위조를 막는 방식을 사용한다. 블록체인은 대표적인 온라인 가상 화폐인 비트코인에 적용되어 있다. 비트코인은 누구나 열람할 수 있는 장부에 거래 내역을 투명하게 기록하며, 비트코인을 사용하는 여러 컴퓨터가 10분에 한 번씩 이 기록을 검증하여 해킹을 막는다.
또한, 이와 같은 블록체인 기술은 데이터를 저장하고 공유하는 분야에도 적용되고 있다. 일례로서, 기업과 관련된 기업 정보를 블록체인 기반으로 구성하는 기술이 제시되고 있다[특허문헌 1]. 상기 선행기술은 기업과 관련된 기업정보를 블록체인 기반으로 복수의 서로 다른 단말 사이에 공유하도록 하고, 기업정보를 등록하는 기업과 기업정보를 인증하는 기관 사이에 상호인증이 이루어지고, 상호인증 과정에서 발생하는 트랜잭션을 블록체인을 통해 복수의 서로 다른 피어(peer)에 분산 저장한다. 따라서 기업정보의 신뢰성을 보장함과 아울러, 기업정보에 대한 위변조를 방지할 수 있다.
즉, 블록체인은 탈 중앙화된 트랜잭션 데이터 관리를 위해 사용된 핵심기술이다. 블록체인은 중앙 관리 기관이 없이 임의의 사용자가 데이터를 위변조하는 것을 불가능하게 하여 트랜잭션 데이터의 무결성을 유지한다. 이를 위해, 블록체인 네트워크에 참여한 모든 참여 피어는 거래 내역(장부)를 저장하고, 새롭게 생성되는 트랜잭션 데이터가 저장된 장부를 통해 검사한다.
특히, 블록체인에서 새로운 트랜잭션 데이터가 블록으로 생성되어 등록되면, 추가된 블록은 모든 피어에 전파되어, 블록체인에 참여한 모든 피어는 동일한 장부를 모두 저장하도록 동기화된다. 이때, 각 피어는 추가된 블록에 대하여 동일한 검증 작업을 수행해야 한다. 즉, 각 피어는 블록의 바디에 기록된 트랜잭션 데이터에 대하여 해시값을 연산하고, 연산한 해시값과, 블록의 헤더에 기록된 해시값을 비교하여 검증한다.
그런데 트랜잭션 데이터(또는 블록의 바디)가 큰 경우, 해시값을 연산하는데 많은 시간이 소요된다. 즉, 해시값 연산은 블록체인에서 트랜잭션 데이터의 처리를 지연시키는 주된 요인이다. 특히, 일시적으로 트래픽이 급증하는 경우, 해시값 연산에 의한 지연은 전체 블록체인 시스템을 다운시킬 수 있다. 따라서 해시값 연산 속도를 향상시키는 기술이 필요하다.
한국 등록특허공보 제10-1929482호(2019.03.12.공고)
본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위한 것으로, 각 피어가 다수의 연산 노드로 구성되어, 하나의 트랜잭션 데이터를 분할하여 각 연산 노드에 분산시키고, 각 연산 노드에서 분할된 데이터에 대해 해시값을 연산하게 하는, 피어의 클러스터에 의한 분할 연산 기반 블록체인망 시스템 및 분할 연산 방법을 제공하는 것이다.
상기 목적을 달성하기 위해 본 발명은 피어의 클러스터에 의한 분할 연산 기반 블록체인망 시스템에 관한 것으로서, 서로 연결된 다수의 피어를 포함하고, 각 피어는 다수의 연산 노드를 포함하고, 하나의 피어(이하 제1 피어)가 새로운 트랜잭션 데이터에 대해 새로운 블록(이하 제1 블록)을 생성하여 자신의 블록체인 원장에 추가할 때, 트랜잭션 데이터를 다수의 분할 데이터로 분할하여, 자신의 다수의 연산 노드로 분배하고, 각 연산 노드에서 연산된 분할 데이터의 해시값을 병합하여 상기 제1 블록의 블록 헤더의 블록 해시값을 설정하고, 상기 제1 피어를 제외한 나머지 피어는 상기 제1 블록을 수신하면, 상기 제1 블록의 트랜잭션 데이터를 다수의 분할 데이터로 분할하여, 자신의 다수의 연산 노드로 분배하고, 각 연산 노드에서 연산된 분할 데이터의 해시값을 병합하여 블록 해시값을 연산하고, 연산된 블록 해시값과 상기 제1 블록에 기록된 블록 해시값을 비교하여 상기 제1 블록을 검증하는 것을 특징으로 한다.
또한, 본 발명은 피어의 클러스터에 의한 분할 연산 기반 블록체인망 시스템에 있어서, 상기 제1 피어는 사전에 정해진 크기에 따라 상기 트랜잭션 데이터를 분할하여 분할 데이터를 생성하는 것을 특징으로 한다.
또한, 본 발명은 피어의 클러스터에 의한 분할 연산 기반 블록체인망 시스템에 있어서, 상기 트랜잭션 데이터의 해시값은 다수의 분할 데이터의 해시값들을 단순 병합(concatenate)되어 만들어지는 것을 특징으로 한다.
또한, 본 발명은 피어의 클러스터에 의한 분할 연산 기반 블록체인망 시스템에 있어서, 각 피어는 다수의 분할 데이터를 자신의 연산 노드에 동일한 개수만큼 분배하고, 연산 노드의 개수 보다 적은 수의 분할 데이터가 남으면 나머지 분할 데이터를 연산 노드 일부에 추가로 1개씩 더 분배하는 것을 특징으로 한다.
또한, 본 발명은 블록체인망 시스템에 의한 분할 연산 방법에 관한 것으로서, (a) 하나의 피어(이하 제1 피어)가 새로운 트랜잭션 데이터에 대해 블록 해시값을 설정하고, 새로운 블록(이하 제1 블록)을 생성하여 자신의 블록체인 원장에 추가하되, 상기 트랜잭션 데이터를 다수의 분할 데이터로 분할하여, 자신의 다수의 연산 노드로 분배하고, 각 연산 노드에서 연산된 분할 데이터의 해시값을 병합하여 상기 제1 블록의 블록 헤더의 블록 해시값을 설정하는 단계; (b) 상기 제1 피어는 상기 제1 블록을 나머지 피어에게 전파하는 단계; 및, (c) 상기 나머지 피어 각각은 상기 제1 블록에 대해 해시값을 검증하고, 검증이 통과되면, 상기 제1 블록을 자신의 블록체인 원장에 등록하되, 상기 제1 블록의 트랜잭션 데이터를 다수의 분할 데이터로 분할하여, 자신의 다수의 연산 노드로 분배하고, 각 연산 노드에서 연산된 분할 데이터의 해시값을 병합하여 블록 해시값을 연산하고, 연산된 블록 해시값과 상기 제1 블록에 기록된 블록 해시값을 비교하여 상기 제1 블록을 검증하는 단계를 포함하는 것을 특징으로 한다.
또한, 본 발명은 블록체인망 시스템에 의한 분할 연산 방법에 있어서, 각 피어는 다수의 분할 데이터를 자신의 연산 노드에 동일한 개수만큼 분배하고, 연산 노드의 개수 보다 적은 수의 분할 데이터가 남으면 나머지 분할 데이터를 연산 노드 일부에 추가로 1개씩 더 분배하는 것을 특징으로 한다.
상술한 바와 같이, 본 발명에 따른 피어의 클러스터에 의한 분할 연산 기반 블록체인망 시스템 및 분할 연산 방법에 의하면, 하나의 트랜잭션 데이터를 분할하여 다수의 연산 노드에서 분산 연산함으로써, 해시값 연산 속도를 향상시킬 수 있는 효과가 얻어진다.
블록체인망 시스템에서 가장 많은 컴퓨팅 자원을 소모하는 작업은 신규 블록의 생성 작업과 생성된 블록의 타 피어들간의 공유 시의 검증 작업이다. 이 두 가지의 작업들이 주로 해시(hash) 연산을 수행하기 때문에 자원의 소모가 심한편이다. 앞서 설명한 바와 같이, 본 발명은 해시값의 연산을 분배를 통하여 컴퓨팅 자원의 부하를 균등하게 분배하여, 연산에 소요되는 속도를 높일 수 있다. 결과적으로, 이러한 연산 속도 상승은 시스템 전체 속도의 향상과 병목구간 지연 감소 그리고 시스템 하드웨어 자원의 가용성 증가와 내구성을 향상시킬 수 있다.
도 1은 본 발명의 일실시예에 따른 피어의 클러스터에 의한 분할 연산 기반 블록체인망 시스템의 구성에 대한 블록도.
도 2는 본 발명의 일실시예에 따른 블록체인의 구조를 나타낸 도면.
도 3은 본 발명의 일실시예에 따른 블록체인망 시스템에서 새로운 블록이 추가되는 과정을 나타낸 도면.
도 4는 본 발명의 일실시예에 따른 해시 연산을 수행하여 새로운 트랜잭션 데이터를 블록체인망에 등록하는 방법을 설명하는 흐름도.
도 5는 본 발명의 일실시예에 따른 제1 피어에서 트랜잭션 데이터를 블록으로 등록하는 단계를 설명하는 도면.
도 6은 본 발명의 일실시예에 따른 제1 피어 외 나머지 피어에서 블록체인 원장을 동기화 하는 단계를 설명하는 도면.
이하, 본 발명의 실시를 위한 구체적인 내용을 도면에 따라서 설명한다.
또한, 본 발명을 설명하는데 있어서 동일 부분은 동일 부호를 붙이고, 그 반복 설명은 생략한다.
먼저, 본 발명의 일실시예에 따른 피어의 클러스터에 의한 분할 연산 기반 블록체인망 시스템의 구성을 도 1을 참조하여 설명한다.
도 1에서 보는 바와 같이, 본 발명의 일실시예에 따른 블록체인 시스템(10)은 다수의 연산 노드(30)를 포함하는 다수의 피어(20)로 구성된다.
먼저, 블록체인망 시스템(10)은 통상의 블록체인 망으로서, 트랜잭션(또는 데이터)을 블록으로 기록하되, 각 블록들을 블록 체인으로 연결하여 기록한다.
블록체인 시스템(10)은 네트워크로 연결된 다수의 피어(20)들로 구성된다. 다수의 피어(20)들은 서로 네트워크로 연결되어 데이터 통신을 수행할 수 있다.
다음으로, 각 피어(20)은 하나의 컴퓨팅 단말 또는 서버로서, 트랜잭션 데이터를 블록체인으로 기록한 트랙잭션 데이터의 원장(이하 블록체인 원장)을 복제하여 저장한다. 모든 피어(20)은 서로 동기화 하여, 동일한 블록체인 원장을 보유한다.
구체적으로, 트랜잭션 데이터(또는 데이터)는 하나의 트랜잭션을 나타내는 데이터로서, 거래 정보, 의료 정보, 기업 정보 등 데이터를 저장하고 기록한다.
도 2에서 보는 바와 같이, 블록체인 원장은 블록들의 체인으로 구성된다. 각 블록은 해당 트랜잭션의 해시값, 이전 블록의 해시값 등을 기록하는 블록 헤더와, 실제 트랜잭션 데이터를 기록하는 블록 바디로 구성된다. 각 블록의 헤더 내에 해당 트랜잭션의 해시값과 이전 블록의 해시값을 기록한다. 해시값은 해당 블록의 트랜잭션 데이터(바디에 기록된 데이터)에 대한 해시값이다.
즉, 각 트랜잭션 데이터의 해쉬값을 구하여, 해쉬값들을 블록 체인으로 구성한다. 이때, 블록체인 원장은 각 데이터의 해시값들을 블록들의 체인으로 구성한 블록체인(블록의 헤더)과, 트랜잭션 데이터(블록의 바디)를 모두 포함한다. 블록체인 원장의 트랜잭션 데이터(또는 블록, 블록 바디)을 열람함으로써 해당 트랜잭션의 내용을 열람할 수 있고, 블록체인의 해시값을 인증함으로써 해당 데이터의 진위 여부를 검증할 수 있다.
구체적으로, 특정 블록에 대하여, 해당 블록의 헤더에 기재된 해시값과, 블록 바디에 기록된 트랜잭션 데이터로부터 연산된 해시값을 비교하여, 그 동일 여부로 트랜잭션 데이터의 진위 여부를 검증한다.
또한, 특정 블록에 대해, 해당 블록의 트랜잭션 해시값과, 다음 블록의 이전 블록의 해시값으로 가상의 체인을 구성한다. 따라서, 이들 2개의 해시값(체인으로 형성된 해시값 또는 블록 헤더)을 비교하여 체인 구성에 대한 진위 검증을 수행한다.
따라서, 특정 블록에 대해, 트랜잭션 데이터의 진위 검증과, 체인 구성의 진위 검증을 통해 블록체인 원장에 대한 진위 검증을 수행할 수 있다.
한편, 피어(20)은 자신이 어떤 하나의 트랜잭션 작업을 수행하면, 새로운 트랜잭션 데이터를 자신의 블록체인 원장에 추가하고, 추가된 블록 정보를 다른 피어(20)에 전송한다. 추가되는 정보 또는 블록은 기존의 블록체인 원장에 블록체인으로 추가된다.
또한, 다른 피어(20)들은 앞서 갱신한 피어(20)로부터 추가되는 블록 정보를 수신하여, 자신의 블록체인 원장에 블록 정보를 추가한다. 바람직하게는, 피어(20)은 자신의 주변에 위치하는 피어(20)들에게, 추가되는 블록체인에 대한 갱신 정보(추가 정보)를 전송(전파)하고, 주변의 피어(20)들은 블록체인에 대한 갱신 정보를 자신의 블록체인 원장에 기록하고, 또 다시 자신의 주변의 피어들에게 전송한다. 따라서 블록체인 시스템(10) 내에 위치하는 모든 피어(20)들은 블록체인 원장을 동기화 하여 모두 동일한 블록체인 원장을 보유하게 된다.
또한, 피어(20)는 다른 피어로부터 블록체인에 대한 갱신 정보를 수신하면, 갱신 정보에 따라 자신의 블록체인 원장에 블록을 추가한다.
또한, 각 피어(20)은 다수의 연산 노드(30)를 포함한다. 특히 피어(20)는 다수의 연산 노드(30)와 연결된다.
연산 노드(30)는 마이크로 프로세서(MCU), 중앙처리장치(CPU) 등 연산 장치와, 데이터를 저장하는 저장 장치 등 컴퓨팅 자원을 구비한 장치이다. 즉, 연산 노드(30)는 연산 기능을 구비한 장치로서, 마이크로 프로세서(MCU, CPU 등) 장치, 컴퓨팅 단말, 서버 등일 수 있다.
다수의 연산 노드(30)는 클러스터로 구성된다. 즉, 피어(20)는 "작업 부하 분산"(Load-Balancing) 클러스터 시스템의 일종으로서, 시스템의 전반적인 성능을 향상시키기 위해 계산 부하량을 여러 노드에서 분담하여 병렬 처리하도록 구성된다.
일실시예로서, 내부적으로는 여러 대의 컴퓨터(혹은 컴퓨팅 자원)인 노드들이 고속의 근거리 통신망으로 연결되어 하나의 시스템처럼 동작한다. 즉, 클러스터는 여러 컴퓨터들의 집합 형태이다. 이때, 마스터(Master) 서버와 종속(Slave) 서버들로 나뉘어지는데, 마스터 서버는 피어에 부과된 새로운 트랜잭션의 블록화를 위한 작업이나 전달된 블록의 검증 작업을 수행하기 위해, 하위 종속 서버들의 연산 작업 방식, 연산 블록의 배분, 하위 서버들의 연산 결과인 해시값들의 수집 방법이나 결합 방법 등을 관리하고 진행한다. 연산 노드들은 하위 종속 서버들에 대응된다.
연산노드들 중 하나를 마스터 서버 역할을 겸하도록 설정하거나. 별도의 마스터 서버역할을 하는 관리노드를 둘 수 있다. 또한, 다른 실시예로서, 피어(20) 자체가 하나의 노드로서 마스터 역할을 할 수 있다.
연산노드는 연산을 위한 컴퓨팅 자원인 프로세서(CPU), 메모리, 저장장치 혹은 공유파일 서버에 연결된 상태를 가지며, 운영체제와 내부 연산 로직을 가진다. 내부 연산 로직은 주로 해시값을 트랜잭션 메시지로부터 도출한다.
다음으로, 본 발명의 일실시예에 따른 블록체인망 시스템(10)에서 새로운 블록이 추가되는 과정을 도 3을 참조하여 보다 구체적으로 설명한다.
도 3에서 보는 바와 같이, 블록체인망(10) 내에는 다수의 피어 P0, P1, P2, ..., Pn 으로 구성된다. 각 피어 P0, P1, P2, ..., Pn 는 다수의 블록들로 구성된 블록체인을 자신의 원장에 저장(등록)한다.
예를 들어, 현재 상태에서, 모든 피어 P0, P1, P2, ..., Pn 가 <블록1> 만을 원장에 기록된 상태이다. 그리고 이때, 피어 P1이 새로운 트랜잭션 데이터에 대해 새로운 블록 <블록1>을 생성하여 자신의 원장에 기록한다고 가정한다.
먼저, 피어 P1은 트랜잭션 데이터에 대한 해시값을 연산하여 <블록2>을 생성한다(S1). 즉, 피어 P1은 해시값을 포함하는 블록 헤더를 구성하고, 트랜잭션 데이터를 블록 바디로 구성하여, <블록2>을 생성한다.
다음으로, 피어 P1은 <블록2>을 자신의 블록체인 원장에 등록한다(S2).
다음으로, 피어 P1은 <블록2>을 주변의 피어들에 전파한다(SS3). 이때, 주변 피어들이 <블록2>을 수신한 후 다시 자신의 주변 피어들에게 릴레이식으로 <블록2>을 전송할 수 있다.
다음으로, 다른 피어 P0, P2, ..., Pn은 트랜잭션 데이터의 해시값을 구하여, <블록2>을 검증한다(S4). 즉, <블록2>의 블록 바디에 기록된 트랜잭션 데이터에 대하여 해시값을 연산하고, 연산된 해시값을 <블록2>의 블록 헤더에 기록된 해시값과 대비하여 검증한다. 즉, 대비한 결과가 동일하면, 검증을 통과한 것으로 처리한다.
다음으로, 블록 검증이 통과되면, 다른 피어 P0, P2, ..., Pn은 해당 블록을 자신의 원장에 등록한다(S5). 즉, 다른 피어들은 <블록2>를 자신의 원장에 등록한다.
앞서 설명한 바와 같이, 모든 피어들은 트랜잭션 데이터에 대한 해시 연산을 수행한다.
다음으로, 본 발명의 일실시예에 따른 블록체인망 시스템 내의 각 피어들이 해시 연산을 수행하여 새로운 트랜잭션 데이터를 블록체인망에 등록하는 방법을 도 4 내지 도 6을 참조하여 설명한다.
본 발명에 따른 트랜잭션 데이터를 블록체인망에 등록하는 방법은 (a) 특정 피어에서 트랜잭션 데이터를 블록으로 블록체인에 추가 삽입하는 단계(S10), (b) 새로운 블록을 전파하는 단계(S20), 및, (c) 추가된 블록을 전파시켜, 블록체인망 내의 다른 피어의 블록체인 원장을 동기화 하여 새로운 블록을 추가하는 단계(S30)로 구성된다.
먼저, 하나의 피어(이하 제1 피어)는 새로운 트랜잭션 데이터에 대한 블록을 생성하여 자신의 블록체인 원장에 등록한다(S10).
도 5에서 보는 바와 같이, 먼저, 제1 피어(P1)는 트랜잭션 데이터(예를 들어, 100Mbyte 크기)를 블록체인 또는 자신의 블록체인 원장에 추가하는 프로세스를 시작한다(S11).
다음으로, 제1 피어 P1은 트랜잭션 데이터를 다수의 분할 데이터로 분할한다(S12). 이때 각 분할 데이터는 순서를 갖는데, 트랜잭션 데이터에서의 나타난 순서대로 순서를 갖는다.
이때, 분할 방식은 사전에 정해진다. 바람직하게는 분할 데이터의 크기를 사전에 설정하고, 정해진 크기 단위로 트랜잭션 데이터를 분할한다. 일례로서, 분할 데이터의 크기를 20Mb로 설정하면, 트랜잭션 데이터 100Mb를 20Mb 단위로 분할하여 분할 데이터를 생성한다. 특히, 분할 데이터의 크기는 각 노드의 해시 처리 기능에 따라 변경될 수 있다.
다음으로, 제1 피어 P1은 다수의 분할 데이터를 노드 클러스터(또는 다수의 연산 노드)에 분배한다(S13). 즉, 각 연산 노드에 다수의 분할 데이터를 균일하게 분배한다.
즉, 다수의 분할 데이터를 각 연산 노드에 동일한 개수만큼 분배한다. 그리고 만약 각 연산 노드 개수 보다 적은 수의 분할 데이터가 남으면, 나머지 분할 데이터를 연산 노드 일부에 추가로 1개씩 더 분배한다.
예를 들어, 분할 데이터의 개수가 10개이고, 연산 노드가 4개인 경우를 설명한다. 이때, 각 연산 노드에 8개의 분할 데이터를 2개씩 분배하고, 나머지 2개의 분할 데이터를 4개의 연산 노드 중 2개의 연산 노드에 각각 1개씩 추가로 분배한다.
도 4의 예에서는 분할 데이터의 개수가 5개이고, 연산 노드가 5개이므로, 각 연산 노드에 1개의 분할 데이터를 분배한다.
다음으로, 각 연산 노드는 자신에게 분배된 분할 데이터에 대한 해시값을 연산한다(S14). 즉, 각 연산 노드는 피어로부터 분할 데이터를 분배받고, 분배받은 분할 데이터에 대해 해시값을 연산한다. 해시 함수는 사전에 정해진 함수를 사용한다. 이때의 해시값을 분할 해시값이라 부르기로 한다.
다음으로, 제1 피어(P1)는 자신의 연산 노드로부터 각 분할 데이터의 해시값(분할 해시값)을 수신하여, 이들 분할 데이터를 병합하여 트랜잭션 데이터의 해시값(또는 블록 해시값)으로 설정한다(S15).
이때, 각 분할 데이터의 해시값을 분할 순서대로 또는 임의대로 병합한다. 바람직하게는, 분할 해시값을 병합하여 블록 해시값으로 사용한다. 이때, 2개의 해시값을 병합하여 1개의 해시값을 도출하는 병합 함수를 사용한다. 즉, 병합 함수는 2개의 해시값을 입력받아, 1개의 해시값을 출력하되, 입력되는 해시값의 크기와, 출력되는 해시값의 크기는 같다.
또한, 병합 함수는 해시값의 순서를 바꾸어 연산해도 동일한 값을 산출하는 교환 법칙과, 여러 개의 해시값들에 대하여 연산 순서를 변경해도 동일한 값을 산출하는 결합 법칙을 만족하도록 구성된다.
일 실시예로서, 해시값은 길이가 모두 같으므로, 각 자리수를 더하여 해당 자릿수에서 각 자리수 합의 일의 자리수값만 남겨 구하고, 구한 각 자리수를 병합한다. 구체적으로는 해시값에 16진수를 사용한다고 할 때, 각 자리수는 0,1,2,…,9,A(10),B(11),C(12),D(13),E(14),F(15) 중 하나이다. 이때 분할 데이터가 5조각으로 분할되어, 분할 데이터의 분할 해시값이 각각 (1)4, (2)F, (3)1, (4)E, (5)8 이라 가정한다. 이때, 이 값들을 (1)부터 (5)까지 순차적으로 합치는 과정은 다음과 같다
(1)과(2)의 병합 : 4 + F(15) = 19(십진수) 16진수변환시 일의자리 >> 3
(1+2)와(3)의 병합 : 3 + 1 = 4(십진수) 16진수변환시 일의자리 >> 4
(1+2+3)과(4)의 병합 : 4 + E(14) = 18(십진수) 16진수변환시 일의자리 >> 2
(1+2+3+4)와(5)의 병합 : 2 + 8 = 10(십진수) 16진수변환시 일의자리 >> A
결과적으로 분할 데이터(1)부터 분할 데이터(5)까지의 제일 첫 번째 자리수 A를 구할 수 있다. 이러한 방식으로 모든 자리수에 대해 16진수로 일의 자리만 남기는 방법으로 값들을 더한다. 이를 통해, 해시의 길이를 유지하면서, 전체 분할 데이터들로부터 구해진 분할 해시값들을 병합하여, 블록 해시값을 얻을 수 있다.
이때, 병합 함수는 교환 법칙과 결합법칙이 성립하므로, (1)과 (2)를 병합하고, (3)과 (4)를 병합하고, (1)+(2)의 결과와 (3)+(4)의 결과 해시값을 병합하고, 이들을 병합한 값과 (5)를 병합하여도, 그 전체 결과(블록 해시값)는 동일하게 산출된다. 또는 순서를 변경하여, (1)+(5)와 (2)+(4)를 연산하고, 이들을 병합하여 (3)과 연산하여도 동일한 결과가 나온다.
다음으로, 제1 피어(P1)는 블록 해시값을 블록 헤더에 삽입하고 트랜잭션 데이터를 블록 바디로 구성하여 블록을 생성하고, 생성된 블록을 자신의 블록체인 원장에 등록한다(S16).
이때, 트랜잭션 데이터를 분할한 방식, 분할 데이터의 해시 함수, 분할 데이터를 병합하는 방식(또는 병합 함수) 등을 블록 헤더에 추가정보로서 추가할 수 있다.
다음으로, 제1 피어(P1)는 새로운 블록(또는 생성된 블록)을 나머지 피어(P0, P2, ..., Pn)에 전파한다(S20).
다음으로, 제1 피어(P1)를 제외한 다른 모든 피어는 블록체인 원장을 동기화 한다(S30).
도 6에서 보는 바와 같이, 먼저, 제1 피어(P1)을 제외한 나머지 피어들은 제1 피어(P1)에 추가된 블록을 동기화 하는 프로세스를 시작한다(S31).
다음으로, 나머지 피어 P0, P2, ..., Pn은 트랜잭션 데이터의 분할 방식을 참조하여, 블록 바디의 트랜잭션 데이터를 분할한다(S32). 분할 방식은 사전에 설정되어, 모든 피어에 공유되거나, 블록 헤더에 기록된다. 후자의 경우, 나머지 각 피어는 블록 헤더에 기록된 분할 방식을 참조한다.
도 6의 예에서는 분할 데이터의 크기 20Mb에 의해, 트랜잭션 데이터 100Mb를 20Mb 단위로 분할하여 5개의 분할 데이터를 생성한다.
다음으로, 나머지 피어 P0, P2, ..., Pn은 다수의 분할 데이터를 노드 클러스터(또는 다수의 연산 노드)에 분배한다(S33). 다수의 분할 데이터를 각 연산 노드에 동일한 개수만큼 분배한다. 그리고 만약 각 연산 노드 개수 보다 적은 수의 분할 데이터가 남으면, 나머지 분할 데이터를 연산 노드 일부에 추가로 1개씩 더 분배한다.
도 6의 예에서, 피어 0는 2개의 연산 노드 N6, N7를 가지므로, 각 연산 노드N6,N7 에 2개씩 분할 데이터(2 X 2 = 4개)를 분배하고, 1개의 분할 데이터가 남는다. 나머지 1개 분할 데이터를 2개 연산노드 중 하나(바람직하게는, 번호가 빠른 노드)인 N6에 추가 분배한다.
또한, 피어 2는 3개의 연산 노드 N8,N9,N10를 가지므로, 각 연산 노드 N8,N9,N10에 1개씩 분할 데이터(3 X 1 = 3개)를 분배하고, 2개의 분할 데이터가 남는다. 나머지 2개 분할 데이터를 3개 연산노드 중 2개의 노드(바람직하게는, 번호가 빠른 노드) N8,N9에 각각 추가 분배한다.
다음으로, 각 피어의 각 연산 노드는 자신에게 분배된 분할 데이터에 대한 해시값(또는 분할 해시값)을 연산한다(S34). 즉, 각 연산 노드는 피어로부터 분할 데이터를 분배받고, 분배받은 분할 데이터에 대해 해시값을 연산한다. 해시 함수는 사전에 정해진 함수를 사용한다.
다음으로, 나머지 피어 P0, P2, ..., Pn은 자신의 연산 노드로부터 각 분할 데이터의 해시값(분할 해시값)을 수신하여, 이들 분할 데이터를 병합하여 트랜잭션 데이터의 해시값(또는 블록 해시값)으로 설정한다(S35). 이때, 각 분할 데이터의 해시값을 분할 순서대로 병합한다. 바람직하게는, 분할 해시값을 단순 결합(concatenate)하여 블록 해시값으로 사용한다.
다음으로, 나머지 피어 P0, P2, ..., Pn은 만들어진 블록 해시값을 블록 헤더에 기록된 블록 해시값과 대비하여, 블록을 검증한다(S36). 2개의 블록 해시값이 동일하면 검증을 통과한 것으로 판단한다. 그리고 블록이 검증되면, 나머지 피어는 해당 블록을 자신의 블록체인 원장에 등록한다.
이때, 트랜잭션 데이터를 분할한 방식, 분할 데이터의 해시 함수, 분할 데이터를 병합하는 방식 등을 블록 헤더에 해시 데이터와 함께 추가할 수 있다.
이상, 본 발명자에 의해서 이루어진 발명을 실시 예에 따라 구체적으로 설명하였지만, 본 발명은 실시 예에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.
10 : 블록체인 시스템 20 : 피어
30 : 연산 노드

Claims (6)

  1. 피어의 클러스터에 의한 분할 연산 기반 블록체인망 시스템에 있어서,
    서로 연결된 다수의 피어를 포함하고,
    각 피어는 다수의 연산 노드를 포함하고,
    하나의 피어(이하 제1 피어)가 새로운 트랜잭션 데이터에 대해 새로운 블록(이하 제1 블록)을 생성하여 자신의 블록체인 원장에 추가할 때, 트랜잭션 데이터를 다수의 분할 데이터로 분할하여, 자신의 다수의 연산 노드로 분배하고, 각 연산 노드에서 연산된 분할 데이터의 해시값을 병합하여 상기 제1 블록의 블록 헤더의 블록 해시값을 설정하고,
    상기 제1 피어를 제외한 나머지 피어는 상기 제1 블록을 수신하면, 상기 제1 블록의 트랜잭션 데이터를 다수의 분할 데이터로 분할하여, 자신의 다수의 연산 노드로 분배하고, 각 연산 노드에서 연산된 분할 데이터의 해시값을 병합하여 블록 해시값을 연산하고, 연산된 블록 해시값과 상기 제1 블록에 기록된 블록 해시값을 비교하여 상기 제1 블록을 검증하고,
    상기 제1 피어는 사전에 정해진 크기에 따라 상기 트랜잭션 데이터를 분할하여 분할 데이터를 생성하고,
    상기 트랜잭션 데이터의 해시값은 다수의 분할 데이터의 해시값들을 병합 함수에 의해 모두 병합하여 만들어지고,
    상기 병합 함수는 2개의 해시값을 병합하여 1개의 해시값을 도출하고, 입력되는 해시값의 크기와 출력되는 해시값의 크기는 같고, 교환 법칙과 결합 법칙을 만족하는 것을 특징으로 하는 피어의 클러스터에 의한 분할 연산 기반 블록체인망 시스템.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    각 피어는 다수의 분할 데이터를 자신의 연산 노드에 동일한 개수만큼 분배하고, 연산 노드의 개수 보다 적은 수의 분할 데이터가 남으면 나머지 분할 데이터를 연산 노드 일부에 추가로 1개씩 더 분배하는 것을 특징으로 하는 피어의 클러스터에 의한 분할 연산 기반 블록체인망 시스템.
  5. 다수의 연산 노드를 구비한 다수의 피어들로 구성된 블록체인망 시스템에 의한 분할 연산 방법에 있어서,
    (a) 하나의 피어(이하 제1 피어)가 새로운 트랜잭션 데이터에 대해 블록 해시값을 설정하고, 새로운 블록(이하 제1 블록)을 생성하여 자신의 블록체인 원장에 추가하되, 상기 트랜잭션 데이터를 다수의 분할 데이터로 분할하여, 자신의 다수의 연산 노드로 분배하고, 각 연산 노드에서 연산된 분할 데이터의 해시값을 병합하여 상기 제1 블록의 블록 헤더의 블록 해시값을 설정하는 단계;
    (b) 상기 제1 피어는 상기 제1 블록을 나머지 피어에게 전파하는 단계; 및,
    (c) 상기 나머지 피어 각각은 상기 제1 블록에 대해 해시값을 검증하고, 검증이 통과되면, 상기 제1 블록을 자신의 블록체인 원장에 등록하되, 상기 제1 블록의 트랜잭션 데이터를 다수의 분할 데이터로 분할하여, 자신의 다수의 연산 노드로 분배하고, 각 연산 노드에서 연산된 분할 데이터의 해시값을 병합하여 블록 해시값을 연산하고, 연산된 블록 해시값과 상기 제1 블록에 기록된 블록 해시값을 비교하여 상기 제1 블록을 검증하는 단계를 포함하고,
    상기 제1 피어는 사전에 정해진 크기에 따라 상기 트랜잭션 데이터를 분할하여 분할 데이터를 생성하고,
    상기 트랜잭션 데이터의 해시값은 다수의 분할 데이터의 해시값들을 병합 함수에 의해 모두 병합하여 만들어지고,
    상기 병합 함수는 2개의 해시값을 병합하여 1개의 해시값을 도출하고, 입력되는 해시값의 크기와 출력되는 해시값의 크기는 같고, 교환 법칙과 결합 법칙을 만족하는 것을 특징으로 하는 블록체인망 시스템에 의한 분할 연산 방법.
  6. 제5항에 있어서,
    각 피어는 다수의 분할 데이터를 자신의 연산 노드에 동일한 개수만큼 분배하고, 연산 노드의 개수 보다 적은 수의 분할 데이터가 남으면 나머지 분할 데이터를 연산 노드 일부에 추가로 1개씩 더 분배하는 것을 특징으로 하는 블록체인망 시스템에 의한 분할 연산 방법.
KR1020190049258A 2019-04-26 2019-04-26 피어의 클러스터에 의한 분할 연산 기반 블록체인망 시스템 및 분할 연산 방법 KR102139549B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190049258A KR102139549B1 (ko) 2019-04-26 2019-04-26 피어의 클러스터에 의한 분할 연산 기반 블록체인망 시스템 및 분할 연산 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190049258A KR102139549B1 (ko) 2019-04-26 2019-04-26 피어의 클러스터에 의한 분할 연산 기반 블록체인망 시스템 및 분할 연산 방법

Publications (1)

Publication Number Publication Date
KR102139549B1 true KR102139549B1 (ko) 2020-08-11

Family

ID=72048205

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190049258A KR102139549B1 (ko) 2019-04-26 2019-04-26 피어의 클러스터에 의한 분할 연산 기반 블록체인망 시스템 및 분할 연산 방법

Country Status (1)

Country Link
KR (1) KR102139549B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113905096A (zh) * 2021-06-25 2022-01-07 安徽炬汇科技发展有限公司 一种区块链网络、链重构方法、共识方法及数据同步方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170010471A (ko) * 2015-07-20 2017-02-01 주식회사 엘지유플러스 VoLTE 트래픽 분산처리 장치 및 그 분산처리 방법
KR20180054497A (ko) * 2016-11-14 2018-05-24 삼성전자주식회사 대용량 데이터와 다수의 병합 및 분할 데이터 인증을 위한 전자 장치 및 이의 제어 방법
KR20180113140A (ko) * 2017-04-05 2018-10-15 삼성에스디에스 주식회사 블록체인 기반의 데이터 처리 시스템 및 그 동작 방법
KR101929482B1 (ko) 2018-08-13 2019-03-12 (주)아사달 상호인증 블록체인 기반의 기업정보 공유 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170010471A (ko) * 2015-07-20 2017-02-01 주식회사 엘지유플러스 VoLTE 트래픽 분산처리 장치 및 그 분산처리 방법
KR20180054497A (ko) * 2016-11-14 2018-05-24 삼성전자주식회사 대용량 데이터와 다수의 병합 및 분할 데이터 인증을 위한 전자 장치 및 이의 제어 방법
KR20180113140A (ko) * 2017-04-05 2018-10-15 삼성에스디에스 주식회사 블록체인 기반의 데이터 처리 시스템 및 그 동작 방법
KR101929482B1 (ko) 2018-08-13 2019-03-12 (주)아사달 상호인증 블록체인 기반의 기업정보 공유 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113905096A (zh) * 2021-06-25 2022-01-07 安徽炬汇科技发展有限公司 一种区块链网络、链重构方法、共识方法及数据同步方法
CN113905096B (zh) * 2021-06-25 2024-02-23 安徽炬汇科技发展有限公司 一种区块链网络、链重构方法、共识方法及数据同步方法

Similar Documents

Publication Publication Date Title
CN107528886B (zh) 区块链全网拆分方法与系统
Hazari et al. A parallel proof of work to improve transaction speed and scalability in blockchain systems
KR101727525B1 (ko) 블록체인 기반 분산 저장 방법 및 이를 이용한 장치
JP7472333B2 (ja) バリデータノードにより提供されるブロックチェーントランザクションをマイニングする方法及びシステム
Vukolić The quest for scalable blockchain fabric: Proof-of-work vs. BFT replication
EP3543853A1 (en) Providing microservice information
KR20190067581A (ko) 블록체인 트랜잭션 분산 처리 장치 및 방법
KR102050087B1 (ko) 하드웨어 및 지분증명 합의 알고리즘을 포함하는 블록 체인 시스템과 그 블록 체인 시스템에서의 블록 생성 방법
KR20190068799A (ko) 서비스 존 기반의 계층적 합의 방법 및 장치
Hao et al. Outsourced data integrity verification based on blockchain in untrusted environment
Saldamli et al. Improved gossip protocol for blockchain applications
CN109101338A (zh) 一种基于多路芯片扩展的区块链处理架构及其方法
Zheng et al. Meepo: Multiple execution environments per organization in sharded consortium blockchain
KR102139549B1 (ko) 피어의 클러스터에 의한 분할 연산 기반 블록체인망 시스템 및 분할 연산 방법
Yin et al. A blockchain-based storage system with financial incentives for load-balancing
CN113994324B (zh) 具有高效世界状态数据结构的区块链系统
KR20190140550A (ko) 블록체인 기반 지식재산 공유경제 시스템 및 그 방법
KR102349014B1 (ko) 고속 동기화 가능 탈중앙화 분산 데이터베이스 구성 방법 및 시스템
CN114175011A (zh) 具有高效世界状态数据结构的区块链系统
Wang et al. Multi-stage data synchronization for public blockchain in complex network environment
KR102423284B1 (ko) 분산형 파일 시스템 기반의 파일 분산 저장 시스템
KR102332814B1 (ko) 데이터 자기주권화를 위한 블록체인 구조를 포함하는 블록체인 시스템
Mathys et al. A limitlessly scalable transaction system
Ming et al. Timely Publication of Transaction Records in a Private Blockchain
Kantesariya et al. OptiShard: an optimized and secured hierarchical blockchain architecture

Legal Events

Date Code Title Description
GRNT Written decision to grant