KR102456903B1 - System for managing electronic document using ethereum and IPFS and method thereof - Google Patents
System for managing electronic document using ethereum and IPFS and method thereof Download PDFInfo
- Publication number
- KR102456903B1 KR102456903B1 KR1020220009306A KR20220009306A KR102456903B1 KR 102456903 B1 KR102456903 B1 KR 102456903B1 KR 1020220009306 A KR1020220009306 A KR 1020220009306A KR 20220009306 A KR20220009306 A KR 20220009306A KR 102456903 B1 KR102456903 B1 KR 102456903B1
- Authority
- KR
- South Korea
- Prior art keywords
- terminal
- file
- client server
- ipfs
- hash value
- Prior art date
Links
Images
Classifications
-
- 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/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
-
- 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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
Abstract
Description
본 발명은 이더리움과 IPFS를 활용한 전자문서 관리 시스템 및 그 방법에 관한 것으로서, 특히 단말에서 업로드하고자 하는 파일을 IPFS를 통해 분산 관리하고, IPFS를 통해 분산 관리되는 해당 파일의 해시값을 이더리움의 블록에 저장하는 이더리움과 IPFS를 활용한 전자문서 관리 시스템 및 그 방법을 제공하는 데 있다.The present invention relates to an electronic document management system and method using Ethereum and IPFS, and in particular, distributed management of a file to be uploaded from a terminal through IPFS, and a hash value of the file distributed and managed through IPFS, Ethereum It is to provide an electronic document management system and method using Ethereum and IPFS that are stored in blocks of
전자 문서 관리 시스템은 업무의 효율화 따위를 위해, 다양한 형태의 문서와 자료를 일관성 있게 전자적으로 통합하고 관리하는 시스템으로, 각종 전자 문서의 등록, 저장, 관리, 송수신, 조회 따위를 지원한다.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.
블록체인(blockchain)은 관리 대상 데이터를 분산 관리하기 위하여 데이터를 블록으로 구분하고, 각 블록을 고리 형태로 서로 연결하는 형식의 데이터 목록이다.A blockchain is a data list in the form of dividing data into blocks and linking each block to each other in a loop to manage data to be managed in a distributed manner.
이러한 블록체인을 적용한 전자 문서 관리 시스템이 연구되고 있으나, 이러한 블록체인이 적용된 전자 문서 관리 시스템은 원본 파일은 별도의 데이터베이스에 저장하고, 해당 파일의 정보만 블록체인으로 관리하는 형태로 구성되어, 원본 파일이 데이터베이스에 존재함으로써 이 역시 데이터 자체의 중앙 집중형 관리라는 틀에서 자유로울 수 없으며, 원본 파일이 디도스 공격 등에 의해 무력화될 경우에는 파일 정보를 블록체인으로 관리하고 있더라도 시스템이 정상 작동될 수 없다.Although an electronic document management system applying such a block chain is being studied, the electronic document management system to which such block chain is applied stores the original file in a separate database and manages only the information of the file with block chain. As the file exists in the database, it cannot be freed from the framework of centralized management of the data itself, and if the original file is incapacitated by a DDoS attack, the system cannot operate normally even if the file information is managed with a block chain. .
또한, 원본 파일을 직접 블록화시켜 보관하고자 할 경우, 블록에 파일을 담게 되면 블록체인의 특성상 지속적으로 블록이 생성됨에 따라 저장용량이 기하급수적으로 증가하며, 속도 또한 느려지고, 이에 따른 비용과 물리적 한계로 그 유지가 힘들다.In addition, if you want to block and store the original file directly, if you put the file in a block, the storage capacity increases exponentially as blocks are continuously created due to the nature of the block chain, and the speed is also slowed down, resulting in cost and physical limitations. It is difficult to maintain
본 발명의 목적은 단말에서 업로드하고자 하는 파일을 IPFS를 통해 분산 관리하고, IPFS를 통해 분산 관리되는 해당 파일의 해시값을 이더리움의 블록에 저장하는 이더리움과 IPFS를 활용한 전자문서 관리 시스템 및 그 방법을 제공하는 데 있다.An object of the present invention is an electronic document management system using Ethereum and IPFS that distributes and manages files to be uploaded from a terminal through IPFS, and stores the hash value of the file that is distributed and managed through IPFS in a block of Ethereum, and It's about providing a way.
본 발명의 다른 목적은 단말로부터 파일과 관련한 해시값이 입력되는 경우, IPFS를 통해 분산 관리 중인 해당 해시값과 관련한 파일을 불러와서 해당 파일의 내용을 확인 가능하도록 제공하는 이더리움과 IPFS를 활용한 전자문서 관리 시스템 및 그 방법을 제공하는 데 있다.Another object of the present invention is to use Ethereum and IPFS, which provide a file related to the hash value that is being distributed and managed through IPFS, so that the contents of the file can be checked when a hash value related to the file is input from the terminal. An object of the present invention is to provide an electronic document management system and a method therefor.
본 발명의 또 다른 목적은 단말에서 원본 파일과 관련한 해시값 및 파일의 진위 여부 확인을 위한 파일을 업로드하는 경우, POA 합의 알고리즘 또는 POW 합의 알고리즘을 통해 원본 파일과 업로드된 파일 간의 비교를 통해 진위 여부를 제공하는 이더리움과 IPFS를 활용한 전자문서 관리 시스템 및 그 방법을 제공하는 데 있다.Another object of the present invention is when the terminal uploads a file for checking the authenticity of a hash value related to an original file and a file, whether the file is authentic by comparing the original file and the uploaded file through a POA consensus algorithm or a POW consensus algorithm It is to provide an electronic document management system and method using Ethereum and IPFS that provide
본 발명의 실시예에 따른 이더리움과 IPFS를 활용한 전자문서 관리 시스템은 메타마스크(MetaMask)를 통해 클라이언트 서버에 접속하고, 상기 클라이언트 서버에서 제공하는 초기 화면을 표시하고, 상기 표시되는 초기화면 중에서, 사용자 입력에 따라 상기 초기화면 내의 유형 선택 메뉴에 포함된 복수의 항목 중에서 어느 하나의 항목이 선택되고, 상기 초기 화면에 포함된 파일 선택 메뉴에 따라 단말에 저장된 하나 이상의 파일 중에서 어느 하나의 파일이 선택된 후, 상기 초기 화면에 포함된 미리 설정된 업로드 메뉴가 선택될 때 상기 선택된 유형 정보, 상기 선택된 파일, 파일 업로드 요청 정보 및 단말의 식별 정보를 상기 클라이언트 서버에 전송하는 상기 단말; 복수의 IPFS 중에서 랜덤하게 선택되는 특정 IPFS에 상기 유형 정보, 상기 파일 및 상기 단말의 식별 정보를 전송하는 상기 클라이언트 서버; 및 상기 클라이언트 서버로부터 전송되는 상기 유형 정보 및 상기 파일을 근거로 해시값을 생성하고, 상기 생성된 해시값을 상기 클라이언트 서버를 경유하여 상기 단말에 전송하는 상기 특정 IPFS를 포함할 수 있다.The electronic document management system using Ethereum and IPFS according to an embodiment of the present invention accesses a client server through MetaMask, displays an initial screen provided by the client server, and among the displayed initial screens , any one of a plurality of items included in the type selection menu in the initial screen is selected according to a user input, and any one of the one or more files stored in the terminal according to the file selection menu included in the initial screen is selected After being selected, when a preset upload menu included in the initial screen is selected, the terminal transmits the selected type information, the selected file, file upload request information, and identification information of the terminal to the client server; the client server transmitting the type information, the file, and identification information of the terminal to a specific IPFS randomly selected from among a plurality of IPFSs; and the specific IPFS for generating a hash value based on the type information and the file transmitted from the client server, and transmitting the generated hash value to the terminal via the client server.
본 발명과 관련된 일 예로서 이더리움 서버를 더 포함하며, 상기 단말은, 상기 단말에 표시되는 초기화면 중에서, 상기 단말의 사용자 입력에 따라 상기 초기화면 내의 추가 정보 입력 메뉴에 포함된 복수의 입력 항목에 대응하는 복수의 입력값을 수신하고, 상기 단말의 초기 화면의 일측에 표시되는 미리 설정된 제출 메뉴가 선택될 때 상기 수신된 복수의 입력값, 블록 저장 요청 정보 및 상기 단말의 식별 정보를 상기 클라이언트 서버에 전송하며, 상기 클라이언트 서버는, 상기 단말로부터 전송되는 복수의 입력값 및 상기 단말의 식별 정보를 상기 이더리움 서버에 전송하며, 상기 이더리움 서버는, 상기 클라이언트 서버로부터 전송되는 복수의 입력값을 이더리움 블록에 저장하고, 트랜잭션 처리 결과를 상기 클라이언트 서버에 전송하며, 상기 클라이언트 서버는, 상기 트랜잭션 처리 결과를 상기 단말에 전송하며, 상기 단말은, 상기 클라이언트 서버로부터 전송되는 트랜잭션 처리 결과를 표시할 수 있다.An example related to the present invention further includes an Ethereum server, wherein the terminal includes a plurality of input items included in the additional information input menu in the initial screen according to a user input of the terminal among the initial screens displayed on the terminal. Receive a plurality of input values corresponding to , and when a preset submission menu displayed on one side of the initial screen of the terminal is selected, the received plurality of input values, block storage request information, and identification information of the terminal to the client transmitting to a server, wherein the client server transmits a plurality of input values transmitted from the terminal and identification information of the terminal to the Ethereum server, wherein the Ethereum server includes a plurality of input values transmitted from the client server stores in the Ethereum block, and transmits the transaction processing result to the client server, the client server transmits the transaction processing result to the terminal, and the terminal displays the transaction processing result transmitted from the client server can do.
본 발명의 실시예에 따른 이더리움과 IPFS를 활용한 전자문서 관리 방법은 단말에 의해, 메타마스크를 통해 클라이언트 서버에 접속하고, 상기 클라이언트 서버에서 제공하는 초기 화면을 표시하는 단계; 상기 단말에 표시되는 초기화면 중에서, 상기 단말의 사용자 입력에 따라 상기 초기화면 내의 유형 선택 메뉴에 포함된 복수의 항목 중에서 어느 하나의 항목이 선택되고, 상기 초기 화면에 포함된 파일 선택 메뉴에 따라 상기 단말에 저장된 하나 이상의 파일 중에서 어느 하나의 파일이 선택된 후, 상기 초기 화면에 포함된 미리 설정된 업로드 메뉴가 선택될 때, 상기 단말에 의해, 상기 선택된 유형 정보, 상기 선택된 파일, 파일 업로드 요청 정보 및 상기 단말의 식별 정보를 상기 클라이언트 서버에 전송하는 단계; 상기 클라이언트 서버에 의해, 복수의 IPFS 중에서 랜덤하게 선택되는 특정 IPFS에 상기 유형 정보, 상기 파일 및 상기 단말의 식별 정보를 전송하는 단계; 상기 특정 IPFS에 의해, 상기 클라이언트 서버로부터 전송되는 상기 유형 정보 및 상기 파일을 근거로 해시값을 생성하고, 상기 생성된 해시값을 상기 클라이언트 서버를 경유하여 상기 단말에 전송하는 단계; 및 상기 단말에 의해, 상기 전송된 파일 업로드 요청 정보에 응답하여 전송되는 해시값을 표시하는 단계를 포함할 수 있다.An electronic document management method using Ethereum and IPFS according to an embodiment of the present invention includes the steps of connecting to a client server through a metamask by a terminal, and displaying an initial screen provided by the client server; Among the initial screens displayed on the terminal, any one of a plurality of items included in the type selection menu in the initial screen is selected according to a user input of the terminal, and according to the file selection menu included in the initial screen, the After any one of the one or more files stored in the terminal is selected, when a preset upload menu included in the initial screen is selected, by the terminal, the selected type information, the selected file, the file upload request information and the transmitting identification information of the terminal to the client server; transmitting, by the client server, the type information, the file, and identification information of the terminal to a specific IPFS randomly selected from among a plurality of IPFSs; generating a hash value based on the file and the type information transmitted from the client server by the specific IPFS, and transmitting the generated hash value to the terminal via the client server; and displaying, by the terminal, a hash value transmitted in response to the transmitted file upload request information.
본 발명과 관련된 일 예로서 상기 특정 IPFS에 의해, 상기 클라이언트 서버로부터 전송되는 유형 정보 및 파일을 근거로 상기 복수의 IPFS 중에서 상기 특정 IPFS를 제외한 나머지 IPFS와 연동하여, 상기 파일을 분산 저장하는 단계를 더 포함할 수 있다.As an example related to the present invention, based on the type information and the file transmitted from the client server by the specific IPFS, interworking with the remaining IPFS except for the specific IPFS among the plurality of IPFS, and distributing and storing the file may include more.
본 발명과 관련된 일 예로서 상기 해시값을 표시하는 단계는, 상기 초기화면 내의 추가 정보 입력 메뉴와 관련한 해시값 입력 항목에 상기 해시값을 자동 입력하여 표시할 수 있다.As an example related to the present invention, the displaying of the hash value may include automatically inputting the hash value into a hash value input item related to an additional information input menu in the initial screen and displaying the hash value.
본 발명과 관련된 일 예로서 상기 단말에 의해, 상기 단말에 표시되는 초기화면 중에서, 상기 단말의 사용자 입력에 따라 상기 초기화면 내의 추가 정보 입력 메뉴에 포함된 복수의 입력 항목에 대응하는 복수의 입력값을 수신하는 단계; 상기 단말의 초기 화면의 일측에 표시되는 미리 설정된 제출 메뉴가 선택될 때, 상기 단말에 의해, 상기 수신된 복수의 입력값, 블록 저장 요청 정보 및 상기 단말의 식별 정보를 상기 클라이언트 서버에 전송하는 단계; 상기 클라이언트 서버에 의해, 상기 단말로부터 전송되는 복수의 입력값 및 상기 단말의 식별 정보를 이더리움 서버에 전송하는 단계; 상기 이더리움 서버에 의해, 상기 클라이언트 서버로부터 전송되는 복수의 입력값을 이더리움 블록에 저장하는 단계; 상기 이더리움 서버에 의해, 트랜잭션 처리 결과를 상기 클라이언트 서버에 전송하는 단계; 상기 클라이언트 서버에 의해, 상기 트랜잭션 처리 결과를 상기 단말에 전송하는 단계; 및 상기 단말에 의해, 상기 클라이언트 서버로부터 전송되는 트랜잭션 처리 결과를 표시하는 단계를 더 포함할 수 있다.As an example related to the present invention, among the initial screen displayed on the terminal by the terminal, a plurality of input values corresponding to a plurality of input items included in the additional information input menu in the initial screen according to a user input of the terminal receiving; When a preset submission menu displayed on one side of the initial screen of the terminal is selected, transmitting, by the terminal, the received plurality of input values, block storage request information, and identification information of the terminal to the client server ; transmitting, by the client server, a plurality of input values transmitted from the terminal and identification information of the terminal to an Ethereum server; storing, by the Ethereum server, a plurality of input values transmitted from the client server in an Ethereum block; transmitting, by the Ethereum server, a transaction processing result to the client server; transmitting, by the client server, the transaction processing result to the terminal; and displaying, by the terminal, a transaction processing result transmitted from the client server.
본 발명과 관련된 일 예로서 상기 복수의 입력값을 이더리움 블록에 저장하는 단계는, 상기 복수의 입력값에 미리 설정된 합의 알고리즘 방식인 POA(Proof of Authority) 및 스마트 컨트랙트(smart contract)를 적용하여 상기 이더리움 블록에 저장할 수 있다.As an example related to the present invention, the step of storing the plurality of input values in an Ethereum block may include applying a POA (Proof of Authority) and a smart contract, which are preset consensus algorithm methods, to the plurality of input values. It can be stored in the Ethereum block.
본 발명과 관련된 일 예로서 상기 단말에 의해, 상기 단말에 표시되는 초기화면 중에서, 상기 단말의 사용자 입력에 따라 상기 초기화면 내의 해시값 입력 메뉴에 포함된 해시값 입력 항목에 대응하는 사용자 입력 해시값을 수신하는 단계; 상기 초기 화면의 일측에 표시되는 미리 설정된 파일보기 메뉴가 선택될 때, 상기 단말에 의해, 상기 사용자 입력 해시값, 파일 검색 요청 정보 및 상기 단말의 식별 정보를 상기 클라이언트 서버에 전송하는 단계; 상기 클라이언트 서버에 의해, 상기 복수의 IPFS와 연동하여, 상기 사용자 입력 해시값과 관련해서 하나 이상의 IPFS에 분산 저장된 복수의 서브 파일을 수집하는 단계; 상기 클라이언트 서버에 의해, 상기 수집된 복수의 서브 파일을 조합하여, 상기 사용자 입력 해시값에 대응하는 하나의 원본 파일을 생성하는 단계; 상기 클라이언트 서버에 의해, 상기 생성된 원본 파일을 상기 단말에 전송하는 단계; 및 상기 단말에 의해, 상기 클라이언트 서버로부터 전송되는 원본 파일을 표시하거나 다운로드하는 단계를 더 포함할 수 있다.As an example related to the present invention, from among the initial screens displayed on the terminal by the terminal, a user input hash value corresponding to a hash value input item included in the hash value input menu in the initial screen according to a user input of the terminal receiving; transmitting, by the terminal, the user input hash value, file search request information, and identification information of the terminal to the client server when a preset file view menu displayed on one side of the initial screen is selected; collecting, by the client server, a plurality of sub-files distributed and stored in one or more IPFSs in association with the user input hash value in association with the plurality of IPFS; generating, by the client server, a single original file corresponding to the user input hash value by combining the plurality of collected sub files; transmitting, by the client server, the generated original file to the terminal; and displaying or downloading, by the terminal, the original file transmitted from the client server.
본 발명과 관련된 일 예로서 상기 단말에 표시되는 초기화면 중에서, 상기 단말의 사용자 입력에 따라 상기 초기화면 내의 다른 해시값 입력 메뉴에 포함된 다른 해시값 입력 항목에 대응하는 다른 해시값을 수신하고, 상기 초기화면 내의 추가 파일 선택 메뉴에 따라 상기 단말에 저장된 하나 이상의 파일 중에서 어느 하나의 특정 파일이 선택된 후, 상기 초기화면 내의 파일 진위 여부 확인 메뉴가 선택될 때, 상기 단말에 의해, 상기 수신된 다른 해시값, 상기 선택된 특정 파일, 진위 여부 확인 요청 정보 및 상기 단말의 식별 정보를 상기 클라이언트 서버에 전송하는 단계; 상기 클라이언트 서버에 의해, 복수의 IPFS 중에서 랜덤하게 선택되는 다른 특정 IPFS에 상기 특정 파일 및 상기 단말의 식별 정보를 전송하는 단계; 상기 다른 특정 IPFS에 의해, 상기 클라이언트 서버로부터 전송되는 상기 특정 파일을 근거로 또 다른 해시값을 생성하고, 상기 생성된 또 다른 해시값을 상기 클라이언트 서버에 전송하는 단계; 상기 클라이언트 서버에 의해, 상기 다른 특정 IPFS로부터 전송되는 또 다른 해시값을 수신하는 단계; 상기 클라이언트 서버에 의해, 상기 단말로부터 전송된 다른 해시값과 상기 다른 특정 IPFS로부터 전송된 또 다른 해시값이 일치하는지 여부를 판단하는 단계; 상기 클라이언트 서버에 의해, 상기 판단 결과에 따라 특정 파일의 진위 여부에 대한 정보를 생성하고, 상기 생성된 특정 파일의 진위 여부에 대한 정보를 상기 단말에 전송하는 단계; 및 상기 단말에 의해, 상기 클라이언트 서버로부터 전송되는 특정 파일의 진위 여부에 대한 정보를 표시하는 단계를 더 포함할 수 있다.As an example related to the present invention, among the initial screen displayed on the terminal, according to a user input of the terminal, another hash value corresponding to another hash value input item included in another hash value input menu in the initial screen is received, After any one specific file is selected from one or more files stored in the terminal according to the additional file selection menu in the initial screen, when the file authenticity check menu in the initial screen is selected, by the terminal, the received other transmitting a hash value, the selected specific file, authenticity check request information, and identification information of the terminal to the client server; transmitting, by the client server, the specific file and identification information of the terminal to another specific IPFS randomly selected from among a plurality of IPFSs; generating another hash value based on the specific file transmitted from the client server by the other specific IPFS, and transmitting the generated another hash value to the client server; receiving, by the client server, another hash value transmitted from the other specific IPFS; determining, by the client server, whether another hash value transmitted from the terminal matches another hash value transmitted from the other specific IPFS; generating, by the client server, information on whether a specific file is authentic or not according to the determination result, and transmitting information on whether the generated specific file is authentic or not to the terminal; and displaying, by the terminal, information on whether the specific file transmitted from the client server is authentic or not.
본 발명과 관련된 일 예로서 상기 특정 파일의 진위 여부에 대한 정보는, 상기 특정 파일과 관련한 또 다른 해시값과, 상기 특정 파일이 상기 다른 해시값에 대응하는 감정 대상 파일과 일치하지 않음을 나타내는 정보 또는 상기 특정 파일이 감정 대상 파일과 일치함을 나타내는 정보를 포함할 수 있다.As an example related to the present invention, the information on whether the specific file is authentic or not is information indicating that another hash value related to the specific file and the specific file do not match the analysis target file corresponding to the other hash value Alternatively, it may include information indicating that the specific file matches the analysis target file.
본 발명은 단말에서 업로드하고자 하는 파일을 IPFS를 통해 분산 관리하고, IPFS를 통해 분산 관리되는 해당 파일의 해시값을 이더리움의 블록에 저장함으로써, 원본 파일에 대한 신뢰성을 제공하고, 원본 파일에 대한 공격 또는 삭제의 문제는 프라이빗 IPFS를 통해 해결할 수 있는 효과가 있다.The present invention distributes management of files to be uploaded from the terminal through IPFS, and stores the hash value of the file that is distributed and managed through IPFS in a block of Ethereum, thereby providing reliability for the original file, and providing reliability for the original file. The problem of attack or deletion has an effect that can be solved through private IPFS.
또한, 본 발명은 단말로부터 파일과 관련한 해시값이 입력되는 경우, IPFS를 통해 분산 관리 중인 해당 해시값과 관련한 파일을 불러와서 해당 파일의 내용을 확인 가능하도록 제공함으로써, 전체 시스템의 운영 효율을 향상시킬 수 있는 효과가 있다.In addition, in the present invention, when a hash value related to a file is input from the terminal, the file related to the hash value that is being distributed and managed through IPFS is called and the contents of the file are provided so that the contents of the file can be checked, thereby improving the operational efficiency of the entire system There is an effect that can make it happen.
또한, 본 발명은 단말에서 원본 파일과 관련한 해시값 및 파일의 진위 여부 확인을 위한 파일을 업로드하는 경우, POA 합의 알고리즘 또는 POW 합의 알고리즘을 통해 원본 파일과 업로드된 파일 간의 비교를 통해 진위 여부를 제공함으로써, 유지 관리가 용이하고, 네트워크의 안정성을 제공할 수 있는 효과가 있다.In addition, the present invention provides the authenticity or not through comparison between the original file and the uploaded file through the POA consensus algorithm or the POW consensus algorithm when the terminal uploads a hash value related to the original file and a file for checking the authenticity of the file. By doing so, there is an effect that maintenance is easy and network stability can be provided.
도 1은 본 발명의 실시예에 따른 이더리움과 IPFS를 활용한 전자문서 관리 시스템의 구성을 나타낸 블록도이다.
도 2는 본 발명의 실시예에 따른 POW 알고리즘을 이용한 이더리움 네트워크의 노드 개수에 따른 트랜잭션 완료까지의 속도 차이를 측정한 그래프이다.
도 3은 본 발명의 실시예에 따른 POA 알고리즘을 이용한 이더리움 네트워크의 노드 개수에 따른 트랜잭션 완료까지의 속도 차이를 측정한 그래프이다.
도 4는 본 발명의 실시예에 따른 60시간 경과 후 노드 3개의 POW와 POA의 트랜잭션 완료시까지의 시간을 측정한 그래프이다.
도 5 및 도 6은 본 발명의 실시예에 따른 퍼블릭 IPFS와 프라이빗 IPFS에서 파일 용량을 10MB에서 90MB까지 각각 10MB씩 사이즈를 증가시켜 업로드 속도와 다운로드 속도를 비교한 그래프이다.
도 7 및 도 8은 본 발명의 실시예에 따른 파일 용량별로 1ms당 업로드 바이트 및 다운로드 바이트로 환산한 그래프이다.
도 9 내지 도 11은 본 발명의 실시예에 따른 이더리움과 IPFS를 활용한 전자문서 관리 방법을 나타낸 흐름도이다.
도 12 내지 도 16은 본 발명의 실시예에 따른 단말의 화면 예를 나타낸 도이다.1 is a block diagram showing the configuration of an electronic document management system utilizing Ethereum and IPFS according to an embodiment of the present invention.
2 is a graph measuring the difference in speed until transaction completion according to the number of nodes in the Ethereum network using the POW algorithm according to an embodiment of the present invention.
3 is a graph measuring the difference in speed until transaction completion according to the number of nodes in the Ethereum network using the POA algorithm according to an embodiment of the present invention.
4 is a graph of measuring the time until transaction completion of POW and POA of three nodes after 60 hours have elapsed according to an embodiment of the present invention.
5 and 6 are graphs comparing upload speed and download speed by increasing the file size by 10 MB from 10 MB to 90 MB, respectively, in public IPFS and private IPFS according to an embodiment of the present invention.
7 and 8 are graphs converted into upload bytes and download bytes per 1 ms for each file size according to an embodiment of the present invention.
9 to 11 are flowcharts illustrating an electronic document management method using Ethereum and IPFS according to an embodiment of the present invention.
12 to 16 are diagrams showing examples of screens of a terminal 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 electronic
도 1에 도시한 바와 같이, 이더리움과 IPFS를 활용한 전자문서 관리 시스템(10)은 단말(100), 클라이언트 서버(200), 복수의 IPFS(300) 및 이더리움 서버(400)로 구성된다. 도 1에 도시된 전자문서 관리 시스템(10)의 구성 요소 모두가 필수 구성 요소인 것은 아니며, 도 1에 도시된 구성 요소보다 많은 구성 요소에 의해 전자문서 관리 시스템(10)이 구현될 수도 있고, 그보다 적은 구성 요소에 의해서도 전자문서 관리 시스템(10)이 구현될 수도 있다.As shown in FIG. 1 , the electronic
상기 단말(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) 및 상기 이더리움 서버(400)는 웹 서버, 데이터베이스 서버, 프록시 서버 등의 형태로 구현될 수 있다. 또한, 상기 클라이언트 서버(200), 상기 복수의 IPFS(300) 및 상기 이더리움 서버(400)에는 네트워크 부하 분산 메커니즘, 내지 해당 상기 클라이언트 서버(200), 해당 복수의 IPFS(300) 및 해당 이더리움 서버(400)가 인터넷 또는 다른 네트워크상에서 동작할 수 있도록 하는 다양한 소프트웨어 중 하나 이상이 설치될 수 있으며, 이를 통해 컴퓨터화된 시스템으로 구현될 수 있다. 또한, 네트워크는 http 네트워크일 수 있으며, 전용 회선(private line), 인트라넷 또는 임의의 다른 네트워크일 수 있다. 나아가, 상기 단말(100), 상기 클라이언트 서버(200), 상기 복수의 IPFS(300) 및 상기 이더리움 서버(400) 간의 연결은 데이터가 임의의 해커 또는 다른 제3자에 의한 공격을 받지 않도록 보안 네트워크로 연결될 수 있다. 또한, 상기 클라이언트 서버(200), 상기 복수의 IPFS(300) 및 상기 이더리움 서버(400)는 복수의 데이터베이스 서버를 포함할 수 있으며, 이러한 데이터베이스 서버가 분산 데이터베이스 서버 아키텍처를 비롯한 임의의 유형의 네트워크 연결을 통해 상기 클라이언트 서버(200), 상기 복수의 IPFS(300) 및 상기 이더리움 서버(400)와 별도로 연결되는 방식으로 구현될 수 있다.The
상기 단말(100), 상기 클라이언트 서버(200), 상기 복수의 IPFS(300) 및 상기 이더리움 서버(400) 각각은 다른 단말들과의 통신 기능을 수행하기 위한 통신부(미도시), 다양한 정보 및 프로그램(또는 애플리케이션)을 저장하기 위한 저장부(미도시), 다양한 정보 및 프로그램 실행 결과를 표시하기 위한 표시부(미도시), 상기 다양한 정보 및 프로그램 실행 결과에 대응하는 음성 정보를 출력하기 위한 음성 출력부(미도시), 각 단말의 다양한 구성 요소 및 기능을 제어하기 위한 제어부(미도시) 등을 포함할 수 있다.Each of the terminal 100, the
상기 단말(100)은 상기 클라이언트 서버(200), 상기 복수의 IPFS(300), 상기 이더리움 서버(400) 등과 통신한다. 이때, 상기 단말(100)은 해당 단말(100)에서 저장 중인 파일을 IPFS(300)를 통해 분산 저장하거나, 이더리움 서버(400)를 통해 해시값과 추가 정보를 이더리움 블록에 저장하거나, 해시값을 이용해서 IPFS(300)에 저장된 파일을 확인 또는 다운로드하거나, 해시값을 이용해서 특정 파일에 대한 진위 여부를 확인하고자 하는 사용자가 소지한 단말일 수 있다.The terminal 100 communicates with the
또한, 상기 단말(100)은 상기 클라이언트 서버(200)와의 연동에 의해, 상기 게임 서버(200)에서 제공하는 전용 앱 및/또는 웹 사이트를 통해 파일 업로드 기능, 해시값, 추가 정보 등의 이더리움 블록 저장 기능, 해시값에 대응하는 파일 확인/다운로드 기능, 특정 파일의 진위여부 확인 기능 등을 제공받기 위한 일반 사용자로 회원 가입하며, 개인 정보 등을 상기 클라이언트 서버(200)에 등록한다. 이때, 상기 개인 정보는 아이디, 이메일 주소, 패스워드(또는 비밀번호), 이름, 성별, 생년월일, 연락처, 주소지(또는 주소정보/거주지역) 등을 포함한다.In addition, the terminal 100, by interworking with the
또한, 상기 단말(100)은 해당 단말(100)의 사용자가 가입한 SNS 계정 정보 또는 타사이트 계정 정보를 이용하여 상기 클라이언트 서버(200)에 사용자로 회원 가입할 수도 있다. 여기서, 상기 SNS 계정은 페이스북, 트위터, 인스타그램, 카카오 스토리, 네이버 블로그 등과 관련한 정보일 수 있다. 또한, 상기 타사이트 계정은 유튜브, 카카오, 네이버 등과 관련한 정보일 수 있다.In addition, the terminal 100 may sign up as a user to 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, including a mobile phone, credit card, i-PIN, etc.) to perform the membership registration procedure for the
또한, 회원 가입이 완료된 후, 상기 단말(100)은 상기 클라이언트 서버(200)에서 제공하는 서비스를 이용하기 위해서, 상기 클라이언트 서버(200)로부터 제공되는 전용 앱(또는 애플리케이션/응용 프로그램/특정 앱)을 해당 단말(100)에 설치한다. 이때, 상기 전용 앱은 파일 업로드 기능, 해시값, 추가 정보 등의 이더리움 블록 저장 기능, 해시값에 대응하는 파일 확인/다운로드 기능, 특정 파일의 진위여부 확인 기능 등을 수행하기 위한 앱일 수 있다.In addition, after membership registration is completed, the terminal 100 is a dedicated app (or application/application program/specific app) provided from the
또한, 상기 단말(100)은 상기 이더리움 서버(400)와의 연동에 의해, 이더리움 블록에 정보 저장을 위해서 일반 사용자로 회원 가입하며, 개인 정보 등을 상기 이더리움 서버(400)에 등록한다. 이때, 상기 개인 정보는 아이디, 이메일 주소, 패스워드(또는 비밀번호), 이름, 성별, 생년월일, 연락처, 주소지(또는 주소정보/거주지역) 등을 포함한다.In addition, the terminal 100 joins as a general user to store information in the Ethereum block by interworking with the
또한, 상기 단말(100)은 해당 단말(100)의 사용자가 가입한 SNS 계정 정보 또는 타사이트 계정 정보를 이용하여 상기 이더리움 서버(400)에 사용자로 회원 가입할 수도 있다. 여기서, 상기 SNS 계정은 페이스북, 트위터, 인스타그램, 카카오 스토리, 네이버 블로그 등과 관련한 정보일 수 있다. 또한, 상기 타사이트 계정은 유튜브, 카카오, 네이버 등과 관련한 정보일 수 있다.In addition, the terminal 100 may sign up as a user to the
또한, 회원 가입 절차 수행 시, 상기 단말(100)은 본인 인증 수단(예를 들어 이동 전화, 신용카드, 아이핀 등 포함)을 통한 인증 기능을 완료해야 상기 이더리움 서버(400)에 대한 회원 가입 절차를 정상적으로 완료할 수 있다.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)은 상기 이더리움 서버(400)에서 제공하는 서비스를 이용하기 위해서, 상기 이더리움 서버(400)로부터 발급되는 전자지갑(또는 전자지갑과 관련한 계정 정보)을 해당 단말(100)에 설치(또는 등록/저장)한다.In addition, after membership registration is completed, the terminal 100 uses an electronic wallet (or electronic wallet related account information) issued from the
또한, 상기 단말(100)은 메타마스크(MetaMask)를 통해 상기 클라이언트 서버(200)에 접속하고, 상기 클라이언트 서버(200)에서 제공하는 초기 화면을 표시(또는 출력)한다. 여기서, 상기 초기화면은 IPFS(300)에 업로드할 파일과 관련해서 IPFS의 유형인 퍼블릭(public) 또는 프라이빗(private)을 선택하기 위한 유형 선택 메뉴(또는 유형 선택 항목/버튼), IPFS(300)에 업로드하고자 하는 파일을 선택하기 위한 파일 선택 메뉴, IPFS(300)에 파일을 업로드하기 위한 업로드 메뉴, 파일 업로드에 따른 해시값을 표시하기 위한 업로드 결과 표시 메뉴(또는 업로드 결과/해시값 표시 영역), 파일 업로드에 따른 해시값, 파일과 관련한 추가 정보 등을 입력하기 위한 추가 정보 입력 메뉴, 상기 추가 정보 입력 메뉴를 통해 입력된 정보들을 이더리움 블록에 저장하기 위한 제출 메뉴, 트랜잭션 처리 결과를 표시하기 위한 트랜잭션 결과 표시 메뉴(또는 트랜잭션 결과 표시 영역), 단말(100)의 사용자 입력에 따른 해시값과 관련한 파일을 확인하거나 다운로드하기 위한 해시값 입력 메뉴, 상기 해시값 입력 메뉴를 통해 입력된 해시값과 관련한 파일을 검색하기 위한 파일보기 메뉴, 해당 해시값과 관련한 파일 검색에 따라 검색된 파일을 다운로드하기 위한 다운로드 메뉴, 단말(100)의 사용자 입력에 따른 특정 파일의 진위 여부를 확인하기 위한 확인 대상 파일과 관련한 확인 대상 해시값을 입력하기 위한 다른 해시값 입력 메뉴, 진위 여부를 확인하고자 하는 특정 파일을 선택하기 위한 추가 파일 선택 메뉴, 단말(100)의 사용자 입력에 따른 특정 파일의 진위여부를 확인하기 위한 파일 진위 여부 확인 메뉴, 파일 진위 여부 결과를 표시하기 위한 진위 여부 결과 표시 메뉴(또는 진위 여부 결과 표시 영역) 등을 포함한다.In addition, the terminal 100 accesses the
본 발명의 실시예에서, 상기 초기화면 내에 상기 IPFS(300)로의 파일을 업로드하기 위한 메뉴, 이더리움 블록에 정보를 저장하기 위한 메뉴, 해시값에 대응하는 파일을 검색 및 다운로드하기 위한 메뉴, 특정 파일의 진위 여부를 확인하기 위한 메뉴 등을 한 번에 표시하도록 구성하고 있으나, 이에 한정되는 것은 아니며, 설계자의 설계에 따라, 상기 초기화면은 복수의 탭(tap)을 통해 기능별로(예를 들어 업로드 탭, 파일보기 탭, 파일 진위 여부 확인 탭 등 포함) 해당 메뉴들을 분리하여 사용자 인터페이스를 구성할 수도 있다.In an embodiment of the present invention, a menu for uploading a file to the
또한, 상기 단말(100)에 표시되는 초기화면 중에서, 해당 단말(100)의 사용자 입력(또는 사용자 선택/터치/제어)에 따라 상기 유형 선택 메뉴에 포함된 복수의 항목 중에서 어느 하나의 항목(예를 들어 퍼블릭, 프라이빗 등 포함)이 선택되고, 상기 파일 선택 메뉴에 따라 해당 단말(100)에 저장된 하나 이상의 파일 중에서 어느 하나의 파일이 선택된 후, 상기 미리 설정된 업로드 메뉴가 선택되는 경우, 상기 단말(100)은 상기 선택된 유형 정보(예를 들어 퍼블릭, 프라이빗 등 포함), 상기 선택된 파일, 파일 업로드 요청 정보, 상기 단말(100)의 식별 정보 등을 상기 클라이언트 서버(200)에 전송한다. 여기서, 상기 단말(100)의 식별 정보는 MDN(Mobile Directory Number), 모바일 IP, 모바일 MAC, Sim(subscriber identity module: 가입자 식별 모듈) 카드 고유정보, 시리얼번호 등을 포함한다. 이때, 상기 업로드 메뉴는 디폴트로 비활성화 상태를 유지하다가 상기 단말(100)에서 상기 유형 정보 및 상기 파일이 선택된 경우에 활성화될 수 있다.In addition, among the initial screen displayed on the terminal 100, according to a user input (or user selection/touch/control) of 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 stored in the terminal 100 to the
또한, 상기 단말(100)은 앞서 전송된 상기 유형 정보, 상기 파일, 상기 파일 업로드 요청 정보 등에 응답하여 상기 클라이언트 서버(200)로부터 전송되는 해시값 등을 수신한다.In addition, the terminal 100 receives the hash value transmitted from the
또한, 상기 단말(100)은 상기 수신된 해시값을 표시(또는 출력)한다. 이때, 상기 단말(100)은 상기 초기화면 내의 추가 정보 입력 메뉴와 관련한 해시값 입력 항목에 상기 수신된 해시값을 자동 입력하여 표시할 수도 있다.In addition, the terminal 100 displays (or outputs) the received hash value. In this case, the terminal 100 may automatically input and display the received hash value in the hash value input item related to the additional information input menu in the initial screen.
또한, 상기 단말(100)에 표시되는 초기화면 중에서, 상기 단말(100)의 사용자 입력(또는 사용자 선택/터치/제어)에 따라 상기 추가 정보 입력 메뉴에 포함된 복수의 입력 항목에 대응하는 복수의 입력값을 수신한다. 여기서, 상기 복수의 입력값은 해시값, 추가 정보(예를 들어 작성자명, 회사명, 부서명/팀명, 날짜 등 포함) 등을 포함한다.In addition, among the initial screen displayed on the terminal 100 , a plurality of input items corresponding to a plurality of input items included in the additional information input menu according to a user input (or user selection/touch/control) of the terminal 100 are provided. receive input. Here, the plurality of input values include hash values and additional information (eg, author name, company name, department/team name, date, etc.).
또한, 상기 단말(100)의 초기 화면의 일측에 표시되는 상기 미리 설정된 제출 메뉴가 선택되는 경우, 상기 단말(100)은 상기 수신된 복수의 입력값, 블록 저장 요청 정보, 상기 단말(100)의 식별 정보 등을 상기 클라이언트 서버(200)에 전송한다. 이때, 상기 제출 메뉴는 디폴트로 비활성화 상태를 유지하다가 상기 단말(100)에서 상기 추가 정보 입력 메뉴에 포함된 복수의 입력 항목에 대응하는 복수의 입력값을 수신하는 경우에 활성화될 수 있다.In addition, when the preset submission menu displayed on one side of the initial screen of the terminal 100 is selected, the terminal 100 receives the plurality of input values, block storage request information, and It transmits identification information and the like to the
또한, 상기 단말(100)은 앞서 전송된 상기 복수의 입력값, 상기 블록 저장 요청 정보 등에 응답하여 상기 클라이언트 서버(200)로부터 전송되는 트랜잭션 처리 결과 등을 수신한다.In addition, the terminal 100 receives the transaction processing result transmitted from the
또한, 상기 단말(100)은 상기 수신된 트랜잭션 처리 결과 등을 표시(또는 출력)한다. 이때, 상기 단말(100)은 상기 초기화면 내의 트랜잭션 결과 표시 메뉴에 상기 수신된 트랜잭션 처리 결과 등을 자동으로 표시할 수도 있다.In addition, the terminal 100 displays (or outputs) the received transaction processing result and the like. In this case, the terminal 100 may automatically display the received transaction processing result, etc. on the transaction result display menu in the initial screen.
또한, 상기 단말(100)에 표시되는 초기화면 중에서, 상기 단말(100)의 사용자 입력(또는 사용자 선택/터치/제어)에 따라 상기 해시값 입력 메뉴에 포함된 해시값 입력 항목에 대응하는 사용자 입력 해시값을 수신한다. 여기서, 상기 사용자 입력 해시값은 해당 단말(100)의 사용자가 특정 해시값에 대응하는 파일 내용을 확인하거나 또는 해당 특정 해시값에 대응하는 파일을 다운로드하기 위한 해시값일 수 있다.In addition, among the initial screen displayed on the terminal 100, a user input corresponding to a hash value input item included in the hash value input menu according to a user input (or user selection/touch/control) of the terminal 100 Receive a hash value. Here, the user input hash value may be a hash value for the user of the terminal 100 to check the contents of a file corresponding to a specific hash value or to download a file corresponding to the specific hash value.
또한, 상기 단말(100)의 초기 화면의 일측에 표시되는 상기 미리 설정된 파일보기 메뉴가 선택되는 경우, 상기 단말(100)은 상기 수신된 사용자 입력 해시값, 파일 검색 요청 정보, 상기 단말(100)의 식별 정보 등을 상기 클라이언트 서버(200)에 전송한다. 이때, 상기 파일보기 메뉴는 디폴트로 비활성화 상태를 유지하다가 상기 단말(100)에서 상기 해시값 입력 메뉴에 포함된 하나 이상의 항목에 대응하는 입력값(예를 들어 상기 사용자 입력 해시값 등 포함)을 수신하는 경우에 활성화될 수 있다.In addition, when the preset file view menu displayed on one side of the initial screen of the terminal 100 is selected, the terminal 100 displays the received user input hash value, file search request information, and the terminal 100 . and transmits the identification information of the
또한, 상기 단말(100)은 앞서 전송된 사용자 입력 해시값, 파일 검색 요청 정보 등에 응답하여 상기 클라이언트 서버(200)로부터 전송되는 원본 파일을 수신한다.In addition, the terminal 100 receives the original file transmitted from the
또한, 상기 단말(100)은 상기 수신된 원본 파일을 표시(또는 출력)한다. 여기서, 상기 단말(100)은 상기 수신된 원본 파일을 해당 단말(100)에 다운로드(또는 저장)할 수도 있다.In addition, the terminal 100 displays (or outputs) the received original file. Here, the terminal 100 may download (or store) the received original file to the
이때, 해당 사용자 입력 해시값과 관련한 파일이 상기 IPFS(300)에 존재하지 않은 경우, 상기 단말(100)은 앞서 전송된 사용자 입력 해시값, 파일 검색 요청 정보 등에 응답하여 상기 클라이언트 서버(200)로부터 전송되는 해당 사용자 입력 해시값과 관련한 파일이 상기 IPFS(300)에 존재하지 않음을 나타내는 정보 등을 수신하고, 상기 수신된 해당 사용자 입력 해시값과 관련한 파일이 상기 IPFS(300)에 존재하지 않음을 나타내는 정보 등을 표시(또는 출력)할 수도 있다.At this time, if the file related to the corresponding user input hash value does not exist in the
또한, 상기 단말(100)에 표시되는 초기화면 중에서, 상기 단말(100)의 사용자 입력(또는 사용자 선택/터치/제어)에 따라 상기 다른 해시값 입력 메뉴에 포함된 다른 해시값 입력 항목에 대응하는 다른 해시값을 수신하고, 상기 추가 파일 선택 메뉴에 따라 해당 단말(100)에 저장된 하나 이상의 파일 중에서 어느 하나의 특정 파일이 선택된 후, 상기 미리 설정된 파일 진위 여부 확인 메뉴가 선택되는 경우, 상기 단말(100)은 상기 수신된 다른 해시값, 상기 선택된 특정 파일, 진위 여부 확인 요청 정보, 상기 단말(100)의 식별 정보 등을 상기 클라이언트 서버(200)에 전송한다. 이때, 상기 파일 진위 여부 확인 메뉴는 디폴트로 비활성화 상태를 유지하다가 상기 단말(100)에서 상기 다른 해시값을 수신하고 상기 특정 파일이 선택된 경우에 활성화될 수 있다.In addition, among the initial screen displayed on the terminal 100, according to a user input (or user selection/touch/control) of the terminal 100, the other hash value input items included in the other hash value input menu correspond to After receiving another hash value and selecting any one specific file from among one or more files stored in the terminal 100 according to the additional file selection menu, if the preset file authenticity check menu is selected, the terminal ( 100) transmits the received other hash value, the selected specific file, authenticity check request information, identification information of the terminal 100, and the like to the
또한, 상기 단말(100)은 앞서 전송된 상기 다른 해시값, 상기 특정 파일, 상기 진위 여부 확인 요청 정보 등에 응답하여 상기 클라이언트 서버(200)로부터 전송되는 해당 특정 파일의 진위 여부에 대한 정보 등을 수신한다.In addition, the terminal 100 receives information on the authenticity of the specific file transmitted from the
또한, 상기 단말(100)은 상기 수신된 해당 특정 파일의 진위 여부에 대한 정보 등을 표시(또는 출력)한다. 이때, 상기 단말(100)은 상기 초기화면 내의 진위 여부 결과 표시 메뉴에 상기 수신된 해당 특정 파일의 진위 여부에 대한 정보 등을 표시할 수도 있다.In addition, the terminal 100 displays (or outputs) information on whether the received specific file is authentic or not. In this case, the terminal 100 may display information on whether the received specific file is authentic or not in the authenticity result display menu in the initial screen.
본 발명의 실시예에서는 상기 단말(100)에서 전용 앱 형태 또는 웹 사이트 형태로 상기 클라이언트 서버(200)에서 제공하는 다양한 기능(예를 들어 파일 업로드 기능, 해시값, 추가 정보 등의 이더리움 블록 저장 기능, 해시값에 대응하는 파일 확인/다운로드 기능, 특정 파일의 진위여부 확인 기능 등 포함)을 수행할 수 있다.In an embodiment of the present invention, various functions (eg, file upload function, hash value, additional information, etc.) provided by the
상기 클라이언트 서버(200)는 상기 단말(100), 상기 복수의 IPFS(300), 상기 이더리움 서버(400) 등과 통신한다.The
또한, 상기 클라이언트 서버(200)는 상기 단말(100) 등의 사용자에 대한 회원 가입 절차 등을 수행한다.In addition, the
또한, 상기 클라이언트 서버(200)는 상기 단말(100) 등의 사용자와 관련한 개인 정보를 등록한다. 이때, 상기 클라이언트 서버(200)는 해당 개인 정보 등을 DB 서버(미도시)에 등록(또는 관리)할 수 있다.In addition, the
또한, 상기 클라이언트 서버(200)는 상기 단말(100) 등의 사용자에 대한 회원 관리 기능을 수행한다.In addition, the
또한, 상기 클라이언트 서버(200)는 파일 업로드 기능, 해시값, 추가 정보 등의 이더리움 블록 저장 기능, 해시값에 대응하는 파일 확인/다운로드 기능, 특정 파일의 진위여부 확인 기능 등을 제공하는 전용 앱 및/또는 웹 사이트를 상기 단말(100) 등에 제공한다.In addition, the
또한, 상기 클라이언트 서버(200)는 공지사항, 이벤트 등을 위한 게시판 기능을 제공한다.In addition, the
또한, 상기 단말(100)은 메타마스크(MetaMask)를 통해 상기 클라이언트 서버(200)에 접속하는 경우, 상기 클라이언트 서버(200)는 상기 초기 화면을 상기 단말(100)에 제공한다.Also, when the terminal 100 accesses the
또한, 상기 클라이언트 서버(200)는 상기 단말(100)로부터 전송되는 유형 정보(예를 들어 퍼블릭, 프라이빗 등 포함), 상기 파일, 상기 파일 업로드 요청 정보, 상기 단말(100)의 식별 정보 등을 수신한다.In addition, the
또한, 상기 클라이언트 서버(200)는 복수의 IPFS(300) 중에서 랜덤하게 선택되는 특정 IPFS(300)에 상기 수신된 유형 정보, 파일, 상기 단말(100)의 식별 정보 등을 전송한다.In addition, the
즉, 상기 클라이언트 서버(200)는 해당 클라이언트 서버(200)와 연동하는 복수의 IPFS(300) 중에서 랜덤하게 또는 미리 설정된 방식으로 상기 특정 IPFS(300)를 선택한다.That is, the
또한, 상기 클라이언트 서버(200)는 상기 선택된 특정 IPFS(300)로 상기 수신된 유형 정보, 상기 파일, 상기 단말(100)의 식별 정보 등을 전송한다.In addition, the
또한, 상기 클라이언트 서버(200)는 상기 특정 IPFS(300)로부터 전송되는 해시값(또는 상기 파일과 관련한 해시값), 상기 단말(100)의 식별 정보 등을 수신한다.In addition, the
또한, 상기 클라이언트 서버(200)는 해당 단말(100)의 식별 정보에 대응하는 상기 단말(100)로 상기 수신된 해시값 등을 전송한다.In addition, the
또한, 상기 클라이언트 서버(200)는 상기 단말(100)로부터 전송되는 상기 복수의 입력값, 상기 블록 저장 요청 정보, 상기 단말(100)의 식별 정보 등을 수신한다.In addition, the
또한, 상기 클라이언트 서버(200)는 상기 수신된 복수의 입력값, 상기 단말(100)의 식별 정보 등을 이더리움 서버(400)에 전송한다.In addition, the
또한, 상기 클라이언트 서버(200)는 상기 이더리움 서버(400)로부터 전송되는 상기 트랜잭션 처리 결과, 상기 단말(100)의 식별 정보 등을 수신한다.In addition, the
또한, 상기 클라이언트 서버(200)는 상기 단말(100)의 식별 정보에 대응하는 상기 단말(100)로 상기 수신된 트랜잭션 처리 결과 등을 전송한다.In addition, the
또한, 상기 클라이언트 서버(200)는 상기 단말(100)로부터 전송되는 상기 사용자 입력 해시값, 상기 파일 검색 요청 정보, 상기 단말(100)의 식별 정보 등을 수신한다.In addition, the
또한, 상기 클라이언트 서버(200)는 상기 복수의 IPFS(300)와 연동하여, 상기 사용자 입력 해시값과 관련해서 하나 이상의 IPFS(300)에 분산 저장된 복수의 서브 파일을 수집한다. 여기서, 상기 서브 파일은 원본 파일이 복수로 분할된 경우, 상기 복수로 분할된 개별 파일을 나타낸다.In addition, the
또한, 상기 클라이언트 서버(200)는 상기 수집된 복수의 서브 파일을 조합하여, 상기 사용자 입력 해시값에 대응하는 하나의 원본 파일을 생성한다.In addition, the
또한, 상기 클라이언트 서버(200)는 상기 생성된 원본 파일(또는 상기 사용자 입력 해시값에 대응하는 파일/원본 파일)을 상기 단말(100)에 전송한다.Also, the
이때, 상기 클라이언트 서버(200)와 상기 복수의 IPFS(300) 간의 연동에 의해서 상기 사용자 입력 해시값과 관련한 복수의 서브 파일이 수집되지 않는 경우, 상기 클라이언트 서버(200)는 상기 사용자 입력 해시값과 관련한 파일이 상기 IPFS(300)에 존재하지 않음을 나타내는 정보 등을 상기 단말(100)에 전송할 수도 있다.At this time, when the plurality of sub files related to the user input hash value are not collected due to the interworking between the
또한, 상기 클라이언트 서버(200)는 상기 단말(100)로부터 전송되는 상기 다른 해시값, 상기 특정 파일, 상기 진위 여부 확인 요청 정보, 상기 단말(100)의 식별 정보 등을 수신한다.In addition, the
또한, 상기 클라이언트 서버(200)는 상기 복수의 IPFS(300) 중에서 랜덤하게 선택되는 다른 특정 IPFS(300)에 상기 수신된 특정 파일, 상기 단말(100)의 식별 정보 등을 전송한다.In addition, the
즉, 상기 클라이언트 서버(200)는 해당 클라이언트 서버(200)와 연동하는 복수의 IPFS(300) 중에서 랜덤하게 또는 미리 설정된 방식으로 상기 다른 특정 IPFS(300)선택한다.That is, the
또한, 상기 클라이언트 서버(200)는 상기 선택된 다른 특정 IPFS(300)로 상기 수신된 특정 파일, 상기 단말(100)의 식별 정보 등을 전송한다. 이때, 상기 클라이언트 서버(200)는 상기 단말(100)로부터 전송되는 정보들에 유형 정보가 포함되어 있지 않은 상태인 경우에, 디폴트로 미리 설정된 다른 유형 정보(예를 들어 프라이빗 항목 등 포함)를 상기 특정 파일, 상기 단말(100)의 식별 정보 등과 함께 상기 다른 특정 IPFS(300)에 전송할 수도 있다.In addition, the
또한, 상기 클라이언트 서버(200)는 상기 다른 특정 IPFS(300)로부터 전송되는 또 다른 해시값(또는 상기 특정 파일과 관련한 해시값), 상기 단말(100)의 식별 정보 등을 수신한다.In addition, the
또한, 상기 클라이언트 서버(200)는 상기 수신된 해당 특정 파일과 관련한 또 다른 해시값과 앞서 수신된 다른 해시값이 일치하는지 여부를 판단(또는 확인)한다.Also, the
또한, 상기 클라이언트 서버(200)는 상기 판단 결과(또는 상기 확인 결과)에 따라, 해당 특정 파일의 진위 여부에 대한 정보를 생성하고, 상기 생성된 해당 특정 파일의 진위 여부에 대한 정보를 상기 단말(100)에 전송한다. 여기서, 상기 특정 파일의 진위 여부에 대한 정보는 해당 특정 파일이 감정 대상 파일(또는 상기 다른 해시값에 대응하는 감정 대상 파일)과 일치하지 않음을 나타내는 정보, 해당 특정 파일이 감정 대상 파일과 일치함을 나타내는 정보, 해당 특정 파일과 관련한 또 다른 해시값 등을 포함한다.In addition, the
상기 IPFS(Inter Planetary File System: 분산형 파일 시스템)(300)는 상기 단말(100), 상기 클라이언트 서버(200), 상기 이더리움 서버(400) 등과 통신한다. 이때, 상기 IPFS(300)는 복수로 구성되며, 상기 복수의 IPFS(300)는 서로 연동하도록 구성한다. 여기서, 상기 IPFS(300)는 냅스터나 토렌트 등의 P2P(peer-to-peer) 방식으로 대용량 파일이나 데이터를 공유하기 위한 프로토콜로서, 분산 파일 시스템에서 데이터를 공유하고 저장하기 위한 네트워크이다.The Inter Planetary File System (IPFS) 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)로부터 전송되는 상기 유형 정보, 상기 파일, 상기 단말(100)의 식별 정보 등을 수신한다.Also, the
또한, 상기 특정 IPFS(300)는 상기 수신된 유형 정보, 상기 파일 등을 근거로 해시값을 생성한다.In addition, the
또한, 상기 특정 IPFS(300)는 상기 생성된 해시값(또는 상기 파일과 관련한 해시값), 상기 단말(100)의 식별 정보 등을 상기 클라이언트 서버(200)에 전송한다.In addition, the
또한, 상기 특정 IPFS(300)는 다른 복수의 IPFS(300)(또는 상기 복수의 IPFS(300) 중에서 상기 특정 IPFS(300)를 제외한 나머지 IPFS(300))와 연동하여, 상기 파일을 분산 저장(또는 관리)한다.In addition, the
또한, 상기 복수의 IPFS(300)는 상기 클라이언트 서버(200)와 연동하여, 상기 사용자 입력 해시값과 관련해서 하나 이상의 IPFS(300)에 분산 저장된 복수의 서브 파일을 상기 클라이언트 서버(200)에 각각 제공(또는 전송)한다.In addition, the plurality of
또한, 상기 클라이언트 서버(200)로부터 선택된 다른 특정 IPFS(300)는 상기 클라이언트 서버(200)로부터 전송되는 상기 특정 파일, 상기 다른 유형 정보, 상기 단말(100)의 식별 정보 등을 수신한다.In addition, another
또한, 상기 다른 특정 IPFS(300)는 상기 수신된 상기 특정 파일, 상기 다른 유형 정보 등을 근거로 또 다른 해시값을 생성한다. 이때, 상기 다른 특정 IPFS(300)는 상기 클라이언트 서버(200)로부터 전송되는 정보들 중에서 유형 정보가 포함되지 않은 상태인 경우에, 디폴트로 미리 설정된 다른 유형 정보(예를 들어 프라이빗 항목 등 포함)와 상기 수신된 특정 파일 등을 근거로 상기 또 다른 해시값을 생성할 수도 있다.In addition, the other
또한, 상기 다른 특정 IPFS(300)는 상기 생성된 또 다른 해시값(또는 상기 특정 파일과 관련한 해시값), 상기 단말(100)의 식별 정보 등을 상기 클라이언트 서버(200)에 전송한다.In addition, the other
또한, 상기 다른 특정 IPFS(300)는 또 다른 복수의 IPFS(300)(또는 상기 복수의 IPFS(300) 중에서 상기 다른 특정 IPFS(300)를 제외한 나머지 IPFS(300))와 연동하여, 상기 특정 파일을 분산 저장(또는 관리)한다.In addition, the other
상기 이더리움 서버(Ethereum Server)(400)는 상기 단말(100), 상기 클라이언트 서버(200), 상기 복수의 IPFS(300) 등과 통신한다. 이때, 상기 이더리움 서버(400)는 이더리움 블록(또는 이더리움 블록체인)을 제공하는 서버일 수 있다. 여기서, 상기 이더리움은 퍼블릭 블록체인을 기반으로 한 분산 컴퓨팅 환경이며, 스마트 컨트랙트로 애플리케이션을 구축할 수 있는 오픈 소스 소프트웨어일 수 있다.The Ethereum server (Ethereum Server) 400 communicates with the terminal 100 , the
본 발명의 실시예에서 상기 이더리움 서버(400)는 퍼블릭 블록체인 및/또는 프라이빗 블록체인으로 구성할 수 있으며, 주요 특징 구현을 위해서, 프라이빗 이더리움 블록체인 네트워크로 구성할 수 있다.In an embodiment of the present invention, the
또한, 상기 이더리움 서버(400)는 상기 클라이언트 서버(200)로부터 전송되는 상기 복수의 입력값, 상기 단말(100)의 식별 정보 등을 수신한다.In addition, the
또한, 상기 이더리움 서버(400)는 상기 수신된 복수의 입력값을 이더리움 블록에 저장한다. 이때, 상기 이더리움 서버(400)는 상기 복수의 입력값에 미리 설정된 합의 알고리즘 방식(예를 들어 POA(Proof of Authority: 권한 증명), POW(Proof of Work: 작업 증명) 등 포함), 스마트 컨트랙트(smart contract) 등을 적용하여, 상기 수신된 복수의 입력값을 상기 이더리움 블록에 저장할 수도 있다. 여기서, 상기 POA는 확정된 관리주체가 순서대로 돌아가며 블록을 생성(또는 등록된 계정들이 순차로 블록을 생성)함으로써, 자원의 소모와 블록 생성 소요 시간이 상기 POW에 비하여 적다. 이때, 상기 이더리움 서버(400)는 속도와 기밀성의 유지를 위해서 프라이빗 네트워크로 구성할 수 있다. 또한, 상기 스마트 컨트랙트는 블록체인 위에 올려놓은 약속으로, 특정 조건을 만족하면 특정 행동을 취하라는 코드를 거래에 추가하는 것이다.In addition, the
또한, 상기 이더리움 서버(400)는 트랜잭션 처리 결과, 상기 단말(100)의 식별 정보 등을 상기 클라이언트 서버(200)에 전송한다. 여기서, 상기 트랜잭션 처리 결과(또는 이더리움 블록 저장 결과)는 블록 해시값(block hash), 블록 번호(blocknumber), 수신자 정보(to), 트랜잭션 해시값(transaction hash) 등을 포함한다.In addition, the
또한, 상기 이더리움과 IPFS를 활용한 전자문서 관리 시스템(10)은 성능 테스트를 위해서, 동일한 AWS EC2AWS (Amazon Web Services Elastic Compute Cloud) 사양인 Ubuntu Server 20.04 LTS, 인스턴스 유형 t2.xlarge(vCPUs 4개, 메모리 16GB), SSD 60Gb의 환경에서 geth를 이용해 직접 프라이빗 이더리움 네트워크를 설치하여 운영하였다.In addition, for the performance test, the electronic
본 발명의 실시예에 따른 상기 이더리움과 IPFS를 활용한 전자문서 관리 시스템(10)은 이더리움 프라이빗 네트워크 구축 시 POW와 POA 중 어떠한 합의 알고리즘이 더욱 속도가 빠른지에 대해서 성능 평가를 수행하였다.The electronic
즉, 상기 이더리움과 IPFS를 활용한 전자문서 관리 시스템(10)은 이더리움 프라이빗 네트워크 구축 시 POW와 POA의 성능 비교를 위해 트랜잭션 요청 시부터 트랜잭션 완료 시점까지의 실제 시간 차이를 콘솔 로그(console log)로 출력하도록 하여 측정한다. 이때, 노드의 숫자에 따른 유의적인 성능 차이가 있는지 확인하기 위해서, 상기 POW와 상기 POA 모두 노드 1개, 3개, 6개로 각각 측정한다.That is, the electronic
또한, 상기 이더리움과 IPFS를 활용한 전자문서 관리 시스템(10)은 프라이빗 네트워크의 안정성을 측정하기 위해서, 약 60시간 이후 재측정한다. 이때, 각 30회씩 측정하되, 평균 1분마다 측정하기 위하여 푸아송 분포(Poisson distribution)를 이용한다.In addition, the electronic
측정 결과, 다음의 [표 1]과 같이, 프라이빗 네트워크를 막 구동한 시점에는 POW와 POA의 경우, 큰 차이 없이 유사한 속도가 측정되었으며, 노드 1개일 경우에는 상기 POW가 14.59초, 상기 POA는 15.10초로 측정되었고, 노드 3개일 경우에는 상기 POW가 14.73초, 상기 POA는 15.19초로 측정되었고, 노드 6개일 경우에는 상기 POW가 15.36초, 상기 POA는 15.85초로, 3가지 경우 모두 상기 POW가 좀 더 나은 결과가 나왔다. 또한, 노드의 개수가 증가함에 따라 속도가 조금씩 느려짐을 확인할 수 있다.As a result of the measurement, as shown in the following [Table 1], similar speeds were measured for POW and POA when the private network was just started. In case of one node, the POW was 14.59 seconds and the POA was 15.10. Second, the POW is 14.73 seconds and the POA is 15.19 seconds when there are 3 nodes, and when there are 6 nodes, the POW is 15.36 seconds and the POA is 15.85 seconds. In all three cases, the POW is better The results came out. Also, it can be seen that the speed gradually slows down as the number of nodes increases.
노드 개수
number of nodes
도 2는 POW 알고리즘을 이용한 이더리움 네트워크의 노드 개수에 따른 트랜잭션 완료까지의 속도 차이를 측정한 그래프로, 각각의 편차는 다르나 평균 트랜잭션 속도는 느려짐을 확인할 수 있다.2 is a graph measuring the difference in speed until transaction completion according to the number of nodes in the Ethereum network using the POW algorithm, and it can be seen that the average transaction speed is slow although each deviation is different.
또한, 도 3은 POA 알고리즘을 이용한 이더리움 네트워크의 노드 개수에 따른 트랜잭션 완료까지의 속도 차이를 측정한 그래프로, 상대적으로 POW보다 일정한 트랜잭션 속도를 보이며, 노드 개수의 증가에 따라 역시 평균 트랜잭션 속도가 느려짐을 확인할 수 있다.3 is a graph measuring the difference in speed until transaction completion according to the number of nodes in the Ethereum network using the POA algorithm. You can see the slowness.
또한, 이더리움 네트워크 가동 후, 약 60시간 이후 측정한 결과에서는 [표 2]와 같이, POA가 POW에 비해 훨씬 뛰어난 성능을 나타냈다.In addition, as shown in [Table 2], POA showed much superior performance compared to POW in the results measured after about 60 hours after the Ethereum network was operated.
즉, 노드 3개의 경우, POW의 평균 트랜잭션 완료시까지 걸리는 시간이 26.38초로 처음에 비해 그 성능이 확연히 떨어진 데 비하여, POA는 17.16초로 성능이 다소 떨어지긴 했으나, POW에 비하면 안정적임을 확인할 수 있다.That is, in the case of three nodes, the average POW time to complete a transaction was 26.38 seconds, which was significantly lower than the initial performance, whereas the POA performance was 17.16 seconds, which was slightly lower, but it can be confirmed that it is more stable than POW.
노드 개수
number of nodes
도 4는 60시간 경과 후 노드 3개의 POW와 POA의 트랜잭션 완료시까지의 시간을 측정한 그래프로, 각각 10,000개 이상씩 블록이 생성된 후, 확인 결과 POW는 난이도 및 속도의 편차가 커서 트랜잭션 완료시까지의 시간이 불규칙적인데 비하여 POA는 규칙적인 상태로 확인할 수 있다.4 is a graph measuring the time until transaction completion of POW and POA of three nodes after 60 hours. After 10,000 or more blocks are created, respectively, the POW has a large deviation in difficulty and speed, so that the transaction is completed until the completion of the transaction. While the time of POA is irregular, it can be confirmed that POA is in a regular state.
이는, 모니터링에 따라, 작업 증명 과정 중에 마이닝(mining) 난이도의 변화, 블록 생성 시간의 불규칙성 등으로 인해, 블록 생성 평균 속도가 POA가 최초 설정 상태인 5초(약 5.09초)를 유지한 것에 비해, POW는 평균 12.58초까지 늘어났기 때문이다. 그러므로 네트워크의 안정성이라는 측면에서 볼 때, 정해진 노드들끼리 블록체인 프라이빗 네트워크를 구축할 때는, POW보다 POA가 더욱 적합하다고 판단할 수 있다.According to monitoring, due to changes in mining difficulty during the proof-of-work process, irregularity in block generation time, etc., the average speed of block generation was 5 seconds (about 5.09 seconds), which was initially set by POA. , because the POW increased to an average of 12.58 seconds. Therefore, from the point of view of network stability, it can be judged that POA is more suitable than POW when establishing a blockchain private network between fixed nodes.
또한, 본 발명의 실시예에 따른 상기 이더리움과 IPFS를 활용한 전자문서 관리 시스템(10)은 퍼블릭 IPFS와 프라이빗 IPFS의 성능을 비교 측정하였다.In addition, the electronic
즉, 상기 이더리움과 IPFS를 활용한 전자문서 관리 시스템(10)은 IPFS의 성능 측정을 위해서 퍼블릭 IPFS의 업로드 용량 제한이 100MB이므로, 10MB ~ 90MB까지 10MB 단위로 9개 텍스트 더미 파일을 만들어, 각각 10회씩 업로드와 다운로드 시간을 측정하였고, 평균 1분마다 측정하기 위하여 푸아송 분포를 이용하였다. 이때, 프라이빗 IPFS는 2개의 AWS에 직접 별도 노드를 설치하여 구성하였다.That is, in the electronic
측정 결과, 업로드와 다운로드 모두 프라이빗 IPFS가 퍼블릭 IPFS에 비하여 훨씬 우수한 성능을 나타냈다.As a result of measurement, private IPFS performed much better than public IPFS for both upload and download.
다음의 [표 3]과 같이, 1ms당 업로드 바이트(byte) 수치를 비교 시, 퍼블릭 IPFS는 420 바이트, 프라이빗 IPFS는 17,167 바이트로, 프라이빗 IPFS가 40.85배만큼 더 뛰어났다.As shown in [Table 3] below, when comparing the upload bytes per 1ms, the public IPFS is 420 bytes and the private IPFS is 17,167 bytes, which is 40.85 times better than the private IPFS.
또한, 1ms당 다운로드 바이트 수치를 비교 시, 퍼블릭 IPFS는 1,749 바이트, 프라이빗 IPFS는 45,155 바이트로, 프라이빗 IPFS가 25.81배만큼 더 뛰어났다.Also, when comparing download bytes per 1ms, public IPFS is 1,749 bytes and private IPFS is 45,155 bytes, which is 25.81 times better than private IPFS.
또한, 이를 1MB당 업로드 속도(ms) 및 다운로드 속도(ms)로 표현하여 비교해보면, 다음의 [표 4]와 같이, 업로드의 경우 퍼블릭 IPFS는 평균 124.53초, 프라이빗 IPFS는 평균 2.98초가 소요되었으며, 다운로드의 경우 퍼블릭 IPFS는 평균 28.73초, 프라이빗 IPFS는 평균 1.13초가 소요되었다.In addition, when expressing this in terms of upload speed (ms) and download speed (ms) per 1MB, as shown in the following [Table 4], in the case of upload, it took an average of 124.53 seconds for public IPFS and 2.98 seconds for private IPFS, For download, it took an average of 28.73 seconds for public IPFS and 1.13 seconds for private IPFS.
도 5 및 도 6은 퍼블릭 IPFS와 프라이빗 IPFS에서 파일 용량을 10MB에서 90MB까지 각각 10MB씩 사이즈를 증가시켜 업로드 속도와 다운로드 속도를 비교한 그래프이다.5 and 6 are graphs comparing upload speed and download speed in public IPFS and private IPFS by increasing the file size by 10 MB from 10 MB to 90 MB, respectively.
상기 도 5 내지 도 6에 도시된 바와 같이, 퍼블릭 IPFS와 프라이빗 IPFS 모두 파일 용량이 커짐에 따라 업로드 및 다운로드에 걸리는 시간은 유의적으로 증가하였다.As shown in FIGS. 5 to 6, upload and download times significantly increased as the file size of both public IPFS and private IPFS increased.
도 7 및 도 8은 상기 도 5 및 상기 도 6의 내용을 파일 용량별로 1ms당 업로드 바이트 및 다운로드 바이트로 환산한 그래프로, 각각의 경우 모두 프라이빗 IPFS의 성능이 우수함을 확인할 수 있다.7 and 8 are graphs in which the contents of FIGS. 5 and 6 are converted into upload bytes and download bytes per 1 ms for each file size, and in each case, it can be confirmed that the performance of the private IPFS is excellent.
이처럼 IPFS는 퍼블릭 IPFS에 비해서 프라이빗 IPFS가 더욱 뛰어난 성능을 나타냄을 확인할 수 있다.As such, it can be seen that private IPFS shows better performance than public IPFS.
이와 같이, 본 발명의 실시예에 따른 상기 이더리움과 IPFS를 활용한 전자문서 관리 시스템(10)은 공공기관 등을 포함한 일반 사용기관에서 블록생성 속도가 일정한 POA를 이용하여 정보들을 저장하도록 구성할 수 있다.As such, the electronic
또한, 상기 이더리움과 IPFS를 활용한 전자문서 관리 시스템(10)은 문서의 보안성과 성능 차이를 고려할 경우, 프라이빗 IPFS를 이용해서 정보(또는 파일)를 분산 저장하도록 구성할 수 있다.In addition, the electronic
또한, 해당 복수의 IPFS(300)에 분산 저장된 특정 파일을 삭제(또는 파쇄)하고자 하는 경우, 상기 클라이언트 서버(200)는 상기 복수의 IPFS(300)와 연동하여, 동시에 상기 복수의 IPFS(300)에 분산 저장된 특정 파일(또는 해당 특정 파일과 관련한 복수의 서브 파일)을 동시에 삭제 처리함으로써, 공공기관 등에서 특정 파일에 대해서 생애주기가 설정된 경우, 해당 특정 파일을 영구 삭제하도록 구성할 수도 있다.In addition, when it is desired to delete (or shred) a specific file distributed and stored in the plurality of
이와 같이, 단말에서 업로드하고자 하는 파일을 IPFS를 통해 분산 관리하고, IPFS를 통해 분산 관리되는 해당 파일의 해시값을 이더리움의 블록에 저장할 수 있다.In this way, the file to be uploaded from the terminal can be managed distributedly through IPFS, and the hash value of the file that is distributed and managed through IPFS can be stored in a block of Ethereum.
또한, 이와 같이, 단말로부터 파일과 관련한 해시값이 입력되는 경우, IPFS를 통해 분산 관리 중인 해당 해시값과 관련한 파일을 불러와서 해당 파일의 내용을 확인 가능하도록 제공할 수 있다.In addition, when a hash value related to a file is inputted from the terminal as described above, a file related to the hash value being distributed and managed through IPFS can be called and the contents of the file can be checked.
또한, 이와 같이, 단말에서 원본 파일과 관련한 해시값 및 파일의 진위 여부 확인을 위한 파일을 업로드하는 경우, POA 합의 알고리즘 또는 POW 합의 알고리즘을 통해 원본 파일과 업로드된 파일 간의 비교를 통해 진위 여부를 제공할 수 있다.In addition, when uploading a file for checking the authenticity of the hash value related to the original file and the file in the terminal as described above, the authenticity is provided through comparison between the original file and the uploaded file through the POA consensus algorithm or the POW consensus algorithm. can do.
이하에서는, 본 발명에 따른 이더리움과 IPFS를 활용한 전자문서 관리 방법을 도 1 내지 도 16을 참조하여 상세히 설명한다.Hereinafter, an electronic document management method using Ethereum and IPFS according to the present invention will be described in detail with reference to FIGS. 1 to 16 .
도 9 내지 도 11은 본 발명의 실시예에 따른 이더리움과 IPFS를 활용한 전자문서 관리 방법을 나타낸 흐름도이다.9 to 11 are flowcharts illustrating an electronic document management method using Ethereum and IPFS according to an embodiment of the present invention.
먼저, 단말(100)은 메타마스크(MetaMask)를 통해 클라이언트 서버(200)에 접속하고, 상기 클라이언트 서버(200)에서 제공하는 초기 화면을 표시(또는 출력)한다. 여기서, 상기 초기화면은 IPFS(300)에 업로드할 파일과 관련해서 IPFS의 유형인 퍼블릭(public) 또는 프라이빗(private)을 선택하기 위한 유형 선택 메뉴(또는 유형 선택 항목/버튼), IPFS(300)에 업로드하고자 하는 파일을 선택하기 위한 파일 선택 메뉴, IPFS(300)에 파일을 업로드하기 위한 업로드 메뉴, 파일 업로드에 따른 해시값을 표시하기 위한 업로드 결과 표시 메뉴(또는 업로드 결과/해시값 표시 영역), 파일 업로드에 따른 해시값, 파일과 관련한 추가 정보 등을 입력하기 위한 추가 정보 입력 메뉴, 상기 추가 정보 입력 메뉴를 통해 입력된 정보들을 이더리움 블록에 저장하기 위한 제출 메뉴, 트랜잭션 처리 결과를 표시하기 위한 트랜잭션 결과 표시 메뉴(또는 트랜잭션 결과 표시 영역), 단말(100)의 사용자 입력에 따른 해시값과 관련한 파일을 확인하거나 다운로드하기 위한 해시값 입력 메뉴, 상기 해시값 입력 메뉴를 통해 입력된 해시값과 관련한 파일을 검색하기 위한 파일보기 메뉴, 해당 해시값과 관련한 파일 검색에 따라 검색된 파일을 다운로드하기 위한 다운로드 메뉴, 단말(100)의 사용자 입력에 따른 특정 파일의 진위 여부를 확인하기 위한 확인 대상 파일과 관련한 확인 대상 해시값을 입력하기 위한 다른 해시값 입력 메뉴, 진위 여부를 확인하고자 하는 특정 파일을 선택하기 위한 추가 파일 선택 메뉴, 단말(100)의 사용자 입력에 따른 특정 파일의 진위여부를 확인하기 위한 파일 진위 여부 확인 메뉴, 파일 진위 여부 결과를 표시하기 위한 진위 여부 결과 표시 메뉴(또는 진위 여부 결과 표시 영역) 등을 포함한다.First, the terminal 100 accesses the
일 예로, 제 1 단말(100)은 이더리움 호환 자바스크립트 API(Ethereum Compatible JavaScript API)인 web3.js를 이용하여 상기 메타마스크를 통해 이더리움 네트워크(또는 블록체인 네트워크)를 제공하는 상기 클라이언트 서버(200)에 접속하고, 도 12에 도시된 바와 같이, 상기 클라이언트 서버(200)로부터 제공되는 상기 초기 화면(1200)을 표시한다(S910).As an example, the
이후, 상기 단말(100)에 표시되는 초기화면 중에서, 해당 단말(100)의 사용자 입력(또는 사용자 선택/터치/제어)에 따라 상기 유형 선택 메뉴에 포함된 복수의 항목 중에서 어느 하나의 항목(예를 들어 퍼블릭, 프라이빗 등 포함)이 선택되고, 상기 파일 선택 메뉴에 따라 해당 단말(100)에 저장된 하나 이상의 파일 중에서 어느 하나의 파일이 선택된 후, 상기 미리 설정된 업로드 메뉴가 선택되는 경우, 상기 단말(100)은 상기 선택된 유형 정보(예를 들어 퍼블릭, 프라이빗 등 포함), 상기 선택된 파일, 파일 업로드 요청 정보, 상기 단말(100)의 식별 정보 등을 상기 클라이언트 서버(200)에 전송한다. 여기서, 상기 단말(100)의 식별 정보는 MDN, 모바일 IP, 모바일 MAC, Sim(가입자 식별 모듈) 카드 고유정보, 시리얼번호 등을 포함한다. 이때, 상기 업로드 메뉴는 디폴트로 비활성화 상태를 유지하다가 상기 단말(100)에서 상기 유형 정보 및 상기 파일이 선택된 경우에 활성화될 수 있다.Thereafter, among the initial screen displayed on the terminal 100, according to a user input (or user selection/touch/control) of the
일 예로, 상기 제 1 단말에 표시되는 초기 화면(1200)에서 상기 제 1 단말의 사용자 선택에 따라 상기 유형 선택 메뉴 중에서 프라이빗 항목이 선택되고, 상기 파일 선택 메뉴에 따라 상기 제 1 단말에 저장된 복수의 파일 중에서 제 1 파일(예를 들어 jpg 형태의 이미지 파일인 5KBytes의 img001.jpg)이 선택된 후, 상기 초기 화면(1200)의 일측에 표시되는 업로드 메뉴(1210)가 선택될 때, 상기 제 1 단말은 상기 선택된 프라이빗 항목을 포함하는 제 1 유형 정보, 상기 선택된 제 1 파일(예를 들어 5KBytes의 img001.jpg), 제 1 파일 업로드 요청 정보, 상기 제 1 단말의 식별 정보 등을 상기 클라이언트 서버(200)에 전송한다(S920).For example, on the
이후, 상기 클라이언트 서버(200)는 상기 단말(100)로부터 전송되는 유형 정보(예를 들어 퍼블릭, 프라이빗 등 포함), 상기 파일, 상기 파일 업로드 요청 정보, 상기 단말(100)의 식별 정보 등을 수신한다.Thereafter, the
또한, 상기 클라이언트 서버(200)는 복수의 IPFS(300) 중에서 랜덤하게 선택되는 특정 IPFS(300)에 상기 수신된 유형 정보, 파일, 상기 단말(100)의 식별 정보 등을 전송한다.In addition, the
즉, 상기 클라이언트 서버(200)는 해당 클라이언트 서버(200)와 연동하는 복수의 IPFS(300) 중에서 랜덤하게 또는 미리 설정된 방식으로 상기 특정 IPFS(300)를 선택한다.That is, the
또한, 상기 클라이언트 서버(200)는 상기 선택된 특정 IPFS(300)로 상기 수신된 유형 정보, 상기 파일, 상기 단말(100)의 식별 정보 등을 전송한다.In addition, the
일 예로, 상기 클라이언트 서버(200)는 상기 제 1 단말로부터 전송되는 제 1 유형 정보(예를 들어 프라이빗 항목 등 포함), 상기 제 1 파일(예를 들어 5KBytes의 img001.jpg), 상기 제 1 파일 업로드 요청 정보, 상기 제 1 단말의 식별 정보 등을 수신한다.For example, the
또한, 상기 클라이언트 서버(200)는 해당 클라이언트 서버(200)와 연동하는 제 1 IPFS(300) 내지 제 10 IPFS(300) 중에서 랜덤하게 상기 제 1 IPFS를 선택하고, 상기 선택된 제 1 IPFS로 상기 제 1 유형 정보, 상기 제 1 파일, 상기 제 1 단말의 식별 정보 등을 전송한다(S930).In addition, the
이후, 상기 특정 IPFS(300)는 상기 클라이언트 서버(200)로부터 전송되는 상기 유형 정보, 상기 파일, 상기 단말(100)의 식별 정보 등을 수신한다.Thereafter, the
또한, 상기 특정 IPFS(300)는 상기 수신된 유형 정보, 상기 파일 등을 근거로 해시값을 생성한다.In addition, the
또한, 상기 특정 IPFS(300)는 상기 생성된 해시값(또는 상기 파일과 관련한 해시값), 상기 단말(100)의 식별 정보 등을 상기 클라이언트 서버(200)에 전송한다.In addition, the
또한, 상기 특정 IPFS(300)는 다른 복수의 IPFS(300)(또는 상기 복수의 IPFS(300) 중에서 상기 특정 IPFS(300)를 제외한 나머지 IPFS(300))와 연동하여, 상기 파일을 분산 저장(또는 관리)한다.In addition, the
일 예로, 상기 제 1 IPFS는 상기 클라이언트 서버(200)로부터 전송되는 상기 제 1 유형 정보, 상기 제 1 파일, 상기 제 1 단말의 식별 정보 등을 수신한다.For example, the first IPFS receives the first type information, the first file, and identification information of the first terminal transmitted from the
또한, 상기 제 1 IPFS는 상기 수신된 제 1 유형 정보, 상기 제 1 파일 등을 근거로 제 1 해시값(예를 들어 QmVoxPe97q7SQFeJK9CnxjknJRLZR1BtsYZTpAnxBE32An)을 생성한다.In addition, the first IPFS generates a first hash value (eg, QmVoxPe97q7SQFeJK9CnxjknJRLZR1BtsYZTpAnxBE32An) based on the received first type information and the first file.
또한, 상기 제 1 IPFS는 상기 생성된 제 1 해시값, 상기 제 1 단말의 식별 정보 등을 상기 클라이언트 서버(200)에 전송한다.In addition, the first IPFS transmits the generated first hash value, identification information of the first terminal, and the like to the
또한, 상기 제 1 IPFS는 상기 제 2 IPFS 내지 상기 제 10 IPFS와 연동하여, 상기 제 1 파일(예를 들어 5KBytes의 001.jpg)을 분산 저장한다(S940).In addition, the first IPFS interworks with the second IPFS to the tenth IPFS, and distributes and stores the first file (eg, 001.jpg of 5KBytes) ( S940 ).
이후, 상기 클라이언트 서버(200)는 상기 특정 IPFS(300)로부터 전송되는 해시값(또는 상기 파일과 관련한 해시값), 상기 단말(100)의 식별 정보 등을 수신한다.Thereafter, the
또한, 상기 클라이언트 서버(200)는 해당 단말(100)의 식별 정보에 대응하는 상기 단말(100)로 상기 수신된 해시값 등을 전송한다.In addition, the
일 예로, 상기 클라이언트 서버(200)는 상기 제 1 IPFS로부터 전송되는 제 1 해시값(예를 들어 QmVoxPe97q7SQFeJK9CnxjknJRLZR1BtsYZTpAnxBE32An), 상기 제 1 단말의 식별 정보 등을 수신한다.For example, the
또한, 상기 클라이언트 서버(200)는 상기 수신된 제 1 단말의 식별 정보에 대응하는 상기 제 1 단말로 상기 제 1 해시값 등을 전송한다(S950).In addition, the
이후, 상기 단말(100)은 앞서 전송된 상기 유형 정보, 상기 파일, 상기 파일 업로드 요청 정보 등에 응답하여 상기 클라이언트 서버(200)로부터 전송되는 해시값 등을 수신한다.Thereafter, the terminal 100 receives the hash value transmitted from the
또한, 상기 단말(100)은 상기 수신된 해시값을 표시(또는 출력)한다. 이때, 상기 단말(100)은 상기 초기화면 내의 추가 정보 입력 메뉴와 관련한 해시값 입력 항목에 상기 수신된 해시값을 자동 입력하여 표시할 수도 있다.In addition, the terminal 100 displays (or outputs) the received hash value. In this case, the terminal 100 may automatically input and display the received hash value in the hash value input item related to the additional information input menu in the initial screen.
일 예로, 상기 제 1 단말은 앞서 전송된 제 1 유형 정보, 상기 제 1 파일 등에 응답하여 상기 클라이언트 서버(200)로부터 전송되는 제 1 해시값(예를 들어 QmVoxPe97q7SQFeJK9CnxjknJRLZR1BtsYZTpAnxBE32An)을 수신한다.For example, the first terminal receives a first hash value (eg, QmVoxPe97q7SQFeJK9CnxjknJRLZR1BtsYZTpAnxBE32An) transmitted from the
또한, 도 13에 도시된 바와 같이, 상기 제 1 단말은 상기 초기화면 내의 추가 정보 입력 메뉴 내의 해시값 입력 항목에 상기 수신된 제 1 해시값을 자동 입력하여 표시(1310)한다(S960).In addition, as shown in FIG. 13 , the first terminal automatically inputs and displays the received first hash value in the hash value input item in the additional information input menu in the initial screen ( 1310 ) ( S960 ).
이후, 상기 단말(100)에 표시되는 초기화면 중에서, 상기 단말(100)의 사용자 입력(또는 사용자 선택/터치/제어)에 따라 상기 추가 정보 입력 메뉴에 포함된 복수의 입력 항목에 대응하는 복수의 입력값을 수신한다. 여기서, 상기 복수의 입력값은 해시값, 추가 정보(예를 들어 작성자명, 회사명, 부서명/팀명, 날짜 등 포함) 등을 포함한다.Thereafter, among the initial screen displayed on the terminal 100 , a plurality of input items corresponding to a plurality of input items included in the additional information input menu according to a user input (or user selection/touch/control) of the terminal 100 are provided. receive input. Here, the plurality of input values include hash values and additional information (eg, author name, company name, department/team name, date, etc.).
또한, 상기 단말(100)의 초기 화면의 일측에 표시되는 상기 미리 설정된 제출 메뉴가 선택되는 경우, 상기 단말(100)은 상기 수신된 복수의 입력값, 블록 저장 요청 정보, 상기 단말(100)의 식별 정보 등을 상기 클라이언트 서버(200)에 전송한다. 이때, 상기 제출 메뉴는 디폴트로 비활성화 상태를 유지하다가 상기 단말(100)에서 상기 추가 정보 입력 메뉴에 포함된 복수의 입력 항목에 대응하는 복수의 입력값을 수신하는 경우에 활성화될 수 있다.In addition, when the preset submission menu displayed on one side of the initial screen of the terminal 100 is selected, the terminal 100 receives the plurality of input values, block storage request information, and It transmits identification information and the like to the
일 예로, 상기 제 1 단말에 표시되는 초기 화면(1300) 중에서 상기 제 1 단말의 사용자 선택에 따라 상기 제 1 해시값, 제 1 추가 정보(예를 들어 작성자인 woo dong ho, 소속회사인 ABCDE co. 등 포함) 등을 포함하는 제 1 입력값을 수신한다.For example, according to the user's selection of the first terminal among the
또한, 상기 초기 화면(1300)의 일측에 표시되는 제출 메뉴(1320)가 선택될 때, 상기 제 1 단말은 상기 제 1 입력값(예를 들어 상기 제 1 해시값, 상기 제 1 추가 정보 등 포함), 제 1 블록 저장 요청 정보, 상기 제 1 단말의 식별 정보 등을 상기 클라이언트 서버(200)에 전송한다(S970).In addition, when the
이후, 상기 클라이언트 서버(200)는 상기 단말(100)로부터 전송되는 상기 복수의 입력값, 상기 블록 저장 요청 정보, 상기 단말(100)의 식별 정보 등을 수신한다.Thereafter, the
또한, 상기 클라이언트 서버(200)는 상기 수신된 복수의 입력값, 상기 단말(100)의 식별 정보 등을 이더리움 서버(400)에 전송한다.In addition, the
일 예로, 상기 클라이언트 서버(200)는 상기 제 1 단말로부터 전송되는 상기 제 1 입력값, 상기 제 1 블록 저장 요청 정보, 상기 제 1 단말의 식별 정보 등을 수신한다.For example, the
또한, 상기 클라이언트 서버(200)는 해당 클라이언트 서버(200)와 연동하는 상기 이더리움 서버(400)에 상기 제 1 입력값, 상기 제 1 단말의 식별 정보 등을 전송한다(S980).In addition, the
이후, 상기 이더리움 서버(400)는 상기 클라이언트 서버(200)로부터 전송되는 상기 복수의 입력값, 상기 단말(100)의 식별 정보 등을 수신한다.Thereafter, the
또한, 상기 이더리움 서버(400)는 상기 수신된 복수의 입력값을 이더리움 블록에 저장한다. 이때, 상기 이더리움 서버(400)는 상기 복수의 입력값에 미리 설정된 합의 알고리즘 방식(예를 들어 POA, POW 등 포함), 스마트 컨트랙트 등을 적용하여, 상기 수신된 복수의 입력값을 상기 이더리움 블록에 저장할 수도 있다.In addition, the
또한, 상기 이더리움 서버(400)는 트랜잭션 처리 결과, 상기 단말(100)의 식별 정보 등을 상기 클라이언트 서버(200)에 전송한다. 여기서, 상기 트랜잭션 처리 결과(또는 이더리움 블록 저장 결과)는 블록 해시값, 블록 번호, 수신자 정보, 트랜잭션 해시값 등을 포함한다.In addition, the
일 예로, 상기 이더리움 서버(400)는 상기 클라이언트 서버(200)로부터 전송되는 상기 제 1 입력값, 상기 제 1 단말의 식별 정보 등을 수신한다.For example, the
또한, 상기 이더리움 서버(400)는 상기 수신된 제 1 입력값을 이더리움 블록에 저장하고, 상기 제 1 입력값의 저장에 따른 제 1 블록 해시값(예를 들어 0x6ac532144b0dbb041903b9e9b48e50d84c6c59d0f726ac81d2c45afc8994d9d1), 제 1 블록 번호(예를 들어 18259), 제 1 수신자 정보(예를 들어 0xe9f0a99c65924cd33798005c6283bac8f881d199), 제 1 트랜잭션 해시값(예를 들어 0xdb029e3a7d521c8bf75c041f18550a75e9a18209e91043f4ea70b7d1fa2628d3) 등을 포함하는 제 1 트랜잭션 처리 결과를 생성하고, 상기 생성된 제 1 트랜잭션 처리 결과, 상기 제 1 단말의 식별 정보 등을 상기 클라이언트 서버(200)에 전송한다(S990).In addition, the
이후, 상기 클라이언트 서버(200)는 상기 이더리움 서버(400)로부터 전송되는 상기 트랜잭션 처리 결과, 상기 단말(100)의 식별 정보 등을 수신한다.Thereafter, the
또한, 상기 클라이언트 서버(200)는 상기 단말(100)의 식별 정보에 대응하는 상기 단말(100)로 상기 수신된 트랜잭션 처리 결과 등을 전송한다.In addition, the
일 예로, 상기 클라이언트 서버(200)는 상기 이더리움 서버(400)로부터 전송되는 상기 제 1 트랜잭션 처리 결과, 상기 제 1 단말의 식별 정보 등을 수신한다.For example, the
또한, 상기 클라이언트 서버(200)는 상기 수신된 제 1 단말의 식별 정보에 대응하는 상기 제 1 단말로 상기 제 1 트랜잭션 처리 결과 등을 전송한다(S1000).In addition, the
이후, 상기 단말(100)은 앞서 전송된 상기 복수의 입력값, 상기 블록 저장 요청 정보 등에 응답하여 상기 클라이언트 서버(200)로부터 전송되는 트랜잭션 처리 결과 등을 수신한다.Thereafter, the terminal 100 receives the transaction processing result transmitted from the
또한, 상기 단말(100)은 상기 수신된 트랜잭션 처리 결과 등을 표시(또는 출력)한다. 이때, 상기 단말(100)은 상기 초기화면 내의 트랜잭션 결과 표시 메뉴에 상기 수신된 트랜잭션 처리 결과 등을 자동으로 표시할 수도 있다.In addition, the terminal 100 displays (or outputs) the received transaction processing result and the like. In this case, the terminal 100 may automatically display the received transaction processing result, etc. on the transaction result display menu in the initial screen.
일 예로, 상기 제 1 단말은 앞서 전송된 상기 제 1 입력값, 상기 제 1 블록 저장 요청 정보 등에 응답하여 상기 클라이언트 서버(200)로부터 전송되는 제 1 블록 해시값(예를 들어 0x6ac532144b0dbb041903b9e9b48e50d84c6c59d0f726ac81d2c45afc8994d9d1), 제 1 블록 번호(예를 들어 18259), 제 1 수신자 정보(예를 들어 0xe9f0a99c65924cd33798005c6283bac8f881d199), 제 1 트랜잭션 해시값(예를 들어 0xdb029e3a7d521c8bf75c041f18550a75e9a18209e91043f4ea70b7d1fa2628d3) 등을 포함하는 제 1 트랜잭션 처리 결과를 수신한다.For example, the first terminal transmits a first block hash value (eg, 0x6ac532144b0dbb041903b9e9b48e50d84c6c59d0f726ac81d2c45afc8994d9d1) transmitted from the
또한, 도 14에 도시된 바와 같이, 상기 제 1 단말은 상기 초기화면 내의 트랜잭션 결과 표시 메뉴에 상기 수신된 제 1 트랜잭션 처리 결과(1400)를 표시한다(S1010).Also, as shown in FIG. 14 , the first terminal displays the received first
또한, 상기 단말(100)에 표시되는 초기화면 중에서, 상기 단말(100)의 사용자 입력(또는 사용자 선택/터치/제어)에 따라 상기 해시값 입력 메뉴에 포함된 해시값 입력 항목에 대응하는 사용자 입력 해시값을 수신한다. 여기서, 상기 사용자 입력 해시값은 해당 단말(100)의 사용자가 특정 해시값에 대응하는 파일 내용을 확인하거나 또는 해당 특정 해시값에 대응하는 파일을 다운로드하기 위한 해시값일 수 있다.In addition, among the initial screen displayed on the terminal 100, a user input corresponding to a hash value input item included in the hash value input menu according to a user input (or user selection/touch/control) of the terminal 100 Receive a hash value. Here, the user input hash value may be a hash value for the user of the terminal 100 to check the contents of a file corresponding to a specific hash value or to download a file corresponding to the specific hash value.
또한, 상기 단말(100)의 초기 화면의 일측에 표시되는 상기 미리 설정된 파일보기 메뉴가 선택되는 경우, 상기 단말(100)은 상기 수신된 사용자 입력 해시값, 파일 검색 요청 정보, 상기 단말(100)의 식별 정보 등을 상기 클라이언트 서버(200)에 전송한다. 이때, 상기 파일보기 메뉴는 디폴트로 비활성화 상태를 유지하다가 상기 단말(100)에서 상기 해시값 입력 메뉴에 포함된 하나 이상의 항목에 대응하는 입력값(예를 들어 상기 사용자 입력 해시값 등 포함)을 수신하는 경우에 활성화될 수 있다.In addition, when the preset file view menu displayed on one side of the initial screen of the terminal 100 is selected, the terminal 100 displays the received user input hash value, file search request information, and the terminal 100 . and transmits the identification information of the
일 예로, 상기 제 1 단말에 표시되는 초기 화면(1200) 중에서 상기 제 1 단말의 사용자 선택에 따라 제 1 사용자 입력 해시값(예를 들어 QmXETN6mzhivT5UgEC4B5HjYCGMZnnhzdzac1bW99pu2A)을 수신한다.For example, a first user input hash value (eg, QmXETN6mzhivT5UgEC4B5HjYCGMZnnhzdzac1bW99pu2A) is received according to the user selection of the first terminal among the
또한, 상기 초기 화면(1200)의 일측에 표시되는 파일보기 메뉴(1220)가 선택될 때, 상기 제 1 단말은 상기 제 1 사용자 입력 해시값(예를 들어 QmXETN6mzhivT5UgEC4B5HjYCGMZnnhzdzac1bW99pu2A), 제 1 파일 검색 요청 정보, 상기 제 1 단말의 식별 정보 등을 상기 클라이언트 서버(200)에 전송한다(S1020).In addition, when the
이후, 상기 클라이언트 서버(200)는 상기 단말(100)로부터 전송되는 상기 사용자 입력 해시값, 상기 파일 검색 요청 정보, 상기 단말(100)의 식별 정보 등을 수신한다.Thereafter, the
또한, 상기 클라이언트 서버(200)는 상기 복수의 IPFS(300)와 연동하여, 상기 사용자 입력 해시값과 관련해서 하나 이상의 IPFS(300)에 분산 저장된 복수의 서브 파일을 수집한다. 여기서, 상기 서브 파일은 원본 파일이 복수로 분할된 경우, 상기 복수로 분할된 개별 파일을 나타낸다.In addition, the
또한, 상기 클라이언트 서버(200)는 상기 수집된 복수의 서브 파일을 조합하여, 상기 사용자 입력 해시값에 대응하는 하나의 원본 파일을 생성한다.In addition, the
또한, 상기 클라이언트 서버(200)는 상기 생성된 원본 파일(또는 상기 사용자 입력 해시값에 대응하는 파일/원본 파일)을 상기 단말(100)에 전송한다.Also, the
이때, 상기 클라이언트 서버(200)와 상기 복수의 IPFS(300) 간의 연동에 의해서 상기 사용자 입력 해시값과 관련한 복수의 서브 파일이 수집되지 않는 경우, 상기 클라이언트 서버(200)는 상기 사용자 입력 해시값과 관련한 파일이 상기 IPFS(300)에 존재하지 않음을 나타내는 정보 등을 상기 단말(100)에 전송할 수도 있다.At this time, when the plurality of sub files related to the user input hash value are not collected due to the interworking between the
일 예로, 상기 클라이언트 서버(200)는 상기 제 1 단말로부터 전송되는 상기 제 1 사용자 입력 해시값, 상기 제 1 파일 검색 요청 정보, 상기 제 1 단말의 식별 정보 등을 수신한다.For example, the
또한, 상기 클라이언트 서버(200)는 상기 제 1 IPFS 내지 상기 제 10 IPFS와 연동하여, 상기 제 1 사용자 입력 해시값과 관련해서 제 1 서브 파일 내지 제 10 서브 파일을 수집하고, 상기 수집된 제 1 서브 파일 내지 제 10 서브 파일을 조합하여 원본 파일인 제 2 파일(예를 들어 kookmin.png)을 생성한다.In addition, the
또한, 상기 클라이언트 서버(200)는 상기 생성된 제 2 파일(예를 들어 kookmin.png)을 상기 제 1 단말에 전송한다(S1030).Also, the
이후, 상기 단말(100)은 앞서 전송된 사용자 입력 해시값, 파일 검색 요청 정보 등에 응답하여 상기 클라이언트 서버(200)로부터 전송되는 원본 파일을 수신한다.Thereafter, the terminal 100 receives the original file transmitted from the
또한, 상기 단말(100)은 상기 수신된 원본 파일을 표시(또는 출력)한다. 여기서, 상기 단말(100)은 상기 수신된 원본 파일을 해당 단말(100)에 다운로드(또는 저장)할 수도 있다.In addition, the terminal 100 displays (or outputs) the received original file. Here, the terminal 100 may download (or store) the received original file to the
이때, 해당 사용자 입력 해시값과 관련한 파일이 상기 IPFS(300)에 존재하지 않은 경우, 상기 단말(100)은 앞서 전송된 사용자 입력 해시값, 파일 검색 요청 정보 등에 응답하여 상기 클라이언트 서버(200)로부터 전송되는 해당 사용자 입력 해시값과 관련한 파일이 상기 IPFS(300)에 존재하지 않음을 나타내는 정보 등을 수신하고, 상기 수신된 해당 사용자 입력 해시값과 관련한 파일이 상기 IPFS(300)에 존재하지 않음을 나타내는 정보 등을 표시(또는 출력)할 수도 있다.At this time, if the file related to the corresponding user input hash value does not exist in the
일 예로, 상기 제 1 단말은 앞서 전송된 상기 제 1 사용자 입력 해시값, 상기 제 1 파일 검색 요청 정보 등에 응답하여 상기 클라이언트 서버(200)로부터 전송되는 제 2 파일(예를 들어 kookmin.png)을 수신한다.For example, the first terminal transmits a second file (eg, kookmin.png) transmitted from the
또한, 도 15에 도시된 바와 같이, 상기 제 1 단말은 상기 수신된 제 2 파일(1500)을 표시한다(S1040).Also, as shown in FIG. 15 , the first terminal displays the received second file 1500 ( S1040 ).
또한, 상기 단말(100)에 표시되는 초기화면 중에서, 상기 단말(100)의 사용자 입력(또는 사용자 선택/터치/제어)에 따라 상기 다른 해시값 입력 메뉴에 포함된 다른 해시값 입력 항목에 대응하는 다른 해시값을 수신하고, 상기 추가 파일 선택 메뉴에 따라 해당 단말(100)에 저장된 하나 이상의 파일 중에서 어느 하나의 특정 파일이 선택된 후, 상기 미리 설정된 파일 진위 여부 확인 메뉴가 선택되는 경우, 상기 단말(100)은 상기 수신된 다른 해시값, 상기 선택된 특정 파일, 진위 여부 확인 요청 정보, 상기 단말(100)의 식별 정보 등을 상기 클라이언트 서버(200)에 전송한다. 이때, 상기 파일 진위 여부 확인 메뉴는 디폴트로 비활성화 상태를 유지하다가 상기 단말(100)에서 상기 다른 해시값을 수신하고 상기 특정 파일이 선택된 경우에 활성화될 수 있다.In addition, among the initial screen displayed on the terminal 100, according to a user input (or user selection/touch/control) of the terminal 100, the other hash value input items included in the other hash value input menu correspond to After receiving another hash value and selecting any one specific file from among one or more files stored in the terminal 100 according to the additional file selection menu, if the preset file authenticity check menu is selected, the terminal ( 100) transmits the received other hash value, the selected specific file, authenticity check request information, identification information of the terminal 100, and the like to the
일 예로, 상기 제 1 단말에 표시되는 초기 화면(1200)에서 상기 제 1 단말의 사용자 선택에 따라 상기 다른 해시값 입력 메뉴에 포함된 다른 해시값 입력 항목에 대응하는 제 2 해시값(예를 들어 QmVoxPe97q7SQFeJK9CnxjknJRLZR1BtsYZTpAnxBE32An)을 수신하고, 상기 추가 파일 선택 메뉴에 따라 상기 제 1 단말에 저장된 복수의 파일 중에서 제 3 파일(예를 들어 png 형태의 이미지 파일인 국민대학교.png)이 선택된 후, 상기 초기 화면(1200)의 일측에 표시되는 파일 진위 여부 확인 메뉴(1230)가 선택될 때, 상기 제 1 단말은 상기 수신된 제 2 해시값(예를 들어 QmVoxPe97q7SQFeJK9CnxjknJRLZR1BtsYZTpAnxBE32An), 상기 선택된 제 3 파일(예를 들어 png 형태의 이미지 파일인 국민대학교.png), 제 3 진위 여부 확인 요청 정보, 상기 제 1 단말의 식별 정보 등을 상기 클라이언트 서버(200)에 전송한다(S1050).For example, in the
이후, 상기 클라이언트 서버(200)는 상기 단말(100)로부터 전송되는 상기 다른 해시값, 상기 특정 파일, 상기 진위 여부 확인 요청 정보, 상기 단말(100)의 식별 정보 등을 수신한다.Thereafter, the
또한, 상기 클라이언트 서버(200)는 상기 복수의 IPFS(300) 중에서 랜덤하게 선택되는 다른 특정 IPFS(300)에 상기 수신된 특정 파일, 상기 단말(100)의 식별 정보 등을 전송한다.In addition, the
즉, 상기 클라이언트 서버(200)는 해당 클라이언트 서버(200)와 연동하는 복수의 IPFS(300) 중에서 랜덤하게 또는 미리 설정된 방식으로 상기 다른 특정 IPFS(300)선택한다.That is, the
또한, 상기 클라이언트 서버(200)는 상기 선택된 다른 특정 IPFS(300)로 상기 수신된 특정 파일, 상기 단말(100)의 식별 정보 등을 전송한다. 이때, 상기 클라이언트 서버(200)는 상기 단말(100)로부터 전송되는 정보들에 유형 정보가 포함되어 있지 않은 상태인 경우에, 디폴트로 미리 설정된 다른 유형 정보(예를 들어 프라이빗 항목 등 포함)를 상기 특정 파일, 상기 단말(100)의 식별 정보 등과 함께 상기 다른 특정 IPFS(300)에 전송할 수도 있다.In addition, the
일 예로, 상기 클라이언트 서버(200)는 상기 제 1 단말로부터 전송되는 상기 제 2 해시값(예를 들어 QmVoxPe97q7SQFeJK9CnxjknJRLZR1BtsYZTpAnxBE32An), 상기 제 3 파일(예를 들어 png 형태의 이미지 파일인 국민대학교.png), 상기 제 3 진위 여부 확인 요청 정보, 상기 제 1 단말의 식별 정보 등을 수신한다.For example, the
또한, 상기 클라이언트 서버(200)는 해당 클라이언트 서버(200)와 연동하는 상기 제 1 IPFS 내지 상기 제 10 IPFS 중에서 랜덤하게 상기 제 10 IPFS를 선택하고, 상기 선택된 제 10 IPFS로 상기 제 3 파일(예를 들어 png 형태의 이미지 파일인 국민대학교.png), 디폴트인 제 3 유형 정보(예를 들어 프라이빗 항목 등 포함), 상기 제 1 단말의 식별 정보 등을 전송한다(S1060).In addition, the
이후, 상기 다른 특정 IPFS(300)는 상기 클라이언트 서버(200)로부터 전송되는 상기 특정 파일, 상기 다른 유형 정보, 상기 단말(100)의 식별 정보 등을 수신한다.Thereafter, the other
또한, 상기 다른 특정 IPFS(300)는 상기 수신된 상기 특정 파일, 상기 다른 유형 정보 등을 근거로 또 다른 해시값을 생성한다. 이때, 상기 다른 특정 IPFS(300)는 상기 클라이언트 서버(200)로부터 전송되는 정보들 중에서 유형 정보가 포함되지 않은 상태인 경우에, 디폴트로 미리 설정된 다른 유형 정보(예를 들어 프라이빗 항목 등 포함)와 상기 수신된 특정 파일 등을 근거로 상기 또 다른 해시값을 생성할 수도 있다.In addition, the other
또한, 상기 다른 특정 IPFS(300)는 상기 생성된 또 다른 해시값(또는 상기 특정 파일과 관련한 해시값), 상기 단말(100)의 식별 정보 등을 상기 클라이언트 서버(200)에 전송한다.In addition, the other
또한, 상기 다른 특정 IPFS(300)는 또 다른 복수의 IPFS(300)(또는 상기 복수의 IPFS(300) 중에서 상기 다른 특정 IPFS(300)를 제외한 나머지 IPFS(300))와 연동하여, 상기 특정 파일을 분산 저장(또는 관리)한다.In addition, the other
일 예로, 상기 제 10 IPFS는 상기 클라이언트 서버(200)로부터 전송되는 상기 제 3 파일(예를 들어 png 형태의 이미지 파일인 국민대학교.png), 상기 제 3 유형 정보, 상기 제 1 단말의 식별 정보 등을 수신한다.For example, the 10th IPFS includes the third file (eg, Kookmin University.png which is an image file in png format) transmitted from the
또한, 상기 제 10 IPFS는 상기 수신된 상기 제 3 파일, 상기 제 3 유형 정보 등을 근거로 제 3 해시값(예를 들어 QmXETN6mzhivfT5UgEC4B5HjYCGMZnnhzdzac1bW99pu2A)을 생성한다.In addition, the tenth IPFS generates a third hash value (eg, QmXETN6mzhivfT5UgEC4B5HjYCGMZnnhzdzac1bW99pu2A) based on the received third file and the third type information.
또한, 상기 제 10 IPFS는 상기 생성된 제 3 해시값, 상기 제 1 단말의 식별 정보 등을 상기 클라이언트 서버(200)에 전송한다.In addition, the 10th IPFS transmits the generated third hash value, identification information of the first terminal, and the like to the
또한, 상기 제 10 IPFS는 상기 제 1 IPFS 내지 상기 제 9 IPFS와 연동하여, 상기 제 3 파일(예를 들어 png 형태의 이미지 파일인 국민대학교.png)을 분산 저장한다(S1070).In addition, the tenth IPFS interworks with the first IPFS to the ninth IPFS to distribute and store the third file (eg, Kookmin University.png, which is an image file in a png format) (S1070).
이후, 상기 클라이언트 서버(200)는 상기 다른 특정 IPFS(300)로부터 전송되는 또 다른 해시값(또는 상기 특정 파일과 관련한 해시값), 상기 단말(100)의 식별 정보 등을 수신한다.Thereafter, the
일 예로, 상기 클라이언트 서버(200)는 상기 제 10 IPFS로부터 전송되는 상기 제 3 해시값(예를 들어 QmXETN6mzhivfT5UgEC4B5HjYCGMZnnhzdzac1bW99pu2A), 상기 제 1 단말의 식별 정보 등을 수신한다(S1080).For example, the
이후, 상기 클라이언트 서버(200)는 상기 수신된 해당 특정 파일과 관련한 또 다른 해시값과 앞서 수신된 다른 해시값이 일치하는지 여부를 판단(또는 확인)한다.Thereafter, the
또한, 상기 클라이언트 서버(200)는 상기 판단 결과(또는 상기 확인 결과)에 따라, 해당 특정 파일의 진위 여부에 대한 정보를 생성하고, 상기 생성된 해당 특정 파일의 진위 여부에 대한 정보를 상기 단말(100)에 전송한다. 여기서, 상기 특정 파일의 진위 여부에 대한 정보는 해당 특정 파일이 감정 대상 파일(또는 상기 다른 해시값에 대응하는 감정 대상 파일)과 일치하지 않음을 나타내는 정보, 해당 특정 파일이 감정 대상 파일과 일치함을 나타내는 정보, 해당 특정 파일과 관련한 또 다른 해시값 등을 포함한다.In addition, the
일 예로, 상기 클라이언트 서버(200)는 상기 제 1 단말로부터 수신된 제 2 해시값(예를 들어 QmVoxPe97q7SQFeJK9CnxjknJRLZR1BtsYZTpAnxBE32An)과 상기 제 10 IPFS로부터 수신된 제 3 해시값(예를 들어 QmXETN6mzhivfT5UgEC4B5HjYCGMZnnhzdzac1bW99pu2A)이 일치하는지 여부를 판단한다.For example, the
상기 판단 결과, 상기 제 2 해시값과 상기 제 3 해시값이 일치하지 않을 때, 상기 클라이언트 서버(200)는 상기 제 3 파일(예를 들어 png 형태의 이미지 파일인 국민대학교.png)이 상기 제 2 해시값에 대응하는 파일과 일치하지 않음을 나타내는 정보(예를 들어 원본 문서와 일치하지 않습니다), 상기 제 3 해시값 등을 상기 제 1 단말에 전송한다(S1090).As a result of the determination, when the second hash value and the third hash value do not match, the
이후, 상기 단말(100)은 앞서 전송된 상기 다른 해시값, 상기 특정 파일, 상기 진위 여부 확인 요청 정보 등에 응답하여 상기 클라이언트 서버(200)로부터 전송되는 해당 특정 파일의 진위 여부에 대한 정보 등을 수신한다.Thereafter, the terminal 100 receives information on the authenticity of the specific file transmitted from the
또한, 상기 단말(100)은 상기 수신된 해당 특정 파일의 진위 여부에 대한 정보 등을 표시(또는 출력)한다. 이때, 상기 단말(100)은 상기 초기화면 내의 진위 여부 결과 표시 메뉴에 상기 수신된 해당 특정 파일의 진위 여부에 대한 정보 등을 표시할 수도 있다.In addition, the terminal 100 displays (or outputs) information on whether the received specific file is authentic or not. In this case, the terminal 100 may display information on whether the received specific file is authentic or not in the authenticity result display menu in the initial screen.
일 예로, 상기 제 1 단말은 앞서 전송된 상기 제 2 해시값, 상기 제 3 파일(예를 들어 png 형태의 이미지 파일인 국민대학교.png), 상기 제 3 진위 여부 확인 요청 정보 등에 응답하여 상기 클라이언트 서버(200)로부터 전송되는 상기 제 3 파일이 상기 제 2 해시값에 대응하는 파일과 일치하지 않음을 나타내는 정보(예를 들어 원본 문서와 일치하지 않습니다), 상기 제 3 해시값 등을 수신한다.For example, the first terminal responds to the previously transmitted second hash value, the third file (eg, Kookmin University.png, which is an image file in png format), and the third authenticity check request information, etc., to the client Information indicating that the third file transmitted from the
또한, 도 16에 도시된 바와 같이, 상기 제 1 단말은 상기 초기화면 내의 진위 여부 결과 표시 메뉴에 상기 수신된 상기 제 2 파일이 상기 제 2 해시값에 대응하는 파일과 일치하지 않음을 나타내는 정보(예를 들어 원본 문서와 일치하지 않습니다), 상기 제 3 해시값 등을(1600) 표시한다(S1100).In addition, as shown in FIG. 16, the first terminal displays information indicating that the received second file does not match the file corresponding to the second hash value in the authenticity result display menu in the initial screen ( For example, it does not match the original document), the third hash value, etc. (1600) is displayed (S1100).
본 발명의 실시예는 앞서 설명된 바와 같이, 단말에서 업로드하고자 하는 파일을 IPFS를 통해 분산 관리하고, IPFS를 통해 분산 관리되는 해당 파일의 해시값을 이더리움의 블록에 저장하여, 원본 파일에 대한 신뢰성을 제공하고, 원본 파일에 대한 공격 또는 삭제의 문제는 프라이빗 IPFS를 통해 해결할 수 있다.As described above, the embodiment of the present invention distributes and manages the file to be uploaded from the terminal through IPFS, and stores the hash value of the file that is distributed and managed through IPFS in a block of Ethereum, It provides reliability, and the problem of attack or deletion of the original file can be solved through private IPFS.
또한, 본 발명의 실시예는 앞서 설명된 바와 같이, 단말로부터 파일과 관련한 해시값이 입력되는 경우, IPFS를 통해 분산 관리 중인 해당 해시값과 관련한 파일을 불러와서 해당 파일의 내용을 확인 가능하도록 제공하여, 전체 시스템의 운영 효율을 향상시킬 수 있다.In addition, as described above, in the embodiment of the present invention, when a hash value related to a file is input from the terminal, a file related to the hash value being distributed and managed through IPFS is called and the contents of the file are checked. Thus, it is possible to improve the operating efficiency of the entire system.
또한, 본 발명의 실시예는 앞서 설명된 바와 같이, 단말에서 원본 파일과 관련한 해시값 및 파일의 진위 여부 확인을 위한 파일을 업로드하는 경우, POA 합의 알고리즘 또는 POW 합의 알고리즘을 통해 원본 파일과 업로드된 파일 간의 비교를 통해 진위 여부를 제공하여, 유지 관리가 용이하고, 네트워크의 안정성을 제공할 수 있다.In addition, as described above, in the embodiment of the present invention, when uploading a file for checking the authenticity of a hash value related to an original file and a file in the terminal, the file is uploaded with the original file through the POA consensus algorithm or the POW consensus algorithm. By providing authenticity through comparison between files, maintenance is easy and network stability can be provided.
전술된 내용은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.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 illustrate, 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 interpreted by the following claims, and all technical ideas within the scope equivalent thereto should be construed as being included in the scope of the present invention.
10: 전자문서 관리 시스템 100: 단말
200: 클라이언트 서버 300: 복수의 IPFS
400: 이더리움 서버10: electronic document management system 100: terminal
200: client server 300: multiple IPFS
400: Ethereum Server
Claims (10)
복수의 IPFS 중에서 랜덤하게 선택되는 특정 IPFS에 상기 유형 정보, 상기 파일 및 상기 단말의 식별 정보를 전송하는 상기 클라이언트 서버;
상기 클라이언트 서버로부터 전송되는 상기 유형 정보 및 상기 파일을 근거로 해시값을 생성하고, 상기 생성된 해시값을 상기 클라이언트 서버를 경유하여 상기 단말에 전송하는 상기 특정 IPFS; 및
이더리움 서버를 포함하며,
상기 단말은,
상기 단말에 표시되는 초기화면 중에서, 상기 단말의 사용자 입력에 따라 상기 초기화면 내의 추가 정보 입력 메뉴에 포함된 복수의 입력 항목에 대응하는 복수의 입력값을 수신하고, 상기 단말의 초기 화면의 일측에 표시되는 미리 설정된 제출 메뉴가 선택될 때 상기 수신된 복수의 입력값, 블록 저장 요청 정보 및 상기 단말의 식별 정보를 상기 클라이언트 서버에 전송하며,
상기 클라이언트 서버는,
상기 단말로부터 전송되는 복수의 입력값 및 상기 단말의 식별 정보를 상기 이더리움 서버에 전송하며,
상기 이더리움 서버는,
상기 클라이언트 서버로부터 전송되는 복수의 입력값을 이더리움 블록에 저장하고, 트랜잭션 처리 결과를 상기 클라이언트 서버에 전송하며,
상기 클라이언트 서버는,
상기 트랜잭션 처리 결과를 상기 단말에 전송하며,
상기 단말은,
상기 클라이언트 서버로부터 전송되는 트랜잭션 처리 결과를 표시하는 것을 특징으로 하는 이더리움과 IPFS를 활용한 전자문서 관리 시스템.Accessing the client server through MetaMask, displaying the initial screen provided by the client server, among the displayed initial screens, from among a plurality of items included in the type selection menu in the initial screen according to a user input After any one item is selected and any one of the one or more files stored in the terminal is selected according to the file selection menu included in the initial screen, when a preset upload menu included in the initial screen is selected, the selected the terminal for transmitting type information, the selected file, file upload request information, and identification information of the terminal to the client server;
the client server transmitting the type information, the file, and identification information of the terminal to a specific IPFS randomly selected from among a plurality of IPFSs;
the specific IPFS for generating a hash value based on the type information and the file transmitted from the client server, and transmitting the generated hash value to the terminal via the client server; and
It includes an Ethereum server,
The terminal is
Among the initial screens displayed on the terminal, a plurality of input values corresponding to a plurality of input items included in the additional information input menu in the initial screen are received according to a user input of the terminal, and on one side of the initial screen of the terminal When the displayed preset submission menu is selected, the received plurality of input values, block storage request information, and identification information of the terminal are transmitted to the client server,
The client server is
Transmitting a plurality of input values transmitted from the terminal and identification information of the terminal to the Ethereum server,
The Ethereum server is
Storing a plurality of input values transmitted from the client server in an Ethereum block, and transmitting the transaction processing result to the client server,
The client server is
Transmitting the transaction processing result to the terminal,
The terminal is
An electronic document management system using Ethereum and IPFS, characterized in that it displays the transaction processing result transmitted from the client server.
상기 단말에 표시되는 초기화면 중에서, 상기 단말의 사용자 입력에 따라 상기 초기화면 내의 유형 선택 메뉴에 포함된 복수의 항목 중에서 어느 하나의 항목이 선택되고, 상기 초기 화면에 포함된 파일 선택 메뉴에 따라 상기 단말에 저장된 하나 이상의 파일 중에서 어느 하나의 파일이 선택된 후, 상기 초기 화면에 포함된 미리 설정된 업로드 메뉴가 선택될 때, 상기 단말에 의해, 상기 선택된 유형 정보, 상기 선택된 파일, 파일 업로드 요청 정보 및 상기 단말의 식별 정보를 상기 클라이언트 서버에 전송하는 단계;
상기 클라이언트 서버에 의해, 복수의 IPFS 중에서 랜덤하게 선택되는 특정 IPFS에 상기 유형 정보, 상기 파일 및 상기 단말의 식별 정보를 전송하는 단계;
상기 특정 IPFS에 의해, 상기 클라이언트 서버로부터 전송되는 상기 유형 정보 및 상기 파일을 근거로 해시값을 생성하고, 상기 생성된 해시값을 상기 클라이언트 서버를 경유하여 상기 단말에 전송하는 단계;
상기 단말에 의해, 상기 전송된 파일 업로드 요청 정보에 응답하여 전송되는 해시값을 표시하는 단계; 및
상기 특정 IPFS에 의해, 상기 클라이언트 서버로부터 전송되는 유형 정보 및 파일을 근거로 상기 복수의 IPFS 중에서 상기 특정 IPFS를 제외한 나머지 IPFS와 연동하여, 상기 파일을 분산 저장하는 단계를 더 포함하는 것을 특징으로 하는 이더리움과 IPFS를 활용한 전자문서 관리 방법.accessing, by a terminal, a client server through a metamask, and displaying an initial screen provided by the client server;
Among the initial screens displayed on the terminal, any one of a plurality of items included in the type selection menu in the initial screen is selected according to a user input of the terminal, and according to the file selection menu included in the initial screen, the After any one of the one or more files stored in the terminal is selected, when a preset upload menu included in the initial screen is selected, by the terminal, the selected type information, the selected file, the file upload request information and the transmitting identification information of the terminal to the client server;
transmitting, by the client server, the type information, the file, and identification information of the terminal to a specific IPFS randomly selected from among a plurality of IPFSs;
generating a hash value based on the file and the type information transmitted from the client server by the specific IPFS, and transmitting the generated hash value to the terminal via the client server;
displaying, by the terminal, a hash value transmitted in response to the transmitted file upload request information; and
Based on the type information and the file transmitted from the client server by the specific IPFS, the method further comprises the step of interworking with the remaining IPFS except for the specific IPFS from among the plurality of IPFS, and distributing and storing the file. Electronic document management method using Ethereum and IPFS.
상기 해시값을 표시하는 단계는,
상기 초기화면 내의 추가 정보 입력 메뉴와 관련한 해시값 입력 항목에 상기 해시값을 자동 입력하여 표시하는 것을 특징으로 하는 이더리움과 IPFS를 활용한 전자문서 관리 방법.4. The method of claim 3,
Displaying the hash value comprises:
An electronic document management method using Ethereum and IPFS, characterized in that the hash value is automatically input and displayed in a hash value input item related to the additional information input menu in the initial screen.
상기 단말에 의해, 상기 단말에 표시되는 초기화면 중에서, 상기 단말의 사용자 입력에 따라 상기 초기화면 내의 추가 정보 입력 메뉴에 포함된 복수의 입력 항목에 대응하는 복수의 입력값을 수신하는 단계;
상기 단말의 초기 화면의 일측에 표시되는 미리 설정된 제출 메뉴가 선택될 때, 상기 단말에 의해, 상기 수신된 복수의 입력값, 블록 저장 요청 정보 및 상기 단말의 식별 정보를 상기 클라이언트 서버에 전송하는 단계;
상기 클라이언트 서버에 의해, 상기 단말로부터 전송되는 복수의 입력값 및 상기 단말의 식별 정보를 이더리움 서버에 전송하는 단계;
상기 이더리움 서버에 의해, 상기 클라이언트 서버로부터 전송되는 복수의 입력값을 이더리움 블록에 저장하는 단계;
상기 이더리움 서버에 의해, 트랜잭션 처리 결과를 상기 클라이언트 서버에 전송하는 단계;
상기 클라이언트 서버에 의해, 상기 트랜잭션 처리 결과를 상기 단말에 전송하는 단계; 및
상기 단말에 의해, 상기 클라이언트 서버로부터 전송되는 트랜잭션 처리 결과를 표시하는 단계를 더 포함하는 것을 특징으로 하는 이더리움과 IPFS를 활용한 전자문서 관리 방법.4. The method of claim 3,
receiving, by the terminal, a plurality of input values corresponding to a plurality of input items included in an additional information input menu in the initial screen according to a user input of the terminal, from among the initial screens displayed on the terminal;
When a preset submission menu displayed on one side of the initial screen of the terminal is selected, transmitting, by the terminal, the received plurality of input values, block storage request information, and identification information of the terminal to the client server ;
transmitting, by the client server, a plurality of input values transmitted from the terminal and identification information of the terminal to an Ethereum server;
storing, by the Ethereum server, a plurality of input values transmitted from the client server in an Ethereum block;
transmitting, by the Ethereum server, a transaction processing result to the client server;
transmitting, by the client server, the transaction processing result to the terminal; and
The electronic document management method using Ethereum and IPFS, characterized in that it further comprises the step of displaying, by the terminal, the transaction processing result transmitted from the client server.
상기 복수의 입력값을 이더리움 블록에 저장하는 단계는,
상기 복수의 입력값에 미리 설정된 합의 알고리즘 방식인 POA(Proof of Authority) 및 스마트 컨트랙트(smart contract)를 적용하여 상기 이더리움 블록에 저장하는 것을 특징으로 하는 이더리움과 IPFS를 활용한 전자문서 관리 방법.7. The method of claim 6,
Storing the plurality of input values in the Ethereum block comprises:
Electronic document management method using Ethereum and IPFS, characterized in that the plurality of input values are stored in the Ethereum block by applying POA (Proof of Authority) and smart contract, which are preset consensus algorithm methods .
상기 단말에 의해, 상기 단말에 표시되는 초기화면 중에서, 상기 단말의 사용자 입력에 따라 상기 초기화면 내의 해시값 입력 메뉴에 포함된 해시값 입력 항목에 대응하는 사용자 입력 해시값을 수신하는 단계;
상기 초기 화면의 일측에 표시되는 미리 설정된 파일보기 메뉴가 선택될 때, 상기 단말에 의해, 상기 사용자 입력 해시값, 파일 검색 요청 정보 및 상기 단말의 식별 정보를 상기 클라이언트 서버에 전송하는 단계;
상기 클라이언트 서버에 의해, 상기 복수의 IPFS와 연동하여, 상기 사용자 입력 해시값과 관련해서 하나 이상의 IPFS에 분산 저장된 복수의 서브 파일을 수집하는 단계;
상기 클라이언트 서버에 의해, 상기 수집된 복수의 서브 파일을 조합하여, 상기 사용자 입력 해시값에 대응하는 하나의 원본 파일을 생성하는 단계;
상기 클라이언트 서버에 의해, 상기 생성된 원본 파일을 상기 단말에 전송하는 단계; 및
상기 단말에 의해, 상기 클라이언트 서버로부터 전송되는 원본 파일을 표시하거나 다운로드하는 단계를 더 포함하는 것을 특징으로 하는 이더리움과 IPFS를 활용한 전자문서 관리 방법.4. The method of claim 3,
receiving, by the terminal, a user input hash value corresponding to a hash value input item included in a hash value input menu in the initial screen according to a user input of the terminal from among the initial screen displayed on the terminal;
transmitting, by the terminal, the user input hash value, file search request information, and identification information of the terminal to the client server when a preset file view menu displayed on one side of the initial screen is selected;
collecting, by the client server, a plurality of sub-files distributed and stored in one or more IPFSs in association with the user input hash value in association with the plurality of IPFS;
generating, by the client server, a single original file corresponding to the user input hash value by combining the plurality of collected sub files;
transmitting, by the client server, the generated original file to the terminal; and
The electronic document management method using Ethereum and IPFS, characterized in that it further comprises, by the terminal, displaying or downloading the original file transmitted from the client server.
상기 단말에 표시되는 초기화면 중에서, 상기 단말의 사용자 입력에 따라 상기 초기화면 내의 다른 해시값 입력 메뉴에 포함된 다른 해시값 입력 항목에 대응하는 다른 해시값을 수신하고, 상기 초기화면 내의 추가 파일 선택 메뉴에 따라 상기 단말에 저장된 하나 이상의 파일 중에서 어느 하나의 특정 파일이 선택된 후, 상기 초기화면 내의 파일 진위 여부 확인 메뉴가 선택될 때, 상기 단말에 의해, 상기 수신된 다른 해시값, 상기 선택된 특정 파일, 진위 여부 확인 요청 정보 및 상기 단말의 식별 정보를 상기 클라이언트 서버에 전송하는 단계;
상기 클라이언트 서버에 의해, 복수의 IPFS 중에서 랜덤하게 선택되는 다른 특정 IPFS에 상기 특정 파일 및 상기 단말의 식별 정보를 전송하는 단계;
상기 다른 특정 IPFS에 의해, 상기 클라이언트 서버로부터 전송되는 상기 특정 파일을 근거로 또 다른 해시값을 생성하고, 상기 생성된 또 다른 해시값을 상기 클라이언트 서버에 전송하는 단계;
상기 클라이언트 서버에 의해, 상기 다른 특정 IPFS로부터 전송되는 또 다른 해시값을 수신하는 단계;
상기 클라이언트 서버에 의해, 상기 단말로부터 전송된 다른 해시값과 상기 다른 특정 IPFS로부터 전송된 또 다른 해시값이 일치하는지 여부를 판단하는 단계;
상기 클라이언트 서버에 의해, 상기 판단 결과에 따라 특정 파일의 진위 여부에 대한 정보를 생성하고, 상기 생성된 특정 파일의 진위 여부에 대한 정보를 상기 단말에 전송하는 단계; 및
상기 단말에 의해, 상기 클라이언트 서버로부터 전송되는 특정 파일의 진위 여부에 대한 정보를 표시하는 단계를 더 포함하는 것을 특징으로 하는 이더리움과 IPFS를 활용한 전자문서 관리 방법.4. The method of claim 3,
Among the initial screens displayed on the terminal, according to a user input of the terminal, a different hash value corresponding to another hash value input item included in another hash value input menu in the initial screen is received, and an additional file in the initial screen is selected After selecting any one specific file from among one or more files stored in the terminal according to the menu, when the file authenticity check menu in the initial screen is selected, the other hash value received by the terminal, the selected specific file , transmitting authenticity confirmation request information and identification information of the terminal to the client server;
transmitting, by the client server, the specific file and identification information of the terminal to another specific IPFS randomly selected from among a plurality of IPFSs;
generating another hash value based on the specific file transmitted from the client server by the other specific IPFS, and transmitting the generated another hash value to the client server;
receiving, by the client server, another hash value transmitted from the other specific IPFS;
determining, by the client server, whether another hash value transmitted from the terminal matches another hash value transmitted from the other specific IPFS;
generating, by the client server, information on whether a specific file is authentic or not according to the determination result, and transmitting information on whether the generated specific file is authentic or not to the terminal; and
The electronic document management method using Ethereum and IPFS, characterized in that it further comprises the step of displaying, by the terminal, information on the authenticity of the specific file transmitted from the client server.
상기 특정 파일의 진위 여부에 대한 정보는,
상기 특정 파일과 관련한 또 다른 해시값과, 상기 특정 파일이 상기 다른 해시값에 대응하는 감정 대상 파일과 일치하지 않음을 나타내는 정보 또는 상기 특정 파일이 감정 대상 파일과 일치함을 나타내는 정보를 포함하는 것을 특징으로 하는 이더리움과 IPFS를 활용한 전자문서 관리 방법.10. The method of claim 9,
Information about the authenticity of the specific file,
Another hash value related to the specific file and information indicating that the specific file does not match the analysis target file corresponding to the other hash value or information indicating that the specific file matches the analysis target file E-document management method using Ethereum and IPFS.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220009306A KR102456903B1 (en) | 2022-01-21 | 2022-01-21 | System for managing electronic document using ethereum and IPFS and method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220009306A KR102456903B1 (en) | 2022-01-21 | 2022-01-21 | System for managing electronic document using ethereum and IPFS and method thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102456903B1 true KR102456903B1 (en) | 2022-10-21 |
Family
ID=83805577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220009306A KR102456903B1 (en) | 2022-01-21 | 2022-01-21 | System for managing electronic document using ethereum and IPFS and method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102456903B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113468612A (en) * | 2021-06-30 | 2021-10-01 | 上海特高信息技术有限公司 | File auditing system and method based on block chain and IPFS |
Citations (5)
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 |
KR102065315B1 (en) * | 2019-10-04 | 2020-01-13 | 주식회사 도우테크 | System and method for keeping and sharing a file based on block chain network |
KR20200101512A (en) * | 2019-01-30 | 2020-08-28 | 펜타시큐리티시스템 주식회사 | Method and apparatus for sharing big data using block chain |
KR20210072265A (en) * | 2019-12-09 | 2021-06-17 | 한국전자통신연구원 | Method and apparatus for distributed processing of services using blockchain |
KR102269812B1 (en) * | 2020-11-12 | 2021-06-28 | (주)아이디엔디 | System for providing blockchain based drawing transaction service |
-
2022
- 2022-01-21 KR KR1020220009306A patent/KR102456903B1/en active IP Right Grant
Patent Citations (5)
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 |
KR20200101512A (en) * | 2019-01-30 | 2020-08-28 | 펜타시큐리티시스템 주식회사 | Method and apparatus for sharing big data using block chain |
KR102065315B1 (en) * | 2019-10-04 | 2020-01-13 | 주식회사 도우테크 | System and method for keeping and sharing a file based on block chain network |
KR20210072265A (en) * | 2019-12-09 | 2021-06-17 | 한국전자통신연구원 | Method and apparatus for distributed processing of services using blockchain |
KR102269812B1 (en) * | 2020-11-12 | 2021-06-28 | (주)아이디엔디 | System for providing blockchain based drawing transaction service |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113468612A (en) * | 2021-06-30 | 2021-10-01 | 上海特高信息技术有限公司 | File auditing system and method based on block chain and IPFS |
CN113468612B (en) * | 2021-06-30 | 2023-08-22 | 上海特高信息技术有限公司 | File auditing system and method based on block chain and IPFS |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11902450B2 (en) | Blockchain generation method and system, and related device | |
US11405368B2 (en) | Systems, methods, and media for a cloud based social media network | |
US10673988B2 (en) | Creation, publication and display of content on a social media network | |
CN109522330B (en) | Cloud platform data processing method, device, equipment and medium based on block chain | |
CN110545190B (en) | Signature processing method, related device and equipment | |
KR20210133289A (en) | Data extraction from blockchain networks | |
KR20200083934A (en) | Visual blockchain browser | |
CN102306256A (en) | The file that obtains is carried out the prestige inspection | |
CN109521956B (en) | Cloud storage method, device, equipment and storage medium based on block chain | |
CN111291394B (en) | False information management method, false information management device and storage medium | |
CN110266872B (en) | Address book data management and control method and device, cloud address book system, computer equipment and computer readable storage medium | |
CN111476572A (en) | Data processing method and device based on block chain, storage medium and equipment | |
CN109565518A (en) | Interchangeable content retrieval | |
CN112035897A (en) | Block chain evidence storage method and related device | |
CN110266505A (en) | A kind of method and apparatus managing session group | |
KR102447797B1 (en) | System for managing document based on IPFS and method thereof | |
KR102456903B1 (en) | System for managing electronic document using ethereum and IPFS and method thereof | |
CN110807209B (en) | Data processing method, device and storage medium | |
US8959248B2 (en) | Personal computing environment with virtual computing device | |
WO2022057525A1 (en) | Method and device for data retrieval, electronic device, and storage medium | |
CN110705985A (en) | Method and apparatus for storing information | |
US10762287B2 (en) | Edoc utility using non-structured-query-language databases | |
CN113890753B (en) | Digital identity management method, device, system, computer equipment and storage medium | |
CN111259452A (en) | Data management method based on block chain and related device | |
CN111476562A (en) | Virtual resource transfer method, device, electronic equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |