KR20210041459A - The encrypted data sharing system based on block chain and IPFS(InterPlanetary File System) - Google Patents

The encrypted data sharing system based on block chain and IPFS(InterPlanetary File System) Download PDF

Info

Publication number
KR20210041459A
KR20210041459A KR1020190124223A KR20190124223A KR20210041459A KR 20210041459 A KR20210041459 A KR 20210041459A KR 1020190124223 A KR1020190124223 A KR 1020190124223A KR 20190124223 A KR20190124223 A KR 20190124223A KR 20210041459 A KR20210041459 A KR 20210041459A
Authority
KR
South Korea
Prior art keywords
file
blockchain
data
ipfs
symmetric key
Prior art date
Application number
KR1020190124223A
Other languages
Korean (ko)
Other versions
KR102347022B1 (en
Inventor
이정륜
이건홍
선요섭
Original Assignee
주식회사 블록체인기술연구소
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 블록체인기술연구소 filed Critical 주식회사 블록체인기술연구소
Priority to KR1020190124223A priority Critical patent/KR102347022B1/en
Publication of KR20210041459A publication Critical patent/KR20210041459A/en
Application granted granted Critical
Publication of KR102347022B1 publication Critical patent/KR102347022B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • H04L2209/38

Abstract

Provided are an encrypted data sharing system based on a blockchain and an interplanetary file system (IPFS). The encrypted data sharing system based on a blockchain and an IPFS comprises: a blockchain network configured by connecting a plurality of nodes and including a smart contract for storing data in a blockchain or executing an action of downloading the stored data; an IPFS connected to each of the nodes in the blockchain network, recording file information in a block through the action of the smart contract, and uploading and downloading a file and requesting and transmitting a symmetric key through the action of the smart contract; and a file management module generating an arbitrary symmetric key for the file when a data uploader node in the blockchain network uploads the file, encrypting the file to be uploaded with the symmetric key, and uploading the encrypted file to the IPFS. When the encrypted file is uploaded, the IPFS returns an address of the file to the blockchain, and the symmetric key is encrypted with a public key of a blockchain account of a user node in the blockchain network to be stored in the blockchain with the file address. Therefore, data forgery/tamper can be prevented.

Description

블록체인과 IPFS 기반의 암호화 데이터 공유 시스템{The encrypted data sharing system based on block chain and IPFS(InterPlanetary File System)}The encrypted data sharing system based on block chain and IPFS(InterPlanetary File System)}

본 발명은 블록체인과 IPFS 기반의 암호화 데이터 공유 시스템에 관한 것이다. 더욱 상세하게는, 블록체인 기반으로 디지털 상의 신뢰된 시스템에서 안전하게 대용량 데이터를 공유할 수 있는 블록체인과 IPFS 기반의 암호화 데이터 공유 시스템에 관한 것이다. The present invention relates to a blockchain and IPFS-based encryption data sharing system. More specifically, it relates to a block chain and IPFS-based encryption data sharing system that can safely share large amounts of data in a digitally trusted system based on a block chain.

블록체인(Block Chain)은 네트워크에 참여하는 모든 사용자가 관리 대상이 되는 모든 데이터를 분산하여 저장하는 데이터 분산처리기술을 의미한다. 거래 정보가 담긴 원장(原帳)을 거래 주체나 특정 기관에서 보유하는 것이 아니라 네트워크 참여자 모두가 나누어 가지는 기술이라는 점에서 '분산원장기술(DLT:Distributed Ledger Technology)' 또는 '공공거래장부'라고도 한다. 블록체인은 거래 내용이 담긴 블록(Block)을 사슬처럼 연결(chain)한 것이라 하여 붙여진 명칭이다. 이러한 블록체인은 거래 내용의 위변조와 같은 해킹을 막기 위한 기술이며, 거래에 참여하는 모든 사용자에게 거래 내역을 보내 주며 거래 때마다 이를 대조해 데이터 위조를 막는 방식을 사용한다. Block Chain refers to a data distribution processing technology that distributes and stores all data that are subject to management by all users participating in the network. It is also called'Distributed Ledger Technology (DLT)' or'Public Transaction Ledger' in that the ledger containing transaction information is not owned by the transaction entity or a specific institution, but is shared by all network participants. . Blockchain is a name given as a chain of blocks containing transaction details. This blockchain is a technology to prevent hacking such as forgery of transaction contents, and it sends transaction details to all users participating in the transaction, and uses a method to prevent data forgery by collating it with each transaction.

블록체인은 금융기관에서 모든 거래를 담보하고 관리하는 기존의 금융 시스템에서 벗어나 P2P(Peer to Peer;개인 대 개인) 거래를 지향하는, 탈(脫)중앙화를 핵심 개념으로 한다. P2P란 서버나 클라이언트 없이 개인 컴퓨터 사이를 연결하는 통신망을 말하며, 연결된 각각의 컴퓨터가 서버이자 클라이언트 역할을 하며 정보를 공유하는 방식이다. 다수의 노드가 같은 데이터를 공유하고 검증하는 방식을 통해 디지털 상에 신뢰관계를 형성하게 된다. 이러한 환경은 중개자 없이 P2P로 편리하게 계약을 체결하고 수정할 수 있는 스마트 컨트랙트를 실현 가능하게 한다.Blockchain is a core concept of decentralization, which aims for P2P (Peer to Peer) transactions, away from the existing financial system that secures and manages all transactions in financial institutions. P2P refers to a communication network that connects personal computers without a server or client, and each connected computer acts as a server and a client to share information. Multiple nodes share and verify the same data to form a digital trust relationship. This environment makes it possible to realize smart contracts that can conveniently sign and modify contracts through P2P without an intermediary.

기존 금융 시스템에서는 금융회사들이 중앙 서버에 거래 기록을 보관해 온 반면, P2P 방식을 기반으로 하는 블록체인에서는 거래 정보를 블록에 담아 차례대로 연결하고 이를 모든 참여자가 공유한다.In the existing financial system, financial companies have kept transaction records on a central server, whereas in a blockchain based on the P2P method, transaction information is stored in blocks and connected in sequence, which is shared by all participants.

가상화폐(Virtual Currency)는 전자화폐 또는 암호화폐라고도 하며, 지폐나 동전 등의 실물이 없고 온라인에서 거래되는 화폐를 말한다. 가상화폐는 각국 정부나 중앙은행이 발행하는 일반 화폐와 달리 처음 고안한 사람이 정한 규칙에 따라 가치가 매겨진다. 또한, 탈중앙화 특징에 의해 정부나 중앙은행에서 거래 내역을 관리하지 않고 블록체인 기술을 기반으로 유통되기 때문에 정부 등 특정 기관이 가치나 지급을 보장하지 않는다.Virtual currency, also known as electronic money or cryptocurrency, refers to currency that is traded online without real money such as bills or coins. Unlike ordinary currencies issued by governments or central banks in each country, virtual currency is valued according to rules set by the person who first devised it. In addition, due to the decentralization feature, the government or central bank does not manage transaction details and distributes based on blockchain technology, so specific institutions such as the government do not guarantee value or payment.

한국 등록특허 10-1936758 (공고일자 2019년 1월 11일)Korean Patent Registration 10-1936758 (announcement date January 11, 2019)

본 발명이 해결하고자 하는 기술적 과제는, 데이터 업로더 노드는 블록체인 내 암호화된 데이터를 공유하되, 데이터 다운로더 노드에서 해당 파일의 접근을 요청하는 경우에 암호화된 데이터의 대칭키를 다운로더 노드의 블록체인 계정의 공개키로 암호화하여 전달하면 데이터 다운로더 노드는 자신의 개인키로 암호화된 대칭키를 복호하하여 대칭키를 획득하고, 암호화된 데이터를 열람할 수 있는 블록체인과 IPFS 기반의 암호화 데이터 공유 시스템을 제공하는 것이다. The technical problem to be solved by the present invention is that the data uploader node shares the encrypted data in the blockchain, but when the data downloader node requests access to the file, the symmetric key of the encrypted data is transferred to the block chain of the downloader node. When encrypted with the account's public key and transmitted, the data downloader node decrypts the symmetric key encrypted with its own private key to obtain the symmetric key, and provides a block chain and IPFS-based encrypted data sharing system for viewing the encrypted data. It is to do.

다만, 본 발명이 해결하고자 하는 기술적 과제들은 상기 과제들로 한정되는 것이 아니며, 본 발명의 기술적 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있다. However, the technical problems to be solved by the present invention are not limited to the above problems, and may be variously extended without departing from the spirit and scope of the present invention.

상기 과제를 해결하기 위한 본 발명의 일 실시예에 따른 블록체인과 IPFS 기반의 암호화 데이터 공유 시스템은, 다수의 노드들이 연결되어 구성되고, 블록체인에 데이터를 저장하거나 저장된 데이터를 다운로드하는 액션을 실행하는 스마트 컨트랙트를 포함하는 블록체인 네트워크, 상기 블록체인 네트워크 내의 각 노드들과 연계되고, 상기 스마트 컨트랙트의 액션을 통해 파일 정보를 블록에 기록하고, 상기 스마트 컨트랙트 액션을 통해 파일 업로드와 다운로드 및 대칭키 요청과 전송을 구현하는 IPFS(InterPlanetary File System), 및 상기 블록체인 네트워크 내의 데이터 업로더 노드가 파일을 업로드하는 경우, 해당 파일에 대한 임의의 대칭키를 생성하며, 업로드할 파일을 상기 대칭키로 암호화하여 상기 IPFS에 업로드하는 파일 관리 모듈을 포함하고, 상기 IPFS는 암호화된 파일의 업로드가 완료되면 해당 파일의 주소를 상기 블록체인으로 반환하고, 상기 대칭키는 상기 블록체인 네트워크 내의 사용자 노드의 블록체인 계정의 공개키로 암호화되어 상기 파일 주소와 함께 상기 블록체인에 저장된다. Blockchain and IPFS-based encryption data sharing system according to an embodiment of the present invention to solve the above problem is configured by connecting a plurality of nodes, and executes an action of storing data in the blockchain or downloading the stored data. Blockchain network including a smart contract that is connected to each node in the blockchain network, records file information in a block through the action of the smart contract, and uploads and downloads files and symmetric keys through the smart contract action. When IPFS (InterPlanetary File System) that implements request and transmission, and a data uploader node in the blockchain network upload a file, a random symmetric key is generated for the file, and the file to be uploaded is encrypted with the symmetric key. And a file management module for uploading to the IPFS, wherein the IPFS returns the address of the file to the blockchain when the upload of the encrypted file is completed, and the symmetric key is a block chain of a user node in the blockchain network. It is encrypted with the account's public key and stored in the blockchain along with the file address.

본 발명에 따른 몇몇 실시예에서, 상기 블록체인 네트워크 내의 데이터 다운로더 노드에서 상기 암호화된 파일에 관한 대칭키 전송이 요청된 경우, 상기 데이터 업로더 노드는 상기 데이터 다운로더 노드의 공개키로 상기 대칭키를 암호하하여 상기 블록체인에 저장할 수 있다. In some embodiments according to the present invention, when a data downloader node in the blockchain network requests transmission of a symmetric key for the encrypted file, the data uploader node encrypts the symmetric key with the public key of the data downloader node. It can be stored in the above blockchain.

본 발명에 따른 몇몇 실시예에서, 상기 데이터 다운로더 노드는 자신의 개인키로 상기 암호화된 대칭키를 복호화하여 원본 대칭키를 획득하고, 상기 원본 대칭키를 이용하여 상기 암호화된 파일을 복호화하여 원본 파일을 열람할 수 있다. In some embodiments according to the present invention, the data downloader node decrypts the encrypted symmetric key with its own private key to obtain an original symmetric key, and decrypts the encrypted file using the original symmetric key to obtain the original file. You can read it.

본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Other specific details of the present invention are included in the detailed description and drawings.

본 발명에 따르면, 데이터 공유 시스템의 폐쇄성 및 무결성을 유지하여 사용자 노드간에 파일을 공유할 수 있도록 하며, 신뢰된 시스템 상의 파일의 접근 범위를 제한하여 보안을 강화하고, 데이터 위/변조 방지를 가능하게 한다.According to the present invention, it is possible to share files between user nodes by maintaining the closedness and integrity of a data sharing system, and to enhance security by limiting the access range of files on a trusted system, and to prevent data forgery/tampering. do.

다만, 본 발명의 효과는 상기 효과들로 한정되는 것이 아니며, 본 발명의 기술적 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있다. However, the effects of the present invention are not limited to the above effects, and may be variously extended without departing from the spirit and scope of the present invention.

도 1은 본 발명에 따른 기술적 사상이 적용될 수 있는 블록체인을 이용한 분산처리 시스템을 도시한 도면이다.
도 2 및 도 3은 블록체인 시스템에서 이용되는 블록의 연결을 도시한 블록도이다.
도 4는 본 발명의 실시예에 따른 블록체인과 IPFS 기반의 암호화 데이터 공유 시스템의 구성을 도시한 블록도이다.
도 5는 본 발명의 시스템에서의 암호화된 데이터를 복호화하는 절차를 설명하기 위한 도면이다.
도 6은 본 발명의 실시예에 따른 노드의 컴퓨팅 장치의 구성도이다.
1 is a diagram showing a distributed processing system using a block chain to which the technical idea according to the present invention can be applied.
2 and 3 are block diagrams showing the connection of blocks used in a block chain system.
4 is a block diagram showing the configuration of a block chain and IPFS-based encrypted data sharing system according to an embodiment of the present invention.
5 is a diagram for explaining a procedure for decrypting encrypted data in the system of the present invention.
6 is a block diagram of a computing device of a node according to an embodiment of the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. Advantages and features of the present invention, and a method of achieving them will become apparent with reference to the embodiments described below in detail together with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but will be implemented in a variety of different forms, only the present embodiments are intended to complete the disclosure of the present invention, and common knowledge in the technical field to which the present invention pertains. It is provided to completely inform the scope of the invention to those who have, and the invention is only defined by the scope of the claims.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며, 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.The terms used in the present specification are for describing exemplary embodiments, and are not intended to limit the present invention. In this specification, the singular form also includes the plural form unless specifically stated in the phrase. As used herein, "comprises" and/or "comprising" refers to the presence of one or more other components, steps, actions and/or elements in which the recited component, step, operation and/or element is Or does not preclude additions.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used in the present specification may be used with meanings that can be commonly understood by those of ordinary skill in the art to which the present invention belongs. In addition, terms defined in a commonly used dictionary are not interpreted ideally or excessively unless explicitly defined specifically.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예들을 보다 상세하게 설명하고자 한다. 도면 상의 동일한 구성요소에 대해서는 동일한 참조 부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described in more detail with reference to the accompanying drawings. The same reference numerals are used for the same elements in the drawings, and duplicate descriptions for the same elements are omitted.

기존에는 중앙화된 구조의 웹(Web)을 통해 인터넷 상에서 데이터를 송수신한다. 이때, 데이터 공유를 위해 이용하는 규약이 HTTP 프로토콜이며, 이는 클라이언트가 서버에 데이터요청(request)을 보내면, 서버에서 응답(response)하며 데이터를 보내주는 구조로 되어있다. 따라서, 만약 서버의 전원이 차단되면 링크가 끊겨버리고, 해당 컨텐츠에 대해 접근할 수 있는 방법이 없어지게 된다. 또는, 서버 해킹으로 인해 데이터가 삭제된다면 백업을 하지 않은 이상 데이터를 복구하기가 어렵게 된다. In the past, data is transmitted and received over the Internet through a centralized web. At this time, the protocol used for data sharing is the HTTP protocol, which has a structure in which when a client sends a data request to the server, the server responds and sends the data. Therefore, if the power of the server is cut off, the link is cut off, and there is no way to access the content. Or, if data is deleted due to server hacking, it becomes difficult to recover data unless backup is made.

종전까지는 작은 용량의 파일을 전송하는 데에 별다른 비용이 들지 않았기 때문에 파일 전송 효율성에 크게 관심을 갖지 않았으나, 앞으로는 인터넷 상에서 공유하는 파일(정보, 데이터)은 그 용량이 점점 증가할 것이다. 일례로, 스트리밍 서비스로 시청하는 영상의 질이 상승하면서 그 용량 또한 증가하였다. 또한, Bandwidth 발전 속도는 다른 Storage 발전 속도를 따라가지 못하는 실정이다. 이는 결국 상대적으로 통신 속도가 느려진다는 것을 의미한다. Previously, we did not pay much attention to the efficiency of file transfer because it did not cost a lot to transfer small files, but in the future, files (information, data) shared on the Internet will increase in size. For example, as the quality of the video viewed through the streaming service has increased, the capacity has also increased. In addition, the speed of bandwidth development cannot keep up with other storage speeds. This in turn means that the communication speed is relatively slow.

이하에서 설명하는 본 발명은 블록체인과 IPFS(InterPlanetary File System) 기반의 암호화 데이터 공유 시스템에 관한 것이다. 이는 디지털 상에서 신뢰된 시스템에서 안전하게 대용량 데이터를 공유할 수 있는 방법을 제안한다. The present invention described below relates to an encrypted data sharing system based on a block chain and an IPFS (InterPlanetary File System). This proposes a method for safely sharing large amounts of data in a digitally trusted system.

본 발명의 설명에 앞서, IPFS 시스템에 대해 설명하기로 한다. Prior to the description of the present invention, an IPFS system will be described.

IPFS는 모든 컴퓨터 노드를 연결하고자 하는 분산된 P2P 파일 시스템이며, IPFS Web은 기존의 HTTP Web의 문제점을 해결하고 보완한 새로운 Web이다. IPFS의 특징으로는, 중앙화된 서버 없이 노드들의 P2P 통신으로 실현된 더욱 빠르고 안전하고 개방된 네트워크이다. 대형 서버의 연결이 차단되면 치명적인 결과를 낳는 과거 HTTP Web과는 달리, IPFS에서는 몇몇 노드들이 연결이 끊어지더라도 시스템이 안정적으로 유지될 수 있다. IPFS is a distributed P2P file system that connects all computer nodes, and IPFS Web is a new Web that solves and supplements the problems of the existing HTTP Web. As a feature of IPFS, it is a faster, more secure and open network realized through peer-to-peer communication of nodes without a centralized server. Unlike the HTTP Web in the past, which has fatal consequences when a connection to a large server is blocked, in IPFS, the system can be kept stable even if some nodes are disconnected.

또한, 고용량의 파일을 빠르고 효율적으로 전달할 수 있으며(BitSwap), 파일들의 중복을 알 수 있기 때문에 저장소도 효율적으로 사용할 수 있다(Merkle DAG, contents-addressed). IPFS 상에 업로드된 파일의 이름은 영원히 기록되며, 만약 IPFS 상에서 보존하고 싶은 파일은 반영구적으로 보존이 가능하다(pinning). 또한, 파일의 버전 관리(Git)가 가능하다.In addition, high-capacity files can be delivered quickly and efficiently (BitSwap), and storage can be used efficiently because duplicates of files can be recognized (Merkle DAG, contents-addressed). The names of files uploaded on IPFS are recorded forever, and files that you want to save on IPFS can be semi-permanently saved (pinning). Also, file version control (Git) is possible.

IPFS에서는 각각의 파일이 여러 개의 블록으로 이루어져 있으며, 각각의 블록은 해시로 표현된 고유의 이름이 있다. IPFS는 모든 파일의 이름을 데이터베이스에 저장하며, 동일 파일의 중복을 배제하며, 각 파일의 버전 정보를 트래킹한다. 각 노드는 본인이 관심있는 파일만 저장소에 보관하며, 인덱싱 정보를 통해 누가 어떤 파일을 저장하고 있는지 알 수 있다. 네트워크에서 파일을 찾기 위해서는, 파일명을 조회하고 해당 파일을 갖고 있는 노드를 추적하면 된다. IPNS를 통해 모든 파일명은 인간이 읽기 쉬운 형태(DNS와 유사한 개념)로 변환할 수 있다. In IPFS, each file consists of several blocks, and each block has a unique name expressed as a hash. IPFS stores the names of all files in the database, excludes duplication of the same file, and tracks version information of each file. Each node keeps only the files that it is interested in in the storage, and you can know who is storing which files through indexing information. To find a file on the network, simply look up the file name and trace the node that has the file. Through IPNS, all file names can be converted into a human-readable form (a concept similar to DNS).

그리고, 이하에서는 본 발명의 개념이 적용될 수 있는 블록체인을 이용한 분산처리 시스템에 관해 설명하기로 한다. And, hereinafter, a distributed processing system using a block chain to which the concept of the present invention can be applied will be described.

도 1은 본 발명에 따른 기술적 사상이 적용될 수 있는 블록체인을 이용한 분산처리 시스템을 도시한 도면이다.1 is a diagram showing a distributed processing system using a block chain to which the technical idea according to the present invention can be applied.

도 1을 참조하면 블록체인을 이용한 분산처리 시스템(100)은 복수의 노드들(110-170)로 이루어진 분산형 네트워크(distributed network) 시스템이다. 상기 분산형 네트워크(100)를 구성하는 노드들(110-170)은 컴퓨터, 이동 단말기, 전용 전자 장치 등 연산 능력이 있는 전자 장치일 수 있다.Referring to FIG. 1, a distributed processing system 100 using a block chain is a distributed network system composed of a plurality of nodes 110-170. The nodes 110 to 170 constituting the distributed network 100 may be electronic devices having computing power, such as a computer, a mobile terminal, and a dedicated electronic device.

일반적으로 분산형 네트워크(100)는 블록체인이라 불리는 블록(block)의 연결 묶음 내에 모든 참여 노드에 공통으로 알려진 정보를 저장하고 참조할 수 있다. 상기 노드들(110-170)은 상호간 통신이 가능하며 블록체인을 저장, 관리 및 전파를 담당하는 완전 노드(full node)와 단순하게 트랜잭션에만 참여할 수 있는 간이 노드(light node)로 구분될 수 있다. 본 명세서에서 별다른 설명 없이 노드에 대하여 언급되는 경우, 이는 분산형 네트워크에 참여하며 블록체인을 생성, 저장 또는 검증하는 동작을 수행하는 완전 노드를 지칭하는 경우가 많으나, 이에 한정되는 것은 아니다. In general, the decentralized network 100 may store and refer to information commonly known to all participating nodes within a connection bundle of blocks called a block chain. The nodes 110-170 can communicate with each other and can be divided into a full node that is responsible for storing, managing, and disseminating the block chain, and a light node that can only participate in transactions only. . When a node is referred to in the present specification without further explanation, it is often referred to as a complete node that participates in a distributed network and performs an operation of creating, storing, or verifying a block chain, but is not limited thereto.

상기 블록체인에 연결되어 있는 각 블록들은 일정 기간 내의 거래 내역, 즉 트랜잭션(transaction)들을 포함한다. 상기 노드들은 각각 역할에 따라 블록체인을 생성, 저장 또는 검증함으로써 트랜잭션들을 관리할 수 있다.Each block connected to the blockchain includes transaction details, that is, transactions within a certain period of time. The nodes can manage transactions by creating, storing, or verifying the blockchain according to their respective roles.

실시 형태에 따라 상기 트랜잭션은 다양한 형태의 거래를 나타낼 수 있다. 일 실시예에서 상기 트랜잭션은 가상화폐의 소유 상태 및 그 변동을 나타내기 위한 금융 거래에 해당할 수 있다. 다른 실시예에서 상기 트랜잭션은 물건의 소유 상태 및 그 변동을 나타내기 위한 실물 거래에 해당할 수 있다. 또 다른 실시예에서 상기 트랜잭션은 정보의 기록, 저장 및 이송을 나타내기 위한 정보 공유 과정에 해당할 수 있다. 상기 분산형 네트워크(100)에서 거래를 수행하는 노드들은 각각의 암호학적 연관관계가 있는 개인키(private key) 및 공개키(public key) 쌍을 가질 수 있다.Depending on the embodiment, the transaction may represent various types of transactions. In one embodiment, the transaction may correspond to a financial transaction to indicate the ownership status of virtual currency and its change. In another embodiment, the transaction may correspond to a real transaction for indicating the ownership status of an object and its change. In another embodiment, the transaction may correspond to an information sharing process for indicating recording, storage, and transfer of information. Nodes performing a transaction in the distributed network 100 may have a private key and a public key pair each having a cryptographic relationship.

도 2 및 도 3은 블록체인 시스템에서 이용되는 블록의 연결을 도시한 블록도이다.2 and 3 are block diagrams showing the connection of blocks used in a block chain system.

도 2를 참조하면 블록체인(200)은 순차적으로 연결된 하나 이상의 블록들(210, 220, 230)의 분산 데이터베이스의 일종이다. 상기 블록체인(200)은 블록체인 시스템 내 사용자의 거래 내역을 저장하고 관리하기 위해 사용되며, 상기 블록체인 시스템의 네트워크에 참여하는 각 노드가 블록을 생성하여 상기 블록체인(200)에 연결한다. 도 2에는 제한된 수의 블록들(210, 220, 230)이 도시되어 있으나 블록체인에 포함될 수 있는 블록의 수는 이에 제한되지 아니한다.Referring to FIG. 2, the block chain 200 is a kind of distributed database of one or more blocks 210, 220, 230 connected in sequence. The block chain 200 is used to store and manage transaction details of users in the block chain system, and each node participating in the network of the block chain system creates a block and connects it to the block chain 200. Although a limited number of blocks 210, 220, and 230 are shown in FIG. 2, the number of blocks that can be included in the block chain is not limited thereto.

상기 블록체인(200)에 포함된 각 블록은 블록 헤더(211)와 블록 바디(213)를 포함하도록 구성될 수 있다. 상기 블록 헤더(211)는 각 블록들간의 연결 관계를 나타내기 위하여 이전 블록(220)의 해시 값을 포함할 수 있다. 상기 블록체인(200)이 유효한지 검증하는 과정에서 상기 블록 헤더(211) 내의 연결 관계가 사용된다. 상기 블록 바디(213)는 상기 블록(210)에 저장되고 관리되는 데이터, 예를 들어 트랜잭션 리스트 또는 트랜잭션 체인을 포함할 수 있다.Each block included in the block chain 200 may be configured to include a block header 211 and a block body 213. The block header 211 may include a hash value of the previous block 220 to indicate a connection relationship between blocks. In the process of verifying whether the block chain 200 is valid, the connection relationship in the block header 211 is used. The block body 213 may include data stored and managed in the block 210, for example, a transaction list or a transaction chain.

도 3을 참조하면, 상기 블록 헤더(211)는 이전 블록의 해시(2112), 현재 블록의 해시(2113), 넌스(Nonce)(2114)를 포함할 수 있다. 또한, 상기 블록 헤더(211)는 블록 내의 트랜잭션 리스트의 헤더를 나타내는 루트(2115)를 포함할 수 있다.Referring to FIG. 3, the block header 211 may include a hash 2112 of a previous block, a hash 2113 of a current block, and a nonce 2114. In addition, the block header 211 may include a root 2115 indicating a header of a transaction list in a block.

전술된 바와 같이, 상기 블록체인(200)은 연결된 하나 이상의 블록들을 포함할 수 있다. 상기 하나 이상의 블록들은 상기 블록 헤더(211) 내의 해시 값에 기초하여 연결된다. 상기 블록 헤더(211)에 포함된 이전 블록의 해시 값(2112)은 직전 블록(220)에 대한 해시 값으로서 직전 블록(220)에 포함된 현재 해시(2213)와 동일한 값이다. 상기 하나 이상의 블록들은 각 블록 헤더 내의 이전 블록의 해시 값에 의하여 연쇄적으로 연결된다. 상기 분산형 네트워크에 참여하는 노드들은 상기 하나 이상의 블록들에 포함된 이전 블록의 해시 값에 기반하여 블록의 유효성을 검증하므로 악의적인 단일 노드가 이미 생성된 블록의 내용을 위조 또는 변조하는 행위가 불가능하다.As described above, the block chain 200 may include one or more connected blocks. The one or more blocks are connected based on a hash value in the block header 211. The hash value 2112 of the previous block included in the block header 211 is a hash value for the previous block 220 and is the same as the current hash 2213 included in the previous block 220. The one or more blocks are concatenated by a hash value of a previous block in each block header. Nodes participating in the distributed network verify the validity of the block based on the hash value of the previous block included in the one or more blocks, so it is impossible for a single malicious node to forge or alter the contents of an already created block. Do.

상기 블록 바디(213)는 트랜잭션 리스트(2131)를 포함할 수 있다. 상기 트랜잭션 리스트(2131)는 블록체인 기반의 거래의 목록이다. 예를 들면, 상기 트랜잭션 리스트(2131)는 상기 블록체인 기반의 금융 시스템에서 이루어진 금융 거래에 대한 기록을 포함할 수 있다. 상기 트랜잭션 리스트(2131)는 트리(tree) 형태로 표현될 수 있으며, 예를 들어, 사용자 A가 사용자 B에게 전송한 금액을 목록 형태로 기록하며, 블록 내의 저장 길이는 현재 블록에 포함된 트랜잭션의 수에 기초하여 증감될 수 있다.The block body 213 may include a transaction list 2131. The transaction list 2131 is a list of blockchain-based transactions. For example, the transaction list 2131 may include records of financial transactions made in the blockchain-based financial system. The transaction list 2131 may be expressed in the form of a tree. For example, the amount transmitted by the user A to the user B is recorded in the form of a list, and the storage length in the block is of the transaction included in the current block. It can be increased or decreased based on the number.

그리고, 블록(210)은 블록 헤더(211)와 블록 바디(213)에 포함된 정보 이외의 기타 정보(2116)를 포함할 수 있다. In addition, the block 210 may include other information 2116 other than the information included in the block header 211 and the block body 213.

분산형 네트워크에 참여하는 노드들은 동일한 블록체인을 가지며, 블록에는 동일한 트랜잭션이 저장된다. 트랜잭션 목록이 포함된 블록이 네트워크에 공유되므로 모든 참여자가 검증할 수 있다.The nodes participating in the decentralized network have the same blockchain, and the same transaction is stored in the block. Since the block containing the transaction list is shared on the network, all participants can verify it.

이하에서는 도면들을 참조하여 본 발명의 구성과 동작에 대해 설명하기로 한다. Hereinafter, the configuration and operation of the present invention will be described with reference to the drawings.

도 4는 본 발명의 실시예에 따른 블록체인과 IPFS 기반의 암호화 데이터 공유 시스템의 구성을 도시한 블록도이다. 도 5는 본 발명의 시스템에서의 암호화된 데이터를 복호화하는 절차를 설명하기 위한 도면이다. 4 is a block diagram showing the configuration of a block chain and IPFS-based encrypted data sharing system according to an embodiment of the present invention. 5 is a diagram for explaining a procedure for decrypting encrypted data in the system of the present invention.

블록체인에 담을 수 있는 데이터의 양은 매우 한정적이어서 겨우 거래 정보나 텍스트만 담을 수 있는 정도이다. 본 발명에서는 이를 해결하기 위해 사진, 동영상을 분산 파일 시스템에 공유할 수 있는 방법으로 IPFS를 제안한다. The amount of data that can be contained in a blockchain is very limited, so it can only contain transaction information or text. In order to solve this problem, the present invention proposes IPFS as a method for sharing photos and videos to a distributed file system.

IPFS는 중앙화된 서버 없이 노드들의 P2P 통신으로 대용량 파일을 여러 조각으로 나누어 가진다. 또한, 대용량 파일을 빠르고 효율적으로 전달할 수 있으며 파일들의 중복을 알 수 있기 때문에 저장소를 효율적으로 사용할 수 있다. IPFS divides large files into several pieces through peer-to-peer communication between nodes without a centralized server. In addition, large files can be delivered quickly and efficiently, and storage can be used efficiently because duplicates of files can be recognized.

IPFS는 일반 웹 서비스와 다르게 몇몇 노드들의 운영이 중단되더라도 생태계가 안정적으로 유지된다는 점에 있어서 블록체인과 매우 유사한 점이 있다. 그러나, 블록체인과 IPFS의 특징인 투명성으로 인해 참여자들은 모든 데이터를 공유하게 되므로 민감한 정보가 담긴 파일은 IPFS에 적합하지 않다. 이런 점을 보완하고자 본 발명에서는 IPFS에 파일을 업로드하기 전에 파일을 대칭키로 암호화하고, 이러한 대칭키를 블록체인 계정의 공개키로 암호화하여 블록체인에 기록하는 방법을 제안한다. Unlike general web services, IPFS is very similar to blockchain in that the ecosystem remains stable even if some nodes are stopped. However, due to the transparency characteristic of blockchain and IPFS, participants share all data, so files containing sensitive information are not suitable for IPFS. To compensate for this, the present invention proposes a method of encrypting a file with a symmetric key before uploading the file to IPFS, encrypting the symmetric key with the public key of a blockchain account, and recording it in the blockchain.

우선, 도 4를 참조하면, 본 발명의 실시예에 따른 블록체인과 IPFS 기반의 암호화 데이터 공유 시스템(300)은 블록체인 네트워크(310), IPFS(320), 파일 관리 모듈(330)로 구성된다.First, referring to FIG. 4, a block chain and IPFS-based encrypted data sharing system 300 according to an embodiment of the present invention is composed of a block chain network 310, an IPFS 320, and a file management module 330. .

블록체인 네트워크(310)는 상술한 블록체인 구조를 포함하여 다수의 노드들이 연결되어 구성되며, 블록체인 내의 스마트 컨트랙트는 블록체인에 등록되고 실행되는 계약의 의미를 구현한 소프트웨어이다. 하나의 스마트 컨트랙트에는 다양한 액션이 실행될 수 있으며, 이러한 액션은 블록체인에 저장된 데이터를 생성하고/읽고/수정하고/삭제할 수 있다. The blockchain network 310 is configured by connecting a number of nodes including the above-described blockchain structure, and the smart contract in the blockchain is software that implements the meaning of a contract registered and executed in the blockchain. Various actions can be executed in one smart contract, and these actions can create/read/modify/delete data stored in the blockchain.

IPFS(320)에 저장되는 파일의 정보는 스마트 컨트랙트의 액션을 통해 블록에 기록할 수 있다. 액션들이 모여 트랜잭션이 되고 트랜잭션들이 모여서 블록이 된다. Information of a file stored in the IPFS 320 may be recorded in a block through an action of a smart contract. Actions are gathered into a transaction, and transactions are gathered into a block.

모든 네트워크 참여자 노드는 트랜잭션과 블록을 조회할 수 있으므로, IPFS(320)에 관한 모든 세부 사항들을 트랜잭션을 통해서 확인할 수 있다. 이러한 스마트 컨트랙트에서는 IPFS(320) 파일 업로드/다운로드와 대칭키 요청/전송의 액션을 구현한다.Since all network participant nodes can query transactions and blocks, all details of the IPFS 320 can be checked through the transaction. In such a smart contract, the IPFS 320 file upload/download and symmetric key request/transfer actions are implemented.

본 발명의 데이터 공유 시스템(300)에서 데이터 업로더 노드가 파일을 업로드하는 경우, 파일 관리 모듈(330)은 해당 파일에 대한 임의의 대칭키(K1)를 생성하며, 업로드할 파일을 대칭키(K1)로 암호화하여 IPFS(320)에 업로드한다. 암호화된 파일의 업로드가 완료된다면 IPFS(320)는 해당 파일의 주소를 반환한다. When the data uploader node uploads a file in the data sharing system 300 of the present invention, the file management module 330 generates a random symmetric key (K1) for the file, and a symmetric key ( It is encrypted with K1) and uploaded to the IPFS (320). When the upload of the encrypted file is completed, the IPFS 320 returns the address of the corresponding file.

파일의 암호화 과정에서 생성했던 대칭키(K1)는 사용자 노드의 블록체인 계정의 공개키(K2)로 암호화되어, IPFS(320) 파일 주소와 함께 블록체인에 저장된다. The symmetric key (K1) created in the file encryption process is encrypted with the public key (K2) of the user node's blockchain account, and is stored in the blockchain along with the IPFS (320) file address.

모든 네트워크 참여자 노드들은 해당 파일의 주소를 조회할 수 있으며 주소를 통해 파일을 다운로드할 수 있지만, 대칭키(K1)가 없다면 파일의 내용을 알 수 없다. 대칭키(K1) 또한 사용자 노드의 블록체인 계정의 공개키(K2)로 암호화되어 있기 때문에 참여자 노드들은 이를 알지 못 한다.All network participant nodes can look up the address of the file and can download the file through the address, but without the symmetric key (K1), the contents of the file cannot be known. The symmetric key (K1) is also encrypted with the public key (K2) of the user node's blockchain account, so the participant nodes do not know this.

특정 사용자 노드에서 파일을 다운로드하는 경우, 네트워크 참여자 노드들 누구나 암호화된 파일에 접근하여 다운로드할 수는 있지만, 대칭키(K1)가 없기 때문에 복호화는 불가능하다. When downloading a file from a specific user node, any network participant node can access and download the encrypted file, but decryption is impossible because there is no symmetric key (K1).

따라서, 데이터 업로더 노드에게 파일 대칭키(K1)를 요청해야 한다. 블록체인을 통해서 대칭키(K1)를 요청하는 트랜잭션을 데이터 업로더 노드로 전송하고 승인을 기다린다. Therefore, it is necessary to request the file symmetric key (K1) from the data uploader node. Through the blockchain, a transaction requesting a symmetric key (K1) is transmitted to the data uploader node and waits for approval.

만약 승인이 이루어지면, 데이터 업로더 노드는 암호화된 대칭키(K1)를 자신의 개인키(K3)로 복호화한다. 복호화를 하면 원본 대칭키(K1)가 나오게 되는데 이를 바로 블록체인에 저장하면 키가 노출될 수 있다. If authorization is made, the data uploader node decrypts the encrypted symmetric key K1 with its own private key K3. When decryption is performed, the original symmetric key (K1) is released, and if it is stored in the blockchain immediately, the key can be exposed.

따라서, 데이터 다운로더 노드만 해당 키를 알 수 있게끔 원본 대칭키(K1)를 데이터 다운로더 노드의 공개키(K2)로 암호화하여 블록체인에 저장한다. 이로써 다른 참여자 노드들은 파일을 확인할 수 없지만, 데이터 다운로더 노드는 파일을 확인할 수 있게 된다. 데이터 다운로더 노드는 자신의 개인키(K3)를 통해서 원본 대칭키(K1)를 얻어내고 최종적으로 암호화된 데이터를 복호화하여 파일 내용을 열람할 수 있다.Therefore, the original symmetric key (K1) is encrypted with the public key (K2) of the data downloader node and stored in the blockchain so that only the data downloader node can know the key. As a result, other participant nodes cannot check the file, but the data downloader node can check the file. The data downloader node can obtain the original symmetric key (K1) through its own private key (K3), and finally decrypt the encrypted data to view the file contents.

상술한 대칭키, 비대칭키, 공개키, 개인키에 대한 개념을 설명하면, 대칭키 암호시스템은 송신측과 수신측간에 각각 암호화와 복호화를 위하여 동일한 비밀키를 사용하는 것을 의미한다. 따라서, 대칭키는 비밀 통신망 또는 직접전달 등의 안전한 전송방식을 통해 전송되어야 한다. When explaining the concepts of the above-described symmetric key, asymmetric key, public key, and private key, the symmetric key encryption system means that the same secret key is used for encryption and decryption between the transmitting side and the receiving side, respectively. Therefore, the symmetric key must be transmitted through a secure transmission method such as a secret communication network or direct transmission.

비대칭키 암호시스템은 공개키 암호시스템이라고도 하며, 암호화와 복호화를 위해 서로 다른 키를 사용하는 것을 의미한다. 암호화에 사용되는 키는 공개키(Public Key)라고 하며, 공개된 장소에 쉽게 접근이 가능하도록 보관된다. 그리고, 복호화에 사용되는 키는 개인키(Private Key)라고 하며, 이는 안전하게 보관되어야 한다. The asymmetric key cryptosystem, also known as a public key cryptosystem, refers to the use of different keys for encryption and decryption. The key used for encryption is called a public key, and it is stored so that it can be easily accessed in a public place. And, the key used for decryption is called a private key, and it must be kept securely.

그리고, 공개키와 개인키를 사용하는 암호화 알고리즘으로서 RSA 암호 알고리즘이 있으며, RSA 암호체계는 큰 숫자를 소인수 분해하는 것이 어렵다는 것에 기반을 두고 있다. RSA 암호 알고리즘은 두 개의 키를 사용하며, 키는 메시지를 열고 잠그는 상수(constant)의 의미를 갖는다. 각 사용자는 자신의 데이터 전송을 위해 데이터를 공개키로 암호화하여 전송하고, 각자의 개인키를 이용하여 복호화를 진행해 서로 보안이 보장된 통신이 가능하다. In addition, there is an RSA encryption algorithm as an encryption algorithm using a public key and a private key, and the RSA encryption system is based on the fact that it is difficult to decompose large numbers into prime factors. The RSA cryptographic algorithm uses two keys, and the key is a constant that opens and locks a message. Each user encrypts and transmits data with a public key for their own data transmission, and decrypts using their own private key to enable secure communication with each other.

상술한 개념들이 본 발명의 암호화 데이터 공유 시스템(300)에 적용되어 암호화된 데이터를 복호화하는 절차를 설명하기 위해 도 5를 참조하면, 데이터 업로더 노드에서는 원본 데이터를 대칭키(K1)로 암호화한 후 IPFS(320)에 업로드한다. Referring to FIG. 5 in order to explain the procedure of decrypting the encrypted data by applying the above-described concepts to the encrypted data sharing system 300 of the present invention, the data uploader node encrypts the original data with a symmetric key (K1). Then, it is uploaded to the IPFS 320.

그리고, 블록체인에 파일 주소를 저장하며, 암호화된 데이터의 다운로드 요청이 있는 경우, 데이터 다운로더 노드의 공개키(K2)로 대칭키(K1)를 암호화하여 암호화된 대칭키를 블록체인의 트랜잭션으로 전송한다. And, the file address is stored in the blockchain, and if there is a request to download the encrypted data, the symmetric key (K1) is encrypted with the public key (K2) of the data downloader node and the encrypted symmetric key is transmitted as a transaction in the blockchain. do.

데이터 다운로더 노드에서는 자신의 개인키(K3)로 암호화된 대칭키를 복호화하여 원본 대칭키(K1)를 추출한다. 데이터 다운로더 노드는 IPFS(320)로부터 암호화된 데이터를 다운로드하고, 암호화된 데이터는 대칭키(K1)를 이용하여 복호화하여 원본 데이터를 추출하게 된다. The data downloader node extracts the original symmetric key (K1) by decrypting the symmetric key encrypted with its own private key (K3). The data downloader node downloads the encrypted data from the IPFS 320, and decrypts the encrypted data using the symmetric key K1 to extract the original data.

이러한 절차에 따라, 본 발명에서의 데이터 공유 시스템(300)에서는 블록체인 정보와 매칭된 원본 데이터를 암호화하여 블록에 기록하며, 암호화된 데이터에 대해 다운로드를 요청하고 승인받은 경우에만 데이터 다운로더 노드에서 원본 데이터를 확인할 수 있도록 하여 암호화된 데이터를 공유할 수 있고 보안을 강화할 수 있다. According to this procedure, in the data sharing system 300 according to the present invention, the original data matched with the block chain information is encrypted and recorded in a block, and the data downloader node requests the download for the encrypted data and receives the original data. Encrypted data can be shared and security can be enhanced by allowing the data to be verified.

도 6은 본 발명의 실시예에 따른 노드의 컴퓨팅 장치의 구성도이다.6 is a configuration diagram of a computing device of a node according to an embodiment of the present invention.

도 6을 참조하면, 본 발명의 실시예에 따른 노드의 컴퓨팅 장치(1000)는 프로세서(1100)와 메모리(1200)를 포함하고, 프로세서(1100)는 하나 이상의 코어(core) 및 그래픽 처리부 및/또는 다른 구성요소와 신호를 송수신하는 연결 통로(예를 들어, 버스(bus) 등)를 포함할 수 있다.6, a computing device 1000 of a node according to an embodiment of the present invention includes a processor 1100 and a memory 1200, and the processor 1100 includes one or more cores and a graphic processing unit and/ Alternatively, a connection path (eg, a bus, etc.) for transmitting and receiving signals to and from other components may be included.

일 실시예에 따른 프로세서(1100)는 메모리(1200)에 저장된 하나 이상의 인스트럭션을 실행함으로써, 도 4 내지 도 5와 관련하여 설명된 데이터 공유 시스템의 동작을 실행한다. The processor 1100 according to an exemplary embodiment executes the operation of the data sharing system described with reference to FIGS. 4 to 5 by executing one or more instructions stored in the memory 1200.

예를 들어, 프로세서(1100)는 메모리에 저장된 하나 이상의 인스트럭션을 실행함으로써 하나 이상의 노드에서 발생되는 데이터 업로드/다운로드에 관한 정보들을 수집하고, 상기 수집된 정보들을 블록에 기록하고, 상기 블록에 기록된 정보에 기초하여, 적어도 하나의 노드에 대해 관련 정보를 제공한다. For example, the processor 1100 collects information on uploading/downloading data generated in one or more nodes by executing one or more instructions stored in the memory, records the collected information in a block, and writes the collected information in a block. Based on the information, relevant information is provided for at least one node.

한편, 프로세서(1100)는 내부에서 처리되는 신호(또는, 데이터)를 일시적 및/또는 영구적으로 저장하는 램(RAM: Random Access Memory) 및 롬(ROM: Read-Only Memory)을 더 포함할 수 있다. 또한, 프로세서(1100)는 그래픽 처리부, 램 및 롬 중 적어도 하나를 포함하는 시스템온칩(SoC: system on chip) 형태로 구현될 수 있다. Meanwhile, the processor 1100 may further include a random access memory (RAM) and a read-only memory (ROM) that temporarily and/or permanently store a signal (or data) processed internally. . In addition, the processor 1100 may be implemented in the form of a system on chip (SoC) including at least one of a graphic processor, RAM, and ROM.

메모리(1200)에는 프로세서(1100)의 처리 및 제어를 위한 프로그램들(하나 이상의 인스트럭션들)을 저장할 수 있다. 메모리(1200)에 저장된 프로그램들은 기능에 따라 복수 개의 모듈들로 구분될 수 있다.The memory 1200 may store programs (one or more instructions) for processing and controlling the processor 1100. Programs stored in the memory 1200 may be divided into a plurality of modules according to functions.

본 발명의 실시예와 관련하여 설명된 시스템의 동작들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.The operations of the system described in connection with the embodiment of the present invention may be directly implemented by hardware, implemented by a software module executed by hardware, or implemented by a combination thereof. Software modules include Random Access Memory (RAM), Read Only Memory (ROM), Erasable Programmable ROM (EPROM), Electrically Erasable Programmable ROM (EEPROM), Flash Memory, hard disk, removable disk, CD-ROM, or It may reside on any type of computer-readable recording medium well known in the art to which the present invention pertains.

본 발명의 구성 요소들은 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 어플리케이션)으로 구현되어 매체에 저장될 수 있다. 본 발명의 구성 요소들은 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있으며, 이와 유사하게, 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다.Components of the present invention may be implemented as a program (or application) and stored in a medium in order to be executed by being combined with a computer that is hardware. Components of the present invention may be implemented as software programming or software elements, and similarly, embodiments include various algorithms implemented with a combination of data structures, processes, routines or other programming components, including C, C++ , Java, assembler, or the like may be implemented in a programming or scripting language. Functional aspects can be implemented with an algorithm running on one or more processors.

전술된 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해되어야 하며, 본 발명의 범위는 전술된 상세한 설명보다는 후술될 청구범위에 의해 나타내어질 것이다. 그리고 이 청구범위의 의미 및 범위는 물론, 그 등가개념으로부터 도출되는 모든 변경 및 변형 가능한 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.It should be understood that the above-described embodiments are illustrative and non-limiting in all respects, and the scope of the present invention will be indicated by the claims to be described later rather than the detailed description described above. And the meaning and scope of the claims, as well as all changes and modifications derived from the equivalent concept should be construed as being included in the scope of the present invention.

100: 분산형 네트워크
110~170: 노드들
200: 블록체인
210, 220, 230: 블록
300: 데이터 공유 시스템
310: 블록체인 네트워크
320: IPFS
330: 파일 관리 모듈
100: distributed network
110-170: nodes
200: Blockchain
210, 220, 230: block
300: data sharing system
310: Blockchain network
320: IPFS
330: file management module

Claims (3)

다수의 노드들이 연결되어 구성되고, 블록체인에 데이터를 저장하거나 저장된 데이터를 다운로드하는 액션을 실행하는 스마트 컨트랙트를 포함하는 블록체인 네트워크;
상기 블록체인 네트워크 내의 각 노드들과 연계되고, 상기 스마트 컨트랙트의 액션을 통해 파일 정보를 블록에 기록하고, 상기 스마트 컨트랙트 액션을 통해 파일 업로드와 다운로드 및 대칭키 요청과 전송을 구현하는 IPFS(InterPlanetary File System); 및
상기 블록체인 네트워크 내의 데이터 업로더 노드가 파일을 업로드하는 경우, 해당 파일에 대한 임의의 대칭키를 생성하며, 업로드할 파일을 상기 대칭키로 암호화하여 상기 IPFS에 업로드하는 파일 관리 모듈;을 포함하고,
상기 IPFS는 암호화된 파일의 업로드가 완료되면 해당 파일의 주소를 상기 블록체인으로 반환하고,
상기 대칭키는 상기 블록체인 네트워크 내의 사용자 노드의 블록체인 계정의 공개키로 암호화되어 상기 파일 주소와 함께 상기 블록체인에 저장되는, 블록체인과 IPFS 기반의 암호화 데이터 공유 시스템.
A blockchain network comprising a smart contract configured by connecting a plurality of nodes and executing an action of storing data in the blockchain or downloading the stored data;
InterPlanetary File (IPFS) that is connected with each node in the blockchain network, records file information in a block through the action of the smart contract, and implements file upload and download, and symmetric key request and transmission through the smart contract action. System); And
When a data uploader node in the blockchain network uploads a file, a file management module generates a random symmetric key for the file, encrypts a file to be uploaded with the symmetric key, and uploads it to the IPFS; and
When the upload of the encrypted file is completed, the IPFS returns the address of the file to the blockchain,
The symmetric key is encrypted with the public key of the block chain account of the user node in the block chain network and stored in the block chain along with the file address. Blockchain and IPFS-based encryption data sharing system.
제 1항에 있어서,
상기 블록체인 네트워크 내의 데이터 다운로더 노드에서 상기 암호화된 파일에 관한 대칭키 전송이 요청된 경우,
상기 데이터 업로더 노드는 상기 데이터 다운로더 노드의 공개키로 상기 대칭키를 암호하하여 상기 블록체인에 저장하는, 블록체인과 IPFS 기반의 암호화 데이터 공유 시스템.
The method of claim 1,
When the data downloader node in the blockchain network requests the transmission of the symmetric key for the encrypted file,
The data uploader node encrypts the symmetric key with the public key of the data downloader node and stores the symmetric key in the blockchain. Blockchain and IPFS-based encryption data sharing system.
제 2항에 있어서,
상기 데이터 다운로더 노드는 자신의 개인키로 상기 암호화된 대칭키를 복호화하여 원본 대칭키를 획득하고,
상기 원본 대칭키를 이용하여 상기 암호화된 파일을 복호화하여 원본 파일을 열람하는, 블록체인과 IPFS 기반의 암호화 데이터 공유 시스템.
The method of claim 2,
The data downloader node obtains the original symmetric key by decrypting the encrypted symmetric key with its own private key,
A system for sharing encrypted data based on blockchain and IPFS that decrypts the encrypted file using the original symmetric key to view the original file.
KR1020190124223A 2019-10-07 2019-10-07 The encrypted data sharing system based on block chain and IPFS(InterPlanetary File System) KR102347022B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190124223A KR102347022B1 (en) 2019-10-07 2019-10-07 The encrypted data sharing system based on block chain and IPFS(InterPlanetary File System)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190124223A KR102347022B1 (en) 2019-10-07 2019-10-07 The encrypted data sharing system based on block chain and IPFS(InterPlanetary File System)

Publications (2)

Publication Number Publication Date
KR20210041459A true KR20210041459A (en) 2021-04-15
KR102347022B1 KR102347022B1 (en) 2022-01-03

Family

ID=75440836

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190124223A KR102347022B1 (en) 2019-10-07 2019-10-07 The encrypted data sharing system based on block chain and IPFS(InterPlanetary File System)

Country Status (1)

Country Link
KR (1) KR102347022B1 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113051596A (en) * 2021-04-20 2021-06-29 普华云创科技(北京)有限公司 Block chain and distributed storage based hierarchical encryption method and system
CN113094749A (en) * 2021-04-20 2021-07-09 西安交通大学 Method for realizing data security sharing mechanism under privacy protection based on block chain
CN113923178A (en) * 2021-09-30 2022-01-11 在秀网络科技(深圳)有限公司 Method and system for storing and extracting instant messaging and group data files
CN114124982A (en) * 2021-11-23 2022-03-01 上证所信息网络有限公司 Manuscript file monitoring system and method based on block chain and IPFS
CN114430413A (en) * 2021-12-20 2022-05-03 青岛鹏海软件有限公司 IIoT intelligent operation and maintenance management method based on block chain
CN114534234A (en) * 2022-03-07 2022-05-27 深圳技师学院(深圳高级技工学校) Competitive rock climbing real-time judgment method, system and medium
CN115277668A (en) * 2021-04-29 2022-11-01 南京理工大学 Cloud file dynamic integrity protection and verification method based on Ether house and interplanetary file system
CN115941452A (en) * 2022-11-09 2023-04-07 北京工业大学 Decentralized power grid fault tracing system based on Internet of things and block chain technology
KR102529277B1 (en) * 2022-10-17 2023-05-08 주식회사 레드윗 Method and apparatus for encrypting data to realize web3.0
CN113094749B (en) * 2021-04-20 2024-05-17 西安交通大学 Implementation method of data security sharing mechanism under privacy protection based on blockchain

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023145988A1 (en) * 2022-01-26 2023-08-03 주식회사 블록체인기술연구소 Block chain and ipfs-based encryption data sharing system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000269951A (en) * 1999-03-12 2000-09-29 Kodo Ido Tsushin Security Gijutsu Kenkyusho:Kk Method for verifying and delivering group cryptographic key
KR101936758B1 (en) 2018-06-08 2019-01-11 주식회사 미탭스플러스 Encryption apparatus and method for integrity of information inquiry history

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000269951A (en) * 1999-03-12 2000-09-29 Kodo Ido Tsushin Security Gijutsu Kenkyusho:Kk Method for verifying and delivering group cryptographic key
KR101936758B1 (en) 2018-06-08 2019-01-11 주식회사 미탭스플러스 Encryption apparatus and method for integrity of information inquiry history

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SHANGPING WANG 외 2명, A Blockchain-Based Framework for Data Sharing With Fine-Grained Access Control in Decentralized Storage Systems, (2018.06.29.)* *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113094749A (en) * 2021-04-20 2021-07-09 西安交通大学 Method for realizing data security sharing mechanism under privacy protection based on block chain
CN113051596A (en) * 2021-04-20 2021-06-29 普华云创科技(北京)有限公司 Block chain and distributed storage based hierarchical encryption method and system
CN113094749B (en) * 2021-04-20 2024-05-17 西安交通大学 Implementation method of data security sharing mechanism under privacy protection based on blockchain
CN115277668B (en) * 2021-04-29 2024-04-23 南京理工大学 Cloud file dynamic integrity protection and verification method based on Ethernet and interstellar file systems
CN115277668A (en) * 2021-04-29 2022-11-01 南京理工大学 Cloud file dynamic integrity protection and verification method based on Ether house and interplanetary file system
CN113923178B (en) * 2021-09-30 2024-02-27 在秀网络科技(深圳)有限公司 Method and system for storing and extracting instant messaging and group data files
CN113923178A (en) * 2021-09-30 2022-01-11 在秀网络科技(深圳)有限公司 Method and system for storing and extracting instant messaging and group data files
CN114124982A (en) * 2021-11-23 2022-03-01 上证所信息网络有限公司 Manuscript file monitoring system and method based on block chain and IPFS
CN114430413A (en) * 2021-12-20 2022-05-03 青岛鹏海软件有限公司 IIoT intelligent operation and maintenance management method based on block chain
CN114534234A (en) * 2022-03-07 2022-05-27 深圳技师学院(深圳高级技工学校) Competitive rock climbing real-time judgment method, system and medium
KR102529277B1 (en) * 2022-10-17 2023-05-08 주식회사 레드윗 Method and apparatus for encrypting data to realize web3.0
KR102622666B1 (en) * 2022-10-17 2024-01-10 주식회사 레드윗 Method and apparatus for encrypting data to realize web3.0
CN115941452A (en) * 2022-11-09 2023-04-07 北京工业大学 Decentralized power grid fault tracing system based on Internet of things and block chain technology

Also Published As

Publication number Publication date
KR102347022B1 (en) 2022-01-03

Similar Documents

Publication Publication Date Title
KR102347022B1 (en) The encrypted data sharing system based on block chain and IPFS(InterPlanetary File System)
TWI725793B (en) System and method for mapping decentralized identifiers to real-world entities
JP7480222B2 (en) Method and system for efficient transfer of cryptocurrency associated with payroll payments on a blockchain resulting in an automated payroll payment method and system based on smart contracts
US11895248B2 (en) Method and apparatus for generating blockchain transaction
KR101964254B1 (en) Person to person trading method and apparatus by using blockchain and distributed hash table
CN107180350B (en) Method, device and system for multi-party sharing transaction metadata based on block chain
JP6524347B2 (en) Information sharing system
US20190036895A1 (en) Data distribution over nodal elements
TWI779231B (en) Blockchain-based certificate storage method and device
US11126458B2 (en) Method, apparatus, and electronic device for resource allocation based on blockchain
JP2019513312A (en) Tokenizing method and system for implementing exchange on blockchain
US20230177510A1 (en) Blockchain-based method and apparatus for managing biological asset object
KR102383099B1 (en) The non-face-to-face large document access blockchain system that combines blockchain-based DID service and IPFS-based data sharing technology and private key distributed storage technology
KR20180115779A (en) How to Implement a Block Chain for Controlling and Distributing Digital Content
US11386426B2 (en) Invoice invalidation method and apparatus based on blockchain, and electronic device
KR20210041458A (en) The data sharing system by group based on block chain and IPFS(InterPlanetary File System)
WO2019179536A2 (en) Mutual aid network based on smart contract and blockchain
JP2024509666A (en) Blockchain data segregation
US11374755B1 (en) Entangled token structure for blockchain networks
Das et al. Data privacy in IoT network using blockchain technology
WO2023095967A1 (en) Remote-interaction large document access system in which blockchain-based did service, ipfs-based data sharing technology and private key distributed storage technology are combined
Patel et al. Blockchain–future of decentralized systems
US20230308276A1 (en) Creating non-fungible token shards
WO2023099357A1 (en) Compressible blockchains
US20220399988A1 (en) Linking blockchain operations

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
AMND Amendment
E902 Notification of reason for refusal
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant