KR102347022B1 - 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
KR102347022B1
KR102347022B1 KR1020190124223A KR20190124223A KR102347022B1 KR 102347022 B1 KR102347022 B1 KR 102347022B1 KR 1020190124223 A KR1020190124223 A KR 1020190124223A KR 20190124223 A KR20190124223 A KR 20190124223A KR 102347022 B1 KR102347022 B1 KR 102347022B1
Authority
KR
South Korea
Prior art keywords
file
data
block chain
node
symmetric key
Prior art date
Application number
KR1020190124223A
Other languages
Korean (ko)
Other versions
KR20210041459A (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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

블록체인과 IPFS 기반의 암호화 데이터 공유 시스템이 제공된다. 상기 블록체인과 IPFS 기반의 암호화 데이터 공유 시스템은, 다수의 노드들이 연결되어 구성되고, 블록체인에 데이터를 저장하거나 저장된 데이터를 다운로드하는 액션을 실행하는 스마트 컨트랙트를 포함하는 블록체인 네트워크, 상기 블록체인 네트워크 내의 각 노드들과 연계되고, 상기 스마트 컨트랙트의 액션을 통해 파일 정보를 블록에 기록하고, 상기 스마트 컨트랙트 액션을 통해 파일 업로드와 다운로드 및 대칭키 요청과 전송을 구현하는 IPFS(InterPlanetary File System), 및 상기 블록체인 네트워크 내의 데이터 업로더 노드가 파일을 업로드하는 경우, 해당 파일에 대한 임의의 대칭키를 생성하며, 업로드할 파일을 상기 대칭키로 암호화하여 상기 IPFS에 업로드하는 파일 관리 모듈을 포함하고, 상기 IPFS는 암호화된 파일의 업로드가 완료되면 해당 파일의 주소를 상기 블록체인으로 반환하고, 상기 대칭키는 상기 블록체인 네트워크 내의 상기 데이터 업로더 노드의 블록체인 계정의 공개키로 암호화되어 상기 파일 주소와 함께 상기 블록체인에 저장된다. An encrypted data sharing system based on blockchain and IPFS is provided. The block chain and IPFS-based encrypted data sharing system is a block chain network including a smart contract configured by connecting a plurality of nodes and executing an action to store data in the block chain or download the stored data, the block chain InterPlanetary File System (IPFS) that is linked to each node in the 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, and a file management module that, when a data uploader node in the blockchain network uploads a file, generates an arbitrary symmetric key for the file, encrypts the file to be uploaded with the symmetric key, and uploads it to the IPFS, When the upload of the encrypted file is completed, the IPFS returns the address of the file to the block chain, and the symmetric key is encrypted with the public key of the block chain account of the data uploader node in the block chain network, and the file address and are stored in the blockchain together.

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 an encrypted data sharing system based on blockchain and IPFS. More specifically, it relates to a block chain and IPFS-based encrypted data sharing system that can safely share large-capacity data in a digitally trusted system based on block chain.

블록체인(Block Chain)은 네트워크에 참여하는 모든 사용자가 관리 대상이 되는 모든 데이터를 분산하여 저장하는 데이터 분산처리기술을 의미한다. 거래 정보가 담긴 원장(原帳)을 거래 주체나 특정 기관에서 보유하는 것이 아니라 네트워크 참여자 모두가 나누어 가지는 기술이라는 점에서 '분산원장기술(DLT:Distributed Ledger Technology)' 또는 '공공거래장부'라고도 한다. 블록체인은 거래 내용이 담긴 블록(Block)을 사슬처럼 연결(chain)한 것이라 하여 붙여진 명칭이다. 이러한 블록체인은 거래 내용의 위변조와 같은 해킹을 막기 위한 기술이며, 거래에 참여하는 모든 사용자에게 거래 내역을 보내 주며 거래 때마다 이를 대조해 데이터 위조를 막는 방식을 사용한다. Block chain refers to a data distribution processing technology in which all users participating in the network distribute and store all data to be managed. 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 subject or a specific institution, but is a technology shared by all network participants. . Blockchain is a name given to the fact that blocks containing transaction contents are linked like a chain. This block chain is a technology to prevent hacking, such as forgery or 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 comparing it with each transaction.

블록체인은 금융기관에서 모든 거래를 담보하고 관리하는 기존의 금융 시스템에서 벗어나 P2P(Peer to Peer;개인 대 개인) 거래를 지향하는, 탈(脫)중앙화를 핵심 개념으로 한다. P2P란 서버나 클라이언트 없이 개인 컴퓨터 사이를 연결하는 통신망을 말하며, 연결된 각각의 컴퓨터가 서버이자 클라이언트 역할을 하며 정보를 공유하는 방식이다. 다수의 노드가 같은 데이터를 공유하고 검증하는 방식을 통해 디지털 상에 신뢰관계를 형성하게 된다. 이러한 환경은 중개자 없이 P2P로 편리하게 계약을 체결하고 수정할 수 있는 스마트 컨트랙트를 실현 가능하게 한다.The core concept of blockchain is 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 client and shares information. By sharing and verifying the same data by multiple nodes, a trust relationship is formed in the digital world. This environment makes it possible to realize smart contracts that can conveniently conclude and modify contracts with P2P without intermediaries.

기존 금융 시스템에서는 금융회사들이 중앙 서버에 거래 기록을 보관해 온 반면, 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, connected in turn, and shared by all participants.

가상화폐(Virtual Currency)는 전자화폐 또는 암호화폐라고도 하며, 지폐나 동전 등의 실물이 없고 온라인에서 거래되는 화폐를 말한다. 가상화폐는 각국 정부나 중앙은행이 발행하는 일반 화폐와 달리 처음 고안한 사람이 정한 규칙에 따라 가치가 매겨진다. 또한, 탈중앙화 특징에 의해 정부나 중앙은행에서 거래 내역을 관리하지 않고 블록체인 기술을 기반으로 유통되기 때문에 정부 등 특정 기관이 가치나 지급을 보장하지 않는다.Virtual currency is also called electronic money or cryptocurrency, and refers to money that is traded online without real money such as banknotes or coins. Unlike regular currencies issued by governments or central banks of 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 because it is distributed based on blockchain technology, specific institutions such as the government do not guarantee the 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 block chain, 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 delivered, the data downloader node decrypts the encrypted symmetric key with its own private key to obtain the symmetric key, and provides a block chain and IPFS-based encrypted data sharing system for viewing encrypted data. will do

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

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

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

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

본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Other specific details of the 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 closure and integrity of the data sharing system, to strengthen security by limiting the access range of files on a trusted system, and to prevent data forgery/falsification do.

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

도 1은 본 발명에 따른 기술적 사상이 적용될 수 있는 블록체인을 이용한 분산처리 시스템을 도시한 도면이다.
도 2 및 도 3은 블록체인 시스템에서 이용되는 블록의 연결을 도시한 블록도이다.
도 4는 본 발명의 실시예에 따른 블록체인과 IPFS 기반의 암호화 데이터 공유 시스템의 구성을 도시한 블록도이다.
도 5는 본 발명의 시스템에서의 암호화된 데이터를 복호화하는 절차를 설명하기 위한 도면이다.
도 6은 본 발명의 실시예에 따른 노드의 컴퓨팅 장치의 구성도이다.
1 is a diagram illustrating 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 illustrating 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 methods of achieving them will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but will be embodied in various different forms, and only these embodiments allow the disclosure of the present invention to be complete, and common knowledge in the art to which the present invention pertains It is provided to fully inform those who have the scope of the invention, and the present invention is only defined by the scope of the claims.

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

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used herein may be used with the meaning 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 to be interpreted ideally or excessively unless specifically defined explicitly.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예들을 보다 상세하게 설명하고자 한다. 도면 상의 동일한 구성요소에 대해서는 동일한 참조 부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.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 components in the drawings, and repeated descriptions of the same components are omitted.

기존에는 중앙화된 구조의 웹(Web)을 통해 인터넷 상에서 데이터를 송수신한다. 이때, 데이터 공유를 위해 이용하는 규약이 HTTP 프로토콜이며, 이는 클라이언트가 서버에 데이터요청(request)을 보내면, 서버에서 응답(response)하며 데이터를 보내주는 구조로 되어있다. 따라서, 만약 서버의 전원이 차단되면 링크가 끊겨버리고, 해당 컨텐츠에 대해 접근할 수 있는 방법이 없어지게 된다. 또는, 서버 해킹으로 인해 데이터가 삭제된다면 백업을 하지 않은 이상 데이터를 복구하기가 어렵게 된다. Conventionally, 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 data. Therefore, if the power of the server is cut off, the link is broken and there is no way to access the corresponding content. Alternatively, if data is deleted due to server hacking, it becomes difficult to recover data unless backed up.

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

이하에서 설명하는 본 발명은 블록체인과 IPFS(InterPlanetary File System) 기반의 암호화 데이터 공유 시스템에 관한 것이다. 이는 디지털 상에서 신뢰된 시스템에서 안전하게 대용량 데이터를 공유할 수 있는 방법을 제안한다. The present invention described below relates to an encrypted data sharing system based on block chain and IPFS (InterPlanetary File System). This suggests a way to securely share 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. A characteristic of IPFS is a faster, more secure and open network realized through peer-to-peer communication of nodes without a centralized server. Unlike the HTTP Web of the past, which has fatal results when a large server's connection is blocked, in IPFS, even if some nodes are disconnected, the system can be maintained stably.

또한, 고용량의 파일을 빠르고 효율적으로 전달할 수 있으며(BitSwap), 파일들의 중복을 알 수 있기 때문에 저장소도 효율적으로 사용할 수 있다(Merkle DAG, contents-addressed). IPFS 상에 업로드된 파일의 이름은 영원히 기록되며, 만약 IPFS 상에서 보존하고 싶은 파일은 반영구적으로 보존이 가능하다(pinning). 또한, 파일의 버전 관리(Git)가 가능하다.In addition, high-capacity files can be delivered quickly and efficiently (BitSwap), and since the duplication of files is known, storage can be used efficiently (Merkle DAG, contents-addressed). The names of files uploaded on IPFS are recorded forever, and if you want to keep files on IPFS, you can keep them semi-permanently (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 duplicates of the same file, and tracks the version information of each file. Each node keeps only the files 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, just look up the file name and track 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, below, 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 illustrating 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 computers, mobile terminals, and dedicated electronic devices.

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

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

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

도 2 및 도 3은 블록체인 시스템에서 이용되는 블록의 연결을 도시한 블록도이다.2 and 3 are block diagrams illustrating 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 sequentially connected blocks 210 , 220 , 230 . The block chain 200 is used to store and manage user's transaction details 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 illustrated 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 . Also, 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 blockchain 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 the same as the current hash 2213 included in the previous block 220 as a hash value of the previous block 220 . The one or more blocks are chained by the hash value of the previous block in each block header. Nodes participating in the distributed network verify the validity of a 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 falsify 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 a record of financial transactions made in the blockchain-based financial system. The transaction list 2131 may be expressed in the form of a tree, and for example, the amount transmitted by user A to user B is recorded in the form of a list, and the storage length in the block is the length 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 .

분산형 네트워크에 참여하는 노드들은 동일한 블록체인을 가지며, 블록에는 동일한 트랜잭션이 저장된다. 트랜잭션 목록이 포함된 블록이 네트워크에 공유되므로 모든 참여자가 검증할 수 있다.Nodes participating in a decentralized network have the same blockchain, and the same transactions are stored in blocks. A block containing a list of transactions is shared on the network, so 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 stored in the 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 in a distributed file system.

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

IPFS는 일반 웹 서비스와 다르게 몇몇 노드들의 운영이 중단되더라도 생태계가 안정적으로 유지된다는 점에 있어서 블록체인과 매우 유사한 점이 있다. 그러나, 블록체인과 IPFS의 특징인 투명성으로 인해 참여자들은 모든 데이터를 공유하게 되므로 민감한 정보가 담긴 파일은 IPFS에 적합하지 않다. 이런 점을 보완하고자 본 발명에서는 IPFS에 파일을 업로드하기 전에 파일을 대칭키로 암호화하고, 이러한 대칭키를 블록체인 계정의 공개키로 암호화하여 블록체인에 기록하는 방법을 제안한다. Unlike general web services, IPFS is very similar to blockchain in that the ecosystem remains stable even if the operation of some nodes is 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 supplement this point, 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 the block chain account, and recording it in the block chain.

우선, 도 4를 참조하면, 본 발명의 실시예에 따른 블록체인과 IPFS 기반의 암호화 데이터 공유 시스템(300)은 블록체인 네트워크(310), IPFS(320), 파일 관리 모듈(330)로 구성된다.First, referring to FIG. 4 , the 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 block chain network 310 is configured by connecting a number of nodes including the above-described block chain structure, and a smart contract in the block chain is software that implements the meaning of a contract that is registered and executed in the block chain. Various actions can be executed in one smart contract, and these actions can create/read/modify/delete data stored in the blockchain.

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

모든 네트워크 참여자 노드는 트랜잭션과 블록을 조회할 수 있으므로, IPFS(320)에 관한 모든 세부 사항들을 트랜잭션을 통해서 확인할 수 있다. 이러한 스마트 컨트랙트에서는 IPFS(320) 파일 업로드/다운로드와 대칭키 요청/전송의 액션을 구현한다.Since all network participant nodes can inquire transactions and blocks, all details about the IPFS 320 can be confirmed through the transaction. In this smart contract, the actions of IPFS 320 file upload/download and symmetric key request/transmission 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 an arbitrary symmetric key (K1) for the file, and sets the file to be uploaded to the symmetric key ( It is encrypted with K1) and uploaded to the IPFS (320). If the upload of the encrypted file is completed, the IPFS 320 returns the address of the file.

파일의 암호화 과정에서 생성했던 대칭키(K1)는 데이터 업로더 노드의 블록체인 계정의 공개키(K2)로 암호화되어, IPFS(320) 파일 주소와 함께 블록체인에 저장된다. The symmetric key (K1) generated during the file encryption process is encrypted with the public key (K2) of the block chain account of the data uploader node, and is stored in the block chain together with the IPFS 320 file address.

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

특정 사용자 노드에서 파일을 다운로드하는 경우, 네트워크 참여자 노드들 누구나 암호화된 파일에 접근하여 다운로드할 수는 있지만, 대칭키(K1)가 없기 때문에 복호화는 불가능하다. When downloading a file from a specific user node, any network participant nodes 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. Transmit a transaction requesting a symmetric key (K1) to the data uploader node through the blockchain and wait for approval.

만약 승인이 이루어지면, 데이터 업로더 노드는 암호화된 대칭키(K1)를 자신의 개인키(K3)로 복호화한다. 복호화를 하면 원본 대칭키(K1)가 나오게 되는데 이를 바로 블록체인에 저장하면 키가 노출될 수 있다. If approved, the data uploader node decrypts the encrypted symmetric key (K1) with its own private key (K3). After decryption, the original symmetric key (K1) is obtained, and if it is stored directly in the block chain, 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 block chain so that only the data downloader node can know the corresponding key. This allows other participant nodes to verify the file, but data downloader nodes to view the file. The data downloader node obtains the original symmetric key (K1) through its private key (K3) and finally decrypts the encrypted data to view the file contents.

상술한 대칭키, 비대칭키, 공개키, 개인키에 대한 개념을 설명하면, 대칭키 암호시스템은 송신측과 수신측간에 각각 암호화와 복호화를 위하여 동일한 비밀키를 사용하는 것을 의미한다. 따라서, 대칭키는 비밀 통신망 또는 직접전달 등의 안전한 전송방식을 통해 전송되어야 한다. When explaining the concepts of the above-mentioned symmetric key, asymmetric key, public key, and private key, the symmetric key encryption system means that the same private 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)라고 하며, 이는 안전하게 보관되어야 한다. An asymmetric key cryptosystem is also called a public key cryptosystem, and it means that different keys are used for encryption and decryption. The key used for encryption is called a public key and is stored in a public place for easy access. And, the key used for decryption is called a private key, and it must be safely stored.

그리고, 공개키와 개인키를 사용하는 암호화 알고리즘으로서 RSA 암호 알고리즘이 있으며, RSA 암호체계는 큰 숫자를 소인수 분해하는 것이 어렵다는 것에 기반을 두고 있다. RSA 암호 알고리즘은 두 개의 키를 사용하며, 키는 메시지를 열고 잠그는 상수(constant)의 의미를 갖는다. 각 사용자는 자신의 데이터 전송을 위해 데이터를 공개키로 암호화하여 전송하고, 각자의 개인키를 이용하여 복호화를 진행해 서로 보안이 보장된 통신이 가능하다. And, 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 factor large numbers. The RSA encryption algorithm uses two keys, and the key has the meaning of 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 ensure secure communication with each other.

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

그리고, 블록체인에 파일 주소를 저장하며, 암호화된 데이터의 다운로드 요청이 있는 경우, 데이터 다운로더 노드의 공개키(K2)로 대칭키(K1)를 암호화하여 암호화된 대칭키를 블록체인의 트랜잭션으로 전송한다. Then, the file address is stored in the block chain, and when there is a request to download 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 on the block chain. do.

데이터 다운로더 노드에서는 자신의 개인키(K3)로 암호화된 대칭키를 복호화하여 원본 대칭키(K1)를 추출한다. 데이터 다운로더 노드는 IPFS(320)로부터 암호화된 데이터를 다운로드하고, 암호화된 데이터는 대칭키(K1)를 이용하여 복호화하여 원본 데이터를 추출하게 된다. The data downloader node decrypts the encrypted symmetric key with its private key (K3) to extract the original symmetric key (K1). The data downloader node downloads 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 in the present invention, the original data matched with the block chain information is encrypted and recorded in the block, and only when the download is requested and approved for the encrypted data, the original data in the data downloader node By allowing data to be verified, encrypted data can be shared and security can be enhanced.

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

도 6을 참조하면, 본 발명의 실시예에 따른 노드의 컴퓨팅 장치(1000)는 프로세서(1100)와 메모리(1200)를 포함하고, 프로세서(1100)는 하나 이상의 코어(core) 및 그래픽 처리부 및/또는 다른 구성요소와 신호를 송수신하는 연결 통로(예를 들어, 버스(bus) 등)를 포함할 수 있다.Referring to FIG. 6 , the 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/or Alternatively, it may include a connection path (eg, a bus, etc.) for transmitting and receiving signals with other components.

일 실시예에 따른 프로세서(1100)는 메모리(1200)에 저장된 하나 이상의 인스트럭션을 실행함으로써, 도 4 내지 도 5와 관련하여 설명된 데이터 공유 시스템의 동작을 실행한다. The processor 1100 according to an 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 about data upload/download generated in one or more nodes by executing one or more instructions stored in a memory, writes the collected information to a block, and writes the collected information to the block. Based on the information, related 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 therein. . Also, the processor 1100 may be implemented in the form of a system on chip (SoC) including at least one of a graphic processing unit, a RAM, and a 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 relation to the embodiment of the present invention may be implemented directly in hardware, as a software module executed by hardware, or by a combination thereof. A software module may 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 in any type of computer-readable recording medium well known in the art to which the present invention pertains.

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

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

100: 분산형 네트워크
110~170: 노드들
200: 블록체인
210, 220, 230: 블록
300: 데이터 공유 시스템
310: 블록체인 네트워크
320: IPFS
330: 파일 관리 모듈
100: decentralized 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 block chain network including a smart contract configured by connecting a plurality of nodes and executing an action to store data in a block chain or download stored data;
InterPlanetary File (IPFS) that is linked 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 request and transfer of symmetric key through the smart contract action System); and
When the data uploader node in the block chain network uploads a file, a file management module that generates an arbitrary symmetric key for the file, encrypts the file to be uploaded with the symmetric key, and uploads it to the IPFS;
When the upload of the encrypted file is completed, the IPFS returns the address of the file to the block chain,
The symmetric key is encrypted with the public key of the blockchain account of the data uploader node in the blockchain network and stored in the blockchain together with the address of the file,
When the data downloader node in the blockchain network requests the data uploader node to transmit the symmetric key for the encrypted file,
The data uploader node approves the request, decrypts the encrypted symmetric key with the private key of the data uploader node, encrypts the original symmetric key with the public key of the data downloader node, and stores it in the block chain;
The data downloader node downloads the symmetric key encrypted by the data uploader node from the block chain, then decrypts it again with the private key of the data downloader node to obtain the original symmetric key, and uses the original symmetric key to obtain the original symmetric key. A blockchain-based and IPFS-based encrypted data sharing system that decrypts encrypted files to view original files.
삭제delete 삭제delete
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 KR20210041459A (en) 2021-04-15
KR102347022B1 true 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 (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

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113094749B (en) * 2021-04-20 2024-05-17 西安交通大学 Implementation method of data security sharing mechanism under privacy protection based on blockchain
CN113051596A (en) * 2021-04-20 2021-06-29 普华云创科技(北京)有限公司 Block chain and distributed storage based hierarchical encryption method and system
CN115277668B (en) * 2021-04-29 2024-04-23 南京理工大学 Cloud file dynamic integrity protection and verification method based on Ethernet and interstellar file systems
CN113923178B (en) * 2021-09-30 2024-02-27 在秀网络科技(深圳)有限公司 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
CN115941452A (en) * 2022-11-09 2023-04-07 北京工业大学 Decentralized power grid fault tracing system based on Internet of things and block chain technology
CN117235181A (en) * 2023-09-19 2023-12-15 深圳市天行云供应链有限公司 Intelligent supply chain big data sharing method and sharing system
CN118171306B (en) * 2024-05-13 2024-07-12 中国地质科学院地质研究所 Result archive management method based on blockchain

Citations (1)

* 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

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101936758B1 (en) 2018-06-08 2019-01-11 주식회사 미탭스플러스 Encryption apparatus and method for integrity of information inquiry history

Patent Citations (1)

* 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

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 (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

Also Published As

Publication number Publication date
KR20210041459A (en) 2021-04-15

Similar Documents

Publication Publication Date Title
KR102347022B1 (en) The encrypted data sharing system based on block chain and IPFS(InterPlanetary File System)
US20210314396A1 (en) Streaming content via blockchain technology
JP7489422B2 (en) TOKENATION METHOD AND SYSTEM FOR CARRYING OUT EXCHANGES ON A BLOCKCHAIN
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
TWI725793B (en) System and method for mapping decentralized identifiers to real-world entities
KR101964254B1 (en) Person to person trading method and apparatus by using blockchain and distributed hash table
TWI779231B (en) Blockchain-based certificate storage method and device
CN107180350B (en) Method, device and system for multi-party sharing transaction metadata based on block chain
US20230026665A1 (en) Digital fiat currency
JP6877448B2 (en) Methods and systems for guaranteeing computer software using distributed hash tables and blockchain
WO2020170177A1 (en) Trusted tokenized transactions in a blockchain system
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
US20210217002A1 (en) Blockchain content purchasing protocol
KR20210041458A (en) The data sharing system by group based on block chain and IPFS(InterPlanetary File System)
US20220029815A1 (en) Streaming content via blockchain technology
CN114900290A (en) Data transaction model and privacy protection method based on block chain
JP2024509666A (en) Blockchain data segregation
Maharjan Performance analysis of blockchain platforms
WO2023099357A1 (en) Compressible blockchains
Patel et al. Blockchain–future of decentralized systems
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
US20220399988A1 (en) Linking blockchain operations
US11605080B2 (en) Method and system of transferring cryptocurrency credits through a blockchain with leaf blocks
WO2023145988A1 (en) Block chain and ipfs-based encryption data sharing system
US12047507B2 (en) Creating non-fungible token shards

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