KR102447797B1 - System for managing document based on IPFS and method thereof - Google Patents
System for managing document based on IPFS and method thereof Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/93—Document management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/164—File meta data generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1834—Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/321—Cryptographic 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/3213—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/101—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measures for digital rights management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/102—Additional 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
Description
본 발명은 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.
본 발명의 목적은 단말에서 블록체인 서버에 저장한 전자 문서와 관련한 블록체인 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
도 1에 도시한 바와 같이, IPFS 기반의 문서 관리 시스템(10)은 단말(100), 블록체인 서버(200) 및 복수의 IPFS(300)로 구성된다. 도 1에 도시된 문서 관리 시스템(10)의 구성 요소 모두가 필수 구성 요소인 것은 아니며, 도 1에 도시된 구성 요소보다 많은 구성 요소에 의해 문서 관리 시스템(10)이 구현될 수도 있고, 그보다 적은 구성 요소에 의해서도 문서 관리 시스템(10)이 구현될 수도 있다.As shown in FIG. 1 , the IPFS-based
상기 단말(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
상기 블록체인 서버(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
상기 단말(100), 상기 블록체인 서버(200) 및 상기 복수의 IPFS(300) 각각은 다른 단말들과의 통신 기능을 수행하기 위한 통신부(미도시), 다양한 정보 및 프로그램(또는 애플리케이션)을 저장하기 위한 저장부(미도시), 다양한 정보 및 프로그램 실행 결과를 표시하기 위한 표시부(미도시), 상기 다양한 정보 및 프로그램 실행 결과에 대응하는 음성 정보를 출력하기 위한 음성 출력부(미도시), 각 단말의 다양한 구성 요소 및 기능을 제어하기 위한 제어부(미도시) 등을 포함할 수 있다.Each of the
상기 단말(100)은 상기 블록체인 서버(200), 상기 복수의 IPFS(300) 등과 통신한다. 이때, 상기 단말(100)은 해당 단말(100)에서 저장 중인 파일(또는 전자 문서)을 해당 파일과 관련한 블록체인 DHT 및 IPFS DHT를 함께 상기 IPFS(300)를 통해 분산 저장하고, 해당 파일과 관련한 부가 정보를 상기 블록체인 서버(200)에 저장하고자 하는 사용자가 소지한 단말일 수 있다.The
또한, 상기 단말(100)은 상기 블록체인 서버(200)와의 연동에 의해, 상기 블록체인 서버(200)에서 제공하는 전용 앱 및/또는 웹 사이트를 통해 파일 업로드 기능, 부가 정보 등의 저장 기능, 해시값 또는 IPFS URI에 대응하는 파일 확인/다운로드 기능 등을 제공받기 위한 일반 사용자로 회원 가입하며, 개인 정보 등을 상기 블록체인 서버(200)에 등록한다. 이때, 상기 개인 정보는 아이디, 이메일 주소, 패스워드(또는 비밀번호), 이름, 성별, 생년월일, 연락처, 주소지(또는 주소정보/거주지역) 등을 포함한다.In addition, the
또한, 상기 단말(100)은 해당 단말(100)의 사용자가 가입한 SNS 계정 정보 또는 타사이트 계정 정보를 이용하여 상기 블록체인 서버(200)에 사용자로 회원 가입할 수도 있다. 여기서, 상기 SNS 계정은 페이스북, 트위터, 인스타그램, 카카오 스토리, 네이버 블로그 등과 관련한 정보일 수 있다. 또한, 상기 타사이트 계정은 유튜브, 카카오, 네이버 등과 관련한 정보일 수 있다.In addition, the
또한, 회원 가입 절차 수행 시, 상기 단말(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
또한, 회원 가입이 완료된 후, 상기 단말(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
본 발명의 실시예에서는 상기 단말(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
또한, 상기 단말(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
또한, 상기 단말(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
본 발명의 실시예에서는, 상기 단말(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
또한, 상기 단말(100)에서 앞서 전송한 파일, 부가 정보 등에 대해서 상기 블록체인 서버(200) 및 상기 복수의 IPFS(300)에서의 등록(또는 저장)이 실패한 경우, 상기 단말(100)은 상기 블록체인 서버(200) 및/또는 상기 IPFS(300)로부터 전송되는 해당 파일, 부가 정보 등의 등록이 실패한 상태임을 나타내는 정보를 수신하고, 상기 수신된 해당 파일, 부가 정보 등의 등록이 실패한 상태임을 나타내는 정보를 표시(또는 출력)한다.In addition, when registration (or storage) in the
또한, 상기 단말(100)은 앞서 전송된 파일, 부가 정보, 블록 저장 요청 정보, 단말(100)의 식별 정보 등에 응답하여 상기 블록체인 서버(200)로부터 전송되는 IPFS URI, 해시값 등을 수신한다.In addition, the terminal 100 receives the IPFS URI, hash value, etc. transmitted from the
또한, 상기 단말(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
즉, 상기 단말(100)은 상기 수신된 IPFS URI를 근거로 상기 복수의 IPFS(300) 중 어느 하나의 IPFS(300)에 접속한다.That is, the terminal 100 accesses any one
또한, 상기 단말(100)은 상기 접속된 IPFS(300)와 연동하여, 상기 수신된 해시값을 근거로 해당 단말(100)의 사용자가 해당 해시값과 관련한 암호화된 파일에 대한 소유권자(또는 저작권자)인지 여부를 확인(또는 판단)한다. 이때, 상기 IPFS(300)는 상기 단말(100) 및 상기 블록체인 서버(200)와 연동하여, 상기 블록체인 서버(200)에 저장된 복수의 부가 정보(또는 복수의 암호화된 부가 정보) 중에서 해당 단말(100)(또는 해당 해시값)과 관련한 파일에 대응하는 부가 정보를 이용해서 해당 단말(100)의 사용자가 해당 해시값과 관련한 암호화된 파일에 대한 소유권자(또는 저작권자)인지 여부를 확인(또는 판단)할 수도 있다.In addition, the terminal 100 cooperates with the
상기 확인 결과(또는 상기 판단 결과), 해당 단말(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
또한, 상기 단말(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
또한, 상기 단말(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
또한, 상기 블록체인 서버(200)는 상기 단말(100) 등의 사용자에 대한 회원 가입 절차 등을 수행한다.In addition, the
또한, 상기 블록체인 서버(200)는 상기 단말(100) 등의 사용자와 관련한 개인 정보를 등록한다. 이때, 상기 블록체인 서버(200)는 해당 개인 정보 등을 DB 서버(미도시)에 등록(또는 관리)할 수 있다.In addition, the
또한, 상기 블록체인 서버(200)는 상기 단말(100) 등의 사용자에 대한 회원 관리 기능을 수행한다.In addition, the
또한, 상기 블록체인 서버(200)는 파일 업로드 기능, 부가 정보 등의 저장 기능, 해시값 또는 IPFS URI에 대응하는 파일 확인/다운로드 기능 등을 제공하는 전용 앱 및/또는 웹 사이트를 상기 단말(100) 등에 제공한다.In addition, the
또한, 상기 블록체인 서버(200)는 공지사항, 이벤트 등을 위한 게시판 기능을 제공한다.In addition, the
또한, 상기 블록체인 서버(200)는 상기 단말(100)로부터 전송되는 파일, 부가 정보, 유지 기간 정보, 블록 저장 요청 정보, 단말(100)의 식별 정보 등을 수신한다.In addition, the
또한, 상기 블록체인 서버(200)는 상기 수신된 블록 저장 요청 정보를 근거로 상기 수신된 부가 정보를 블록에 저장한다. 이때, 상기 블록체인 서버(200)는 데이터베이스 서버(미도시)와 연동하여, 상기 수신된 부가 정보를 암호화하여 저장할 수도 있다.In addition, the
즉, 상기 블록체인 서버(200)는 상기 수신된 블록 저장 요청 정보를 근거로 상기 수신된 부가 정보를 블록에 저장한다. 이때, 상기 블록체인 서버(200)는 상기 데이터베이스 서버와 연동하여, 상기 수신된 부가 정보를 암호화하여 저장할 수도 있다. 여기서, 상기 블록체인 서버(200)는 상기 부가 정보에 미리 설정된 합의 알고리즘 방식(예를 들어 POA(Proof of Authority: 권한 증명), POW(Proof of Work: 작업 증명) 등 포함) 등 포함), 스마트 컨트랙트(smart contract) 등을 적용하여, 상기 수신된 부가 정보를 상기 블록에 저장할 수도 있다. 여기서, 상기 POA는 확정된 관리주체가 순서대로 돌아가며 블록을 생성(또는 등록된 계정들이 순차로 블록을 생성)함으로써, 자원의 소모와 블록 생성 소요 시간이 상기 POW에 비하여 적다. 이때, 상기 블록체인 서버(200)는 속도와 기밀성의 유지를 위해서 프라이빗 네트워크로 구성할 수 있다. 또한, 상기 스마트 컨트랙트는 블록체인 위에 올려놓은 약속으로, 특정 조건을 만족하면 특정 행동을 취하라는 코드를 거래에 추가하는 것이다.That is, the
또한, 상기 블록체인 서버(200)는 해당 부가 정보의 블록 저장에 따른 트랜잭션 처리 결과를 생성한다. 여기서, 상기 트랜잭션 처리 결과(또는 블록 저장 결과)는 블록 해시값, 블록 번호, 수신자 정보(예를 들어 소유자명, 단말(100)의 식별 정보 등 포함), 트랜잭션 해시값 등을 포함한다.In addition, the
또한, 상기 블록체인 서버(200)는 상기 수신된 파일과 관련해서 랜덤 키 방식으로 파일 잠금키를 생성한다.In addition, the
또한, 상기 블록체인 서버(200)는 상기 수신된 파일과 관련해서 소유권자의 공개키와 상기 생성된 파일 잠금키를 미리 설정된 암호화 방식(예를 들어 RSA 2048 enc 등 포함)에 적용하여, 소유권자와 관련한 암호 파일 잠금키를 생성한다.In addition, the
또한, 상기 블록체인 서버(200)는 상기 수신된 파일과 관련해서 스마트 컨트랙트(smart contract)에 의해 토큰 아이디를 생성한다.In addition, the
또한, 상기 블록체인 서버(200)는 상기 복수의 IPFS(300)와 연동하여, IPFS DHT와 블록체인 DHT를 상기 파일과 함께 해당 복수의 IPFS(300)에 등록(또는 저장)한다.In addition, the
즉, 상기 블록체인 서버(200)는 해당 블록체인 서버(200)와 연동하는 복수의 IPFS(300) 중에서 랜덤하게 또는 미리 설정된 방식으로 특정 IPFS(300)를 선택한다. 여기서, 상기 미리 설정된 방식은 상기 복수의 IPFS(300) 중에서 현재 시점에 가동률(또는 운용률)이 가장 낮은 IPFS(300)를 선택하는 방식 등을 포함한다.That is, the
또한, 상기 블록체인 서버(200)는 상기 선택된 특정 IPFS(300)로 블록체인 정보, 상기 파일, 상기 유지 기간 정보, 파일 등록 요청 정보 등을 전송한다. 여기서, 상기 블록체인 정보는 해당 파일의 저작권자, 소유권자, 토큰 아이디, 파일 잠금키, 체인 정보, TxID, 스마트컨트랙트 정보, 블록 해시값, 블록번호, 트랜잭션 해시값 등을 포함한다.In addition, the
또한, 상기 블록체인 서버(200)는 상기 특정 IPFS(300)로부터 전송되는 상기 IPFS URI, 상기 해시값(또는 상기 파일 등과 관련한 해시값) 등을 수신한다.In addition, the
또한, 상기 블록체인 서버(200)는 상기 수신된 IPFS URI, 해시값 등과 관련해서 스마트 컨트랙트를 통해 NFT(Non-fungible token: 대체불가능토큰)를 민트(또는 발행)한다. 여기서, 상기 블록체인 서버(200)는 해당 파일의 저작권자, 소유권자, 토큰 아이디, 파일 잠금키, 체인 정보, TxID, 스마트컨트랙트 정보, 블록 해시값, 블록번호, 트랜잭션 해시값, IPFS URI 등을 포함해서 상기 스마트 컨트랙트를 통해 상기 NFT를 민트한다.In addition, the
또한, 상기 블록체인 서버(200)는 해당 파일에 대한 IPFS URI, 해시값 등을 상기 단말(100)에 전송한다.In addition, the
또한, 상기 복수의 IPFS(300)에 저장된 상기 유지 기간 정보가 적용된 파일에 대해서 유지 기간(또는 저장 기간)이 지나서 해당 복수의 IPFS(300)에서 각각 저장된 파일(또는 암호화된 파일)을 삭제 처리한 경우, 상기 블록체인 서버(200)는 상기 복수의 IPFS(300)로부터 각각 전송되는 해당 단말(100)에서 업로드한 파일이 삭제된 상태임을 나타내는 정보를 수신한다.In addition, the file (or encrypted file) stored in the plurality of
또한, 상기 블록체인 서버(200)는 상기 수신된 해당 단말(100)에서 업로드한 파일이 삭제된 상태임을 나타내는 정보를 해당 파일과 관련한 상기 단말(100)에 전송한다.In addition, the
본 발명의 실시예에서 상기 블록체인 서버(200)는 퍼블릭 블록체인 및/또는 프라이빗 블록체인으로 구성할 수 있으며, 주요 특징 구현을 위해서, 프라이빗 이더리움 블록체인 네트워크로 구성할 수 있다.In an embodiment of the present invention, the
또한, 본 발명의 실시예에서는, 상기 블록체인 서버(200)를 위주로 설명하고 있으나, 이에 한정되는 것은 아니며, 상기 블록체인 서버(200) 대신 이더리움 서버를 통해 해당 블록체인 서버(200)에서 수행하는 기능들을 수행할 수도 있다.In addition, in the embodiment of the present invention, the
상기 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
또한, 상기 IPFS(300)는 콘텐트-주소(content-address)를 이용해 모든 컴퓨터 기기들(미도시)을 연결하는 글로벌 네임스페이스(global namespace)에서 각각의 파일들을 식별한다.Also, the
즉, 상기 IPFS(300)는 하나의 비트토렌트 스웜(BitTorrent Swarm)처럼 깃 레포지토리(Git repository) 안의 객체를 교환하는 방식이다.That is, the
또한, 상기 IPFS(300)는 분산 해시테이블을 이용하며, 자체 인증 네임스페이스(self certifying namespace)와 인센티브 블록 교환(incentivized block exchange) 방식을 결합하며, SPOF(Single Point of Failure: 단일장애점)가 없으므로, 그로 인해 노드 간의 신뢰를 필요로 하지 않는다.In addition, the
또한, 상기 IPFS(300)는 데이터의 내용에 따라 고유의 해시값이 다르며, 이 해시값을 이용해서 상기 복수의 IPFS(300)에 분산 저장되어 있는 콘텐츠(또는 파일/서브 파일)를 찾고, 해당 데이터를 잘게 나눠서 빠른 속도로 가져온 두, 다시 하나로 합쳐서 제공할 수 있다. 이때, 해시 테이블은 한 쌍(key, value)으로 저장하는데, 분산화된 많은 노드들이 이 정보를 저장하기 때문에 사용자는 HTTP 방식에 비해 더 빠른 속도로 데이터를 저장하고 가져올 수 있다.In addition, the
또한, 상기 블록체인 서버(200)로부터 선택된 특정 IPFS(300)는 상기 블록체인 서버(200)로부터 전송되는 상기 블록체인 정보, 상기 파일, 상기 유지 기간 정보, 상기 파일 등록 요청 정보 등을 수신한다.In addition, the
또한, 상기 특정 IPFS(300)는 상기 수신된 파일을 근거로 해시값을 생성한다. 이때, 상기 특정 IPFS(300)는 상기 수신된 상기 블록체인 정보, 상기 파일, 상기 유지 기간 정보 등을 근거로 상기 해시값을 생성할 수도 있다.Also, the
또한, 상기 특정 IPFS(300)는 상기 수신된 파일을 미리 설정된 암호화 방식을 이용해서 암호화한다.In addition, the
또한, 상기 특정 IPFS(300)는 상기 수신된 블록체인 정보, 상기 파일, 상기 유지 기간 정보, 상기 해시값 등을 근거로 블록체인 DHT 및 IPFS DHT를 각각 생성한다.In addition, the
또한, 상기 특정 IPFS(300)는 상기 암호화된 파일, 상기 생성된 블록체인 DHT, 상기 생성된 IPFS DHT 등을 저장한다. 이때, 상기 특정 IPFS(300)는 남은 복수의 IPFS(300)(또는 상기 복수의 IPFS(300) 중에서 상기 특정 IPFS(300)를 제외한 나머지 IPFS(300))와 연동하여, 상기 암호화된 파일, 상기 생성된 블록체인 DHT, 상기 생성된 IPFS DHT 등을 각각 분산 저장(또는 관리)한다.In addition, the
여기서, 상기 특정 IPFS(300) 및 상기 나머지 IPFS(300)는 상기 암호화된 파일, 상기 생성된 IPFS DHT 등을 각각 분산 저장하고, CID(Content Identifier)(또는 CID 값) 변경없이 상기 생성된 블록체인 DHT를 부가 정보 형태로 각각 저장할 수도 있다.Here, the
또한, 상기 복수의 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
또한, 상기 복수의 IPFS(300) 중 어느 하나의 IPFS(300)는 상기 단말(100과의 접속을 관리하고, 해당 단말(100)에서의 요청에 따라 해시값에 대응하는 암호화된 파일을 상기 단말(100)에 전송한다.In addition, the
즉, 상기 복수의 IPFS(300) 중 어느 하나의 IPFS(300)는 상기 IPFS URI를 근거로 접속을 시도하는 상기 단말(100)과 연결한다.That is, any one
또한, 상기 IPFS(300)는 상기 접속된 단말(100)과 연동하여, 상기 단말(100)에서 보유 중인 해시값을 근거로 해당 단말(100)의 사용자가 해당 해시값과 관련한 암호화된 파일에 대한 소유권자(또는 저작권자)인지 여부를 확인(또는 판단)한다. 이때, 상기 IPFS(300)는 상기 단말(100) 및 상기 블록체인 서버(200)와 연동하여, 상기 블록체인 서버(200)에 저장된 복수의 부가 정보(또는 복수의 암호화된 부가 정보) 중에서 해당 단말(100)(또는 해당 해시값)과 관련한 파일에 대응하는 부가 정보를 이용해서 해당 단말(100)의 사용자가 해당 해시값과 관련한 암호화된 파일에 대한 소유권자(또는 저작권자)인지 여부를 확인(또는 판단)할 수도 있다.In addition, the
상기 확인 결과(또는 상기 판단 결과), 해당 단말(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
또한, 상기 확인 결과(또는 상기 판단 결과), 해당 단말(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) 각각은 유지 기간 정보를 포함하는 해당 파일과 관련한 Pin 정보를 근거로 해당 파일(또는 암호화된 파일)의 유지 기간(또는 저장 기간)이 지난 상태인지 여부를 판단(또는 확인)한다.In addition, each of the plurality of
이때, 상기 복수의 IPFS(300) 중에서 해당 파일과 관련해서 마스터 기능을 수행했던 상기 특정 IPFS(300)에서 전체적인 시스템의 부하를 줄이기 위해서, 유지 기간 정보를 포함하는 해당 파일과 관련한 Pin 정보를 근거로 해당 파일(또는 암호화된 파일)의 유지 기간이 지난 상태인지 여부를 1차로 판단(또는 확인)할 수도 있다.At this time, in order to reduce the overall system load in the
상기 판단 결과(또는 상기 확인 결과), 해당 파일(또는 암호화된 파일)의 유지 기간이 남아 있는 경우(또는 지나지 않은 경우), 상기 복수의 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) 각각은 해당 암호화된 파일(또는 저장 중인 파일/저장 중인 암호화된 파일)을 미리 설정된 저장소(미도시)에 백업 저장하고, 각각의 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)는 해당 특정 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
또한, 상기 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
이와 같이, 단말에서 블록체인 서버에 저장한 전자 문서와 관련한 블록체인 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
또한, 상기 단말(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
일 예로, 제 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
또한, 상기 제 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
또한, 상기 블록체인 서버(200)는 상기 수신된 블록 저장 요청 정보를 근거로 상기 수신된 부가 정보를 블록에 저장한다. 이때, 상기 블록체인 서버(200)는 데이터베이스 서버(미도시)와 연동하여, 상기 수신된 부가 정보를 암호화하여 저장할 수도 있다.In addition, the
즉, 상기 블록체인 서버(200)는 상기 수신된 블록 저장 요청 정보를 근거로 상기 수신된 부가 정보를 블록에 저장한다. 이때, 상기 블록체인 서버(200)는 상기 데이터베이스 서버와 연동하여, 상기 수신된 부가 정보를 암호화하여 저장할 수도 있다. 여기서, 상기 블록체인 서버(200)는 상기 부가 정보에 미리 설정된 합의 알고리즘 방식(예를 들어 POA, POW 등 포함) 등을 적용하여, 상기 수신된 부가 정보를 상기 블록에 저장할 수도 있다.That is, the
또한, 상기 블록체인 서버(200)는 해당 부가 정보의 블록 저장에 따른 트랜잭션 처리 결과를 생성한다. 여기서, 상기 트랜잭션 처리 결과(또는 블록 저장 결과)는 블록 해시값, 블록 번호, 수신자 정보(예를 들어 소유자명, 단말(100)의 식별 정보 등 포함), 트랜잭션 해시값 등을 포함한다.In addition, the
또한, 상기 블록체인 서버(200)는 상기 수신된 파일과 관련해서 랜덤 키 방식으로 파일 잠금키를 생성한다.In addition, the
또한, 상기 블록체인 서버(200)는 상기 수신된 파일과 관련해서 소유권자의 공개키와 상기 생성된 파일 잠금키를 미리 설정된 암호화 방식(예를 들어 RSA 2048 enc 등 포함)에 적용하여, 소유권자와 관련한 암호 파일 잠금키를 생성한다.In addition, the
또한, 상기 블록체인 서버(200)는 상기 수신된 파일과 관련해서 스마트 컨트랙트(smart contract)에 의해 토큰 아이디를 생성한다.In addition, the
일 예로, 상기 블록체인 서버(200)는 상기 제 1 단말로부터 전송되는 상기 제 11 파일, 상기 제 11 부가 정보, 상기 제 11 유지 기간 정보, 상기 제 11 블록 저장 요청 정보, 상기 제 1 단말의 식별 정보 등을 수신한다.For example, the
또한, 상기 블록체인 서버(200)는 상기 수신된 제 11 블록 저장 요청 정보를 근거로 상기 수신된 제 11 부가 정보를 암호화하고, 상기 암호화된 제 11 부가 정보를 해당 블록체인 서버(200)의 블록에 저장하고, 상기 제 11 부가 정보의 저장에 따른 제 11 블록 해시값, 제 11 블록 번호(예를 들어 85202), 제 11 수신자 정보, 제 11 트랜잭션 해시값 등을 포함하는 제 11 트랜잭션 처리 결과를 생성한다.In addition, the
또한, 상기 블록체인 서버(200)는 상기 수신된 제 11 파일과 관련해서 랜덤 키 방식으로 제 11 파일 잠금키(예를 들어 9a8b7c6d5e4f3g2h1i0j1k2l3m4n5o6p)를 생성한다.In addition, the
또한, 상기 블록체인 서버(200)는 상기 수신된 제 11 파일과 관련해서 소유권자의 제 11 공개키와 상기 생성된 제 11 파일 잠금키를 상기 미리 설정된 RSA 2048 enc에 적용하여, 제 11 암호 파일 잠금키(예를 들어 1a2a3b4b5c6c7d8d9e0e1f2f3g4g5h6h)를 생성한다.In addition, the
또한, 상기 블록체인 서버(200)는 상기 수신된 제 11 파일과 관련해서 스마트 컨트랙트에 의해 제 11 토큰 아이디(예를 들어 123)를 생성한다(S220).In addition, the
이후, 상기 블록체인 서버(200)는 복수의 IPFS(300)와 연동하여, IPFS DHT와 블록체인 DHT를 상기 파일과 함께 해당 복수의 IPFS(300)에 등록(또는 저장)한다.Thereafter, the
즉, 상기 블록체인 서버(200)는 해당 블록체인 서버(200)와 연동하는 복수의 IPFS(300) 중에서 랜덤하게 또는 미리 설정된 방식으로 특정 IPFS(300)를 선택한다. 여기서, 상기 미리 설정된 방식은 상기 복수의 IPFS(300) 중에서 현재 시점에 가동률(또는 운용률)이 가장 낮은 IPFS(300)를 선택하는 방식 등을 포함한다.That is, the
또한, 상기 블록체인 서버(200)는 상기 선택된 특정 IPFS(300)로 블록체인 정보, 상기 파일, 상기 유지 기간 정보, 파일 등록 요청 정보 등을 전송한다. 여기서, 상기 블록체인 정보는 해당 파일의 저작권자, 소유권자, 토큰 아이디, 파일 잠금키, 체인 정보, TxID, 스마트컨트랙트 정보, 블록 해시값, 블록번호, 트랜잭션 해시값 등을 포함한다.In addition, the
또한, 상기 특정 IPFS(300)는 상기 블록체인 서버(200)로부터 전송되는 상기 블록체인 정보, 상기 파일, 상기 유지 기간 정보, 상기 파일 등록 요청 정보 등을 수신한다.In addition, the
또한, 상기 특정 IPFS(300)는 상기 수신된 파일을 근거로 해시값을 생성한다. 이때, 상기 특정 IPFS(300)는 상기 수신된 상기 블록체인 정보, 상기 파일, 상기 유지 기간 정보 등을 근거로 상기 해시값을 생성할 수도 있다.Also, the
또한, 상기 특정 IPFS(300)는 상기 수신된 파일을 미리 설정된 암호화 방식을 이용해서 암호화한다.In addition, the
또한, 상기 특정 IPFS(300)는 상기 수신된 블록체인 정보, 상기 파일, 상기 유지 기간 정보, 상기 해시값 등을 근거로 블록체인 DHT 및 IPFS DHT를 각각 생성한다.In addition, the
또한, 상기 특정 IPFS(300)는 상기 암호화된 파일, 상기 생성된 블록체인 DHT, 상기 생성된 IPFS DHT 등을 저장한다. 이때, 상기 특정 IPFS(300)는 남은 복수의 IPFS(300)(또는 상기 복수의 IPFS(300) 중에서 상기 특정 IPFS(300)를 제외한 나머지 IPFS(300))와 연동하여, 상기 암호화된 파일, 상기 생성된 블록체인 DHT, 상기 생성된 IPFS DHT 등을 각각 분산 저장(또는 관리)한다.In addition, the
여기서, 상기 특정 IPFS(300) 및 상기 나머지 IPFS(300)는 상기 암호화된 파일, 상기 생성된 IPFS DHT 등을 각각 분산 저장하고, CID 변경없이 상기 생성된 블록체인 DHT를 부가 정보 형태로 각각 저장할 수도 있다.Here, the
또한, 상기 복수의 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
일 예로, 상기 블록체인 서버(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
또한, 상기 제 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
또한, 상기 제 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
또한, 상기 제 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
또한, 상기 블록체인 서버(200)는 상기 수신된 IPFS URI, 해시값 등과 관련해서 스마트 컨트랙트를 통해 NFT(Non-fungible token: 대체불가능토큰)를 민트(또는 발행)한다. 여기서, 상기 블록체인 서버(200)는 해당 파일의 저작권자, 소유권자, 토큰 아이디, 파일 잠금키, 체인 정보, TxID, 스마트컨트랙트 정보, 블록 해시값, 블록번호, 트랜잭션 해시값, IPFS URI 등을 포함해서 상기 스마트 컨트랙트를 통해 상기 NFT를 민트한다.In addition, the
일 예로, 상기 블록체인 서버(200)는 상기 제 1 IPFS로부터 전송되는 상기 제 11 IPFS URI, 상기 제 11 해시값 등을 수신한다.For example, the
또한, 상기 블록체인 서버(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
이후, 상기 블록체인 서버(200)는 해당 파일에 대한 IPFS URI, 해시값 등을 상기 단말(100)에 전송한다.Thereafter, the
일 예로, 상기 블록체인 서버(200)는 상기 제 11 IPFS URI, 상기 제 11 해시값 등을 상기 제 1 단말에 전송한다(S250).For example, the
이후, 상기 단말(100)은 앞서 전송된 파일, 부가 정보, 블록 저장 요청 정보, 단말(100)의 식별 정보 등에 응답하여 상기 블록체인 서버(200)로부터 전송되는 IPFS URI, 해시값 등을 수신한다.Thereafter, the terminal 100 receives the IPFS URI, hash value, etc. transmitted from the
또한, 상기 단말(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
이후, 상기 단말(100)은 상기 복수의 IPFS(300) 중 어느 하나의 IPFS(300)에 접속하여, 상기 수신된 해시값에 대응하는 암호화된 파일을 다운로드한다.Thereafter, the terminal 100 accesses any one
즉, 상기 단말(100)은 상기 수신된 IPFS URI를 근거로 상기 복수의 IPFS(300) 중 어느 하나의 IPFS(300)에 접속한다.That is, the terminal 100 accesses any one
또한, 상기 단말(100)은 상기 접속된 IPFS(300)와 연동하여, 상기 수신된 해시값을 근거로 해당 단말(100)의 사용자가 해당 해시값과 관련한 암호화된 파일에 대한 소유권자(또는 저작권자)인지 여부를 확인(또는 판단)한다. 이때, 상기 IPFS(300)는 상기 단말(100) 및 상기 블록체인 서버(200)와 연동하여, 상기 블록체인 서버(200)에 저장된 복수의 부가 정보(또는 복수의 암호화된 부가 정보) 중에서 해당 단말(100)(또는 해당 해시값)과 관련한 파일에 대응하는 부가 정보를 이용해서 해당 단말(100)의 사용자가 해당 해시값과 관련한 암호화된 파일에 대한 소유권자(또는 저작권자)인지 여부를 확인(또는 판단)할 수도 있다.In addition, the terminal 100 cooperates with the
상기 확인 결과(또는 상기 판단 결과), 해당 단말(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
일 예로, 상기 제 1 단말은 상기 수신된 제 11 IPFS URI를 근거로 상기 복수의 IPFS(300) 중 제 3 IPFS(300)에 접속하고, 상기 제 3 IPFS와 연동하여 상기 제 1 단말의 사용자가 상기 제 11 해시값에 대응하는 제 11 암호화된 파일의 소유권자인지 여부를 확인한다.For example, the first terminal accesses a
상기 확인 결과, 상기 제 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) 중에서 해당 파일과 관련해서 마스터 기능을 수행했던 상기 특정 IPFS(300)에서 전체적인 시스템의 부하를 줄이기 위해서, 유지 기간 정보를 포함하는 해당 파일과 관련한 Pin 정보를 근거로 해당 파일(또는 암호화된 파일)의 유지 기간이 지난 상태인지 여부를 1차로 판단(또는 확인)할 수도 있다.At this time, in order to reduce the overall system load in the
일 예로, 상기 제 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
일 예로, 상기 판단 결과, 해당 제 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)는 해당 특정 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
또한, 상기 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
또한, 상기 단말(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
일 예로, 상기 판단 결과, 해당 제 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
또한, 상기 제 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
본 발명의 실시예는 앞서 설명된 바와 같이, 단말에서 블록체인 서버에 저장한 전자 문서와 관련한 블록체인 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: 복수의 IPFS10: 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.
상기 복수의 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.
상기 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.
상기 블록체인 정보는,
상기 파일의 저작권자, 소유권자, 토큰 아이디, 파일 잠금키, 체인 정보, 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.
상기 암호화된 파일, 상기 생성된 블록체인 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.
상기 복수의 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.
상기 단말에 의해, 상기 복수의 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.
상기 복수의 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.
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)
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)
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 |
-
2022
- 2022-07-22 KR KR1020220090903A patent/KR102447797B1/en active IP Right Grant
Patent Citations (1)
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)
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)
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 |