KR20190143115A - 블록체인 기반 데이터 관리 방법 - Google Patents

블록체인 기반 데이터 관리 방법 Download PDF

Info

Publication number
KR20190143115A
KR20190143115A KR1020180070667A KR20180070667A KR20190143115A KR 20190143115 A KR20190143115 A KR 20190143115A KR 1020180070667 A KR1020180070667 A KR 1020180070667A KR 20180070667 A KR20180070667 A KR 20180070667A KR 20190143115 A KR20190143115 A KR 20190143115A
Authority
KR
South Korea
Prior art keywords
block
sub
blockchain
subblock
data management
Prior art date
Application number
KR1020180070667A
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 KR1020180070667A priority Critical patent/KR20190143115A/ko
Publication of KR20190143115A publication Critical patent/KR20190143115A/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/1048Departure or maintenance mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

블록체인 기반 데이터 관리 방법이 제공된다. 블록체인 노드에 의해 수행되는 본 발명의 일 실시예에 따른 블록체인 기반데이터 관리 방법은 제1 서브 블록 및 제2 서브 블록을 생성하는 단계, 상기 제1 서브 블록 및 상기 제2 서브 블록을 포함하는 제1 블록을 생성하는 단계 및 상기 제1 블록을 블록체인 네트워크 상에 전파하는 단계를 포함할 수 있다. 이때, 상기 제1 서브 블록은 상기 제2 서브 블록을 가리키는 내부 링크를 포함할 수 있다.

Description

블록체인 기반 데이터 관리 방법{METHOD FOR MANAGING DATA BASED ON BLOCKCHAIN}
본 발명은 블록체인 기반 데이터 관리 방법에 관한 것이다. 보다 자세하게는, 블록체인 기술의 활용성을 증대시키기 위해 고안된 블록체인 기반의 데이터 관리 방법에 관한 것이다.
블록체인(blockchain) 기술은 지속적으로 증가하는 데이터를 특정 단위의 블록에 기록하고, P2P(peer-to-peer) 네트워크를 구성하는 각각의 블록체인 노드들이 블록을 체인 형태의 자료 구조로 관리하는 데이터 관리 기술이다. 블록체인 기술은 중앙 서버의 개입 없이 분산된 환경에서 데이터의 무결성 및 보안성을 보장할 수 있다는 장점으로 인해, 사회 전반적으로 큰 관심을 받고 있다.
지금까지 제안된 블록체인 플랫폼에서 이용되는 블록체인의 구조는 도 1에 도시된 바와 같이 단일 블록이 체인 형태로 연결된 구조이며, 통상적으로 각각의 블록에는 하나의 서비스에 관한 데이터가 저장된다. 따라서, 다양한 서비스에 블록체인 기술을 접목하는 경우, 각 서비스 별(또는 용도 별)로 별도의 블록체인 플랫폼이 구축되어야 하고, 이는 블록체인 기술의 효율성 및 활용성을 떨어뜨리는 주된 요인이 된다. 즉, 기존의 블록체인 구조를 다수의 서비스 또는 서로 다른 유형의 데이터가 공존하는 환경에 그대로 적용하는 것은 비효율적이다.
특히, 지속적으로 새로운 서비스가 도입되는 현대의 산업 구조를 고려할 때, 새로운 서비스가 추가될 때마다 별도의 블록체인 플랫폼을 구축하는 것은 비효율적이다.
따라서, 블록체인 기술의 효용성 및 활용성을 증대시키기 위해, 새로운 블록체인 구조에 기반한 유연한 데이터 관리 방법이 요구된다.
한국공개특허 제10-2018-0029695호 (2018.03.21일 공개)
본 발명이 해결하고자 하는 기술적 과제는, 블록체인 기술의 효용성 및 활용성을 증대시키기 위해 새로운 구조를 갖는 블록체인을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는, 새로운 구조를 갖는 블록체인을 이용하여 데이터를 관리하는 방법을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따른 블록체인 기반 데이터 관리 방법은, 블록체인 노드에서 수행되는 블록체인 기반 데이터 관리 방법에 있어서, 제1 서브 블록 및 제2 서브 블록을 생성하는 단계, 상기 제1 서브 블록 및 상기 제2 서브 블록을 포함하는 제1 블록을 생성하는 단계 및 상기 제1 블록을 블록체인 네트워크 상에 전파하는 단계를 포함하되, 상기 제1 서브 블록은 상기 제2 서브 블록을 가리키는 내부 링크를 포함할 수 있다.
일 실시예에서, 상기 제1 서브 블록에는 제1 타입의 데이터가 기록되고, 상기 제2 서브 블록에는 제2 타입의 데이터가 기록될 수 있다.
일 실시예에서, 상기 제1 블록은 다면체를 구성하는 복수의 서브 블록을 포함하되, 상기 제1 서브 블록은 상기 다면체에서 상기 제1 서브 블록에 인접한 서브 블록에 대한 내부 링크를 포함할 수 있다.
일 실시예에서, 상기 제1 서브 블록은 상기 제1 블록의 이전 블록을 가리키는 제1 외부 링크를 더 포함하고, 상기 제2 서브 블록은 상기 이전 블록을 가리키는 제2 외부 링크를 포함하되, 상기 제1 외부 링크는 상기 이전 블록에 포함된 복수의 서브 블록 중에서 상기 제1 서브 블록에 대응되는 제3 서브 블록을 가리키고, 상기 제2 외부 링크는 상기 복수의 서브 블록 중에서 상기 제2 서브 블록에 대응되는 제4 서브 블록을 가리킬 수 있다.
일 실시예에서, 상기 제1 서브 블록에 제1 데이터를 기록하는 단계 및 상기 제2 서브 블록에 제2 데이터를 기록하는 단계를 더 포함하되, 상기 제1 블록을 생성하는 단계는, 상기 제1 서브 블록 및 상기 제2 서브 블록 중에서 어느 하나의 서브 블록에 데이터가 임계치 이상 기록되었다는 판정에 응답하여, 상기 제1 블록을 생성하는 단계를 포함할 수 있다.
상술한 기술적 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 블록체인 기반 데이터 관리 방법은, 블록체인 노드에서 수행되는 블록체인 기반 데이터 관리 방법에 있어서, 블록체인 네트워크 상에 전파되는 제1 블록을 수신하되, 상기 제1 블록은 제1 서브 블록 및 제2 서브 블록을 포함하는 것인, 단계 및 블록체인에 상기 제1 블록을 추가하는 단계를 포함하되, 상기 제1 서브 블록은 상기 제2 서브 블록을 가리키는 내부 링크를 포함할 수 있다.
일 실시예에서, 상기 제1 서브 블록에 데이터가 기록되어 있는지 여부를 판정하는 단계 및 상기 데이터가 기록되어 있지 않다는 판정에 응답하여, 상기 제1 서브 블록을 마킹하는 단계를 더 포함할 수 있다.
일 실시예에서, 제3 서브 블록 및 제4 서브 블록을 포함하는 제2 블록을 수신하는 단계 및 상기 제2 블록을 상기 제1 블록에 연결하는 단계를 더 포함하되, 상기 제1 서브 블록은 상기 제1 블록의 이전 블록을 가리키는 제1 외부 링크를 포함하고, 상기 제3 서브 블록은 상기 제1 서브 블록을 가리키는 제2 외부 링크를 포함하며, 상기 연결하는 단계는, 상기 제1 외부 링크를 이용하여, 상기 제2 외부 링크가 상기 이전 블록을 가리키도록 갱신하는 단계를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 또 다른 실시예에 따른 블록체인 노드는, 프로세서, 네트워크 인터페이스 및 상기 프로세서에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 포함하되, 상기 하나 이상의 프로그램들은, 제1 서브 블록 및 제2 서브 블록을 생성하는 동작, 상기 제1 서브 블록 및 상기 제2 서브 블록을 포함하는 제1 블록을 생성하는 동작 및 상기 제1 블록을 블록체인 네트워크 상에 전파하는 동작을 수행하도록 하는 인스트럭션들(instructions)을 포함하고, 상기 제1 서브 블록은 상기 제2 서브 블록을 가리키는 내부 링크를 포함할 수 있다.
상술한 기술적 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따른 컴퓨터 프로그램은, 컴퓨팅 장치와 결합되어, 제1 서브 블록 및 제2 서브 블록을 생성하는 단계, 상기 제1 서브 블록 및 상기 제2 서브 블록을 포함하는 제1 블록을 생성하는 단계 및 상기 제1 블록을 블록체인 네트워크 상에 전파하는 단계를 실행시키기 위하여 컴퓨터로 판독가능한 기록매체에 저장될 수 있다. 이때, 상기 제1 서브 블록은 상기 제2 서브 블록을 가리키는 내부 링크를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 또 다른 실시예에 따른 블록체인 노드는, 프로세서, 네트워크 인터페이스 및 상기 프로세서에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 포함하되, 상기 하나 이상의 프로그램들은, 블록체인 네트워크 상에 전파되는 제1 블록을 수신하되, 상기 제1 블록은 제1 서브 블록 및 제2 서브 블록을 포함하는 것인, 동작 및 블록체인에 상기 제1 블록을 추가하는 동작을 수행하도록 하는 인스트럭션들(instructions)을 포함하되, 상기 제1 서브 블록은 상기 제2 서브 블록을 가리키는 내부 링크를 포함할 수 있다.
상술한 기술적 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따른 컴퓨터 프로그램은, 컴퓨팅 장치와 결합되어, 블록체인 네트워크 상에 전파되는 제1 블록을 수신하되, 상기 제1 블록은 제1 서브 블록 및 제2 서브 블록을 포함하는 것인, 단계 및 블록체인에 상기 제1 블록을 추가하는 단계를 실행시키기 위하여 컴퓨터로 판독가능한 기록매체에 저장될 수 있다. 이때, 상기 제1 서브 블록은 상기 제2 서브 블록을 가리키는 내부 링크를 포함할 수 있다.
도 1은 단일 블록 구조를 갖는 종래의 블록체인을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 블록체인 기반 데이터 관리 시스템의 구성도이다.
도 3은 본 발명의 몇몇 실시예에 따른 멀티 블록 구조를 갖는 블록체인의 기본 개념을 설명하기 위한 도면이다.
도 4 및 도 5는 본 발명의 제1 실시예에 따른 멀티 블록 구조를 갖는 블록체인을 설명하기 위한 도면이다.
도 6 및 도 7은 본 발명의 제2 실시예에 따른 멀티 블록 구조를 갖는 블록체인을 설명하기 위한 도면이다.
도 8 및 도 9는 본 발명의 제2 실시예에 따른 블록체인에서 서브 블록의 데이터 구조와 종래의 블록체인을 구성하는 단위 블록의 데이터 구조를 비교 설명하기 위한 도면이다.
도 10은 본 발명의 제2 실시예에 따른 블록체인에서 블록 간의 링크 구조를 설명하기 위한 도면이다.
도 11은 본 발명의 제2 실시예에 따른 블록체인의 활용 예를 설명하기 위한 도면이다.
도 12는 본 발명의 일 실시예에 따른 블록체인 노드를 나타내는 하드웨어 구성도이다.
도 13은 본 발명의 일 실시예에 따른 블록 생성 방법을 나타내는 흐름도이다.
도 14는 본 발명의 일 실시예에 따른 블록체인 갱신 방법을 나타내는 흐름도이다.
도 15 내지 도 17은 본 발명의 몇몇 실시예에 따른 블록 생성 방법 및 블록체인 갱신 방법을 부연 설명하기 위한 예시도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
본 명세서에 대한 설명에 앞서, 본 명세서에서 사용되는 몇몇 용어들에 대하여 명확하게 하기로 한다.
본 명세서에서, 블록체인(blockchain) 또는 블록체인 데이터란 블록체인 네트워크를 구성하는 각각의 블록체인 노드가 유지하는 데이터로, 적어도 하나의 블록이 체인 형태의 자료 구조로 구성되는 데이터를 가리킨다. 블록체인 시스템에서, 모든 블록체인 노드는 동일한 블록체인 데이터를 유지한다.
본 명세서에서, 블록체인 네트워크(blockchain network)란, 블록체인 알고리즘(또는 프로토콜)에 따라 동작하는 복수의 블록체인 노드로 구성된 P2P(peer-to-peer) 구조의 네트워크를 의미한다.
본 명세서에서, 블록체인 노드(blockchain node)란, 블록체인 네트워크를 구성하고 블록체인 알고리즘(또는 프로토콜)에 따라 동작하는 컴퓨팅 노드를 의미한다. 상기 컴퓨팅 노드는 물리적 장치로 구현될 수 있으나, 가상 머신(virtual machine)과 같이 논리적 장치로 구현될 수도 있다. 상기 컴퓨팅 노드가 가상 머신으로 구현되는 경우, 하나의 물리적 컴퓨팅 장치에 복수의 블록체인 노드가 포함될 수도 있다. 상기 블록체인 노드가 물리적 컴퓨팅 장치로 구현된 예는 도 12를 참조하도록 한다.
본 명세서에서, 인스트럭션(instruction)이란, 기능을 기준으로 묶인 일련의 명령어들로서 컴퓨터 프로그램의 구성 요소이자 프로세서(processor)에 의해 실행되는 것을 가리킨다.
이하, 본 발명의 몇몇 실시예들에 대하여 첨부된 도면에 따라 상세하게 설명한다.
도 2는 본 발명의 일 실시예에 따른 블록체인 기반 데이터 관리 시스템의 구성도이다.
도 2를 참조하면, 상기 블록체인 기반 데이터 관리 시스템은 복수의 서비스 제공 서버(300a 내지 300n)와 블록체인 노드(100)를 포함하는 블록체인 네트워크(200)를 포함할 수 있다. 단, 이는 본 발명의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 구성 요소가 추가되거나 삭제될 수 있음은 물론이다. 또한, 도 2에 도시된 데이터 관리 시스템의 각각의 구성 요소들은 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 적어도 하나의 구성 요소가 실제 물리적 환경에서는 서로 통합되는 형태로 구현될 수도 있음에 유의한다. 예를 들어, 적어도 하나의 서비스 제공 서버(300a, 300b 등)와 적어도 하나의 블록체인 노드(100)는 동일한 물리적 컴퓨팅 장치 내의 서로 다른 로직(logic)의 형태로 구현될 수도 있다.
상기 블록체인 기반 데이터 관리 시스템에서, 서비스 제공 서버(300a 내지 300n)는 클라이언트에게 소정의 서비스를 제공하는 컴퓨팅 장치이다. 상기 컴퓨팅 장치는, 노트북, 데스크톱(desktop), 랩탑(laptop) 등이 될 수 있으나, 이에 국한되는 것은 아니며 연산 수단 및 통신 수단이 구비된 모든 종류의 장치를 포함할 수 있다.
도 2에 도시된 바와 같이, 각각의 서비스 제공 서버(300a 내지 300n)는 공유된 블록체인 네트워크(200)을 통해 특정 서비스에 관한 데이터를 관리하거나, 트랜잭션 처리 서비스를 제공할 수 있다.
상기 블록체인 기반 데이터 관리 시스템에서, 블록체인 네트워크(200)는 복수의 블록체인 노드(100)에 의해 구성되는 P2P 구조의 네트워크이다. 블록체인 네트워크(200)는 분산된 환경에서 블록체인 기반 데이터 관리 서비스를 제공하며, 네트워크 전반에 걸친 합의 프로세스를 통해 블록체인에 기록되는 데이터의 무결성 및 보안성을 보장할 수 있다.
본 발명의 몇몇 실시예에 따르면, 블록체인 네트워크(200)는 멀티 블록 구조를 갖는 블록체인을 이용하여 다수의 서비스 제공 서버(300a 내지 300n)에 대한 통합 데이터 관리 서비스를 제공한다. 멀티 블록 구조를 갖는 블록체인은 하나의 단위 블록이 다수 개의 블록(이하, "서브 블록"으로 명명하도록 함)으로 구성된 블록체인을 의미한다. 본 실시예에서, 블록체인 노드(100)는 각각의 서비스 제공 서버(300a 내지 300n)와 연관된 데이터를 대응되는 서브 블록에 저장할 수 있다. 예를 들어, 서비스 제공 서버(300a)와 연관된 데이터는 각 블록의 첫번째 서브 블록에 저장되고, 서비스 제공 서버(300b)와 연관된 데이터는 각 블록의 두번째 서브 블록에 저장될 수 있다. 따라서, 단일 블록체인을 이용하여 다수의 서비스에 관한 통합 데이터 관리 서비스가 제공될 수 있으며, 각 서비스 별로 별도의 블록체인 플랫폼이 구축될 필요가 없다.
전술한 실시예에 따르면, 블록체인 플랫폼 구축에 소요되는 비용이 절감될 수 있고, 단일 블록체인 플랫폼을 통해 다수의 서비스에 대한 데이터 관리 서비스가 제공될 수 있기 때문에, 블록체인 기술의 활용성이 크게 향상될 수 있다. 아울러, 새로운 서비스 제공 서버(미도시)가 추가되더라도, 블록 내에 이용중이지 않은 서브 블록을 이용하여 즉각적인 데이터 관리 서비스가 제공될 수 있다.
상기 멀티 블록 구조를 갖는 블록체인과 상기 블록체인 기반의 데이터 관리 방법에 대한 자세한 설명은 도 3 이하의 도면을 참조하여 상세하게 설명하도록 한다.
블록체인 노드(100)는 블록체인 알고리즘(또는 프로토콜)에 따라 동작하며 동일한 블록체인을 유지하고 관리하는 컴퓨팅 노드이다. 상기 컴퓨팅 노드는 물리적 컴퓨팅 장치로 구현될 수 있고, 가상 머신(virtual machine)과 같은 논리적 컴퓨팅 장치로 구현될 수도 있다. 상기 물리적 컴퓨팅 장치는, 노트북, 데스크톱(desktop), 랩탑(laptop) 등이 될 수 있으나, 이에 국한되는 것은 아니며 연산 수단 및 통신 수단이 구비된 모든 종류의 장치를 포함할 수 있다. 블록체인 노드(100)가 물리적 컴퓨팅 장치로 구현된 예에 대한 설명은 도 12를 참조하여 후술하도록 한다.
한편, 도 2에는 도시되어 있지 않으나, 상기 블록체인 기반 데이터 관리 시스템은 블록체인 관리 장치(미도시)를 더 포함하도록 구성될 수 있다. 블록체인 관리 장치(미도시)는 현재 이용 중인 서브 블록의 정보, 현재 이용 중이지 않은 서브 블록의 정보 등을 관리한다. 또한, 블록체인 관리 장치(미도시)는 이용 중이지 않은 서브 블록을 특정 서비스 제공 서버에게 할당하는 등의 관리 기능을 수행할 수 있다.
도 2에 도시된 데이터 관리 시스템의 각 구성 요소(100, 300)는 네트워크를 통해 통신할 수 있다. 여기서, 상기 네트워크는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 이동 통신망(mobile radio communication network), Wibro(Wireless Broadband Internet) 등과 같은 모든 종류의 유/무선 네트워크로 구현될 수 있다.
지금까지 도 2을 참조하여 본 발명의 일 실시예에 따른 블록체인 기반 데이터 관리 시스템에 대하여 설명하였다. 다음으로, 본 발명의 몇몇 실시예들에 따른 멀티 블록 구조를 갖는 블록체인의 데이터 구조에 대하여 도 3 내지 도 11을 참조하여 설명한다.
먼저 도 3을 참조하여 본 발명의 실시예에 따른 멀티 블록 구조를 갖는 블록체인의 기본 개념에 대하여 간략하게 살펴본다.
도 3을 참조하면, 멀티 블록 구조를 갖는 블록체인의 연결 구조는 기존 블록체인과 유사하다. 즉, 본 발명의 실시예에 따른 블록체인은 복수의 단위 블록(11, 12)이 체인 형태로 연결된 구조를 갖는다. 그러나, 각 단위 블록(11, 12)이 복수의 서브 블록으로 구성된다는 점에서, 종래의 블록체인과 큰 차이가 있다. 예를 들어, 단위 블록(11)은 n개의 서브 블록(11-1 내지 11-n)으로 구성되고, 단위 블록(12) 또한 n개의 서브 블록(12-1 내지 12-n)으로 구성될 수 있다. 이와 같이, 하나의 단위 블록을 다수의 서브 블록으로 구성하고, 서로 다른 순번의 서브 블록(e.g. 11-1, 12-1)을 독립적으로 이용함으로써, 하나의 블록체인을 통해 다수의 블록체인이 제공되는 효과가 달성될 수 있다.
이하에서는, 도 4 및 도 5를 참조하여 본 발명의 제1 실시예에 따른 멀티 블록 구조를 갖는 블록체인의 데이터 구조에 대하여 설명하도록 한다.
도 4는 상기 제1 실시예에 따른 블록체인에서 블록의 내부 구조와 블록 간의 링크를 도시하고 있다.
도 4를 참조하면, 상기 제1 실시예에 따른 블록체인에서, 각각의 단위 블록(21, 22)은 n개의 서브 블록(21-1 내지 21-n, 22-1 내지 22-n)을 포함한다. 이때, n개의 서브 블록(21-1 내지 21-n, 22-1 내지 22-n) 중에서 적어도 하나의 서브 블록은 대표 서브 블록으로 설정된다. 특히, 도 4는 1개의 서브 블록(21-1, 22-1)이 대표 서브 블록으로 설정된 것을 예로써 도시하고 있다.
상기 대표 서브 블록은 이전 블록에 대한 링크를 포함하는 서브 블록을 의미한다. 즉, 상기 제1 실시예에 따른 블록체인에서, 인접한 두 블록은 대표 서브 블록 간의 링크로 연결된다. 이하에서는, 이해의 편의를 제공하기 위해, 인접한 블록을 연결하는 블록 간의 링크를 "외부 링크"로 명명하고, 하나의 단위 블록 내에서 서브 블록을 연결하는 서브 블록 간의 링크를 "내부 링크"로 명명하도록 한다.
상기 외부 링크와 상기 내부 링크는 예를 들어 서브 블록의 해시 값으로 구현될 수 있다. 다만, 이는 본 발명의 일부 실시예를 설명하기 위한 것일 뿐, 본 발명의 범위가 이에 한정되는 것은 아니다. 상기 외부 링크 및 상기 내부 링크는 특정 블록 또는 특정 서브 블록을 연결할 수 있다면, 어떠한 형태로 구현되더라도 무방하다.
일 예에서, 상기 대표 서브 블록은 복수의 서브 블록 중에서 미리 설정된 특정 서브 블록으로 결정될 수 있다. 이를테면, 도 4에 도시된 바와 같이, 복수의 서브 블록 중에서 첫 번째 서브 블록(21-1, 22-1)이 대표 서브 블록이 될 수 있다.
다른 일 예에서, 상기 대표 서브 블록은 복수의 서브 블록 중에서 임계치 이상의 데이터가 기록된 서브 블록으로 결정될 수 있다. 데이터의 양을 기준으로 대표 서브 블록을 결정하는 이유는 많은 데이터가 기록된 서브 블록일수록 확률적으로 검색 대상이 될 가능성이 높기 때문이다. 본 예에 따르면, 외부 링크를 통해 많은 데이터가 기록된 서브 블록에 직접적으로 접근될 수 있는 바, 블록체인의 조회 성능의 향상될 수 있다.
다음으로, 도 5는 상기 제1 실시예에 따른 블록체인에서 서브 블록 간의 내부 링크를 도시하고 있다. 이하의 도면에서, 실선으로 도시된 링크는 외부 링크를 가리키고, 점선으로 도시된 링크는 내부 링크를 가리킨다.
도 5를 참조하면, 상기 제1 실시예에 따른 블록체인에서, 대표 서브 블록(22-1)은 다른 서브 블록(e.g. 22-2, 22-n)에 대한 내부 링크를 포함할 수 있다. 예를 들어, 대표 서브 블록(22-1)의 헤더에 다른 서브 블록(e.g. 22-2, 22-n)의 해시 값이 기록될 수 있다.
위와 같이 내부 링크를 구성함으로써, 외부 링크 참조를 통해 특정 블록에 대한 탐색이 이루어지고, 1번의 내부 링크 참조를 통해 상기 특정 블록 내의 서브 블록에 대한 탐색이 이루어질 수 있다.
지금까지 도 4 및 도 5를 참조하여 본 발명의 제1 실시예에 따른 멀티 블록 구조를 갖는 블록체인의 데이터 구조에 대하여 설명하였다. 이하에서는, 도 6 내지 도 11을 참조하여 본 발명의 제2 실시예에 따른 멀티 블록 구조를 갖는 블록체인의 데이터 구조에 대하여 설명하도록 한다.
도 6은 상기 제2 실시예에 따른 블록체인에서 각 단위 블록의 논리적인 형태를 도시하고 있다.
도 6에 도시된 바와 같이, 상기 제2 실시예에 따른 블록체인의 각 단위 블록(31, 32, 33)은 다면체로 구성되며, 다면체의 각 면은 하나의 서브 블록에 대응된다. 도 6 이하의 도면은 각 단위 블록이 6면체로 구성된 것을 예로써 도시하고 있으나, 이는 이해의 편의를 제공하기 위한 것일 뿐이며, 각 단위 블록은 n면체(단, n은 2 이상의 정수)로 구성될 수 있다.
여기서, 단위 블록이 다면체로 구성된다는 것은 각 서브 블록이 인접한 서브 블록의 내부 링크를 포함함으로써, 복수의 서브 블록이 논리적으로 다면체를 형성하는 것으로 이해될 수 있다. 이해의 편의를 제공하기 위해, 도 7에 도시된 블록(31)의 전개도를 참조하여 부연 설명하도록 한다.
도 7에 도시된 바와 같이, 단위 블록(31)이 육면체로 구성되는 경우, 단위 블록(31) 내에 6개의 서브 블록(31-1 내지 31-6)이 포함된다. 6개의 서브 블록(31-1 내지 31-6)이 육면체를 형성하기 위해, 각 서브 블록(31-1 내지 31-6)은 인접한 서브 블록에 대한 내부 링크를 갖는다. 예를 들어, 도 7의 가장 오른편에 도시된 바와 같이, 서브 블록(31-1)은 인접한 4개의 면에 대응되는 서브 블록(31-2, 3-1-3, 31-4, 31-5)에 대한 내부 링크(34 내지 37)를 포함한다. 도 7에는 서브 블록(31-1)이 갖는 내부 링크만을 도시하였으나, 다른 서브 블록(31-2 내지 31-6) 또한 인접한 서브 블록을 가리키는 내부 링크를 포함할 수 있다.
내부 링크가 서브 블록의 해시 값으로 구현되는 경우, 각 서브 블록의 헤더에 인접한 서브 블록에 대한 해시 값이 기록될 수 있다. 예를 들어, 도 9에 도시된 바와 같이, 각 서브 블록은 각종 메타 정보가 기록되는 헤더(41)와 데이터가 기록되는 바디(42)로 구성되고, 서브 블록 헤더(41)의 소정의 필드(43)에 인접면에 대응되는 서브 블록의 해시 값이 기록될 수 있다. 이에 따라, 도 8에 도시된 종래 블록체인의 블록 구조와는 달리, 서브 블록의 헤더(41)는 인접한 서브 블록의 해시 값을 더 포함하게 된다. 물론, 블록체인 플랫폼에 따라, 서브 블록의 헤더 구조는 얼마든지 달라질 수 있다. 예를 들어, 작업 증명(proof―of-work)을 수행되지 않는 경우, nBits, Nonce 등의 필드가 필요하지 않으므로, nBits, Nonce 등의 필드에 인접면에 대응되는 서브 블록의 해시 값이 기록될 수도 있다.
다음으로, 도 10은 상기 제2 실시예에 따른 블록체인에서 블록 간의 외부 링크를 도시한다.
도 10을 참조하면, 블록체인을 구성하는 단위 블록(31, 32) 간의 외부 링크(41, 42, 43)는 각 면에 대응되는 서브 블록 간의 링크로 구현될 수 있다. 자세하게는, 외부 링크(41)를 통해 블록(31, 32)의 제1 면에 대응되는 서브 블록이 연결되고, 외부 링크(42)를 통해 블록(31, 32)의 제2 면에 대응되는 서브 블록이 연결되며, 외부 링크(43)를 통해 블록(31, 32)의 제3 면에 대응되는 서브 블록이 연결될 수 있다.
물론, 상기 제1 실시예와 같이, 대표 서브 블록이 존재하는 경우, 외부 링크는 대표 서브 블록 간의 링크로 구현될 수도 있으며, 이는 실시예에 따라 달라질 수 있다.
상기 제2 실시예와 같이 각 단위 블록이 다면체로 구성되는 경우, 서로 다른 타입의 데이터가 각 면에 대응되는 서브 블록에 기록됨으로써, 다양한 방식의 활용이 가능하다. 여기서, 상기 다른 타입의 데이터는 소정의 기준에 따라 구분될 수 있는 데이터를 가리킨다.
예를 들어, 관리 대상 데이터가 서비스를 기준으로 구분되는 경우, 상기 다른 타입의 데이터는 서로 다른 서비스에 관한 데이터를 의미할 수 있다. 이와 같은 경우, 도 11에 도시된 바와 같이, 블록(51, 52, 53)의 각 면에 서로 다른 서비스에 관한 데이터가 기록될 수 있다. 따라서, 하나의 블록체인으로 다수의 서비스에 대한 통합 데이터 관리 기능이 제공될 수 있다.
다른 예를 들어, 관리 대상 데이터가 데이터의 중요도를 기준으로 구분되는 경우, 중요도가 높은 데이터(e.g. 개인 정보, 기밀 데이터)는 제1 면에 기록되고, 중요도가 낮은 데이터는 제2 면에 기록될 수 있다. 이와 같은 경우, 상기 제1 면에 추가적인 암호화가 수행되도록 하는 등의 보안 기능을 추가함으로써, 차등적인 데이터 관리 서비스가 제공될 수도 있다.
지금까지 도 6 내지 도 11을 참조하여 본 발명의 제2 실시예에 따른 멀티 블록 구조를 갖는 블록체인의 데이터 구조에 대하여 설명하였다. 이하에서는, 도 12를 참조하여 본 발명의 일 실시예에 따른 블록체인 노드(100)에 대하여 설명하도록 한다. 특히, 도 12는 단일 블록체인 노드(100)가 단일 물리적 컴퓨팅 장치로 구현된 것을 예로써 도시하고 있다.
도 12는 본 발명의 일 실시예에 따른 블록체인 노드(100)를 나타내는 하드웨어 구성도이다.
도 12를 참조하면, 블록체인 노드(100)는 하나 이상의 프로세서(110), 버스(150), 네트워크 인터페이스(170), 프로세서(110)에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리(130)와, 데이터 관리 소프트웨어(191)를 저장하는 스토리지(190)를 포함할 수 있다. 다만, 도 12에는 본 발명의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 12에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(110)는 데이터 관리 장치(100)의 각 구성의 전반적인 동작을 제어한다. 프로세서(110)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다. 또한, 프로세서(110)는 본 발명의 실시예들에 따른 방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 데이터 관리 장치(100)는 하나 이상의 프로세서를 구비할 수 있다.
메모리(130)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(130)는 본 발명의 실시예들에 따른 데이터 관리 방법을 실행하기 위하여 스토리지(190)로부터 하나 이상의 프로그램(191)을 로드할 수 있다. 도 12에서 메모리(130)의 예시로 RAM이 도시되었다.
버스(150)는 데이터 관리 장치(100)의 구성 요소 간 통신 기능을 제공한다. 버스(150)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
네트워크 인터페이스(170)는 데이터 관리 장치(100)의 유무선 인터넷 통신을 지원한다. 또한, 네트워크 인터페이스(170)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 네트워크 인터페이스(170)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.
스토리지(190)는 상기 하나 이상의 프로그램(191)을 비임시적으로 저장할 수 있다. 도 12에서 상기 하나 이상의 프로그램(191)의 예시로 데이터 관리 소프트웨어(191)가 도시되었다.
스토리지(190)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
데이터 관리 소프트웨어(191)는 메모리(130)에 로드될 때 프로세서(110)로 하여금 본 발명의 몇몇 실시예들에 따른 방법을 수행하도록 하는 인스트럭션들을 포함할 수 있다.
예를 들어, 데이터 관리 소프트웨어(191)는 제1 서브 블록 및 제2 서브 블록을 생성하는 동작, 상기 제1 서브 블록 및 상기 제2 서브 블록을 포함하는 제1 블록을 생성하는 동작 및 상기 제1 블록을 블록체인 네트워크 상에 전파하는 동작을 수행하도록 하는 인스트럭션들을 포함할 수 있다.
다른 예를 들어, 데이터 관리 소프트웨어(191)는 블록체인 네트워크 상에 전파되는 제1 블록을 수신하되, 상기 제1 블록은 제1 서브 블록 및 제2 서브 블록을 포함하는 것인, 동작 및 블록체인에 상기 제1 블록을 추가하는 동작을 수행하도록 하는 인스트럭션들을 포함할 수 있다.
지금까지 도 12를 참조하여 본 발명의 일 실시예에 따른 블록체인 노드(100)에 대하여 설명하였다. 이하에서는, 도 13 이하의 도면을 참조하여 본 발명의 실시예에 따른 멀티 블록 구조를 갖는 블록체인 기반 데이터 관리 방법에 대하여 상세하게 설명한다.
이하, 본 발명의 실시예에 따른 멀티 블록 구조를 갖는 블록체인 기반 데이터 관리 방법의 각 단계는, 컴퓨팅 장치에 의해 수행될 수 있다. 예를 들어, 상기 컴퓨팅 장치는 블록체인 노드(100)일 수 있다. 이하에서는, 상기 데이터 관리 방법이 블록체인 노드(100)에 의해 수행되는 것을 가정하여 설명을 이어가도록 한다. 다만, 설명의 편의를 위해, 상기 데이터 관리 방법에 포함되는 각 단계의 동작 주체는 그 기재가 생략될 수도 있다. 또한, 상기 데이터 관리 방법의 각 단계는 프로세서에 의해서 실행되는 컴퓨터 프로그램(e.g. 도 12의 데이터 관리 SW 191)의 인스트럭션들로 구현될 수 있다.
본 발명의 실시예에 따른 멀티 블록 구조를 갖는 블록체인 기반 데이터 관리 방법은 멀티 블록 구조를 갖는 블록 생성 방법과 블록체인 갱신 방법을 포함할 수 있다. 먼저, 도 13을 참조하여 멀티 블록 구조를 갖는 블록 생성 방법에 대하여 설명하고, 도 14를 참조하여 블록체인 갱신 방법에 대하여 설명하도록 한다.
도 13은 본 발명의 일 실시예에 따른 블록 생성 방법을 나타내는 흐름도이다. 단, 이는 본 발명의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 단계가 추가되거나 삭제될 수 있음은 물론이다.
도 13을 참조하면, 상기 블록 생성 방법은 블록체인 노드(100)가 각 서브 블록에 데이터를 기록하는 단계(S100)에서 시작된다. 예를 들어, 블록체인 노드(100)는 제1 타입의 데이터를 제1 서브 블록에 기록하고, 제2 타입의 데이터를 제2 서브 블록에 기록할 수 있다. 이때, 상기 제1 타입의 데이터와 상기 제2 타입의 데이터는 특정 기준에 따라 구분될 수 있는 데이터를 의미한다. 예를 들어, 상기 제1 타입과 상기 제2 타입은 서로 다른 서비스를 가리키는 것일 수 있다. 그러나, 본 발명의 범위가 이에 한정되는 것은 아니다.
단계(S120)에서, 블록체인 노드(100)는 단위 블록 내 복수의 서브 블록 중에서 임계치 이상의 데이터가 기록된 서브 블록이 존재하는지 판정한다. 이때, 상기 임계치는 예를 들어 미리 설정된 서브 블록의 크기로 설정될 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
단계(S140)에서, 블록체인 노드(100)는 복수의 서브 블록을 포함하는 신규 블록을 생성한다. 예를 들어, 단위 블록이 n개의 서브 블록으로 구성되는 경우, 블록체인 노드(100)는 n개의 서브 블록으로 구성된 신규 블록을 생성한다.
참고로, n개의 서브 블록에는 데이터가 기록되지 않은 서브 블록, 데이터가 임계 크기 이상 기록된 서브 블록, 데이터가 임계 크기 미만 기록된 서브 블록 등이 혼재되어 있을 수 있다. 각 서브 블록에는 서로 다른 타입의 데이터가 기록되므로, 제1 타입의 데이터가 생성되는 정도와 제2 타입의 데이터가 생성되는 정도가 다를 수 있기 때문이다. 따라서, n값이 커질수록 신규 블록 내에 빈 서브 블록(empty sub-block)이 많이 포함되고 다소 비효율적으로 생각될 수도 있다. 그러나, 서브 블록을 유지하는 오버헤드(overhead)는 헤더의 크기에 불과하고, 헤더의 크기는 수십 바이트(byte)에 불과하기 때문에, n 값이 커지더라도 실제 요구되는 오버헤드는 매우 미미한 수준에 불과하다.
단계(S160)에서, 블록체인 노드(100)는 신규 블록을 블록체인 네트워크 상에 전파한다. 그러면, 다른 블록체인 노드는 상기 신규 블록을 자신의 블록체인에 추가할 수 있다.
지금까지 도 13을 참조하여 본 발명의 일 실시예에 따른 멀티 블록 구조를 갖는 블록 생성 방법에 대하여 설명하였다. 상술한 방법에 따르면, 블록체인을 구성하는 단위 블록인 복수개의 서브 블록으로 구성되며, 서로 다른 순번의 서브 블록에는 서로 다른 타입의 데이터가 기록될 수 있다. 따라서, 단일 블록체인을 이용하여 다양한 데이터에 대한 통합 관리 서비스가 제공될 수 있다.
아울러, 새로운 타입의 데이터에 대한 관리 서비스가 요구되는 경우, 비어 있는 순번의 서브 블록을 할당함으로써, 새로운 블록체인 플랫폼을 구축할 필요 없이 즉각적인 데이터 관리 서비스가 제공될 수 있다.
다음으로, 도 14를 참조하여 본 발명의 일 실시예에 따른 블록체인 갱신 방법에 대하여 설명하도록 한다.
도 14는 본 발명의 일 실시예에 따른 블록체인 갱신 방법을 나타내는 흐름도이다. 단, 이는 본 발명의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 단계가 추가되거나 삭제될 수 있음은 물론이다.
도 14를 참조하면, 상기 블록체인 갱신 방법은 블록체인 노드(100)가 블록체인 네트워크 상에 전파되는 신규 블록을 수신하는 단계(S200)에서 시작된다.
단계(S210)에서, 블록체인 노드(100)는 신규 블록 내 복수의 서브 블록 중에 데이터가 기록되지 않은 빈 서브 블록이 존재하는지 판정한다.
상기 빈 서브 블록이 존재한다는 판정에 응답하여, 블록체인 노드(100)는 해당 서브 블록을 마킹(marking)하는 단계(S220)를 더 수행한다. 즉, 블록체인 노드(100)는 신규 블록을 수신할 때마다, 빈 서브 블록이 존재하는지 검사하고, 빈 서브 블록에 대한 마킹 정보를 생성한다.
단계(S230)에서, 블록체인 노드(100)는 블록체인에 신규 블록을 추가한다. 예를 들어, 블록체인 노드(100)는 신규 블록의 제1 서브 블록과 이전 블록의 제1 서브 블록을 제1 외부 링크로 연결하고, 신규 블록의 제2 서브 블록과 이전 블록의 제2 서브 블록을 제2 외부 링크로 연결하는 과정을 통해 블록체인에 신규 블록을 추가할 수 있다. 다만, 상기 예시는 이해의 편의를 제공하기 위한 것에 불과하며, 블록체인의 데이터 구조에 따라 신규 블록을 추가하는 단계(S230)는 얼마든지 변형될 수 있다.
단계는(S240, S250)는 블록 간의 외부 링크를 갱신하는 과정에 관한 것이다. 단계(S240) 및 단계(250)는 신규 블록을 수신할 때마다 수행될 수도 있고, 소정의 조건을 만족할 때마다 수행될 수도 있으며, 이는 구현 방식의 차이에 불과할 수 있다. 이하, 블록체인 노드(100)가 외부 링크를 갱신하는 과정에 대하여 설명한다.
단계(S240)에서, 블록체인 노드(100)는 이전 블록의 서브 블록 중에서 마킹된 서브 블록이 존재하는지 여부를 판정한다.
단계(S250)에서, 마킹된 서브 블록이 존재한다는 판정에 응답하여, 블록체인 노드(100)는 신규 블록의 외부 링크를 갱신한다. 구체적으로, 블록체인 노드(100)는 상기 마킹된 서브 블록을 가리키는 제1 외부 링크를 특정 서브 블록을 가리키는 제2 외부 링크로 갱신한다. 이때, 상기 특정 서브 블록은 상기 마킹된 서브 블록의 외부 링크가 가리키는 서브 블록을 의미한다.
즉, 본 단계(S250)에서, 갱신 대상이 되는 타깃 외부 링크는 신규 블록의 외부 링크 중에서 빈 서브 블록(즉, 마킹된 서브 블록)을 가리키는 외부 링크가 되고, 상기 타깃 외부 링크는 빈 서브 블록을 건너뛰고 데이터가 기록된 이전 서브 블록을 가리키도록 갱신된다. 이렇게 함으로써, 비어 있는 서브 블록을 제외하고, 블록체인에 대한 탐색이 수행될 수 있기 때문에, 블록체인의 조회 속도가 향상될 수 있다.
지금까지 도 14를 참조하여 본 발명의 일 실시예에 따른 블록체인 갱신 방법에 대하여 설명하였다. 이하에서는, 보다 이해의 편의를 제공하기 위해, 도 15 내지 도 17에 도시된 예를 참조하여 블록 생성 및 블록체인 갱신 방법에 대하여 부연 설명하도록 한다. 도 15 내지 도 17에 도시된 블록체인에서, 각 서브 블록에 표시된 음영은 서브 블록에 기록된 데이터를 의미한다. 즉, 음영 표시가 되지 않은 서브 블록은 빈 서브 블록을 의미하며, 대문자(M)는 마킹된 서브 블록을 의미한다.
도 15는 블록체인 노드(100)가 신규 블록(70)을 추가한 이후의 블록체인을 예로써 도시하고 있다.
가령, 서브 블록(70-2)에 임계치 이상의 데이터가 기록되었다는 판정에 응답하여, 특정 블록체인 노드가 복수의 서브 블록(70-1 내지 70-n)으로 구성된 신규 블록(70)을 생성하고, 생성된 신규 블록(70)을 블록체인 네트워크 상에 전파할 수 있다. 또한, 신규 블록(70)을 수신한 블록체인 노드(100)가 신규 블록(70)의 서브 블록(70-1)을 외부 링크(71)를 통해 이전 블록(60)의 서브 블록(60-1)과 연결하고, 동일한 과정을 다른 서브 블록(70-2 내지 70-n)에 대하여 반복 수행함으로써 도 15에 도시된 바와 같은 블록체인이 구성될 수 있다.
또한, 블록체인 노드(100)는 신규 블록(70) 내에 빈 서브 블록(70-1, 70-n)이 존재하는지 검사하고, 빈 서브 블록(70-1, 70-n)에 마킹을 수행할 수 있다.
다음으로, 도 16은 블록체인 노드(100)가 신규 블록(80)을 추가한 이후의 블록체인을 예로써 도시하고 있다.
블록체인 노드(100)는 신규 블록(80)을 블록체인에 추가하고, 신규 블록(80) 내 빈 서브 블록(80-1)을 마킹을 수행한 결과로, 도 16에 도시된 블록체인이 구성될 수 있다. 이에 대한 설명은 전술한 바와 유사하므로, 더 이상의 설명은 생략하도록 한다.
마지막으로, 도 17은 블록체인 노드(100)가 신규 블록(80)의 외부 링크를 갱신하는 것을 예로써 도시하고 있다.
도 17을 참조하면, 블록체인 노드(100)는 이전 블록(70)의 서브 블록 중에 마킹된 서브 블록(70-1, 70-n)이 존재하는지 검사하고, 마킹된 서브 블록(70-1, 70-n)에 대응되는 서브 블록(80-1, 80-n)의 외부 링크(81, 85)를 갱신할 수 있다.
구체적으로, 블록체인 노드(100)는 서브 블록(80-1)의 외부 링크(81)를 서브 블록(60-1)을 가리키는 외부 링크(84)로 갱신할 수 있다. 또한, 블록체인 노드(100)는 서브 블록(80-n)의 외부 링크(85)를 서브 블록(60-n)을 가리키는 외부 링크(86)로 갱신할 수 있다. 이렇게 함으로써, 빈 서브 블록을 건너뛰며 고속으로 블록체인 탐색이 수행될 수 있다. 또한, 블록체인을 탐색하는 동안 외부 링크를 참조하는 횟수가 감소되기 때문에, 블록체인의 조회 속도가 향상될 수 있다.
지금까지 도 15 내지 도 17을 참조하여 본 발명의 실시예에 따른 블록 생성 방법 및 블록체인 갱신 방법에 대하여 부연 설명하였다.
지금까지 도 2 내지 도 17을 참조하여 본 발명의 몇몇 실시예들 및 상기 몇몇 실시예들에 따른 효과들을 언급하였다. 본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
지금까지 도 2 내지 도 17을 참조하여 설명된 본 발명의 개념은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (13)

  1. 블록체인 노드에서 수행되는 블록체인 기반 데이터 관리 방법에 있어서,
    제1 서브 블록 및 제2 서브 블록을 생성하는 단계;
    상기 제1 서브 블록 및 상기 제2 서브 블록을 포함하는 제1 블록을 생성하는 단계; 및
    상기 제1 블록을 블록체인 네트워크 상에 전파하는 단계를 포함하되,
    상기 제1 서브 블록은 상기 제2 서브 블록을 가리키는 내부 링크를 포함하는 것을 특징으로 하는,
    블록체인 기반 데이터 관리 방법.
  2. 제1 항에 있어서,
    상기 제1 서브 블록에는 제1 타입의 데이터가 기록되고,
    상기 제2 서브 블록에는 제2 타입의 데이터가 기록되는 것을 특징으로 하는,
    블록체인 기반 데이터 관리 방법.
  3. 제1 항에 있어서,
    상기 제1 블록은 다면체를 구성하는 복수의 서브 블록을 포함하되,
    상기 제1 서브 블록은 상기 다면체에서 상기 제1 서브 블록에 인접한 서브 블록에 대한 내부 링크를 포함하는 것을 특징으로 하는,
    블록체인 기반 데이터 관리 방법.
  4. 제1 항에 있어서,
    상기 제1 서브 블록은 상기 제1 블록의 이전 블록을 가리키는 제1 외부 링크를 더 포함하고,
    상기 제2 서브 블록은 상기 제1 외부 링크를 포함하지 않는 것을 특징으로 하는,
    블록체인 기반 데이터 관리 방법.
  5. 제1 항에 있어서,
    상기 제1 서브 블록은 상기 제1 블록의 이전 블록을 가리키는 제1 외부 링크를 더 포함하고,
    상기 제2 서브 블록은 상기 이전 블록을 가리키는 제2 외부 링크를 포함하되,
    상기 제1 외부 링크는 상기 이전 블록에 포함된 복수의 서브 블록 중에서 상기 제1 서브 블록에 대응되는 제3 서브 블록을 가리키고,
    상기 제2 외부 링크는 상기 복수의 서브 블록 중에서 상기 제2 서브 블록에 대응되는 제4 서브 블록을 가리키는 것을 특징으로 하는,
    블록체인 기반 데이터 관리 방법.
  6. 제1 항에 있어서,
    상기 제1 서브 블록에 제1 데이터를 기록하는 단계; 및
    상기 제2 서브 블록에 제2 데이터를 기록하는 단계를 더 포함하되,
    상기 제1 블록을 생성하는 단계는,
    상기 제1 서브 블록 및 상기 제2 서브 블록 중에서 어느 하나의 서브 블록에 데이터가 임계치 이상 기록되었다는 판정에 응답하여, 상기 제1 블록을 생성하는 단계를 포함하는 것을 특징으로 하는,
    블록체인 기반 데이터 관리 방법.
  7. 블록체인 노드에서 수행되는 블록체인 기반 데이터 관리 방법에 있어서,
    블록체인 네트워크 상에 전파되는 제1 블록을 수신하되, 상기 제1 블록은 제1 서브 블록 및 제2 서브 블록을 포함하는 것인, 단계; 및
    블록체인에 상기 제1 블록을 추가하는 단계를 포함하되,
    상기 제1 서브 블록은 상기 제2 서브 블록을 가리키는 내부 링크를 포함하는 것을 특징으로 하는,
    블록체인 기반 데이터 관리 방법.
  8. 제7 항에 있어서,
    상기 제1 서브 블록에 데이터가 기록되어 있는지 여부를 판정하는 단계; 및
    상기 데이터가 기록되어 있지 않다는 판정에 응답하여, 상기 제1 서브 블록을 마킹하는 단계를 더 포함하는 것을 특징으로 하는,
    블록체인 기반 데이터 관리 방법.
  9. 제8 항에 있어서,
    제3 서브 블록 및 제4 서브 블록을 포함하는 제2 블록을 수신하는 단계; 및
    상기 제2 블록을 상기 제1 블록에 연결하는 단계를 더 포함하되,
    상기 제1 서브 블록은 상기 제1 블록의 이전 블록을 가리키는 제1 외부 링크를 포함하고,
    상기 제3 서브 블록은 상기 제1 서브 블록을 가리키는 제2 외부 링크를 포함하며,
    상기 연결하는 단계는,
    상기 제1 외부 링크를 이용하여, 상기 제2 외부 링크가 상기 이전 블록을 가리키도록 갱신하는 단계를 포함하는 것을 특징으로 하는,
    블록체인 기반 데이터 관리 방법.
  10. 제7 항에 있어서,
    상기 제1 블록은 다면체를 구성하는 복수의 서브 블록을 포함하되,
    상기 제1 서브 블록은 상기 다면체에서 상기 제1 서브 블록에 인접한 서브 블록에 대한 내부 링크를 포함하는 것을 특징으로 하는,
    블록체인 기반 데이터 관리 방법.
  11. 프로세서;
    네트워크 인터페이스; 및
    상기 프로세서에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 포함하되,
    상기 하나 이상의 프로그램들은,
    제1 서브 블록 및 제2 서브 블록을 생성하는 동작,
    상기 제1 서브 블록 및 상기 제2 서브 블록을 포함하는 제1 블록을 생성하는 동작 및
    상기 제1 블록을 블록체인 네트워크 상에 전파하는 동작을 수행하도록 하는 인스트럭션들(instructions)을 포함하고,
    상기 제1 서브 블록은 상기 제2 서브 블록을 가리키는 내부 링크를 포함하는 것을 특징으로 하는,
    블록체인 노드.
  12. 제11 항에 있어서,
    상기 제1 서브 블록에는 제1 타입의 데이터가 기록되고,
    상기 제2 서브 블록에는 제2 타입의 데이터가 기록되는 것을 특징으로 하는,
    블록체인 노드.
  13. 제11 항에 있어서,
    상기 제1 블록은 다면체를 구성하는 복수의 서브 블록을 포함하되,
    상기 제1 서브 블록은 상기 다면체에서 상기 제1 서브 블록에 인접한 서브 블록에 대한 내부 링크를 포함하는 것을 특징으로 하는,
    블록체인 노드.
KR1020180070667A 2018-06-20 2018-06-20 블록체인 기반 데이터 관리 방법 KR20190143115A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180070667A KR20190143115A (ko) 2018-06-20 2018-06-20 블록체인 기반 데이터 관리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180070667A KR20190143115A (ko) 2018-06-20 2018-06-20 블록체인 기반 데이터 관리 방법

Publications (1)

Publication Number Publication Date
KR20190143115A true KR20190143115A (ko) 2019-12-30

Family

ID=69103270

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180070667A KR20190143115A (ko) 2018-06-20 2018-06-20 블록체인 기반 데이터 관리 방법

Country Status (1)

Country Link
KR (1) KR20190143115A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112083950A (zh) * 2020-09-14 2020-12-15 电子科技大学 基于分支限界法的区块链共识节点待打包数据选取方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112083950A (zh) * 2020-09-14 2020-12-15 电子科技大学 基于分支限界法的区块链共识节点待打包数据选取方法

Similar Documents

Publication Publication Date Title
JP6542909B2 (ja) ファイル操作方法及び装置
RU2658886C1 (ru) Способ управления файлами, распределенная система хранения и узел управления
CN110109915B (zh) 用于管理哈希表的方法、设备和计算机程序产品
CN109886693B (zh) 区块链系统的共识实现方法、装置、设备和介质
CN104750559A (zh) 跨多节点的存储器资源的池化
CN112887437A (zh) 区块链交易处理方法、区块链节点和区块链
JP2016062613A (ja) キャッシュメモリ・システム及びその動作方法
WO2021114768A1 (zh) 数据处理装置、方法、芯片、处理器、设备及存储介质
US20210132987A1 (en) Computer program for asynchronous data processing in a database management system
US20120011166A1 (en) Skip list generation
CN109918381B (zh) 用于存储数据的方法和装置
JP5893028B2 (ja) キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのためのシステム及び方法
US11651221B2 (en) Method, device, and computer program product for deep learning
US9116751B2 (en) Reconfigurable device, processing assignment method, processing arrangement method, information processing apparatus, and control method therefor
US8959309B2 (en) Skip list generation
KR20190143115A (ko) 블록체인 기반 데이터 관리 방법
US8645620B2 (en) Apparatus and method for accessing a memory device
US11287993B2 (en) Method, device, and computer program product for storage management
JP6189266B2 (ja) データ処理装置、データ処理方法及びデータ処理プログラム
JP2007323557A (ja) ディスクアレイ装置及びその負荷分散方法
KR102416336B1 (ko) 블록체인을 관리하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체
JP4140014B2 (ja) クライアントサーバシステムおよびクライアントサーバシステムのデータ処理方法
US11010349B2 (en) File system with distributed entity state
KR20230083479A (ko) 블록체인 시뮬레이션 플랫폼 내의 복수의 가상 노드 사이에 공유된 데이터 액세스 방법 및 이를 이용하는 블록체인 시뮬레이션 플랫폼
JP6961950B2 (ja) 格納方法、格納装置および格納プログラム