KR102447797B1 - System for managing document based on IPFS and method thereof - Google Patents

System for managing document based on IPFS and method thereof Download PDF

Info

Publication number
KR102447797B1
KR102447797B1 KR1020220090903A KR20220090903A KR102447797B1 KR 102447797 B1 KR102447797 B1 KR 102447797B1 KR 1020220090903 A KR1020220090903 A KR 1020220090903A KR 20220090903 A KR20220090903 A KR 20220090903A KR 102447797 B1 KR102447797 B1 KR 102447797B1
Authority
KR
South Korea
Prior art keywords
file
ipfs
information
block chain
terminal
Prior art date
Application number
KR1020220090903A
Other languages
Korean (ko)
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 KR1020220090903A priority Critical patent/KR102447797B1/en
Application granted granted Critical
Publication of KR102447797B1 publication Critical patent/KR102447797B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/164File meta data generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/101Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measures for digital rights management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/102Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measure for e-commerce

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Power Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Document Processing Apparatus (AREA)

Abstract

The present invention discloses a document management system based on an IPFS and a method therefor. That is, the present invention, by storing the blockchain DHT information related to an electronic document stored in a blockchain server in a terminal together with the IPFS DHT information in a plurality of IPFSs, enables a transaction and the block information of the blockchain to be tracked in the IPFS, and enables ownership of the data to be verified, thereby enabling interoperability with the blockchain server to be extended. The document management system based on the IPFS comprises: a terminal; a blockchain server; and a plurality of IPFSs.

Description

IPFS 기반의 문서 관리 시스템 및 그 방법{System for managing document based on IPFS and method thereof}IPFS-based document management system and method thereof {System for managing document based on IPFS and method thereof}

본 발명은 IPFS 기반의 문서 관리 시스템 및 그 방법에 관한 것으로서, 특히 단말에서 블록체인 서버에 저장한 전자 문서와 관련한 블록체인 DHT 정보를 IPFS DHT 정보와 함께 복수의 IPFS에 저장하는 IPFS 기반의 문서 관리 시스템 및 그 방법을 제공하는 데 있다.The present invention relates to an IPFS-based document management system and method therefor, and in particular, IPFS-based document management that stores block chain DHT information related to electronic documents stored in a block chain server in a terminal in a plurality of IPFS together with IPFS DHT information To provide a system and a method therefor.

전자 문서 관리 시스템은 업무의 효율화 따위를 위해, 다양한 형태의 문서와 자료를 일관성 있게 전자적으로 통합하고 관리하는 시스템으로, 각종 전자 문서의 등록, 저장, 관리, 송수신, 조회 따위를 지원한다.The electronic document management system is a system that electronically integrates and manages various types of documents and data in a consistent manner for efficient work, and supports registration, storage, management, transmission and reception, and inquiry of various electronic documents.

IPFS(Inter Planetary File System)는 분산형 파일 시스템으로, 냅스터나 토렌트 등의 P2P(peer-to-peer) 방식으로 대용량 파일이나 데이터를 공유하기 위한 프로토콜로서, 분산 파일 시스템에서 데이터를 공유하고 저장하기 위한 네트워크이다.IPFS (Inter Planetary File System) is a distributed file system, a protocol for sharing large files or data in a peer-to-peer (P2P) method such as Napster or Torrent. It is a network for

이러한 IPFS 자체에서는 블록체인의 정보를 기록하는 기능이 없고, 모든 유저들이 모든 데이터에 대해서 접근이 가능하여 특정 데이터에 대해서 권한 있는 유저만 접근할 수 있는 구조를 제공하지 못하고 있고, 데이터 암호화 기능이 부재하며, 시간에 따른 Pin 관리 기능을 제공하지 못하고 있다.In IPFS itself, there is no function to record block chain information, and all users can access all data, so it is not possible to provide a structure in which only authorized users can access specific data, and there is no data encryption function. However, it does not provide a pin management function according to time.

한국등록특허 제10-1868029호 [제목: 블록체인 기반의 파일 공유 방법 및 시스템]Korean Patent Registration No. 10-1868029 [Title: Blockchain-based file sharing method and system]

본 발명의 목적은 단말에서 블록체인 서버에 저장한 전자 문서와 관련한 블록체인 DHT 정보를 IPFS DHT 정보와 함께 복수의 IPFS에 저장하는 IPFS 기반의 문서 관리 시스템 및 그 방법을 제공하는 데 있다.An object of the present invention is to provide an IPFS-based document management system and method for storing block chain DHT information related to electronic documents stored in a block chain server in a terminal in a plurality of IPFS together with IPFS DHT information.

본 발명의 다른 목적은 특정 IPFS 데이터에 접근 가능 대상이 모든 IPFS 사용자가 아닌 특정 사용자만 접근할 수 있도록 권한을 부여하는 IPFS 기반의 문서 관리 시스템 및 그 방법을 제공하는 데 있다.Another object of the present invention is to provide an IPFS-based document management system and method for granting access to specific IPFS data so that only specific users, not all IPFS users, can access it.

본 발명의 또 다른 목적은 복수의 IPFS에 저장되는 데이터에 대해서 미리 설정된 기간 동안만 해당 IPFS에 저장하고, Pin 기능 관리를 통해 해당 기간이 지나면 해당 데이터를 자동으로 삭제하는 IPFS 기반의 문서 관리 시스템 및 그 방법을 제공하는 데 있다.Another object of the present invention is an IPFS-based document management system that stores data stored in a plurality of IPFSs in the corresponding IPFS only for a preset period, and automatically deletes the data after the corresponding period through Pin function management; It's about providing a way.

본 발명의 실시예에 따른 IPFS 기반의 문서 관리 시스템은 파일, 부가 정보, 유지 기간 정보, 블록 저장 요청 정보 및 단말의 식별 정보를 전송하는 단말; 상기 부가 정보를 블록에 저장하고, 상기 부가 정보의 블록 저장에 따른 트랜잭션 처리 결과를 생성하고, 상기 파일과 관련해서 랜덤 키 방식으로 파일 잠금키를 생성하고, 상기 수신된 파일과 관련해서 소유권자의 공개키와 상기 생성된 파일 잠금키를 미리 설정된 암호화 방식에 적용하여, 소유권자와 관련한 암호 파일 잠금키를 생성하고, 상기 파일과 관련해서 스마트 컨트랙트에 의해 토큰 아이디를 생성하는 블록체인 서버; 및 상기 블록체인 서버와 연동하여, IPFS DHT와 블록체인 DHT를 상기 파일과 함께 저장하는 복수의 IPFS를 포함할 수 있다.An IPFS-based document management system according to an embodiment of the present invention includes: a terminal for transmitting a file, additional information, maintenance period information, block storage request information, and identification information of the terminal; Storing the additional information in a block, generating a transaction processing result according to the block storage of the additional information, generating a file lock key using a random key method in relation to the file, and disclosure of the owner in relation to the received file a block chain server that applies the key and the generated file lock key to a preset encryption method to generate an encryption file lock key related to the owner, and generates a token ID by a smart contract in relation to the file; and a plurality of IPFS for storing the IPFS DHT and the block chain DHT together with the file by interworking with the block chain server.

본 발명과 관련된 일 예로서 상기 부가 정보는, 파일의 저작권자명, 파일의 소유자명, 소속 정보 및 현재 날짜 중 적어도 하나를 포함하며, 상기 유지 기간 정보는, 업로드하는 파일을 등록 유지하기 위한 기간을 포함할 수 있다.As an example related to the present invention, the additional information includes at least one of a copyright holder name of a file, an owner name of the file, affiliation information, and a current date, and the maintenance period information includes a period for registering and maintaining the file to be uploaded. may include

본 발명과 관련된 일 예로서 상기 복수의 IPFS는, 상기 유지 기간 정보를 상기 파일과 관련한 Pin 정보에 적용하고, 상기 파일이 저장되는 위치와 관련한 IPFS URI(Uniform Resource Identifier) 및 상기 파일과 관련한 해시값을 상기 블록체인 서버에 전송하며, 상기 블록체인 서버는, 상기 IPFS URI 및 상기 파일과 관련한 해시값을 근거로 스마트 컨트랙트를 통해 NFT(Non-fungible token)를 민트하고, 상기 IPFS URI 및 상기 파일과 관련한 해시값을 상기 단말에 전송하며, 상기 단말은, 앞서 전송된 파일 및 부가 정보에 응답하여 상기 블록체인 서버로부터 전송되는 IPFS URI 및 상기 파일과 관련한 해시값을 수신할 수 있다.As an example related to the present invention, the plurality of IPFS applies the maintenance period information to Pin information related to the file, and an IPFS Uniform Resource Identifier (URI) related to a location where the file is stored and a hash value related to the file transmits to the block chain server, the block chain server mints a non-fungible token (NFT) through a smart contract based on the IPFS URI and the hash value related to the file, and the IPFS URI and the file A related hash value is transmitted to the terminal, and the terminal may receive an IPFS URI and a hash value related to the file transmitted from the block chain server in response to the previously transmitted file and additional information.

본 발명의 실시예에 따른 IPFS 기반의 문서 관리 방법은 단말에 의해, 파일, 부가 정보, 유지 기간 정보, 블록 저장 요청 정보 및 단말의 식별 정보를 블록체인 서버에 전송하는 단계; 상기 블록체인 서버에 의해, 상기 부가 정보를 블록에 저장하고, 상기 부가 정보의 블록 저장에 따른 트랜잭션 처리 결과를 생성하는 단계; 상기 블록체인 서버에 의해, 상기 파일과 관련해서 랜덤 키 방식으로 파일 잠금키를 생성하는 단계; 상기 블록체인 서버에 의해, 상기 수신된 파일과 관련해서 소유권자의 공개키와 상기 생성된 파일 잠금키를 미리 설정된 암호화 방식에 적용하여, 소유권자와 관련한 암호 파일 잠금키를 생성하는 단계; 상기 블록체인 서버에 의해, 상기 파일과 관련해서 스마트 컨트랙트에 의해 토큰 아이디를 생성하는 단계; 및 상기 블록체인 서버에 의해, 복수의 IPFS와 연동하여, IPFS DHT와 블록체인 DHT를 상기 파일과 함께 상기 복수의 IPFS에 저장하는 단계를 포함할 수 있다.An IPFS-based document management method according to an embodiment of the present invention includes, by a terminal, transmitting a file, additional information, maintenance period information, block storage request information, and identification information of the terminal to a block chain server; storing, by the block chain server, the additional information in a block, and generating a transaction processing result according to the block storage of the additional information; generating, by the block chain server, a file lock key in a random key manner in relation to the file; generating, by the block chain server, an encryption file lock key related to the owner by applying the public key of the owner and the generated file lock key to a preset encryption method in relation to the received file; generating, by the blockchain server, a token ID by a smart contract in relation to the file; And by the block chain server, in conjunction with a plurality of IPFS, it may include the step of storing the IPFS DHT and the block chain DHT together with the file in the plurality of IPFS.

본 발명과 관련된 일 예로서 상기 IPFS DHT와 블록체인 DHT를 상기 파일과 함께 상기 복수의 IPFS에 저장하는 단계는, 상기 복수의 IPFS 중에서 랜덤하게 선택되는 특정 IPFS에 블록체인 정보, 상기 파일, 상기 유지 기간 정보 및 파일 등록 요청 정보를 전송하는 과정; 상기 특정 IPFS에 의해, 상기 파일을 근거로 해시값을 생성하는 과정; 상기 특정 IPFS에 의해, 상기 파일을 미리 설정된 암호화 방식을 이용해서 암호화하는 과정; 상기 특정 IPFS에 의해, 블록체인 정보, 상기 파일, 상기 유지 기간 정보, 상기 해시값 등을 근거로 상기 블록체인 DHT 및 상기 IPFS DHT를 각각 생성하는 과정; 및 상기 특정 IPFS에 의해, 상기 복수의 IPFS 중에서 상기 특정 IPFS를 제외한 나머지 IPFS와 연동하여, 상기 암호화된 파일, 상기 생성된 블록체인 DHT 및 상기 생성된 IPFS DHT를 각각 분산 저장하는 과정을 포함할 수 있다.As an example related to the present invention, the step of storing the IPFS DHT and the block chain DHT together with the file in the plurality of IPFS includes the block chain information, the file, and the maintenance in a specific IPFS randomly selected from the plurality of IPFS. Transmitting period information and file registration request information; generating a hash value based on the file by the specific IPFS; encrypting the file by the specific IPFS using a preset encryption method; generating the block chain DHT and the IPFS DHT, respectively, based on the block chain information, the file, the maintenance period information, the hash value, etc. by the specific IPFS; And by the specific IPFS, interlocking with the remaining IPFS except for the specific IPFS among the plurality of IPFS, and distributing and storing the encrypted file, the generated block chain DHT, and the generated IPFS DHT, respectively. have.

본 발명과 관련된 일 예로서 상기 블록체인 정보는, 상기 파일의 저작권자, 소유권자, 토큰 아이디, 파일 잠금키, 체인 정보, TxID, 스마트컨트랙트 정보, 블록 해시값, 블록번호 및 트랜잭션 해시값 중 적어도 하나를 포함할 수 있다.As an example related to the present invention, the block chain information includes at least one of the copyright holder, owner, token ID, file lock key, chain information, TxID, smart contract information, block hash value, block number, and transaction hash value of the file. may include

본 발명과 관련된 일 예로서 상기 암호화된 파일, 상기 생성된 블록체인 DHT 및 상기 생성된 IPFS DHT를 각각 분산 저장하는 과정은, 상기 암호화된 파일 및 상기 생성된 IPFS DHT를 각각 분산 저장하고, CID 변경없이 상기 생성된 블록체인 DHT를 부가 정보 형태로 각각 저장할 수 있다.As an example related to the present invention, the process of distributing and storing the encrypted file, the generated block chain DHT, and the generated IPFS DHT, respectively, includes distributing and storing the encrypted file and the generated IPFS DHT, respectively, and changing the CID Without it, the generated blockchain DHT can be stored in the form of additional information, respectively.

본 발명과 관련된 일 예로서 상기 복수의 IPFS에 의해, 상기 유지 기간 정보를 상기 파일과 관련한 Pin 정보에 적용하는 단계; 상기 복수의 IPFS에 의해, 상기 파일이 저장되는 위치와 관련한 IPFS URI 및 상기 파일과 관련한 해시값을 상기 블록체인 서버에 전송하는 단계; 상기 블록체인 서버에 의해, 상기 IPFS URI 및 상기 파일과 관련한 해시값을 근거로 스마트 컨트랙트를 통해 NFT를 민트하는 단계; 상기 블록체인 서버에 의해, 상기 IPFS URI 및 상기 파일과 관련한 해시값을 상기 단말에 전송하는 단계; 및 상기 단말에 의해, 앞서 전송된 파일 및 부가 정보에 응답하여 상기 블록체인 서버로부터 전송되는 IPFS URI 및 상기 파일과 관련한 해시값을 수신하는 단계를 더 포함할 수 있다.As an example related to the present invention, by the plurality of IPFS, applying the maintenance period information to the Pin information related to the file; transmitting, by the plurality of IPFS, an IPFS URI related to a location where the file is stored and a hash value related to the file to the block chain server; minting, by the blockchain server, an NFT through a smart contract based on the IPFS URI and a hash value related to the file; transmitting, by the block chain server, the IPFS URI and a hash value related to the file to the terminal; and receiving, by the terminal, an IPFS URI transmitted from the block chain server in response to the previously transmitted file and additional information, and a hash value related to the file.

본 발명과 관련된 일 예로서 상기 단말에 의해, 상기 복수의 IPFS 중 어느 하나의 IPFS에 접속하여, 상기 수신된 해시값에 대응하는 암호화된 파일을 다운로드하는 단계; 상기 단말에 의해, 상기 다운로드된 암호화된 파일을 미리 설정된 복호화키를 이용해서 복호화하는 단계; 및 상기 단말에 의해, 상기 복호화된 파일을 표시하는 단계를 더 포함할 수 있다.As an example related to the present invention, by the terminal, accessing any one of the plurality of IPFS and downloading an encrypted file corresponding to the received hash value; decrypting, by the terminal, the downloaded encrypted file using a preset decryption key; and displaying, by the terminal, the decrypted file.

본 발명과 관련된 일 예로서 상기 복수의 IPFS에 의해, 상기 유지 기간 정보를 포함하는 상기 파일과 관련한 Pin 정보를 근거로 저장 중인 파일의 유지 기간이 지난 상태인지 여부를 판단하는 단계; 및 상기 판단 결과, 상기 저장 중인 파일의 유지 기간이 지난 상태일 때, 상기 복수의 IPFS에 의해, 상기 저장 중인 파일을 미리 설정된 저장소에 백업 저장하고, 각각의 IPFS에서 저장 중인 파일을 삭제하는 단계를 더 포함할 수 있다.As an example related to the present invention, the method comprising: by the plurality of IPFSs, determining whether a maintenance period of a file being stored has expired based on Pin information related to the file including the maintenance period information; and, as a result of the determination, when the maintenance period of the stored file has passed, backing up the stored file to a preset storage by the plurality of IPFS, and deleting the stored file from each IPFS. may include more.

본 발명은 단말에서 블록체인 서버에 저장한 전자 문서와 관련한 블록체인 DHT 정보를 IPFS DHT 정보와 함께 복수의 IPFS에 저장함으로써, IPFS에서 블록체인의 트랜잭션 및 블록 정보를 트래킹하고, 데이터의 소유권을 확인 가능하며, 블록체인 서버와의 연동성을 확장할 수 있는 효과가 있다.The present invention stores the block chain DHT information related to the electronic document stored in the block chain server in the terminal in a plurality of IPFS together with the IPFS DHT information, thereby tracking the transaction and block information of the block chain in the IPFS and confirming the ownership of the data It is possible and has the effect of expanding the interoperability with the blockchain server.

또한, 본 발명은 특정 IPFS 데이터에 접근 가능 대상이 모든 IPFS 사용자가 아닌 특정 사용자만 접근할 수 있도록 권한을 부여함으로써, 권한 및 프라이버시 문제를 해당 IPFS에 적용할 수 있는 효과가 있다.In addition, the present invention has an effect that the rights and privacy issues can be applied to the IPFS by granting the right to access the specific IPFS data only to a specific user, not all IPFS users.

또한, 본 발명은 복수의 IPFS에 저장되는 데이터에 대해서 미리 설정된 기간 동안만 해당 IPFS에 저장하고, Pin 기능 관리를 통해 해당 기간이 지나면 해당 데이터를 자동으로 삭제함으로써, 시간에 따른 Pin 기능 관리를 강화하고, 전체 시스템의 운영 효율을 향상시킬 수 있는 효과가 있다.In addition, according to the present invention, data stored in a plurality of IPFS is stored in the corresponding IPFS only for a preset period, and the corresponding data is automatically deleted after the corresponding period through the Pin function management, thereby strengthening the Pin function management according to time. And, there is an effect that can improve the operating efficiency of the entire system.

도 1은 본 발명의 실시예에 따른 IPFS 기반의 문서 관리 시스템의 구성을 나타낸 블록도이다.
도 2 내지 도 3은 본 발명의 실시예에 따른 IPFS 기반의 문서 관리 방법을 나타낸 흐름도이다.
1 is a block diagram showing the configuration of an IPFS-based document management system according to an embodiment of the present invention.
2 to 3 are flowcharts illustrating an IPFS-based document management method according to an embodiment of the present invention.

본 발명에서 사용되는 기술적 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 발명에서 사용되는 기술적 용어는 본 발명에서 특별히 다른 의미로 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 발명에서 사용되는 기술적인 용어가 본 발명의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 발명에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.It should be noted that the technical terms used in the present invention are only used to describe specific embodiments, and are not intended to limit the present invention. In addition, the technical terms used in the present invention should be interpreted as meanings generally understood by those of ordinary skill in the art to which the present invention belongs, unless otherwise defined in the present invention, and excessively comprehensive It should not be construed as a human meaning or in an excessively reduced meaning. In addition, when the technical term used in the present invention is an incorrect technical term that does not accurately express the spirit of the present invention, it should be understood by being replaced with a technical term that can be correctly understood by those skilled in the art. In addition, general terms used in the present invention should be interpreted as defined in advance or according to the context before and after, and should not be interpreted in an excessively reduced meaning.

또한, 본 발명에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함한다. 본 발명에서 "구성된다" 또는 "포함한다" 등의 용어는 발명에 기재된 여러 구성 요소들 또는 여러 단계를 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.Also, the singular expression used in the present invention includes the plural expression unless the context clearly dictates otherwise. In the present invention, terms such as "consisting of" or "comprising" should not be construed as necessarily including all of the various components or various steps described in the invention, and some components or some steps may not be included. It should be construed that it may further include additional components or steps.

또한, 본 발명에서 사용되는 제 1, 제 2 등과 같이 서수를 포함하는 용어는 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성 요소는 제 2 구성 요소로 명명될 수 있고, 유사하게 제 2 구성 요소도 제 1 구성 요소로 명명될 수 있다.Also, terms including ordinal numbers such as first, second, etc. used in the present invention may be used to describe the components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, a first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component.

이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, a preferred embodiment according to the present invention will be described in detail with reference to the accompanying drawings, but the same or similar components are given the same reference numerals regardless of the reference numerals, and the redundant description thereof will be omitted.

또한, 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 발명의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 발명의 사상이 제한되는 것으로 해석되어서는 아니 됨을 유의해야 한다.In addition, in the description of the present invention, if it is determined that a detailed description of a related known technology may obscure the gist of the present invention, the detailed description thereof will be omitted. In addition, it should be noted that the accompanying drawings are only for easy understanding of the spirit of the present invention, and should not be construed as limiting the spirit of the present invention by the accompanying drawings.

도 1은 본 발명의 실시예에 따른 IPFS 기반의 문서 관리 시스템(10)의 구성을 나타낸 블록도이다.1 is a block diagram showing the configuration of an IPFS-based document management system 10 according to an embodiment of the present invention.

도 1에 도시한 바와 같이, IPFS 기반의 문서 관리 시스템(10)은 단말(100), 블록체인 서버(200) 및 복수의 IPFS(300)로 구성된다. 도 1에 도시된 문서 관리 시스템(10)의 구성 요소 모두가 필수 구성 요소인 것은 아니며, 도 1에 도시된 구성 요소보다 많은 구성 요소에 의해 문서 관리 시스템(10)이 구현될 수도 있고, 그보다 적은 구성 요소에 의해서도 문서 관리 시스템(10)이 구현될 수도 있다.As shown in FIG. 1 , the IPFS-based document management system 10 includes a terminal 100 , a block chain server 200 , and a plurality of IPFS 300 . Not all components of the document management system 10 shown in FIG. 1 are essential components, and the document management system 10 may be implemented by more components than those shown in FIG. The document management system 10 may also be implemented by the components.

상기 단말(100)은 스마트폰(Smart Phone), 휴대 단말기(Portable Terminal), 이동 단말기(Mobile Terminal), 폴더블 단말기(Foldable Terminal), 개인 정보 단말기(Personal Digital Assistant: PDA), PMP(Portable Multimedia Player) 단말기, 텔레매틱스(Telematics) 단말기, 내비게이션(Navigation) 단말기, 개인용 컴퓨터(Personal Computer), 노트북 컴퓨터, 슬레이트 PC(Slate PC), 태블릿 PC(Tablet PC), 울트라북(ultrabook), 웨어러블 디바이스(Wearable Device, 예를 들어, 워치형 단말기(Smartwatch), 글래스형 단말기(Smart Glass), HMD(Head Mounted Display) 등 포함), 와이브로(Wibro) 단말기, IPTV(Internet Protocol Television) 단말기, 스마트 TV, 디지털방송용 단말기, AVN(Audio Video Navigation) 단말기, A/V(Audio/Video) 시스템, 플렉시블 단말기(Flexible Terminal), 디지털 사이니지 장치 등과 같은 다양한 단말기에 적용될 수 있다.The terminal 100 includes a smart phone, a portable terminal, a mobile terminal, a foldable terminal, a personal digital assistant (PDA), and a portable multimedia (PMP). Player) terminal, telematics terminal, navigation terminal, personal computer, notebook computer, slate PC, tablet PC, ultrabook, wearable device Device, for example, watch-type terminal (Smartwatch), glass-type terminal (Smart Glass), HMD (Head Mounted Display), etc.), Wibro (Wibro) terminal, IPTV (Internet Protocol Television) terminal, smart TV, for digital broadcasting It can be applied to various terminals such as a terminal, an audio video navigation (AVN) terminal, an audio/video (A/V) system, a flexible terminal, and a digital signage device.

상기 블록체인 서버(200) 및 상기 복수의 IPFS(300)는 웹 서버, 데이터베이스 서버, 프록시 서버 등의 형태로 구현될 수 있다. 또한, 상기 블록체인 서버(200) 및 상기 복수의 IPFS(300)에는 네트워크 부하 분산 메커니즘, 내지 해당 상기 클라이언트 서버(200), 해당 블록체인 서버(200) 및 해당 복수의 IPFS(300)가 인터넷 또는 다른 네트워크상에서 동작할 수 있도록 하는 다양한 소프트웨어 중 하나 이상이 설치될 수 있으며, 이를 통해 컴퓨터화된 시스템으로 구현될 수 있다. 또한, 네트워크는 http 네트워크일 수 있으며, 전용 회선(private line), 인트라넷 또는 임의의 다른 네트워크일 수 있다. 나아가, 상기 단말(100), 상기 블록체인 서버(200) 및 상기 복수의 IPFS(300) 간의 연결은 데이터가 임의의 해커 또는 다른 제3자에 의한 공격을 받지 않도록 보안 네트워크로 연결될 수 있다. 또한, 상기 블록체인 서버(200) 및 상기 복수의 IPFS(300)는 복수의 데이터베이스 서버를 포함할 수 있으며, 이러한 데이터베이스 서버가 분산 데이터베이스 서버 아키텍처를 비롯한 임의의 유형의 네트워크 연결을 통해 상기 블록체인 서버(200) 및 상기 복수의 IPFS(300)와 별도로 연결되는 방식으로 구현될 수 있다.The block chain server 200 and the plurality of IPFS 300 may be implemented in the form of a web server, a database server, a proxy server, and the like. In addition, in the block chain server 200 and the plurality of IPFS 300, a network load balancing mechanism, or the corresponding client server 200, the corresponding block chain server 200, and the plurality of IPFS 300 are provided on the Internet or One or more of a variety of software that enables operation on different networks may be installed, which may then be implemented as a computerized system. Also, the network may be an http network, and may be a private line, an intranet, or any other network. Furthermore, the connection between the terminal 100, the block chain server 200, and the plurality of IPFS 300 may be connected to a secure network so that data is not attacked by any hacker or other third party. In addition, the block chain server 200 and the plurality of IPFS 300 may include a plurality of database servers, and these database servers are connected to the block chain server through any type of network connection including a distributed database server architecture. (200) and the plurality of IPFS (300) may be implemented in a way that is separately connected.

상기 단말(100), 상기 블록체인 서버(200) 및 상기 복수의 IPFS(300) 각각은 다른 단말들과의 통신 기능을 수행하기 위한 통신부(미도시), 다양한 정보 및 프로그램(또는 애플리케이션)을 저장하기 위한 저장부(미도시), 다양한 정보 및 프로그램 실행 결과를 표시하기 위한 표시부(미도시), 상기 다양한 정보 및 프로그램 실행 결과에 대응하는 음성 정보를 출력하기 위한 음성 출력부(미도시), 각 단말의 다양한 구성 요소 및 기능을 제어하기 위한 제어부(미도시) 등을 포함할 수 있다.Each of the terminal 100, the block chain server 200 and the plurality of IPFS 300 stores a communication unit (not shown) for performing a communication function with other terminals, various information and programs (or applications) a storage unit (not shown) for performing the program, a display unit (not shown) for displaying various information and program execution results, an audio output unit (not shown) for outputting voice information corresponding to the various information and program execution results, each It may include a controller (not shown) for controlling various components and functions of the terminal.

상기 단말(100)은 상기 블록체인 서버(200), 상기 복수의 IPFS(300) 등과 통신한다. 이때, 상기 단말(100)은 해당 단말(100)에서 저장 중인 파일(또는 전자 문서)을 해당 파일과 관련한 블록체인 DHT 및 IPFS DHT를 함께 상기 IPFS(300)를 통해 분산 저장하고, 해당 파일과 관련한 부가 정보를 상기 블록체인 서버(200)에 저장하고자 하는 사용자가 소지한 단말일 수 있다.The terminal 100 communicates with the block chain server 200 , the plurality of IPFSs 300 , and the like. At this time, the terminal 100 distributes and stores the file (or electronic document) being stored in the terminal 100 together with the block chain DHT and IPFS DHT related to the file through the IPFS 300, and related to the file. It may be a terminal possessed by a user who wants to store additional information in the block chain server 200 .

또한, 상기 단말(100)은 상기 블록체인 서버(200)와의 연동에 의해, 상기 블록체인 서버(200)에서 제공하는 전용 앱 및/또는 웹 사이트를 통해 파일 업로드 기능, 부가 정보 등의 저장 기능, 해시값 또는 IPFS URI에 대응하는 파일 확인/다운로드 기능 등을 제공받기 위한 일반 사용자로 회원 가입하며, 개인 정보 등을 상기 블록체인 서버(200)에 등록한다. 이때, 상기 개인 정보는 아이디, 이메일 주소, 패스워드(또는 비밀번호), 이름, 성별, 생년월일, 연락처, 주소지(또는 주소정보/거주지역) 등을 포함한다.In addition, the terminal 100, by interworking with the block chain server 200, a file upload function and a storage function such as additional information through a dedicated app and/or website provided by the block chain server 200, Subscribe as a general user to receive a file check/download function corresponding to a hash value or IPFS URI, and register personal information in the block chain server 200 . In this case, the personal information includes ID, email address, password (or password), name, gender, date of birth, contact information, address (or address information/residence area), and the like.

또한, 상기 단말(100)은 해당 단말(100)의 사용자가 가입한 SNS 계정 정보 또는 타사이트 계정 정보를 이용하여 상기 블록체인 서버(200)에 사용자로 회원 가입할 수도 있다. 여기서, 상기 SNS 계정은 페이스북, 트위터, 인스타그램, 카카오 스토리, 네이버 블로그 등과 관련한 정보일 수 있다. 또한, 상기 타사이트 계정은 유튜브, 카카오, 네이버 등과 관련한 정보일 수 있다.In addition, the terminal 100 may sign up as a user to the block chain server 200 using the SNS account information or account information of a third-party site registered by the user of the terminal 100 as a user. Here, the SNS account may be information related to Facebook, Twitter, Instagram, Kakao Story, Naver blog, and the like. In addition, the third-party account may be information related to YouTube, Kakao, Naver, and the like.

또한, 회원 가입 절차 수행 시, 상기 단말(100)은 본인 인증 수단(예를 들어 이동 전화, 신용카드, 아이핀 등 포함)을 통한 인증 기능을 완료해야 상기 블록체인 서버(200)에 대한 회원 가입 절차를 정상적으로 완료할 수 있다.In addition, when performing the membership registration procedure, the terminal 100 must complete the authentication function through a self-authentication means (eg, mobile phone, credit card, i-Pin, etc.) to complete the membership registration procedure for the block chain server 200 can be completed normally.

또한, 회원 가입이 완료된 후, 상기 단말(100)은 상기 블록체인 서버(200)에서 제공하는 서비스를 이용하기 위해서, 상기 블록체인 서버(200)로부터 제공되는 전용 앱(또는 애플리케이션/응용 프로그램/특정 앱)을 해당 단말(100)에 설치한다. 이때, 상기 전용 앱은 파일 업로드 기능, 부가 정보 등의 저장 기능, 해시값 또는 IPFS URI에 대응하는 파일 확인/다운로드 기능 등을 수행하기 위한 앱일 수 있다.In addition, after membership registration is completed, the terminal 100 provides a dedicated app (or application/application program/specific app) is installed on the corresponding terminal 100 . In this case, the dedicated app may be an app for performing a file upload function, a storage function such as additional information, and a file check/download function corresponding to a hash value or IPFS URI.

본 발명의 실시예에서는 상기 단말(100)에서 상기 블록체인 서버(200) 및 상기 복수의 IPFS(300)와의 연동에 의해, 해당 단말(100)에서 저장 중인 파일 등을 업로드(또는 등록)하는 것을 주로 설명하고 있으나, 이에 한정되는 것은 아니며, 상기 단말(100)은 이더리움 서버(미도시) 및 상기 복수의 IPFS(300)와의 연동에 의해, 추후 설명하는 해당 당 단말(100)에서 저장 중인 파일 등의 업로드(또는 등록) 기능 등을 수행할 수도 있다. 이때, 상기 블록체인 서버(200) 대신 이더리움 서버가 사용되는 경우, 상기 단말(100)은 메타마스크(MetaMask)를 통해 상기 이더리움 서버에 접속할 수도 있다.In an embodiment of the present invention, uploading (or registering) a file stored in the terminal 100 by interworking with the block chain server 200 and the plurality of IPFS 300 in the terminal 100 Although mainly described, it is not limited thereto, and the terminal 100 is an Ethereum server (not shown) and a file being stored in the corresponding terminal 100 to be described later by interworking with the plurality of IPFS 300 . It is also possible to perform an upload (or registration) function, etc. In this case, when an Ethereum server is used instead of the block chain server 200, the terminal 100 may access the Ethereum server through a MetaMask.

또한, 상기 단말(100)은 해당 단말(100)의 사용자 입력(또는 사용자 선택/터치/제어)에 따라 상기 단말(100)에 저장된 하나 이상의 파일 중에서 업로드하고자 하는 파일(또는 전자 문서/NFT 콘텐츠)을 선택하고, 해당 단말(100)의 사용자 입력에 따라 해당 파일과 관련한 부가 정보 및 유지 기간 정보를 수신한다. 여기서, 상기 부가 정보는 파일의 저작권자명, 해당 파일의 소유자명, 소속 정보, 현재 날짜 등을 포함한다. 또한, 상기 유지 기간 정보는 업로드하는 파일을 등록 유지(또는 저장)하기 위한 기간으로, 디폴트 값은 무한(또는 제한 없음)일 수 있다.In addition, the terminal 100 may upload a file (or electronic document/NFT content) from among one or more files stored in the terminal 100 according to a user input (or user selection/touch/control) of the terminal 100 . and receives additional information and maintenance period information related to the corresponding file according to a user input of the corresponding terminal 100 . Here, the additional information includes the name of the copyright holder of the file, the name of the owner of the file, affiliation information, and the current date. In addition, the maintenance period information is a period for registering and maintaining (or storing) the file to be uploaded, and the default value may be infinite (or no limit).

또한, 상기 단말(100)은 상기 선택된 파일, 상기 수신된 부가 정보, 상기 수신된 유지 기간 정보, 블록 저장 요청 정보, 단말(100)의 식별 정보 등을 블록체인 서버(200)에 전송한다. 여기서, 상기 단말(100)의 식별 정보는 MDN(Mobile Directory Number), 모바일 IP, 모바일 MAC, Sim(subscriber identity module: 가입자 식별 모듈) 카드 고유정보, 시리얼번호 등을 포함한다.In addition, the terminal 100 transmits the selected file, the received additional information, the received maintenance period information, block storage request information, identification information of the terminal 100, and the like to the block chain server 200 . Here, the identification information of the terminal 100 includes a mobile directory number (MDN), mobile IP, mobile MAC, subscriber identity module (Sim) card unique information, serial number, and the like.

본 발명의 실시예에서는, 상기 단말(100)에서 해당 단말(100)에 저장 중인 파일을 상기 블록체인 서버(200)로 전송하는 것을 주로 설명하고 있으나, 이에 한정되는 것은 아니며, 상기 단말(100)은 해당 단말(100)에 저장 중인 하나 이상의 전자 문서 중에서 해당 단말(100)의 사용자 선택에 따른 특정 전자 문서를 상기 블록체인 서버(200)로 전송할 수도 있다. 여기서, 상기 전자 문서는 컴퓨터를 이용하여 자료를 분류, 정리, 선택, 연산하여 처리한 시스템에 의하여 전자적 형태로 작성되어 송신 또는 수신되거나 저장된 정보를 나타낸다.In the embodiment of the present invention, it is mainly described that the terminal 100 transmits the file being stored in the terminal 100 to the block chain server 200, but is not limited thereto, and the terminal 100 may transmit a specific electronic document according to a user selection of the corresponding terminal 100 to the block chain server 200 among one or more electronic documents stored in the corresponding terminal 100 . Here, the electronic document represents information that is created, transmitted, received, or stored in an electronic form by a system that classifies, organizes, selects, calculates and processes data using a computer.

또한, 상기 단말(100)에서 앞서 전송한 파일, 부가 정보 등에 대해서 상기 블록체인 서버(200) 및 상기 복수의 IPFS(300)에서의 등록(또는 저장)이 실패한 경우, 상기 단말(100)은 상기 블록체인 서버(200) 및/또는 상기 IPFS(300)로부터 전송되는 해당 파일, 부가 정보 등의 등록이 실패한 상태임을 나타내는 정보를 수신하고, 상기 수신된 해당 파일, 부가 정보 등의 등록이 실패한 상태임을 나타내는 정보를 표시(또는 출력)한다.In addition, when registration (or storage) in the block chain server 200 and the plurality of IPFS 300 fails with respect to the file and additional information previously transmitted from the terminal 100, the terminal 100 is Receives information indicating that the registration of the corresponding file and additional information transmitted from the block chain server 200 and/or the IPFS 300 has failed, and indicates that the registration of the received corresponding file and additional information has failed. Display (or output) the indicated information.

또한, 상기 단말(100)은 앞서 전송된 파일, 부가 정보, 블록 저장 요청 정보, 단말(100)의 식별 정보 등에 응답하여 상기 블록체인 서버(200)로부터 전송되는 IPFS URI, 해시값 등을 수신한다.In addition, the terminal 100 receives the IPFS URI, hash value, etc. transmitted from the block chain server 200 in response to the previously transmitted file, additional information, block storage request information, identification information of the terminal 100, etc. .

또한, 상기 단말(100)은 상기 수신된 IPFS URI, 해시값 등을 표시(또는 출력)한다.In addition, the terminal 100 displays (or outputs) the received IPFS URI, hash value, and the like.

또한, 상기 단말(100)은 상기 복수의 IPFS(300) 중 어느 하나의 IPFS(300)에 접속하여, 상기 수신된 해시값에 대응하는 암호화된 파일을 다운로드한다.In addition, the terminal 100 accesses any one of the IPFS 300 among the plurality of IPFS 300 and downloads an encrypted file corresponding to the received hash value.

즉, 상기 단말(100)은 상기 수신된 IPFS URI를 근거로 상기 복수의 IPFS(300) 중 어느 하나의 IPFS(300)에 접속한다.That is, the terminal 100 accesses any one IPFS 300 among the plurality of IPFS 300 based on the received IPFS URI.

또한, 상기 단말(100)은 상기 접속된 IPFS(300)와 연동하여, 상기 수신된 해시값을 근거로 해당 단말(100)의 사용자가 해당 해시값과 관련한 암호화된 파일에 대한 소유권자(또는 저작권자)인지 여부를 확인(또는 판단)한다. 이때, 상기 IPFS(300)는 상기 단말(100) 및 상기 블록체인 서버(200)와 연동하여, 상기 블록체인 서버(200)에 저장된 복수의 부가 정보(또는 복수의 암호화된 부가 정보) 중에서 해당 단말(100)(또는 해당 해시값)과 관련한 파일에 대응하는 부가 정보를 이용해서 해당 단말(100)의 사용자가 해당 해시값과 관련한 암호화된 파일에 대한 소유권자(또는 저작권자)인지 여부를 확인(또는 판단)할 수도 있다.In addition, the terminal 100 cooperates with the connected IPFS 300, and based on the received hash value, the user of the terminal 100 is the owner (or copyright holder) of the encrypted file related to the hash value. Check (or judge) whether it is recognized. At this time, the IPFS 300 interworks with the terminal 100 and the block chain server 200, and among a plurality of additional information (or a plurality of encrypted additional information) stored in the block chain server 200, the corresponding terminal Using additional information corresponding to the file related to (100) (or the corresponding hash value), it is checked (or determined) whether the user of the terminal 100 is the owner (or copyright holder) of the encrypted file related to the hash value. )You may.

상기 확인 결과(또는 상기 판단 결과), 해당 단말(100)의 사용자가 해당 해시값과 관련한 암호화된 파일에 대한 소유권자(또는 저작권자)가 아닌 것으로 확인되는 경우, 상기 단말(100)은 상기 IPFS(300)로부터 전송되는 해당 해시값과 관련한 암호화된 파일에 대한 소유권자(또는 저작권자)가 아님을 나타내는 정보를 수신한다.When it is confirmed that the user of the terminal 100 is not the owner (or copyright holder) of the encrypted file related to the hash value as a result of the confirmation (or the determination result), the terminal 100 returns to the IPFS (300) ) to receive information indicating that you are not the owner (or copyright holder) of the encrypted file related to the hash value transmitted from it.

또한, 상기 단말(100)은 상기 수신된 해당 해시값과 관련한 암호화된 파일에 대한 소유권자가 아님을 나타내는 정보를 표시(또는 출력)한다.In addition, the terminal 100 displays (or outputs) information indicating that it is not the owner of the encrypted file related to the received hash value.

상기 확인 결과(또는 상기 판단 결과), 해당 단말(100)의 사용자가 해당 해시값과 관련한 암호화된 파일에 대한 소유권자인 것으로 확인되는 경우, 상기 단말(100)은 상기 IPFS(300)로부터 전송되는 해당 해시값과 관련한 암호화된 파일을 수신(또는 다운로드)한다.When it is confirmed that the user of the terminal 100 is the owner of the encrypted file related to the hash value as a result of the confirmation (or the determination result), the terminal 100 transmits the corresponding hash value from the IPFS 300 . Receive (or download) an encrypted file associated with a hash value.

또한, 상기 단말(100)은 상기 다운로드된 암호화된 파일을 미리 설정된 복호화키(예를 들어 공개키, 개인키 등 포함)를 이용해서 복호화한다.Also, the terminal 100 decrypts the downloaded encrypted file using a preset decryption key (eg, including a public key and a private key).

또한, 상기 단말(100)은 상기 복호화된 파일을 표시(또는 출력)한다.In addition, the terminal 100 displays (or outputs) the decrypted file.

이때, 상기 단말(100)은 해당 암호화된 파일을 다운로드한 후, 미리 설정된 시간(예를 들어 24시간) 이내에 해당 다운로드된 암호화된 파일에 대해서 복호 기능을 수행하지 않는 경우, 전용 앱 등을 통해서 해당 다운로드된 암호화된 파일을 자동으로 삭제할 수 있다.At this time, if the terminal 100 does not perform a decryption function on the downloaded encrypted file within a preset time (eg, 24 hours) after downloading the encrypted file, the corresponding encrypted file is used through a dedicated app. You can automatically delete downloaded encrypted files.

또한, 상기 단말(100)에서 상기 다운로드된 암호화된 파일을 복호화한 후, 복호된 파일에 대해서도 미리 설정된 다른 시간(예를 들어 120 시간) 이내에 추가 업데이트 기능 또는 다른 저장소(미도시)로의 저장 기능 등을 수행하지 않는 경우, 상기 단말(100)은 전용 앱 등을 통해서 상기 복호된 파일 및/또는 상기 다운로드된 암호화된 파일을 자동으로 삭제할 수 있다.In addition, after decrypting the downloaded encrypted file in the terminal 100, an additional update function or a storage function to another storage (not shown) within another preset time (for example, 120 hours) for the decrypted file, etc. is not performed, the terminal 100 may automatically delete the decrypted file and/or the downloaded encrypted file through a dedicated app or the like.

또한, 상기 단말(100)에서 상기 다운로드된 암호화된 파일을 미리 설정된 횟수 이상으로 복호화하는 경우, 상기 단말(100)은 전용 앱 등을 통해서 해당 다운로드된 암호화된 파일을 자동으로 삭제할 수 있다.In addition, when the terminal 100 decrypts the downloaded encrypted file more than a preset number of times, the terminal 100 may automatically delete the downloaded encrypted file through a dedicated app or the like.

또한, 상기 복수의 IPFS(300)에 저장된 상기 유지 기간 정보가 적용된 파일에 대해서 유지 기간(또는 저장 기간)이 지나서 해당 복수의 IPFS(300)에서 각각 저장된 파일(또는 암호화된 파일)을 삭제 처리한 경우, 상기 단말(100)은 상기 IPFS(300)(또는 상기 블록체인 서버(200))로부터 전송되는 앞서 유지 기간이 설정되어 해당 복수의 IPFS(300)에 업로드한 파일이 삭제된 상태임을 나타내는 정보를 수신한다.In addition, the file (or encrypted file) stored in the plurality of IPFS 300 is deleted after the maintenance period (or storage period) has passed for the files to which the maintenance period information is applied, stored in the plurality of IPFS 300 . In this case, the terminal 100 transmits information from the IPFS 300 (or the block chain server 200) indicating that the file uploaded to the plurality of IPFS 300 has been deleted since the maintenance period has been previously set. receive

또한, 상기 단말(100)은 상기 수신된 업로드한 파일이 삭제된 상태임을 나타내는 정보를 표시(또는 출력)한다.In addition, the terminal 100 displays (or outputs) information indicating that the received uploaded file is in a deleted state.

본 발명의 실시예에서는 상기 단말(100)에서 전용 앱 형태 또는 웹 사이트 형태로 상기 블록체인 서버)에서 제공하는 다양한 기능(예를 들어 파일 업로드 기능, 부가 정보 등의 저장 기능, 해시값 또는 IPFS URI에 대응하는 파일 확인/다운로드 기능 등 포함)을 수행할 수 있다.In an embodiment of the present invention, various functions (eg, file upload function, storage function of additional information, etc., hash value or IPFS URI) provided by the block chain server in the form of a dedicated app or website in the terminal 100 file check/download function, etc.) can be performed.

상기 블록체인 서버(또는 NFT 서버)(200)는 상기 단말(100), 상기 복수의 IPFS(300) 등과 통신한다.The block chain server (or NFT server) 200 communicates with the terminal 100 , the plurality of IPFSs 300 , and the like.

또한, 상기 블록체인 서버(200)는 상기 단말(100) 등의 사용자에 대한 회원 가입 절차 등을 수행한다.In addition, the blockchain server 200 performs a membership registration procedure for a user such as the terminal 100 .

또한, 상기 블록체인 서버(200)는 상기 단말(100) 등의 사용자와 관련한 개인 정보를 등록한다. 이때, 상기 블록체인 서버(200)는 해당 개인 정보 등을 DB 서버(미도시)에 등록(또는 관리)할 수 있다.In addition, the block chain server 200 registers personal information related to the user of the terminal 100 and the like. In this case, the block chain server 200 may register (or manage) the corresponding personal information in a DB server (not shown).

또한, 상기 블록체인 서버(200)는 상기 단말(100) 등의 사용자에 대한 회원 관리 기능을 수행한다.In addition, the block chain server 200 performs a member management function for a user such as the terminal 100 .

또한, 상기 블록체인 서버(200)는 파일 업로드 기능, 부가 정보 등의 저장 기능, 해시값 또는 IPFS URI에 대응하는 파일 확인/다운로드 기능 등을 제공하는 전용 앱 및/또는 웹 사이트를 상기 단말(100) 등에 제공한다.In addition, the block chain server 200 provides a dedicated app and/or website providing a file upload function, a storage function of additional information, etc., a file check/download function corresponding to a hash value or IPFS URI, etc. to the terminal 100 ), etc.

또한, 상기 블록체인 서버(200)는 공지사항, 이벤트 등을 위한 게시판 기능을 제공한다.In addition, the block chain server 200 provides a bulletin board function for announcements, events, and the like.

또한, 상기 블록체인 서버(200)는 상기 단말(100)로부터 전송되는 파일, 부가 정보, 유지 기간 정보, 블록 저장 요청 정보, 단말(100)의 식별 정보 등을 수신한다.In addition, the block chain server 200 receives a file, additional information, maintenance period information, block storage request information, identification information of the terminal 100, etc. transmitted from the terminal 100 .

또한, 상기 블록체인 서버(200)는 상기 수신된 블록 저장 요청 정보를 근거로 상기 수신된 부가 정보를 블록에 저장한다. 이때, 상기 블록체인 서버(200)는 데이터베이스 서버(미도시)와 연동하여, 상기 수신된 부가 정보를 암호화하여 저장할 수도 있다.In addition, the block chain server 200 stores the received additional information in a block based on the received block storage request information. In this case, the block chain server 200 may work with a database server (not shown) to encrypt and store the received additional information.

즉, 상기 블록체인 서버(200)는 상기 수신된 블록 저장 요청 정보를 근거로 상기 수신된 부가 정보를 블록에 저장한다. 이때, 상기 블록체인 서버(200)는 상기 데이터베이스 서버와 연동하여, 상기 수신된 부가 정보를 암호화하여 저장할 수도 있다. 여기서, 상기 블록체인 서버(200)는 상기 부가 정보에 미리 설정된 합의 알고리즘 방식(예를 들어 POA(Proof of Authority: 권한 증명), POW(Proof of Work: 작업 증명) 등 포함) 등 포함), 스마트 컨트랙트(smart contract) 등을 적용하여, 상기 수신된 부가 정보를 상기 블록에 저장할 수도 있다. 여기서, 상기 POA는 확정된 관리주체가 순서대로 돌아가며 블록을 생성(또는 등록된 계정들이 순차로 블록을 생성)함으로써, 자원의 소모와 블록 생성 소요 시간이 상기 POW에 비하여 적다. 이때, 상기 블록체인 서버(200)는 속도와 기밀성의 유지를 위해서 프라이빗 네트워크로 구성할 수 있다. 또한, 상기 스마트 컨트랙트는 블록체인 위에 올려놓은 약속으로, 특정 조건을 만족하면 특정 행동을 취하라는 코드를 거래에 추가하는 것이다.That is, the block chain server 200 stores the received additional information in a block based on the received block storage request information. In this case, the block chain server 200 may work with the database server to encrypt and store the received additional information. Here, the block chain server 200 includes a consensus algorithm method preset in the additional information (eg, including Proof of Authority (POA), Proof of Work (POW), etc.), smart By applying a contract or the like, the received additional information may be stored in the block. Here, in the POA, as the determined management entity takes turns generating blocks (or registered accounts sequentially generate blocks), resource consumption and block generation time are shorter than those of the POW. At this time, the block chain server 200 may be configured as a private network to maintain speed and confidentiality. In addition, the smart contract is a promise placed on the block chain, and a code to take a specific action when a specific condition is satisfied is added to the transaction.

또한, 상기 블록체인 서버(200)는 해당 부가 정보의 블록 저장에 따른 트랜잭션 처리 결과를 생성한다. 여기서, 상기 트랜잭션 처리 결과(또는 블록 저장 결과)는 블록 해시값, 블록 번호, 수신자 정보(예를 들어 소유자명, 단말(100)의 식별 정보 등 포함), 트랜잭션 해시값 등을 포함한다.In addition, the block chain server 200 generates a transaction processing result according to the block storage of the corresponding additional information. Here, the transaction processing result (or block storage result) includes a block hash value, a block number, recipient information (eg, an owner name, identification information of the terminal 100, etc.), a transaction hash value, and the like.

또한, 상기 블록체인 서버(200)는 상기 수신된 파일과 관련해서 랜덤 키 방식으로 파일 잠금키를 생성한다.In addition, the block chain server 200 generates a file lock key in a random key method in relation to the received file.

또한, 상기 블록체인 서버(200)는 상기 수신된 파일과 관련해서 소유권자의 공개키와 상기 생성된 파일 잠금키를 미리 설정된 암호화 방식(예를 들어 RSA 2048 enc 등 포함)에 적용하여, 소유권자와 관련한 암호 파일 잠금키를 생성한다.In addition, the block chain server 200 applies the public key of the owner and the generated file lock key to a preset encryption method (including, for example, RSA 2048 enc, etc.) in relation to the received file, and relates to the owner. Generates a password file lock key.

또한, 상기 블록체인 서버(200)는 상기 수신된 파일과 관련해서 스마트 컨트랙트(smart contract)에 의해 토큰 아이디를 생성한다.In addition, the blockchain server 200 generates a token ID by a smart contract in relation to the received file.

또한, 상기 블록체인 서버(200)는 상기 복수의 IPFS(300)와 연동하여, IPFS DHT와 블록체인 DHT를 상기 파일과 함께 해당 복수의 IPFS(300)에 등록(또는 저장)한다.In addition, the block chain server 200 interworks with the plurality of IPFS 300 to register (or store) the IPFS DHT and the block chain DHT together with the file in the plurality of IPFS 300 .

즉, 상기 블록체인 서버(200)는 해당 블록체인 서버(200)와 연동하는 복수의 IPFS(300) 중에서 랜덤하게 또는 미리 설정된 방식으로 특정 IPFS(300)를 선택한다. 여기서, 상기 미리 설정된 방식은 상기 복수의 IPFS(300) 중에서 현재 시점에 가동률(또는 운용률)이 가장 낮은 IPFS(300)를 선택하는 방식 등을 포함한다.That is, the block chain server 200 selects a specific IPFS 300 randomly or in a preset manner from among a plurality of IPFS 300 interworking with the corresponding block chain server 200 . Here, the preset method includes a method of selecting the IPFS 300 having the lowest operating rate (or operating rate) at the current time from among the plurality of IPFS 300 .

또한, 상기 블록체인 서버(200)는 상기 선택된 특정 IPFS(300)로 블록체인 정보, 상기 파일, 상기 유지 기간 정보, 파일 등록 요청 정보 등을 전송한다. 여기서, 상기 블록체인 정보는 해당 파일의 저작권자, 소유권자, 토큰 아이디, 파일 잠금키, 체인 정보, TxID, 스마트컨트랙트 정보, 블록 해시값, 블록번호, 트랜잭션 해시값 등을 포함한다.In addition, the block chain server 200 transmits block chain information, the file, the maintenance period information, and file registration request information to the selected specific IPFS 300 . Here, the block chain information includes the copyright holder, owner, token ID, file lock key, chain information, TxID, smart contract information, block hash value, block number, transaction hash value of the file.

또한, 상기 블록체인 서버(200)는 상기 특정 IPFS(300)로부터 전송되는 상기 IPFS URI, 상기 해시값(또는 상기 파일 등과 관련한 해시값) 등을 수신한다.In addition, the block chain server 200 receives the IPFS URI, the hash value (or a hash value related to the file, etc.) transmitted from the specific IPFS 300 .

또한, 상기 블록체인 서버(200)는 상기 수신된 IPFS URI, 해시값 등과 관련해서 스마트 컨트랙트를 통해 NFT(Non-fungible token: 대체불가능토큰)를 민트(또는 발행)한다. 여기서, 상기 블록체인 서버(200)는 해당 파일의 저작권자, 소유권자, 토큰 아이디, 파일 잠금키, 체인 정보, TxID, 스마트컨트랙트 정보, 블록 해시값, 블록번호, 트랜잭션 해시값, IPFS URI 등을 포함해서 상기 스마트 컨트랙트를 통해 상기 NFT를 민트한다.In addition, the blockchain server 200 mints (or issues) a non-fungible token (NFT) through a smart contract in relation to the received IPFS URI, hash value, and the like. Here, the block chain server 200 includes the file's copyright holder, owner, token ID, file lock key, chain information, TxID, smart contract information, block hash value, block number, transaction hash value, IPFS URI, etc. Mint the NFT through the smart contract.

또한, 상기 블록체인 서버(200)는 해당 파일에 대한 IPFS URI, 해시값 등을 상기 단말(100)에 전송한다.In addition, the block chain server 200 transmits the IPFS URI and hash value of the file to the terminal 100 .

또한, 상기 복수의 IPFS(300)에 저장된 상기 유지 기간 정보가 적용된 파일에 대해서 유지 기간(또는 저장 기간)이 지나서 해당 복수의 IPFS(300)에서 각각 저장된 파일(또는 암호화된 파일)을 삭제 처리한 경우, 상기 블록체인 서버(200)는 상기 복수의 IPFS(300)로부터 각각 전송되는 해당 단말(100)에서 업로드한 파일이 삭제된 상태임을 나타내는 정보를 수신한다.In addition, the file (or encrypted file) stored in the plurality of IPFS 300 is deleted after the maintenance period (or storage period) has passed for the files to which the maintenance period information is applied, stored in the plurality of IPFS 300 . In this case, the block chain server 200 receives information indicating that the file uploaded by the terminal 100 transmitted from the plurality of IPFS 300 is in a deleted state.

또한, 상기 블록체인 서버(200)는 상기 수신된 해당 단말(100)에서 업로드한 파일이 삭제된 상태임을 나타내는 정보를 해당 파일과 관련한 상기 단말(100)에 전송한다.In addition, the block chain server 200 transmits information indicating that the received file uploaded by the corresponding terminal 100 is in a deleted state to the terminal 100 related to the corresponding file.

본 발명의 실시예에서 상기 블록체인 서버(200)는 퍼블릭 블록체인 및/또는 프라이빗 블록체인으로 구성할 수 있으며, 주요 특징 구현을 위해서, 프라이빗 이더리움 블록체인 네트워크로 구성할 수 있다.In an embodiment of the present invention, the block chain server 200 may be configured as a public block chain and/or a private block chain, and may be configured as a private Ethereum block chain network to implement key features.

또한, 본 발명의 실시예에서는, 상기 블록체인 서버(200)를 위주로 설명하고 있으나, 이에 한정되는 것은 아니며, 상기 블록체인 서버(200) 대신 이더리움 서버를 통해 해당 블록체인 서버(200)에서 수행하는 기능들을 수행할 수도 있다.In addition, in the embodiment of the present invention, the block chain server 200 is mainly described, but it is not limited thereto. Instead of the block chain server 200 , it is performed in the block chain server 200 through the Ethereum server. functions can also be performed.

상기 IPFS(Inter Planetary File System: 분산형 파일 시스템)(300)는 상기 단말(100), 상기 블록체인 서버(200) 등과 통신한다. 이때, 상기 IPFS(300)는 복수로 구성되며, 상기 복수의 IPFS(300)는 서로 연동하도록 구성한다. 여기서, 상기 IPFS(300)는 냅스터나 토렌트 등의 P2P(peer-to-peer) 방식으로 대용량 파일이나 데이터를 공유하기 위한 프로토콜로서, 분산 파일 시스템에서 데이터를 공유하고 저장하기 위한 네트워크이다.The IPFS (Inter Planetary File System: Distributed File System) 300 communicates with the terminal 100 , the block chain server 200 , and the like. In this case, the IPFS 300 is configured in plurality, and the plurality of IPFS 300 is configured to interwork with each other. Here, the IPFS 300 is a protocol for sharing large files or data in a peer-to-peer (P2P) manner such as Napster or Torrent, and is a network for sharing and storing data in a distributed file system.

또한, 상기 IPFS(300)는 콘텐트-주소(content-address)를 이용해 모든 컴퓨터 기기들(미도시)을 연결하는 글로벌 네임스페이스(global namespace)에서 각각의 파일들을 식별한다.Also, the IPFS 300 identifies each file in a global namespace that connects all computer devices (not shown) using a content-address.

즉, 상기 IPFS(300)는 하나의 비트토렌트 스웜(BitTorrent Swarm)처럼 깃 레포지토리(Git repository) 안의 객체를 교환하는 방식이다.That is, the IPFS 300 is a method of exchanging objects in a Git repository like a single BitTorrent Swarm.

또한, 상기 IPFS(300)는 분산 해시테이블을 이용하며, 자체 인증 네임스페이스(self certifying namespace)와 인센티브 블록 교환(incentivized block exchange) 방식을 결합하며, SPOF(Single Point of Failure: 단일장애점)가 없으므로, 그로 인해 노드 간의 신뢰를 필요로 하지 않는다.In addition, the IPFS 300 uses a distributed hash table, combines a self certifying namespace and an incentive block exchange method, and SPOF (Single Point of Failure) is Therefore, there is no need for trust between nodes as a result.

또한, 상기 IPFS(300)는 데이터의 내용에 따라 고유의 해시값이 다르며, 이 해시값을 이용해서 상기 복수의 IPFS(300)에 분산 저장되어 있는 콘텐츠(또는 파일/서브 파일)를 찾고, 해당 데이터를 잘게 나눠서 빠른 속도로 가져온 두, 다시 하나로 합쳐서 제공할 수 있다. 이때, 해시 테이블은 한 쌍(key, value)으로 저장하는데, 분산화된 많은 노드들이 이 정보를 저장하기 때문에 사용자는 HTTP 방식에 비해 더 빠른 속도로 데이터를 저장하고 가져올 수 있다.In addition, the IPFS 300 has a unique hash value that differs depending on the content of the data, and the content (or file/sub-file) distributed and stored in the plurality of IPFS 300 is found using this hash value, and the corresponding It can be provided by breaking the data into small pieces, fetching them at high speed, and merging them back into one. At this time, the hash table is stored as a pair (key, value), and since many distributed nodes store this information, the user can store and retrieve data at a faster speed than the HTTP method.

또한, 상기 블록체인 서버(200)로부터 선택된 특정 IPFS(300)는 상기 블록체인 서버(200)로부터 전송되는 상기 블록체인 정보, 상기 파일, 상기 유지 기간 정보, 상기 파일 등록 요청 정보 등을 수신한다.In addition, the specific IPFS 300 selected from the block chain server 200 receives the block chain information, the file, the maintenance period information, the file registration request information, etc. transmitted from the block chain server 200 .

또한, 상기 특정 IPFS(300)는 상기 수신된 파일을 근거로 해시값을 생성한다. 이때, 상기 특정 IPFS(300)는 상기 수신된 상기 블록체인 정보, 상기 파일, 상기 유지 기간 정보 등을 근거로 상기 해시값을 생성할 수도 있다.Also, the specific IPFS 300 generates a hash value based on the received file. In this case, the specific IPFS 300 may generate the hash value based on the received block chain information, the file, and the maintenance period information.

또한, 상기 특정 IPFS(300)는 상기 수신된 파일을 미리 설정된 암호화 방식을 이용해서 암호화한다.In addition, the specific IPFS 300 encrypts the received file using a preset encryption method.

또한, 상기 특정 IPFS(300)는 상기 수신된 블록체인 정보, 상기 파일, 상기 유지 기간 정보, 상기 해시값 등을 근거로 블록체인 DHT 및 IPFS DHT를 각각 생성한다.In addition, the specific IPFS 300 generates a block chain DHT and an IPFS DHT based on the received block chain information, the file, the maintenance period information, and the hash value, respectively.

또한, 상기 특정 IPFS(300)는 상기 암호화된 파일, 상기 생성된 블록체인 DHT, 상기 생성된 IPFS DHT 등을 저장한다. 이때, 상기 특정 IPFS(300)는 남은 복수의 IPFS(300)(또는 상기 복수의 IPFS(300) 중에서 상기 특정 IPFS(300)를 제외한 나머지 IPFS(300))와 연동하여, 상기 암호화된 파일, 상기 생성된 블록체인 DHT, 상기 생성된 IPFS DHT 등을 각각 분산 저장(또는 관리)한다.In addition, the specific IPFS 300 stores the encrypted file, the generated block chain DHT, and the generated IPFS DHT. At this time, the specific IPFS 300 is interlocked with the remaining plurality of IPFS 300 (or the remaining IPFS 300 excluding the specific IPFS 300 among the plurality of IPFS 300), the encrypted file, the Distributed storage (or management) of the generated blockchain DHT and the generated IPFS DHT, respectively.

여기서, 상기 특정 IPFS(300) 및 상기 나머지 IPFS(300)는 상기 암호화된 파일, 상기 생성된 IPFS DHT 등을 각각 분산 저장하고, CID(Content Identifier)(또는 CID 값) 변경없이 상기 생성된 블록체인 DHT를 부가 정보 형태로 각각 저장할 수도 있다.Here, the specific IPFS 300 and the remaining IPFS 300 distribute and store the encrypted file, the generated IPFS DHT, etc., respectively, and the generated block chain without changing a Content Identifier (CID) (or CID value) Each DHT may be stored in the form of additional information.

또한, 상기 복수의 IPFS(300)(또는 상기 특정 IPFS(300))는 상기 유지 기간 정보를 해당 파일과 관련한 Pin 정보(예를 들어 시작/기준 날짜, 유지/저장 기간, 만료 날짜 등 포함)에 적용(또는 반영)한다.In addition, the plurality of IPFS 300 (or the specific IPFS 300 ) stores the maintenance period information in Pin information (eg, including start/reference date, maintenance/storage period, expiration date, etc.) related to the file. Apply (or reflect).

또한, 상기 특정 IPFS(300)는 해당 파일(또는 해당 암호화된 파일)이 저장되는 위치와 관련한 IPFS URI(Uniform Resource Identifier), 상기 생성된 해시값(또는 상기 파일 등과 관련한 해시값) 등을 상기 블록체인 서버(200)에 전송한다.In addition, the specific IPFS 300 transmits an IPFS Uniform Resource Identifier (URI) related to a location in which the corresponding file (or the corresponding encrypted file) is stored, the generated hash value (or a hash value related to the file, etc.), etc. in the block It is transmitted to the chain server 200 .

또한, 상기 복수의 IPFS(300) 중 어느 하나의 IPFS(300)는 상기 단말(100과의 접속을 관리하고, 해당 단말(100)에서의 요청에 따라 해시값에 대응하는 암호화된 파일을 상기 단말(100)에 전송한다.In addition, the IPFS 300 of any one of the plurality of IPFS 300 manages the connection with the terminal 100 and transmits an encrypted file corresponding to a hash value according to a request from the terminal 100 to the terminal. (100).

즉, 상기 복수의 IPFS(300) 중 어느 하나의 IPFS(300)는 상기 IPFS URI를 근거로 접속을 시도하는 상기 단말(100)과 연결한다.That is, any one IPFS 300 among the plurality of IPFS 300 connects to the terminal 100 attempting access based on the IPFS URI.

또한, 상기 IPFS(300)는 상기 접속된 단말(100)과 연동하여, 상기 단말(100)에서 보유 중인 해시값을 근거로 해당 단말(100)의 사용자가 해당 해시값과 관련한 암호화된 파일에 대한 소유권자(또는 저작권자)인지 여부를 확인(또는 판단)한다. 이때, 상기 IPFS(300)는 상기 단말(100) 및 상기 블록체인 서버(200)와 연동하여, 상기 블록체인 서버(200)에 저장된 복수의 부가 정보(또는 복수의 암호화된 부가 정보) 중에서 해당 단말(100)(또는 해당 해시값)과 관련한 파일에 대응하는 부가 정보를 이용해서 해당 단말(100)의 사용자가 해당 해시값과 관련한 암호화된 파일에 대한 소유권자(또는 저작권자)인지 여부를 확인(또는 판단)할 수도 있다.In addition, the IPFS 300 interworks with the connected terminal 100, and based on the hash value held in the terminal 100, the user of the terminal 100 provides information about the encrypted file related to the hash value. Check (or judge) whether you are the owner (or copyright holder). At this time, the IPFS 300 interworks with the terminal 100 and the block chain server 200, and among a plurality of additional information (or a plurality of encrypted additional information) stored in the block chain server 200, the corresponding terminal Using additional information corresponding to the file related to (100) (or the corresponding hash value), it is checked (or determined) whether the user of the terminal 100 is the owner (or copyright holder) of the encrypted file related to the hash value. )You may.

상기 확인 결과(또는 상기 판단 결과), 해당 단말(100)의 사용자가 해당 해시값과 관련한 암호화된 파일에 대한 소유권자(또는 저작권자)가 아닌 것으로 확인되는 경우, 상기 IPFS(300)는 해당 해시값과 관련한 암호화된 파일에 대한 소유권자(또는 저작권자)가 아님을 나타내는 정보를 상기 단말(100)에 전송한다.When it is confirmed that the user of the terminal 100 is not the owner (or copyright holder) of the encrypted file related to the hash value as a result of the confirmation (or the determination result), the IPFS 300 performs the hash value and Information indicating that the related encrypted file is not the owner (or copyright holder) is transmitted to the terminal 100 .

또한, 상기 확인 결과(또는 상기 판단 결과), 해당 단말(100)의 사용자가 해당 해시값과 관련한 암호화된 파일에 대한 소유권자인 것으로 확인되는 경우, 상기 IPFS(300)는 해당 해시값과 관련한 암호화된 파일을 상기 단말(100)에 전송(또는 제공)한다.In addition, when it is confirmed that the user of the terminal 100 is the owner of the encrypted file related to the hash value according to the verification result (or the determination result), the IPFS 300 performs the encryption related to the hash value. The file is transmitted (or provided) to the terminal 100 .

또한, 상기 복수의 IPFS(300) 각각은 유지 기간 정보를 포함하는 해당 파일과 관련한 Pin 정보를 근거로 해당 파일(또는 암호화된 파일)의 유지 기간(또는 저장 기간)이 지난 상태인지 여부를 판단(또는 확인)한다.In addition, each of the plurality of IPFS 300 determines whether the maintenance period (or storage period) of the corresponding file (or encrypted file) has passed based on the Pin information related to the corresponding file including the maintenance period information ( or check).

이때, 상기 복수의 IPFS(300) 중에서 해당 파일과 관련해서 마스터 기능을 수행했던 상기 특정 IPFS(300)에서 전체적인 시스템의 부하를 줄이기 위해서, 유지 기간 정보를 포함하는 해당 파일과 관련한 Pin 정보를 근거로 해당 파일(또는 암호화된 파일)의 유지 기간이 지난 상태인지 여부를 1차로 판단(또는 확인)할 수도 있다.At this time, in order to reduce the overall system load in the specific IPFS 300 , which performed the master function in relation to the file among the plurality of IPFS 300 , based on the Pin information related to the file including the maintenance period information, It may be first determined (or checked) whether the maintenance period of the corresponding file (or encrypted file) has passed.

상기 판단 결과(또는 상기 확인 결과), 해당 파일(또는 암호화된 파일)의 유지 기간이 남아 있는 경우(또는 지나지 않은 경우), 상기 복수의 IPFS(300) 각각은 해당 파일과 관련한 Pin 정보를 근거로 해당 파일(또는 암호화된 파일)의 유지 기간이 지난 상태인지 여부를 판단하는 과정을 반복 수행한다.As a result of the determination (or the confirmation result), when the maintenance period of the corresponding file (or encrypted file) remains (or does not pass), each of the plurality of IPFS 300 is based on Pin information related to the corresponding file. The process of determining whether the maintenance period of the corresponding file (or encrypted file) has passed is repeatedly performed.

또한, 상기 판단 결과(또는 상기 확인 결과), 해당 파일(또는 암호화된 파일)의 유지 기간이 남아 있지 않은 경우(또는 지난 경우), 상기 복수의 IPFS(300) 각각은 해당 암호화된 파일(또는 저장 중인 파일/저장 중인 암호화된 파일)을 미리 설정된 저장소(미도시)에 백업 저장하고, 각각의 IPFS(300)에서 저장 중인 해당 암호화된 파일을 삭제(unpinning)한다. 이때, 상기 저장소에 백업 저장 시, 동일한 파일명이 이미 존재하는 경우, 다른 IPFS(300)는 해당 저장소로의 해당 암호화된 파일의 중복 저장을 생략(또는 패스)할 수 있다.In addition, when the determination result (or the confirmation result), when the maintenance period of the corresponding file (or encrypted file) does not remain (or has passed), each of the plurality of IPFS 300 is the corresponding encrypted file (or stored The current file/encrypted file being stored) is backed up and stored in a preset storage (not shown), and the corresponding encrypted file being stored in each IPFS 300 is deleted (unpinning). In this case, when the backup is stored in the storage, if the same file name already exists, the other IPFS 300 may omit (or pass) redundant storage of the encrypted file to the storage.

이때, 상기 판단 결과(또는 상기 확인 결과), 해당 파일(또는 암호화된 파일)의 유지 기간이 남아 있지 않은 경우(또는 지난 경우), 상기 특정 IPFS(300)는 해당 특정 IPFS(300)에 저장 중인 해당 암호화된 파일을 상기 저장소에 백업 저장하고, 상기 특정 IPFS(300)에 저장 중인 해당 암호화된 파일을 삭제한다. 또한, 상기 특정 IPFS(300)는 상기 복수의 IPFS(300) 중 해당 특정 IPFS(300)를 제외한 나머지 IPFS(300)로 해당 암호화된 파일의 삭제를 요청하는 정보를 각각 전송한다. 이에 따라, 상기 나머지 IPFS(300) 각각은 상기 특정 IPFS(300)에서의 삭제 요청에 따라 각각의 IPFS(300)에서 저장 중인 해당 암호화된 파일을 삭제 처리하고, 삭제 처리에 대한 응답을 상기 특정 IPFS(300)에 전송한다.At this time, if the determination result (or the confirmation result), the maintenance period of the corresponding file (or encrypted file) does not remain (or has passed), the specific IPFS 300 is stored in the specific IPFS 300 The encrypted file is backed up in the storage, and the encrypted file being stored in the specific IPFS 300 is deleted. In addition, the specific IPFS 300 transmits information requesting deletion of the corresponding encrypted file to the remaining IPFS 300 except for the specific IPFS 300 among the plurality of IPFS 300 . Accordingly, each of the remaining IPFS 300 deletes the corresponding encrypted file being stored in each IPFS 300 according to the deletion request from the specific IPFS 300, and sends a response to the deletion process to the specific IPFS. Send to 300.

또한, 상기 IPFS(300)(또는 상기 특정 IPFS(300))는 상기 단말(100)에서 업로드한 파일이 삭제된 상태임을 나타내는 정보를 해당 단말(100)에 직접 전송하거나 또는, 상기 블록체인 서버(200)를 경유하여 해당 단말(100)에 전송한다.In addition, the IPFS 300 (or the specific IPFS 300) directly transmits information indicating that the file uploaded by the terminal 100 is in a deleted state to the terminal 100, or the block chain server ( 200) and transmitted to the corresponding terminal 100.

이와 같이, 단말에서 블록체인 서버에 저장한 전자 문서와 관련한 블록체인 DHT 정보를 IPFS DHT 정보와 함께 복수의 IPFS에 저장할 수 있다.In this way, the block chain DHT information related to the electronic document stored in the block chain server in the terminal can be stored in a plurality of IPFS together with the IPFS DHT information.

또한, 이와 같이, 특정 IPFS 데이터에 접근 가능 대상이 모든 IPFS 사용자가 아닌 특정 사용자만 접근할 수 있도록 권한을 부여할 수 있다.In addition, as described above, it is possible to grant permission so that only a specific user can access specific IPFS data, not all IPFS users.

또한, 이와 같이, 복수의 IPFS에 저장되는 데이터에 대해서 미리 설정된 기간 동안만 해당 IPFS에 저장하고, Pin 기능 관리를 통해 해당 기간이 지나면 해당 데이터를 자동으로 삭제할 수 있다.In addition, as described above, the data stored in the plurality of IPFSs can be stored in the corresponding IPFS only for a preset period, and the corresponding data can be automatically deleted after the corresponding period through the Pin function management.

이하에서는, 본 발명에 따른 IPFS 기반의 문서 관리 방법을 도 1 내지 도 3을 참조하여 상세히 설명한다.Hereinafter, an IPFS-based document management method according to the present invention will be described in detail with reference to FIGS. 1 to 3 .

도 2 내지 도 3은 본 발명의 실시예에 따른 IPFS 기반의 문서 관리 방법을 나타낸 흐름도이다.2 to 3 are flowcharts illustrating an IPFS-based document management method according to an embodiment of the present invention.

먼저, 단말(100)은 해당 단말(100)의 사용자 입력(또는 사용자 선택/터치/제어)에 따라 상기 단말(100)에 저장된 하나 이상의 파일 중에서 업로드하고자 하는 파일(또는 전자 문서/NFT 콘텐츠)을 선택하고, 해당 단말(100)의 사용자 입력에 따라 해당 파일과 관련한 부가 정보 및 유지 기간 정보를 수신한다. 여기서, 상기 부가 정보는 파일의 저작권자명, 해당 파일의 소유자명, 소속 정보, 현재 날짜 등을 포함한다. 또한, 상기 유지 기간 정보는 업로드하는 파일을 등록 유지(또는 저장)하기 위한 기간으로, 디폴트 값은 무한(또는 제한 없음)일 수 있다.First, the terminal 100 selects a file to be uploaded (or electronic document/NFT content) from one or more files stored in the terminal 100 according to a user input (or user selection/touch/control) of the terminal 100 . and receives additional information and maintenance period information related to the corresponding file according to a user input of the corresponding terminal 100 . Here, the additional information includes the name of the copyright holder of the file, the name of the owner of the file, affiliation information, and the current date. In addition, the maintenance period information is a period for registering and maintaining (or storing) the file to be uploaded, and the default value may be infinite (or no limit).

또한, 상기 단말(100)은 상기 선택된 파일, 상기 수신된 부가 정보, 상기 수신된 유지 기간 정보, 블록 저장 요청 정보, 단말(100)의 식별 정보 등을 블록체인 서버(200)에 전송한다. 여기서, 상기 단말(100)의 식별 정보는 MDN, 모바일 IP, 모바일 MAC, Sim(가입자 식별 모듈) 카드 고유정보, 시리얼번호 등을 포함한다.In addition, the terminal 100 transmits the selected file, the received additional information, the received maintenance period information, block storage request information, identification information of the terminal 100, and the like to the block chain server 200 . Here, the identification information of the terminal 100 includes MDN, mobile IP, mobile MAC, Sim (subscriber identification module) card unique information, serial number, and the like.

일 예로, 제 1 단말(100)은 상기 제 1 단말에 표시되는 전용 앱 화면에서 사용자 선택에 따라 상기 제 1 단말에 저장 중인 복수의 파일 중에서 제 11 파일(예를 들어 png 형태의 이미지 파일인 65KBytes의 image0001.png)이 선택된 후, 사용자 입력에 따른 제 11 파일의 제 11 저작권자명(예를 들어 김철수), 제 1 소유자명(예를 들어 홍길동), 제 11 소속 정보(예를 들어 ABCDE 회사), 제 11 현재 날짜(예를 들어 2022년 06월 13일 오후 1시 20분 30초) 등을 포함하는 제 11 부가 정보를 수신하고, 사용자 입력에 따른 제 11 유지 기간 정보(예를 들어 30일)를 수신한다.For example, the first terminal 100 may include an 11th file (eg, 65KBytes, which is an image file in png format) among a plurality of files being stored in the first terminal according to a user selection on the dedicated app screen displayed on the first terminal. image0001.png) is selected, the 11th copyright holder name (eg Kim Chul-soo), the first owner name (eg Hong Gil-dong), and 11th affiliation information (eg ABCDE company) of the 11th file according to the user input , the eleventh additional information including the eleventh current date (for example, June 13, 2022 1:20:30 PM), and the like, and the eleventh maintenance period information according to the user input (for example, 30 days) ) is received.

또한, 상기 제 1 단말에 표시되는 전용 앱 화면의 일측에 표시되는 업로드 메뉴가 선택될 때, 상기 제 1 단말은 상기 선택된 제 11 파일, 상기 수신된 제 11 부가 정보, 상기 수신된 제 11 유지 기간 정보, 제 11 블록 저장 요청 정보, 상기 제 1 단말의 식별 정보 등을 상기 블록체인 서버(200)에 전송한다(S210).In addition, when the upload menu displayed on one side of the dedicated app screen displayed on the first terminal is selected, the first terminal displays the selected eleventh file, the received eleventh additional information, and the received eleventh maintenance period. Information, eleventh block storage request information, identification information of the first terminal, etc. are transmitted to the block chain server 200 (S210).

이후, 상기 블록체인 서버(200)는 상기 단말(100)로부터 전송되는 파일, 부가 정보, 유지 기간 정보, 블록 저장 요청 정보, 단말(100)의 식별 정보 등을 수신한다.Thereafter, the block chain server 200 receives a file, additional information, maintenance period information, block storage request information, identification information of the terminal 100, etc. transmitted from the terminal 100 .

또한, 상기 블록체인 서버(200)는 상기 수신된 블록 저장 요청 정보를 근거로 상기 수신된 부가 정보를 블록에 저장한다. 이때, 상기 블록체인 서버(200)는 데이터베이스 서버(미도시)와 연동하여, 상기 수신된 부가 정보를 암호화하여 저장할 수도 있다.In addition, the block chain server 200 stores the received additional information in a block based on the received block storage request information. In this case, the block chain server 200 may work with a database server (not shown) to encrypt and store the received additional information.

즉, 상기 블록체인 서버(200)는 상기 수신된 블록 저장 요청 정보를 근거로 상기 수신된 부가 정보를 블록에 저장한다. 이때, 상기 블록체인 서버(200)는 상기 데이터베이스 서버와 연동하여, 상기 수신된 부가 정보를 암호화하여 저장할 수도 있다. 여기서, 상기 블록체인 서버(200)는 상기 부가 정보에 미리 설정된 합의 알고리즘 방식(예를 들어 POA, POW 등 포함) 등을 적용하여, 상기 수신된 부가 정보를 상기 블록에 저장할 수도 있다.That is, the block chain server 200 stores the received additional information in a block based on the received block storage request information. In this case, the block chain server 200 may work with the database server to encrypt and store the received additional information. Here, the block chain server 200 may store the received additional information in the block by applying a preset consensus algorithm method (eg, including POA, POW, etc.) to the additional information.

또한, 상기 블록체인 서버(200)는 해당 부가 정보의 블록 저장에 따른 트랜잭션 처리 결과를 생성한다. 여기서, 상기 트랜잭션 처리 결과(또는 블록 저장 결과)는 블록 해시값, 블록 번호, 수신자 정보(예를 들어 소유자명, 단말(100)의 식별 정보 등 포함), 트랜잭션 해시값 등을 포함한다.In addition, the block chain server 200 generates a transaction processing result according to the block storage of the corresponding additional information. Here, the transaction processing result (or block storage result) includes a block hash value, a block number, recipient information (eg, an owner name, identification information of the terminal 100, etc.), a transaction hash value, and the like.

또한, 상기 블록체인 서버(200)는 상기 수신된 파일과 관련해서 랜덤 키 방식으로 파일 잠금키를 생성한다.In addition, the block chain server 200 generates a file lock key in a random key method in relation to the received file.

또한, 상기 블록체인 서버(200)는 상기 수신된 파일과 관련해서 소유권자의 공개키와 상기 생성된 파일 잠금키를 미리 설정된 암호화 방식(예를 들어 RSA 2048 enc 등 포함)에 적용하여, 소유권자와 관련한 암호 파일 잠금키를 생성한다.In addition, the block chain server 200 applies the public key of the owner and the generated file lock key to a preset encryption method (including, for example, RSA 2048 enc, etc.) in relation to the received file, and relates to the owner. Generates a password file lock key.

또한, 상기 블록체인 서버(200)는 상기 수신된 파일과 관련해서 스마트 컨트랙트(smart contract)에 의해 토큰 아이디를 생성한다.In addition, the blockchain server 200 generates a token ID by a smart contract in relation to the received file.

일 예로, 상기 블록체인 서버(200)는 상기 제 1 단말로부터 전송되는 상기 제 11 파일, 상기 제 11 부가 정보, 상기 제 11 유지 기간 정보, 상기 제 11 블록 저장 요청 정보, 상기 제 1 단말의 식별 정보 등을 수신한다.For example, the block chain server 200 includes the eleventh file transmitted from the first terminal, the eleventh additional information, the eleventh maintenance period information, the eleventh block storage request information, and the identification of the first terminal. receive information, etc.

또한, 상기 블록체인 서버(200)는 상기 수신된 제 11 블록 저장 요청 정보를 근거로 상기 수신된 제 11 부가 정보를 암호화하고, 상기 암호화된 제 11 부가 정보를 해당 블록체인 서버(200)의 블록에 저장하고, 상기 제 11 부가 정보의 저장에 따른 제 11 블록 해시값, 제 11 블록 번호(예를 들어 85202), 제 11 수신자 정보, 제 11 트랜잭션 해시값 등을 포함하는 제 11 트랜잭션 처리 결과를 생성한다.In addition, the block chain server 200 encrypts the received eleventh additional information based on the received eleventh block storage request information, and converts the encrypted eleventh additional information into a block of the corresponding block chain server 200 . The eleventh transaction processing result including the eleventh block hash value according to the storage of the eleventh additional information, the eleventh block number (eg 85202), the eleventh recipient information, the eleventh transaction hash value, etc. create

또한, 상기 블록체인 서버(200)는 상기 수신된 제 11 파일과 관련해서 랜덤 키 방식으로 제 11 파일 잠금키(예를 들어 9a8b7c6d5e4f3g2h1i0j1k2l3m4n5o6p)를 생성한다.In addition, the block chain server 200 generates an 11th file lock key (eg, 9a8b7c6d5e4f3g2h1i0j1k2l3m4n5o6p) in a random key manner in relation to the received 11th file.

또한, 상기 블록체인 서버(200)는 상기 수신된 제 11 파일과 관련해서 소유권자의 제 11 공개키와 상기 생성된 제 11 파일 잠금키를 상기 미리 설정된 RSA 2048 enc에 적용하여, 제 11 암호 파일 잠금키(예를 들어 1a2a3b4b5c6c7d8d9e0e1f2f3g4g5h6h)를 생성한다.In addition, the block chain server 200 applies the 11th public key of the owner and the generated 11th file lock key to the preset RSA 2048 enc in relation to the received 11th file to lock the 11th encrypted file Create a key (eg 1a2a3b4b5c6c7d8d9e0e1f2f3g4g5h6h).

또한, 상기 블록체인 서버(200)는 상기 수신된 제 11 파일과 관련해서 스마트 컨트랙트에 의해 제 11 토큰 아이디(예를 들어 123)를 생성한다(S220).In addition, the block chain server 200 generates an 11th token ID (eg, 123) by a smart contract in relation to the received 11th file (S220).

이후, 상기 블록체인 서버(200)는 복수의 IPFS(300)와 연동하여, IPFS DHT와 블록체인 DHT를 상기 파일과 함께 해당 복수의 IPFS(300)에 등록(또는 저장)한다.Thereafter, the block chain server 200 interworks with the plurality of IPFS 300 to register (or store) the IPFS DHT and the block chain DHT together with the file in the plurality of IPFS 300 .

즉, 상기 블록체인 서버(200)는 해당 블록체인 서버(200)와 연동하는 복수의 IPFS(300) 중에서 랜덤하게 또는 미리 설정된 방식으로 특정 IPFS(300)를 선택한다. 여기서, 상기 미리 설정된 방식은 상기 복수의 IPFS(300) 중에서 현재 시점에 가동률(또는 운용률)이 가장 낮은 IPFS(300)를 선택하는 방식 등을 포함한다.That is, the block chain server 200 selects a specific IPFS 300 randomly or in a preset manner from among a plurality of IPFS 300 interworking with the corresponding block chain server 200 . Here, the preset method includes a method of selecting the IPFS 300 having the lowest operating rate (or operating rate) at the current time from among the plurality of IPFS 300 .

또한, 상기 블록체인 서버(200)는 상기 선택된 특정 IPFS(300)로 블록체인 정보, 상기 파일, 상기 유지 기간 정보, 파일 등록 요청 정보 등을 전송한다. 여기서, 상기 블록체인 정보는 해당 파일의 저작권자, 소유권자, 토큰 아이디, 파일 잠금키, 체인 정보, TxID, 스마트컨트랙트 정보, 블록 해시값, 블록번호, 트랜잭션 해시값 등을 포함한다.In addition, the block chain server 200 transmits block chain information, the file, the maintenance period information, and file registration request information to the selected specific IPFS 300 . Here, the block chain information includes the copyright holder, owner, token ID, file lock key, chain information, TxID, smart contract information, block hash value, block number, transaction hash value of the file.

또한, 상기 특정 IPFS(300)는 상기 블록체인 서버(200)로부터 전송되는 상기 블록체인 정보, 상기 파일, 상기 유지 기간 정보, 상기 파일 등록 요청 정보 등을 수신한다.In addition, the specific IPFS 300 receives the block chain information, the file, the maintenance period information, the file registration request information, etc. transmitted from the block chain server 200 .

또한, 상기 특정 IPFS(300)는 상기 수신된 파일을 근거로 해시값을 생성한다. 이때, 상기 특정 IPFS(300)는 상기 수신된 상기 블록체인 정보, 상기 파일, 상기 유지 기간 정보 등을 근거로 상기 해시값을 생성할 수도 있다.Also, the specific IPFS 300 generates a hash value based on the received file. In this case, the specific IPFS 300 may generate the hash value based on the received block chain information, the file, and the maintenance period information.

또한, 상기 특정 IPFS(300)는 상기 수신된 파일을 미리 설정된 암호화 방식을 이용해서 암호화한다.In addition, the specific IPFS 300 encrypts the received file using a preset encryption method.

또한, 상기 특정 IPFS(300)는 상기 수신된 블록체인 정보, 상기 파일, 상기 유지 기간 정보, 상기 해시값 등을 근거로 블록체인 DHT 및 IPFS DHT를 각각 생성한다.In addition, the specific IPFS 300 generates a block chain DHT and an IPFS DHT based on the received block chain information, the file, the maintenance period information, and the hash value, respectively.

또한, 상기 특정 IPFS(300)는 상기 암호화된 파일, 상기 생성된 블록체인 DHT, 상기 생성된 IPFS DHT 등을 저장한다. 이때, 상기 특정 IPFS(300)는 남은 복수의 IPFS(300)(또는 상기 복수의 IPFS(300) 중에서 상기 특정 IPFS(300)를 제외한 나머지 IPFS(300))와 연동하여, 상기 암호화된 파일, 상기 생성된 블록체인 DHT, 상기 생성된 IPFS DHT 등을 각각 분산 저장(또는 관리)한다.In addition, the specific IPFS 300 stores the encrypted file, the generated block chain DHT, and the generated IPFS DHT. At this time, the specific IPFS 300 is interlocked with the remaining plurality of IPFS 300 (or the remaining IPFS 300 excluding the specific IPFS 300 among the plurality of IPFS 300), the encrypted file, the Distributed storage (or management) of the generated blockchain DHT and the generated IPFS DHT, respectively.

여기서, 상기 특정 IPFS(300) 및 상기 나머지 IPFS(300)는 상기 암호화된 파일, 상기 생성된 IPFS DHT 등을 각각 분산 저장하고, CID 변경없이 상기 생성된 블록체인 DHT를 부가 정보 형태로 각각 저장할 수도 있다.Here, the specific IPFS 300 and the rest of the IPFS 300 may distribute and store the encrypted file, the generated IPFS DHT, and the like, respectively, and store the generated block chain DHT in the form of additional information without changing the CID. have.

또한, 상기 복수의 IPFS(300)(또는 상기 특정 IPFS(300))는 상기 유지 기간 정보를 해당 파일과 관련한 Pin 정보(예를 들어 시작/기준 날짜, 유지/저장 기간, 만료 날짜 등 포함)에 적용(또는 반영)한다.In addition, the plurality of IPFS 300 (or the specific IPFS 300 ) stores the maintenance period information in Pin information (eg, including start/reference date, maintenance/storage period, expiration date, etc.) related to the file. Apply (or reflect).

또한, 상기 특정 IPFS(300)는 IPFS URI(Uniform Resource Identifier), 상기 생성된 해시값(또는 상기 파일 등과 관련한 해시값) 등을 상기 블록체인 서버(200)에 전송한다.In addition, the specific IPFS 300 transmits an IPFS URI (Uniform Resource Identifier), the generated hash value (or a hash value related to the file, etc.) to the block chain server 200 .

일 예로, 상기 블록체인 서버(200)는 상기 복수의 IPFS(300) 중에서 제 1 IPFS(300)를 랜덤하게 선택하고, 상기 선택된 제 1 IPFS로 제 11 블록체인 정보(예를 들어 상기 제 11 파일의 제 11 저작권자, 제 1 소유권자, 제 11 토큰 아이디, 제 11 파일 잠금키, 제 11 체인 정보, 제 11 TxID, 제 11 스마트컨트랙트 정보, 제 11 블록 해시값, 제 11 블록번호, 제 11 트랜잭션 해시값 등 포함), 상기 제 11 파일, 상기 제 11 유지 기간 정보, 제 11 파일 등록 요청 정보 등을 전송한다.For example, the block chain server 200 randomly selects a first IPFS 300 from among the plurality of IPFS 300, and uses the selected first IPFS to use the 11th block chain information (eg, the 11th file). 11th copyright holder, 1st owner, 11th token ID, 11th file lock key, 11th chain information, 11th TxID, 11th smart contract information, 11th block hash value, 11th block number, 11th transaction hash value, etc.), the eleventh file, the eleventh maintenance period information, eleventh file registration request information, and the like are transmitted.

또한, 상기 제 1 IPFS는 상기 블록체인 서버(200)로부터 전송되는 상기 제 11 블록체인 정보, 상기 제 11 파일, 상기 제 11 유지 기간 정보, 제 11 파일 등록 요청 정보 등을 수신한다.In addition, the first IPFS receives the eleventh block chain information, the eleventh file, the eleventh maintenance period information, the eleventh file registration request information, etc. transmitted from the block chain server 200 .

또한, 상기 제 1 IPFS는 상기 수신된 제 11 파일을 근거로 제 11 해시값을 생성한다.Also, the first IPFS generates an eleventh hash value based on the received eleventh file.

또한, 상기 제 1 IPFS는 상기 수신된 제 11 파일을 미리 설정된 RSA 암호화 방식을 통해 암호화한다.In addition, the first IPFS encrypts the received eleventh file through a preset RSA encryption method.

또한, 상기 제 1 IPFS는 상기 수신된 제 11 블록체인 정보, 상기 제 11 파일, 상기 제 11 유지 기간 정보, 상기 제 11 해시값 등을 근거로 제 11 블록체인 DHT 및 제 11 IPFS DHT를 각각 생성한다.In addition, the first IPFS generates an 11th blockchain DHT and an 11th IPFS DHT based on the received 11th block chain information, the 11th file, the 11th maintenance period information, and the 11th hash value, respectively. do.

또한, 상기 제 1 IPFS는 상기 복수의 IPFS 중에서 상기 제 1 IPFS를 제외한 나머지 제 2 IPFS(300) 내지 제 20 IPFS(300)와 연동하여, 상기 암호화된 제 11 파일, 상기 생성된 제 11 블록체인 DHT 및 상기 생성된 제 11 IPFS DHT를 함께 각각 분산 저장한다.In addition, the first IPFS is linked with the second IPFS 300 to the 20th IPFS 300 other than the first IPFS among the plurality of IPFS, and the encrypted eleventh file and the eleventh block chain are generated. DHT and the generated 11th IPFS DHT are distributed and stored together, respectively.

또한, 상기 제 1 IPFS 내지 상기 제 20 IPFS는 상기 저장되는 암호화된 제 11 파일 등에 대해서, 해당 제 11 파일과 관련한 제 11 Pin 정보(예를 들어 기준 날짜 2022년 06월 13일, 유지 기간 30일, 만료 날짜 2022년 07월 12일 등 포함)에 상기 제 11 유지 기간 정보(예를 들어 30일)를 각각 적용한다.In addition, the first IPFS to the 20th IPFS include, for the stored encrypted 11th file, 11th Pin information related to the 11th file (eg, reference date June 13, 2022, maintenance period of 30 days) , the 11th maintenance period information (for example, 30 days) is applied to the expiration date of July 12, 2022, etc.).

또한, 상기 제 1 IPFS는 제 11 IPFS URI를 생성하고, 상기 생성된 제 11 IPFS URI, 상기 생성된 제 11 해시값 등을 상기 블록체인 서버(200)에 전송한다(S230).In addition, the first IPFS generates an 11th IPFS URI, and transmits the generated 11th IPFS URI and the generated 11th hash value to the block chain server 200 (S230).

이후, 상기 블록체인 서버(200)는 상기 특정 IPFS(300)로부터 전송되는 상기 IPFS URI, 상기 해시값(또는 상기 파일 등과 관련한 해시값) 등을 수신한다.Thereafter, the block chain server 200 receives the IPFS URI, the hash value (or a hash value related to the file, etc.) transmitted from the specific IPFS 300 .

또한, 상기 블록체인 서버(200)는 상기 수신된 IPFS URI, 해시값 등과 관련해서 스마트 컨트랙트를 통해 NFT(Non-fungible token: 대체불가능토큰)를 민트(또는 발행)한다. 여기서, 상기 블록체인 서버(200)는 해당 파일의 저작권자, 소유권자, 토큰 아이디, 파일 잠금키, 체인 정보, TxID, 스마트컨트랙트 정보, 블록 해시값, 블록번호, 트랜잭션 해시값, IPFS URI 등을 포함해서 상기 스마트 컨트랙트를 통해 상기 NFT를 민트한다.In addition, the blockchain server 200 mints (or issues) a non-fungible token (NFT) through a smart contract in relation to the received IPFS URI, hash value, and the like. Here, the block chain server 200 includes the file's copyright holder, owner, token ID, file lock key, chain information, TxID, smart contract information, block hash value, block number, transaction hash value, IPFS URI, etc. Mint the NFT through the smart contract.

일 예로, 상기 블록체인 서버(200)는 상기 제 1 IPFS로부터 전송되는 상기 제 11 IPFS URI, 상기 제 11 해시값 등을 수신한다.For example, the block chain server 200 receives the 11th IPFS URI, the 11th hash value, etc. transmitted from the first IPFS.

또한, 상기 블록체인 서버(200)는 상기 제 11 파일과 관련해서, 제 11 저작권자, 제 1 소유권자, 제 11 토큰 아이디, 제 11 파일 잠금키, 제 11 체인 정보, 제 11 TxID, 제 11 스마트컨트랙트 정보, 제 11 블록 해시값, 제 11 블록번호, 제 11 트랜잭션 해시값, 제 11 IPFS URI, 제 11 해시값 등을 포함해서 상기 스마트 컨트랙트를 통해 상기 NFT를 민트한다(S240).In addition, in relation to the 11th file, the block chain server 200 is an 11th copyright holder, a first owner, an 11th token ID, an 11th file lock key, an 11th chain information, an 11th TxID, an 11th smart contract The NFT is minted through the smart contract including information, the 11th block hash value, the 11th block number, the 11th transaction hash value, the 11th IPFS URI, and the 11th hash value (S240).

이후, 상기 블록체인 서버(200)는 해당 파일에 대한 IPFS URI, 해시값 등을 상기 단말(100)에 전송한다.Thereafter, the block chain server 200 transmits the IPFS URI and hash value of the file to the terminal 100 .

일 예로, 상기 블록체인 서버(200)는 상기 제 11 IPFS URI, 상기 제 11 해시값 등을 상기 제 1 단말에 전송한다(S250).For example, the block chain server 200 transmits the 11th IPFS URI, the 11th hash value, and the like to the first terminal (S250).

이후, 상기 단말(100)은 앞서 전송된 파일, 부가 정보, 블록 저장 요청 정보, 단말(100)의 식별 정보 등에 응답하여 상기 블록체인 서버(200)로부터 전송되는 IPFS URI, 해시값 등을 수신한다.Thereafter, the terminal 100 receives the IPFS URI, hash value, etc. transmitted from the block chain server 200 in response to the previously transmitted file, additional information, block storage request information, identification information of the terminal 100, etc. .

또한, 상기 단말(100)은 상기 수신된 IPFS URI, 해시값 등을 표시(또는 출력)한다.In addition, the terminal 100 displays (or outputs) the received IPFS URI, hash value, and the like.

일 예로, 상기 제 1 단말은 앞서 전송된 상기 제 11 파일, 상기 제 11 부가 정보, 상기 제 11 유지 기간 정보, 제 11 블록 저장 요청 정보 등에 응답하여 상기 블록체인 서버(200)로부터 전송되는 상기 제 11 IPFS URI, 상기 제 11 해시값 등을 수신하고, 상기 수신된 상기 제 11 IPFS URI, 상기 제 11 해시값 등을 표시한다(S260).As an example, the first terminal transmits the eleventh file, the eleventh additional information, the eleventh maintenance period information, the eleventh block storage request information, etc., previously transmitted from the block chain server 200 to the first terminal. Receives the 11th IPFS URI, the eleventh hash value, and the like, and displays the received eleventh IPFS URI, the eleventh hash value, and the like (S260).

이후, 상기 단말(100)은 상기 복수의 IPFS(300) 중 어느 하나의 IPFS(300)에 접속하여, 상기 수신된 해시값에 대응하는 암호화된 파일을 다운로드한다.Thereafter, the terminal 100 accesses any one IPFS 300 among the plurality of IPFS 300 and downloads an encrypted file corresponding to the received hash value.

즉, 상기 단말(100)은 상기 수신된 IPFS URI를 근거로 상기 복수의 IPFS(300) 중 어느 하나의 IPFS(300)에 접속한다.That is, the terminal 100 accesses any one IPFS 300 among the plurality of IPFS 300 based on the received IPFS URI.

또한, 상기 단말(100)은 상기 접속된 IPFS(300)와 연동하여, 상기 수신된 해시값을 근거로 해당 단말(100)의 사용자가 해당 해시값과 관련한 암호화된 파일에 대한 소유권자(또는 저작권자)인지 여부를 확인(또는 판단)한다. 이때, 상기 IPFS(300)는 상기 단말(100) 및 상기 블록체인 서버(200)와 연동하여, 상기 블록체인 서버(200)에 저장된 복수의 부가 정보(또는 복수의 암호화된 부가 정보) 중에서 해당 단말(100)(또는 해당 해시값)과 관련한 파일에 대응하는 부가 정보를 이용해서 해당 단말(100)의 사용자가 해당 해시값과 관련한 암호화된 파일에 대한 소유권자(또는 저작권자)인지 여부를 확인(또는 판단)할 수도 있다.In addition, the terminal 100 cooperates with the connected IPFS 300, and based on the received hash value, the user of the terminal 100 is the owner (or copyright holder) of the encrypted file related to the hash value. Check (or judge) whether it is recognized. At this time, the IPFS 300 interworks with the terminal 100 and the block chain server 200, and among a plurality of additional information (or a plurality of encrypted additional information) stored in the block chain server 200, the corresponding terminal Using additional information corresponding to the file related to (100) (or the corresponding hash value), it is checked (or determined) whether the user of the terminal 100 is the owner (or copyright holder) of the encrypted file related to the hash value. )You may.

상기 확인 결과(또는 상기 판단 결과), 해당 단말(100)의 사용자가 해당 해시값과 관련한 암호화된 파일에 대한 소유권자인 것으로 확인되는 경우, 상기 단말(100)은 상기 IPFS(300)로부터 전송되는 해당 해시값과 관련한 암호화된 파일을 수신(또는 다운로드)한다.When it is confirmed that the user of the terminal 100 is the owner of the encrypted file related to the hash value as a result of the confirmation (or the determination result), the terminal 100 transmits the corresponding hash value from the IPFS 300 . Receive (or download) an encrypted file associated with a hash value.

일 예로, 상기 제 1 단말은 상기 수신된 제 11 IPFS URI를 근거로 상기 복수의 IPFS(300) 중 제 3 IPFS(300)에 접속하고, 상기 제 3 IPFS와 연동하여 상기 제 1 단말의 사용자가 상기 제 11 해시값에 대응하는 제 11 암호화된 파일의 소유권자인지 여부를 확인한다.For example, the first terminal accesses a third IPFS 300 among the plurality of IPFS 300 based on the received 11th IPFS URI, and interworks with the third IPFS so that the user of the first terminal It is checked whether the owner of the eleventh encrypted file corresponding to the eleventh hash value.

상기 확인 결과, 상기 제 1 단말의 사용자가 상기 제 11 해시값에 대응하는 제 11 암호화된 파일의 소유권자로 확인될 때, 상기 제 1 단말은 상기 제 3 IPFS로부터 전송되는 상기 암호화된 제 11 파일을 수신한다(S270).As a result of the confirmation, when the user of the first terminal is identified as the owner of the eleventh encrypted file corresponding to the eleventh hash value, the first terminal receives the eleventh encrypted file transmitted from the third IPFS Receive (S270).

이후, 상기 단말(100)은 상기 다운로드된 암호화된 파일을 미리 설정된 복호화키(예를 들어 공개키, 개인키 등 포함)를 이용해서 복호화한다.Thereafter, the terminal 100 decrypts the downloaded encrypted file using a preset decryption key (eg, including a public key and a private key).

또한, 상기 단말(100)은 상기 복호화된 파일을 표시(또는 출력)한다.In addition, the terminal 100 displays (or outputs) the decrypted file.

일 예로, 상기 제 1 단말은 상기 수신된 암호화된 제 11 파일을 미리 설정된 제 11 개인키를 이용해서 복호화하고, 상기 복호된 제 11 파일을 표시한다(S280).For example, the first terminal decrypts the received encrypted eleventh file using a preset eleventh private key, and displays the decrypted eleventh file (S280).

이후, 상기 복수의 IPFS(300) 각각은 유지 기간 정보를 포함하는 해당 파일과 관련한 Pin 정보를 근거로 해당 파일(또는 암호화된 파일)의 유지 기간(또는 저장 기간)이 지난 상태인지 여부를 판단(또는 확인)한다.Thereafter, each of the plurality of IPFS 300 determines whether the maintenance period (or storage period) of the corresponding file (or encrypted file) has elapsed based on the Pin information related to the corresponding file including the maintenance period information ( or check).

이때, 상기 복수의 IPFS(300) 중에서 해당 파일과 관련해서 마스터 기능을 수행했던 상기 특정 IPFS(300)에서 전체적인 시스템의 부하를 줄이기 위해서, 유지 기간 정보를 포함하는 해당 파일과 관련한 Pin 정보를 근거로 해당 파일(또는 암호화된 파일)의 유지 기간이 지난 상태인지 여부를 1차로 판단(또는 확인)할 수도 있다.At this time, in order to reduce the overall system load in the specific IPFS 300 , which performed the master function in relation to the file among the plurality of IPFS 300 , based on the Pin information related to the file including the maintenance period information, It may be first determined (or checked) whether the maintenance period of the corresponding file (or encrypted file) has passed.

일 예로, 상기 제 1 IPFS 내지 상기 제 20 IPFS 각각은 상기 저장 중인 암호화된 제 11 파일에 대해서 제 11 Pin 정보에 적용된 상기 제 11 유지 기간 정보(예를 들어 30일)를 근거로 해당 제 11 파일이 암호화되어 저장된지 30일이 지난 상태인지 여부를 판단한다(S290).For example, each of the first IPFS to the 20th IPFS is the eleventh file based on the eleventh maintenance period information (for example, 30 days) applied to the eleventh pin information for the encrypted eleventh file being stored. It is determined whether or not 30 days have passed since the encrypted storage (S290).

상기 판단 결과(또는 상기 확인 결과), 해당 파일(또는 암호화된 파일)의 유지 기간이 남아 있는 경우(또는 지나지 않은 경우), 상기 복수의 IPFS(300) 각각은 해당 파일과 관련한 Pin 정보를 근거로 해당 파일(또는 암호화된 파일)의 유지 기간이 지난 상태인지 여부를 판단하는 과정을 반복 수행한다.As a result of the determination (or the confirmation result), when the maintenance period of the corresponding file (or encrypted file) remains (or does not pass), each of the plurality of IPFS 300 is based on Pin information related to the corresponding file. The process of determining whether the maintenance period of the corresponding file (or encrypted file) has passed is repeatedly performed.

일 예로, 상기 판단 결과, 해당 제 11 파일이 암호화되어 저장된지 30일이 지나지 않은 상태일 때, 상기 제 1 IPFS 내지 상기 제 20 IPFS 각각은 상기 저장 중인 암호화된 제 11 파일에 대해서 제 11 Pin 정보에 적용된 상기 제 11 유지 기간 정보(예를 들어 30일)를 근거로 해당 제 11 파일이 암호화되어 저장된지 30일이 지난 상태인지 여부를 판단하는 과정을 반복 수행한다(S300).For example, as a result of the determination, when 30 days have not passed since the eleventh file has been encrypted and stored, each of the first IPFS to the twentieth IPFS provides eleventh pin information for the encrypted eleventh file being stored. Based on the eleventh maintenance period information (for example, 30 days) applied to , the process of determining whether the eleventh file has been encrypted and stored for 30 days or not is repeatedly performed (S300).

또한, 상기 판단 결과(또는 상기 확인 결과), 해당 파일(또는 암호화된 파일)의 유지 기간이 남아 있지 않은 경우(또는 지난 경우), 상기 복수의 IPFS(300) 각각은 해당 암호화된 파일을 미리 설정된 저장소(미도시)에 백업 저장하고, 각각의 IPFS(300)에서 저장 중인 해당 암호화된 파일을 삭제(unpinning)한다. 이때, 상기 저장소에 백업 저장 시, 동일한 파일명이 이미 존재하는 경우, 다른 IPFS(300)는 해당 저장소로의 해당 암호화된 파일의 중복 저장을 생략(또는 패스)할 수 있다.In addition, when the determination result (or the confirmation result), the maintenance period of the corresponding file (or the encrypted file) does not remain (or passes), each of the plurality of IPFS 300 sets the corresponding encrypted file in advance A backup is stored in a storage (not shown), and the corresponding encrypted file being stored in each IPFS 300 is deleted (unpinning). In this case, when the backup is stored in the storage, if the same file name already exists, the other IPFS 300 may omit (or pass) redundant storage of the encrypted file to the storage.

이때, 상기 판단 결과(또는 상기 확인 결과), 해당 파일(또는 암호화된 파일)의 유지 기간이 남아 있지 않은 경우(또는 지난 경우), 상기 특정 IPFS(300)는 해당 특정 IPFS(300)에 저장 중인 해당 암호화된 파일을 상기 저장소에 백업 저장하고, 상기 특정 IPFS(300)에 저장 중인 해당 암호화된 파일을 삭제한다. 또한, 상기 특정 IPFS(300)는 상기 복수의 IPFS(300) 중 해당 특정 IPFS(300)를 제외한 나머지 IPFS(300)로 해당 암호화된 파일의 삭제를 요청하는 정보를 각각 전송한다. 이에 따라, 상기 나머지 IPFS(300) 각각은 상기 특정 IPFS(300)에서의 삭제 요청에 따라 각각의 IPFS(300)에서 저장 중인 해당 암호화된 파일을 삭제 처리하고, 삭제 처리에 대한 응답을 상기 특정 IPFS(300)에 전송한다.At this time, if the determination result (or the confirmation result), the maintenance period of the corresponding file (or encrypted file) does not remain (or has passed), the specific IPFS 300 is stored in the specific IPFS 300 The encrypted file is backed up in the storage, and the encrypted file being stored in the specific IPFS 300 is deleted. In addition, the specific IPFS 300 transmits information requesting deletion of the corresponding encrypted file to the remaining IPFS 300 except for the specific IPFS 300 among the plurality of IPFS 300 . Accordingly, each of the remaining IPFS 300 deletes the corresponding encrypted file being stored in each IPFS 300 according to the deletion request from the specific IPFS 300, and sends a response to the deletion process to the specific IPFS. Send to 300.

또한, 상기 IPFS(300)(또는 상기 특정 IPFS(300))는 상기 단말(100)에서 업로드한 파일이 삭제된 상태임을 나타내는 정보를 해당 단말(100)에 직접 전송하거나 또는, 상기 블록체인 서버(200)를 경유하여 해당 단말(100)에 전송한다.In addition, the IPFS 300 (or the specific IPFS 300) directly transmits information indicating that the file uploaded by the terminal 100 is in a deleted state to the terminal 100, or the block chain server ( 200) and transmitted to the corresponding terminal 100.

또한, 상기 단말(100)은 상기 IPFS(300)(또는 상기 블록체인 서버(200))로부터 전송되는 앞서 유지 기간이 설정되어 해당 복수의 IPFS(300)에 업로드한 파일이 삭제된 상태임을 나타내는 정보를 수신하고, 상기 수신된 업로드한 파일이 삭제된 상태임을 나타내는 정보를 표시(또는 출력)한다.In addition, the terminal 100 transmits information from the IPFS 300 (or the block chain server 200) indicating that the file uploaded to the plurality of IPFS 300 has been deleted since the maintenance period has been previously set. , and displays (or outputs) information indicating that the received uploaded file is in a deleted state.

일 예로, 상기 판단 결과, 해당 제 11 파일이 암호화되어 저장된지 30일이 지난 상태일 때, 상기 제 1 IPFS 내지 상기 제 20 IPFS 각각은 상기 저장 중인 암호화된 제 11 파일을 상기 미리 설정된 저장소에 백업 저장한 후, 해당 암호화된 제 11 파일을 각각 삭제 처리한다.For example, as a result of the determination, when 30 days have passed since the eleventh file has been encrypted and stored, each of the first IPFS to the twentieth IPFS backs up the stored encrypted eleventh file to the preset storage. After saving, the respective encrypted 11th files are deleted.

또한, 상기 제 1 IPFS는 상기 저장 중인 암호화된 제 11 파일이 삭제된 상태임을 나타내는 정보를 상기 블록체인 서버(200)를 경유하여 상기 제 1 단말에 전송한다.In addition, the first IPFS transmits information indicating that the stored encrypted eleventh file has been deleted to the first terminal via the block chain server 200 .

또한, 상기 제 1 단말은 상기 블록체인 서버(200)를 경유하여 상기 제 1 IPFS로부터 전송되는 상기 저장 중인 암호화된 제 11 파일이 삭제된 상태임을 나타내는 정보를 수신하고, 상기 수신된 저장 중인 암호화된 제 11 파일이 삭제된 상태임을 나타내는 정보를 표시한다(S310).In addition, the first terminal receives information indicating that the stored encrypted eleventh file transmitted from the first IPFS via the block chain server 200 is in a deleted state, and receives the received encrypted stored encrypted file. Information indicating that the eleventh file has been deleted is displayed (S310).

본 발명의 실시예는 앞서 설명된 바와 같이, 단말에서 블록체인 서버에 저장한 전자 문서와 관련한 블록체인 DHT 정보를 IPFS DHT 정보와 함께 복수의 IPFS에 저장하여, IPFS에서 블록체인의 트랜잭션 및 블록 정보를 트래킹하고, 데이터의 소유권을 확인 가능하며, 블록체인 서버와의 연동성을 확장할 수 있다.As described above, the embodiment of the present invention stores the block chain DHT information related to the electronic document stored in the block chain server in the terminal in a plurality of IPFS together with the IPFS DHT information, and the transaction and block information of the block chain in the IPFS can be tracked, data ownership can be verified, and interoperability with blockchain servers can be extended.

또한, 본 발명의 실시예는 앞서 설명된 바와 같이, 특정 IPFS 데이터에 접근 가능 대상이 모든 IPFS 사용자가 아닌 특정 사용자만 접근할 수 있도록 권한을 부여하여, 권한 및 프라이버시 문제를 해당 IPFS에 적용할 수 있다.In addition, as described above, the embodiment of the present invention grants permission so that only a specific user can access specific IPFS data, not all IPFS users, so that rights and privacy issues can be applied to the IPFS. have.

또한, 본 발명의 실시예는 앞서 설명된 바와 같이, 복수의 IPFS에 저장되는 데이터에 대해서 미리 설정된 기간 동안만 해당 IPFS에 저장하고, Pin 기능 관리를 통해 해당 기간이 지나면 해당 데이터를 자동으로 삭제하여, 시간에 따른 Pin 기능 관리를 강화하고, 전체 시스템의 운영 효율을 향상시킬 수 있다.In addition, as described above, the embodiment of the present invention stores data stored in a plurality of IPFS in the corresponding IPFS only for a preset period, and automatically deletes the corresponding data after the corresponding period through Pin function management. , it can strengthen the pin function management according to time and improve the operating efficiency of the entire system.

전술된 내용은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.Those of ordinary skill in the art to which the present invention pertains may modify and modify the above-described contents without departing from the essential characteristics of the present invention. Therefore, the embodiments disclosed in the present invention are not intended to limit the technical spirit of the present invention, but to explain, and the scope of the technical spirit of the present invention is not limited by these embodiments. The protection scope of the present invention should be construed by the following claims, and all technical ideas within the equivalent range should be construed as being included in the scope of the present invention.

10: IPFS 기반의 문서 관리 시스템 100: 단말
200: 블록체인 서버 300: 복수의 IPFS
10: IPFS-based document management system 100: terminal
200: Blockchain Server 300: Multiple IPFS

Claims (10)

파일, 부가 정보, 유지 기간 정보, 블록 저장 요청 정보 및 단말의 식별 정보를 전송하는 단말;
상기 부가 정보를 블록에 저장하고, 상기 부가 정보의 블록 저장에 따른 트랜잭션 처리 결과를 생성하고, 상기 파일과 관련해서 랜덤 키 방식으로 파일 잠금키를 생성하고, 상기 전송된 파일과 관련해서 소유권자의 공개키와 상기 생성된 파일 잠금키를 미리 설정된 암호화 방식에 적용하여, 소유권자와 관련한 암호 파일 잠금키를 생성하고, 상기 파일과 관련해서 스마트 컨트랙트에 의해 토큰 아이디를 생성하는 블록체인 서버; 및
상기 블록체인 서버와 연동하여, IPFS DHT와 블록체인 DHT를 상기 파일과 함께 저장하는 복수의 IPFS를 포함하며,
상기 부가 정보는,
파일의 저작권자명, 파일의 소유자명, 소속 정보 및 현재 날짜 중 적어도 하나를 포함하며,
상기 유지 기간 정보는,
업로드하는 파일을 등록 유지하기 위한 기간을 포함하는 것을 특징으로 하는 IPFS 기반의 문서 관리 시스템.
a terminal for transmitting a file, additional information, maintenance period information, block storage request information, and identification information of the terminal;
Storing the additional information in a block, generating a transaction processing result according to the block storage of the additional information, generating a file lock key using a random key method in relation to the file, and disclosure of the owner in relation to the transmitted file a block chain server that applies a key and the generated file lock key to a preset encryption method to generate an encryption file lock key related to the owner, and generates a token ID by a smart contract in relation to the file; and
In conjunction with the block chain server, including a plurality of IPFS for storing IPFS DHT and block chain DHT together with the file,
The additional information is
It contains at least one of the name of the copyright holder of the file, the name of the owner of the file, affiliation information, and the current date,
The maintenance period information is
IPFS-based document management system, characterized in that it includes a period for maintaining registration of files to be uploaded.
삭제delete 제 1 항에 있어서,
상기 복수의 IPFS는,
상기 유지 기간 정보를 상기 파일과 관련한 Pin 정보에 적용하고, 상기 파일이 저장되는 위치와 관련한 IPFS URI(Uniform Resource Identifier) 및 상기 파일과 관련한 해시값을 상기 블록체인 서버에 전송하며,
상기 블록체인 서버는,
상기 IPFS URI 및 상기 파일과 관련한 해시값을 근거로 스마트 컨트랙트를 통해 NFT(Non-fungible token)를 민트하고, 상기 IPFS URI 및 상기 파일과 관련한 해시값을 상기 단말에 전송하며,
상기 단말은,
앞서 전송된 파일 및 부가 정보에 응답하여 상기 블록체인 서버로부터 전송되는 IPFS URI 및 상기 파일과 관련한 해시값을 수신하는 것을 특징으로 하는 IPFS 기반의 문서 관리 시스템.
The method of claim 1,
The plurality of IPFS,
Applying the maintenance period information to the Pin information related to the file, and transmitting an IPFS Uniform Resource Identifier (URI) related to a location where the file is stored and a hash value related to the file to the blockchain server,
The blockchain server is
Minting a non-fungible token (NFT) through a smart contract based on the IPFS URI and a hash value related to the file, and transmitting the IPFS URI and a hash value related to the file to the terminal,
The terminal is
IPFS-based document management system, characterized in that it receives an IPFS URI transmitted from the block chain server and a hash value related to the file in response to the previously transmitted file and additional information.
단말에 의해, 파일, 부가 정보, 유지 기간 정보, 블록 저장 요청 정보 및 단말의 식별 정보를 블록체인 서버에 전송하는 단계;
상기 블록체인 서버에 의해, 상기 부가 정보를 블록에 저장하고, 상기 부가 정보의 블록 저장에 따른 트랜잭션 처리 결과를 생성하는 단계;
상기 블록체인 서버에 의해, 상기 파일과 관련해서 랜덤 키 방식으로 파일 잠금키를 생성하는 단계;
상기 블록체인 서버에 의해, 상기 전송된 파일과 관련해서 소유권자의 공개키와 상기 생성된 파일 잠금키를 미리 설정된 암호화 방식에 적용하여, 소유권자와 관련한 암호 파일 잠금키를 생성하는 단계;
상기 블록체인 서버에 의해, 상기 파일과 관련해서 스마트 컨트랙트에 의해 토큰 아이디를 생성하는 단계; 및
상기 블록체인 서버에 의해, 복수의 IPFS와 연동하여, IPFS DHT와 블록체인 DHT를 상기 파일과 함께 상기 복수의 IPFS에 저장하는 단계를 포함하며,
상기 부가 정보는,
파일의 저작권자명, 파일의 소유자명, 소속 정보 및 현재 날짜 중 적어도 하나를 포함하며,
상기 유지 기간 정보는,
업로드하는 파일을 등록 유지하기 위한 기간을 포함하는 것을 특징으로 하는 IPFS 기반의 문서 관리 방법.
transmitting, by the terminal, the file, additional information, maintenance period information, block storage request information, and identification information of the terminal to the block chain server;
storing, by the block chain server, the additional information in a block, and generating a transaction processing result according to the block storage of the additional information;
generating, by the block chain server, a file lock key in a random key manner in relation to the file;
applying, by the block chain server, the public key of the owner and the generated file lock key in relation to the transmitted file to a preset encryption method to generate an encrypted file lock key related to the owner;
generating, by the blockchain server, a token ID by a smart contract in relation to the file; and
Storing, by the blockchain server, the IPFS DHT and the blockchain DHT together with the files in the plurality of IPFSs, in conjunction with the plurality of IPFS,
The additional information is
It contains at least one of the name of the copyright holder of the file, the name of the owner of the file, affiliation information, and the current date,
The maintenance period information is
IPFS-based document management method, characterized in that it includes a period for maintaining registration of files to be uploaded.
제 4 항에 있어서,
상기 IPFS DHT와 블록체인 DHT를 상기 파일과 함께 상기 복수의 IPFS에 저장하는 단계는,
상기 복수의 IPFS 중에서 랜덤하게 선택되는 특정 IPFS에 블록체인 정보, 상기 파일, 상기 유지 기간 정보 및 파일 등록 요청 정보를 전송하는 과정;
상기 특정 IPFS에 의해, 상기 파일을 근거로 해시값을 생성하는 과정;
상기 특정 IPFS에 의해, 상기 파일을 미리 설정된 암호화 방식을 이용해서 암호화하는 과정;
상기 특정 IPFS에 의해, 블록체인 정보, 상기 파일, 상기 유지 기간 정보, 상기 해시값 등을 근거로 상기 블록체인 DHT 및 상기 IPFS DHT를 각각 생성하는 과정; 및
상기 특정 IPFS에 의해, 상기 복수의 IPFS 중에서 상기 특정 IPFS를 제외한 나머지 IPFS와 연동하여, 상기 암호화된 파일, 상기 생성된 블록체인 DHT 및 상기 생성된 IPFS DHT를 각각 분산 저장하는 과정을 포함하는 것을 특징으로 하는 IPFS 기반의 문서 관리 방법.
5. The method of claim 4,
Storing the IPFS DHT and the blockchain DHT together with the file in the plurality of IPFS,
transmitting block chain information, the file, the maintenance period information, and file registration request information to a specific IPFS randomly selected from among the plurality of IPFSs;
generating a hash value based on the file by the specific IPFS;
encrypting the file by the specific IPFS using a preset encryption method;
generating the block chain DHT and the IPFS DHT, respectively, based on the block chain information, the file, the maintenance period information, the hash value, etc. by the specific IPFS; and
and a process of distributing and storing the encrypted file, the generated block chain DHT, and the generated IPFS DHT by interworking with the remaining IPFS from among the plurality of IPFS by the specific IPFS, respectively. IPFS-based document management method.
제 5 항에 있어서,
상기 블록체인 정보는,
상기 파일의 저작권자, 소유권자, 토큰 아이디, 파일 잠금키, 체인 정보, TxID, 스마트컨트랙트 정보, 블록 해시값, 블록번호 및 트랜잭션 해시값 중 적어도 하나를 포함하는 것을 특징으로 하는 IPFS 기반의 문서 관리 방법.
6. The method of claim 5,
The blockchain information is
IPFS-based document management method comprising at least one of a copyright holder, owner, token ID, file lock key, chain information, TxID, smart contract information, block hash value, block number, and transaction hash value of the file.
제 5 항에 있어서,
상기 암호화된 파일, 상기 생성된 블록체인 DHT 및 상기 생성된 IPFS DHT를 각각 분산 저장하는 과정은,
상기 암호화된 파일 및 상기 생성된 IPFS DHT를 각각 분산 저장하고, CID 변경없이 상기 생성된 블록체인 DHT를 부가 정보 형태로 각각 저장하는 것을 특징으로 하는 IPFS 기반의 문서 관리 방법.
6. The method of claim 5,
The process of distributing and storing the encrypted file, the generated blockchain DHT and the generated IPFS DHT, respectively,
IPFS-based document management method, characterized in that the encrypted file and the generated IPFS DHT are distributed and stored, respectively, and the generated block chain DHT is stored in the form of additional information without changing the CID.
제 4 항에 있어서,
상기 복수의 IPFS에 의해, 상기 유지 기간 정보를 상기 파일과 관련한 Pin 정보에 적용하는 단계;
상기 복수의 IPFS에 의해, 상기 파일이 저장되는 위치와 관련한 IPFS URI 및 상기 파일과 관련한 해시값을 상기 블록체인 서버에 전송하는 단계;
상기 블록체인 서버에 의해, 상기 IPFS URI 및 상기 파일과 관련한 해시값을 근거로 스마트 컨트랙트를 통해 NFT를 민트하는 단계;
상기 블록체인 서버에 의해, 상기 IPFS URI 및 상기 파일과 관련한 해시값을 상기 단말에 전송하는 단계; 및
상기 단말에 의해, 앞서 전송된 파일 및 부가 정보에 응답하여 상기 블록체인 서버로부터 전송되는 IPFS URI 및 상기 파일과 관련한 해시값을 수신하는 단계를 더 포함하는 것을 특징으로 하는 IPFS 기반의 문서 관리 방법.
5. The method of claim 4,
applying, by the plurality of IPFSs, the maintenance period information to Pin information related to the file;
transmitting, by the plurality of IPFS, an IPFS URI related to a location where the file is stored and a hash value related to the file to the block chain server;
minting, by the blockchain server, an NFT through a smart contract based on the IPFS URI and a hash value related to the file;
transmitting, by the block chain server, the IPFS URI and a hash value related to the file to the terminal; and
IPFS-based document management method, further comprising the step of receiving, by the terminal, an IPFS URI transmitted from the block chain server in response to the previously transmitted file and additional information and a hash value related to the file.
제 8 항에 있어서,
상기 단말에 의해, 상기 복수의 IPFS 중 어느 하나의 IPFS에 접속하여, 상기 수신된 해시값에 대응하는 암호화된 파일을 다운로드하는 단계;
상기 단말에 의해, 상기 다운로드된 암호화된 파일을 미리 설정된 복호화키를 이용해서 복호화하는 단계; 및
상기 단말에 의해, 상기 복호화된 파일을 표시하는 단계를 더 포함하는 것을 특징으로 하는 IPFS 기반의 문서 관리 방법.
9. The method of claim 8,
downloading, by the terminal, an encrypted file corresponding to the received hash value by accessing any one of the plurality of IPFSs;
decrypting, by the terminal, the downloaded encrypted file using a preset decryption key; and
The IPFS-based document management method further comprising the step of displaying, by the terminal, the decrypted file.
제 4 항에 있어서,
상기 복수의 IPFS에 의해, 상기 유지 기간 정보를 포함하는 상기 파일과 관련한 Pin 정보를 근거로 저장 중인 파일의 유지 기간이 지난 상태인지 여부를 판단하는 단계; 및
상기 판단 결과, 상기 저장 중인 파일의 유지 기간이 지난 상태일 때, 상기 복수의 IPFS에 의해, 상기 저장 중인 파일을 미리 설정된 저장소에 백업 저장하고, 각각의 IPFS에서 저장 중인 파일을 삭제하는 단계를 더 포함하는 것을 특징으로 하는 IPFS 기반의 문서 관리 방법.
5. The method of claim 4,
determining, by the plurality of IPFSs, whether the maintenance period of the file being stored has expired based on Pin information related to the file including the maintenance period information; and
As a result of the determination, when the maintenance period of the stored file has expired, the step of backing up the stored file to a preset storage by the plurality of IPFS and deleting the stored file from each IPFS is further performed. IPFS-based document management method comprising the.
KR1020220090903A 2022-07-22 2022-07-22 System for managing document based on IPFS and method thereof KR102447797B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220090903A KR102447797B1 (en) 2022-07-22 2022-07-22 System for managing document based on IPFS and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220090903A KR102447797B1 (en) 2022-07-22 2022-07-22 System for managing document based on IPFS and method thereof

Publications (1)

Publication Number Publication Date
KR102447797B1 true KR102447797B1 (en) 2022-09-27

Family

ID=83452301

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220090903A KR102447797B1 (en) 2022-07-22 2022-07-22 System for managing document based on IPFS and method thereof

Country Status (1)

Country Link
KR (1) KR102447797B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102560527B1 (en) * 2022-10-04 2023-07-27 주식회사 이포넷 System for nft electronic notary and operating method thereof
KR102620111B1 (en) * 2023-07-19 2024-01-02 이성진 Prints With Information Security Features

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101868029B1 (en) 2017-03-10 2018-06-18 현대카드 주식회사 Method and system for sharing file based on blockchain

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101868029B1 (en) 2017-03-10 2018-06-18 현대카드 주식회사 Method and system for sharing file based on blockchain

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Dongjun Na and Sejin Park. Fusion Chain: A Decentralized Lightweight Blockchain for IoT Security and Privacy. Electronics, 2021.2.5 *
Dongjun Na and Sejin Park. Fusion Chain: A Decentralized Lightweight Blockchain for IoT Security and Privacy. Electronics, 2021.2.5. 1부.*

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102560527B1 (en) * 2022-10-04 2023-07-27 주식회사 이포넷 System for nft electronic notary and operating method thereof
KR102620111B1 (en) * 2023-07-19 2024-01-02 이성진 Prints With Information Security Features

Similar Documents

Publication Publication Date Title
AU2022204148B2 (en) Methods and apparatus for providing blockchain participant identity binding
EP3618394B1 (en) Data sharing method, client, server, computing device, and storage medium
CN109144961B (en) Authorization file sharing method and device
KR102447797B1 (en) System for managing document based on IPFS and method thereof
CN109691057B (en) Interchangeably retrieving sensitive content via a private content distribution network
CN109729041B (en) Method and device for issuing and acquiring encrypted content
CN110601816B (en) Lightweight node control method and device in block chain system
US9100171B1 (en) Computer-implemented forum for enabling secure exchange of information
US8458799B2 (en) Method and apparatus for providing a scalable service platform using a network cache
CN110611657A (en) File stream processing method, device and system based on block chain
WO2023005838A1 (en) Data sharing method and electronic device
CN111464295B (en) Bank card making method and device
KR20200085095A (en) Electronic apparatus and method for managing data based on block chain
CN113597628A (en) Broadcast intention signaling using decentralized networks
US11095620B1 (en) Secure method, system, and computer program product for exchange of data
CN112954000A (en) Privacy information management method and system based on block chain and IPFS technology
JP6293245B1 (en) Transaction mutual monitoring system with enhanced security
KR20210099814A (en) Digital property code management system based on blockchain and method thereof
CN115552838A (en) Protecting confidential information using multiparty computing and K-anonymization techniques
Marković et al. One possible model of secure e/m-government system
US20220405409A1 (en) Dissemination and tracking of documents with downstream control
KR20220161428A (en) Secure network communications to restrict access to information
JP6542401B2 (en) Key chain management method and system for end-to-message encryption
KR102120929B1 (en) Method for contents distribution based peer to peer, apparatus and system for executing the method
CN113691495B (en) Network account sharing and distributing system and method based on asymmetric encryption

Legal Events

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