KR20190076197A - Apparatus and method for storing data based on blockchain - Google Patents

Apparatus and method for storing data based on blockchain Download PDF

Info

Publication number
KR20190076197A
KR20190076197A KR1020170177801A KR20170177801A KR20190076197A KR 20190076197 A KR20190076197 A KR 20190076197A KR 1020170177801 A KR1020170177801 A KR 1020170177801A KR 20170177801 A KR20170177801 A KR 20170177801A KR 20190076197 A KR20190076197 A KR 20190076197A
Authority
KR
South Korea
Prior art keywords
transaction
data
data file
chunk
block chain
Prior art date
Application number
KR1020170177801A
Other languages
Korean (ko)
Other versions
KR102288521B1 (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 KR1020170177801A priority Critical patent/KR102288521B1/en
Publication of KR20190076197A publication Critical patent/KR20190076197A/en
Application granted granted Critical
Publication of KR102288521B1 publication Critical patent/KR102288521B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Disclosed are an apparatus and a method for storing data based on a block chain. According to an embodiment of the present invention, the apparatus for storing data based on a block chain comprises: a data file dividing unit to divide a data file into predetermined data chunk units in accordance with a data order; a transaction generation unit to sequentially generate a transaction including a corresponding data chunk for each data chunk divided from the data file; and a transaction transceiving unit to transmit the generated transaction to a block chain node via a communication unit to store the transaction in a block chain. The transaction generation unit includes a transaction identifier of previous transaction including a priority data chunk in transaction including a second priority data chunk to the priority data chunk if the data file is divided into a plurality of data chunks in accordance with a data order to guarantee security and integrity of the data file and prevent damage by a malicious attack or a system fault. Even if an existing block chain technique with a limited data storage capacity is used, a large quantity of data files can be stored in the block chain.

Description

블록체인 기반의 데이터 저장 장치 및 방법{Apparatus and method for storing data based on blockchain}BACKGROUND OF THE INVENTION 1. Field of the Invention [0001] The present invention relates to a block-

본 발명은 블록체인 기반의 데이터 저장 장치 및 방법에 관한 것으로서, 더욱 상세하게는, 데이터 파일을 블록체인에 분산하여 저장하는 블록체인 기반의 데이터 저장 장치 및 방법에 관한 것이다.The present invention relates to a block-chain-based data storage apparatus and method, and more particularly, to a block-chain-based data storage apparatus and method for distributing and storing data files in a block chain.

일반적으로, 블록체인(blockchain) 기술은 특정 데이터나 디지털 거래 장부 등을 중앙 집중형 서버가 아닌 다수의 블록체인 노드에 분산 저장하여 공동으로 관리하는 기술을 말한다. 즉, 블록체인 기술은 정보로의 접근을 차단하는 방식이 아닌 정보를 공유하고 분산 저장하는 방식으로 해당 정보의 위·변조를 방지하는 기술이다.Generally, a blockchain technique refers to a technique of distributing and storing specific data or digital transaction books in a plurality of block chain nodes instead of a centralized server. That is, the block-chain technology is a technique for preventing information from being altered by sharing information and distributing the information instead of blocking access to information.

그러나, 비트코인(Bitcoin)이나 이더리움(Ethereum) 등에서 사용되는 기존의 블록체인 기술은, 가상 화폐 거래 시의 해킹을 방지하기 위한 것으로서, 블록체인에 저장되는 데이터의 크기가 2016년 발표된 0.12 버전의 비트코인의 경우 83바이트에 불과하고, 이더리움의 경우에도 64KB에 불과할 정도로 제한적이어서, 대용량 데이터 파일의 저장에 적용될 수 없다는 문제가 있다.However, the existing block chain technology used in Bitcoin or Ethereum is to prevent hacking in the virtual currency transaction, and the size of the data stored in the block chain is 0.12 version There is a problem in that it can not be applied to the storage of a large-capacity data file since it is limited to only 83 bytes in the case of the bit coin and in the case of the etherium is limited to only 64 KB.

또한, 한국 등록특허 제10-1132672호 등에 개시된 바와 같이, 데이터 파일을 단일한 중앙 서버에 저장하여 관리하는 기존 기술들은, 악의적인 공격에 의한 데이터 파일의 위·변조가 용이하고, 저장된 데이터의 손실 발생시 데이터 복구가 어렵다는 문제가 있다. 또한, 이러한 기존 기술들은 중앙 서버가 전체 시스템의 단일 장애 지점(SPOF:Single Point of Failure)에 해당하기 때문에, 데이터 파일을 저장한 중앙 서버에 장애가 발생하면 시스템 전체가 중단되어 데이터 파일의 다운로드나 출력 등이 불가능하다는 문제가 있다.In addition, as disclosed in Korean Patent No. 10-1132672, existing technologies for storing and managing data files in a single central server are not limited to the conventional techniques for easily modifying and modifying data files due to malicious attack, There is a problem that it is difficult to recover the data when it occurs. In addition, since the central server corresponds to a single point of failure (SPOF) of the entire system, if the central server storing the data file fails, the whole system is interrupted and the download or output of the data file And so on.

본 발명이 해결하고자 하는 기술적 과제는, 데이터 파일의 보안성과 무결성을 보장하고 악의적인 공격이나 시스템 장애로 인한 피해를 방지함은 물론, 데이터 저장 용량이 제한적인 기존의 블록체인 기술을 그대로 이용하는 경우에도 대용량의 데이터 파일을 블록체인에 저장할 수 있는 블록체인 기반의 데이터 저장 장치 및 방법을 제공하는 것이다.SUMMARY OF THE INVENTION It is an object of the present invention to provide an apparatus and method for protecting a data file by ensuring security and integrity of a data file and preventing damages caused by malicious attacks or system failures, And to provide a block-chain-based data storage apparatus and method capable of storing a large-capacity data file in a block chain.

본 발명의 일 실시예에 따른 블록체인 기반의 데이터 저장 장치는, 블록체인에 저장하고자 하는 데이터 파일을 저장하고 있는 저장 유닛; 블록체인 네트워크의 블록체인 노드와 유선 통신 또는 무선 통신을 수행하는 통신 유닛; 및 상기 데이터 파일을 상기 통신 유닛을 통해 상기 블록체인 노드로 전송하여 블록체인에 저장되도록 하는 제어 유닛을 포함하고, 상기 제어 유닛은, 상기 데이터 파일을 데이터 순서에 따라 미리 결정된 데이터 청크 단위로 분할하는 데이터 파일 분할부; 상기 데이터 파일에서 분할되는 데이터 청크별로 해당 데이터 청크를 포함하는 트랜잭션을 순차적으로 생성하는 트랜잭션 생성부; 및 상기 생성된 트랜잭션을 상기 통신 유닛을 통해 상기 블록체인 노드로 전송하여 블록체인에 저장되도록 하는 트랜잭션 송수신부를 포함하고, 상기 트랜잭션 생성부는, 상기 데이터 파일이 데이터 순서에 따라 복수의 데이터 청크로 분할되는 경우, 선순위 데이터 청크를 포함하는 직전 트랜잭션의 트랜잭션 식별자를, 상기 선순위 데이터 청크 다음의 차순위 데이터 청크를 포함하는 트랜잭션에 포함시킨다.A block-chain-based data storage device according to an embodiment of the present invention includes a storage unit storing a data file to be stored in a block chain; A communication unit for performing wired communication or wireless communication with a block chain node of a block-chain network; And a control unit for transmitting the data file to the block chain node via the communication unit and storing the data file in a block chain, wherein the control unit divides the data file into predetermined data chunk units according to data order Data file partitioning; A transaction generating unit for sequentially generating a transaction including a corresponding data chunk for each data chunk divided in the data file; And a transaction transceiver for transmitting the generated transaction to the block chain node through the communication unit and storing the generated transaction in a block chain, wherein the transaction generating unit is configured to generate the transaction data by dividing the data file into a plurality of data chunks , The transaction identifier of the immediately preceding transaction including the chief data chunk is included in the transaction including the next data chunk following the chunk of the preceding data.

일 실시예에 있어서, 상기 데이터 파일 분할부는, 상기 데이터 파일의 크기가 미리 결정된 데이터 청크의 크기보다 크지 않은 경우, 상기 데이터 파일을 분할하지 않고, 상기 트랜잭션 생성부는, 상기 데이터 파일 전체를 포함하는 트랜잭션을 생성할 수 있다.In one embodiment, the data file division unit does not divide the data file when the size of the data file is not larger than the predetermined size of the data chunk, Can be generated.

일 실시예에 있어서, 상기 트랜잭션 생성부는, 상기 데이터 파일에서 분할된 데이터 청크가 최초 데이터 청크인 경우, 상기 최초 데이터 청크를 포함하는 트랜잭션에 직전 트랜잭션의 트랜잭션 식별자 값으로서 0 값을 포함시킬 수 있다.In one embodiment, the transaction generating unit may include a value of 0 as a transaction identifier value of a previous transaction in a transaction including the initial data chunk when the chunk of data divided in the data file is the first data chunk.

일 실시예에 있어서, 상기 트랜잭션 생성부는, 상기 데이터 파일에서 분할된 데이터 청크가 최종 데이터 청크인 경우, 상기 최종 데이터 청크를 포함하는 트랜잭션에 상기 데이터 파일을 식별하는 파일 식별 정보를 더 포함시킬 수 있다.In one embodiment, the transaction generating unit may further include file identification information for identifying the data file in the transaction including the final data chunk when the divided data chunk in the data file is the final data chunk .

일 실시예에 있어서, 상기 제어 유닛은, 상기 데이터 파일의 최종 데이터 청크를 포함하는 최종 트랜잭션이 생성되어 전송된 경우, 상기 최종 트랜잭션의 트랜잭션 식별자를 저장하는 트랜잭션 ID 저장부를 더 포함할 수 있다.In one embodiment, the control unit may further include a transaction ID storage unit storing a transaction identifier of the final transaction when a final transaction including a final data chunk of the data file is generated and transmitted.

일 실시예에 있어서, 상기 트랜잭션 송수신부는, 상기 데이터 파일의 최종 데이터 청크를 포함시켜 전송한 최종 트랜잭션의 트랜잭션 식별자를 사용자의 데이터 파일 다운로드 명령에 따라 임의의 블록체인 노드로 전송하여 해당 블록체인 노드로부터 상기 전송된 트랜잭션 식별자에 대응하는 트랜잭션을 수신하고, 상기 트랜잭션 송수신부가 수신한 트랜잭션에 직전 트랜잭션의 트랜잭션 식별자가 포함된 경우 상기 직전 트랜잭션의 트랜잭션 식별자를 임의의 블록체인 노드로 전송하여 해당 블록체인 노드로부터 상기 전송된 직전 트랜잭션의 트랜잭션 식별자에 대응하는 트랜잭션을 수신하는 과정을 반복할 수 있다.In one embodiment, the transaction transceiver transmits a transaction identifier of a final transaction including a final data chunk of the data file to an arbitrary block chain node according to a data file download command of the user, Receiving a transaction corresponding to the transmitted transaction identifier, and if the transaction received by the transaction transmitting and receiving unit includes a transaction identifier of a previous transaction, transmitting the transaction identifier of the immediately preceding transaction to a block-chain node, The process of receiving the transaction corresponding to the transaction identifier of the immediately preceding transaction can be repeated.

일 실시예에 있어서, 상기 제어 유닛은, 상기 트랜잭션 송수신부가 수신한 트랜잭션에서 데이터 청크와 직전 트랜잭션의 트랜잭션 식별자를 획득하여 상기 획득된 데이터 청크를 임시 저장하고, 상기 획득된 직전 트랜잭션의 트랜잭션 식별자를 상기 트랜잭션 송수신부로 전달하는 트랜잭션 데이터 획득부; 및 상기 트랜잭션 데이터 획득부에 의해 임시 저장된 데이터 청크들을 결합하여 데이터 파일을 생성하는 데이터 파일 생성부를 더 포함할 수 있다.In one embodiment, the control unit obtains the transaction identifier of the immediately preceding transaction and the data chunk in the transaction received by the transaction sending and receiving unit, temporarily stores the obtained data chunk, and stores the transaction identifier of the obtained immediately preceding transaction A transaction data acquiring unit for transferring the transaction data to the transaction transmitting and receiving unit; And a data file generation unit for generating a data file by combining the data chunks temporarily stored by the transaction data acquisition unit.

본 발명의 일 실시예에 따른 블록체인 기반의 데이터 저장 방법은, 블록체인 네트워크의 블록체인 노드와 유선 통신 또는 무선 통신을 수행하는 클라이언트가 데이터 파일을 블록체인에 저장하는 방법으로서, 상기 클라이언트가 상기 데이터 파일을 데이터 순서에 따라 미리 결정된 데이터 청크 단위로 분할하는 (a) 단계; 상기 클라이언트가 상기 데이터 파일에서 분할되는 데이터 청크별로 해당 데이터 청크를 포함하는 트랜잭션을 순차적으로 생성하는 (b) 단계; 및 상기 클라이언트가 상기 생성된 트랜잭션을 상기 블록체인 노드로 전송하여 블록체인에 저장되도록 하는 (c) 단계를 포함하고, 상기 (b) 단계는, 상기 데이터 파일이 데이터 순서에 따라 복수의 데이터 청크로 분할되는 경우, 선순위 데이터 청크를 포함하는 직전 트랜잭션의 트랜잭션 식별자를, 상기 선순위 데이터 청크 다음의 차순위 데이터 청크를 포함하는 트랜잭션에 포함시키는 단계를 포함할 수 있다.A block chain-based data storage method according to an embodiment of the present invention is a method for storing a data file in a block chain by a client performing wire communication or wireless communication with a block chain node of a block chain network, (A) dividing a data file into predetermined data chunk units according to data order; (B) sequentially generating a transaction including a corresponding data chunk for each data chunk divided by the client in the data file; And (c) causing the client to transmit the generated transaction to the block-chain node to be stored in a block chain, and wherein the step (b) includes the step of, when the data file includes a plurality of data chunks And if so, including the transaction identifier of the immediately preceding transaction including the chunk of the primary data in the transaction including the next chunk of data following the chunk of the primary data.

일 실시예에 있어서, 상기 (a) 단계는, 상기 데이터 파일의 크기가 미리 결정된 데이터 청크의 크기보다 크지 않은 경우, 상기 데이터 파일을 분할하지 않는 단계를 포함하고, 상기 (b) 단계는, 상기 데이터 파일이 분할되지 않는 경우, 상기 데이터 파일 전체를 포함하는 트랜잭션을 생성하는 단계를 포함할 수 있다.In one embodiment, the step (a) may include not dividing the data file if the size of the data file is not larger than a predetermined size of the data chunk, and the step (b) And if the data file is not partitioned, creating a transaction that includes the entire data file.

일 실시예에 있어서, 상기 (b) 단계는, 상기 데이터 파일에서 분할된 데이터 청크가 최초 데이터 청크인 경우, 상기 최초 데이터 청크를 포함하는 트랜잭션에 직전 트랜잭션의 트랜잭션 식별자 값으로서 0 값을 포함시키는 단계를 포함할 수 있다.In one embodiment, the step (b) includes the step of, when the data chunk divided in the data file is the first data chunk, including a zero value as a transaction identifier value of a previous transaction in the transaction including the initial data chunk . ≪ / RTI >

일 실시예에 있어서, 상기 (b) 단계는, 상기 데이터 파일에서 분할된 데이터 청크가 최종 데이터 청크인 경우, 상기 최종 데이터 청크를 포함하는 트랜잭션에 상기 데이터 파일을 식별하는 파일 식별 정보를 더 포함시키는 단계를 포함할 수 있다.In one embodiment, the step (b) may further include, when the divided data chunk in the data file is the final data chunk, further including file identification information for identifying the data file in the transaction including the final data chunk Step < / RTI >

일 실시예에 있어서, 상기 방법은, 상기 데이터 파일의 최종 데이터 청크를 포함하는 최종 트랜잭션이 생성되어 전송된 경우, 상기 클라이언트가 상기 최종 트랜잭션의 트랜잭션 식별자를 저장하는 (d) 단계를 더 포함할 수 있다.In one embodiment, the method may further comprise the step (d) of: if the client has generated and transmitted a final transaction comprising a final chunk of the data file, storing the transaction identifier of the final transaction have.

일 실시예에 있어서, 상기 방법은, 상기 클라이언트가 상기 데이터 파일의 최종 데이터 청크를 포함시켜 전송한 최종 트랜잭션의 트랜잭션 식별자를, 사용자의 데이터 파일 다운로드 명령에 따라 임의의 블록체인 노드로 전송하여 해당 블록체인 노드로부터 상기 전송된 트랜잭션 식별자에 대응하는 트랜잭션을 수신하는 (e) 단계; 및 상기 클라이언트가 수신한 트랜잭션에 직전 트랜잭션의 트랜잭션 식별자가 포함된 경우, 상기 클라이언트가 상기 직전 트랜잭션의 트랜잭션 식별자를 임의의 블록체인 노드로 전송하여 해당 블록체인 노드로부터 상기 전송된 직전 트랜잭션의 트랜잭션 식별자에 대응하는 트랜잭션을 수신하는 과정을 반복하는 (f) 단계를 더 포함할 수 있다.In one embodiment, the method further comprises transmitting the transaction identifier of the last transaction, which the client has transmitted including the last data chunk of the data file, to a block-chain node according to the user's data file download command, (E) receiving a transaction corresponding to the transmitted transaction identifier from a chain node; And if the transaction received by the client includes the transaction identifier of the immediately preceding transaction, the client transmits the transaction identifier of the immediately preceding transaction to the arbitrary block chain node and transmits the transaction identifier of the immediately preceding transaction And (f) repeating the process of receiving the corresponding transaction.

일 실시예에 있어서, 상기 (f) 단계는, 상기 클라이언트가 수신한 트랜잭션에서 데이터 청크와 직전 트랜잭션의 트랜잭션 식별자를 획득하여 상기 획득된 데이터 청크를 임시 저장하고, 상기 획득된 직전 트랜잭션의 트랜잭션 식별자를 임의의 블록체인 노드로 전송하는 단계를 포함하고, 상기 방법은, 상기 (f) 단계에서 임시 저장된 데이터 청크들을 결합하여 데이터 파일을 생성하는 (g) 단계를 더 포함할 수 있다.In one embodiment, the step (f) includes: acquiring a transaction identifier of a data chunk and a previous transaction in a transaction received by the client, temporarily storing the obtained data chunk, and acquiring a transaction identifier of the obtained previous transaction (G) combining data chunks stored temporarily in step (f) to generate a data file. ≪ RTI ID = 0.0 > (g) < / RTI >

본 발명에 따른 실시예들은, 상술한 동작 또는 방법을 컴퓨터 시스템을 통해 실행하는 컴퓨터 프로그램으로서 기록매체에 기록되는 컴퓨터 프로그램을 이용하여 구현될 수 있다.The embodiments according to the present invention can be implemented using a computer program recorded on a recording medium as a computer program for executing the above-described operations or methods through a computer system.

본 발명에 따르면, 데이터의 위조 및 변조가 불가한 블록체인 기술을 이용하여 사용자의 데이터 파일을 다수의 노드에 분산 저장하여 관리함으로써, 데이터 파일의 보안성과 무결성을 보장하고, 악의적인 공격이나 시스템 장애로 인한 피해를 방지할 수 있다.According to the present invention, a data file of a user is distributedly stored and managed in a plurality of nodes by using a block chain technique in which data can not be falsified or tampered, thereby ensuring the security and integrity of the data file, It is possible to prevent damage caused by

또한, 저장 대상 데이터 파일을 데이터 다수의 데이터 청크들로 분할하고, 데이터 청크별로 해당 데이터 청크를 포함하는 트랜잭션들을 순차적으로 생성하여 블록체인 노드로 전송함으로써, 데이터 저장 용량이 제한적인 기존의 블록체인 기술을 그대로 이용하는 경우에도 대용량의 데이터 파일을 블록체인에 저장할 수 있으며, 데이터 저장 시스템 구축 비용을 절감할 수 있다.In addition, by dividing the data file to be stored into a plurality of data chunks, sequentially generating transactions including the corresponding data chunks for each data chunk, and transmitting them to the block chain node, the existing block chain technology The data file of a large capacity can be stored in the block chain and the cost of constructing the data storage system can be reduced.

나아가, 본 발명이 속하는 기술 분야의 통상의 지식을 가진 자라면, 본 발명에 따른 다양한 실시예들이 상기 언급되지 않은 여러 기술적 과제들을 해결할 수 있음을 이하의 설명으로부터 자명하게 이해할 수 있을 것이다.It will be apparent to those skilled in the art that various embodiments of the present invention can be accomplished without departing from the spirit and scope of the present invention.

도 1은 본 발명이 적용되는 블록체인 네트워크 환경의 일례를 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 블록체인 기반의 데이터 저장 장치를 나타낸 블록도이다.
도 3은 본 발명의 일 실시예에 따라 생성되는 데이터 청크 저장용 트랜잭션의 데이터 포맷을 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 블록체인 기반의 데이터 저장 방법의 데이터 파일 저장 프로세스를 나타낸 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 블록체인 기반의 데이터 저장 방법의 데이터 파일 다운로드 프로세스를 나타낸 흐름도이다.
1 is a diagram illustrating an example of a block-chain network environment to which the present invention is applied.
2 is a block diagram illustrating a block-chain-based data storage device according to an embodiment of the present invention.
3 illustrates a data format of a transaction for storing data chunks generated according to an embodiment of the present invention.
4 is a flowchart illustrating a data file storing process of a block-chain-based data storing method according to an embodiment of the present invention.
5 is a flowchart illustrating a data file download process of a block chain-based data storage method according to an embodiment of the present invention.

이하, 본 발명의 기술적 과제에 대한 해결 방안을 명확화하기 위해 첨부도면을 참조하여 본 발명의 실시예들을 상세하게 설명한다. 다만, 본 발명을 설명함에 있어서 관련 공지기술에 관한 설명이 오히려 본 발명의 요지를 불명료하게 하는 경우 그에 관한 설명은 생략하기로 한다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 설계자, 제조자 등의 의도 또는 관례 등에 따라 달라질 수 있을 것이다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings in order to clarify solutions for technical problems of the present invention. In the following description of the present invention, however, the description of related arts will be omitted if the gist of the present invention becomes obscure. In addition, the terms described below are defined in consideration of the functions of the present invention, and may be changed depending on the intention or custom of the designer, the manufacturer, and the like. Therefore, the definition should be based on the contents throughout this specification.

도 1에는 본 발명이 적용되는 블록체인 네트워크 환경의 일례가 도시되어 있다.FIG. 1 shows an example of a block-chain network environment to which the present invention is applied.

도 1에 도시된 바와 같이, 블록체인 네트워크는 사용자의 클라이언트(10)와 다수의 블록체인 노드(20)로 구성될 수 있다. 사용자의 클라이언트(10)는 데이터 파일의 전송과 저장 요청, 저장된 파일의 삭제나 다운로드 요청 등을 수행할 수 있다. 이러한 클라이언트(10)는 서버(server)나 PC(Personal Computer) 등과 같은 고정 단말로 구성되거나, 핸드폰 등과 같은 모바일 단말로 구성될 수 있다.As shown in FIG. 1, a block-chain network may consist of a user's client 10 and a plurality of block-chain nodes 20. The client 10 of the user can perform transmission and storage request of the data file, deletion of the stored file, and download request. The client 10 may be a fixed terminal such as a server or a PC, or a mobile terminal such as a mobile phone.

블록체인 노드(20)는 블록체인에 데이터 파일을 저장하는데 사용되는 트랜잭션(transaction)의 승인, 블록체인을 이용한 트랜잭션 내역 보관, 다른 노드들과의 주기적인 블록 분산 합의 등을 수행할 수 있다. 이러한 블록체인 노드(20)는 서버나 PC 등과 같은 컴퓨터 시스템으로 구성될 수 있으며, 비트코인(Bitcoin)이나 이더리움(Ethereum) 등과 같은 블록체인 프로그램이 설치되어 실행될 수 있다. 또한, 다수의 블록체인 노드(20)를 포함하는 블록체인 노드 그룹은 누구나 접근할 수 있는 퍼블릭 체인(public chain)으로 구성되거나, 특정 사용자들의 클라이언트만 접근할 수 있는 프라이빗 체인(private chain)으로 구성될 수 있다.The block chain node 20 can perform a transaction acknowledgment used to store a data file in a block chain, store the transaction history using a block chain, and perform periodic block distribution agreement with other nodes. The block chain node 20 may be constituted by a computer system such as a server or a PC, and a block chain program such as Bitcoin or Ethereum may be installed and executed. In addition, a block chain group including a plurality of block chain nodes 20 may be constituted by a public chain accessible by anyone, or may be constituted by a private chain accessible only by clients of specific users .

본 발명에 따른 블록체인 기반의 데이터 저장 장치(100)는, 이러한 블록체인 네트워크 환경에 적용되어, 블록체인 노드들과 유선 통신 또는 무선 통신을 수행하며 블록체인 노드(20)의 블록체인에 사용자의 데이터 파일을 분산 저장할 수 있다. 이를 위해, 본 발명에 따른 블록체인 기반의 데이터 저장 장치(100)는 도 1과 같이 클라이언트(10)에 포함되는 장치로 구성될 수 있다.The block-chain-based data storage device 100 according to the present invention is applied to such a block-chain network environment to perform wired communication or wireless communication with block-chain nodes, Data files can be distributed. To this end, the block-based data storage device 100 according to the present invention may be configured as an apparatus included in the client 10 as shown in FIG.

실시예에 따라, 본 발명에 따른 블록체인 기반의 데이터 저장 장치(100)는 클라이언트(10)와 연동하는 별개의 장치로 구성될 수도 있다. 이 경우, 데이터 저장 장치(100)는 통신 인터페이스 또는 I/O 인터페이스를 통해 클라이언트(10)와 연결되어 클라이언트(10)의 입·출력 유닛이나 통신 유닛을 사용하도록 구성될 수 있다.According to an embodiment, the block-chain-based data storage device 100 according to the present invention may be configured as a separate device that cooperates with the client 10. In this case, the data storage device 100 can be configured to use the input / output unit or the communication unit of the client 10 in connection with the client 10 via the communication interface or the I / O interface.

도 2에는 본 발명의 일 실시예에 따른 블록체인 기반의 데이터 저장 장치(100)가 블록도로 도시되어 있다.FIG. 2 is a block diagram of a block-based data storage device 100 according to an embodiment of the present invention.

도 2에 도시된 바와 같이, 본 발명의 일 실시예에 따른 블록체인 기반의 데이터 저장 장치(100)는 저장 유닛(110) 및 제어 유닛(120)을 포함하며, 실시예에 따라 입력 유닛(130), 출력 유닛(140), 통신 유닛(150) 등을 더 포함할 수 있다.2, a block-chain-based data storage device 100 according to an embodiment of the present invention includes a storage unit 110 and a control unit 120, and according to an embodiment, an input unit 130 An output unit 140, a communication unit 150, and the like.

저장 유닛(110)은, 블록체인에 저장하고자 하는 사용자의 데이터 파일을 저장하고 있다. 아래에서 다시 설명하겠지만, 저장 유닛(110)은 미리 결정된 데이터 청크의 크기 값 등을 더 저장할 수 있다. 이러한 저장 유닛(120)은 데이터를 기록하고 삭제할 수 있는 다양한 종류와 형태의 저장 매체로 구성될 수 있다. 예컨대, 저장 유닛(120)은 RAM, ROM, EEPROM, 레지스터, 플래시 메모리, 하드디스크, 광기록 매체 또는 자기기록 매체 등으로 구성될 수 있다.The storage unit 110 stores a user data file to be stored in the block chain. As will be described below again, the storage unit 110 may further store a size value or the like of a predetermined data chunk. The storage unit 120 may include various types and types of storage media capable of recording and deleting data. For example, the storage unit 120 may be configured as a RAM, a ROM, an EEPROM, a register, a flash memory, a hard disk, an optical recording medium, or a magnetic recording medium.

또한, 저장 유닛(110)은 제어 유닛(120)의 접근이 가능하도록, 예컨대 데이터 버스 등을 통해 제어 유닛(120)과 전기적으로 연결될 수 있다. 이러한 연결을 통해, 저장 유닛(110)은 제어 유닛(120)이 수행하는 각종 제어 로직을 포함하는 프로그램 및/또는 제어 로직이 실행될 때 발생하는 데이터를, 저장 및/또는 갱신 및/또는 소거 및/또는 전송할 수 있다. 이러한 저장 유닛(110)은 논리적으로 2개 이상으로 분할되어, 그 일부 또는 전부가 제어 유닛(120)에 포함되도록 구성될 수도 있다.In addition, the storage unit 110 can be electrically connected to the control unit 120 via a data bus or the like, so that the control unit 120 can be accessed. Through such a connection, the storage unit 110 can store and / or update and / or erase data that occurs when the program and / or control logic comprising various control logic performed by the control unit 120 is executed, Or transmitted. This storage unit 110 may be logically divided into two or more, and some or all of the storage unit 110 may be configured to be included in the control unit 120. [

입력 유닛(130)은, 사용자의 명령을 입력받아 제어 유닛(120)으로 전달한다. 이를 위해, 입력 유닛(130)은 제어 유닛(120)과 전기적으로 연결될 수 있다. 입력 유닛(130)은 사용자의 명령을 입력받을 수 있는 다양한 종류와 형태의 장치로 구성될 수 있다. 예컨대, 입력 유닛(130)은 키보드, 마우스, 또는 터치패드 등으로 구성될 수 있다.The input unit 130 receives the user's command and transfers it to the control unit 120. To this end, the input unit 130 may be electrically connected to the control unit 120. [ The input unit 130 may be composed of devices of various types and types capable of receiving user's commands. For example, the input unit 130 may be constituted by a keyboard, a mouse, a touch pad, or the like.

출력 유닛(140)은, 제어 유닛(120)의 제어 신호에 따라 UI(User Interface) 등과 같은 시각적 정보를 출력한다. 출력 유닛(130)은 제어 유닛(120)의 제어 신호를 수신할 수 있도록 제어 유닛(120)과 전기적으로 연결될 수 있다. 출력 유닛(130)은 시각적 정보를 출력할 수 있는 다양한 종류와 형태의 장치로 구성될 수 있다. 예컨대, 출력 유닛(140)은 이미지를 표시하는 모니터나 터치스크린 등의 디스플레이 장치로 구성될 수 있다.The output unit 140 outputs visual information such as a UI (User Interface) according to a control signal of the control unit 120. [ The output unit 130 may be electrically connected to the control unit 120 so as to receive the control signal of the control unit 120. [ The output unit 130 may be composed of devices of various types and types capable of outputting visual information. For example, the output unit 140 may be constituted by a display device such as a monitor or a touch screen for displaying an image.

통신 유닛(150)은, 제어 유닛(120)의 제어 신호에 따라 블록체인 네트워크를 구성하는 블록체인 노드들과 유선 통신 또는 무선 통신을 수행한다. 통신 유닛(150)은 제어 유닛(120)의 제어 신호와 데이터를 전달받아 블록체인 노드(20)로 전송하거나, 블록체인 노드(20)로부터 수신된 데이터를 제어 유닛(120)에 전달할 수 있도록 제어 유닛(120)과 전기적으로 연결될 수 있다. 통신 유닛(140)은 외부 통신 장치와 데이터 통신하는 다양한 종류와 형태의 통신 모듈로 구성될 수 있다. 예컨대, 통신 유닛(150)은 통신 회선이 접속되는 모뎀(MODEM), AP(Access Point)를 통해 무선 통신을 수행하는 WiFi 통신 모듈, 또는 기지국을 통해 무선 통신을 수행하는 LTE(Long Term Evolution) 통신 모듈 등으로 구성될 수 있다.The communication unit 150 performs wire communication or wireless communication with the block chain nodes constituting the block chain network in accordance with the control signal of the control unit 120. [ The communication unit 150 is controlled by the control unit 120 so that it can receive the control signal and data of the control unit 120 and transmit it to the block chain node 20 or the data received from the block chain node 20 to the control unit 120 May be electrically connected to the unit (120). The communication unit 140 may be composed of various types and types of communication modules for data communication with external communication devices. For example, the communication unit 150 may include a MODEM to which a communication line is connected, a WiFi communication module that performs wireless communication through an AP (Access Point), or an LTE (Long Term Evolution) communication Module or the like.

한편, 제어 유닛(120)은, 저장 유닛(110)에 저장된 데이터 파일을 통신 유닛(150)을 통해 블록체인 노드(20)로 전송하여 블록체인에 저장되도록 한다. 이를 위해, 제어 유닛(120)은 데이터 파일 분할부(122), 트랜잭션 생성부(123) 및 트랜잭션 송수신부(125)를 포함하며, 실시예에 따라 사용자 명령 수신부(121), 트랜잭션 ID 저장부(124), 트랜잭션 데이터 획득부(126), 데이터 파일 생성부(127) 등을 더 포함할 수 있다.On the other hand, the control unit 120 transmits the data file stored in the storage unit 110 to the block chain node 20 via the communication unit 150 to be stored in the block chain. The control unit 120 includes a data file division unit 122, a transaction generation unit 123 and a transaction transmission / reception unit 125. The control unit 120 includes a user command reception unit 121, a transaction ID storage unit 124, a transaction data acquisition unit 126, a data file generation unit 127, and the like.

상기 데이터 파일 분할부(122)는, 저장 유닛(110)에 저장된 데이터 파일을 읽어들여 데이터 순서에 따라 미리 결정된 데이터 청크 단위로 분할한다. 예컨대, 사용자 명령 수신부(121)가 저장 유닛(110)에 저장된 데이터 파일들을 표시한 파일 리스트를 출력 유닛(140)을 통해 출력한 후, 입력 유닛(130)을 통해 특정 데이터 파일에 대한 사용자의 저장 명령을 입력받으면, 데이터 파일 분할부(122)는 저장 유닛(110)에서 해당 데이터 파일을 읽어들여 미리 결정된 데이터 청크 단위로 분할할 수 있다.The data file division unit 122 reads the data file stored in the storage unit 110 and divides the data file into predetermined data chunk units according to the data order. For example, after the user command receiving unit 121 outputs the file list displaying the data files stored in the storage unit 110 through the output unit 140, the input unit 130 stores the user's specific data file Upon receiving the command, the data file division unit 122 may read the corresponding data file in the storage unit 110 and divide it into predetermined data chunk units.

예컨대, 미리 결정된 데이터 청크의 크기가 50KB이고, 저장 대상 데이터 파일의 크기가 200KB인 경우, 분할되는 데이터 청크의 갯수는 4개로 결정되며, 데이터 파일 분할부(122)는 저장 대상 데이터 파일을 데이터 순서에 따라 4개의 데이터 청크로 분할할 수 있다. 반면, 미리 결정된 데이터 청크의 크기가 40KB이고, 저장 대상 데이터 파일의 크기가 200KB인 경우, 분할되는 데이터 청크의 갯수는 5개로 결정되며, 데이터 파일 분할부(122)는 저장 대상 데이터 파일을 데이터 순서에 따라 5개의 데이터 청크로 분할할 수 있다. 이 경우, 데이터 파일 분할 단위가 되는 데이터 청크의 크기는 저장 유닛(110)에 미리 저장될 수 있다.For example, when the size of the predetermined data chunk is 50 KB and the size of the data file to be stored is 200 KB, the number of data chunks to be divided is determined to be four, and the data file dividing unit 122 divides the data file to be stored The data can be divided into four data chunks. On the other hand, when the size of the predetermined data chunk is 40 KB and the size of the storage object data file is 200 KB, the number of data chunks to be divided is determined to be 5. The data file dividing unit 122 divides the data file Can be divided into five data chunks. In this case, the size of the data chunk that is the unit of dividing the data file can be stored in advance in the storage unit 110. [

일 실시예에 있어서, 데이터 파일 분할부(122)는 저장 대상 데이터 파일을 분할하기 전에 암호화 또는 압축하거나, 압축하여 암호화할 수도 있다.In one embodiment, the data file dividing unit 122 may encrypt or compress the storage target data file before division, or compress and encrypt the storage target data file.

상기 트랜잭션 생성부(123)는, 저장 대상 데이터 파일에서 분할되는 데이터 청크별로 해당 데이터 청크를 포함하는 트랜잭션을 순차적으로 생성한다. 저장 대상 데이터 파일이 데이터 순서에 따라 복수의 데이터 청크로 분할되는 경우, 트랜잭션 생성부(123)는 선순위 데이터 청크를 포함하는 직전 트랜잭션의 트랜잭션 식별자를, 상기 선순위 데이터 청크 다음의 차순위 데이터 청크를 포함하는 트랜잭션에 포함시킬 수 있다.The transaction generation unit 123 sequentially generates a transaction including the corresponding data chunk for each data chunk divided in the storage object data file. When the data file to be stored is divided into a plurality of data chunks in accordance with the data order, the transaction generating unit 123 stores the transaction identifier of the immediately preceding transaction including the chunk of the senior data in a row including the chronological data chunk after the chronological data chunk It can be included in the transaction.

또한, 트랜잭션 생성부(123)는 저장 대상 데이터 파일에서 분할된 데이터 청크가 최초 데이터 청크인 경우, 상기 최초 데이터 청크를 포함하는 최초 트랜잭션에 직전 트랜잭션의 트랜잭션 식별자 값으로서 0 값을 포함시킬 수 있다.In addition, when the divided data chunk in the storage object data file is the first data chunk, the transaction generating unit 123 may include a value of 0 as the transaction identifier value of the immediately preceding transaction in the initial transaction including the initial data chunk.

또한, 트랜잭션 생성부(123)는 저장 대상 데이터 파일에서 분할된 데이터 청크가 최종 데이터 청크인 경우, 상기 최종 데이터 청크를 포함하는 최종 트랜잭션에 저장 대상 데이터 파일을 식별하는 파일 식별 정보를 더 포함시킬 수 있다. 이 경우, 파일 식별 정보는 저장 대상 데이터 파일의 파일명 정보와 파일명 길이 정보를 포함할 수 있다.The transaction generating unit 123 may further include file identification information for identifying a data file to be stored in a final transaction including the final data chunk when the divided data chunks in the data file to be stored are the final data chunks have. In this case, the file identification information may include file name information and file name length information of the storage object data file.

트랜잭션 송수신부(125)는 트랜잭션 생성부(123)에 의해 순차적으로 생성되는 트랜잭션을 통신 유닛(150)을 통해 블록체인 노드(20)드로 전송하여 블록체인에 저장되도록 한다.The transaction transceiver 125 transmits the transaction sequentially generated by the transaction generator 123 to the block chain node 20 through the communication unit 150 and stores the transaction in the block chain.

한편, 저장 대상 데이터 파일의 크기가 미리 결정된 데이터 청크의 크기보다 크지 않은 경우, 데이터 파일 분할부(122)는 해당 데이터 파일을 분할하지 않고 트랜잭션 생성부(123)로 전달한다. 그러면, 트랜잭션 생성부(123)는 해당 데이터 파일 전체를 포함하는 단일의 트랜잭션을 생성하고, 트랜잭션 송수신부(125)는 생성된 트랜잭션을 블록체인 노드(20)로 전송한다.On the other hand, if the size of the data file to be stored is not larger than the predetermined size of the data chunk, the data file partitioning unit 122 transfers the data file to the transaction generating unit 123 without dividing the data file. Then, the transaction generating unit 123 generates a single transaction including the entire data file, and the transaction transmitting / receiving unit 125 transmits the generated transaction to the block chain node 20. [

도 3에는 본 발명의 일 실시예에 따라 생성되는 데이터 청크 저장용 트랜잭션의 데이터 포맷이 도시되어 있다.FIG. 3 illustrates a data format of a transaction for storing data chunks generated according to an embodiment of the present invention.

도 3에 도시된 바와 같이, 트랜잭션 생성부(123)에 의해 생성되는 데이터 청크 저장용 트랜잭션(300)은 헤더 필드(310)와 데이터 필드(320)를 가질 수 있다.3, the transaction 300 for storing data chunks generated by the transaction generating unit 123 may have a header field 310 and a data field 320.

블록체인에 저장하고자 하는 데이터 파일에서 분할된 데이터 청크는, 트랜잭션(300)의 데이터 필드(320)에 포함된다.The data chunks partitioned in the data file to be stored in the block chain are included in the data field 320 of the transaction 300.

트랜잭션(300)의 헤더 필드(310)는 파일명 길이 필드(311), 청크 수 필드(312), 청크 크기 필드(313), 파일명 필드(314) 및 직전 트랜잭션 ID 필드(315) 등을 포함할 수 있다.The header field 310 of the transaction 300 may include a file name length field 311, a chunk number field 312, a chunk size field 313, a filename field 314, and a previous transaction ID field 315, have.

파일명 길이 필드(311)는, 저장 대상 데이터 파일을 식별하는 파일명의 길이 정보를 포함한다. 파일명 길이 필드(311)는 해당 트랜잭션이 저장 대상 데이터 파일의 최종 데이터 청크를 포함하는 경우에만 파일명 길이 정보를 포함하고, 해당 트랜잭션이 최종 데이터 청크 이외의 데이터 청크, 예컨대 최초 데이터 청크나 중간 데이터 청크를 포함하는 경우에는 ‘0’ 값을 포함하도록 구성될 수 있다. 아래에서 다시 설명하겠지만, 블록체인에 저장된 데이터 파일을 다시 다운로드 받는 과정에서 파일명 길이 필드(311)에 포함된 파일명 길이 정보는 트랜잭션의 헤더에서 파일명 정보를 발견하는 참조값이 된다.The file name length field 311 includes length information of a file name that identifies a data file to be stored. The file name length field 311 includes file name length information only when the transaction includes the last data chunk of the data file to be stored, and indicates that the transaction is a data chunk other than the last data chunk, for example, a first data chunk or an intermediate data chunk And may include a '0' value if included. As will be described later, the file name length information included in the file name length field 311 in the process of downloading the data file stored in the block chain becomes a reference value for finding the file name information in the header of the transaction.

청크 수 필드(312)는, 저장 대상 데이터 파일이 미리 결정된 데이터 청크 단위로 분할될 경우, 분할되어 나오는 데이터 청크들의 갯수 정보를 포함한다. 저장 대상 데이터 파일의 크기가 미리 결정된 데이터 청크의 크기보다 작아서 분할이 필요없는 경우에는 청크 수 필드(312)는 ‘1’ 값을 포함하도록 구성될 수 있다.The number of chunks field 312 includes information on the number of data chunks that are divided when the data file to be stored is divided into predetermined data chunk units. If the size of the data file to be stored is smaller than the size of the predetermined data chunk, and thus no division is required, the chunk number field 312 may be configured to include a value of '1'.

청크 크기 필드(313)는, 분할 단위가 되는 데이터 청크의 크기 정보를 포함한다. 저장 대상 데이터 파일의 크기가 미리 결정된 데이터 청크의 크기보다 작아서 청크 수 필드(312)에 1 값이 포함되는 경우, 청크 크기 필드(313)의 정보는 생략될 수 있다.The chunk size field 313 includes size information of a data chunk that is a unit of division. If the size of the data file to be stored is smaller than the size of the predetermined data chunk, and the value of 1 is included in the chunk number field 312, the information of the chunk size field 313 may be omitted.

파일명 필드(314)는 저장 대상 데이터 파일을 식별하는 파일명 정보를 포함한다. 이 경우, 파일명 정보는 파일명과 파일명의 확장자를 포함하는 정보로 구성될 수 있다. 파일명 필드(314)는, 저장 대상 데이터 파일이 데이터 순서에 따라 복수의 데이터 청크로 분할되는 경우, 최종 데이터 청크를 포함하는 최종 트랜잭션에서만 파일명 정보를 포함하도록 구성될 수 있다. 앞서 언급한 바와 같이, 블록체인에 저장된 데이터 파일을 다시 다운로드 받는 과정에서, 파일명 필드(314)의 파일명 정보는 파일명 길이 필드(311)의 파일명 길이 정보를 참조값으로 하여 발견될 수 있다. 이러한 파일명 정보를 통해, 다운로드 되는 데이터 파일의 파일명이 지정될 수 있다.The file name field 314 includes file name information for identifying a storage object data file. In this case, the file name information may be composed of information including a file name and an extension of the file name. The file name field 314 may be configured to include file name information only in the final transaction that includes the final data chunk if the data file to be stored is divided into a plurality of data chunks in the data order. As described above, in the process of re-downloading the data file stored in the block chain, the file name information of the file name field 314 can be found using the file name length information of the file name length field 311 as a reference value. Through this file name information, the file name of the data file to be downloaded can be designated.

직전 트랜잭션 ID 필드(315)는, 데이터 필드(320)에 포함되는 데이터 청크 직전에 분할된 선순위 데이터 청크를 포함하는 직전 트랜잭션의 트랜잭션 식별자 정보를 포함한다. 아래에서 다시 설명하겠지만, 직전 트랜잭션의 트랜잭션 식별자는 블록체인에 저장된 데이터 파일을 다운로드 받는 과정에서, 선순위 데이터 청크를 불러오는 용도로 사용될 수 있다. 데이터 순서에 따라 분할된 데이터 청크들 중 최초 데이터 청크를 포함하는 최초 트랜잭션의 경우에는 직전 트랜잭션이 존재하지 않으므로, 직전 트랜잭션 ID 필드(315)는 ‘0’ 값을 포함하도록 구성될 수 있다.The immediately preceding transaction ID field 315 includes the transaction identifier information of the immediately preceding transaction including the chunk of the senior data segment immediately before the data chunk included in the data field 320. [ As will be described later, the transaction identifier of the immediately preceding transaction can be used to retrieve the chunk of the primary data in the process of downloading the data file stored in the block chain. In the case of the first transaction including the first data chunk among the data chunks divided according to the data order, the previous transaction ID field 315 may be configured to include a value of '0' because there is no previous transaction.

예컨대, 저장 대상 데이터 파일이 데이터 순서에 따라 3개의 데이터 청크로 분할되는 경우, 최초 데이터 청크를 포함하는 제1 트랜잭션의 직전 트랜잭션 ID 필드에는 ‘0x000…’(32byte)이 포함되고, 두 번째 데이터 청크를 포함하는 제2 트랜잭션의 직전 트랜잭션 ID 필드에는 제1 트랜잭션의 트랜잭션 식별자가 포함되고, 최종 데이터 청크를 포함하는 제3 트랜잭션의 직전 트랜잭션 ID 필드에는 제2 트랜잭션의 트랜잭션 식별자가 포함될 수 있다.For example, when the data file to be stored is divided into three data chunks according to the data order, '0x000 ...' is stored in the immediately preceding transaction ID field of the first transaction including the first data chunk. (32 bytes), the immediately preceding transaction ID field of the second transaction including the second data chunk contains the transaction identifier of the first transaction, and the immediately preceding transaction ID field of the third transaction including the final data chunk contains 2 transaction identifier of the transaction.

도 3에는 도시되지 않았으나, 트랜잭션 생성부(123)에서 생성되는 모든 트랜잭션들은 기본적으로 자신의 트랜잭션 식별자를 포함할 수 있다.Although not shown in FIG. 3, all the transactions generated in the transaction generating unit 123 may basically include its own transaction identifier.

다시 도 2를 참조하면, 트랜잭션 ID 저장부(124)는 저장 대상 데이터 파일의 최종 데이터 청크를 포함하는 최종 트랜잭션이 생성되어 전송된 경우, 또는 저장 대상 데이터 파일의 크기가 데이터 청크의 크기보다 작아서 저장 대상 데이터 파일 전체를 포함하는 트랜잭션이 생성되어 전송된 경우, 해당 트랜잭션의 트랜잭션 식별자를 자체 저장하거나 저장 유닛(110)에 저장할 수 있다. 이와 같이 저장된 트랜잭션 식별자는 블록체인에 저장된 데이터 파일을 다시 다운로드 받는 과정에서 사용될 수 있다.Referring again to FIG. 2, the transaction ID storage unit 124 stores the transaction data when the final transaction including the final data chunk of the storage object data file is generated and transmitted, or the size of the storage object data file is smaller than the size of the data chunk When a transaction including the entire object data file is generated and transmitted, the transaction identifier of the corresponding transaction can be stored in the storage unit 110 itself. The stored transaction identifier can be used in the process of downloading the data file stored in the block chain again.

예컨대, 사용자 명령 수신부(121)가 블록체인에 저장된 데이터 파일들을 표시한 파일 리스트를 출력 유닛(140)을 통해 출력한 후, 입력 유닛(130)을 통해 특정 데이터 파일에 대한 사용자의 다운로드 명령을 입력받으면, 트랜잭션 송수신부(125)는 다운로드 대상 데이터 파일의 최종 데이터 청크를 포함시켜 전송한 최종 트랜잭션의 트랜잭션 식별자를, 사용자의 데이터 파일 다운로드 명령에 따라 트랜잭션 ID 저장부(124) 또는 저장 유닛(110)에서 독출하여 임의의 블록체인 노드(20)로 전송하고, 해당 블록체인 노드(20)로부터 상기 전송된 트랜잭션 식별자에 대응하는 트랜잭션을 수신할 수 있다.For example, after the user command receiving unit 121 outputs the file list displaying the data files stored in the block chain through the output unit 140, the user inputs a download command for the specific data file through the input unit 130 The transaction transceiver 125 transmits the transaction identifier of the last transaction including the last data chunk of the download object data file to the transaction ID storage unit 124 or the storage unit 110 according to the user's data file download command, To the arbitrary block-chain node 20, and receive the transaction corresponding to the transferred transaction identifier from the corresponding block-chain node 20. [

또한, 트랜잭션 송수신부(125)는, 수신된 트랜잭션에 직전 트랜잭션의 트랜잭션 식별자가 포함된 경우, 상기 직전 트랜잭션의 트랜잭션 식별자를 임의의 블록체인 노드(20)로 전송하여 해당 블록체인 노드(20)로부터 상기 전송된 직전 트랜잭션의 트랜잭션 식별자에 대응하는 트랜잭션을 더 수신하는 과정을 반복하여, 다운로드 대상 데이터 파일의 데이터 청크를 포함한 모든 트랜잭션들을 수신할 수 있다.If the received transaction includes the transaction identifier of the immediately preceding transaction, the transaction transceiver 125 transmits the transaction identifier of the immediately preceding transaction to the arbitrary block chain node 20, It is possible to receive all the transactions including the data chunk of the download target data file by repeating the process of further receiving the transaction corresponding to the transaction identifier of the immediately preceding transaction.

이 경우, 트랜잭션 데이터 획득부(126)는 상기 트랜잭션 송수신부(125)가 수신한 트랜잭션에서 데이터 청크와 직전 트랜잭션의 트랜잭션 식별자를 획득하여 상기 획득된 데이터 청크를 저장 유닛(110)에 임시 저장하고, 상기 획득된 직전 트랜잭션의 트랜잭션 식별자를 트랜잭션 송수신부(125)로 전달할 수 있다.In this case, the transaction data obtaining unit 126 obtains the transaction identifier of the data chunk and the immediately preceding transaction in the transaction received by the transaction transceiver 125, temporarily stores the obtained data chunk in the storage unit 110, And may transmit the obtained transaction identifier of the immediately preceding transaction to the transaction transceiver 125. [

예컨대, 트랜잭션 데이터 획득부(126)는 수신된 트랜잭션의 청크 수 필드 값을 확인하여 해당 값이 1인 경우, 해당 트랜잭션의 데이터 필드에 포함된 데이터를 획득하여 다운로드 대상 데이터 파일로서 저장 유닛(110)에 저장할 수 있다.For example, the transaction data obtaining unit 126 determines the value of the chunk number field of the received transaction and, if the value is 1, obtains the data included in the data field of the corresponding transaction, Lt; / RTI >

반면, 트랜잭션 데이터 획득부(126)는 수신된 트랜잭션의 청크 수 필드 값을 확인하여 해당 값이 1이 아닌 경우, 해당 트랜잭션의 데이터 필드에 포함된 데이터를 획득하여 다운로드 대상 데이터 파일의 데이터 청크로서 저장 유닛(110)에 임시 저장하고, 직전 트랜잭션 ID 필드에 포함된 직전 트랜잭션의 트랜잭션 식별자를 획득하여 상기 트랜잭션 송수신부(125)로 전달할 수 있다. 상기 트랜잭션 데이터 획득부(126)는 트랜잭션 송수신부(125)를 통해 수신되는 트랜잭션의 직전 트랜잭션 ID 필드 값이 ‘0x000…’(32byte)으로 나올 때까지 상술한 과정을 반복한다.On the other hand, if the value of the chunk number field of the received transaction is not 1, the transaction data acquiring unit 126 acquires the data included in the data field of the corresponding transaction and stores it as a data chunk of the download object data file Unit 110, acquires the transaction identifier of the immediately preceding transaction included in the immediately preceding transaction ID field, and transfers the acquired transaction identifier to the transaction sending / receiving unit 125. The transaction data acquiring unit 126 acquires the transaction ID of the transaction received through the transaction transceiver 125 from '0x000 ... '(32 bytes).

데이터 파일 생성부(127)는, 다운로드 대상 데이터 파일의 데이터 청크들을 포함하는 모든 트랜잭션들이 수신된 후, 상기 트랜잭션 데이터 획득부(126)에 의해 임시 저장된 데이터 청크들을 해당 트랜잭션들이 수신된 순서의 역순으로 결합함으로써 완전한 데이터 파일을 생성할 수 있다. 즉, 최초 수신된 트랜잭션에 포함된 데이터 청크가 데이터 파일의 최종 데이터 청크가 되고, 최종 수신된 트랜잭션에 포함된 데이터 청크가 데이터 파일의 최초 데이터 청크가 된다. 데이터 청크들이 결합되어 생성되는 데이터 파일의 파일명은, 최초 수신된 트랜잭션의 파일명 필드에 포함된 파일명 정보를 기초로 정해진다. 이와 같이, 생성된 데이터 파일은 저장 유닛(110)에 저장될 수 있다.After all the transactions including the data chunks of the download object data file are received, the data file generation unit 127 generates data chunks temporarily stored by the transaction data acquisition unit 126 in a reverse order of the order in which the transactions are received By combining, a complete data file can be generated. That is, the data chunk included in the initially received transaction becomes the final data chunk of the data file, and the data chunk included in the finally received transaction becomes the original data chunk of the data file. The file name of the data file generated by combining the data chunks is determined based on the file name information included in the file name field of the initially received transaction. In this way, the generated data file can be stored in the storage unit 110.

이러한 제어 유닛(120)은 상술한 제어 로직들을 실행하기 위해 당 업계에 알려진 프로세서, ASIC(application-specific integrated circuit), 다른 칩셋, 논리 회로, 레지스터, 통신 모뎀, 데이터 처리 장치 등을 선택적으로 포함할 수 있다. 또한, 상기 제어 로직들이 소프트웨어로 구현될 때, 제어 유닛(120)은 프로그램 모듈의 집합으로 구현될 수 있다. 또한, 프로그램 모듈들은 메모리에 저장되고, 프로세서에 의해 실행될 수 있다. 상기 메모리는 디바이스의 종류에 상관없이 정보가 저장되는 디바이스를 총칭하는 것으로서 특정 메모리 디바이스를 지칭하는 것은 아니다. 상기 메모리는 제어 유닛(120)을 구성하는 프로세서의 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 컴퓨터 부품으로 구성되어 프로세서와 연결될 수 있다. 또한, 상기 메모리는 본 발명의 저장 유닛(110)에 포함될 수 있다.This control unit 120 may optionally include a processor, an application-specific integrated circuit (ASIC), other chipset, logic circuitry, registers, communication modems, data processing devices, etc., as are known in the art for implementing the control logic . In addition, when the control logic is implemented in software, the control unit 120 may be implemented as a collection of program modules. Also, the program modules may be stored in memory and executed by a processor. The memory collectively refers to a device in which information is stored regardless of the type of the device, and does not refer to a specific memory device. The memory may be internal or external to the processor constituting the control unit 120, and may be composed of various well-known computer components and coupled to the processor. Also, the memory may be included in the storage unit 110 of the present invention.

즉, 제어 유닛(120)의 구성요소들(121 내지 127)은 제어 유닛(120)에 의해 실행되는 프로그램 모듈들로 구성될 수 있다. 이러한 프로그램 모듈들은 저장 유닛(110)에 미리 저장된 후 제어 유닛(120)에 의해 실행될 수 있다. 또한, 제어 유닛(120)에 포함된 구성요소들(121 내지 127)은 서로 통합되거나, 2개 이상의 서브 구성요소로 분리될 수 있다. 또한, 하나의 구성요소에 의해 생성된 데이터는 별도의 언급이 없더라도 저장 유닛(110)에 저장된 후 다른 구성요소에 의해 사용될 수 있다. That is, the components 121 to 127 of the control unit 120 may be configured with program modules that are executed by the control unit 120. [ These program modules may be pre-stored in the storage unit 110 and then executed by the control unit 120. [ In addition, the components 121 to 127 included in the control unit 120 may be integrated with each other or separated into two or more subcomponents. Further, the data generated by one component may be stored in the storage unit 110 and then used by other components, without any reference.

도 4에는 본 발명의 일 실시예에 따른 블록체인 기반의 데이터 저장 방법의 데이터 파일 저장 프로세스가 흐름도로 도시되어 있다. 이하, 도 4를 참조하여 데이터 저장 장치(100)의 세부 동작들을 시계열적으로 설명한다.FIG. 4 is a flowchart illustrating a data file storing process of a block-chain-based data storing method according to an embodiment of the present invention. Hereinafter, detailed operations of the data storage device 100 will be described in a time-wise manner with reference to FIG.

도 4에 도시된 바와 같이, 상기 데이터 저장 장치(100)의 제어 유닛(120)은 저장 유닛(110)에 저장된 데이터 파일을 사용자의 저장 명령에 따라 블록체인 노드(20)로 전송하여 블록체인에 저장되도록 한다.4, the control unit 120 of the data storage device 100 transmits the data file stored in the storage unit 110 to the block chain node 20 according to a user's save command, .

우선, 제어 유닛(120)의 사용자 명령 수신부(121)는, 저장 유닛(110)에 저장된 데이터 파일들을 표시한 파일 리스트를 출력 유닛(140)을 통해 출력한 후, 입력 유닛(130)을 통해 특정 데이터 파일에 대한 사용자의 데이터 파일 저장 명령을 입력받을 수 있다(S400).First, the user command receiving unit 121 of the control unit 120 outputs a file list indicating data files stored in the storage unit 110 through the output unit 140, and then, through the input unit 130, The user can receive a data file save command for the data file (S400).

그 다음, 제어 유닛(120)의 데이터 파일 분할부(122)는, 사용자의 데이터 파일 저장 명령에 따라, 저장 유닛(110)에 저장된 데이터 파일을 읽어들여 해당 데이터 파일을 데이터 순서에 따라 미리 결정된 데이터 청크 단위로 분할한다(S402, S404). 이 경우, 데이터 파일 분할부(122)는 저장 대상 데이터 파일을 분할하기 전에 암호화 또는 압축하거나, 암호화하여 압축할 수도 있다.Next, the data file division unit 122 of the control unit 120 reads the data file stored in the storage unit 110 in accordance with the user's data file storage instruction, and stores the data file in the order of the predetermined data (S402, S404). In this case, the data file dividing unit 122 may encrypt or compress the storage target data file before division, and may encrypt and compress the storage target data file.

그 다음, 제어 유닛(120)의 트랜잭션 생성부(123)는, 저장 대상 데이터 파일에서 분할되는 데이터 청크별로 해당 데이터 청크를 포함하는 트랜잭션을 순차적으로 생성한다(S406). 이 경우, 트랜잭션 생성부(123)는 선순위 데이터 청크를 포함하는 직전 트랜잭션의 트랜잭션 식별자를, 상기 선순위 데이터 청크 다음의 차순위 데이터 청크를 포함하는 트랜잭션에 포함시킨다.Then, the transaction generating unit 123 of the control unit 120 sequentially generates a transaction including the corresponding data chunk for each data chunk divided in the storage object data file (S406). In this case, the transaction generating unit 123 includes the transaction identifier of the immediately preceding transaction including the chunk of the senior data in the transaction including the chronological data chunk after the chunk of the preceding data.

예컨대, 트랜잭션 생성부(123)는 저장 대상 데이터 파일에서 분할된 데이터 청크가 첫 번째로 분할된 최초 데이터 청크인 경우(S408), 상기 최초 데이터 청크를 포함하는 최초 트랜잭션에 직전 트랜잭션의 트랜잭션 식별자 값으로서 0 값을 포함시킬 수 있다(S410).For example, when the divided data chunks in the storage object data file are the first chunks of the first divided data chunks (S408), the transaction generating unit 123 stores the first transaction including the first chunk of data as the transaction identifier value of the previous transaction 0 value may be included (S410).

반면, 트랜잭션 생성부(123)는 저장 대상 데이터 파일에서 분할된 데이터 청크가 최초 데이터 청크가 아닌 경우(S408), 선순위 데이터 청크를 포함하는 직전 트랜잭션의 트랜잭션 식별자를, 상기 선순위 데이터 청크 다음의 차순위 데이터 청크를 포함하는 트랜잭션에 포함시킬 수 있다(S412). 예컨대, 트랜잭션 생성부(123)는 최초 데이터 청크를 포함한 제1 트랜잭션의 트랜잭션 식별자를, 두 번째 데이터 청크를 포함하는 제2 트랜잭션에 포함시킬 수 있다.On the other hand, when the divided data chunk in the storage object data file is not the first data chunk (S408), the transaction generating unit 123 stores the transaction identifier of the immediately preceding transaction including the chunk of the senior data in the order data May be included in the transaction including the chunk (S412). For example, the transaction generating unit 123 may include the transaction identifier of the first transaction including the first data chunk in the second transaction including the second data chunk.

한편, 저장 대상 데이터 파일의 크기가 미리 결정된 데이터 청크의 크기보다 크지 않은 경우(S402), 데이터 파일 분할부(122)는 해당 데이터 파일을 분할하지 않고 트랜잭션 생성부(123)로 전달하고, 트랜잭션 생성부(123)는 해당 데이터 파일 전체를 포함하는 단일의 트랜잭션을 생성할 수 있다(S418).On the other hand, if the size of the data file to be stored is not larger than the predetermined size of the data chunk (S402), the data file division unit 122 transfers the data file to the transaction generation unit 123 without dividing the data file, The unit 123 may generate a single transaction including the entire data file (S418).

트랜잭션 생성부(123)는 저장 대상 데이터 파일에서 분할된 데이터 청크가 최종 데이터 청크인 경우(S414), 상기 최종 데이터 청크를 포함하는 최종 트랜잭션에 저장 대상 데이터 파일을 식별하는 파일 식별 정보를 더 포함시킬 수 있다(S420). 또한, 트랜잭션 생성부(123)는 저장 대상 데이터 파일의 크기가 미리 결정된 데이터 청크의 크기보다 크지 않아서 데이터 파일 전체를 포함하는 단일의 트랜잭션을 생성하는 경우에도(S418), 해당 트랜잭션에 저장 대상 데이터 파일을 식별하는 파일 식별 정보를 포함시킬 수 있다(S420). 상기 파일 식별 정보는 저장 대상 데이터 파일의 파일명 정보와 파일명 길이 정보를 포함할 수 있다.If the divided data chunk in the storage object data file is the final data chunk (S414), the transaction generating unit 123 may further include file identification information for identifying the storage object data file in the final transaction including the final data chunk (S420). In addition, even when the size of the data file to be stored is not larger than the size of the predetermined data chunk and the transaction generating unit 123 generates a single transaction including the entire data file (S418) (Step S420). The file identification information may include file name information and file name length information of the storage object data file.

그 다음, 제어 유닛(120)의 트랜잭션 송수신부(125)는 트랜잭션 생성부(123)에 의해 생성되는 트랜잭션을 통신 유닛(150)을 통해 블록체인 노드(20)드로 전송하여 블록체인에 저장되도록 한다(S416, S422).The transaction transmitting / receiving unit 125 of the control unit 120 then transmits the transaction generated by the transaction generating unit 123 to the block chain node 20 via the communication unit 150 to be stored in the block chain (S416, S422).

이 경우, 제어 유닛(120)의 트랜잭션 ID 저장부(124)는, 저장 대상 데이터 파일의 최종 데이터 청크를 포함하는 최종 트랜잭션이 생성되어 전송된 경우, 또는 저장 대상 데이터 파일 전체를 포함하는 트랜잭션이 생성되어 전송된 경우, 해당 트랜잭션의 트랜잭션 식별자를 자체 저장하거나 저장 유닛(110)에 저장한다(S424).In this case, the transaction ID storage unit 124 of the control unit 120 determines whether or not a transaction including the entire data file to be stored is generated when a final transaction including the last data chunk of the storage object data file is generated and transmitted The transaction identifier of the transaction is stored in the storage unit 110 (S424).

이와 같이 저장된 트랜잭션 식별자는 블록체인에 저장된 데이터 파일을 다시 다운로드 받는 과정에서 사용될 수 있다.The stored transaction identifier can be used in the process of downloading the data file stored in the block chain again.

도 5에는 본 발명의 일 실시예에 따른 블록체인 기반의 데이터 저장 방법의 데이터 파일 다운로드 프로세스가 흐름도로 도시되어 있다. 이하, 도 5를 참조하여, 데이터 저장 장치(100)의 세부 동작들을 시계열적으로 설명한다.FIG. 5 is a flowchart illustrating a data file download process of a block-chain-based data storage method according to an embodiment of the present invention. Hereinafter, with reference to FIG. 5, detailed operations of the data storage device 100 will be described in a time-series manner.

도 5에 도시된 바와 같이, 우선 제어 유닛(120)의 사용자 명령 수신부(121)는, 블록체인에 저장된 데이터 파일들을 표시한 파일 리스트를 출력 유닛(140)을 통해 출력한 후, 입력 유닛(130)을 통해 특정 데이터 파일에 대한 사용자의 데이터 파일 다운로드 명령을 입력받을 수 있다(S500).5, the user command receiving unit 121 of the control unit 120 outputs the file list indicating the data files stored in the block chain through the output unit 140, The user can receive a data file download command for a specific data file (S500).

그 다음, 제어 유닛(120)의 트랜잭션 송수신부(125)는, 다운로드 대상 데이터 파일의 최종 데이터 청크를 포함시켜 전송한 최종 트랜잭션의 트랜잭션 식별자를, 사용자의 데이터 파일 다운로드 명령에 따라 트랜잭션 ID 저장부(124) 또는 저장 유닛(110)에서 독출하여 임의의 블록체인 노드(20)로 전송함하고(S502), 해당 블록체인 노드(20)로부터 상기 전송된 트랜잭션 식별자에 대응하는 트랜잭션을 수신할 수 있다(S504).Then, the transaction transmitting / receiving unit 125 of the control unit 120 transmits the transaction identifier of the final transaction including the final data chunk of the download object data file to the transaction ID storage unit ( 124 or the storage unit 110 to the arbitrary block-chain node 20 (S502) and receive the transaction corresponding to the transferred transaction identifier from the block-chain node 20 S504).

그 다음, 제어 유닛(120)의 트랜잭션 송수신부(125)는, 수신된 트랜잭션에 직전 트랜잭션의 트랜잭션 식별자가 포함된 경우, 상기 직전 트랜잭션의 트랜잭션 식별자를 임의의 블록체인 노드(20)로 전송하여 해당 블록체인 노드(20)로부터 상기 전송된 직전 트랜잭션의 트랜잭션 식별자에 대응하는 트랜잭션을 더 수신하는 과정을 반복하여, 다운로드 대상 데이터 파일의 데이터 청크를 포함한 모든 트랜잭션들을 수신할 수 있다(S506 내지 S516).Then, if the received transaction includes the transaction identifier of the immediately preceding transaction, the transaction transceiver 125 of the control unit 120 transmits the transaction identifier of the immediately preceding transaction to the arbitrary block-chain node 20, The process of receiving the transaction corresponding to the transaction identifier of the immediately preceding transaction transmitted from the block chain node 20 may be repeated to receive all transactions including the data chunk of the download object data file (S506 to S516).

이 경우, 제어 유닛(120)의 트랜잭션 데이터 획득부(126)는 상기 트랜잭션 송수신부(125)가 수신한 트랜잭션에서 데이터 청크와 직전 트랜잭션의 트랜잭션 식별자를 획득하여 상기 획득된 데이터 청크를 저장 유닛(110)에 임시 저장하고, 상기 획득된 직전 트랜잭션의 트랜잭션 식별자를 트랜잭션 송수신부(125)로 전달할 수 있다.In this case, the transaction data obtaining unit 126 of the control unit 120 obtains the transaction identifier of the data chunk and the immediately preceding transaction in the transaction received by the transaction transceiver 125, and stores the obtained data chunk in the storage unit 110 And transmits the obtained transaction identifier of the previous transaction to the transaction transceiver 125. [

즉, 트랜잭션 데이터 획득부(126)는, 수신된 트랜잭션의 청크 수 필드 값이 1인 경우(S506), 해당 트랜잭션의 데이터 필드에 포함된 데이터를 다운로드 대상 데이터 파일로서 획득하여, 저장 유닛(110)에 저장할 수 있다(S520).That is, when the chunk number field value of the received transaction is 1 (S506), the transaction data obtaining unit 126 obtains the data included in the data field of the transaction as the download object data file, (S520).

반면, 트랜잭션 데이터 획득부(126)는, 수신된 트랜잭션의 청크 수 필드 값이 1이 아닌 경우(S506), 해당 트랜잭션의 데이터 필드에 포함된 데이터 청크와, 해당 트랜잭션의 직전 트랜잭션 ID 필드에 포함된 직전 트랜잭션의 트랜잭션 식별자를 획득하여(S510), 획득된 데이터 청크를 저장 유닛(110)에 임시 저장하는 한편, 획득된 트랜잭션 식별자를 트랜잭션 송수신부(125)로 전달할 수 있다(S512).On the other hand, if the value of the chunk number field of the received transaction is not 1 (S506), the transaction data acquiring unit 126 acquires the data chunk included in the data field of the corresponding transaction and the data chunk included in the immediately preceding transaction ID field of the corresponding transaction The transaction identifier of the immediately preceding transaction is obtained (S510), the acquired data chunk is temporarily stored in the storage unit 110, and the obtained transaction identifier is transferred to the transaction transmitting / receiving unit 125 (S512).

트랜잭션 송수신부(125)는, 전달된 트랜잭션 식별자를 블록체인 노드(20)로 전송하여 해당 트랜잭션 식별자에 대응하는 트랜잭션을 더 수신할 수 있다(S514, S516).The transaction transceiver unit 125 may transmit the transferred transaction identifier to the block chain node 20 to further receive the transaction corresponding to the transaction identifier (S514, S516).

상기 트랜잭션 송수신부(125)와 트랜잭션 데이터 획득부(126)는, 현재 수신된 트랜잭션의 직전 트랜잭션 ID 필드 값이 ‘0x000…’(32byte)으로 나올 때까지 상술한 과정을 반복한다(S514).The transaction transmission / reception unit 125 and the transaction data acquisition unit 126 may determine that the transaction ID field value of the currently received transaction is' 0x000 ... '(32 bytes) is repeated (S514).

제어 유닛(120)의 데이터 파일 생성부(127)는, 다운로드 대상 데이터 파일의 데이터 청크들을 포함하는 모든 트랜잭션들이 수신된 후, 상기 트랜잭션 데이터 획득부(126)에 의해 임시 저장된 데이터 청크들을 해당 트랜잭션들이 수신된 순서의 역순으로 결합함으로써 완전한 데이터 파일을 생성할 수 있다(S518). 데이터 청크들이 결합되어 생성되는 데이터 파일의 파일명은, 최초 수신된 트랜잭션의 파일명 필드에 포함된 파일명 정보를 기초로 정해진다.The data file generation unit 127 of the control unit 120 transfers the data chunks temporarily stored by the transaction data acquisition unit 126 to the corresponding transactions after all the transactions including the data chunks of the download object data file are received By combining them in the reverse order of the received order, a complete data file can be generated (S518). The file name of the data file generated by combining the data chunks is determined based on the file name information included in the file name field of the initially received transaction.

데이터 파일 생성부(127)는, 이와 같이 생성된 데이터 파일을 저장 유닛(110)에 저장할 수 있다(S520).The data file generation unit 127 may store the data file thus generated in the storage unit 110 (S520).

한편, 본 발명에 따른 실시예들은 컴퓨터 시스템과 이러한 컴퓨터 시스템을 구동하는 컴퓨터 프로그램으로 구현될 수 있다. 본 발명의 실시예들이 컴퓨터 프로그램으로 구현되는 경우, 본 발명의 구성요소들은 해당 컴퓨터 시스템을 통해 해당 동작이나 작업을 실행하는 프로그램 세그먼트들이다. 이러한 컴퓨터 프로그램 내지 프로그램 세그먼트들은 컴퓨터로 판독 가능한 다양한 기록매체에 저장될 수 있다. 컴퓨터로 판독 가능한 기록매체에는 컴퓨터 시스템이 읽어들일 수 있는 데이터를 기록하는 모든 종류의 매체가 포함된다. 예컨대, 컴퓨터로 판독 가능한 기록매체에는 ROM, RAM, EEPROM, 레지스터, 플래시 메모리, CD-ROM, 자기 테이프, 하드 디스크, 플로피디스크, 또는 광 데이터 기록장치 등이 포함될 수 있다. 또한, 이러한 기록매체는 다양한 네트워크로 연결된 컴퓨터 시스템들에 분산 배치되어 프로그램 코드들을 분산 방식으로 저장하거나 실행시킬 수 있다.Meanwhile, the embodiments according to the present invention can be implemented by a computer system and a computer program for driving such a computer system. When embodiments of the present invention are implemented as a computer program, the elements of the present invention are program segments that execute corresponding operations or tasks through the computer system. Such computer programs and program segments may be stored in various computer-readable media. A computer-readable recording medium includes all kinds of media for recording data that can be read by a computer system. For example, a computer-readable recording medium may include a ROM, a RAM, an EEPROM, a register, a flash memory, a CD-ROM, a magnetic tape, a hard disk, a floppy disk, In addition, the recording medium may be distributed to computer systems connected by various networks, and may store and execute program codes in a distributed manner.

상술한 바와 같이, 본 발명에 따르면, 데이터의 위조 및 변조가 불가한 블록체인 기술을 이용하여 사용자의 데이터 파일을 다수의 노드에 분산 저장하여 관리함으로써, 데이터 파일의 보안성과 무결성을 보장하고, 악의적인 공격이나 시스템 장애로 인한 피해를 방지할 수 있다. 또한, 저장 대상 데이터 파일을 데이터 다수의 데이터 청크들로 분할하고, 데이터 청크별로 해당 데이터 청크를 포함하는 트랜잭션들을 순차적으로 생성하여 블록체인 노드로 전송함으로써, 데이터 저장 용량이 제한적인 기존의 블록체인 기술을 그대로 이용하는 경우에도 대용량의 데이터 파일을 블록체인에 저장할 수 있으며, 데이터 저장 시스템 구축 비용을 절감할 수 있다. 나아가, 본 발명에 따른 실시예들은, 당해 기술 분야는 물론 관련 기술 분야에서 본 명세서에 언급된 내용 이외의 다른 여러 기술적 과제들을 해결할 수 있음은 물론이다.As described above, according to the present invention, security and integrity of a data file can be guaranteed by distributing and managing a user's data file in a plurality of nodes by using a block chain technique in which data can not be falsified and modulated, It is possible to prevent damage caused by an attack or system failure. In addition, by dividing the data file to be stored into a plurality of data chunks, sequentially generating transactions including the corresponding data chunks for each data chunk, and transmitting them to the block chain node, the existing block chain technology The data file of a large capacity can be stored in the block chain and the cost of constructing the data storage system can be reduced. Furthermore, it should be understood that the embodiments according to the present invention can solve various technical problems other than those mentioned in the specification in the related technical field as well as the related art.

본 발명의 다양한 실시예들을 설명함에 있어서, '~부' 또는 '~유닛'이라고 명명된 구성 요소들은 물리적으로 구분되는 요소들이라고 하기보다 기능적으로 구분되는 요소들로 이해되어야 한다. 따라서 각각의 구성요소는 다른 구성요소와 선택적으로 통합되거나 각각의 구성요소가 제어 로직(들)의 효율적인 실행을 위해 서브 구성요소들로 분할될 수 있다. 구성요소들이 통합 또는 분할되더라도 기능의 동일성이 인정될 수 있다면 통합 또는 분할된 구성요소들도 본 발명의 범위 내에 있다고 해석되어야 함은 당업자에게 자명하다.In describing the various embodiments of the present invention, components labeled 'to' or 'unit' should be understood to be functionally distinct elements rather than physically distinct elements. Thus, each component may be selectively integrated with another component, or each component may be divided into sub-components for efficient execution of the control logic (s). It will be apparent to those skilled in the art that, even if the components are integrated or partitioned, if the identity of the functions can be recognized, integrated or divided components are also to be construed as being within the scope of the present invention.

지금까지 본 발명에 대해 구체적인 실시예들을 참고하여 설명하였다. 그러나 당업자라면 본 발명의 기술적 범위에서 다양한 변형 실시예들이 구현될 수 있음을 명확하게 이해할 수 있을 것이다. 그러므로 앞서 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 할 것이다. 즉, 본 발명의 진정한 기술적 사상의 범위는 청구범위에 나타나 있으며, 그와 균등범위 내에 있는 모든 차이점은 본 발명에 포함되는 것으로 해석되어야 할 것이다.The present invention has been described with reference to specific embodiments. It will be apparent, however, to one skilled in the art that various modifications may be practiced within the technical scope of the invention. Therefore, the above-described embodiments should be considered from an illustrative point of view, not from a restrictive viewpoint. That is, the scope of the true technical idea of the present invention is shown in the claims, and all differences within the scope of equivalents thereof should be construed as being included in the present invention.

100 : 데이터 저장 장치 110 : 저장 유닛
120 : 제어 유닛 121 : 사용자 명령 수신부
122 : 데이터 파일 분할부 123 : 트랜잭션 생성부
124 : 트랜잭션 ID 저장부 125 : 트랜잭션 송수신부
126 : 트랜잭션 데이터 획득부 127 : 데이터 파일 생성부
130 : 입력 유닛 140 : 출력 유닛
150 : 통신 유닛
100: data storage device 110: storage unit
120: control unit 121: user command receiver
122: Data file partitioning unit 123: Transaction generating unit
124: Transaction ID storage unit 125: Transaction Transmission /
126: Transaction data acquisition unit 127: Data file generation unit
130: input unit 140: output unit
150: communication unit

Claims (15)

블록체인에 저장하고자 하는 데이터 파일을 저장하고 있는 저장 유닛;
블록체인 네트워크의 블록체인 노드와 유선 통신 또는 무선 통신을 수행하는 통신 유닛; 및
상기 데이터 파일을 상기 통신 유닛을 통해 상기 블록체인 노드로 전송하여 블록체인에 저장되도록 하는 제어 유닛을 포함하고,
상기 제어 유닛은,
상기 데이터 파일을 데이터 순서에 따라 미리 결정된 데이터 청크 단위로 분할하는 데이터 파일 분할부;
상기 데이터 파일에서 분할되는 데이터 청크별로 해당 데이터 청크를 포함하는 트랜잭션을 순차적으로 생성하는 트랜잭션 생성부; 및
상기 생성된 트랜잭션을 상기 통신 유닛을 통해 상기 블록체인 노드로 전송하여 블록체인에 저장되도록 하는 트랜잭션 송수신부를 포함하고,
상기 트랜잭션 생성부는, 상기 데이터 파일이 데이터 순서에 따라 복수의 데이터 청크로 분할되는 경우, 선순위 데이터 청크를 포함하는 직전 트랜잭션의 트랜잭션 식별자를, 상기 선순위 데이터 청크 다음의 차순위 데이터 청크를 포함하는 트랜잭션에 포함시키는 블록체인 기반의 데이터 저장 장치.
A storage unit storing a data file to be stored in a block chain;
A communication unit for performing wired communication or wireless communication with a block chain node of a block-chain network; And
And a control unit for transmitting the data file to the block-chain node through the communication unit and storing the data file in a block chain,
Wherein the control unit comprises:
A data file dividing unit dividing the data file into predetermined data chunk units according to a data order;
A transaction generating unit for sequentially generating a transaction including a corresponding data chunk for each data chunk divided in the data file; And
And a transaction transceiver for transmitting the generated transaction to the block chain node through the communication unit and storing the transaction in a block chain,
Wherein the transaction generating unit includes a transaction identifier of a previous transaction including a chunk of the primary data in a transaction including a chronological data chunk following the chunk of the primary data when the data file is divided into a plurality of data chunks in accordance with the data order Block chain based data storage device.
제1항에 있어서,
상기 데이터 파일 분할부는, 상기 데이터 파일의 크기가 미리 결정된 데이터 청크의 크기보다 크지 않은 경우, 상기 데이터 파일을 분할하지 않고,
상기 트랜잭션 생성부는, 상기 데이터 파일 전체를 포함하는 트랜잭션을 생성하는 것을 특징으로 하는 블록체인 기반의 데이터 저장 장치.
The method according to claim 1,
Wherein the data file dividing unit does not divide the data file when the size of the data file is not larger than a predetermined size of the data chunk,
Wherein the transaction generating unit generates a transaction including the entire data file.
제1항에 있어서,
상기 트랜잭션 생성부는, 상기 데이터 파일에서 분할된 데이터 청크가 최초 데이터 청크인 경우, 상기 최초 데이터 청크를 포함하는 트랜잭션에 직전 트랜잭션의 트랜잭션 식별자 값으로서 0 값을 포함시키는 것을 특징으로 하는 블록체인 기반의 데이터 저장 장치.
The method according to claim 1,
Wherein the transaction generating unit includes a value of 0 as a transaction identifier value of a previous transaction in a transaction including the initial data chunk when the divided data chunk in the data file is the first data chunk, Storage device.
제1항에 있어서,
상기 트랜잭션 생성부는, 상기 데이터 파일에서 분할된 데이터 청크가 최종 데이터 청크인 경우, 상기 최종 데이터 청크를 포함하는 트랜잭션에 상기 데이터 파일을 식별하는 파일 식별 정보를 더 포함시키는 것을 특징으로 하는 블록체인 기반의 데이터 저장 장치.
The method according to claim 1,
Wherein the transaction generating unit further includes file identification information for identifying the data file in a transaction including the final data chunk when the divided data chunk in the data file is the final data chunk. Data storage device.
제1항에 있어서,
상기 제어 유닛은, 상기 데이터 파일의 최종 데이터 청크를 포함하는 최종 트랜잭션이 생성되어 전송된 경우, 상기 최종 트랜잭션의 트랜잭션 식별자를 저장하는 트랜잭션 ID 저장부를 더 포함하는 것을 특징으로 하는 블록체인 기반의 데이터 저장 장치.
The method according to claim 1,
Wherein the control unit further comprises a transaction ID storage unit for storing a transaction identifier of the final transaction when a final transaction including a final data chunk of the data file is generated and transmitted. Device.
제1항에 있어서,
상기 트랜잭션 송수신부는, 상기 데이터 파일의 최종 데이터 청크를 포함시켜 전송한 최종 트랜잭션의 트랜잭션 식별자를 사용자의 데이터 파일 다운로드 명령에 따라 임의의 블록체인 노드로 전송하여 해당 블록체인 노드로부터 상기 전송된 트랜잭션 식별자에 대응하는 트랜잭션을 수신하고, 상기 트랜잭션 송수신부가 수신한 트랜잭션에 직전 트랜잭션의 트랜잭션 식별자가 포함된 경우 상기 직전 트랜잭션의 트랜잭션 식별자를 임의의 블록체인 노드로 전송하여 해당 블록체인 노드로부터 상기 전송된 직전 트랜잭션의 트랜잭션 식별자에 대응하는 트랜잭션을 수신하는 과정을 반복하는 것을 특징으로 하는 블록체인 기반의 데이터 저장 장치.
The method according to claim 1,
The transaction transceiver transmits a transaction identifier of a final transaction including a final data chunk of the data file to an arbitrary block chain node according to a data file download command of the user, If the transaction received by the transaction sender / receiver includes a transaction identifier of a previous transaction, the transaction identifier of the previous transaction is transferred to a block-chain node, And receiving a transaction corresponding to the transaction identifier, and repeats the process of receiving the transaction corresponding to the transaction identifier.
제6항에 있어서,
상기 제어 유닛은,
상기 트랜잭션 송수신부가 수신한 트랜잭션에서 데이터 청크와 직전 트랜잭션의 트랜잭션 식별자를 획득하여 상기 획득된 데이터 청크를 임시 저장하고, 상기 획득된 직전 트랜잭션의 트랜잭션 식별자를 상기 트랜잭션 송수신부로 전달하는 트랜잭션 데이터 획득부; 및
상기 트랜잭션 데이터 획득부에 의해 임시 저장된 데이터 청크들을 결합하여 데이터 파일을 생성하는 데이터 파일 생성부를 더 포함하는 것을 특징으로 하는 블록체인 기반의 데이터 저장 장치.
The method according to claim 6,
Wherein the control unit comprises:
A transaction data acquiring unit for acquiring a transaction identifier of a data chunk and a previous transaction in a transaction received by the transaction transmitting and receiving unit, temporarily storing the acquired data chunk, and transmitting the transaction identifier of the acquired previous transaction to the transaction transmitting and receiving unit; And
And a data file generation unit for generating a data file by combining the data chunks temporarily stored by the transaction data acquisition unit.
블록체인 네트워크의 블록체인 노드와 유선 통신 또는 무선 통신을 수행하는 클라이언트가 데이터 파일을 블록체인에 저장하는 블록체인 기반의 데이터 저장 방법에 있어서,
상기 클라이언트가 상기 데이터 파일을 데이터 순서에 따라 미리 결정된 데이터 청크 단위로 분할하는 (a) 단계;
상기 클라이언트가 상기 데이터 파일에서 분할되는 데이터 청크별로 해당 데이터 청크를 포함하는 트랜잭션을 순차적으로 생성하는 (b) 단계; 및
상기 클라이언트가 상기 생성된 트랜잭션을 상기 블록체인 노드로 전송하여 블록체인에 저장되도록 하는 (c) 단계를 포함하고,
상기 (b) 단계는, 상기 데이터 파일이 데이터 순서에 따라 복수의 데이터 청크로 분할되는 경우, 선순위 데이터 청크를 포함하는 직전 트랜잭션의 트랜잭션 식별자를, 상기 선순위 데이터 청크 다음의 차순위 데이터 청크를 포함하는 트랜잭션에 포함시키는 단계를 포함하는 것을 특징으로 하는 블록체인 기반의 데이터 저장 방법.
1. A block-chain-based data storage method for storing a data file in a block chain by a client performing wire communication or wireless communication with a block chain node of a block-chain network,
(A) dividing the data file into predetermined data chunk units according to data order;
(B) sequentially generating a transaction including a corresponding data chunk for each data chunk divided by the client in the data file; And
(C) causing the client to transmit the generated transaction to the block-chain node to be stored in a block chain,
Wherein the step (b) includes the step of, when the data file is divided into a plurality of data chunks according to the data order, replacing the transaction identifier of the immediately preceding transaction including the chunk of the primary data with the transaction identifier including the chronological data chunk after the chronological data chunk And storing the data in the block chain.
제8항에 있어서,
상기 (a) 단계는, 상기 데이터 파일의 크기가 미리 결정된 데이터 청크의 크기보다 크지 않은 경우, 상기 데이터 파일을 분할하지 않는 단계를 포함하고,
상기 (b) 단계는, 상기 데이터 파일이 분할되지 않는 경우, 상기 데이터 파일 전체를 포함하는 트랜잭션을 생성하는 단계를 포함하는 것을 특징으로 하는 블록체인 기반의 데이터 저장 방법.
9. The method of claim 8,
Wherein the step (a) includes not dividing the data file if the size of the data file is not larger than a predetermined size of the data chunk,
Wherein the step (b) comprises generating a transaction including the entire data file if the data file is not divided.
제8항에 있어서,
상기 (b) 단계는, 상기 데이터 파일에서 분할된 데이터 청크가 최초 데이터 청크인 경우, 상기 최초 데이터 청크를 포함하는 트랜잭션에 직전 트랜잭션의 트랜잭션 식별자 값으로서 0 값을 포함시키는 단계를 포함하는 것을 특징으로 하는 블록체인 기반의 데이터 저장 방법.
9. The method of claim 8,
Wherein the step (b) includes the step of including a value of 0 as a transaction identifier value of a previous transaction in a transaction including the initial data chunk when the data chunk divided in the data file is the first data chunk. A block chain based data storage method.
제8항에 있어서,
상기 (b) 단계는, 상기 데이터 파일에서 분할된 데이터 청크가 최종 데이터 청크인 경우, 상기 최종 데이터 청크를 포함하는 트랜잭션에 상기 데이터 파일을 식별하는 파일 식별 정보를 더 포함시키는 단계를 포함하는 것을 특징으로 하는 블록체인 기반의 데이터 저장 방법.
9. The method of claim 8,
The step (b) may further include the step of, when the data chunk divided in the data file is the final data chunk, further including file identification information for identifying the data file in the transaction including the final data chunk Wherein the data is stored in a block chain.
제8항에 있어서,
상기 방법은, 상기 데이터 파일의 최종 데이터 청크를 포함하는 최종 트랜잭션이 생성되어 전송된 경우, 상기 클라이언트가 상기 최종 트랜잭션의 트랜잭션 식별자를 저장하는 (d) 단계를 더 포함하는 것을 특징으로 하는 블록체인 기반의 데이터 저장 방법.
9. The method of claim 8,
The method further comprises: (d) when the client has created and transmitted a final transaction that includes a chunk of the final data of the data file, storing the transaction identifier of the final transaction / RTI >
제8항에 있어서,
상기 방법은,
상기 클라이언트가 상기 데이터 파일의 최종 데이터 청크를 포함시켜 전송한 최종 트랜잭션의 트랜잭션 식별자를, 사용자의 데이터 파일 다운로드 명령에 따라 임의의 블록체인 노드로 전송하여 해당 블록체인 노드로부터 상기 전송된 트랜잭션 식별자에 대응하는 트랜잭션을 수신하는 (e) 단계; 및
상기 클라이언트가 수신한 트랜잭션에 직전 트랜잭션의 트랜잭션 식별자가 포함된 경우, 상기 클라이언트가 상기 직전 트랜잭션의 트랜잭션 식별자를 임의의 블록체인 노드로 전송하여 해당 블록체인 노드로부터 상기 전송된 직전 트랜잭션의 트랜잭션 식별자에 대응하는 트랜잭션을 수신하는 과정을 반복하는 (f) 단계를 더 포함하는 것을 특징으로 하는 블록체인 기반의 데이터 저장 방법.
9. The method of claim 8,
The method comprises:
The client transmits the transaction identifier of the last transaction including the last data chunk of the data file to an arbitrary block chain node according to the data file download command of the user so as to correspond to the transferred transaction identifier (E) receiving a transaction to be performed; And
If the transaction received by the client includes the transaction identifier of the immediately preceding transaction, the client transmits the transaction identifier of the immediately preceding transaction to the arbitrary block chain node and corresponds to the transaction identifier of the transferred transaction from the corresponding block chain node And (f) repeating the process of receiving a transaction to be performed based on the block chain.
제13항에 있어서,
상기 (f) 단계는, 상기 클라이언트가 수신한 트랜잭션에서 데이터 청크와 직전 트랜잭션의 트랜잭션 식별자를 획득하여 상기 획득된 데이터 청크를 임시 저장하고, 상기 획득된 직전 트랜잭션의 트랜잭션 식별자를 임의의 블록체인 노드로 전송하는 단계를 포함하고,
상기 방법은, 상기 (f) 단계에서 임시 저장된 데이터 청크들을 결합하여 데이터 파일을 생성하는 (g) 단계를 더 포함하는 것을 특징으로 하는 블록체인 기반의 데이터 저장 방법.
14. The method of claim 13,
The step (f) includes: acquiring a transaction identifier of a data chunk and a previous transaction in a transaction received by the client, temporarily storing the obtained data chunk, and transferring the transaction identifier of the obtained previous transaction to an arbitrary block chain node Comprising:
The method of claim 1, further comprising: (g) combining data chunks stored temporarily in step (f) to generate a data file.
제8항 내지 제14항 중 어느 한 항에 따른 방법을 컴퓨터 시스템을 통해 실행하는 컴퓨터 프로그램으로서 기록매체에 기록된 컴퓨터 프로그램.15. A computer program for executing a method according to any one of claims 8 to 14 via a computer system, the computer program being recorded on a recording medium.
KR1020170177801A 2017-12-22 2017-12-22 Apparatus and method for storing data based on blockchain KR102288521B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170177801A KR102288521B1 (en) 2017-12-22 2017-12-22 Apparatus and method for storing data based on blockchain

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170177801A KR102288521B1 (en) 2017-12-22 2017-12-22 Apparatus and method for storing data based on blockchain

Publications (2)

Publication Number Publication Date
KR20190076197A true KR20190076197A (en) 2019-07-02
KR102288521B1 KR102288521B1 (en) 2021-08-09

Family

ID=67257976

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170177801A KR102288521B1 (en) 2017-12-22 2017-12-22 Apparatus and method for storing data based on blockchain

Country Status (1)

Country Link
KR (1) KR102288521B1 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102203617B1 (en) * 2019-07-19 2021-01-14 한전케이디엔주식회사 Method for Preventing Forgery and Falsification of Prediction Modeling
WO2021048665A1 (en) * 2019-09-12 2021-03-18 nChain Holdings Limited Storing a program on a blockchain
KR20210040569A (en) 2019-10-04 2021-04-14 삼성에스디에스 주식회사 Blockchain based data management system and method thereof
KR20210050959A (en) * 2019-10-29 2021-05-10 삼성에스디에스 주식회사 Blockchain based file management system and method thereof
KR20210079053A (en) * 2019-12-19 2021-06-29 한전케이디엔주식회사 Apparatus for interfacing communication between legacy system for recruiting and platform of block_chain
KR20210142823A (en) 2020-05-19 2021-11-26 삼성에스디에스 주식회사 Method and apparatus for managing data based on blockchain
KR20220037054A (en) 2020-09-17 2022-03-24 주식회사 세수 Disposable Blockchain Ledger System and Blockchain Operation Method Using the same
WO2023128283A1 (en) * 2021-12-27 2023-07-06 엘에스웨어(주) Ledger information access system having plurality of storage spaces, and performance method
WO2023128273A1 (en) * 2021-12-27 2023-07-06 엘에스웨어(주) System and method for accessing ledger information by using common keyset information

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170010787A (en) * 2014-05-13 2017-02-01 클라우드 크라우딩 코포레이션 Distributed secure data storage and transmission of streaming media content
KR101727525B1 (en) * 2016-09-05 2017-04-17 주식회사 스케일체인 Block chain based distributed storage method and device thereof
KR20170075092A (en) * 2015-12-22 2017-07-03 주식회사 와이즈넛 MANAGEMENT METHOD FOR DATA STABILITY OF NoSQL ON DISTRIBUTED FILE SYSTEM

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170010787A (en) * 2014-05-13 2017-02-01 클라우드 크라우딩 코포레이션 Distributed secure data storage and transmission of streaming media content
KR20170075092A (en) * 2015-12-22 2017-07-03 주식회사 와이즈넛 MANAGEMENT METHOD FOR DATA STABILITY OF NoSQL ON DISTRIBUTED FILE SYSTEM
KR101727525B1 (en) * 2016-09-05 2017-04-17 주식회사 스케일체인 Block chain based distributed storage method and device thereof

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102203617B1 (en) * 2019-07-19 2021-01-14 한전케이디엔주식회사 Method for Preventing Forgery and Falsification of Prediction Modeling
WO2021048665A1 (en) * 2019-09-12 2021-03-18 nChain Holdings Limited Storing a program on a blockchain
KR20210040569A (en) 2019-10-04 2021-04-14 삼성에스디에스 주식회사 Blockchain based data management system and method thereof
US11334562B2 (en) 2019-10-04 2022-05-17 Samsung Sds Co., Ltd. Blockchain based data management system and method thereof
KR20210050959A (en) * 2019-10-29 2021-05-10 삼성에스디에스 주식회사 Blockchain based file management system and method thereof
US11128440B2 (en) * 2019-10-29 2021-09-21 Samsung Sds Co., Ltd. Blockchain based file management system and method thereof
KR20210079053A (en) * 2019-12-19 2021-06-29 한전케이디엔주식회사 Apparatus for interfacing communication between legacy system for recruiting and platform of block_chain
KR20210142823A (en) 2020-05-19 2021-11-26 삼성에스디에스 주식회사 Method and apparatus for managing data based on blockchain
US11625385B2 (en) 2020-05-19 2023-04-11 Samsung Sds Co., Ltd. Method and apparatus for managing data based on blockchain
KR20220037054A (en) 2020-09-17 2022-03-24 주식회사 세수 Disposable Blockchain Ledger System and Blockchain Operation Method Using the same
WO2023128283A1 (en) * 2021-12-27 2023-07-06 엘에스웨어(주) Ledger information access system having plurality of storage spaces, and performance method
WO2023128273A1 (en) * 2021-12-27 2023-07-06 엘에스웨어(주) System and method for accessing ledger information by using common keyset information

Also Published As

Publication number Publication date
KR102288521B1 (en) 2021-08-09

Similar Documents

Publication Publication Date Title
KR20190076197A (en) Apparatus and method for storing data based on blockchain
US10440111B2 (en) Application execution program, application execution method, and information processing terminal device that executes application
CN109656873B (en) Block chain-based data archiving method and device and terminal equipment
US20190227713A1 (en) System and method for managing object store
EP3582110A1 (en) Bidirectional dynamic offloading of tasks between a host and a mobile device
CN109656886B (en) Key value pair-based file system implementation method, device, equipment and storage medium
KR20180005542A (en) Apparatus and method for verifing data integrity
CN111597567A (en) Data processing method, data processing device, node equipment and storage medium
CN109376126B (en) File or folder processing method, mobile terminal and storage medium
CN111464513A (en) Data detection method, device, server and storage medium
CN111367923A (en) Data processing method, data processing device, node equipment and storage medium
CN112000382A (en) Linux system starting method and device and readable storage medium
US11496304B2 (en) Information processing device, information processing method, and storage medium
CN109617713A (en) The implementation method and server of resource dissemination
CN111182050B (en) Method and equipment for realizing communication between application and server
KR101419275B1 (en) Data synchronizing and servicing apparatus and method based on cloud storage
US11838207B2 (en) Systems for session-based routing
CN109144520B (en) Information interaction method, device, equipment and storage medium among different objects in Android
US20210382872A1 (en) Blockchain-based Data Storage Method, Related Device and Storage Medium
US20200081812A1 (en) Intelligent configuration management of user devices
CN113556333A (en) Computer network data secure transmission method and device
KR20170006960A (en) Application Providing System using Cloud Virtual File, Cloud Server and Application Providing Method, Service Server and Service Method, Mobile and Application Practicing Method
CN113342275B (en) Method, apparatus and computer readable storage medium for accessing data at block link points
CN117642740A (en) Proxy service for secure upload of file system tree structures
JP2008250864A (en) Data storing method, data storing system and information processor

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant