KR102094497B1 - 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
KR102094497B1
KR102094497B1 KR1020170103529A KR20170103529A KR102094497B1 KR 102094497 B1 KR102094497 B1 KR 102094497B1 KR 1020170103529 A KR1020170103529 A KR 1020170103529A KR 20170103529 A KR20170103529 A KR 20170103529A KR 102094497 B1 KR102094497 B1 KR 102094497B1
Authority
KR
South Korea
Prior art keywords
file
blockchain
stored
key
storage
Prior art date
Application number
KR1020170103529A
Other languages
Korean (ko)
Other versions
KR20190018869A (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)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

블록체인 기반의 스토리지 서비스 제공 시스템 및 방법에 관한 기술이 개시된다.
본 발명의 일 실시예에 따른 블록체인 기반의 스토리지 서비스 제공 시스템은, 서비스 사용자의 명령을 수신하는 사용자 명령 수신부; 서비스 사용자의 파일 저장 명령이 수신되는 경우, 저장 대상 파일을 암호화한 암호화 파일을 블록체인에 저장하고, 상기 암호화 파일의 저장시 기록된 트랜잭션의 조회에 사용되는 트랜잭션 키와 상기 암호화 파일의 복호화에 사용되는 복호 키를 상호 연관시켜, 블록체인에 저장되어 실행되는 스마트 컨트랙트(smart contract)의 전용 저장 공간에 저장하는 파일 저장부; 및 블록체인에 저장된 상기 암호화 파일에 대하여 서비스 사용자의 파일 삭제 명령이 수신되는 경우, 상기 스마트 컨트랙트의 전용 저장 공간에 저장된 상기 복호 키를 삭제하는 파일 관리부를 포함하여, 스토리지 서비스 시스템 구축 비용을 절감하고 저장된 데이터 파일의 무결성과 원본 증명력을 보장함은 물론, 블록체인에 저장된 데이터 파일의 삭제 효과를 가져올 수 있다.
Disclosed is a technology related to a blockchain-based storage service providing system and method.
Blockchain-based storage service providing system according to an embodiment of the present invention, a user command receiving unit for receiving a command of a service user; When a service user's file storage command is received, the encrypted file that encrypts the file to be stored is stored in the blockchain, and the transaction key used to query the recorded transaction when the encrypted file is stored and used to decrypt the encrypted file A file storage unit that correlates the decryption keys to be stored in a dedicated storage space of a smart contract that is stored and executed in the blockchain; And a file management unit that deletes the decryption key stored in a dedicated storage space of the smart contract when a file deletion command of a service user is received for the encrypted file stored in the blockchain, thereby reducing the cost of building a storage service system and In addition to ensuring the integrity and original proof of stored data files, it can also have the effect of deleting data files stored on the blockchain.

Description

블록체인 기반의 스토리지 서비스 제공 시스템 및 방법{System and method for providing storage service based on block chain}System and method for providing storage service based on block chain

본 발명은 블록체인 기반의 스토리지 서비스 제공 시스템 및 방법에 관한 것으로서, 더욱 상세하게는, 데이터의 위조 또는 변조가 불가한 블록체인에 서비스 사용자의 데이터 파일을 저장하고 관리하는 블록체인 기반의 스토리지 서비스 제공 시스템 및 방법에 관한 것이다.The present invention relates to a system and method for providing a blockchain-based storage service, and more specifically, to provide a blockchain-based storage service for storing and managing data files of service users in a blockchain that cannot be forged or tampered with. System and method.

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

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

또한, 한국 등록특허공보 제10-1727525호, 한국 공개특허공보 제10-2012-0015680호 등에 개시된 바와 같이, 기존 기술들은 블록체인에 일단 저장된 데이터를 변경 및 삭제할 수 없는 블록체인의 비가역적 특성을 이용하여 데이터의 위조 또는 변조를 방지하고 있으나, 블록체인에 저장된 데이터를 삭제하는 방안을 전혀 제시하지 못하고 있기 때문에, 데이터 파일의 저장은 물론 저장된 파일의 삭제 등과 같은 파일 관리 기능을 제공해야 하는 스토리지 서비스에 적용할 수 없다는 문제가 있다.In addition, as disclosed in Korean Registered Patent Publication No. 10-1727525, Korean Patent Publication No. 10-2012-0015680, existing technologies are irreversible characteristics of blockchain that cannot change and delete data once stored in the blockchain. It is used to prevent data forgery or tampering, but since it does not suggest any way to delete data stored on the blockchain, it is a storage service that must provide file management functions such as storage of data files and deletion of stored files. There is a problem that can not be applied to.

본 발명이 해결하고자 하는 기술적 과제는, 블록체인 기술을 이용하여 스토리지 서비스 시스템 구축 비용을 절감하고 저장된 데이터 파일의 무결성과 원본 증명력을 보장함은 물론, 블록체인에 저장된 데이터 파일의 삭제 효과를 가져올 수 있는 블록체인 기반의 스토리지 서비스 제공 시스템 및 방법을 제공하는 것이다.The technical problem to be solved by the present invention is to reduce the cost of building a storage service system using blockchain technology, ensure the integrity and original proof of the stored data file, and bring the effect of deleting the data file stored in the blockchain. To provide a blockchain-based storage service providing system and method.

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

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

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

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

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

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

일 실시예에 있어서, 상기 파일 저장 단계는, 상기 시스템이 상기 저장 대상 파일의 암호화 및 복호화에 사용되는 고유의 암호 키 및 복호 키를 생성하는 키 생성 단계; 상기 시스템이 상기 암호 키로 상기 저장 대상 파일을 암호화하여 상기 암호화 파일을 생성하는 파일 암호화 단계; 상기 시스템이 상기 암호화 파일을 블록체인에 저장하는 암호화 파일 저장 단계; 및 상기 트랜잭션 키와 상기 복호 키를 상호 연관시켜 상기 스마트 컨트랙트의 전용 저장 공간에 저장하는 키 저장부를 포함할 수 있다.In one embodiment, the file storage step includes: a key generation step in which the system generates a unique encryption key and a decryption key used for encryption and decryption of the storage target file; A file encryption step in which the system encrypts the storage target file with the encryption key to generate the encrypted file; An encrypted file storage step in which the system stores the encrypted file in a blockchain; And a key storage unit that correlates the transaction key and the decryption key and stores them in a dedicated storage space of the smart contract.

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

일 실시예에 있어서, 상기 파일 관리 단계는, 블록체인에 저장된 상기 암호화 파일에 대하여 서비스 사용자의 파일 삭제 명령이 수신되는 경우, 상기 시스템이 상기 데이터베이스에서 삭제 대상 파일의 메타데이터와 연관된 트랜잭션 키를 검출하는 트랜잭션 키 검출 단계; 및 상기 시스템이 상기 스마트 컨트랙트를 실행하여 상기 스마트 컨트랙트의 전용 저장 공간에서 상기 검출된 트랜잭션 키에 대응하는 트랙잭션 키와 연관된 복호 키를 삭제하는 스마트 컨트랙트 제어 단계를 포함할 수 있다.In one embodiment, in the file management step, when a file deletion command of a service user is received for the encrypted file stored in the blockchain, the system detects a transaction key associated with metadata of the file to be deleted from the database. A transaction key detection step; 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 the dedicated storage space of the smart contract.

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

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

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

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

특히, 저장된 암호화 파일의 고유의 복호 키를 블록체인에서 지원되는 스마트 컨트랙트의 전용 저장 공간에 저장하고, 사용자의 파일 삭제 명령이 있는 경우 스마트 컨트랙트를 실행하여 삭제 대상 파일의 해당 복호 키를 삭제함으로써, 블록체인에 데이터 파일을 저장하면서도 블록체인에 저장된 데이터 파일을 삭제하는 효과를 가져올 수 있다.In particular, by storing the unique decryption key of the stored encrypted file in the dedicated storage space of the smart contract supported by the blockchain, and executing the smart contract when the user deletes the command, deletes the corresponding decryption key of the file to be deleted, While storing data files on the blockchain, it can have the effect of deleting data files stored on the blockchain.

나아가, 본 발명이 속하는 기술 분야의 통상의 지식을 가진 자라면, 본 발명에 따른 여러 실시예들이 상기 언급되지 않은 여러 기술적 과제들을 해결할 수 있음을 이하의 설명으로부터 자명하게 이해할 수 있을 것이다.Furthermore, those of ordinary skill in the art to which the present invention pertains will readily understand from the following description that various embodiments according to the present invention can solve various technical problems not mentioned above.

도 1은 본 발명이 적용되는 블록체인 네트워크 환경의 일례를 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 블록체인 기반의 스토리지 서비스 제공 시스템을 나타낸 블록도이다.
도 3은 본 발명의 일 실시예에 따른 블록체인 기반의 스토리지 서비스 제공 시스템과 연동하는 블록체인 노드의 일례를 나타낸 블록도이다.
도 4는 본 발명의 일 실시예에 따른 블록체인 기반의 스토리지 서비스 제공 방법의 데이터 파일 저장 프로세스를 나타낸 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 블록체인 기반의 스토리지 서비스 제공 방법의 데이터 파일 삭제 프로세스를 나타낸 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 블록체인 기반의 스토리지 서비스 제공 방법의 데이터 파일 다운로드 프로세스를 나타낸 흐름도이다.
1 is a view showing an example of a blockchain network environment to which the present invention is applied.
2 is a block diagram showing a blockchain-based storage service providing system according to an embodiment of the present invention.
3 is a block diagram showing an example of a blockchain node interworking with a blockchain-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 for providing a storage service based on a blockchain according to an embodiment of the present invention.
5 is a flowchart illustrating a data file deletion process of a method for providing a storage service based on a blockchain according to an embodiment of the present invention.
6 is a flowchart illustrating a data file download process of a method for providing a storage service based on a blockchain 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 a solution to the technical problem of the present invention. However, in the description of the present invention, if the description of the related known technology makes the gist of the present invention obscure, the description thereof will be omitted. In addition, terms to be described later are terms defined in consideration of functions in the present invention, which may be changed according to intentions or practices of a designer, a manufacturer, and the like. Therefore, the definition should be made based on the contents throughout this specification.

도 1에는 본 발명이 적용되는 블록체인 네트워크 환경의 일례가 도시되어 있다.1 shows an example of a blockchain 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, the blockchain network may be composed of a client 10 of a service user and a plurality of blockchain nodes 20. The service user's client 10 may perform a data file transmission and storage request, a deletion or download request of the stored file, and the like. The client 10 may be a fixed terminal such as a server or a personal computer (PC), or a mobile terminal such as a mobile phone. The blockchain node 20 may perform transaction approval, a transaction history storage using a blockchain, and periodic block distribution agreements with other nodes as files are stored in the blockchain. The blockchain node 20 may be composed of a computer system such as a server or a PC, and a blockchain program supporting a smart contract described below, such as Ethereum or Hyperledger Fabric. It can be installed. In this way, the blockchain program installed in the blockchain node 20 may be set so as not to limit the size or type of data stored in the blockchain. In addition, the block chain node group including a plurality of block chain nodes 20 does not constitute a public chain that anyone can access, such as Bitcoin or Ethereum, and storage service. You can configure a private chain that only users can access.

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

이 경우, 스토리지 서비스 제공 시스템(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 the form of a key-value pair on the blockchain, similar to the case of storing data in a database of No SQL series. . That is, the storage service providing system 100 may store a unique key and a data file corresponding to the key in the blockchain, and then access the stored file using the key. Blockchain-specific elements such as account and message delivery are added to the data file storage and inquiry process. For example, when the data file D is stored on the blockchain, a transaction in the form of a message that 'X sends D to Y' is basically recorded on the blockchain. In this case, X and Y correspond to the account.

아래에서 다시 설명하겠지만, 스토리지 서비스 제공 시스템(100)은 데이터 파일 저장에 따른 트랜잭션 기록시, 해당 트랜잭션에 대응하여 발급되는 고유의 트랜잭션 키(트랜잭션 해시)와 저장 대상 파일을 암호화한 암호화 파일을 하나의 페어(pair)로 하여 블록체인에 저장하고, 차후 해당 트랜잭션 키를 파라미터로 하는 트랜잭션 조회 함수를 사용하여 블록체인에서 해당 트랜잭션을 조회하고, 저장된 암호화 파일에 접근할 수 있다.As will be described again below, the storage service providing system 100 uses a unique transaction key (transaction hash) issued in response to a corresponding transaction and an encrypted file that encrypts a storage target file when recording a transaction according to data file storage. It can be stored in the blockchain as a pair, and in the future, the transaction can be inquired in the blockchain using the transaction inquiry function using the transaction key as a parameter, and the stored encrypted file can be accessed.

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

도 2에는 본 발명의 일 실시예에 따른 블록체인 기반의 스토리지 서비스 제공 시스템(100)이 블록도로 도시되어 있다.2 is a block diagram of a blockchain-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, the blockchain-based storage service providing system 100 according to an embodiment of the present invention includes a user command receiving unit 110, a file storage unit 120 and a file management unit 130 You can. According to an embodiment, the storage service providing system 100 includes a communication unit 102 that performs wired and wireless communication with external devices through a communication network, an input unit 104 that receives commands from a user or a system operator, and a system operation It may further include a control unit 106 for overall control, a memory unit 108 for storing data, and the like. As described above, when the storage service providing system 100 is configured as a computer system including a communication unit 102, an input unit 104, a control unit 106, a memory unit 108, the user command receiving unit 110 , The file storage unit 120 and the file management unit 130 may be configuration modules of the control unit 105 implemented by a combination of a microprocessor and a computer program driving the same.

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

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

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

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

상기 파일 암호화부(123)는, 상기 암호 키로 저장 대상 파일을 암호화하여 암호화 파일을 생성할 수 있다.The file encryption unit 123 may generate an encrypted file by encrypting a file to be stored with the encryption key.

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

한편, 상기 키 저장부(125)는, 키-밸류 페어 형식과 유사하게 상기 트랜잭션 키와 상기 복호 키를 상호 연관시켜 블록체인에 저장된 스마트 컨트랙트의 전용 저장 공간에 저장하고, 저장 대상 파일의 암호화에 사용된 암호 키와 상기 복호 키를 시스템(100) 내에서 모두 삭제할 수 있다.On the other hand, the key storage unit 125, similar to the key-value pair format, correlates the transaction key and the decryption key and stores them in a dedicated storage space of the smart contract stored in the blockchain, and encrypts the storage target file. The used encryption key and the decryption key can both 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 achieved, and is an independent program stored and executed in a blockchain. Since the smart contract itself is an independent program, a dedicated storage space can be used separately from the blockchain in the blockchain node 20, and data stored in the dedicated storage space can be deleted. These smart contracts are supported by blockchain technologies such as Ethereum or Hyperledger Fabric, and can be expanded to perform various operations according to various conditions, thereby extending the functionality of the blockchain.

본 발명에서의 스마트 컨트랙트는, 트랜잭션 키-복호 키 페어들을 전용 저장 공간에 저장하고, 스토리지 서비스 제공 시스템(100)으로부터 수신되는 트랜잭션 키를 파라미터로 하여, 해당 트랜잭션 키에 대응하는 복호 키를 삭제하거나 스토리지 서비스 제공 시스템(100)으로 반환하도록 작성될 수 있다.The smart contract in the present invention stores 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, or It may be written to return 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 on the blockchain before starting the storage service. In this case, the storage service providing system 100 may use a transaction in a different format from the transaction when storing the encrypted file. For example, in the process of storing the smart contract SC, a transaction of the form “X sends SC” may be used. That is, the account corresponding to 'to Y' may be omitted. When the transaction ‘X sends SC’ is successfully performed, a smart contract-specific account used to use the smart contract in the future is issued. If such an account is AC, a message including a function to be called and related parameters can be transmitted to AC to operate the corresponding smart contract.

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

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

다시 도 2를 참조하면, 상기 파일 저장부(120)의 파일 정보 저장부(126)는, 저장 대상 파일에서 추출된 메타데이터와 상기 트랙잭션 키를 상호 연관시켜 파일 정보 데이터베이스에 저장할 수 있다. 이러한 파일 정보 데이터베이스는 스토리지 서비스 제공 시스템(100)의 메모리부(108)에 포함되거나 별도의 저장 장치로 구성될 수 있다.Referring back to FIG. 2, the file information storage unit 126 of the file storage unit 120 may store metadata in the file information database by correlating the metadata extracted from the storage target file and the transaction key. 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, when a file deletion command of a service user is received for the encrypted file stored in the blockchain, the file management unit 130 may delete the corresponding decryption key stored in the dedicated storage space of the smart contract.

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

따라서, 본 발명은 저장 대상 파일을 암호화하여 해당 암호화 파일을 블록체인에 저장하는 한편, 암호화 파일을 복호화하는 복호 키를 스마트 컨트랙트의 전용 저장 공간에 별도로 저장하여 관리하며, 서비스 사용자의 파일 삭제 명령이 수신되는 경우 삭제 대상 파일을 직접 삭제하는 것이 아니라, 스마트 컨트랙트를 실행하여 해당 파일의 복호 키를 삭제하는 것이다. 즉, 본 발명은 서비스 사용자 또는 제3자가 해당 트랜잭션을 조회하더라도 암호화 파일의 복호 키를 사용할 수 없도록 하여 원본 파일을 획득할 수 없도록 하는 것이다.Therefore, the present invention encrypts the file to be stored and stores the encrypted file on the blockchain, while storing and managing the decryption key for decrypting the encrypted file separately in the dedicated storage space of the smart contract. When received, it is not to delete the file to be deleted directly, but to execute the smart contract to delete the decryption key of the file. That is, according to the present invention, even if a service user or a third party queries the corresponding transaction, the decryption key of the encrypted file cannot be used to obtain the original file.

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

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

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

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

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

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

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

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

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

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

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

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

그 다음, 상기 시스템(100)의 키 생성부(122)는, 저장 대상 파일의 암호화 및 복호화에 사용되는 고유의 암호 키 및 복호 키를 랜덤하게 생성할 수 있다(S420). AES(Advanced Encryption Standard) 등과 같은 대칭키 암호 방식이 적용되는 경우 상기 암호 키와 복호 키는 동일한 키일 수 있다.Then, the key generation unit 122 of the system 100 may randomly generate a unique encryption key and decryption key used for encryption and decryption of a file to be stored (S420). When a symmetric key encryption method 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 generate an encrypted file by encrypting a file to be stored with the encryption key (S430).

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

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

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

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

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

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

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

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

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

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

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

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

한편, 상기 시스템(100)의 암호화 파일 수신부(133)는, 상기 검출된 트랙잭션 키로 블록체인에 저장된 트랜잭션을 조회하여 블록체인에 저장된 해당 암호화 파일을 수신할 수 있다(S630).Meanwhile, the encrypted file receiving unit 133 of the system 100 may receive a corresponding encrypted file stored in the blockchain by querying the transaction stored in the blockchain with the detected transaction key (S630).

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

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

상술한 바와 같이, 본 발명에 따르면, 별도의 중앙 집중형 스토리지 서버나 고가의 WORM(Write Once Read Many) 스토리지 등을 구축할 필요없이, 데이터의 위조 또는 변조가 불가한 블록체인 기술을 이용하여 서비스 사용자의 데이터 파일을 저장 및 관리하는 스토리지 서비스를 제공함으로써, 스토리지 서비스 시스템 구축 비용을 절감하면서도 데이터 파일의 무결성과 원본 증명력을 보장할 수 있다. 또한, 서비스 사용자의 데이터 파일 저장시에 해당 파일을 고유의 암호 키로 암호화하여 블록체인에 저장함으로써, 데이터 파일의 보안성 및 기밀성을 유지할 수 있다. 특히, 저장된 암호화 파일의 고유의 복호 키를 블록체인에서 지원되는 스마트 컨트랙트의 전용 저장 공간에 저장하고, 사용자의 파일 삭제 명령이 있는 경우 스마트 컨트랙트를 실행하여 삭제 대상 파일의 해당 복호 키를 삭제함으로써, 블록체인에 데이터 파일을 저장하면서도 블록체인에 저장된 데이터 파일을 삭제하는 효과를 가져올 수 있다. 나아가, 본 발명에 따른 실시예들은, 당해 기술 분야는 물론 관련 기술 분야에서 본 명세서에 언급된 내용 이외의 다른 여러 기술적 과제들을 해결할 수 있음은 물론이다.As described above, according to the present invention, without the need to build a separate centralized storage server or expensive write once read many (WORM) storage, etc., the service is performed using a blockchain technology in which data cannot be forged or tampered with. By providing a storage service that stores and manages users' data files, it is possible to reduce the cost of building a storage service system while ensuring the integrity and original proof of data files. In addition, when the service user's data file is stored, the file is encrypted with a unique encryption key and stored in the blockchain, thereby maintaining the security and confidentiality of the data file. In particular, by storing the unique decryption key of the stored encrypted file in the dedicated storage space of the smart contract supported by the blockchain, and executing the smart contract when the user deletes the command, deletes the corresponding decryption key of the file to be deleted While storing data files on the blockchain, it can have the effect of deleting data files stored on the blockchain. Furthermore, it is a matter of course that the embodiments according to the present invention can solve various technical problems other than those mentioned in this specification in the related technical field as well as in the related technical field.

지금까지 본 발명에 대해 구체적인 실시예들을 참고하여 설명하였다. 그러나 당업자라면 본 발명의 기술적 범위에서 다양한 변형 실시예들이 구현될 수 있음을 명확하게 이해할 수 있을 것이다. 그러므로 앞서 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 할 것이다. 즉, 본 발명의 진정한 기술적 사상의 범위는 청구범위에 나타나 있으며, 그와 균등범위 내에 있는 모든 차이점은 본 발명에 포함되는 것으로 해석되어야 할 것이다.So far, the present invention has been described with reference to specific embodiments. However, it will be apparent to those skilled in the art that various modified embodiments may be implemented in the technical scope of the present invention. Therefore, the embodiments disclosed above should be considered in terms of explanation, not limitation. That is, the scope of the true technical spirit of the present invention is indicated in the claims, and all differences within the scope of the claims should be interpreted 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 receiving unit
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 receiving unit 134: file decoding unit
135: file transfer unit

Claims (11)

블록체인에 서비스 사용자의 데이터 파일을 저장하는 블록체인 기반의 스토리지 서비스 제공 시스템으로서,
서비스 사용자의 명령을 수신하는 사용자 명령 수신부;
서비스 사용자의 파일 저장 명령이 수신되는 경우, 저장 대상 파일을 암호화한 암호화 파일을 블록체인에 저장하고, 상기 암호화 파일의 저장시 기록된 트랜잭션의 조회에 사용되는 트랜잭션 키와 상기 암호화 파일의 복호화에 사용되는 복호 키를 상호 연관시켜, 블록체인에 저장되어 실행되는 스마트 컨트랙트(smart contract)의 전용 저장 공간으로서 블록체인과는 다른 별도의 전용 저장 공간에 저장하는 파일 저장부; 및
블록체인에 저장된 상기 암호화 파일에 대하여 서비스 사용자의 파일 삭제 명령이 수신되는 경우, 상기 스마트 컨트랙트의 전용 저장 공간에 저장된 상기 복호 키를 삭제하는 파일 관리부를 포함하는 블록체인 기반의 스토리지 서비스 제공 시스템.
As a blockchain-based storage service providing system that stores data files of service users on the blockchain,
A user command receiving unit that receives a command of a service user;
When a service user's file storage command is received, the encrypted file that encrypts the file to be stored is stored in the blockchain, and the transaction key used to query the recorded transaction when the encrypted file is stored and used to decrypt the encrypted file A file storage unit that correlates the decryption keys to be stored in a blockchain and stores it in a separate dedicated storage space different from the blockchain as a dedicated storage space of a smart contract that is stored and executed; And
Blockchain-based storage service providing system including a file management unit that deletes the decryption key stored in a dedicated storage space of the smart contract when a file deletion command of a service user is received for the encrypted file stored in the blockchain.
제1항에 있어서,
상기 파일 저장부는,
상기 저장 대상 파일의 암호화 및 복호화에 사용되는 고유의 암호 키 및 복호 키를 생성하는 키 생성부;
상기 암호 키로 상기 저장 대상 파일을 암호화하여 상기 암호화 파일을 생성하는 파일 암호화부;
상기 암호화 파일을 블록체인에 저장하는 암호화 파일 저장부; 및
상기 트랜잭션 키와 상기 복호 키를 상호 연관시켜 상기 스마트 컨트랙트의 전용 저장 공간에 저장하는 키 저장부를 포함하는 것을 특징으로 하는 블록체인 기반의 스토리지 서비스 제공 시스템.
According to claim 1,
The file storage unit,
A key generator for generating unique encryption keys and decryption keys used for encryption and decryption of the storage target file;
A file encryption unit that encrypts the storage target file with the encryption key to generate the encrypted file;
An encrypted file storage unit for storing the encrypted file on a blockchain; And
And a key storage unit that correlates the transaction key and the decryption key and stores them in a dedicated storage space of the smart contract.
제1항에 있어서,
상기 파일 저장부는,
상기 저장 대상 파일의 암호화 전에, 상기 저장 대상 파일의 명칭, 크기 및 종류 중 적어도 하나를 포함하는 메타데이터를 추출하는 메타데이터 추출부; 및
상기 메타데이터와 상기 트랜잭션 키를 상호 연관시켜 데이터베이스에 저장하는 파일 정보 저장부를 포함하는 것을 특징으로 하는 블록체인 기반의 스토리지 서비스 제공 시스템.
According to claim 1,
The file storage unit,
A metadata extraction unit for extracting metadata including at least one of a name, size, and type of the storage target file before encryption of the storage target file; And
And a file information storage unit storing the data in a database by correlating the metadata with the transaction key.
제3항에 있어서,
상기 파일 관리부는,
블록체인에 저장된 상기 암호화 파일에 대하여 서비스 사용자의 파일 삭제 명령이 수신되는 경우, 상기 데이터베이스에서 삭제 대상 파일의 메타데이터와 연관된 트랜잭션 키를 검출하는 트랜잭션 키 검출부; 및
상기 스마트 컨트랙트를 실행하여 상기 스마트 컨트랙트의 전용 저장 공간에서 상기 검출된 트랜잭션 키에 대응하는 트랙잭션 키와 연관된 복호 키를 삭제하는 스마트 컨트랙트 제어부를 포함하는 것을 특징으로 하는 블록체인 기반의 스토리지 서비스 제공 시스템.
According to claim 3,
The file management unit,
A transaction key detection unit detecting a transaction key associated with metadata of a file to be deleted from the database when a file deletion command of a service user is received for the encrypted file stored in the blockchain; And
And a smart contract control unit that executes the smart contract and deletes a decryption key associated with the transaction key corresponding to the detected transaction key in the dedicated storage space of the smart contract.
제3항에 있어서,
상기 파일 관리부는,
블록체인에 저장된 상기 암호화 파일에 대하여 서비스 사용자의 파일 다운로드 명령이 수신되는 경우, 상기 데이터베이스에서 다운로드 대상 파일의 메타데이터와 연관된 트랜잭션 키를 검출하는 트랜잭션 키 검출부;
상기 스마트 컨트랙트를 실행하여 상기 검출된 트랜잭션 키에 대응하는 트랙잭션 키와 연관된 복호 키를 수신하는 스마트 컨트랙트 제어부;
상기 검출된 트랙잭션 키로 블록체인에 저장된 트랜잭션을 조회하여 블록체인에 저장된 상기 암호화 파일을 수신하는 암호화 파일 수신부; 및
상기 수신된 복호 키로 상기 수신된 암호화 파일을 복호화하는 파일 복호화부를 포함하는 것을 특징으로 하는 블록체인 기반의 스토리지 서비스 제공 시스템.
According to claim 3,
The file management unit,
A transaction key detection unit detecting a transaction key associated with metadata of a download target file in the database when a file download command of a service user is received for the encrypted file stored in the blockchain;
A smart contract control unit executing the smart contract and receiving a decryption key associated with the transaction key corresponding to the detected transaction key;
An encrypted file receiving unit which queries the transaction stored in the blockchain with the detected transaction key and receives the encrypted file stored in the blockchain; And
And a file decryption unit decrypting the received encrypted file with the received decryption key.
블록체인 네트워크의 노드와 통신하는 스토리지 서비스 제공 시스템을 이용하여 블록체인에 서비스 사용자의 데이터 파일을 저장하는 블록체인 기반의 스토리지 서비스 제공 방법으로서,
상기 시스템이 서비스 사용자의 명령을 수신하는 사용자 명령 수신 단계;
서비스 사용자의 파일 저장 명령이 수신되는 경우, 상기 시스템이 저장 대상 파일을 암호화한 암호화 파일을 블록체인에 저장하고, 상기 암호화 파일의 저장시 기록된 트랜잭션의 조회에 사용되는 트랜잭션 키와 상기 암호화 파일의 복호화에 사용되는 복호 키를 상호 연관시켜, 블록체인에 저장되어 실행되는 스마트 컨트랙트(smart contract)의 전용 저장 공간으로서 블록체인과는 다른 별도의 전용 저장 공간에 저장하는 파일 저장 단계; 및
블록체인에 저장된 상기 암호화 파일에 대하여 서비스 사용자의 파일 삭제 명령이 수신되는 경우, 상기 시스템이 상기 스마트 컨트랙트의 전용 저장 공간에 저장된 상기 복호 키를 삭제하는 파일 관리 단계를 포함하는 블록체인 기반의 스토리지 서비스 제공 방법.
A method of providing a storage service based on a blockchain that stores data files of service users on a blockchain by using a storage service providing system that communicates with nodes of the blockchain network,
A user command receiving step in which the system receives a command of a service user;
When the service user's file storage command is received, the system stores the encrypted file that encrypts the file to be stored in the blockchain, and when the encrypted file is stored, the transaction key and the encrypted key used for inquiry of the recorded transaction. A file storage step of correlating the decryption key used for decryption and storing it in a dedicated storage space separate from the blockchain as a dedicated storage space of a smart contract stored and executed on the blockchain; And
Blockchain-based storage service comprising a file management step of deleting the decryption key stored in the dedicated storage space of the smart contract when the service user's file deletion command is received for the encrypted file stored in the blockchain. How to provide.
제6항에 있어서,
상기 파일 저장 단계는,
상기 시스템이 상기 저장 대상 파일의 암호화 및 복호화에 사용되는 고유의 암호 키 및 복호 키를 생성하는 키 생성 단계;
상기 시스템이 상기 암호 키로 상기 저장 대상 파일을 암호화하여 상기 암호화 파일을 생성하는 파일 암호화 단계;
상기 시스템이 상기 암호화 파일을 블록체인에 저장하는 암호화 파일 저장 단계; 및
상기 트랜잭션 키와 상기 복호 키를 상호 연관시켜 상기 스마트 컨트랙트의 전용 저장 공간에 저장하는 키 저장부를 포함하는 것을 특징으로 하는 블록체인 기반의 스토리지 서비스 제공 방법.
The method of claim 6,
The file storage step,
A key generation step in which the system generates a unique encryption key and decryption key used for encryption and decryption of the file to be stored;
A file encryption step in which the system encrypts the storage target file with the encryption key to generate the encrypted file;
An encrypted file storage step in which the system stores the encrypted file in a blockchain; And
And a key storage unit that correlates the transaction key and the decryption key and stores them in a dedicated storage space of the smart contract.
제6항에 있어서,
상기 파일 저장 단계는,
상기 저장 대상 파일의 암호화 전에, 상기 시스템이 상기 저장 대상 파일의 명칭, 크기 및 종류 중 적어도 하나를 포함하는 메타데이터를 추출하는 메타데이터 추출 단계; 및
상기 시스템이 상기 메타데이터와 상기 트랜잭션 키를 상호 연관시켜 데이터베이스에 저장하는 파일 정보 저장 단계를 포함하는 것을 특징으로 하는 블록체인 기반의 스토리지 서비스 제공 방법.
The method of claim 6,
The file storage step,
A metadata extraction step of 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
A method of providing a storage service based on a blockchain, comprising the step of storing file information in the database by correlating the metadata with the transaction key by the system.
제8항에 있어서,
상기 파일 관리 단계는,
블록체인에 저장된 상기 암호화 파일에 대하여 서비스 사용자의 파일 삭제 명령이 수신되는 경우, 상기 시스템이 상기 데이터베이스에서 삭제 대상 파일의 메타데이터와 연관된 트랜잭션 키를 검출하는 트랜잭션 키 검출 단계; 및
상기 시스템이 상기 스마트 컨트랙트를 실행하여 상기 스마트 컨트랙트의 전용 저장 공간에서 상기 검출된 트랜잭션 키에 대응하는 트랙잭션 키와 연관된 복호 키를 삭제하는 스마트 컨트랙트 제어 단계를 포함하는 것을 특징으로 하는 블록체인 기반의 스토리지 서비스 제공 방법.
The method of claim 8,
The file management step,
A transaction key detection step in which the system detects a transaction key associated with metadata of a file to be deleted from the database when a file deletion command of a service user is received for the encrypted file stored in the blockchain; And
And a smart contract control step in which the system executes the smart contract to delete the decryption key associated with the transaction key corresponding to the detected transaction key in the dedicated storage space of the smart contract. How to provide services.
제8항에 있어서,
상기 파일 관리 단계는,
블록체인에 저장된 상기 암호화 파일에 대하여 서비스 사용자의 파일 다운로드 명령이 수신되는 경우, 상기 시스템이 상기 데이터베이스에서 다운로드 대상 파일의 메타데이터와 연관된 트랜잭션 키를 검출하는 트랜잭션 키 검출 단계;
상기 시스템이 상기 스마트 컨트랙트를 실행하여 상기 검출된 트랜잭션 키에 대응하는 트랙잭션 키와 연관된 복호 키를 수신하는 스마트 컨트랙트 제어 단계;
상기 시스템이 상기 검출된 트랙잭션 키로 블록체인에 저장된 트랜잭션을 조회하여 블록체인에 저장된 상기 암호화 파일을 수신하는 암호화 파일 수신 단계; 및
상기 시스템이 상기 수신된 복호 키로 상기 수신된 암호화 파일을 복호화하는 파일 복호화 단계를 포함하는 것을 특징으로 하는 블록체인 기반의 스토리지 서비스 제공 방법.
The method of claim 8,
The file management step,
A transaction key detection step in which the system detects a transaction key associated with metadata of a download target file in the database when a file download command of a service user is received for the encrypted file stored in the blockchain;
A smart contract control step in which the system executes the smart contract to receive a decryption key associated with the transaction key corresponding to the detected transaction key;
An encryption file receiving step in which the system queries the transaction stored in the blockchain with the detected transaction key and receives the encrypted file stored in the blockchain; And
And a file decryption step of the system decrypting the received encrypted file with the received decryption key.
제6항 내지 제10항 중 어느 한 항에 따른 방법을 컴퓨터 시스템을 통해 실행하는 컴퓨터 프로그램으로서 컴퓨터로 판독 가능한 기록매체에 기록된 컴퓨터 프로그램.A computer program recorded on a computer-readable recording medium as a computer program executing the method according to any one of claims 6 to 10 through a computer system.
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 KR20190018869A (en) 2019-02-26
KR102094497B1 true 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)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102538988B1 (en) * 2018-04-02 2023-06-02 주식회사 큐브시스템 Cubechain type data management engine and data management method
CN109934000B (en) * 2019-03-12 2021-06-29 黑龙江世纪精彩科技有限公司 Entertainment industry cooperative intention matching method based on block chain technology and storage medium
CN110213368B (en) * 2019-05-31 2021-07-16 联想(北京)有限公司 Data processing method, data processing device and computer system
CN110321336A (en) * 2019-06-21 2019-10-11 迅鳐成都科技有限公司 It is a kind of based on block chain in depositary management platform
KR102256361B1 (en) * 2019-08-26 2021-05-25 단국대학교 산학협력단 Apparatus and method for accessing control of data and system using the same
KR102354343B1 (en) 2019-12-18 2022-01-21 서강대학교산학협력단 Spatial indexing method and apparatus for blockchain-based geospatial data
KR102298566B1 (en) * 2019-12-19 2021-09-03 한전케이디엔주식회사 Apparatus for interfacing communication between legacy system for recruiting and platform of block_chain
KR20210129465A (en) * 2020-04-20 2021-10-28 (주)사이버라인 Apparatus for managing laboratory note and method for searching laboratory note using thereof
KR102383099B1 (en) * 2020-05-12 2022-04-04 주식회사 블록체인기술연구소 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
KR102638374B1 (en) * 2022-01-10 2024-02-20 주식회사 체인어스 Method for saving to distribution data employing image value deciding based in CNN and blockchain driving
CN116827653B (en) * 2023-07-07 2024-02-09 青岛农业大学 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

Also Published As

Publication number Publication date
KR20190018869A (en) 2019-02-26

Similar Documents

Publication Publication Date Title
KR102094497B1 (en) System and method for providing storage service based on block chain
RU2531569C2 (en) Secure and private backup storage and processing for trusted computing and data services
US8914902B2 (en) Method for user privacy protection
US10685141B2 (en) Method for storing data blocks from client devices to a cloud storage system
JP6543743B1 (en) Management program
KR102556741B1 (en) Techniques for tracking objects between different parties
CN104331408A (en) Chunk-level client side encryption in hierarchical content addressable storage systems
CN111147432B (en) KYC data sharing system with confidentiality and method thereof
WO2020206953A1 (en) Data processing method and system
CN105378649A (en) Multiple authority data security and access
US20120303967A1 (en) Digital rights management system and method for protecting digital content
US9202074B1 (en) Protection of shared data
CN103731395A (en) Processing method and system for files
KR101648364B1 (en) Method for improving encryption/decryption speed by complexly applying for symmetric key encryption and asymmetric key double encryption
KR102399667B1 (en) Security system for data trading and data storage based on block chain and method therefor
CN104484628B (en) It is a kind of that there is the multi-application smart card of encrypting and decrypting
CN110443047B (en) Data exchange group system and method
CN114372242A (en) Ciphertext data processing method, authority management server and decryption server
CN110955909B (en) Personal data protection method and block link point
EP3809300A1 (en) Method and apparatus for data encryption, method and apparatus for data decryption
KR102542213B1 (en) Real-time encryption/decryption security system and method for data in network based storage
CN110855753A (en) Bank operation system, method and server
CN107332840B (en) Intelligent authority management system and method
CN113505098A (en) File sharing system, method and storage medium
KR20200114807A (en) System and method for managing file based on multi­blockchain

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