KR20190018869A - System and method for providing storage service based on block chain - Google Patents

System and method for providing storage service based on block chain Download PDF

Info

Publication number
KR20190018869A
KR20190018869A KR1020170103529A KR20170103529A KR20190018869A KR 20190018869 A KR20190018869 A KR 20190018869A KR 1020170103529 A KR1020170103529 A KR 1020170103529A KR 20170103529 A KR20170103529 A KR 20170103529A KR 20190018869 A KR20190018869 A KR 20190018869A
Authority
KR
South Korea
Prior art keywords
file
block chain
key
stored
transaction
Prior art date
Application number
KR1020170103529A
Other languages
Korean (ko)
Other versions
KR102094497B1 (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 KR1020170103529A priority Critical patent/KR102094497B1/en
Publication of KR20190018869A publication Critical patent/KR20190018869A/en
Application granted granted Critical
Publication of KR102094497B1 publication Critical patent/KR102094497B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • 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/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

Disclosed are a system for providing a storage service based on a block chain and a method thereof. According to an embodiment of the present invention, the system for providing a storage service based on a block chain includes: a user command receiving unit for receiving a command of a service user; a file storage unit which stores an encryption file, in which a file to be stored is encrypted, in a block chain when a command to store a file of a service user is received and stores a transaction key used for inquiring a transaction recorded at the time of storing the encrypted file and a decryption key used for decrypting the encrypted file in a private storage space of a smart contract which is stored and executed in a block chain; and a file manager for deleting the decryption key stored in a private storage space of the smart contract when a file delete command of a service user is received for the encrypted file stored in the block chain. It is possible to reduce costs for establishing a storage service system, ensure the integrity of the stored data files and authenticity of the source, and delete data files stored in the block chain.

Description

블록체인 기반의 스토리지 서비스 제공 시스템 및 방법{System and method for providing storage service based on block chain}[0001] The present invention relates to a system and a method for providing a storage service based on a block chain,

본 발명은 블록체인 기반의 스토리지 서비스 제공 시스템 및 방법에 관한 것으로서, 더욱 상세하게는, 데이터의 위조 또는 변조가 불가한 블록체인에 서비스 사용자의 데이터 파일을 저장하고 관리하는 블록체인 기반의 스토리지 서비스 제공 시스템 및 방법에 관한 것이다.The present invention relates to a system and method for providing a storage service based on a block chain, and more particularly, to a block chain-based storage service for storing and managing a service user's data file in a block chain in which data can not be falsified or tampered System and method.

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

그러나, 기존의 비트코인(Bitcoin)이나 이더리움(Ethereum) 등에서 사용되는 블록체인 기술은, 가상 화폐 거래 시의 해킹을 방지하기 위한 것으로서, 블록체인에 저장되는 데이터의 크기가 비트코인의 경우 80바이트에 불과하고, 이더리움의 경우에도 수 킬로바이트에 불과할 정도로 제한적이어서, 데이터 파일의 크기나 종류에 상관없이 데이터 파일을 저장해야 하는 스토리지 서비스(storage service)에 적용할 수 없다는 문제가 있다.However, the block chain technique used in the conventional Bitcoin or Ethereum is for preventing hacking in the virtual currency transaction. When the size of data stored in the block chain is 80 bytes In the case of Ethernet, it is limited to only a few kilobytes. Thus, there is a problem that it can not be applied to a storage service in which a data file must be stored regardless of the size or type of the data file.

또한, 한국 등록특허공보 제10-1727525호, 한국 공개특허공보 제10-2012-0015680호 등에 개시된 바와 같이, 기존 기술들은 블록체인에 일단 저장된 데이터를 변경 및 삭제할 수 없는 블록체인의 비가역적 특성을 이용하여 데이터의 위조 또는 변조를 방지하고 있으나, 블록체인에 저장된 데이터를 삭제하는 방안을 전혀 제시하지 못하고 있기 때문에, 데이터 파일의 저장은 물론 저장된 파일의 삭제 등과 같은 파일 관리 기능을 제공해야 하는 스토리지 서비스에 적용할 수 없다는 문제가 있다.In addition, as disclosed in Korean Patent Publication No. 10-1727525 and Korean Patent Laid-Open Publication No. 10-2012-0015680, existing technologies have shown that irreversible characteristics of a block chain in which data stored once in a block chain can not be changed or deleted It is possible to prevent the data from being falsified or altered. However, since the data stored in the block chain can not be deleted at all, it is necessary to provide a storage service There is a problem in that it can not be applied to.

본 발명이 해결하고자 하는 기술적 과제는, 블록체인 기술을 이용하여 스토리지 서비스 시스템 구축 비용을 절감하고 저장된 데이터 파일의 무결성과 원본 증명력을 보장함은 물론, 블록체인에 저장된 데이터 파일의 삭제 효과를 가져올 수 있는 블록체인 기반의 스토리지 서비스 제공 시스템 및 방법을 제공하는 것이다.SUMMARY OF THE INVENTION The present invention has been made to solve the above-mentioned problems occurring in the prior art, and it is an object of the present invention to provide a storage system capable of reducing the cost of constructing a storage service system, And to provide a system and method for providing a storage service based on a block chain.

본 발명의 일 실시예에 따른 블록체인 기반의 스토리지 서비스 제공 시스템은, 블록체인에 서비스 사용자의 데이터 파일을 저장하는 시스템으로서, 서비스 사용자의 명령을 수신하는 사용자 명령 수신부; 서비스 사용자의 파일 저장 명령이 수신되는 경우, 저장 대상 파일을 암호화한 암호화 파일을 블록체인에 저장하고, 상기 암호화 파일의 저장시 기록된 트랜잭션의 조회에 사용되는 트랜잭션 키와 상기 암호화 파일의 복호화에 사용되는 복호 키를 상호 연관시켜, 블록체인에 저장되어 실행되는 스마트 컨트랙트(smart contract)의 전용 저장 공간에 저장하는 파일 저장부; 및 블록체인에 저장된 상기 암호화 파일에 대하여 서비스 사용자의 파일 삭제 명령이 수신되는 경우, 상기 스마트 컨트랙트의 전용 저장 공간에 저장된 상기 복호 키를 삭제하는 파일 관리부를 포함할 수 있다.A system for providing a storage service based on a block chain according to an embodiment of the present invention includes a user command receiver for receiving a command of a service user; When a command to store a file of a service user is received, an encryption file in which a storage object file is encrypted is stored in a block chain, and a transaction key used for inquiry of a transaction recorded at the time of storing the encryption file is used for decryption of the encryption file A file storage unit for storing the decryption keys in a dedicated storage space of a smart contract stored in a block chain and correlated with each other; And a file manager for deleting the decryption key stored in the private storage space of the smart contract when a file delete command of the service user is received for the encrypted file stored in the block chain.

일 실시예에 있어서, 상기 파일 저장부는, 상기 저장 대상 파일의 암호화 및 복호화에 사용되는 고유의 암호 키 및 복호 키를 생성하는 키 생성부; 상기 암호 키로 상기 저장 대상 파일을 암호화하여 상기 암호화 파일을 생성하는 파일 암호화부; 상기 암호화 파일을 블록체인에 저장하는 암호화 파일 저장부; 및 상기 트랜잭션 키와 상기 복호 키를 상호 연관시켜 상기 스마트 컨트랙트의 전용 저장 공간에 저장하는 키 저장부를 포함할 수 있다.In an exemplary embodiment, the file storage unit may include: a key generation unit for generating a unique encryption key and a decryption key used for encrypting and decrypting the storage object file; A file encryption unit for encrypting the storage object file with the encryption key to generate the encryption file; An encrypted file storage unit for storing the encrypted file in a block chain; And a key storage unit for correlating the transaction key with the decryption key and storing the transaction key in a private storage space of the smart contract.

일 실시예에 있어서, 상기 파일 저장부는, 상기 저장 대상 파일의 암호화 전에, 상기 저장 대상 파일의 명칭, 크기 및 종류 중 적어도 하나를 포함하는 메타데이터를 추출하는 메타데이터 추출부; 및 상기 메타데이터와 상기 트랙잭션 키를 상호 연관시켜 데이터베이스에 저장하는 파일 정보 저장부를 포함할 수 있다.In one embodiment, the file storage unit may include a metadata extraction unit for extracting metadata including at least one of a name, a size, and a type of the storage object file before encryption of the storage object file; And a file information storage unit for correlating the metadata and the transaction key and storing the metadata in a database.

일 실시예에 있어서, 상기 파일 관리부는, 블록체인에 저장된 상기 암호화 파일에 대하여 서비스 사용자의 파일 삭제 명령이 수신되는 경우, 상기 데이터베이스에서 삭제 대상 파일의 메타데이터와 연관된 트랜잭션 키를 검출하는 트랜잭션 키 검출부; 및 상기 스마트 컨트랙트를 실행하여 상기 스마트 컨트랙트의 전용 저장 공간에서 상기 검출된 트랜잭션 키에 대응하는 트랙잭션 키와 연관된 복호 키를 삭제하는 스마트 컨트랙트 제어부를 포함할 수 있다.In one embodiment, the file management unit may include a transaction key detection unit for detecting a transaction key associated with the metadata of the file to be deleted in the database, when the file delete command of the service user is received for the encrypted file stored in the block chain, ; And a smart contract controller for executing the smart contract to delete a decryption key associated with the transaction key corresponding to the detected transaction key in a private storage space of the smart contract.

일 실시예에 있어서, 상기 파일 관리부는, 블록체인에 저장된 상기 암호화 파일에 대하여 서비스 사용자의 파일 다운로드 명령이 수신되는 경우, 상기 데이터베이스에서 다운로드 대상 파일의 메타데이터와 연관된 트랜잭션 키를 검출하는 트랜잭션 키 검출부; 상기 스마트 컨트랙트를 실행하여 상기 검출된 트랜잭션 키에 대응하는 트랙잭션 키와 연관된 복호 키를 수신하는 스마트 컨트랙트 제어부; 상기 검출된 트랙잭션 키로 블록체인에 저장된 트랜잭션을 조회하여 블록체인에 저장된 상기 암호화 파일을 수신하는 암호화 파일 수신부; 및 상기 수신된 복호 키로 상기 수신된 암호화 파일을 복호화하는 파일 복호화부를 포함할 수 있다.In one embodiment, the file management unit may include a transaction key detection unit for detecting a transaction key associated with metadata of a download object file in the database when a file download command of a service user is received for the encrypted file stored in a block chain, ; A smart contract control unit executing the smart contract and receiving a decryption key associated with a transaction key corresponding to the detected transaction key; An encrypted file receiver for receiving the encrypted file stored in the block chain by inquiring a transaction stored in the block chain with the detected transaction key; And a file decryption unit for decrypting the received encrypted file with the received decryption key.

본 발명의 일 실시예에 따른 블록체인 기반의 스토리지 서비스 제공 방법은, 블록체인 네트워크의 노드와 통신하는 스토리지 서비스 제공 시스템을 이용하여 블록체인에 서비스 사용자의 데이터 파일을 저장하는 방법으로서, 상기 시스템이 서비스 사용자의 명령을 수신하는 사용자 명령 수신 단계; 서비스 사용자의 파일 저장 명령이 수신되는 경우, 상기 시스템이 저장 대상 파일을 암호화한 암호화 파일을 블록체인에 저장하고, 상기 암호화 파일의 저장시 기록된 트랜잭션의 조회에 사용되는 트랜잭션 키와 상기 암호화 파일의 복호화에 사용되는 복호 키를 상호 연관시켜, 블록체인에 저장되어 실행되는 스마트 컨트랙트(smart contract)의 전용 저장 공간에 저장하는 파일 저장 단계; 및 블록체인에 저장된 상기 암호화 파일에 대하여 서비스 사용자의 파일 삭제 명령이 수신되는 경우, 상기 시스템이 상기 스마트 컨트랙트의 전용 저장 공간에 저장된 상기 복호 키를 삭제하는 파일 관리 단계를 포함할 수 있다.A method for providing a storage service based on a block chain according to an embodiment of the present invention is a method for storing a data file of a service user in a block chain using a storage service providing system in communication with nodes of a block chain network, A user command receiving step of receiving a command of a service user; The system according to claim 1, further comprising: a storage unit for storing a transaction file stored in the block chain and storing the encrypted transaction file; A file storage step of correlating the decryption keys used for decryption and storing them in a dedicated storage space of a smart contract stored in a block chain and executed; And a file management step of deleting the decryption key stored in the private storage space of the smart contract when the system user receives a file delete command for the encrypted file stored in the block chain.

일 실시예에 있어서, 상기 파일 저장 단계는, 상기 시스템이 상기 저장 대상 파일의 암호화 및 복호화에 사용되는 고유의 암호 키 및 복호 키를 생성하는 키 생성 단계; 상기 시스템이 상기 암호 키로 상기 저장 대상 파일을 암호화하여 상기 암호화 파일을 생성하는 파일 암호화 단계; 상기 시스템이 상기 암호화 파일을 블록체인에 저장하는 암호화 파일 저장 단계; 및 상기 트랜잭션 키와 상기 복호 키를 상호 연관시켜 상기 스마트 컨트랙트의 전용 저장 공간에 저장하는 키 저장부를 포함할 수 있다.In one embodiment, the file storage step may include: a key generation step of generating a unique encryption key and a decryption key used by the system for encrypting and decrypting the storage object file; The system encrypting the storage object file with the encryption key to generate the encryption file; The system comprising: an encrypted file storage step of storing the encrypted file in a block chain; And a key storage unit for correlating the transaction key with the decryption key and storing the transaction key in a private storage space of the smart contract.

일 실시예에 있어서, 상기 파일 저장 단계는, 상기 저장 대상 파일의 암호화 전에, 상기 시스템이 상기 저장 대상 파일의 명칭, 크기 및 종류 중 적어도 하나를 포함하는 메타데이터를 추출하는 메타데이터 추출 단계; 및 상기 시스템이 상기 메타데이터와 상기 트랙잭션 키를 상호 연관시켜 데이터베이스에 저장하는 파일 정보 저장 단계를 포함할 수 있다.In one embodiment, the file storage step may include: a metadata extraction step of extracting metadata including at least one of a name, a size, and a type of the storage object file before the encryption of the storage object file; And a file information storing step in which the system associates the metadata and the transaction key with each other and stores the metadata in a database.

일 실시예에 있어서, 상기 파일 관리 단계는, 블록체인에 저장된 상기 암호화 파일에 대하여 서비스 사용자의 파일 삭제 명령이 수신되는 경우, 상기 시스템이 상기 데이터베이스에서 삭제 대상 파일의 메타데이터와 연관된 트랜잭션 키를 검출하는 트랜잭션 키 검출 단계; 및 상기 시스템이 상기 스마트 컨트랙트를 실행하여 상기 스마트 컨트랙트의 전용 저장 공간에서 상기 검출된 트랜잭션 키에 대응하는 트랙잭션 키와 연관된 복호 키를 삭제하는 스마트 컨트랙트 제어 단계를 포함할 수 있다.In one embodiment, the file management step may include a step of, when receiving a file delete command of a service user for the encrypted file stored in the block chain, detecting, by the system, a transaction key associated with the metadata of the file to be deleted in the database A transaction key detection step of detecting a transaction key; And a smart contract control step in which the system executes the smart contract to delete a decryption key associated with the transaction key corresponding to the detected transaction key in a private storage space of the smart contract.

일 실시예에 있어서, 상기 파일 관리 단계는, 블록체인에 저장된 상기 암호화 파일에 대하여 서비스 사용자의 파일 다운로드 명령이 수신되는 경우, 상기 시스템이 상기 데이터베이스에서 다운로드 대상 파일의 메타데이터와 연관된 트랜잭션 키를 검출하는 트랜잭션 키 검출 단계; 상기 시스템이 상기 스마트 컨트랙트를 실행하여 상기 검출된 트랜잭션 키에 대응하는 트랙잭션 키와 연관된 복호 키를 수신하는 스마트 컨트랙트 제어 단계; 상기 시스템이 상기 검출된 트랙잭션 키로 블록체인에 저장된 트랜잭션을 조회하여 블록체인에 저장된 상기 암호화 파일을 수신하는 암호화 파일 수신 단계; 및 상기 시스템이 상기 수신된 복호 키로 상기 수신된 암호화 파일을 복호화하는 파일 복호화 단계를 포함할 수 있다.In one embodiment, the file management step includes the steps of: when a file download command of a service user is received for the encrypted file stored in the block chain, the system detects a transaction key associated with the metadata of the file to be downloaded in the database A transaction key detection step of detecting a transaction key; A smart contract control step in which the system executes the smart contract and receives a decryption key associated with a transaction key corresponding to the detected transaction key; Receiving an encrypted file stored in a block chain by retrieving a transaction stored in a block chain with the detected transaction key; And a file decryption step in which the system decrypts the received encrypted file with the received decryption key.

본 발명에 따른 실시예들은, 상술한 동작 또는 방법을 컴퓨터 시스템을 통해 실행하는 컴퓨터 프로그램으로서 기록매체에 기록되는 컴퓨터 프로그램을 이용하여 구현될 수 있다.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.

본 발명에 따르면, 별도의 중앙 집중형 스토리지 서버나 고가의 WORM(Write Once Read Many) 스토리지 등을 구축할 필요없이, 데이터의 위조 또는 변조가 불가한 블록체인 기술을 이용하여 서비스 사용자의 데이터 파일을 저장 및 관리하는 스토리지 서비스를 제공함으로써, 스토리지 서비스 시스템 구축 비용을 절감하면서도 데이터 파일의 무결성과 원본 증명력을 보장할 수 있다.According to the present invention, a data file of a service user can be stored using a block-chain technology that can not be falsified or tampered with, without the need to construct a separate centralized storage server or expensive WORM (Write Once Read Many) By providing a storage service to store and manage, it is possible to guarantee the integrity of the data file and the authenticity of the data file while reducing the cost of constructing the storage service system.

또한, 서비스 사용자의 데이터 파일 저장시에 해당 파일을 고유의 암호 키로 암호화하여 블록체인에 저장함으로써, 데이터 파일의 보안성 및 기밀성을 유지할 수 있다.Also, when a service user stores a data file, the file is encrypted with a unique encryption key and stored in a block chain, so that security and confidentiality of the data file can be maintained.

특히, 저장된 암호화 파일의 고유의 복호 키를 블록체인에서 지원되는 스마트 컨트랙트의 전용 저장 공간에 저장하고, 사용자의 파일 삭제 명령이 있는 경우 스마트 컨트랙트를 실행하여 삭제 대상 파일의 해당 복호 키를 삭제함으로써, 블록체인에 데이터 파일을 저장하면서도 블록체인에 저장된 데이터 파일을 삭제하는 효과를 가져올 수 있다.In particular, if a unique decryption key of a stored encrypted file is stored in a private storage space of a smart contract supported by a block chain, and if the user has a file deletion command, the smart contract is executed to delete the corresponding decryption key of the deletion object file, It is possible to save the data file in the block chain while deleting the data file stored in the block chain.

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

도 1은 본 발명이 적용되는 블록체인 네트워크 환경의 일례를 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 블록체인 기반의 스토리지 서비스 제공 시스템을 나타낸 블록도이다.
도 3은 본 발명의 일 실시예에 따른 블록체인 기반의 스토리지 서비스 제공 시스템과 연동하는 블록체인 노드의 일례를 나타낸 블록도이다.
도 4는 본 발명의 일 실시예에 따른 블록체인 기반의 스토리지 서비스 제공 방법의 데이터 파일 저장 프로세스를 나타낸 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 블록체인 기반의 스토리지 서비스 제공 방법의 데이터 파일 삭제 프로세스를 나타낸 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 블록체인 기반의 스토리지 서비스 제공 방법의 데이터 파일 다운로드 프로세스를 나타낸 흐름도이다.
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 system for providing a storage service based on a block chain according to an embodiment of the present invention.
3 is a block diagram illustrating an example of a block-chain node interworking with a block-chain-based storage service providing system according to an embodiment of the present invention.
4 is a flowchart illustrating a data file storage process of a method of providing a storage service based on a block chain according to an embodiment of the present invention.
5 is a flowchart illustrating a data file deletion process of a method of providing a storage service based on a block chain according to an embodiment of the present invention.
6 is a flowchart illustrating a process of downloading a data file of a method of providing a storage service based on a block chain 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) 등과 같은 고정 단말이거나, 핸드폰 등과 같은 모바일 단말로 구성될 수 있다. 블록체인 노드(20)는 블록체인에 파일이 저장됨에 따라 기록되는 트랜잭션(transaction)의 승인, 블록체인을 이용한 트랜잭션 내역 보관, 다른 노드들과의 주기적인 블록 분산 합의 등을 수행할 수 있다. 이러한 블록체인 노드(20)는 서버나 PC 등과 같은 컴퓨터 시스템으로 구성될 수 있으며, 이더리움(Ethereum)이나 하이퍼렛저 패브릭(Hyperledger Fabric) 등과 같이 후술되는 스마트 컨트랙트(smart contract)를 지원하는 블록체인 프로그램이 설치될 수 있다. 이와 같이 블록체인 노드(20)에 설치된 블록체인 프로그램은 블록체인에 저장되는 데이터의 크기나 종류를 제한하지 않도록 설정될 수 있다. 또한, 다수의 블록체인 노드(20)를 포함하는 블록체인 노드 그룹은 비트코인(Bitcoin)이나 이더리움(Ethereum)과 같이 누구나 접근할 수 있는 퍼블릭 체인(public chain)을 구성하는 것이 아니라, 스토리지 서비스 사용자들만 접근할 수 있는 프라이빗 체인(private chain)을 구성할 수 있다.As shown in FIG. 1, a block-chain network may consist of a client 10 of a service user and a plurality of block-chain nodes 20. The client 10 of the service user can perform transmission and storage requests of data files, deletion of stored files, and download requests. The client 10 may be a fixed terminal such as a server or a PC, or a mobile terminal such as a mobile phone. The block chain node 20 can perform approval of a transaction to be recorded as a file is stored in a block chain, store transaction history using a block chain, and perform periodic block distribution agreement with other nodes. The block chain node 20 may be a computer system such as a server or a PC and may be a block chain program that supports a smart contract such as Ethereum or Hyperledger Fabric Can be installed. The block chain program installed in the block chain node 20 may be set not to restrict the size or type of data stored in the block chain. In addition, the group of block chains including the plurality of block chain nodes 20 does not constitute a public chain accessible to all, such as Bitcoin or Ethereum, A private chain that can only be accessed by users can be constructed.

본 발명에 따른 블록체인 기반의 스토리지 서비스 제공 시스템(100)은, 이러한 블록체인 네트워크 환경에 적용되어, 서비스 사용자의 클라이언트(10) 및 블록체인 노드(20)와 통신을 수행하며 블록체인 노드(20)의 블록체인에 서비스 사용자의 데이터 파일을 저장하고 관리할 수 있다.A block-chain-based storage service providing system 100 according to the present invention is applied to such a block-chain network environment to communicate with a client 10 of a service user and a block-chain node 20, ) Can store and manage the data file of the service user.

이 경우, 스토리지 서비스 제공 시스템(100)은 No SQL 계열의 데이터베이스에 데이터를 저장하는 경우와 유사하게, 서비스 사용자의 데이터 파일을 키-밸류 페어(key-value pair) 형식으로 블록체인에 저장할 수 있다. 즉, 스토리지 서비스 제공 시스템(100)은 고유의 키와 그에 대응하는 데이터 파일을 블록체인에 저장하고, 차후 해당 키를 이용하여 저장된 파일에 접근할 수 있다. 이러한 데이터 파일 저장 및 조회 과정에, 계정(account)과 메시지 전달 등의 블록체인 특유의 요소가 추가된다. 예컨대, 블록체인에 데이터 파일 D가 저장될 경우, 블록체인에는 기본적으로 ‘X가 Y에게 D를 보낸다’라는 메시지 형식의 트랜잭션(transaction)이 기록된다. 이 경우, X 및 Y가 계정에 해당하는 것이다.In this case, the storage service providing system 100 may store the data file of the service user in a block chain in a key-value pair format, similar to the case of storing data in the database of the No SQL series . That is, the storage service providing system 100 can store a unique key and its corresponding data file in a block chain, and can later access the stored file using the corresponding key. In the process of storing and retrieving data files, block chain specific elements such as account and message delivery are added. For example, when a data file D is stored in a block chain, a transaction of the message format 'X sends D to Y' is recorded in the block chain. In this case, X and Y are accounts.

아래에서 다시 설명하겠지만, 스토리지 서비스 제공 시스템(100)은 데이터 파일 저장에 따른 트랜잭션 기록시, 해당 트랜잭션에 대응하여 발급되는 고유의 트랜잭션 키(트랜잭션 해시)와 저장 대상 파일을 암호화한 암호화 파일을 하나의 페어(pair)로 하여 블록체인에 저장하고, 차후 해당 트랜잭션 키를 파라미터로 하는 트랜잭션 조회 함수를 사용하여 블록체인에서 해당 트랜잭션을 조회하고, 저장된 암호화 파일에 접근할 수 있다.As will be described later, the storage service providing system 100 has a unique transaction key (transaction hash) issued in response to a corresponding transaction and an encryption file in which the storage object file is encrypted, Store them in a block chain as a pair, and then use the transaction inquiry function with the corresponding transaction key as a parameter to inquire the corresponding transaction in the block chain, and access the stored encrypted file.

이러한 스토리지 서비스 제공 시스템(100)은 WAS(Web Application Server)와 같이 웹 서버, 애플리케이션, 데이터베이스의 3계층 웹 컴퓨팅 환경으로 구축되는 컴퓨터 시스템으로 구성될 수 있다.The storage service providing system 100 may be configured as a computer system constructed in a three-tier web computing environment such as a web server, an application, and a database, such as a WAS (Web Application Server).

도 2에는 본 발명의 일 실시예에 따른 블록체인 기반의 스토리지 서비스 제공 시스템(100)이 블록도로 도시되어 있다.FIG. 2 is a block diagram of a block-chain-based storage service providing system 100 according to an embodiment of the present invention.

도 2에 도시된 바와 같이, 본 발명의 일 실시예에 따른 블록체인 기반의 스토리지 서비스 제공 시스템(100)은 사용자 명령 수신부(110), 파일 저장부(120) 및 파일 관리부(130)를 포함할 수 있다. 실시예에 따라, 상기 스토리지 서비스 제공 시스템(100)은 통신 네트워크를 통해 외부 장치들과 유·무선 통신을 수행하는 통신부(102), 사용자 내지 시스템 운영자의 명령을 입력받는 입력부(104), 시스템 동작을 전반적으로 제어하는 제어부(106), 데이터를 저장하는 메모리부(108) 등을 더 포함할 수 있다. 이와 같이, 상기 스토리지 서비스 제공 시스템(100)이 통신부(102), 입력부(104), 제어부(106), 메모리부(108) 등을 포함하는 컴퓨터 시스템으로 구성될 경우, 상기 사용자 명령 수신부(110), 파일 저장부(120), 및 파일 관리부(130)는 마이크로프로세서와 이를 구동하는 컴퓨터 프로그램의 결합으로 구현되는 제어부(105)의 구성 모듈들일 수 있다.2, a block chain-based storage service providing system 100 according to an embodiment of the present invention includes a user command receiving unit 110, a file storing unit 120, and a file managing unit 130 . According to an embodiment, the storage service providing system 100 includes a communication unit 102 for performing wire / wireless communication with external devices via a communication network, an input unit 104 for receiving commands from a user or a system operator, A memory 106 for storing data, and the like. When the storage service providing system 100 is configured as a computer system including the communication unit 102, the input unit 104, the control unit 106, and the memory unit 108, the user command receiving unit 110, The file storage unit 120 and the file management unit 130 may be constituent modules of the control unit 105 implemented by combining a microprocessor and a computer program for driving the microprocessor.

우선, 상기 사용자 명령 수신부(110)는, 서비스 사용자의 클라이언트(10)에서 스토리지 서비스 제공 시스템(100)의 통신부(102)로 전송되거나, 입력부(104)를 통해 입력되는 서비스 사용자의 명령을 수신하여 파일 저장부(120)나 파일 관리부(130)에 전달할 수 있다. 예컨대, 사용자 명령 수신부(110)는 스토리지 서비스 제공 시스템(100)에 접속한 서비스 사용자의 클라이언트(10)에 사용자 명령을 입력하는 UI(User Interface)를 제공하고, 클라이언트(10)로부터 데이터 파일을 블록체인에 저장하라는 파일 저장 명령, 블록체인에 저장된 파일을 삭제하라는 파일 삭제 명령, 블록체인에 저장된 파일을 다운로드하라는 파일 다운로드 명령 등을 수신할 수 있다. 또한, 사용자 명령 수신부(110)는 파일 저장 명령과 함께 저장 대상 파일을 수신할 수 있다.First, the user command receiver 110 receives a service user command transmitted from the client 10 of the service user to the communication unit 102 of the storage service providing system 100 or inputted through the input unit 104 To the file storage unit 120 or the file management unit 130. For example, the user command receiving unit 110 provides a UI (User Interface) for inputting a user command to the client 10 of the service user connected to the storage service providing system 100, A file delete command to delete a file stored in the block chain, a file download command to download a file stored in the block chain, and the like. In addition, the user command receiving unit 110 may receive a file to be stored together with a file save command.

상기 파일 저장부(120)는, 서비스 사용자의 파일 저장 명령이 수신되는 경우, 저장 대상 파일을 암호화한 암호화 파일을 블록체인에 저장하는 한편, 상기 암호화 파일의 저장시 기록된 트랜잭션의 조회에 사용되는 트랜잭션 키와 상기 암호화 파일의 복호화에 사용되는 복호 키를 상호 연관시켜, 블록체인에 저장되어 실행되는 프로그램 세그먼트인 스마트 컨트랙트(smart contract)의 전용 저장 공간에 저장할 수 있다. 이를 위해, 파일 저장부(120)는 메타데이터 추출부(121), 키 생성부(122), 파일 암호화부(123), 암호화 파일 저장부(124), 키 저장부(125), 및 파일 정보 저장부(126)를 포함할 수 있다.The file storage unit 120 stores an encryption file in which a storage object file is encrypted in a block chain when a file save command of a service user is received, The transaction key and the decryption key used for decrypting the encrypted file are correlated with each other and stored in a dedicated storage space of a smart contract, which is a program segment stored and executed in the block chain. The file storage unit 120 includes a metadata extraction unit 121, a key generation unit 122, a file encryption unit 123, an encrypted file storage unit 124, a key storage unit 125, And may include a storage unit 126.

상기 메타데이터 추출부(121)는, 저장 대상 파일의 암호화 전에 상기 저장 대상 파일에서 파일의 명칭, 크기 및 종류 중 적어도 하나를 포함하는 메타데이터를 추출할 수 있다. 실시예에 따라, 메타데이터 추출부(121)는 서비스 사용자의 클라이언트(10)에 저장 대상 파일의 식별정보를 입력하는 UI를 제공하여 서비스 사용자로 하여금 저장 대상 파일의 식별정보를 직접 설정하도록 할 수도 있다.The metadata extraction unit 121 may extract metadata including at least one of a name, a size, and a type of a file in the storage object file before encryption of the storage object file. According to the embodiment, the metadata extracting unit 121 may provide a UI for inputting the identification information of the file to be stored to the client 10 of the service user so that the service user may directly set the identification information of the file to be stored have.

상기 키 생성부(122)는, 저장 대상 파일의 암호화 및 복호화에 사용되는 고유의 암호 키 및 복호 키를 랜덤하게 생성할 수 있다. 저장 대상 파일의 암복호화에는 AES(Advanced Encryption Standard) 등과 같은 대칭키 암호 방식이 적용될 수 있으며, 이 경우 상기 암호 키와 복호 키는 동일한 키일 수 있다.The key generation unit 122 may randomly generate a unique encryption key and a decryption key used for encryption and decryption of a file to be stored. A symmetric key cryptosystem such as AES (Advanced Encryption Standard) may be applied to encryption and decryption of a file to be stored, in which case the encryption key and the decryption key may be the same key.

상기 파일 암호화부(123)는, 상기 암호 키로 저장 대상 파일을 암호화하여 암호화 파일을 생성할 수 있다.The file encryption unit 123 can encrypt the storage object file with the encryption key to generate an encrypted file.

상기 암호화 파일 저장부(124)는, 상기 암호화 파일을 블록체인 노드(20)의 블록체인에 저장할 수 있다(S440). 이때, 블록체인은 암호화 파일 저장에 따른 트랜잭션에 대해 고유한 트랜잭션 키(트랜잭션 해시)를 발급할 수 있다. 그 결과, 상기 시스템(100)의 암호화 파일 저장부(124)는 상술한 바와 같이 해당 트랜잭션에 대응하여 발급되는 트랜잭션 키와 상기 암호화 파일을 하나의 페어로 하여 블록체인에 저장할 수 있다.The encrypted file storage unit 124 may store the encrypted file in a block chain of the block-chain node 20 (S440). At this time, the block chain can issue a unique transaction key (transaction hash) to the transaction based on the storage of the encrypted file. As a result, the encrypted file storage unit 124 of the system 100 can store the transaction key and the encrypted file, which are issued in response to the transaction, as one pair in the block chain as described above.

한편, 상기 키 저장부(125)는, 키-밸류 페어 형식과 유사하게 상기 트랜잭션 키와 상기 복호 키를 상호 연관시켜 블록체인에 저장된 스마트 컨트랙트의 전용 저장 공간에 저장하고, 저장 대상 파일의 암호화에 사용된 암호 키와 상기 복호 키를 시스템(100) 내에서 모두 삭제할 수 있다.Meanwhile, the key storage unit 125 stores the transaction key and the decryption key in a storage space dedicated to the smart contract stored in the block chain, in a similar manner to the key-value pair format, Both the used encryption key and the decryption key can be deleted in the system 100.

상기 스마트 컨트랙트는 특정 파라미터 값이 수신되어 특정 조건이 성취되면 예정된 동작을 수행하도록 작성된 프로그램으로서, 블록체인에 저장되어 실행되는 독립적인 프로그램이다. 스마트 컨트랙트는 그 자체로 독립적인 프로그램이므로 블록체인 노드(20)에서 블록체인과는 별도로 전용 저장 공간을 사용할 수 있으며, 해당 전용 저장 공간에 데이터를 저장하거나 전용 저장 공간에 저장된 데이터를 삭제할 수도 있다. 이러한 스마트 컨트랙트는 이더리움(Ethereum)이나 하이퍼렛저 패브릭(Hyperledger Fabric) 등의 블록체인 기술에서 지원되고 있으며, 다양한 조건에 따라 다양한 동작을 수행하도록 작성됨으로써 블록체인의 기능을 확장시킬 수 있다.The smart contract is a program written to perform a predetermined operation when a specific parameter value is received and a specific condition is fulfilled, and is an independent program stored and executed in a block chain. Since the smart contract is an independent program in itself, the block chain node 20 may use a dedicated storage space separately from the block chain, and may store data in the dedicated storage space or delete data stored in the dedicated storage space. These smart contracts are supported by block chain technology such as Ethereum or Hyperledger Fabric, and can be extended to perform various operations according to various conditions, thereby expanding the function of the block chain.

본 발명에서의 스마트 컨트랙트는, 트랜잭션 키-복호 키 페어들을 전용 저장 공간에 저장하고, 스토리지 서비스 제공 시스템(100)으로부터 수신되는 트랜잭션 키를 파라미터로 하여, 해당 트랜잭션 키에 대응하는 복호 키를 삭제하거나 스토리지 서비스 제공 시스템(100)으로 반환하도록 작성될 수 있다.The smart contract in the present invention stores the transaction key-decryption key pairs in a dedicated storage space, deletes the decryption key corresponding to the transaction key using the transaction key received from the storage service providing system 100 as a parameter And returned to the storage service providing system 100.

스토리지 서비스 제공 시스템(100)은 스토리지 서비스 개시 전에 스마트 컨트랙트를 블록체인에 저장할 수 있다. 이 경우, 스토리지 서비스 제공 시스템(100)은 암호화 파일의 저장 시의 트랜잭션과 다른 형식의 트랜잭션을 사용할 수 있다. 예컨대, 스마트 컨트랙트 SC를 저장하는 과정에서는 ‘X가 SC를 보낸다’라는 형식의 트랜잭션이 사용될 수 있다. 즉, ‘Y에게’에 해당하는 계정이 생략될 수 있다. ‘X가 SC를 보낸다’라는 트랜잭션이 성공적으로 수행되면, 추후 스마트 컨트랙트를 사용할 때 사용되는 스마트 컨트랙트 고유의 계정이 발급된다. 이러한 계정을 AC라 하면, 호출하고자 하는 함수와 관련 파라미터를 포함하는 메시지를 AC로 전송하여 해당 스마트 컨트랙트를 동작시킬 수 있다.The storage service providing system 100 may store the smart contract in the block chain before starting the storage service. In this case, the storage service providing system 100 can use a transaction in a different format from the transaction at the time of storing the encrypted file. For example, in the process of storing the smart contract SC, a transaction of the form 'X sends SC' can be used. That is, the account corresponding to 'Y' may be omitted. If the transaction "X sends the SC" is successful, a smart contract specific account will be issued that will be used later when using the smart contract. If this account is AC, a message containing the function to be called and related parameters can be transmitted to the AC to operate the corresponding smart contract.

도 3에는 본 발명의 일 실시예에 따른 블록체인 기반의 스토리지 서비스 제공 시스템과 연동하는 블록체인 노드(20)의 일례가 블록도로 도시되어 있다.FIG. 3 is a block diagram illustrating an example of a block-chain node 20 interworking with a block-chain-based storage service providing system according to an embodiment of the present invention.

도 3에 도시된 바와 같이, 블록체인 노드(20)는 블록체인(B)을 저장하는 블록체인 저장 공간(22)과, 블록체인(B)에 저장된 스마트 컨트랙트(SC)에 의해 사용되는 스마트 컨트랙트 전용 저장 공간(24)을 가질 수 있다. 블록체인(B)의 각 블록에는 트랜잭션 키-암호화 파일 페어(T)가 저장될 수 있으며, 스마트 컨트랙트의 전용 저장 공간(24)에는 트랜잭션 키-복호 키 페어(K)가 저장될 수 있다.3, the block-chain node 20 includes a block-chain storage space 22 for storing a block chain B and a smart contract 22 used by a smart contract (SC) And may have a dedicated storage space 24. The transaction key-decryption key pair (T) may be stored in each block of the block chain (B), and the transaction key decryption key pair (K) may be stored in the private storage space (24) of the smart contract.

다시 도 2를 참조하면, 상기 파일 저장부(120)의 파일 정보 저장부(126)는, 저장 대상 파일에서 추출된 메타데이터와 상기 트랙잭션 키를 상호 연관시켜 파일 정보 데이터베이스에 저장할 수 있다. 이러한 파일 정보 데이터베이스는 스토리지 서비스 제공 시스템(100)의 메모리부(108)에 포함되거나 별도의 저장 장치로 구성될 수 있다.2, the file information storage unit 126 of the file storage unit 120 may associate the metadata extracted from the storage object file with the transaction key and store the metadata in a file information database. The file information database may be included in the memory unit 108 of the storage service providing system 100 or may be configured as a separate storage device.

한편, 상기 파일 관리부(130)는, 블록체인에 저장된 상기 암호화 파일에 대하여 서비스 사용자의 파일 삭제 명령이 수신되는 경우, 상기 스마트 컨트랙트의 전용 저장 공간에 저장된 해당 복호 키를 삭제할 수 있다.Meanwhile, the file management unit 130 may delete the corresponding decryption key stored in the dedicated storage space of the smart contract, when receiving a file delete command of the service user for the encrypted file stored in the block chain.

영구히 보관해야 하는 데이터 파일은 저장 데이터의 변경과 삭제가 불가한 블록체인에 저장해도 무관하나, 계약 당사자의 청약 또는 승낙의 철회, 계약 취소 등에 따라 삭제할 필요가 있는 계약서 파일 등은 블록체인에 저장하여 관리할 수 없다. 특히, 데이터 파일의 저장은 물론 저장된 파일의 삭제 등과 같은 파일 관리 기능을 제공해야 하는 스토리지 서비스에는 기존의 블록체인 기술을 그대로 적용할 수 없다.Data files that are to be stored permanently may be stored in a block chain that can not be changed or deleted. However, contract files that need to be deleted due to cancellation of subscription or acceptance of a contracting party or cancellation of contract are stored in a block chain I can not manage it. In particular, the conventional block chain technology can not be applied to storage services that need to provide file management functions such as data file storage and deletion of stored files.

따라서, 본 발명은 저장 대상 파일을 암호화하여 해당 암호화 파일을 블록체인에 저장하는 한편, 암호화 파일을 복호화하는 복호 키를 스마트 컨트랙트의 전용 저장 공간에 별도로 저장하여 관리하며, 서비스 사용자의 파일 삭제 명령이 수신되는 경우 삭제 대상 파일을 직접 삭제하는 것이 아니라, 스마트 컨트랙트를 실행하여 해당 파일의 복호 키를 삭제하는 것이다. 즉, 본 발명은 서비스 사용자 또는 제3자가 해당 트랜잭션을 조회하더라도 암호화 파일의 복호 키를 사용할 수 없도록 하여 원본 파일을 획득할 수 없도록 하는 것이다.Accordingly, the present invention stores a decryption key for decrypting an encrypted file separately by storing the encrypted file in the block chain while encrypting the file to be stored, and separately manages the decryption key for decrypting the encrypted file, It does not directly delete the deletion target file but deletes the decryption key of the file by executing the smart contract. That is, according to the present invention, even if a service user or a third party inquires the transaction, the decryption key of the encrypted file can not be used, and the original file can not be acquired.

이를 위해, 파일 관리부(130)는 트랜잭션 키 검출부(131) 및 스마트 컨트랙트 제어부(132)를 포함할 수 있다.For this, the file management unit 130 may include a transaction key detection unit 131 and a smart contract control unit 132.

상기 트랜잭션 키 검출부(131)는, 블록체인에 저장된 상기 암호화 파일에 대하여 서비스 사용자의 파일 삭제 명령이 수신되는 경우, 상기 파일 정보 데이터베이스에서 삭제 대상 파일의 메타데이터를 검색하고 해당 메타데이터와 연관된 트랜잭션 키를 검출할 수 있다.When the file delete command of the service user is received from the encrypted file stored in the block chain, the transaction key detecting unit 131 searches the file information database for the metadata of the file to be deleted and stores the transaction key Can be detected.

상기 스마트 컨트랙트 제어부(132)는, 블록체인에 저장된 스마트 컨트랙트를 실행하여 상기 스마트 컨트랙트의 전용 저장 공간에서 상기 검출된 트랜잭션 키에 대응하는 트랙잭션 키와 연관된 복호 키를 삭제할 수 있다. 이 경우, 스마트 컨트랙트 제어부(132)는 키 삭제 함수와 관련 파라미터인 트랜잭션 키를 스마트 컨트랙트로 전송하여 해당 복호 키를 삭제할 수 있다.The smart contract controller 132 may execute the smart contract stored in the block chain to delete the decryption key associated with the transaction key corresponding to the detected transaction key in the private storage space of the smart contract. In this case, the smart contract controller 132 may delete the corresponding decryption key by transmitting the key deletion function and the transaction key, which are related parameters, to the smart contract.

상기 복호 키 삭제 후, 상기 파일 관리부(130)는 파일 정보 데이터베이스에 저장된 삭제 대상 파일의 메타데이터와 트랜잭션 키를 삭제할 수 있다.After deleting the decryption key, the file management unit 130 may delete the metadata and the transaction key of the file to be deleted stored in the file information database.

한편, 파일 관리부(130)는 블록체인에 저장된 암호화 파일에 대하여 서비스 사용자의 파일 다운로드 명령이 수신되는 경우, 블록체인으로부터 해당 암호화 파일을 수신하여 복호화할 수 있다. 이를 위해, 파일 관리부(130)는 암호화 파일 수신부(133), 파일 복호화부(134), 및 파일 전송부(135)를 더 포함할 수 있다.On the other hand, when the file download command of the service user is received with respect to the encrypted file stored in the block chain, the file management unit 130 can receive and decrypt the encrypted file from the block chain. The file management unit 130 may further include an encrypted file receiving unit 133, a file decryption unit 134, and a file transfer unit 135. [

즉, 블록체인에 저장된 상기 암호화 파일에 대하여 서비스 사용자의 파일 다운로드 명령이 수신되는 경우, 상기 트랜잭션 키 검출부(131)는 상기 파일 정보 데이터베이스에서 다운로드 대상 파일의 메타데이터를 검색하고 해당 메타데이터와 연관된 트랜잭션 키를 검출할 수 있다.That is, when a file download command of the service user is received for the encrypted file stored in the block chain, the transaction key detector 131 searches the file information database for the metadata of the download target file, Key can be detected.

상기 스마트 컨트랙트 제어부(132)는, 블록체인에 저장된 스마트 컨트랙트를 실행하여 상기 스마트 컨트랙트의 전용 저장 공간에서 상기 검출된 트랜잭션 키에 대응하는 트랙잭션 키와 연관된 복호 키를 조회하고 해당 복호 키를 수신할 수 있다. 이 경우, 스마트 컨트랙트 제어부(132)는 키 조회 함수와 관련 파라미터인 트랜잭션 키를 스마트 컨트랙트로 전송하여 해당 복호 키를 수신할 수 있다.The smart contract controller 132 executes the smart contract stored in the block chain to inquire the decryption key associated with the transaction key corresponding to the detected transaction key in the private storage space of the smart contract and receive the corresponding decryption key have. In this case, the smart contract controller 132 can transmit the key inquiry function and the transaction key, which are related parameters, to the smart contract, and receive the corresponding decryption key.

상기 암호화 파일 수신부(133)는, 상기 검출된 트랙잭션 키로 블록체인에 저장된 트랜잭션을 조회하여 블록체인에 저장된 해당 암호화 파일을 수신할 수 있다.The encrypted file receiving unit 133 can receive the encrypted file stored in the block chain by inquiring the transaction stored in the block chain with the detected transaction key.

상기 파일 복호화부(134)는, 상기 수신된 복호 키로 상기 수신된 암호화 파일을 복호화하여 원본 파일과 동일한 파일을 생성할 수 있다. 파일 복호화부(134)는 복호화된 파일을 메모리부(108) 등에 저장하거나 파일 전송부(135)를 통해 서비스 사용자의 클라이언트(10)로 전송할 수 있다.The file decryption unit 134 may generate the same file as the original file by decrypting the received encrypted file with the received decryption key. The file decryption unit 134 may store the decrypted file in the memory unit 108 or the like or may transmit the decrypted file to the client 10 of the service user through the file transfer unit 135. [

도 4에는 본 발명의 일 실시예에 따른 블록체인 기반의 스토리지 서비스 제공 방법의 데이터 파일 저장 프로세스가 흐름도로 도시되어 있다.FIG. 4 is a flowchart illustrating a data file storing process of a method of providing a block-chain-based storage service according to an exemplary embodiment of the present invention.

도 4에 도시된 바와 같이, 스토리지 서비스 제공 시스템(100)은 서비스 사용자의 파일 저장 명령이 수신되는 경우, 상기 시스템이 저장 대상 파일을 암호화한 암호화 파일을 블록체인에 저장하고, 상기 암호화 파일의 저장시 기록된 트랜잭션의 조회에 사용되는 트랜잭션 키와 상기 암호화 파일의 복호화에 사용되는 복호 키를 상호 연관시켜, 블록체인에 저장되어 실행되는 스마트 컨트랙트의 전용 저장 공간에 저장할 수 있다.As shown in FIG. 4, when the file storage command of the service user is received, the storage service providing system 100 stores the encrypted file in which the system has encrypted the storage object file in the block chain, The transaction key used in the inquiry of the recorded transaction and the decryption key used for decrypting the encrypted file can be correlated and stored in a private storage space of the smart contract stored and executed in the block chain.

구체적으로 설명하면, 상기 시스템(100)의 사용자 명령 수신부(110)가 서비스 사용자의 클라이언트(10)에서 전송되거나 상기 시스템(100)의 입력부(104)를 통해 입력되는 서비스 사용자의 파일 저장 명령을 수신하면(S400), 상기 시스템(100)의 메타데이터 추출부(121)는, 저장 대상 파일을 읽어들여 상기 저장 대상 파일에서 파일의 명칭, 크기 및 종류 중 적어도 하나를 포함하는 메타데이터를 추출할 수 있다(S410).More specifically, the user command receiving unit 110 of the system 100 receives a file storage command of a service user transmitted from the client 10 of the service user or inputted through the input unit 104 of the system 100 The metadata extraction unit 121 of the system 100 reads the file to be stored and extracts metadata including at least one of the name, size, and type of the file from the file to be stored (S410).

그 다음, 상기 시스템(100)의 키 생성부(122)는, 저장 대상 파일의 암호화 및 복호화에 사용되는 고유의 암호 키 및 복호 키를 랜덤하게 생성할 수 있다(S420). AES(Advanced Encryption Standard) 등과 같은 대칭키 암호 방식이 적용되는 경우 상기 암호 키와 복호 키는 동일한 키일 수 있다.Next, the key generation unit 122 of the system 100 may randomly generate a unique encryption key and a decryption key used for encryption and decryption of a file to be stored (S420). When a symmetric key encryption scheme such as AES (Advanced Encryption Standard) is applied, the encryption key and the decryption key may be the same key.

그 다음, 상기 시스템(100)의 상기 파일 암호화부(123)는, 상기 암호 키로 저장 대상 파일을 암호화하여 암호화 파일을 생성할 수 있다(S430).Next, the file encryption unit 123 of the system 100 may encrypt the storage object file using the encryption key to generate an encrypted file (S430).

그 다음, 상기 시스템(100)의 암호화 파일 저장부(124)는, 상기 암호화 파일을 블록체인 노드(20)의 블록체인에 저장할 수 있다(S440). 이 경우, 상기 시스템(100)의 암호화 파일 저장부(124)는 해당 트랜잭션에 대응하여 발급된 트랜잭션 키와 상기 암호화 파일을 하나의 페어로 하여 블록체인에 저장할 수 있다.The encrypted file storage unit 124 of the system 100 may then store the encrypted file in a block chain of the block-chain node 20 (S440). In this case, the encrypted file storage unit 124 of the system 100 may store the transaction key and the encrypted file issued in correspondence with the transaction in a block chain as a pair.

한편, 상기 시스템(100)의 키 저장부(125)는, 키-밸류 페어 형식과 유사하게 상기 트랜잭션 키와 상기 복호 키를 상호 연관시켜, 블록체인에 저장된 스마트 컨트랙트의 전용 저장 공간에 저장하고, 저장 대상 파일의 암호화에 사용된 암호 키와 상기 복호 키를 시스템(100) 내에서 모두 삭제할 수 있다(S450).Meanwhile, the key storage unit 125 of the system 100 correlates the transaction key and the decryption key, stores it in a private storage space of the smart contract stored in the block chain, Both the encryption key used for encrypting the storage object file and the decryption key can be deleted in the system 100 (S450).

그 다음, 상기 시스템(100)의 파일 정보 저장부(126)는, 저장 대상 파일에서 추출된 메타데이터와 상기 트랙잭션 키를 상호 연관시켜 파일 정보 데이터베이스에 저장할 수 있다(S460).Next, the file information storage unit 126 of the system 100 may associate the metadata extracted from the storage object file with the transaction key and store the metadata in the file information database (S460).

도 5에는 본 발명의 일 실시예에 따른 블록체인 기반의 스토리지 서비스 제공 방법의 데이터 파일 삭제 프로세스가 흐름도로 도시되어 있다.FIG. 5 is a flowchart illustrating a data file deletion process of a method of providing a storage service based on a block chain according to an embodiment of the present invention.

도 5에 도시된 바와 같이, 스토리지 서비스 제공 시스템(100)은 블록체인에 저장된 암호화 파일에 대하여 서비스 사용자의 파일 삭제 명령이 수신되는 경우, 스마트 컨트랙트의 전용 저장 공간에 저장된 해당 복호 키를 삭제할 수 있다.5, the storage service providing system 100 may delete a corresponding decryption key stored in a private storage space of a smart contract when a file delete command of a service user is received for an encrypted file stored in a block chain .

구체적으로 설명하면, 상기 시스템(100)의 사용자 명령 수신부(110)가 서비스 사용자의 클라이언트(10)에서 전송되거나 상기 시스템(100)의 입력부(104)를 통해 입력되는 서비스 사용자의 파일 삭제 명령을 수신하면(S500), 상기 시스템(100)의 트랜잭션 키 검출부(131)는, 파일 정보 데이터베이스에서 삭제 대상 파일의 메타데이터를 검색하고 해당 메타데이터와 연관된 트랜잭션 키를 검출할 수 있다(S510).More specifically, the user command receiving unit 110 of the system 100 receives a file delete command of a service user transmitted from the client 10 of the service user or inputted through the input unit 104 of the system 100 The transaction key detecting unit 131 of the system 100 searches metadata of a file to be deleted in the file information database and detects a transaction key associated with the metadata in operation S510.

그 다음, 상기 시스템(100)의 스마트 컨트랙트 제어부(132)는, 블록체인에 저장된 스마트 컨트랙트를 실행하여 상기 스마트 컨트랙트의 전용 저장 공간에서 상기 검출된 트랜잭션 키에 대응하는 트랙잭션 키와 연관된 복호 키를 삭제할 수 있다(S520).The smart contract control unit 132 of the system 100 then executes the smart contract stored in the block chain to delete the decryption key associated with the transaction key corresponding to the detected transaction key in the private storage space of the smart contract (S520).

상기 복호 키 삭제 후, 상기 시스템(100)은 파일 정보 데이터베이스에 저장된 삭제 대상 파일의 메타데이터와 트랜잭션 키를 삭제할 수 있다(S530).After deleting the decryption key, the system 100 may delete the metadata and the transaction key of the deletion target file stored in the file information database (S530).

도 6에는 본 발명의 일 실시예에 따른 블록체인 기반의 스토리지 서비스 제공 방법의 데이터 파일 다운로드 프로세스가 흐름도로 도시되어 있다.FIG. 6 is a flowchart illustrating a process of downloading a data file of a method of providing a block-chain-based storage service according to an embodiment of the present invention.

도 6에 도시된 바와 같이, 스토리지 서비스 제공 시스템(100)은 블록체인에 저장된 암호화 파일에 대하여 서비스 사용자의 파일 다운로드 명령이 수신되는 경우, 블록체인으로부터 해당 암호화 파일을 수신하여 복호화할 수 있다.As shown in FIG. 6, the storage service providing system 100 can receive and decode a corresponding encrypted file from a block chain when a file download command of the service user is received for the encrypted file stored in the block chain.

구체적으로 설명하면, 상기 시스템(100)의 사용자 명령 수신부(110)가 서비스 사용자의 클라이언트(10)에서 전송되거나 상기 시스템(100)의 입력부(104)를 통해 입력되는 서비스 사용자의 파일 삭제 명령을 수신하면(S600), 상기 시스템(100)의 트랜잭션 키 검출부(131)는 상기 파일 정보 데이터베이스에서 다운로드 대상 파일의 메타데이터를 검색하고 해당 메타데이터와 연관된 트랜잭션 키를 검출할 수 있다(S610).More specifically, the user command receiving unit 110 of the system 100 receives a file delete command of a service user transmitted from the client 10 of the service user or inputted through the input unit 104 of the system 100 The transaction key detecting unit 131 of the system 100 searches the file information database for the metadata of the download target file and detects a transaction key associated with the metadata in operation S610.

그 다음, 상기 시스템(100)의 스마트 컨트랙트 제어부(132)는, 블록체인에 저장된 스마트 컨트랙트를 실행하여 상기 스마트 컨트랙트의 전용 저장 공간에서 상기 검출된 트랜잭션 키에 대응하는 트랙잭션 키와 연관된 복호 키를 조회하고 해당 복호 키를 수신할 수 있다(S620).The smart contract control unit 132 of the system 100 then executes a smart contract stored in the block chain to inquire a decryption key associated with the transaction key corresponding to the detected transaction key in the dedicated storage space of the smart contract And receives the decryption key (S620).

한편, 상기 시스템(100)의 암호화 파일 수신부(133)는, 상기 검출된 트랙잭션 키로 블록체인에 저장된 트랜잭션을 조회하여 블록체인에 저장된 해당 암호화 파일을 수신할 수 있다(S630).In operation S630, the encryption file receiver 133 of the system 100 may retrieve a transaction stored in the block chain using the detected transaction key and receive the encrypted file stored in the block chain.

그 다음, 상기 시스템(100)의 파일 복호화부(134)는, 상기 수신된 복호 키로 상기 수신된 암호화 파일을 복호화하여 원본 파일과 동일한 파일을 생성할 수 있다(S640). 파일 복호화부(134)는 복호화된 파일을 메모리부(108) 등에 저장하거나 파일 전송부(135)를 통해 서비스 사용자의 클라이언트(10)로 전송할 수 있다(S650).Then, the file decryption unit 134 of the system 100 may decrypt the received encrypted file with the received decryption key to generate the same file as the original file (S640). The file decryption unit 134 may store the decrypted file in the memory unit 108 or the like or may transmit the decrypted file to the client 10 of the service user through the file transfer unit 135 in operation S650.

한편, 본 발명에 따른 실시예들은 컴퓨터 시스템과 이러한 컴퓨터 시스템을 구동하는 컴퓨터 프로그램으로 구현될 수 있다. 본 발명의 실시예들이 컴퓨터 프로그램으로 구현되는 경우, 본 발명의 구성요소들은 해당 컴퓨터 시스템을 통해 해당 동작이나 작업을 실행하는 프로그램 세그먼트들이다. 이러한 컴퓨터 프로그램 내지 프로그램 세그먼트들은 컴퓨터로 판독 가능한 다양한 기록매체에 저장될 수 있다. 컴퓨터로 판독 가능한 기록매체에는 컴퓨터 시스템이 읽어들일 수 있는 데이터를 기록하는 모든 종류의 매체가 포함된다. 예컨대, 컴퓨터로 판독 가능한 기록매체에는 ROM, RAM, 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, the computer-readable recording medium may include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like. 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.

상술한 바와 같이, 본 발명에 따르면, 별도의 중앙 집중형 스토리지 서버나 고가의 WORM(Write Once Read Many) 스토리지 등을 구축할 필요없이, 데이터의 위조 또는 변조가 불가한 블록체인 기술을 이용하여 서비스 사용자의 데이터 파일을 저장 및 관리하는 스토리지 서비스를 제공함으로써, 스토리지 서비스 시스템 구축 비용을 절감하면서도 데이터 파일의 무결성과 원본 증명력을 보장할 수 있다. 또한, 서비스 사용자의 데이터 파일 저장시에 해당 파일을 고유의 암호 키로 암호화하여 블록체인에 저장함으로써, 데이터 파일의 보안성 및 기밀성을 유지할 수 있다. 특히, 저장된 암호화 파일의 고유의 복호 키를 블록체인에서 지원되는 스마트 컨트랙트의 전용 저장 공간에 저장하고, 사용자의 파일 삭제 명령이 있는 경우 스마트 컨트랙트를 실행하여 삭제 대상 파일의 해당 복호 키를 삭제함으로써, 블록체인에 데이터 파일을 저장하면서도 블록체인에 저장된 데이터 파일을 삭제하는 효과를 가져올 수 있다. 나아가, 본 발명에 따른 실시예들은, 당해 기술 분야는 물론 관련 기술 분야에서 본 명세서에 언급된 내용 이외의 다른 여러 기술적 과제들을 해결할 수 있음은 물론이다.As described above, according to the present invention, there is no need to construct a separate centralized storage server, expensive WORM (Write Once Read Many) storage, and the like, By providing a storage service that stores and manages user data files, it is possible to guarantee the integrity of the data file and the authenticity of the data file while reducing the cost of constructing the storage service system. Also, when a service user stores a data file, the file is encrypted with a unique encryption key and stored in a block chain, so that security and confidentiality of the data file can be maintained. In particular, if a unique decryption key of a stored encrypted file is stored in a private storage space of a smart contract supported by a block chain, and if the user has a file deletion command, the smart contract is executed to delete the corresponding decryption key of the deletion object file, It is possible to save the data file in the block chain while deleting the data file stored in the block chain. 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.

지금까지 본 발명에 대해 구체적인 실시예들을 참고하여 설명하였다. 그러나 당업자라면 본 발명의 기술적 범위에서 다양한 변형 실시예들이 구현될 수 있음을 명확하게 이해할 수 있을 것이다. 그러므로 앞서 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 할 것이다. 즉, 본 발명의 진정한 기술적 사상의 범위는 청구범위에 나타나 있으며, 그와 균등범위 내에 있는 모든 차이점은 본 발명에 포함되는 것으로 해석되어야 할 것이다.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 : 암호화 파일 저장부 125 : 키 저장부
126 : 파일 정보 저장부 130 : 파일 관리부
131 : 트랜잭션 키 검출부 132 : 스마트 컨트랙트 제어부
133 : 암호화 파일 수신부 134 : 파일 복호화부
135 : 파일 전송부
100: Storage service providing system 110: User command receiver
120: file storage unit 121: metadata extraction unit
122: key generation unit 123: file encryption unit
124: Encrypted file storage unit 125: Key storage unit
126: File information storage unit 130: File management unit
131: Transaction key detection unit 132: Smart contract control unit
133: Encrypted file receiver 134: File decryption unit
135: File transfer unit

Claims (11)

블록체인에 서비스 사용자의 데이터 파일을 저장하는 블록체인 기반의 스토리지 서비스 제공 시스템으로서,
서비스 사용자의 명령을 수신하는 사용자 명령 수신부;
서비스 사용자의 파일 저장 명령이 수신되는 경우, 저장 대상 파일을 암호화한 암호화 파일을 블록체인에 저장하고, 상기 암호화 파일의 저장시 기록된 트랜잭션의 조회에 사용되는 트랜잭션 키와 상기 암호화 파일의 복호화에 사용되는 복호 키를 상호 연관시켜, 블록체인에 저장되어 실행되는 스마트 컨트랙트(smart contract)의 전용 저장 공간에 저장하는 파일 저장부; 및
블록체인에 저장된 상기 암호화 파일에 대하여 서비스 사용자의 파일 삭제 명령이 수신되는 경우, 상기 스마트 컨트랙트의 전용 저장 공간에 저장된 상기 복호 키를 삭제하는 파일 관리부를 포함하는 블록체인 기반의 스토리지 서비스 제공 시스템.
1. A system for providing a storage service based on a block chain for storing a data file of a service user in a block chain,
A user command receiving unit for receiving a command of a service user;
When a command to store a file of a service user is received, an encryption file in which a storage object file is encrypted is stored in a block chain, and a transaction key used for inquiry of a transaction recorded at the time of storing the encryption file is used for decryption of the encryption file A file storage unit for storing the decryption keys in a dedicated storage space of a smart contract stored in a block chain and correlated with each other; And
And a file manager for deleting the decryption key stored in a private storage space of the smart contract when a file delete command of the service user is received for the encrypted file stored in the block chain.
제1항에 있어서,
상기 파일 저장부는,
상기 저장 대상 파일의 암호화 및 복호화에 사용되는 고유의 암호 키 및 복호 키를 생성하는 키 생성부;
상기 암호 키로 상기 저장 대상 파일을 암호화하여 상기 암호화 파일을 생성하는 파일 암호화부;
상기 암호화 파일을 블록체인에 저장하는 암호화 파일 저장부; 및
상기 트랜잭션 키와 상기 복호 키를 상호 연관시켜 상기 스마트 컨트랙트의 전용 저장 공간에 저장하는 키 저장부를 포함하는 것을 특징으로 하는 블록체인 기반의 스토리지 서비스 제공 시스템.
The method according to claim 1,
The file storage unit stores,
A key generation unit for generating a unique encryption key and a decryption key used for encrypting and decrypting the storage object file;
A file encryption unit for encrypting the storage object file with the encryption key to generate the encryption file;
An encrypted file storage unit for storing the encrypted file in a block chain; And
And a key storage unit for associating the transaction key and the decryption key with each other and storing the transaction key in a private storage space of the smart contract.
제1항에 있어서,
상기 파일 저장부는,
상기 저장 대상 파일의 암호화 전에, 상기 저장 대상 파일의 명칭, 크기 및 종류 중 적어도 하나를 포함하는 메타데이터를 추출하는 메타데이터 추출부; 및
상기 메타데이터와 상기 트랙잭션 키를 상호 연관시켜 데이터베이스에 저장하는 파일 정보 저장부를 포함하는 것을 특징으로 하는 블록체인 기반의 스토리지 서비스 제공 시스템.
The method according to claim 1,
The file storage unit stores,
A metadata extraction unit for extracting metadata including at least one of a name, a size, and a type of the file to be stored before encryption of the file to be stored; And
And a file information storage unit for correlating the metadata and the transaction key and storing the metadata in a database.
제3항에 있어서,
상기 파일 관리부는,
블록체인에 저장된 상기 암호화 파일에 대하여 서비스 사용자의 파일 삭제 명령이 수신되는 경우, 상기 데이터베이스에서 삭제 대상 파일의 메타데이터와 연관된 트랜잭션 키를 검출하는 트랜잭션 키 검출부; 및
상기 스마트 컨트랙트를 실행하여 상기 스마트 컨트랙트의 전용 저장 공간에서 상기 검출된 트랜잭션 키에 대응하는 트랙잭션 키와 연관된 복호 키를 삭제하는 스마트 컨트랙트 제어부를 포함하는 것을 특징으로 하는 블록체인 기반의 스토리지 서비스 제공 시스템.
The method of claim 3,
The file management unit,
A transaction key detector for detecting a transaction key associated with the metadata of a file to be deleted in the database when a file delete command of the service user is received for the encrypted file stored in the block chain; And
And a smart contract controller for executing the smart contract to delete a decryption key associated with the transaction key corresponding to the detected transaction key in a private storage space of the smart contract.
제3항에 있어서,
상기 파일 관리부는,
블록체인에 저장된 상기 암호화 파일에 대하여 서비스 사용자의 파일 다운로드 명령이 수신되는 경우, 상기 데이터베이스에서 다운로드 대상 파일의 메타데이터와 연관된 트랜잭션 키를 검출하는 트랜잭션 키 검출부;
상기 스마트 컨트랙트를 실행하여 상기 검출된 트랜잭션 키에 대응하는 트랙잭션 키와 연관된 복호 키를 수신하는 스마트 컨트랙트 제어부;
상기 검출된 트랙잭션 키로 블록체인에 저장된 트랜잭션을 조회하여 블록체인에 저장된 상기 암호화 파일을 수신하는 암호화 파일 수신부; 및
상기 수신된 복호 키로 상기 수신된 암호화 파일을 복호화하는 파일 복호화부를 포함하는 것을 특징으로 하는 블록체인 기반의 스토리지 서비스 제공 시스템.
The method of claim 3,
The file management unit,
A transaction key detection unit for detecting a transaction key associated with metadata of a download object file in the database when a file download command of a service user is received for the encrypted file stored in the block chain;
A smart contract control unit executing the smart contract and receiving a decryption key associated with a transaction key corresponding to the detected transaction key;
An encrypted file receiver for receiving the encrypted file stored in the block chain by inquiring a transaction stored in the block chain with the detected transaction key; And
And a file decryption unit for decrypting the received encrypted file with the received decryption key.
블록체인 네트워크의 노드와 통신하는 스토리지 서비스 제공 시스템을 이용하여 블록체인에 서비스 사용자의 데이터 파일을 저장하는 블록체인 기반의 스토리지 서비스 제공 방법으로서,
상기 시스템이 서비스 사용자의 명령을 수신하는 사용자 명령 수신 단계;
서비스 사용자의 파일 저장 명령이 수신되는 경우, 상기 시스템이 저장 대상 파일을 암호화한 암호화 파일을 블록체인에 저장하고, 상기 암호화 파일의 저장시 기록된 트랜잭션의 조회에 사용되는 트랜잭션 키와 상기 암호화 파일의 복호화에 사용되는 복호 키를 상호 연관시켜, 블록체인에 저장되어 실행되는 스마트 컨트랙트(smart contract)의 전용 저장 공간에 저장하는 파일 저장 단계; 및
블록체인에 저장된 상기 암호화 파일에 대하여 서비스 사용자의 파일 삭제 명령이 수신되는 경우, 상기 시스템이 상기 스마트 컨트랙트의 전용 저장 공간에 저장된 상기 복호 키를 삭제하는 파일 관리 단계를 포함하는 블록체인 기반의 스토리지 서비스 제공 방법.
A method of providing a storage service based on a block chain in which a data file of a service user is stored in a block chain using a storage service providing system in communication with nodes of a block chain network,
A user command receiving step in which the system receives a command of a service user;
The system according to claim 1, further comprising: a storage unit for storing a transaction file stored in the block chain and storing the encrypted transaction file; A file storage step of correlating the decryption keys used for decryption and storing them in a dedicated storage space of a smart contract stored in a block chain and executed; And
And a file management step of, when a file delete command of a service user is received for the encrypted file stored in the block chain, deleting the decryption key stored in a private storage space of the smart contract, Delivery method.
제6항에 있어서,
상기 파일 저장 단계는,
상기 시스템이 상기 저장 대상 파일의 암호화 및 복호화에 사용되는 고유의 암호 키 및 복호 키를 생성하는 키 생성 단계;
상기 시스템이 상기 암호 키로 상기 저장 대상 파일을 암호화하여 상기 암호화 파일을 생성하는 파일 암호화 단계;
상기 시스템이 상기 암호화 파일을 블록체인에 저장하는 암호화 파일 저장 단계; 및
상기 트랜잭션 키와 상기 복호 키를 상호 연관시켜 상기 스마트 컨트랙트의 전용 저장 공간에 저장하는 키 저장부를 포함하는 것을 특징으로 하는 블록체인 기반의 스토리지 서비스 제공 방법.
The method according to claim 6,
In the file storing step,
A key generation step of generating a unique cryptographic key and a decryption key used by the system for encrypting and decrypting the file to be stored;
The system encrypting the storage object file with the encryption key to generate the encryption file;
The system comprising: an encrypted file storage step of storing the encrypted file in a block chain; And
And a key storage unit for storing the transaction key and the decryption key in a dedicated storage space of the smart contract in association with each other.
제6항에 있어서,
상기 파일 저장 단계는,
상기 저장 대상 파일의 암호화 전에, 상기 시스템이 상기 저장 대상 파일의 명칭, 크기 및 종류 중 적어도 하나를 포함하는 메타데이터를 추출하는 메타데이터 추출 단계; 및
상기 시스템이 상기 메타데이터와 상기 트랙잭션 키를 상호 연관시켜 데이터베이스에 저장하는 파일 정보 저장 단계를 포함하는 것을 특징으로 하는 블록체인 기반의 스토리지 서비스 제공 방법.
The method according to claim 6,
In the file storing step,
A metadata extracting step of extracting metadata including at least one of a name, a size, and a type of the storage object file before the encryption of the storage object file; And
And a file information storing step of storing the metadata and the transaction key in a database by correlating the meta data with the transaction key.
제8항에 있어서,
상기 파일 관리 단계는,
블록체인에 저장된 상기 암호화 파일에 대하여 서비스 사용자의 파일 삭제 명령이 수신되는 경우, 상기 시스템이 상기 데이터베이스에서 삭제 대상 파일의 메타데이터와 연관된 트랜잭션 키를 검출하는 트랜잭션 키 검출 단계; 및
상기 시스템이 상기 스마트 컨트랙트를 실행하여 상기 스마트 컨트랙트의 전용 저장 공간에서 상기 검출된 트랜잭션 키에 대응하는 트랙잭션 키와 연관된 복호 키를 삭제하는 스마트 컨트랙트 제어 단계를 포함하는 것을 특징으로 하는 블록체인 기반의 스토리지 서비스 제공 방법.
9. The method of claim 8,
Wherein the file management step comprises:
A transaction key detection step in which the system detects a transaction key associated with metadata of a file to be deleted in the database when a file delete command of a service user is received for the encrypted file stored in the block chain; And
And a smart contract control step of the system executing the smart contract to delete a decryption key associated with the transaction key corresponding to the detected transaction key in a private storage space of the smart contract, Service delivery method.
제8항에 있어서,
상기 파일 관리 단계는,
블록체인에 저장된 상기 암호화 파일에 대하여 서비스 사용자의 파일 다운로드 명령이 수신되는 경우, 상기 시스템이 상기 데이터베이스에서 다운로드 대상 파일의 메타데이터와 연관된 트랜잭션 키를 검출하는 트랜잭션 키 검출 단계;
상기 시스템이 상기 스마트 컨트랙트를 실행하여 상기 검출된 트랜잭션 키에 대응하는 트랙잭션 키와 연관된 복호 키를 수신하는 스마트 컨트랙트 제어 단계;
상기 시스템이 상기 검출된 트랙잭션 키로 블록체인에 저장된 트랜잭션을 조회하여 블록체인에 저장된 상기 암호화 파일을 수신하는 암호화 파일 수신 단계; 및
상기 시스템이 상기 수신된 복호 키로 상기 수신된 암호화 파일을 복호화하는 파일 복호화 단계를 포함하는 것을 특징으로 하는 블록체인 기반의 스토리지 서비스 제공 방법.
9. The method of claim 8,
Wherein the file management step comprises:
A transaction key detection step in which, when a file download command of a service user is received for the encrypted file stored in the block chain, the system detects a transaction key associated with the metadata of the file to be downloaded in the database;
A smart contract control step in which the system executes the smart contract and receives a decryption key associated with a transaction key corresponding to the detected transaction key;
Receiving an encrypted file stored in a block chain by retrieving a transaction stored in a block chain with the detected transaction key; And
Wherein the system decrypts the received encrypted file with the received decryption key. ≪ RTI ID = 0.0 > 31. < / RTI >
제6항 내지 제10항 중 어느 한 항에 따른 방법을 컴퓨터 시스템을 통해 실행하는 컴퓨터 프로그램으로서 기록매체에 기록된 컴퓨터 프로그램.11. A computer program for executing a method according to any one of claims 6 to 10 via a computer system, the computer program being recorded on a recording medium.
KR1020170103529A 2017-08-16 2017-08-16 System and method for providing storage service based on block chain KR102094497B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170103529A KR102094497B1 (en) 2017-08-16 2017-08-16 System and method for providing storage service based on block chain

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170103529A KR102094497B1 (en) 2017-08-16 2017-08-16 System and method for providing storage service based on block chain

Publications (2)

Publication Number Publication Date
KR20190018869A true KR20190018869A (en) 2019-02-26
KR102094497B1 KR102094497B1 (en) 2020-04-23

Family

ID=65562612

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170103529A KR102094497B1 (en) 2017-08-16 2017-08-16 System and method for providing storage service based on block chain

Country Status (1)

Country Link
KR (1) KR102094497B1 (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109934000A (en) * 2019-03-12 2019-06-25 黑龙江世纪精彩科技有限公司 Entertainment industry cooperation intention matching process and storage medium based on block chain technology
CN110213368A (en) * 2019-05-31 2019-09-06 联想(北京)有限公司 Data processing method, data processing equipment and computer system
CN110321336A (en) * 2019-06-21 2019-10-11 迅鳐成都科技有限公司 It is a kind of based on block chain in depositary management platform
KR20190115432A (en) * 2018-04-02 2019-10-11 주식회사 큐브시스템 Cubechain type data management engine and data management method
KR20210024823A (en) * 2019-08-26 2021-03-08 단국대학교 산학협력단 Apparatus and method for accessing control of data and system using the same
CN113032595A (en) * 2021-03-04 2021-06-25 陈峰磊 Basic material hyperspectral data interest sharing method and system based on block chain
KR20210077975A (en) 2019-12-18 2021-06-28 서강대학교산학협력단 Spatial indexing method and apparatus for blockchain-based geospatial data
KR20210079053A (en) * 2019-12-19 2021-06-29 한전케이디엔주식회사 Apparatus for interfacing communication between legacy system for recruiting and platform of block_chain
WO2021215551A1 (en) * 2020-04-20 2021-10-28 (주)사이버라인 Blockchain-based electronic research note verification method and electronic research note management apparatus using same
KR20210138452A (en) * 2020-05-12 2021-11-19 주식회사 블록체인기술연구소 The non-face-to-face large document access blockchain system that combines blockchain-based DID service and IPFS-based data sharing technology and private key distributed storage technology
KR20230108155A (en) * 2022-01-10 2023-07-18 주식회사 체인어스 Method for saving to distribution data employing image value deciding based in CNN and blockchain driving
CN116827653A (en) * 2023-07-07 2023-09-29 青岛农业大学 Data encryption and authorization management method based on Hyperledger Fabric alliance chain

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170116693A1 (en) * 2015-10-27 2017-04-27 Verimatrix, Inc. Systems and Methods for Decentralizing Commerce and Rights Management for Digital Assets Using a Blockchain Rights Ledger
US20170161439A1 (en) * 2007-07-03 2017-06-08 Eingot Llc Records access and management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170161439A1 (en) * 2007-07-03 2017-06-08 Eingot Llc Records access and management
US20170116693A1 (en) * 2015-10-27 2017-04-27 Verimatrix, Inc. Systems and Methods for Decentralizing Commerce and Rights Management for Digital Assets Using a Blockchain Rights Ledger

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190115432A (en) * 2018-04-02 2019-10-11 주식회사 큐브시스템 Cubechain type data management engine and data management method
CN109934000A (en) * 2019-03-12 2019-06-25 黑龙江世纪精彩科技有限公司 Entertainment industry cooperation intention matching process and storage medium based on block chain technology
CN109934000B (en) * 2019-03-12 2021-06-29 黑龙江世纪精彩科技有限公司 Entertainment industry cooperative intention matching method based on block chain technology and storage medium
CN110213368A (en) * 2019-05-31 2019-09-06 联想(北京)有限公司 Data processing method, data processing equipment and computer system
CN110321336A (en) * 2019-06-21 2019-10-11 迅鳐成都科技有限公司 It is a kind of based on block chain in depositary management platform
KR20210024823A (en) * 2019-08-26 2021-03-08 단국대학교 산학협력단 Apparatus and method for accessing control of data and system using the same
KR20210077975A (en) 2019-12-18 2021-06-28 서강대학교산학협력단 Spatial indexing method and apparatus for blockchain-based geospatial data
KR20210079053A (en) * 2019-12-19 2021-06-29 한전케이디엔주식회사 Apparatus for interfacing communication between legacy system for recruiting and platform of block_chain
WO2021215551A1 (en) * 2020-04-20 2021-10-28 (주)사이버라인 Blockchain-based electronic research note verification method and electronic research note management apparatus using same
KR20210138452A (en) * 2020-05-12 2021-11-19 주식회사 블록체인기술연구소 The non-face-to-face large document access blockchain system that combines blockchain-based DID service and IPFS-based data sharing technology and private key distributed storage technology
CN113032595A (en) * 2021-03-04 2021-06-25 陈峰磊 Basic material hyperspectral data interest sharing method and system based on block chain
KR20230108155A (en) * 2022-01-10 2023-07-18 주식회사 체인어스 Method for saving to distribution data employing image value deciding based in CNN and blockchain driving
CN116827653A (en) * 2023-07-07 2023-09-29 青岛农业大学 Data encryption and authorization management method based on Hyperledger Fabric alliance chain
CN116827653B (en) * 2023-07-07 2024-02-09 青岛农业大学 Data encryption and authorization management method based on Hyperledger Fabric alliance chain

Also Published As

Publication number Publication date
KR102094497B1 (en) 2020-04-23

Similar Documents

Publication Publication Date Title
KR102094497B1 (en) System and method for providing storage service based on block chain
EP3453135B1 (en) System and method for encryption and decryption based on quantum key distribution
US8918633B2 (en) Information processing device, information processing system, and program
US8914902B2 (en) Method for user privacy protection
JP4889637B2 (en) License management apparatus and method
CN103731395A (en) Processing method and system for files
JP6543743B1 (en) Management program
US10685141B2 (en) Method for storing data blocks from client devices to a cloud storage system
WO2020206953A1 (en) Data processing method and system
US20130007467A1 (en) Binding of cryptographic content using unique device characteristics with server heuristics
CN104331408A (en) Chunk-level client side encryption in hierarchical content addressable storage systems
KR101648364B1 (en) Method for improving encryption/decryption speed by complexly applying for symmetric key encryption and asymmetric key double encryption
KR100982515B1 (en) Apparatus and method for constraining the count of access to digital contents using a hash chain
KR101623742B1 (en) Method and system for sharing file related messages
KR20220092811A (en) Method and device for storing encrypted data
CN110955909B (en) Personal data protection method and block link point
JP5678150B2 (en) User terminal, key management system, and program
CN108763401A (en) A kind of reading/writing method and equipment of file
KR102542213B1 (en) Real-time encryption/decryption security system and method for data in network based storage
US9363081B2 (en) License administration device and license administration method
KR101590270B1 (en) Cloud service providers for storing data deduplication
JPH11331145A (en) Information sharing system, information preserving device, information processing method and recording medium therefor
KR101945687B1 (en) Electronic document managing system using hybrid cloud and method for thereof
KR20200114807A (en) System and method for managing file based on multi­blockchain
KR101635005B1 (en) Method for managing metadata in a digital data safe system based on cloud

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