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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/0825—Key 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H04L2209/38—
Abstract
Description
본 발명은 블록체인과 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.
본 발명이 해결하고자 하는 기술적 과제는, 데이터 업로더 노드는 블록체인 내 암호화된 데이터를 공유하되, 데이터 다운로더 노드에서 해당 파일의 접근을 요청하는 경우에 암호화된 데이터의 대칭키를 다운로더 노드의 블록체인 계정의 공개키로 암호화하여 전달하면 데이터 다운로더 노드는 자신의 개인키로 암호화된 대칭키를 복호하하여 대칭키를 획득하고, 암호화된 데이터를 열람할 수 있는 블록체인과 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
일반적으로 분산형 네트워크(100)는 블록체인이라 불리는 블록(block)의 연결 묶음 내에 모든 참여 노드에 공통으로 알려진 정보를 저장하고 참조할 수 있다. 상기 노드들(110-170)은 상호간 통신이 가능하며 블록체인을 저장, 관리 및 전파를 담당하는 완전 노드(full node)와 단순하게 트랜잭션에만 참여할 수 있는 간이 노드(light node)로 구분될 수 있다. 본 명세서에서 별다른 설명 없이 노드에 대하여 언급되는 경우, 이는 분산형 네트워크에 참여하며 블록체인을 생성, 저장 또는 검증하는 동작을 수행하는 완전 노드를 지칭하는 경우가 많으나, 이에 한정되는 것은 아니다. In general, the
상기 블록체인에 연결되어 있는 각 블록들은 일정 기간 내의 거래 내역, 즉 트랜잭션(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
도 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
상기 블록체인(200)에 포함된 각 블록은 블록 헤더(211)와 블록 바디(213)를 포함하도록 구성될 수 있다. 상기 블록 헤더(211)는 각 블록들간의 연결 관계를 나타내기 위하여 이전 블록(220)의 해시 값을 포함할 수 있다. 상기 블록체인(200)이 유효한지 검증하는 과정에서 상기 블록 헤더(211) 내의 연결 관계가 사용된다. 상기 블록 바디(213)는 상기 블록(210)에 저장되고 관리되는 데이터, 예를 들어 트랜잭션 리스트 또는 트랜잭션 체인을 포함할 수 있다.Each block included in the
도 3을 참조하면, 상기 블록 헤더(211)는 이전 블록의 해시(2112), 현재 블록의 해시(2113), 넌스(Nonce)(2114)를 포함할 수 있다. 또한, 상기 블록 헤더(211)는 블록 내의 트랜잭션 리스트의 헤더를 나타내는 루트(2115)를 포함할 수 있다.Referring to FIG. 3, the
전술된 바와 같이, 상기 블록체인(200)은 연결된 하나 이상의 블록들을 포함할 수 있다. 상기 하나 이상의 블록들은 상기 블록 헤더(211) 내의 해시 값에 기초하여 연결된다. 상기 블록 헤더(211)에 포함된 이전 블록의 해시 값(2112)은 직전 블록(220)에 대한 해시 값으로서 직전 블록(220)에 포함된 현재 해시(2213)와 동일한 값이다. 상기 하나 이상의 블록들은 각 블록 헤더 내의 이전 블록의 해시 값에 의하여 연쇄적으로 연결된다. 상기 분산형 네트워크에 참여하는 노드들은 상기 하나 이상의 블록들에 포함된 이전 블록의 해시 값에 기반하여 블록의 유효성을 검증하므로 악의적인 단일 노드가 이미 생성된 블록의 내용을 위조 또는 변조하는 행위가 불가능하다.As described above, the
상기 블록 바디(213)는 트랜잭션 리스트(2131)를 포함할 수 있다. 상기 트랜잭션 리스트(2131)는 블록체인 기반의 거래의 목록이다. 예를 들면, 상기 트랜잭션 리스트(2131)는 상기 블록체인 기반의 금융 시스템에서 이루어진 금융 거래에 대한 기록을 포함할 수 있다. 상기 트랜잭션 리스트(2131)는 트리(tree) 형태로 표현될 수 있으며, 예를 들어, 사용자 A가 사용자 B에게 전송한 금액을 목록 형태로 기록하며, 블록 내의 저장 길이는 현재 블록에 포함된 트랜잭션의 수에 기초하여 증감될 수 있다.The
그리고, 블록(210)은 블록 헤더(211)와 블록 바디(213)에 포함된 정보 이외의 기타 정보(2116)를 포함할 수 있다. In addition, the
분산형 네트워크에 참여하는 노드들은 동일한 블록체인을 가지며, 블록에는 동일한 트랜잭션이 저장된다. 트랜잭션 목록이 포함된 블록이 네트워크에 공유되므로 모든 참여자가 검증할 수 있다.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
블록체인 네트워크(310)는 상술한 블록체인 구조를 포함하여 다수의 노드들이 연결되어 구성되며, 블록체인 내의 스마트 컨트랙트는 블록체인에 등록되고 실행되는 계약의 의미를 구현한 소프트웨어이다. 하나의 스마트 컨트랙트에는 다양한 액션이 실행될 수 있으며, 이러한 액션은 블록체인에 저장된 데이터를 생성하고/읽고/수정하고/삭제할 수 있다. The
IPFS(320)에 저장되는 파일의 정보는 스마트 컨트랙트의 액션을 통해 블록에 기록할 수 있다. 액션들이 모여 트랜잭션이 되고 트랜잭션들이 모여서 블록이 된다. Information of a file stored in the
모든 네트워크 참여자 노드는 트랜잭션과 블록을 조회할 수 있으므로, IPFS(320)에 관한 모든 세부 사항들을 트랜잭션을 통해서 확인할 수 있다. 이러한 스마트 컨트랙트에서는 IPFS(320) 파일 업로드/다운로드와 대칭키 요청/전송의 액션을 구현한다.Since all network participant nodes can query transactions and blocks, all details of the
본 발명의 데이터 공유 시스템(300)에서 데이터 업로더 노드가 파일을 업로드하는 경우, 파일 관리 모듈(330)은 해당 파일에 대한 임의의 대칭키(K1)를 생성하며, 업로드할 파일을 대칭키(K1)로 암호화하여 IPFS(320)에 업로드한다. 암호화된 파일의 업로드가 완료된다면 IPFS(320)는 해당 파일의 주소를 반환한다. When the data uploader node uploads a file in the
파일의 암호화 과정에서 생성했던 대칭키(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
그리고, 블록체인에 파일 주소를 저장하며, 암호화된 데이터의 다운로드 요청이 있는 경우, 데이터 다운로더 노드의 공개키(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
이러한 절차에 따라, 본 발명에서의 데이터 공유 시스템(300)에서는 블록체인 정보와 매칭된 원본 데이터를 암호화하여 블록에 기록하며, 암호화된 데이터에 대해 다운로드를 요청하고 승인받은 경우에만 데이터 다운로더 노드에서 원본 데이터를 확인할 수 있도록 하여 암호화된 데이터를 공유할 수 있고 보안을 강화할 수 있다. According to this procedure, in the
도 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
일 실시예에 따른 프로세서(1100)는 메모리(1200)에 저장된 하나 이상의 인스트럭션을 실행함으로써, 도 4 내지 도 5와 관련하여 설명된 데이터 공유 시스템의 동작을 실행한다. The
예를 들어, 프로세서(1100)는 메모리에 저장된 하나 이상의 인스트럭션을 실행함으로써 하나 이상의 노드에서 발생되는 데이터 업로드/다운로드에 관한 정보들을 수집하고, 상기 수집된 정보들을 블록에 기록하고, 상기 블록에 기록된 정보에 기초하여, 적어도 하나의 노드에 대해 관련 정보를 제공한다. For example, the
한편, 프로세서(1100)는 내부에서 처리되는 신호(또는, 데이터)를 일시적 및/또는 영구적으로 저장하는 램(RAM: Random Access Memory) 및 롬(ROM: Read-Only Memory)을 더 포함할 수 있다. 또한, 프로세서(1100)는 그래픽 처리부, 램 및 롬 중 적어도 하나를 포함하는 시스템온칩(SoC: system on chip) 형태로 구현될 수 있다. Meanwhile, the
메모리(1200)에는 프로세서(1100)의 처리 및 제어를 위한 프로그램들(하나 이상의 인스트럭션들)을 저장할 수 있다. 메모리(1200)에 저장된 프로그램들은 기능에 따라 복수 개의 모듈들로 구분될 수 있다.The
본 발명의 실시예와 관련하여 설명된 시스템의 동작들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 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.
상기 블록체인 네트워크 내의 데이터 다운로더 노드에서 상기 암호화된 파일에 관한 대칭키 전송이 요청된 경우,
상기 데이터 업로더 노드는 상기 데이터 다운로더 노드의 공개키로 상기 대칭키를 암호하하여 상기 블록체인에 저장하는, 블록체인과 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.
상기 데이터 다운로더 노드는 자신의 개인키로 상기 암호화된 대칭키를 복호화하여 원본 대칭키를 획득하고,
상기 원본 대칭키를 이용하여 상기 암호화된 파일을 복호화하여 원본 파일을 열람하는, 블록체인과 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.
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)
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)
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)
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 |
-
2019
- 2019-10-07 KR KR1020190124223A patent/KR102347022B1/en active IP Right Grant
Patent Citations (2)
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)
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)
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 |