KR102201389B1 - 블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 장치 및 방법, 그리고 데이터 분산 저장 장치 및 방법 - Google Patents

블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 장치 및 방법, 그리고 데이터 분산 저장 장치 및 방법 Download PDF

Info

Publication number
KR102201389B1
KR102201389B1 KR1020190052044A KR20190052044A KR102201389B1 KR 102201389 B1 KR102201389 B1 KR 102201389B1 KR 1020190052044 A KR1020190052044 A KR 1020190052044A KR 20190052044 A KR20190052044 A KR 20190052044A KR 102201389 B1 KR102201389 B1 KR 102201389B1
Authority
KR
South Korea
Prior art keywords
node
grouping
nodes
block chain
blockchain network
Prior art date
Application number
KR1020190052044A
Other languages
English (en)
Other versions
KR20200127600A (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 KR1020190052044A priority Critical patent/KR102201389B1/ko
Publication of KR20200127600A publication Critical patent/KR20200127600A/ko
Application granted granted Critical
Publication of KR102201389B1 publication Critical patent/KR102201389B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • G06F16/1837Management specially adapted to peer-to-peer storage networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 장치 및 방법, 그리고 데이터 분산 저장 장치 및 방법이 개시되며, 본원의 일 실시예에 따른 블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 방법은, (a) 블록체인 네트워크의 총 데이터베이스 크기 및 원뿔형 블록체인 구조에 대하여 설정된 연속된 층 간의 파일 크기 차이에 기초하여, 상기 원뿔형 블록체인 구조의 형성에 요구되는 층수를 산출하는 단계; 및 (b) 전체 블록체인 네트워크에 포함된 전체 노드 중 적어도 일부를, 원뿔형 블록체인 구조와 연계된 노드 그룹마다 상기 층수에 대응하는 노드 개수만큼 노드가 할당되게 그룹핑하는 단계를 포함하고, 상기 노드 그룹은 상기 전체 블록체인 네트워크 상에서 하나의 논리적 노드로 인식될 수 있다.

Description

블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 장치 및 방법, 그리고 데이터 분산 저장 장치 및 방법{NODE GROUPING DEVICE AND METHOD FOR REDUCING STORAGE USAGE OF BLOCK-CHAIN DATA AND DEVICES AND METHODS FOR DATA DISTRIBUTED STORAGE}
본원은 블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 장치 및 방법, 그리고 데이터 분산 저장 장치 및 방법에 관한 것이다.
최근, 비트코인, 이더리움, 리플과 같은 암호화폐의 등장과 함께 블록체인 기술이 각광받고 있다. 블록체인 기술은 P2P 분산 컴퓨팅을 기반으로 데이터의 보안성을 보장하고 투명한 관리를 가능하게 하며 4차 산업 시대의 핵심 기술인 블록체인은 금융, 의료 등 다양한 분야에 적용되는 추세이다. 서버가 데이터를 관리하며 클라이언트에게 서비스를 제공하는 서버-클라이언트 네트워크 모델과 달리 블록체인 네트워크는 서버가 없이 탈중앙화된 구조를 가지며, 각각의 노드가 블록체인 데이터를 저장하고 있어야 네트워크에 참여할 수 있다.
그러나 트랜잭션의 지속적인 발생에 의해 블록체인 데이터는 점점 증가하기 때문에, 이러한 대용량 데이터를 각각의 노드가 각자의 머신에 저장하기 어려워질 수 있다. 극단적으로는 모든 노드가 기존 서버 수준의 스토리지를 가지고 있어야 블록체인 네트워크에 참여할 수 있는 상황에 다다를 수 있다. 이는 “탈중앙화”라는 블록체인 기술의 근본에 있어 굉장한 모순이며, 충분한 노드 수가 확보되어야 견고한 보안을 제공할 수 있다는 블록체인의 특성상 반드시 해결해야할 문제이다.
블록체인의 규모가 커질수록 블록체인 기술 적용의 효율이 저하됨에 따라 이를 개선하기 위해 블록헤더만 저장하는 라이트노드와 같이 노드의 종류를 구분하는 해결방안은 있었으나, 이는 증가하는 데이터량에 대응하여 원천적인 해결 방안이 되지 못하며, 데이터 자체를 분산 저장하려는 시도는 없었다.
본원의 배경이 되는 기술은 한국등록특허공보 제10-1962285호에 개시되어 있다.
본원은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 원뿔형 블록체인 구조에 기초하여 블록체인 네트워크의 데이터를 분산 저장함으로써 스토리지 사용량을 낮출 수 있는 블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 장치 및 방법, 그리고 데이터 분산 저장 장치 및 방법을 제공하는 것을 목적으로 한다.
본원은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 원뿔형 블록체인 구조에서 노드의 그룹핑을 통해 시간이 지남에 따라 증가하는 블록체인 네트워크의 데이터에 대한 용량 문제를 개선할 수 있는 블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 장치 및 방법, 그리고 데이터 분산 저장 장치 및 방법을 제공하는 것을 목적으로 한다.
다만, 본원의 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들도 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상기한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본원의 일 실시예에 따른 블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 방법은, (a) 블록체인 네트워크의 총 데이터베이스 크기 및 원뿔형 블록체인 구조에 대하여 설정된 연속된 층 간의 파일 크기 차이에 기초하여, 상기 원뿔형 블록체인 구조의 형성에 요구되는 층수를 산출하는 단계 및 (b) 전체 블록체인 네트워크에 포함된 전체 노드 중 적어도 일부를, 원뿔형 블록체인 구조와 연계된 노드 그룹마다 상기 층수에 대응하는 노드 개수만큼 노드가 할당되게 그룹핑하는 단계를 포함하고, 상기 노드 그룹은 상기 전체 블록체인 네트워크 상에서 하나의 논리적 노드로 인식될 수 있다.
본원의 일 실시예에 따르면, 상기 원뿔형 블록체인 구조에서, 층 번호는 원뿔 형상의 꼭지점으로부터 일정한 간격을 두고 순차적으로 증가되도록 부여되고, 각 층에 저장되는 파일의 크기는 각 층에 대응하는 원뿔 높이 부분의 둘레 길이에 비례하도록 설정될 수 있다.
본원의 일 실시예에 따르면, 상기 (a) 단계에서, 식 1을 만족하는 가장 작은 정수인 n이 상기 층수로 결정될 수 있다.
본원의 일 실시예에 따르면, 상기 블록체인 네트워크의 그룹핑에 참여 가능한 노드는 식 2를 고려하여 결정될 수 있다.
본원의 일 실시예에 따르면, 상기 블록체인 네트워크에 포함된 전체 노드 중 적어도 일부는, 그룹핑에 참여하는 노드들이고, 상기 n층에 속한 노드의 개수는, 그룹핑에 참여하는 노드들의 개수를 상기 층수(n)로 나눈 값에 대응할 수 있다.
본원의 일 실시예에 따르면, 노드 그룹핑 방법은, (c) 상기 블록체인 네트워크의 총 데이터베이스 크기의 증가에 대응하여, 상기 (b) 단계를 통해 기생성된 복수의 노드 그룹 중 적어도 일부의 층수를 기설정된 층수보다 증가시키는 방향으로 그룹핑을 업데이트하는 단계를 더 포함할 수 있다.
본원의 일 실시예에 따르면, 상기 (c) 단계는, 상기 기설정된 층수를 (N-1)라 하였을 때, (N-1)개의 노드를 포함하는 노드 그룹 N개를 하나의 단위로 묶어 N개의 노드를 포함하는 노드 그룹 (N-1)개로 재구성하는 형태로 수행될 수 있다.
본원의 일 실시예에 따르면, 상기 (c) 단계는, 상기 블록체인 네트워크 내의 그룹핑 메시지 전파를 통해 상기 하나의 단위를 묶을 수 있다.
본원의 일 실시예에 따르면, 상기 (c) 단계는, 상기 블록체인 네트워크의 총 데이터베이스 크기가 기설정된 층수에 대응하는 원뿔형 블록체인 구조로 커버되는 데이터 용량을 초과하기 전에 수행될 수 있다.
본원의 일 실시예에 따르면, 상기 (b) 단계에서, 상기 전체 노드에는, 그룹핑에 참여하여 노드 그룹에 속한 노드인지 여부에 대한 그룹 플래그가 부여되고, 그룹핑에 참여한 노드에는 소속된 그룹에 관한 ID가 부여될 수 있다.
본원의 일 실시예에 따른 블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 장치는 블록체인 네트워크의 총 데이터베이스 크기 및 원뿔형 블록체인 구조에 대하여 설정된 연속된 층 간의 파일 크기 차이에 기초하여, 상기 원뿔형 블록체인 구조의 형성에 요구되는 층수를 산출하는 층수 산출부 및 전체 블록체인 네트워크에 포함된 전체 노드 중 적어도 일부를, 원뿔형 블록체인 구조와 연계된 노드 그룹마다 상기 층수에 대응하는 노드 개수만큼 노드가 할당되게 그룹핑하는 그룹핑부를 포함하고, 상기 노드 그룹은 상기 전체 블록체인 네트워크 상에서 하나의 논리적 노드로 인식될 수 있다.
본원의 일 실시예에 따르면, 상기 원뿔형 블록체인 구조에서, 층 번호는 원뿔 형상의 꼭지점으로부터 일정한 간격을 두고 순차적으로 증가되도록 부여되고, 각 층에 저장되는 파일의 크기는 각 층에 대응하는 원뿔 높이 부분의 둘레 길이에 비례하도록 설정될 수 있다.
본원의 일 실시예에 따르면, 층수 산출부는, 식 3을 만족하는 가장 작은 정수인 n을 상기 층수로 결정할 수 있다.
본원의 일 실시예에 따르면, 상기 블록체인 네트워크의 그룹핑에 참여 가능한 노드는 식 4를 고려하여 결정될 수 있다.
본원의 일 실시예에 따르면, 상기 블록체인 네트워크에 포함된 전체 노드 중 적어도 일부는, 그룹핑에 참여하는 노드들이고, 상기 n층에 속한 노드의 개수는, 그룹핑에 참여하는 노드들의 개수를 상기 층수(n)로 나눈 값에 대응할 수 있다.
본원의 일 실시예에 따르면, 상기 그룹핑부는, 상기 블록체인 네트워크의 총 데이터베이스 크기의 증가에 대응하여, 기생성된 복수의 노드 그룹 중 적어도 일부의 층수를 기설정된 층수보다 증가시키는 방향으로 그룹핑을 업데이트할 수 있다.
본원의 일 실시예에 따르면, 상기 그룹핑부는,
상기 기설정된 층수를 (N-1)라 하였을 때, (N-1)개의 노드를 포함하는 노드 그룹 N개를 하나의 단위로 묶어 N개의 노드를 포함하는 노드 그룹 (N-1)개로 재구성하는 형태로 상기 업데이트를 수행할 수 있다.
본원의 일 실시예에 따르면, 상기 그룹핑부는, 상기 블록체인 네트워크 내의 그룹핑 메시지 전파를 통해 상기 하나의 단위를 묶을 수 있다.
본원의 일 실시예에 따르면, 상기 그룹핑부는, 상기 블록체인 네트워크의 총 데이터베이스 크기가 기설정된 층수에 대응하는 원뿔형 블록체인 구조로 커버되는 데이터 용량을 초과하기 전에 상기 업데이트를 수행할 수 있다.
본원의 일 실시예에 따르면, 상기 전체 노드에는, 그룹핑에 참여하여 노드 그룹에 속한 노드인지 여부에 대한 그룹 플래그가 부여되고, 그룹핑에 참여한 노드에는 소속된 그룹에 관한 ID가 부여될 수 있다.
상술한 과제 해결 수단은 단지 예시적인 것으로서, 본원을 제한하려는 의도로 해석되지 않아야 한다. 상술한 예시적인 실시예 외에도, 도면 및 발명의 상세한 설명에 추가적인 실시예가 존재할 수 있다.
전술한 본원의 과제 해결 수단에 의하면, 원뿔형 블록체인 구조에 기초하여 블록체인 네트워크의 데이터를 분산 저장함으로써 스토리지 사용량을 낮출 수 있는 블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 장치 및 방법, 그리고 데이터 분산 저장 장치 및 방법을 제공할 수 있다.
본원은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 원뿔형 블록체인 구조에서 노드의 그룹핑을 통해 시간이 지남에 따라 증가하는 블록체인 네트워크의 데이터에 대한 용량 문제를 개선할 수 있는 블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 장치 및 방법, 그리고 데이터 분산 저장 장치 및 방법을 제공할 수 있다.
도 1은 본원의 일 실시예에 따른 블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 장치의 구성을 도시한 도면이다.
도 2는 본원의 일 실시예에 따른 블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 장치의 원뿔형 구조의 예를 도시한 도면이다.
도 3은 본원의 일 실시예에 따른 블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 장치에 의한 논리적 노드의 예를 도시한 도면이다.
도 4는 본원의 일 실시예에 따른 블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 장치의 각도별 원뿔형 구조의 예를 도시한 도면이다.
도 5는 본원의 일 실시예에 따른 블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 장치의 그룹핑 업데이트의 예를 도시한 도면이다.
도 6은 본원의 일 실시예에 따른 블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 방법의 흐름을 도시한 도면이다.
아래에서는 첨부한 도면을 참조하여 본원이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본원의 실시예를 상세히 설명한다. 그러나 본원은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본원을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본원 명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다.
본원 명세서 전체에서, 어떤 부재가 다른 부재 "상에", "상부에", "상단에", "하에", "하부에", "하단에" 위치하고 있다고 할 때, 이는 어떤 부재가 다른 부재에 접해 있는 경우뿐 아니라 두 부재 사이에 또 다른 부재가 존재하는 경우도 포함한다.
본원 명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함" 한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
도 1은 본원의 일 실시예에 따른 블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 장치의 구성을 도시한 도면이다.
활발하게 발생되는 트랜잭션과, 노드의 수가 많은 대규모 블록체인 네트워크에서는 시간이 지남에 따라 블록체인 데이터가 방대하게 증가한다. 이에 따라 일부 노드는 대용량 데이터를 데이터베이스 형태로 저장할 스토리지가 충분하지 않을 수도 있다. 풀노드는 서버 수준의 스토리지를 확보해야 블록체인 데이터 전체 시장을 저장할 수 있고, 풀노드로써 네트워크에 참여할 수 있기 때문에, 시간이 지남에 따라 데이터량이 증가하는 블록체인 네트워크의 특성에 의해, 블록체인을 구성하는 노드의 수는 점차 줄어들게 되며, 이는 보안성 약화로 이어질 수 있다. 이에 본원의 일 실시예 따른 노드 그룹핑 장치(100)는 블록체인 네트워크의 데이터 대용량화의 문제를 개선하고, 블록체인 데이터의 스토리지 사용량을 저감하여 스토리지의 권장 사양을 낮출 수 있도록 원뿔형 블록체인 구조와 노드의 그룹핑을 통한 데이터 분산 저장 방안을 제안한다.
도 1을 참조하면, 노드 그룹핑 장치(100)는 층수 산출부(110) 및 그룹핑부(120)를 포함할 수 있다. 층수 산출부(110)는 블록체인 네트워크의 총 데이터베이스 크기 및 원뿔형 블록체인 구조에 대하여 설정된 연속된 층 간의 파일 크기 차이에 기초하여, 원뿔형 블록체인 구조의 형성에 요구되는 층수를 산출할 수 있다. 블록체인 네트워크는 최초의 블록인 제네시스 블록으로부터 연결되는 각각의 블록체인 네트워크를 의미하며, 블록체인 네트워크의 총 데이터베이스 크기는 블록체인 네트워크 각각에 대한 전체 용량을 의미한다. 또한, 원뿔형 블록체인 구조는 블록으로 연결된 체인의 첫 블록(제네시스 블록과 연결되는 블록체인 네트워크의 첫번째 블록)이 원뿔의 꼭짓점부터 시작하여 나선형으로 원뿔을 감싸며 떨어지는 구조로써, 체인에 블록이 연결될수록 점차적으로 원의 반경이 커지며 원뿔형 블록체인 구조의 층수가 증가하는 구조를 나타낸다.
도 2는 본원의 일 실시예에 따른 블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 장치의 원뿔형 구조의 예를 도시한 도면이다.
도 2의 (a)는 블록으로 둘러싸인 원뿔형 구조를 도시한다. 도 2의 (a)를 참조하면, 원뿔형 구조의 각 층에는 복수개의 블록이 연결되고, 전술한 바와 같이 층이 증가할수록 원의 반경이 커지며, 해당 체인에 연결된 블록의 수가 증가한다. 또한, 도 2의 (b)는 서로 다른 각도(α, β)를 갖는 두 원뿔(x, y)의 겹쳐진 단면을 도시한다. 도 2의 (b)를 참조하면, a는 연속된 층간 파일 크기 차이를 나타낸다. 연속된 층간 파일 크기 차이가 커질수록 이에 비례하여 원뿔의 각도가 커지며, 층마다 연결되는 블록의 수가 증가하게 된다. 즉, 층이 증가할수록 각 층에 할당된 데이터량이 증가하게 된다. 후술하겠지만, 그룹핑부(120)는 각 층에 연결된 블록의 데이터를 저장하는 노드를 각 층별로 할당할 수 있다. 따라서, 각 층의 노드가 저장하는 데이터의 효율적인 안분을 위해서는 적절한 크기의 연속된 층간 파일 크기 차이가 설정될 필요가 있다.
원뿔형 블록체인 구조에서, 층 번호는 원뿔 형상의 꼭지점으로부터 일정한 간격을 두고 순차적으로 증가되도록 부여될 수 있다. 도 2를 참조하면, 원뿔형 블록체인 구조에서, 층 번호는 연속된 층간의 파일 크기 차이(a)의한 간격마다 부여될 수 있다. 즉, 연속된 층간의 파일 크기 차이(a)마다 층으로 구분될 수 있다. 또한, 각 층에 저장되는 파일의 크기는 각 층에 대응하는 원뿔 높이 부분의 둘레 길이에 비례하도록 설정될 수 있다. 다시 말해, 원뿔형 블록체인 구조에서 층 수가 커질수록 각 층을 둘러싸는 블록의 수가 증가하여 각 층에 저장되는 파일의 크기가 증가할 수 있다. 원뿔형 블록체인 구조에서 한 층을 둘러싸고 있는 블록들은 하나의 노드가 저장하게 된다. 따라서 원뿔형 블록체인 구조의 층 수만큼 해당 원뿔형 블록체인 구조에 할당되는 노드의 수가 결정될 수 있다.
예를 들어 원뿔형 블록체인 구조가 5개의 층으로 나뉠 경우, 5개의 노드가 각 층의 데이터를 분산 저장하며, 상기 5개의 노드는 한 그룹이 되어 전체 블록체인 네트워크 상에서 논리적인 하나의 노드 역할을 하게 된다. 5개의 노드가 묶여 논리적인 하나의 노드 역할을 수행하게 되면, 전체 블록체인 네트워크의 실질적인 노드 수는 1/5로 줄어들 수 있다. 현재 약 10000개의 노드 수를 가지는 비트코인과 이더리움으로 예를 들면, 5층으로 형성된 원뿔형 블록체인 구조를 적용하는 경우, 전체 노드수가 1/5로 줄어들게 된다. 이때, 5개의 각 노드가 데이터를 안분함으로써 전체 데이터의 일부만을 저장하기 때문에, 보안상의 우려가 있을 수 있으나, 10000개 중 1/5인 2000개의 노드(최상층인 5층에 할당된 노드)는 각 원뿔형 블록체인 구조에서 최대의 데이터를 저장하는 노드이므로, 충분한 보안성을 제공할 수 있다. 또한 높이가 증가함에 따라 밑면이 넓어지는 원뿔의 특성상 블록체인 데이터가 증가할수록 원뿔의 높이가 증가하는 속도는 더뎌진다. 이는 층이 갱신될 때마다 최상층의 노드가 저장해야 할 용량이 증가한다는 것이므로, 층의 개수는 서서히 증가할 수 있다. 따라서, 다수의 노드가 하나의 그룹으로 묶이는 현상을 방지할 수 있다.
도 3은 본원의 일 실시예에 따른 블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 장치에 의한 논리적 노드의 예를 도시한 도면이다.
도 3의 (a)는 종래의 블록체인 네트워크에서 각 노드가 블록을 저장하는 예를 도시하고, 도 3의 (b)는 본원의 일 실시예에 따른 노드 그룹핑 장치(100)에 의한 블록체인 네트워크에서 각 노드가 블록을 안분하여 저장하는 예를 도시한다. 도 3의 (a)를 참조하면, 종래의 블록체인 네트워크에서는 모든 노드(node 1~node 3)가 동일한 수의 블록(block 1~ block 84)을 각자의 머신에 데이터베이스 형태로 저장하고 있으나, 도 3의 (b)를 참조하면, 세개의 노드가 한 그룹으로 그룹핑되어 84개의 블록을 분산하여 저장한다. 도 3의 (b)에서 각 노드는 원뿔형 블록체인 구조에서 층별로 할당된 노드이며, 층수가 커질수록 저장하는 블록의 수가 증가하는 것을 확인할 수 있다. 하나의 원뿔형 블록체인 구조 내에서 그룹핑된 복수개의 노드 즉 노드 그룹은 전체 블록체인 네트워크에서 하나의 논리적 노드로 인식될 수 있다. 따라서 원뿔형 블록체인 구조에 포함된 노드들은 종래의 블록체인 네트워크에 포함된 노드보다 적은 용량의 스토리지를 사용하며, 노드가 모든 블록(예를 들어, block 1~ block 84)을 저장할 용량을 갖지 않더라도 논리적 노드로 인식되는 노드 그룹에 포함됨으로써, 보다 적은 용량으로도 블록체인 네트워크에 참여할 수 있다.
원뿔형 블록체인 구조 및 그룹핑에 대해 구체적으로 살펴보면, 블록체인의 Configure 파일 역할을 수행하는 제네시스 블록에 연결되는 최초의 블록을 중심으로, 그룹핑의 기준이 될 연속된 층 간의 파일 크기 차이(a)를 설정한다. 연속된 층 간의 파일 크기 차이는 사용자 입력에 기초하여 설정될 수 있다. 층수 산출부(110)는 하기의 수학식 1을 만족하는 가장 작은 정수인 n을 층수로 결정할 수 있다.
[수학식 1]
Figure 112019045616455-pat00001
여기서, S는 상기 블록체인 네트워크의 총 데이터베이스 크기이고, a는 상기 연속된 층 간의 파일 크기 차이이고, i는 원뿔형 블록체인 구조의 층 번호를 나타낸다. 예시적으로, 어떠한 블록체인 네트워크의 총 데이터베이스 크기가 300g이고, 연속된 층 간의 파일 크기 차이가 30g이고, 전체 노드 수가 8000개일 경우, 이 블록체인은 상기 수학식 1에 의해 4개의 층수가 산출되고, 4개의 층 각각에 30GB, 60GB, 90GB, 120GB 만큼의 블록 데이터로 둘러싸인 원뿔 구조를 가질 수 있다. 또한, 4개의 노드마다 논리적 노드로 그룹핑되어 실질적인 노드의 수는 2000개가 될 것이다. 연속된 층 간의 파일 크기 차이가 작을수록 층의 개수가 많아져 블록체인 네트워크의 실질적 노드 수가 감소하고, 연속된 층 간의 파일 크기 차이가 클수록 원뿔형 블록체인 구조에서 생성되는 층 수가 감소하여 총 데이터베이스를 효율적으로 분산시키지 못할 수 있다. 따라서, 블록체인 네트워크가 적용될 시스템의 종류에 따라 적절히 설정될 필요가 있다.
도 4는 본원의 일 실시예에 따른 블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 장치의 각도별 원뿔형 구조의 예를 도시한 도면이다.
도 4는 도2의 (b)에 도시된 서로 다른 각도(α, β)를 갖는 두 원뿔(x, y) 각각의 단면을 도시한 도면이다. 도 4를 참조하면, i층수의 α각을 갖는 x원뿔의 둘레는
Figure 112019045616455-pat00002
이고, i층수의 β각을 갖는 y원뿔의 둘레는
Figure 112019045616455-pat00003
로 나타낼 수 있다. 또한, 원뿔형 블록체인 구조에서 가장 큰 층의 블록들을 저장하는 노드는 원뿔의 각도에 상관없이 수학식 2를 통해 산출된 용량을 저장하게 된다.
[수학식 2]
Figure 112019045616455-pat00004
도 4를 참조하면, 동일한 용량의 블록체인 네트워크에 대해 서로 다른 각도의 원뿔형 블록체인 구조를 갖는다고 하더라도, 각 원뿔형 구조의 최상층에 할당된 노드는 동일한 용량의 블록체인 데이터를 저장하게 된다. 따라서, 블록체인 네트워크의 그룹핑에 참여 가능한 노드는 하기의 수학식 3을 고려하여 결정될 수 있다.
[수학식 3]
Figure 112019045616455-pat00005
상기 수학식 3은 블록체인 네트워크의 총 데이터베이스 크기(S) 중 가장 큰 층인 n층에 할당되는 데이터 크기를 의미한다. 또한, 블록체인 네트워크의 그룹핑에 참여 가능한 노드는 n층에 할당되는 데이터 크기를 n층에 속한 다른 노드들과 안분하여 커버 가능한 스토리지를 갖는 노드일 수 있다. 즉, 도 3의 (b)에 도시된 바와 같이, 총 데이터베이스 크기(S)를 n개의 노드가 안분하여 저장할 수 있도록, 각 층마다 안분된 데이터를 저장할 수 있는 크기 내지, 최대 최상층의 데이터를 저장할 수 있는 크기의 스토리지를 갖는 노드가 블록체인 네트워크의 그룹핑에 참여할 수 있다. 또한, 블록체인 네트워크에 포함된 전체 노드 중 적어도 일부는, 그룹핑에 참여하는 노드들일 수 있다. 또한, n층에 속한 노드의 개수는, 그룹핑에 참여하는 노드들의 개수를 상기 층수(n)로 나눈 값에 대응할 수 있다. 다시 말해, 원뿔형 블록체인 구조와 연계된 그룹핑에 참여 가능한 노드의 수는 원뿔형 블록체인 구조에서 형성된 층 수와 비례할 수 있다.
그룹핑부(120)는 전체 블록체인 네트워크에 포함된 전체 노드 중 적어도 일부를, 원뿔형 블록체인 구조와 연계된 노드 그룹마다 상기 층수에 대응하는 노드 개수만큼 노드가 할당되게 그룹핑할 수 있다. 그룹핑부(120)는 상기 수학식 1 및 수학식 3을 통해 결정된 원뿔형 블록체인 구조의 층 수와 원뿔형 블록체인 구조의 블록체인 네트워크에 참여 가능한 노드의 스토리지를 고려하여, 전체 블록체인 네트워크에 포함된 전체 노드 중 일부를 원뿔형 블록체인 구조의 각 층별로 노드를 할당할 수 있다. 또한, 그룹핑부(120)는 하나의 원뿔형 블록체인 구조의 층별로 할당된 복수의 노드를 전체 블록체인 네트워크 상에서 논리적 노드로 인식되는 하나의 노드 그룹으로 그룹핑할 수 있다. 그룹핑부(120)는 블록체인 네트워크에 포함된 노드에 그룹 ID를 부여할 수 있다. 즉, 각 원뿔형 블록체인 구조의 블록체인 네트워크 별로 그룹핑에 참여한 노드에는 소속된 그룹에 관한 ID가 부여될 수 있다. 또한, 전체 노드에는, 그룹핑에 참여하여 노드 그룹에 속한 노드인지 여부에 대한 그룹 플래그가 부여될 수 있다. 구체적으로, 원뿔형 블록체인 구조의 블록체인 네트워크에서 최초의 한 개의 층에서 블록 데이터 크기가 증가함에 따라 층의 개수가 2개로 증가하게 되면, 최초의 한 개의 층에 할당된 노드는 그룹핑부(120)의 제어에 의해 주변 노드로 그룹핑 메시지를 전파할 수 있다. 상기 그룹핑 메시지는 그룹핑 메시지를 송출한 노드(이하, 송신 노드)의 그룹 ID를 포함할 수 있다. 주변 노드 중 아직 그룹에 속해있지 않아 그룹 플래그가 0인 노드들은 상기 그룹핑 메시지를 수신하고, 송신 노드와 그룹핑을 시도하여 송신 노드의 그룹으로 그룹핑 될 수 있다.
도 5는 본원의 일 실시예에 따른 블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 장치의 그룹핑 업데이트의 예를 도시한 도면이다.
그룹핑부(120)는 블록체인 네트워크의 총 데이터베이스 크기의 증가에 대응하여, 기생성된 복수의 노드 그룹 중 적어도 일부의 층수를 기설정된 층수보다 증가시키는 방향으로 그룹핑을 업데이트할 수 있다. 블록체인 네트워크의 총 데이터베이스 크기가 증가하여 원뿔형 블록체인 구조의 최상층에 할당된 노드의 스토리지가 모두 소모되는 경우, 층수 산출부(110)는 새로운 최상층을 생성하고, 그룹핑부(120)는 새로운 최상층에 노드를 할당하여 업데이트를 수행할 수 있다. 구체적으로, 그룹핑부(120)는 기설정된 층수를 (N-1)라 하였을 때, (N-1)개의 노드를 포함하는 노드 그룹 N개를 하나의 단위로 묶어 N개의 노드를 포함하는 노드 그룹 (N-1)개로 재구성하는 형태로 업데이트를 수행할 수 있다. 도 5를 참조하여 n=4인 예를 중심으로 설명한다. 도 5의 (a)를 참조하면, 그룹핑부(120)는 블록체인 네트워크 내의 그룹핑 메시지 전파를 통해 상기 하나의 단위를 묶을 수 있다. 구체적으로, 그룹핑부(120)는P2P네트워크의 그룹핑 메시지 전파를 통해 n-1층의 노드 그룹. 즉, n-1개(3개)의 노드를 포함하는 노드 그룹(10)을 n개(4개) 수집하여 이를 하나의 단위로 묶을 수 있다. 도 5의 (b)를 참조하면, 그룹핑부(120)는 하나의 단위로 묶인 노드 그룹 중 어느 하나의 노드 그룹(11)을 무작위로 선정할 수 있다. 이후 도 5의 (c)를 참조하면, 그룹핑부(120)는 선정된 노드 그룹(11)에 포함된 n-1개(3개)의 노드들을 선정된 노드 그룹(11)을 제외한 나머지 n-1개(3개)의 노드 그룹으로 각각 이동시켜 나머지 노드 그룹이 n개의 노드를 포함하는 노드 그룹(12)이 되도록함으로써 업데이트를 완료할 수 있다. 또한, 그룹핑부(120)는 블록체인 네트워크의 총 데이터베이스 크기가 기설정된 층수에 대응하는 원뿔형 블록체인 구조로 커버되는 데이터 용량을 초과하기 전에 업데이트를 수행할 수 있다. 예시적으로, 그룹핑부(120)는 원뿔형 블록체인 구조의 최상층에 할당된 노드의 스토리지를 모두 소모하기 이전에 업데이트를 수행함으로써, 증가되는 블록체인 네트워크의 데이터량에 대응하여 사전에 저장공간을 확보할 수 있다.
전술한 바와 같이, 최상층의 노드는 해당 노드 그룹에서 가장 많은 데이터를 저장하도록 업데이트 되므로, 블록체인 네트워크가 대규모화 되고, 데이터의 크기도 대량화 되는 것과 반비례하여 각 노드 그룹의 최상층은 서서히 생성될 것이다. 따라서 노드 그룹이 재구성되는 업데이트는 빈번하게 발생되지 않을 수 있다.
도 6은 본원의 일 실시예에 따른 블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 방법의 흐름을 도시한 도면이다.
도 6에 도시된 블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 방법은 앞선 도1 내지 도 5를 통해 설명된 노드 그룹핑 장치(100)에 의하여 수행될 수 있다. 따라서 이하 생략된 내용이라고 하더라도 도 1 내지 도 5를 통해 노드 그룹핑 장치(100)에 대하여 설명된 내용은 도 6에도 동일하게 적용될 수 있다.
도 6을 참조하면, 단계 S610에서 층수 산출부(110)는 블록체인 네트워크의 총 데이터베이스 크기 및 원뿔형 블록체인 구조에 대하여 설정된 연속된 층 간의 파일 크기 차이에 기초하여, 원뿔형 블록체인 구조의 형성에 요구되는 층수를 산출할 수 있다. 원뿔형 블록체인 구조는 블록으로 연결된 체인의 첫 블록(제네시스 블록과 연결되는 블록체인 네트워크의 첫번째 블록)이 원뿔의 꼭짓점부터 시작하여 나선형으로 원뿔을 감싸며 떨어지는 구조로써, 체인에 블록이 연결될수록 점차적으로 원의 반경이 커지며 원뿔형 블록체인 구조의 층수가 증가하는 구조를 나타낸다. 상기 원뿔형 블록체인 구조에서, 층 번호는 원뿔 형상의 꼭지점으로부터 일정한 간격을 두고 순차적으로 증가되도록 부여될 수 있다. 또한, 각 층에 저장되는 파일의 크기는 각 층에 대응하는 원뿔 높이 부분의 둘레 길이에 비례하도록 설정될 수 있다. 다시 말해, 원뿔형 블록체인 구조에서 층 수가 커질수록 각 층을 둘러싸는 블록의 수가 증가하여 각 층에 저장되는 파일의 크기가 증가할 수 있다. 원뿔형 블록체인 구조에서 한 층을 둘러싸고 있는 블록들은 하나의 노드가 저장하게 된다. 따라서 원뿔형 블록체인 구조의 층 수만큼 해당 원뿔형 블록체인 구조에 할당되는 노드의 수가 결정될 수 있다.
예시적으로, 하나의 원뿔형 블록체인 구조 내에서 그룹핑된 복수개의 노드 즉 노드 그룹은 전체 블록체인 네트워크에서 하나의 논리적 노드로 인식될 수 있다. 따라서 원뿔형 블록체인 구조에 포함된 노드들은 종래의 블록체인 네트워크에 포함된 노드보다 더 작은 용량의 스토리지를 사용하며, 노드가 모든 블록을 저장할 용량을 갖지 않더라도 논리적 노드로 인식되는 노드 그룹에 포함됨으로써, 보다 적은 용량으로도 블록체인 네트워크에 참여할 수 있다.
층수 산출부(110)는 하기의 수학식 4를 만족하는 가장 작은 정수인 n을 층수로 결정할 수 있다.
[수학식 4]
Figure 112019045616455-pat00006
여기서, S는 상기 블록체인 네트워크의 총 데이터베이스 크기이고, a는 상기 연속된 층 간의 파일 크기 차이이고, i는 원뿔형 블록체인 구조의 층 번호를 나타낸다.
동일한 용량의 블록체인 네트워크에 대해 서로 다른 각도의 원뿔형 블록체인 구조를 갖는다고 하더라도, 각 원뿔형 구조의 최상층에 할당된 노드는 동일한 용량의 블록체인 데이터를 저장하게 된다. 따라서, 블록체인 네트워크의 그룹핑에 참여 가능한 노드는 하기의 수학식 5를 고려하여 결정될 수 있다.
[수학식 5]
Figure 112019045616455-pat00007
상기 수학식 5는 블록체인 네트워크의 총 데이터베이스 크기(S) 중 가장 큰 층인 n층에 할당되는 데이터 크기를 의미한다. 또한, 블록체인 네트워크의 그룹핑에 참여 가능한 노드는 n층에 할당되는 데이터 크기를 n층에 속한 다른 노드들과 안분하여 커버 가능한 스토리지를 갖는 노드일 수 있다. 즉, 총 데이터베이스 크기(S)를 n개의 노드가 안분하여 저장할 수 있도록, 각 층마다 안분된 데이터를 저장할 수 있는 크기 내지, 최대 최상층의 데이터를 저장할 수 있는 크기의 스토리지를 갖는 노드가 블록체인 네트워크의 그룹핑에 참여할 수 있다. 또한, 블록체인 네트워크에 포함된 전체 노드 중 적어도 일부는, 그룹핑에 참여하는 노드들일 수 있다. 또한, n층에 속한 노드의 개수는, 그룹핑에 참여하는 노드들의 개수를 상기 층수(n)로 나눈 값에 대응할 수 있다. 다시 말해, 원뿔형 블록체인 구조와 연계된 그룹핑에 참여 가능한 노드의 수는 원뿔형 블록체인 구조에서 형성된 층 수와 비례할 수 있다.
단계 S620에서 그룹핑부(120)는 전체 블록체인 네트워크에 포함된 전체 노드 중 적어도 일부를, 원뿔형 블록체인 구조와 연계된 노드 그룹마다 상기 층수에 대응하는 노드 개수만큼 노드가 할당되게 그룹핑할 수 있다. 그룹핑부(120)는 상기 수학식 4 및 수학식 5를 통해 결정된 원뿔형 블록체인 구조의 층 수와 원뿔형 블록체인 구조의 블록체인 네트워크에 참여 가능한 노드의 스토리지를 고려하여, 전체 블록체인 네트워크에 포함된 전체 노드 중 일부를 원뿔형 블록체인 구조의 각 층별로 노드를 할당할 수 있다. 또한, 그룹핑부(120)는 하나의 원뿔형 블록체인 구조의 층별로 할당된 복수의 노드를 전체 블록체인 네트워크 상에서 논리적 노드로 인식되는 하나의 노드 그룹으로 그룹핑할 수 있다. 그룹핑부(120)는 블록체인 네트워크에 포함된 노드에 그룹 ID를 부여할 수 있다. 즉, 각 원뿔형 블록체인 구조의 블록체인 네트워크 별로 그룹핑에 참여한 노드에는 소속된 그룹에 관한 ID가 부여될 수 있다. 또한, 전체 노드에는, 그룹핑에 참여하여 노드 그룹에 속한 노드인지 여부에 대한 그룹 플래그가 부여될 수 있다. 구체적으로, 원뿔형 블록체인 구조의 블록체인 네트워크에서 최초의 한 개의 층에서 블록 데이터 크기가 증가함에 따라 층의 개수가 2개로 증가하게 되면, 최초의 한 개의 층에 할당된 노드는 그룹핑부(120)의 제어에 의해 주변 노드로 그룹핑 메시지를 전파할 수 있다. 상기 그룹핑 메시지는 그룹핑 메시지를 송출한 노드(이하, 송신 노드)의 그룹 ID를 포함할 수 있다. 주변 노드 중 아직 그룹에 속해있지 않아 그룹 플래그가 0인 노드들은 상기 그룹핑 메시지를 수신하고, 송신 노드와 그룹핑을 시도하여 송신 노드의 그룹으로 그룹핑 될 수 있다.
단계 S630에서 그룹핑부(120)는 블록체인 네트워크의 총 데이터베이스 크기의 증가에 대응하여, 기생성된 복수의 노드 그룹 중 적어도 일부의 층수를 기설정된 층수보다 증가시키는 방향으로 그룹핑을 업데이트할 수 있다. 블록체인 네트워크의 총 데이터베이스 크기가 증가하여 원뿔형 블록체인 구조의 최상층에 할당된 노드의 스토리지가 모두 소모되는 경우, 층수 산출부(110)는 새로운 최상층을 생성하고, 그룹핑부(120)는 새로운 최상층에 노드를 할당하여 업데이트를 수행할 수 있다. 구체적으로, 그룹핑부(120)는 기설정된 층수를 (N-1)라 하였을 때, (N-1)개의 노드를 포함하는 노드 그룹 N개를 하나의 단위로 묶어 N개의 노드를 포함하는 노드 그룹 (N-1)개로 재구성하는 형태로 업데이트를 수행할 수 있다. 그룹핑부(120)는 블록체인 네트워크 내의 그룹핑 메시지 전파를 통해 상기 하나의 단위를 묶을 수 있다. 구체적으로, 그룹핑부(120)는P2P네트워크의 그룹핑 메시지 전파를 통해 n-1층의 노드 그룹. 즉, n-1개의 노드를 포함하는 노드 그룹(10)을 n개 수집하여 이를 하나의 단위로 묶을 수 있다. 또한, 그룹핑부(120)는 하나의 단위로 묶인 노드 그룹 중 어느 하나의 노드 그룹(11)을 무작위로 선정할 수 있다. 그룹핑부(120)는 선정된 노드 그룹(11)에 포함된 n-1개(3개)의 노드들을 선정된 노드 그룹(11)을 제외한 나머지 n-1개(3개)의 노드 그룹으로 각각 이동시켜 나머지 노드 그룹이 n개의 노드를 포함하는 노드 그룹(12)이 되도록함으로써 업데이트를 완료할 수 있다. 또한, 그룹핑부(120)는 블록체인 네트워크의 총 데이터베이스 크기가 기설정된 층수에 대응하는 원뿔형 블록체인 구조로 커버되는 데이터 용량을 초과하기 전에 업데이트를 수행할 수 있다. 예시적으로, 그룹핑부(120)는 원뿔형 블록체인 구조의 최상층에 할당된 노드의 스토리지를 모두 소모하기 이전에 업데이트를 수행함으로써, 증가되는 블록체인 네트워크의 데이터량에 대응하여 사전에 저장공간을 확보할 수 있다.
한편 본원은 상술한 본원의 일 실시예에 따른 노드 그룹핑 방법을 이용하는 데이터 분산 저장 방법을 제공할 수 있다. 구체적으로, 본원의 일 실시예에 따른 데이터 분산 저장 방법은, 본원의 일 살시예에 따른 노드 그룹핑 방법에 의한 노드 그룹핑 단계 및 그룹핑된 노드에 테이터를 분산 저장하는 단계를 포함할 수 있다. 여기서, 노드에 데이터를 저장하는 방식은 통상의 기술자에게 자명하므로 보다 구체적인 설명은 생략하기로 한다.
또한, 본원은 상술한 본원의 일 실시예에 따른 노드 그룹핑 장치를 포함하는 데이터 분산 저장 장치를 제공할 수 있다. 구체적으로, 본원의 일 실시예에 따른 데이터 분산 저장 장치는, 본원의 일 실시예에 따른 노드 그룹핑 장치(100) 및 그룹핑된 노드에 테이터를 분산 저장하는 저장 장치를 포함할 수 있다. 여기서, 노드에 데이터를 저장하는 방식은 통상의 기술자에게 자명하므로 보다 구체적인 설명은 생략하기로 한다.
본원의 일 실시 예에 따른, 블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 방법 및 노드 그룹핑 방법을 이용하는 데이터 분산 저장 방법은, 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
전술한 본원의 설명은 예시를 위한 것이며, 본원이 속하는 기술분야의 통상의 지식을 가진 자는 본원의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본원의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본원의 범위에 포함되는 것으로 해석되어야 한다.
10, 11, 12: 노드 그룹
100: 노드 그룹핑 장치
110: 층수 산출부
120: 그룹핑부

Claims (20)

  1. 블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 방법으로서,
    (a) 블록체인 네트워크의 총 데이터베이스 크기 및 원뿔형 블록체인 구조에 대하여 설정된 연속된 층 간의 파일 크기 차이에 기초하여, 상기 원뿔형 블록체인 구조의 형성에 요구되는 층수를 산출하는 단계; 및
    (b) 전체 블록체인 네트워크에 포함된 전체 노드 중 적어도 일부를, 원뿔형 블록체인 구조와 연계된 노드 그룹마다 상기 층수에 대응하는 노드 개수만큼 노드가 할당되게 그룹핑하는 단계를 포함하고,
    상기 노드 그룹은 상기 전체 블록체인 네트워크 상에서 하나의 논리적 노드로 인식되고,
    상기 (b) 단계에서, 상기 전체 노드에는 그룹핑에 참여하여 노드 그룹에 속한 노드인지 여부에 대한 그룹 플래그가 부여되고, 그룹핑에 참여한 노드에는 소속된 그룹에 관한 ID가 부여되는 것인, 노드 그룹핑 방법.
  2. 제1항에 있어서,
    상기 원뿔형 블록체인 구조에서, 층 번호는 원뿔 형상의 꼭지점으로부터 일정한 간격을 두고 순차적으로 증가되도록 부여되고, 각 층에 저장되는 파일의 크기는 각 층에 대응하는 원뿔 높이 부분의 둘레 길이에 비례하도록 설정되는 것인, 노드 그룹핑 방법.
  3. 제1항에 있어서,
    상기 (a) 단계에서,
    하기의 식 1을 만족하는 가장 작은 정수인 n이 상기 층수로 결정되고,
    [식 1]
    Figure 112019045616455-pat00008

    여기서, S는 상기 블록체인 네트워크의 총 데이터베이스 크기이고, a는 상기 연속된 층 간의 파일 크기 차이이고, i는 원뿔형 블록체인 구조의 층 번호인 것인, 노드 그룹핑 방법.
  4. 제3항에 있어서,
    상기 블록체인 네트워크의 그룹핑에 참여 가능한 노드는 하기의 식 2를 고려하여 결정되되,
    [식 2]
    Figure 112019045616455-pat00009

    상기 식 2는 상기 블록체인 네트워크의 총 데이터베이스 크기(S) 중 가장 큰 층인 n층에 할당되는 데이터 크기를 의미하고,
    상기 참여 가능한 노드는 상기 n층에 할당되는 데이터 크기를 상기 n층에 속한 다른 노드들과 안분하여 커버 가능한 스토리지를 갖는 노드인 것인, 노드 그룹핑 방법.
  5. 제4항에 있어서,
    상기 블록체인 네트워크에 포함된 전체 노드 중 적어도 일부는, 그룹핑에 참여하는 노드들이고,
    상기 n층에 속한 노드의 개수는, 그룹핑에 참여하는 노드들의 개수를 상기 층수(n)로 나눈 값에 대응하는 것인, 노드 그룹핑 방법.
  6. 제1항에 있어서,
    (c) 상기 블록체인 네트워크의 총 데이터베이스 크기의 증가에 대응하여, 상기 (b) 단계를 통해 기생성된 복수의 노드 그룹 중 적어도 일부의 층수를 기설정된 층수보다 증가시키는 방향으로 그룹핑을 업데이트하는 단계를 더 포함하는 노드 그룹핑 방법.
  7. 제6항에 있어서,
    상기 (c) 단계는, 상기 기설정된 층수를 (N-1)라 하였을 때, (N-1)개의 노드를 포함하는 노드 그룹 N개를 하나의 단위로 묶어 N개의 노드를 포함하는 노드 그룹 (N-1)개로 재구성하는 형태로 수행되는 것인, 노드 그룹핑 방법.
  8. 제7항에 있어서,
    상기 (c) 단계는, 상기 블록체인 네트워크 내의 그룹핑 메시지 전파를 통해 상기 하나의 단위를 묶는 것인, 노드 그룹핑 방법.
  9. 제6항에 있어서,
    상기 (c) 단계는, 상기 블록체인 네트워크의 총 데이터베이스 크기가 기설정된 층수에 대응하는 원뿔형 블록체인 구조로 커버되는 데이터 용량을 초과하기 전에 수행되는 것인, 노드 그룹핑 방법.
  10. 삭제
  11. 블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 장치로서,
    블록체인 네트워크의 총 데이터베이스 크기 및 원뿔형 블록체인 구조에 대하여 설정된 연속된 층 간의 파일 크기 차이에 기초하여, 상기 원뿔형 블록체인 구조의 형성에 요구되는 층수를 산출하는 층수 산출부; 및
    전체 블록체인 네트워크에 포함된 전체 노드 중 적어도 일부를, 원뿔형 블록체인 구조와 연계된 노드 그룹마다 상기 층수에 대응하는 노드 개수만큼 노드가 할당되게 그룹핑하는 그룹핑부를 포함하고,
    상기 노드 그룹은 상기 전체 블록체인 네트워크 상에서 하나의 논리적 노드로 인식되고,
    상기 전체 노드에는 그룹핑에 참여하여 노드 그룹에 속한 노드인지 여부에 대한 그룹 플래그가 부여되고, 그룹핑에 참여한 노드에는 소속된 그룹에 관한 ID가 부여되는 것인, 노드 그룹핑 장치.
  12. 제11항에 있어서,
    상기 원뿔형 블록체인 구조에서, 층 번호는 원뿔 형상의 꼭지점으로부터 일정한 간격을 두고 순차적으로 증가되도록 부여되고, 각 층에 저장되는 파일의 크기는 각 층에 대응하는 원뿔 높이 부분의 둘레 길이에 비례하도록 설정되는 것인, 노드 그룹핑 장치.
  13. 제11항에 있어서,
    상기 층수 산출부는,
    하기의 식 3을 만족하는 가장 작은 정수인 n을 상기 층수로 결정하고,
    [식 3]
    Figure 112019045616455-pat00010

    여기서, S는 상기 블록체인 네트워크의 총 데이터베이스 크기이고, a는 상기 연속된 층 간의 파일 크기 차이이고, i는 원뿔형 블록체인 구조의 층 번호인 것인, 노드 그룹핑 장치.
  14. 제13항에 있어서,
    상기 블록체인 네트워크의 그룹핑에 참여 가능한 노드는 하기의 식 4를 고려하여 결정되되,
    [식 4]
    Figure 112019045616455-pat00011

    상기 식 4는 상기 블록체인 네트워크의 총 데이터베이스 크기(S) 중 가장 큰 층인 n층에 할당되는 데이터 크기를 의미하고,
    상기 참여 가능한 노드는 상기 n층에 할당되는 데이터 크기를 상기 n층에 속한 다른 노드들과 안분하여 커버 가능한 스토리지를 갖는 노드인 것인, 노드 그룹핑 장치.
  15. 제14항에 있어서,
    상기 블록체인 네트워크에 포함된 전체 노드 중 적어도 일부는, 그룹핑에 참여하는 노드들이고,
    상기 n층에 속한 노드의 개수는, 그룹핑에 참여하는 노드들의 개수를 상기 층수(n)로 나눈 값에 대응하는 것인, 노드 그룹핑 장치.
  16. 제11항에 있어서,
    상기 그룹핑부는,
    상기 블록체인 네트워크의 총 데이터베이스 크기의 증가에 대응하여, 기생성된 복수의 노드 그룹 중 적어도 일부의 층수를 기설정된 층수보다 증가시키는 방향으로 그룹핑을 업데이트 하는 것인, 노드 그룹핑 장치.
  17. 제16항에 있어서,
    상기 그룹핑부는,
    상기 기설정된 층수를 (N-1)라 하였을 때, (N-1)개의 노드를 포함하는 노드 그룹 N개를 하나의 단위로 묶어 N개의 노드를 포함하는 노드 그룹 (N-1)개로 재구성하는 형태로 상기 업데이트를 수행하는 것인, 노드 그룹핑 장치.
  18. 삭제
  19. 노드 그룹핑 방법을 이용하는 데이터 분산 저장 방법에 있어서,
    제1항에 따른 노드 그룹핑 방법에 의한 노드 그룹핑 단계; 및
    그룹핑된 노드에 데이터를 분산 저장하는 단계를 포함하는 데이터 분산 저장 방법.
  20. 노드 그룹핑 장치를 이용하는 데이터 분산 저장 장치에 있어서,
    제11항에 따른 노드 그룹핑 장치 및;
    그룹핑된 노드에 데이터를 분산 저장하는 저장 장치를 포함하는 데이터 분산 저장 장치.
KR1020190052044A 2019-05-03 2019-05-03 블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 장치 및 방법, 그리고 데이터 분산 저장 장치 및 방법 KR102201389B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190052044A KR102201389B1 (ko) 2019-05-03 2019-05-03 블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 장치 및 방법, 그리고 데이터 분산 저장 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190052044A KR102201389B1 (ko) 2019-05-03 2019-05-03 블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 장치 및 방법, 그리고 데이터 분산 저장 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20200127600A KR20200127600A (ko) 2020-11-11
KR102201389B1 true KR102201389B1 (ko) 2021-01-11

Family

ID=73451627

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190052044A KR102201389B1 (ko) 2019-05-03 2019-05-03 블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 장치 및 방법, 그리고 데이터 분산 저장 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102201389B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114553896A (zh) * 2020-11-25 2022-05-27 富士通株式会社 信息处理系统、信息处理方法及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101637233B1 (ko) * 2014-12-31 2016-07-08 주식회사 시큐아이 트리 구조를 3차원의 형식으로 변환하기 위한 데이터 처리 방법 및 이를 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록매체
US20180323974A1 (en) 2017-05-03 2018-11-08 International Business Machines Corporation Optimal data storage configuration in a blockchain
US20190081793A1 (en) * 2017-09-12 2019-03-14 Kadena, LLC Parallel-chain architecture for blockchain systems

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190009958A (ko) * 2017-07-20 2019-01-30 주식회사 더블체인 확장형 블록체인 시스템 및 블록체인 확장방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101637233B1 (ko) * 2014-12-31 2016-07-08 주식회사 시큐아이 트리 구조를 3차원의 형식으로 변환하기 위한 데이터 처리 방법 및 이를 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록매체
US20180323974A1 (en) 2017-05-03 2018-11-08 International Business Machines Corporation Optimal data storage configuration in a blockchain
US20190081793A1 (en) * 2017-09-12 2019-03-14 Kadena, LLC Parallel-chain architecture for blockchain systems

Also Published As

Publication number Publication date
KR20200127600A (ko) 2020-11-11

Similar Documents

Publication Publication Date Title
JP6891961B2 (ja) ネットワーク制御システム、方法およびプログラム
CN103036927A (zh) 智能交通控制方法、装置与系统
CN108519917A (zh) 一种资源池分配方法和装置
CN103916327B (zh) 一种hp2p网络负载平衡的方法
CN110109756A (zh) 一种网络靶场构建方法、系统及存储介质
KR102201389B1 (ko) 블록체인 데이터의 스토리지 사용량 감소를 위한 노드 그룹핑 장치 및 방법, 그리고 데이터 분산 저장 장치 및 방법
CN109886509A (zh) 一种移动多汇聚节点路径规划方法、系统及电子设备
JP2023536693A (ja) 階層マッピングに基づくCephストレージシステムの自動均等化ストレージ方法
CN105975345B (zh) 一种基于分布式内存的视频帧数据动态均衡存储管理方法
CN104348881A (zh) 云管理平台中的用户资源划分方法与装置
CN107589992A (zh) 一种基于群体智能的容器化应用负载调度方法
CN109271257A (zh) 一种虚拟机迁移部署的方法及设备
CN105426255B (zh) Hadoop大数据平台中基于网络I/O代价评估的ReduceTask数据本地性调度方法
KR20160121380A (ko) 토러스 네트워크를 이용하는 분산 파일 시스템 및 토러스 네트워크를 이용하는 분산 파일 시스템의 구성 및 운영 방법
CN110935169A (zh) 虚拟对象的控制方法、信息显示方法、装置、设备及介质
CN102375893A (zh) 一种分布式文件系统及其建立副本的方法
CN103997515A (zh) 一种分布式云中计算中心选择方法及其应用
CN115878729B (zh) 一种基于联盟链的节点区块存储分配优化方法及系统
US10484249B1 (en) Dynamic distribution of simulation load
CN104363175A (zh) 一种资源表构建方法和装置
CN113713381B (zh) 对象管理方法、装置、设备、存储介质及系统
CN107197039A (zh) 一种基于cdn的paas平台服务包分发方法及系统
CN107908372B (zh) 一种异地异构的多融合存储方法
CN105323320B (zh) 一种内容分发的方法及装置
CN102624622B (zh) 基于多级转发的网络视频的路由计算方法和装置

Legal Events

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