KR20200115787A - 블록체인 기반의 대용량 데이터 저장 방법 및 시스템 - Google Patents

블록체인 기반의 대용량 데이터 저장 방법 및 시스템 Download PDF

Info

Publication number
KR20200115787A
KR20200115787A KR1020190034344A KR20190034344A KR20200115787A KR 20200115787 A KR20200115787 A KR 20200115787A KR 1020190034344 A KR1020190034344 A KR 1020190034344A KR 20190034344 A KR20190034344 A KR 20190034344A KR 20200115787 A KR20200115787 A KR 20200115787A
Authority
KR
South Korea
Prior art keywords
target data
node
data
network
blockchain network
Prior art date
Application number
KR1020190034344A
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 KR1020190034344A priority Critical patent/KR20200115787A/ko
Publication of KR20200115787A publication Critical patent/KR20200115787A/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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • 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/1076Resource dissemination mechanisms or network resource keeping policies for optimal resource availability in the overlay network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • H04L2209/38

Landscapes

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

Abstract

블록체인 기반의 대용량 데이터 저장 방법 및 시스템이 개시된다. 본 발명에 따른 대용량 데이터 저장 방법은, P2P 오버레이 네트워크와 연동하고 블록체인 네트워크의 노드로 동작하는 컴퓨터가, 블록체인 네트워크에 접속한 사용자 단말로부터 타겟 데이터의 등록이 요청되면 노드와 사용자 단말 간의 세션을 설정하는 단계; 세션을 통해 사용자 단말로부터 타겟 데이터를 수신하고 노드의 로컬 저장소에 저장하는 단계; 블록체인 네트워크를 통해 타겟 데이터에 전자서명을 수행하는 단계; 전자서명된 타겟 데이터를 P2P 오버레이 네트워크 상의 임의의 위치에 저장하고, 해당 위치에 대한 정보와 전자서명에 이용된 해쉬값을 포함하는 URI(Uniform Resource Identifier)를 생성하는 단계; 블록체인 네트워크에 타겟 데이터를 신규 등록하는 트랜잭션을 발생시키되 블록체인 네트워크의 블록에는 URI가 저장되도록 제어하는 단계; 및 블록체인 네트워크의 다른 노드에 URI를 전달하여 타겟 데이터의 사본을 생성하도록 지시하는 단계;를 포함한다.

Description

블록체인 기반의 대용량 데이터 저장 방법 및 시스템 {Method and system for storing massive data based on block chain}
본 발명은 대용량 데이터 저장 서비스에 대한 것으로, 더 구체적으로는 블록체인 기술을 이용하여 대용량 데이터를 효율적으로 저장하고 데이터의 손상이나 유실에 대비하여 백업을 할 수 있는 블록체인 기반의 대용량 데이터 저장 방법 및 시스템에 대한 것이다.
블록체인(Block Chain) 기술이 선보인지 제법 시간이 지났으나, 아직까지 실생활에 직접적인 도움을 주거나 활용되는 블록체인은 별로 없는 실정이다. 지금까지 블록체인 기술은 주로 암호화폐 자체의 구현을 위해 개발되어 왔다. 블록체인 기술이 실생활에 활용되기 위해서는 각종 데이터의 처리가 반드시 필요하며, 데이터 자체는 물론 데이터와 관련된 트랜잭션의 장부를 블록으로 생성하여 블록체인으로 저장하여야 한다. 블록체인 기술을 통해 거래의 위변조는 물론 데이터 자체의 위변조 또한 막아야 하기 때문이다.
그런데, 블록체인 기술이 실생활에 적용되기 위해서는 빠른 처리 속도의 구현이 필수적이다. 이를 위해서는 블록 자체에 저장되는 데이터의 양이 충분히 적어야 한다. 트랜잭션 정보 뿐 아니라 각종 데이터 자체를 블록체인 내부에서 다루는 경우 자칫 각 노드가 저장하는 블록체인의 크기가 기하급수적으로 커질 수 있으며, 그 결과로 처리 속도가 크게 낮아지는 문제가 생길 수 있기 때문이다.
예컨대, 블록체인 네트워크 상에서 유전자 정보를 생성 및 저장하고, 이를 열람하거나 갱신하는 등의 처리가 이뤄지는 경우, 유전자 정보 그 자체를 블록체인 네트워크 내에 저장하다가는 블록체인 자체의 크기가 기하급수적으로 커지고, 그에 따라 처리 속도가 현저히 늦어지게 되는 문제가 발생하게 된다.
본 발명은 상기와 같은 종래 기술의 문제점을 해소하기 위한 것으로, 블록체인 네트워크에 접속한 사용자들에게 대용량 데이터 저장 서비스를 제공하되, 블록체인 내부에 대용량 데이터를 직접 저장하지 않으면서도 데이터의 손상이나 유실을 방지하고 위변조를 불가능하게 하는 대용량 데이터 저장 방법 및 시스템의 제공을 목적으로 한다.
상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 블록체인 기반의 대용량 데이터 저장 방법은, P2P 오버레이 네트워크와 연동하고 블록체인 네트워크의 노드로 동작하는 컴퓨터가, 상기 블록체인 네트워크에 접속한 사용자 단말로부터 타겟 데이터의 등록이 요청되면 상기 노드와 상기 사용자 단말 간의 세션을 설정하는 단계; 상기 세션을 통해 상기 사용자 단말로부터 상기 타겟 데이터를 수신하고 상기 노드의 로컬 저장소에 저장하는 단계; 상기 블록체인 네트워크를 통해 상기 타겟 데이터에 전자서명을 수행하는 단계; 상기 전자서명된 타겟 데이터를 상기 P2P 오버레이 네트워크 상의 임의의 위치에 저장하고, 해당 위치에 대한 정보와 상기 전자서명에 이용된 해쉬값을 포함하는 URI(Uniform Resource Identifier)를 생성하는 단계; 상기 블록체인 네트워크에 상기 타겟 데이터를 신규 등록하는 트랜잭션을 발생시키되 상기 블록체인 네트워크의 블록에는 상기 URI가 저장되도록 제어하는 단계; 및 상기 블록체인 네트워크의 다른 노드에 상기 URI를 전달하여 상기 타겟 데이터의 사본을 생성하도록 지시하는 단계;를 포함할 수 있다.
상기 타겟 데이터의 사본을 생성하도록 지시하는 단계는, 상기 블록체인 네트워크의 다른 노드들 중 하나 이상의 노드를 선택하는 단계; 상기 선택된 하나 이상의 노드에 상기 URI를 전달하여 상기 P2P 오버레이 네트워크로부터 상기 전자서명된 타겟 데이터를 다운로드 받아 저장하도록 지시하는 단계; 및 상기 블록체인 네트워크에 상기 타겟 데이터의 사본을 저장하는 트랜잭션을 발생시키되 상기 블록체인 네트워크의 블록에는 상기 타겟 데이터의 사본을 저장한 노드들의 목록이 기재되도록 제어하는 단계;를 포함할 수 있다.
상기 블록체인 기반의 대용량 데이터 저장 방법은, 소정의 주기에 따라 상기 타겟 데이터의 사본을 저장하고 있는 노드들의 마이닝 활동을 모니터링하는 단계; 및 상기 모니터링 결과 소정의 기간 동안 마이닝을 하지 않는 노드가 있는 경우, 해당 노드가 사본을 저장하고 있던 타겟 데이터의 URI를 다른 마이너에 전달하여 상기 타겟 데이터의 사본을 저장하도록 지시하는 단계;를 더 포함할 수 있다.
상기 하나 이상의 노드를 선택하는 단계는, 노드들의 마이닝 작업 능력에 따라 마이닝 작업 능력이 큰 노드를 타겟 데이터의 사본 저장을 위한 노드로 선택하는 단계;를 포함할 수 있다.
상기 전자서명된 타겟 데이터를 다운로드 받도록 지시하는 단계는, 상기 선택된 하나 이상의 노드가 상기 전자서명된 타겟 데이터를 선택된 노드의 수로 나누어 각각 일부만 저장하도록 지시하는 단계;를 포함할 수 있다.
본 발명의 다른 실시예에 따른 블록체인 기반의 대용량 데이터 저장 시스템은, P2P 오버레이 네트워크; 상기 P2P 오버레이 네트워크와 연동하는 노드를 포함하는 블록체인 네트워크; 및 상기 블록체인 네트워크에 접속하여 대용량 데이터 저장 서비스를 이용하는 사용자 단말;을 포함하고,
상기 노드는, 상기 사용자 단말로부터 타겟 데이터의 등록이 요청되면, 상기 사용자 단말과의 세션을 설정하여 상기 타겟 데이터를 수신하고, 상기 블록체인 네트워크를 통해 상기 타겟 데이터에 전자서명을 수행하고, 상기 전자서명된 타겟 데이터를 상기 P2P 오버레이 네트워크 상의 임의의 위치에 저장하고 해당 위치에 대한 정보와 상기 전자서명에 이용된 해쉬값을 포함하는 URI(Uniform Resource Identifier)를 생성하고, 상기 블록체인 네트워크에 상기 타겟 데이터를 신규 등록하는 트랜잭션을 발생시키되 상기 블록체인 네트워크의 블록에는 상기 URI가 저장되도록 제어하고, 상기 전자서명된 타겟 데이터는 상기 노드의 로컬 저장소에 저장하고, 상기 블록체인 네트워크의 다른 노드에 상기 URI를 전달하여 상기 타겟 데이터의 사본을 생성하도록 지시할 수 있다.
본 발명에 의하면, 블록체인 네트워크에 접속한 사용자들에게 대용량 데이터 저장 서비스를 제공함에 있어서, 블록체인 내부에 데이터를 직접 저장하지 않으면서도 데이터의 손실이나 유실을 방지하고 위변조를 불가능하게 하는 대용량 데이터 저장 방법 및 시스템을 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 블록체인 기반의 대용량 데이터 저장 시스템의 네트워크 구성을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 블록체인 기반의 대용량 데이터 저장 방법을 설명하기 위한 순서도이다.
도 3은 본 발명의 일 실시예에 따라 저장된 대용량 데이터의 사본을 저장하는 방법을 설명하기 위한 순서도이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...수단", "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1은 본 발명의 일 실시예에 따른 블록체인 기반의 대용량 데이터 저장 시스템의 네트워크 구성을 설명하기 위한 도면이다.
본 발명에 따른 블록체인 기반의 대용량 데이터 저장 시스템은 블록체인 네트워크(110)와 P2P 오버레이 네트워크(120) 상에서 구현되고 운영된다.
블록체인 네트워크(110)는 복수의 블록체인 노드들로 구성될 수 있으며, 본 발명에서 관리하고자 하는 대용량 데이터의 생성과 등록, 그리고 이용에 관련된 트랜잭션을 블록(거래원장)으로 저장하고, 각 노드들의 합의 즉 해쉬값 연산을 통해 위조된 것인지 여부를 판정하는 과정에 의해 이를 유지한다. 본 발명에서 관리의 대상이 되는 대용량 데이터를 '타겟 데이터'로 칭하기로 한다.
P2P 오버레이 네트워크(120, Peer-to-Peer Overlay Network) 역시 어떤 계층적인 구조나 중앙의 제어가 없는 분산형 네트워크이다. 오버레이 네트워크는 물리 네트워크 위에 성립되는 가상의 컴퓨터 네트워크로, 오버레이 네트워크 안의 노드는 가상, 논리 링크로 연결될 수 있으며, 각 링크는 네트워크 안에서 많은 물리적 링크를 통하지만 물리적 링크를 고려하지는 않는다. P2P 네트워크는 물리적으로 전달망을 고려하지 않고 피어(peer)와 피어 간의 연결만을 고려하기 때문에 오버레이 네트워크라고 할 수 있다. 피어들은 IP(Internet Protocol) 위에서 스스로 오버레이 네트워크를 구성하며, P2P 네트워크에서는 개인과 개인이 직접 연결되어 파일을 공유하는 원리에 따라 각자의 컴퓨터 안에 있는 음악파일이나 문서ㆍ동영상 파일뿐만 아니라 DB, CPU 등을 공유할 수 있다.
한편, 토렌트는 인터넷 곳곳에 있는 파일을 찾아내 내려받을 수 있게 한 프로그램이다. 한 명의 상대방에게서 자료를 전송받는 '일대일' 방식의 P2P와는 달리 다수 사용자에게서 조금씩 정보를 나눠 받아 하나로 합치는 '일대다' 방식이 특징이다. 토렌트의 경우 네트워크 상의 어딘가에 데이터가 저장되어 있고 시드 파일(seed file) 또는 시드파일의 구성정보(magnet address)만 있으면 데이터의 사본을 만들 수 있다.
시드 파일은 개인 간 컴퓨팅 프로그램 교류 체계인 인터넷 '토렌트' 사이트에서 씨앗(seed) 구실을 하는 파일로, 토렌트 사이트에 시드 파일을 올려 두면 누구나 내려받을 수 있다. 여러 사람이 가진 제각각의 시드 파일을 동시에 내려받아 콘텐츠 하나를 완성하는 체계여서 다운로드 속도가 빠르다. 특히 내려받은 파일을 다시 쪼갠 뒤 새로운 시드 파일로 등록해 다른 사람이 쉽게 가져갈 수 있게 하는 이용자가 많아 콘텐츠 전파 속도도 매우 빠르다.
블록체인 네트워크(110)의 노드(100)는 블록체인 네트워크에 참여하는 서버로, 블록이 생성되면 그 정보를 전파하는 역할을 하므로 동기화된 블록체인 데이터를 가지고 있다.
각 노드(100)는 작업증명 방식의 블록체인 네트워크에서 채굴(mining)을 수행하는 마이너(minor)로 동작하기 위해, 소프트웨어 및/또는 하드웨어 수단을 구비한 컴퓨팅 장치이다. 블록체인 네트워크의 각 노드는 머클트리에서 전체 장부의 해쉬값을 연산함으로써 해당 거래가 위조된 것인지 여부를 검증하고 거래원장을 추가한 블록을 채굴하여 블록체인에 추가하며 그 대가로 트랜잭션에 따른 수수료를 지급받는 채굴 주체이다. 이들 마이너는 부동소수점 연산장치(그래픽카드)를 다수 구비한 컴퓨터일 수도 있고, ASIC(Application Specific Integrated Circuit) 형태의 장치일 수도 있다.
노드(100)는 분산 어플리케이션(decentralized application) 즉 DApp을 수행한다. DApp은 서버 없이 마이너의 연산을 통해 블록체인 네트워크 상에서 실행되는 어플리케이션으로, 각 노드에서 실행되는 백엔드 코드(backend code)를 가진다. 또한, DApp은 일반적인 어플리케이션과 같이 사용자 단말(130)에서 실행되고 사용자 인터페이스를 제공하는 프론트엔드 코드(frontend code)를 포함할 수 있다.
DApp은 사용자가 블록체인 네트워크(110)를 이용하기 위한 창문이나 열쇠역할을 하며, 사용자의 입력을 받고 그에 따라 데이터의 저장과 백업을 처리하기 위한 스마트 컨트랙트를 생성한다.
본 발명에 따른 블록체인 기반의 대용량 데이터 저장 시스템은 블록체인 네트워크(110)의 노드(100) 상에서 실행되는 DApp에 의해 구현될 수 있으며, 이 DApp은 P2P 오버레이 네트워크(120)와 연동하여 P2P 오버레이 네트워크(120)에 타겟 데이터 사본을 저장한다. 즉, 본 발명의 마이너(100)는 블록체인 네트워크(110)의 노드이면서 일반 사용자의 접속을 허용하여 블록체인과 연결시켜주는 역할도 하고, P2P 오버레이 네트워크(120)의 피어(peer) 역할도 수행한다. 또한, 본 발명에 따른 블록체인 기반의 대용량 데이터 저장 시스템의 DApp은 사용자 단말(130)에 대용량 데이터 저장 서비스를 이용하기 위한 사용자 인터페이스를 제공할 수 있다.
사용자 단말(130)은 블록체인 데이터를 직접 저장하지 않고 일종의 서버와 같은 역할을 하는 노드(100)에 연결하여 이를 통해 블록체인에 접근하고 스마트 컨트랙트를 사용할 수 있다. 사용자 단말(130)은 노드(100)를 통해 블록체인 네트워크에 접속하여 대용량 데이터 저장 서비스를 이용하는 개인용 컴퓨터나, 스마트폰, PDA(Personal Digital Assistants), 휴대용 컴퓨터 등의 컴퓨팅 장치이다.
사용자 단말(130)은 노드(100)에서 실행되는 DApp를 통해 생성 또는 저장하고 있는 타겟 데이터를 업로드하고 조회할 수 있다. 사용자가 자신의 단말(130)을 통해 업로드하는 타겟 데이터와 그에 대한 정보는 노드(100)의 DApp이 수신하고 처리한다.
도 2는 본 발명의 일 실시예에 따른 블록체인 기반의 대용량 데이터 저장 방법을 설명하기 위한 순서도이다.
사용자는 단말(130)을 통해 노드(100)에 접속하여 타겟 데이터의 등록을 요청한다. 이때, 노드(100)에 설치되어 실행되는 DApp을 통해 업로드 요청을 입력하고 타겟 데이터를 전송할 수 있으며, DApp과 사용자 단말(130) 간에 시큐어 세션(secure session)을 설정하고 이를 통해 타겟 데이터를 업로드할 수 있다.
사용자의 데이터 등록 요청시 특정 노드(100)와 사용자 단말(130) 간에 데이터 업로드를 위한 별도의 세션이 설정된다(S21).
노드(100)는 설정된 세션을 통해 사용자 단말(130)로부터 타겟 데이터를 수신하고 자신의 저장 장치 즉, 로컬 저장소에 저장한다(S22).
본 발명에 따른 블록체인 기반의 대용량 데이터 저장 방법은 블록체인 네트워크(110)의 모든 노드 상에서 수행되는 것이고 블록체인에는 타겟 데이터가 실제로 저장되지 않고 타겟 데이터에 대한 URI만 저장되지만, 데이터의 완전 유실 방지를 위해 블록체인 네트워크(110) 상의 임의의 하나 이상의 노드가 해당 데이터의 사본을 저장하도록 한다.
데이터를 DApp을 통해 업로드하는 과정은 모든 노드가 수행할 필요 없이 사용자가 접속한 어느 한 노드만 수행하면 된다. 전자서명은 모든 마이너가 수행하더라도 데이터의 업로드는 하나의 노드만 수행하여 데이터 트래픽은 한 노드를 통해서만 발생하도록 할 수 있다. 이와 같이 사용자 단말(130)로부터 타겟 데이터를 수신한 노드(100)가 사본을 저장하도록 하는 것이 바람직하다. 해당 노드(100)는 별도 세션을 통해 타겟 데이터를 이미 업로드 받았으니 지우지 않는 것으로 족하기 때문이다.
노드(100)는 블록체인 네트워크(110)를 통해 타겟 데이터에 전자서명을 수행한다(S23). 머클트리 방식으로 해쉬값을 구해서 서명을 하며, 이 과정은 DApp을 통해 블록체인 네트워크(110)의 모든 마이너가 같이 수행한다.
전자서명 전에, 노드(100)의 DApp은 수신한 타겟 데이터의 정합성을 확인할 수 있다. 정합성 확인은, 전자서명 전에 타겟 데이터를 파싱하여 타겟 데이터의 구조와 형식이 데이터 관리 서비스에서 미리 정해진 요구 요건을 충족하는지 판정하는 과정이다. 더 나아가 빅데이터를 수집하고 AI(Artificial Intelligence)를 이용하여 해당 데이터가 기본적인 유형을 만족하는지 여부를 판정할 수 있다. 예를 들어, 유전자 정보를 관리하는 서비스인데 사용자가 말의 유전자 정보를 등록한다고 요청 해놓고 엉뚱한 데이터를 업로드하는 경우 시맨틱 체크(Semantic Check)를 통해 이를 제지할 수 있다.
전자서명된 타겟 데이터를 P2P 오버레이 네트워크(120)의 임의의 위치에 저장하고(S23), 저장 위치와 해당 해쉬값을 포함하는 URI(Uniform Resource Identifier)를 생성한다(S24). URI의 생성 역시 DApp을 통해 블록체인 네트워크(110)의 모든 마이너가 같이 수행한다.
P2P 오버레이 스토리지는 분산 스토리지 기술인 IPFS(Inter-Planetary File System)을 이용하여 구현될 수 있다. IPFS는 데이터의 탈중앙화를 위한 웹 프로토콜로서, 특정 데이터를 누가 가지고 있는지 정보를 획득하여 라우팅할 수 있으며, 데이터를 작게 쪼개어 공유한다.
DApp은 블록체인 네트워크(110)에 타겟 데이터를 신규 등록하는 트랜잭션을 발생시키되 블록체인 네트워크(110)의 블록에는 타겟 데이터의 고유 식별 정보 및 URI가 저장되도록 제어한다(S25). 이때 해당 데이터의 고유 식별 정보를 동적으로 생성 및 부여하여 저장하는 것이 바람직하며, 고유 식별 정보의 부여는 해당 데이터를 추후 업데이트하는데 필요하다.
신규 등록 트랜잭션은 블록체인화된 추상화된 스토리지에 데이터를 생성하도록 제어하는데, 이때 P2P 오버레이 네트워크(120) 상의 저장 위치와 해쉬값이 포함된 URI를 포함하는 블록이 생성된다. 노드들은 블록체인 네트워크(110) 상의 트랜잭션을 모아 블록을 생성하여 블록체인에 저장하는데, 이때 트랜잭션에는 실제 데이터 대신 URI가 들어간다.
즉, 실제 타겟 데이터는 P2P 오버레이 스토리지에 저장되고 블록체인 네트워트(110)의 블록에는 저장되지 않으며, 블록에는 링크 정보만 들어가는 것이다. 이에 따라, 추상화된 블록체인 스토리지에는 매우 적은 양의 정보만 올라가도록 제한할 수 있다. 한편, 블록의 생성시에도 머클트리 방식으로 해쉬값을 구해서 장부를 저장한다. 블록에 포함되는 트랜잭션에는 사용자의 지갑주소 역시 포함될 수 있으며, 이는 추후 해당 데이터의 조회 및 업데이트 등의 관리시 권한 체크를 위해 필요하다.
실시예에 따라서는, DApp이 전자서명된 타겟 데이터 자체를 사용자 단말(130)에도 전달할 수 있다.
한편, 마이너들은 블록체인 네트워크(110) 상에서 이탈할 수 있기 때문에, 본 발명에서는 사용자가 접속한 노드(100)에 사본을 저장하는 것과 함께 추가적인 백업을 수행한다. 이를 위해, 블록체인 네트워크(110)의 다른 노드에 URI를 전달하여 타겟 데이터의 사본을 생성하도록 지시한다(S26). 지시 받은 노드는 P2P 오버레이 네트워크(120)에 저장된 타겟 데이터의 사본을 가져와 백업본을 만들기 때문에 타겟 데이터의 사본의 사본을 저장하는 것으로 볼 수 있다.
도 3은 본 발명의 일 실시예에 따라 저장된 대용량 데이터의 사본을 저장하는 방법을 설명하기 위한 순서도이다.
먼저, 블록체인 네트워크(110)의 다른 노드들 중 하나 이상의 노드를 선택한다(S21). 사용자가 접속하여 데이터 등록 요청을 한 노드는 이미 로컬에 타겟 데이터의 사본을 저장하고 있기 때문에, 이 노드를 제외한 다른 노드들 중 하나 이상의 노드를 타겟 데이터의 사본의 사본을 저장할 노드로 선택할 수 있다.
DApp은 랜덤하게 또는 특정 기준을 가지고 하나 이상의 마이너를 추가로 선택한다. 예를 들어, DApp은 작업 능력에 따라 사본의 사본을 저장할 노드를 선정할 수 있다. 마이닝 능력이 클 수록 이탈할 가능성이 적기 때문에 작업 능력이 큰 노드를 백업 노드로 선택하는 것이다,
이와 같이 선택된 하나 이상의 노드에 타겟 데이터의 URI를 전달하여 P2P 오버레이 네트워크(120)로부터 전자서명된 타겟 데이터를 다운로드 받아 저장하도록 지시한다(S32).
DApp은 백업 사본을 만들 노드(들)에게 데이터의 위치를 나타내는 URI를 전달해주고 백그라운드에서 다운로드 받도록 제어한다. 이와 같이 타겟 데이터의 사본의 사본을 저장하는 하나 이상의 노드는 데이터 전체를 다운로드 받거나 1/N(여기서, N은 사본의 사본을 저장하는 마이너의 수)로 나누어 각각 타겟 데이터의 일부만을 저장할 수 있다.
DApp은 블록체인 네트워크(110)에 타겟 데이터의 사본을 저장하는 트랜잭션을 발생시킴으로써, 블록체인 네트워크(110)의 블록에는 타겟 데이터의 사본을 저장한 노드들의 목록이 기재되도록 제어한다(S33). 결과적으로, 타겟 데이터의 사본이나 사본의 사본을 저장하고 있는 노드들의 목록은 블록체인에 저장될 것이다.
DApp은 소정의 주기에 따라 목록 내의 마이너들의 마이닝 활동을 모니터링하고, 모니터링 결과 일정 기간 이상 마이닝을 하지 않는 마이너가 있는 경우 이탈한 것으로 판단하고 그에 대해 조치를 취할 수 있다. 예컨대, 해당 마이너가 가지고 있는 URI를 인출하여 다른 마이너에게 전달하고 해당 마이너가 저장하고 있던 타겟 데이터의 사본을 그대로 생성하여 저장하도록 지시한다.
한편, 사용자는 DApp을 통해 블록체인에 등록된 데이터를 조회할 수 있다. DApp은 요청된 고유 식별 정보에 해당하는 데이터를 P2P 오버레이 네트워크(120)로부터 읽어와서 사용자에게 제공한다.
등록 서비스나 조회 서비스에 과금을 하는 실시예의 경우, 블록체인 네트워크와(110)의 연동하여 사용자의 암호화폐 지갑으로부터 비용이 결제되도록 할 수 있다. 과금이 불필요한 실시예의 경우는 블록체인 네트워크(110)와 독립적으로 조회 서비스를 제공할 수도 있다.
또한, 사용자는 DApp을 통해 블록체인에 등록된 데이터를 업데이트할 수 있다. 노드(100)가 소정의 타겟 데이터에 대한 업데이트 요청을 수신하면 사용자에게 업데이트 권한이 있는지 여부를 체크한다. 예를 들어, 권한 체크를 위해 요청자의 암호화폐 지갑주소로 인증이 가능한지 여부를 확인한다. 사용자가 업데이트 권한을 가진 경우, 기존에 등록된 데이터와 관련한 데이터를 추가로 저장하거나 기존 데이터를 수정하는 방식으로 업데이트를 할 수 있다.
각 노드(100)는 전체 거래 원장을 저장하므로 데이터의 등록, 조회 및 업데이트에 대한 전반적인 상황을 직접 파악할 수 있으며, 이를 통해 사용자가 어떤 데이터를 조회하거나 업데이트하기를 원하는지 그리고 해당 사용자가 조회 권한 또는 업데이트 권한이 있는지를 판단할 수 있다.
DApp은 업데이트 요청에 의해 추가된 데이터 또는 수정된 데이터를 P2P 오버레이 네트워크(120) 상의 임의의 위치에 저장하고 해당 위치를 나타내는 업데이트 URI를 생성한다.
또한, 해당 타겟 데이터에 대한 업데이트 트랜잭션을 블록체인 네트워크(110) 상에 발생시킨다. 이 업데이트 트랜잭션은 블록체인 네트워크(110)의 블록에 업데이트 URI가 저장되도록 제어한다. 즉, 데이터의 등록시와 마찬가지로 실제 수정된 데이터는 P2P 오버레이 스토리지에 저장되고, 블록체인의 블록에는 URI만 들어가도록 하는 것이다. 등록시와 마찬가지로 업데이트 데이터에 대한 전자서명 역시 필요하며, 업데이트 트랜잭션에는 해당 데이터의 고유 식별 정보가 포함될 것이다.
한편, 사용자가 자신의 지갑주소를 가지고 DApp을 통해 블록체인 장부를 검색하면 특정 사용자가 일으킨 트랜잭션들을 타임 라인을 따라 얻을 수 있다. 또한, 특정 고유 식별 정보를 가지고 DApp을 통해 블록체인 장부를 검색하면 특정 타겟 데이터의 생성 및 업데이트 과정을 타임 라인을 따라 얻을 수 있다. 예를 들어, 말 유전자 정보가 타겟 데이터로 생성 및 등록되었다가, 말과 관련된 사진이나 영상 등이 더 업로드 되고, 말의 소유자가 변경되었다는 등의 전반적인 상황을 파악할 수 있다.
실제 타겟 데이터는 노드(100)의 DApp이 p2p 오버레이 네트워크(120)에 올리기 때문에, 사용자는 해당 데이터가 어디에 저장되는지 알 필요가 없을 뿐 아니라 URI도 받을 필요가 없다. 사용자의 입장에서는 등록된 데이터의 고유 식별 정보만을 가지고 있으면 DApp을 통해 해당 데이터를 관리할 수 있다.
상기와 같이 본 발명에 따르면, 블록체인 네트워크(110) 내부에 데이터를 저장하지 않고 P2P 오버레이 네트워크(120)에 데이터를 저장하면서도, 블록체인 네트워크(110)를 통해 사용자가 언제든지 인출하거나 업데이트하는 등의 관리를 할 수 있다.
또한, 적어도 하나의 노드에 사본을 저장하여 최종 시더(last seeder) 역할을 하도록 함으로써, P2P 오버레이 네트워크(120) 상의 데이터가 남아 있지 않더라도 완전히 유실되는 일을 방지할 수 있다. 토렌트는 P2P 네트워크 상의 어디에라도 데이터가 있으면 그 데이터를 가지고 있는 시더로부터 데이터를 받아서 사본을 만들 수 있다. 그런데, 데이터를 가지고 있는 사용자의 컴퓨터가 고장이 난다거나 해당 데이터를 삭제해버리는 등 예기치 못한 상황이 발생한 경우, 블록체인 네트워크(110)의 트랜잭션에 의해 등록되어 있다고 기록된 데이터가 사라지는 일이 생길 수 있다. 이 경우에 대비해서 블록체인 네트워크(110) 임의의 노드가 타겟 데이터의 사본을 저장하여 최종 시더의 역할을 하도록 하는 것이다.
본 발명의 일 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속한다.
100: 노드(마이너)
110: 블록체인 네트워크
120: P2P 오버레이 네트워크
130: 사용자 단말

Claims (7)

  1. P2P 오버레이 네트워크와 연동하고 블록체인 네트워크의 노드로 동작하는 컴퓨터가,
    상기 블록체인 네트워크에 접속한 사용자 단말로부터 타겟 데이터의 등록이 요청되면 상기 노드와 상기 사용자 단말 간의 세션을 설정하는 단계;
    상기 세션을 통해 상기 사용자 단말로부터 상기 타겟 데이터를 수신하고 상기 노드의 로컬 저장소에 저장하는 단계;
    상기 블록체인 네트워크를 통해 상기 타겟 데이터에 전자서명을 수행하는 단계;
    상기 전자서명된 타겟 데이터를 상기 P2P 오버레이 네트워크 상의 임의의 위치에 저장하고, 해당 위치에 대한 정보와 상기 전자서명에 이용된 해쉬값을 포함하는 URI(Uniform Resource Identifier)를 생성하는 단계;
    상기 블록체인 네트워크에 상기 타겟 데이터를 신규 등록하는 트랜잭션을 발생시키되 상기 블록체인 네트워크의 블록에는 상기 URI가 저장되도록 제어하는 단계; 및
    상기 블록체인 네트워크의 다른 노드에 상기 URI를 전달하여 상기 타겟 데이터의 사본을 생성하도록 지시하는 단계;를 포함하는 것을 특징으로 하는 블록체인 기반의 대용량 데이터 저장 방법.
  2. 제1항에 있어서,
    상기 타겟 데이터의 사본을 생성하도록 지시하는 단계는,
    상기 블록체인 네트워크의 다른 노드들 중 하나 이상의 노드를 선택하는 단계;
    상기 선택된 하나 이상의 노드에 상기 URI를 전달하여 상기 P2P 오버레이 네트워크로부터 상기 전자서명된 타겟 데이터를 다운로드 받아 저장하도록 지시하는 단계; 및
    상기 블록체인 네트워크에 상기 타겟 데이터의 사본을 저장하는 트랜잭션을 발생시키되 상기 블록체인 네트워크의 블록에는 상기 타겟 데이터의 사본을 저장한 노드들의 목록이 기재되도록 제어하는 단계;를 포함하는 것을 특징으로 하는 블록체인 기반의 대용량 데이터 저장 방법.
  3. 제2항에 있어서,
    소정의 주기에 따라 상기 타겟 데이터의 사본을 저장하고 있는 노드들의 마이닝 활동을 모니터링하는 단계; 및
    상기 모니터링 결과 소정의 기간 동안 마이닝을 하지 않는 노드가 있는 경우, 해당 노드가 사본을 저장하고 있던 타겟 데이터의 URI를 다른 마이너에 전달하여 상기 타겟 데이터의 사본을 저장하도록 지시하는 단계;를 더 포함하는 것을 특징으로 하는 블록체인 기반의 대용량 데이터 저장 방법.
  4. 제2항에 있어서,
    상기 하나 이상의 노드를 선택하는 단계는,
    노드들의 마이닝 작업 능력에 따라 마이닝 작업 능력이 큰 노드를 타겟 데이터의 사본 저장을 위한 노드로 선택하는 단계;를 포함하는 것을 특징으로 하는 블록체인 기반의 대용량 데이터 저장 방법.
  5. 제2항에 있어서,
    상기 전자서명된 타겟 데이터를 다운로드 받도록 지시하는 단계는,
    상기 선택된 하나 이상의 노드가 상기 전자서명된 타겟 데이터를 선택된 노드의 수로 나누어 각각 일부만 저장하도록 지시하는 단계;를 포함하는 것을 특징으로 하는 블록체인 기반의 대용량 데이터 저장 방법.
  6. P2P 오버레이 네트워크;
    상기 P2P 오버레이 네트워크와 연동하는 노드를 포함하는 블록체인 네트워크; 및
    상기 블록체인 네트워크에 접속하여 대용량 데이터 저장 서비스를 이용하는 사용자 단말;을 포함하고,
    상기 노드는, 상기 사용자 단말로부터 타겟 데이터의 등록이 요청되면, 상기 사용자 단말과의 세션을 설정하여 상기 타겟 데이터를 수신하고, 상기 블록체인 네트워크를 통해 상기 타겟 데이터에 전자서명을 수행하고, 상기 전자서명된 타겟 데이터를 상기 P2P 오버레이 네트워크 상의 임의의 위치에 저장하고 해당 위치에 대한 정보와 상기 전자서명에 이용된 해쉬값을 포함하는 URI(Uniform Resource Identifier)를 생성하고, 상기 블록체인 네트워크에 상기 타겟 데이터를 신규 등록하는 트랜잭션을 발생시키되 상기 블록체인 네트워크의 블록에는 상기 URI가 저장되도록 제어하고, 상기 전자서명된 타겟 데이터는 상기 노드의 로컬 저장소에 저장하고, 상기 블록체인 네트워크의 다른 노드에 상기 URI를 전달하여 상기 타겟 데이터의 사본을 생성하도록 지시하는 것을 특징으로 하는 블록체인 기반의 대용량 데이터 저장 시스템.
  7. 제6항에 있어서,
    상기 노드는,
    상기 블록체인 네트워크의 다른 노드들 중 하나 이상의 노드를 선택하고, 선택된 하나 이상의 노드에 상기 URI를 전달하여 상기 P2P 오버레이 네트워크로부터 상기 전자서명된 타겟 데이터를 다운로드 받아 저장하도록 지시하고, 상기 블록체인 네트워크에 상기 타겟 데이터의 사본을 저장하는 트랜잭션을 발생시키되 상기 블록체인 네트워크의 블록에는 상기 타겟 데이터의 사본을 저장한 노드들의 목록이 기재되도록 제어하는 것을 특징으로 하는 블록체인 기반의 대용량 데이터 저장 시스템.
KR1020190034344A 2019-03-26 2019-03-26 블록체인 기반의 대용량 데이터 저장 방법 및 시스템 KR20200115787A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190034344A KR20200115787A (ko) 2019-03-26 2019-03-26 블록체인 기반의 대용량 데이터 저장 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190034344A KR20200115787A (ko) 2019-03-26 2019-03-26 블록체인 기반의 대용량 데이터 저장 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR20200115787A true KR20200115787A (ko) 2020-10-08

Family

ID=72897196

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190034344A KR20200115787A (ko) 2019-03-26 2019-03-26 블록체인 기반의 대용량 데이터 저장 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR20200115787A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102620056B1 (ko) 2023-07-11 2024-01-02 주식회사 지크립토 전자 서명 기반 데이터 저장 인증 기술을 지원하는신뢰 저장장치 및 그 장치의 구동방법, 그리고 위임 저장 인증 시스템

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102620056B1 (ko) 2023-07-11 2024-01-02 주식회사 지크립토 전자 서명 기반 데이터 저장 인증 기술을 지원하는신뢰 저장장치 및 그 장치의 구동방법, 그리고 위임 저장 인증 시스템

Similar Documents

Publication Publication Date Title
Daniel et al. IPFS and friends: A qualitative comparison of next generation peer-to-peer data networks
KR102026225B1 (ko) 블록 체인을 이용하여 데이터를 관리하는 장치 및 방법
JP6370016B2 (ja) 階層型ネットワークシステム、これに用いられるノード及びプログラム
CN110399338B (zh) 基于区块链的分布式文件索引系统及方法、云存储服务器
EP3837652B1 (en) Distributed blockchain data storage under account model
US20190222476A1 (en) Community Internet Drive
CN103078881B (zh) 网络资源下载信息的分享控制系统和方法
US9009286B2 (en) Locality based content distribution
US20180285839A1 (en) Providing data provenance, permissioning, compliance, and access control for data storage systems using an immutable ledger overlay network
TWI749488B (zh) 電腦實現的用於檢測和禁止重放攻擊的方法、系統及非暫時性電腦可讀的儲存媒體
US20210049157A1 (en) Taking snapshots of blockchain data
EP4115315A1 (en) Cryptographic data entry blockchain data structure
JP2021189638A (ja) 移行支援システム、移行支援方法、およびノード
KR20190110082A (ko) 블록 체인을 이용하여 데이터를 관리하는 장치 및 방법
EP3769219B1 (en) Taking snapshots of blockchain data
Vu et al. An efficient peer-to-peer bitcoin protocol with probabilistic flooding
JP2023544518A (ja) オペレーティングシステムを公開するためのブロックチェーンベースのシステムおよび方法
CN113508570B (zh) 在区块链中节点之间共享及验证区块及电子文档的方法
KR20200115786A (ko) 블록체인 기반의 데이터 관리 서비스 제공 방법 및 시스템
KR20200115787A (ko) 블록체인 기반의 대용량 데이터 저장 방법 및 시스템
Ohashi et al. Token-based sharing control for IPFS
KR20200125278A (ko) 블록체인 기반의 네트워크 부착 데이터 저장 시스템의 데이터 관리 방법
JP7408499B2 (ja) 分散台帳管理システム、分散台帳管理方法、およびノード
JP4554564B2 (ja) 分散データの管理方法および管理システム
Lu CloudChord: A P2P Network of Clients Cloud Storage for Data Access Pattern Privacy

Legal Events

Date Code Title Description
E601 Decision to refuse application