KR102337836B1 - External information recognizing and information providing method using blockchain - Google Patents
External information recognizing and information providing method using blockchain Download PDFInfo
- Publication number
- KR102337836B1 KR102337836B1 KR1020190143555A KR20190143555A KR102337836B1 KR 102337836 B1 KR102337836 B1 KR 102337836B1 KR 1020190143555 A KR1020190143555 A KR 1020190143555A KR 20190143555 A KR20190143555 A KR 20190143555A KR 102337836 B1 KR102337836 B1 KR 102337836B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- oracle
- information
- blockchain
- node
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/166—Implementing security features at a particular protocol layer at the transport layer
Abstract
본 발명의 일실시예는, 오라클 블록체인 네트워크의 외부에 존재하는 정보소스로부터 데이터를 획득하는 데이터 획득단계, 상기 정보소스의 신뢰 여부를 검증하여 상기 데이터의 신뢰도를 판단하는 신뢰도 판단단계, 상기 데이터를 파싱하는 파싱단계, 상기 데이터의 유형에 따른 보호를 부여하는 데이터 보호단계, 및 상기 데이터를 분산형 데이터 스토리지에 저장하면서 데이터 저장내역을 오라클 블록체인에 저장하는 저장단계를 포함하는, 블록체인 응용 외부 정보 인식 및 정보 제공방법을 제공하여, 오라클 블록체인의 외부에 존재하는 데이터를 오라클 블록체인의 내부로 들여오고 오라클 블록체인의 내부에 저장된 데이터를 오라클 블록체인의 외부로 제공하는 양방향 데이터 교환을 제공함에 있어서 데이터 교환시 데이터의 기밀성, 무결성, 정보사용자의 프라이버시를 보장할 수 있다.An embodiment of the present invention provides a data acquisition step of acquiring data from an information source existing outside of an Oracle blockchain network, a reliability determination step of determining the reliability of the data by verifying whether the information source is trusted, the data A block chain application comprising a parsing step of parsing the data, a data protection step of granting protection according to the type of data, and a storage step of storing the data storage details in an Oracle blockchain while storing the data in a distributed data storage By providing a method for recognizing external information and providing information, it is a two-way data exchange that brings data that exists outside of the Oracle blockchain into the inside of the Oracle blockchain and provides data stored inside the Oracle blockchain to the outside of the Oracle blockchain. In providing data, confidentiality, integrity, and privacy of information users can be guaranteed when exchanging data.
Description
본 발명은 블록체인 응용 외부 정보 인식 및 정보 제공방법에 관한 것이다.The present invention relates to a method for recognizing and providing information external to a blockchain application.
블록체인(blockchain) 기술은 거래내역을 기록한 원장을 다수의 노드(Node)에 분산하여 저장/관리하는 분산 원장(distributed ledger) 기술이다. 블록체인은 다수의 거래 기록을 하나의 블록(block)에 기록하고 이전 블록과 다음 블록을 연결하여 체인(chain)으로 연결한 구조를 갖는다. 블록체인 기술은 블록체인에 저장된 기록을 위조하거나 변조하기 어려운 특성에 기초하여 다양한 분야에 적용되고 있다. 블록체인에 기록된 정보를 위조하거나 변조하기 어렵다는 것은 달리 말하면 이미 기록된 정보를 수정하기 어렵다는 것이고, 최초에 잘못된 정보가 블록체인에 기록되는 경우 문제가 발생할 수 있다.Blockchain technology is a distributed ledger technology that stores and manages the ledger that records transaction details in a number of nodes. A block chain has a structure in which multiple transaction records are recorded in one block, and the previous block and the next block are connected as a chain. Blockchain technology is being applied in various fields based on the characteristic that it is difficult to forge or falsify records stored in the block chain. Difficult to forge or falsify information recorded on the blockchain means that it is difficult to modify information that has already been recorded, and problems may arise if incorrect information is initially recorded on the blockchain.
블록체인 기술은 스마트 컨트랙트(smart contract) 기능을 제공할 수 있다. 스마트 컨트랙트는 계약 당사자가 사전에 협의한 내용을 미리 프로그래밍하여 전자계약 문서를 생성하고 계약 조건이 모두 만족되면 자동으로 계약 내용을 실행하는 기술이다. 스마트 컨트랙트의 계약 조건이 블록체인 네트워크에서 획득할 수 없는 정보인 경우 블록체인 외부에서 정보를 획득할 필요가 있다. 블록체인 외부의 정보가 블록체인에 일단 기록되면 수정하기 어렵기 때문에, 블록체인 외부의 정보가 신뢰할 수 있는 것인지 판단할 필요가 있다. Blockchain technology can provide smart contract functions. Smart contract is a technology that creates an electronic contract document by programming the contents agreed upon by the contracting parties in advance, and automatically executes the contract when all the contract conditions are satisfied. If the contract terms of a smart contract are information that cannot be obtained from the blockchain network, it is necessary to obtain information from outside the blockchain. Since information outside the blockchain is difficult to modify once recorded in the blockchain, it is necessary to determine whether information outside the blockchain is reliable.
본 발명의 일실시예에 따른 목적은, 오라클 블록체인이 외부 시스템과 정보 교환시 데이터의 기밀성과 무결성을 보장하기 위한 것이다.An object according to an embodiment of the present invention is to ensure the confidentiality and integrity of data when the Oracle blockchain exchanges information with an external system.
또한, 본 발명의 일실시예에 따른 목적은, 오라클 블록체인이 외부 시스템과 정보를 교환할 수 있도록, 정보 접근 경로에 대한 보안, 외부 정보 제공자의 검증, 획득된 데이터 및 정보사용자의 프라이버시 보장, 데이터 스토리지 기능을 제공할 수 있는 스마트 컨트랙트 방식의 오라클 프레임워크를 제공하기 위한 것이다. In addition, an object according to an embodiment of the present invention is to enable the Oracle block chain to exchange information with external systems, to secure information access paths, to verify external information providers, to ensure the privacy of users of acquired data and information, This is to provide a smart contract-type oracle framework that can provide data storage functions.
본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법은, 오라클 블록체인 네트워크의 외부에 존재하는 정보소스로부터 데이터를 획득하는 데이터 획득단계, 상기 정보소스의 신뢰 여부를 검증하여 상기 데이터의 신뢰도를 판단하는 신뢰도 판단단계, 상기 데이터를 파싱하는 파싱단계, 상기 데이터의 유형에 따른 보호를 부여하는 데이터 보호단계, 및 상기 데이터를 분산형 데이터 스토리지에 저장하면서 데이터 저장내역을 오라클 블록체인에 저장하는 저장단계를 포함할 수 있다. The method for recognizing and providing information external to a blockchain application according to an embodiment of the present invention includes a data acquisition step of acquiring data from an information source existing outside of an Oracle blockchain network, verifying whether the information source is trusted, A reliability determination step of determining the reliability of data, a parsing step of parsing the data, a data protection step of providing protection according to the type of data, and storing the data in a distributed data storage while storing the data in the Oracle blockchain It may include a storage step of storing it in the .
또한, 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법은, 상기 오라클 블록체인 네트워크의 내부 또는 외부로부터 요청된 데이터를 상기 분산형 데이터 스토리지로부터 획득하는 로딩단계, 상기 요청된 데이터에 부여된 보호를 제거 또는 변경하는 보호 변경단계, 상기 데이터 공급 요청에 기초하여, 상기 요청된 데이터를 필요한 형식으로 정리하는 재구성단계, 및 상기 요청된 데이터를 제공하고 데이터 제공내역을 상기 오라클 블록체인에 저장하는 제공단계를 더 포함할 수 있다. In addition, the method for recognizing and providing information external to a blockchain application according to an embodiment of the present invention includes a loading step of acquiring data requested from inside or outside the Oracle blockchain network from the distributed data storage, A protection change step of removing or changing the protection granted to data, a reconfiguration step of organizing the requested data into a required format based on the data supply request, and providing the requested data and setting the data provision details to the oracle block It may further include a providing step of storing in the chain.
또한, 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법은, 상기 요청된 데이터가 상기 분산형 데이터 스토리지에 존재하는지 여부를 상기 데이터 저장내역을 검색하여 판단하고, 상기 요청된 데이터가 상기 분산형 데이터 스토리지에 존재하는 경우 상기 로딩단계를 수행하고, 상기 요청된 데이터가 상기 분산형 데이터 스토리지에 존재하지 않는 경우 상기 데이터 획득단계를 수행하는 요청판단 단계를 더 포함할 수 있다. In addition, in the method for recognizing and providing information external to a block chain application according to an embodiment of the present invention, it is determined whether the requested data exists in the distributed data storage by searching the data storage details, and The method may further include a request determination step of performing the loading step when data exists in the distributed data storage, and performing the data obtaining step when the requested data does not exist in the distributed data storage.
또한, 상기 신뢰도 판단단계는 상기 정보소스가 제공하는 SSL 인증서를 이용하여 상기 정보소스의 신뢰여부를 판단하는 제1 판단단계, 상기 정보소스의 도메인에 기초하여 Whois 서비스를 통해 획득한 상기 정보소스의 도메인 등록 정보를 이용하여 상기 정보소스의 신뢰여부를 판단하는 제2 판단단계, 및 상기 정보소스의 신뢰여부에 관하여 위임된 지분 증명 방식의 오라클 노드 투표를 진행하고 오라클 노드 투표에 기초하여 상기 정보소스의 신뢰여부를 판단하는 제3 판단단계 중에서 적어도 하나를 수행할 수 있다. In addition, the reliability determination step includes a first determination step of determining whether the information source is trustworthy using the SSL certificate provided by the information source, and the information source obtained through the Whois service based on the domain of the information source. A second determination step of judging whether the information source is trusted by using domain registration information, and a delegated proof-of-stake method Oracle node voting with respect to whether the information source is trusted, and based on the Oracle node vote, the information source At least one of the third determination step of determining whether to trust the
또한, 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법은, 상기 신뢰도 판단단계를 수행한 결과 신뢰할 수 없는 정보소스로 판단되는 경우 소스-블랙리스트에 상기 신뢰할 수 없는 정보소스를 추가하는 소스-블랙리스트 추가 단계를 더 포함할 수 있다. In addition, in the method for recognizing and providing information and recognizing external information in a block chain application according to an embodiment of the present invention, when it is determined as an unreliable information source as a result of performing the reliability determination step, the unreliable information source is added to the source-blacklist. It may further include a source-blacklist adding step of adding .
또한, 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법은, 상기 오라클 블록체인 네트워크에 합류를 요청한 신규 노드의 신뢰도를 판단하기 위하여, 상기 신규 노드의 단위시간당 증가량이 기준값을 초과하는 경우 정해진 기간동안 신규 노드의 합류를 중지하고, 상기 신규 노드에 생성된 오라클 블록이 존재하는 경우 신뢰할 수 없는 노드로 판단하여 합류를 차단하고 노드-블랙리스트에 추가하며, 상기 신규 노드가 상기 노드-블랙리스트에 포함된 경우 합류를 차단하는, 오라클 노드 신뢰도 판단단계를 더 포함할 수 있다. In addition, in the method for recognizing and providing information external to a block chain application according to an embodiment of the present invention, in order to determine the reliability of a new node requesting to join the Oracle block chain network, the amount of increase per unit time of the new node is a reference value. If it exceeds, the new node joins for a set period of time and if there is an oracle block created in the new node, it is judged as an untrusted node, blocks the joining, and is added to the node-blacklist, and the new node The node-blocking when included in the blacklist may further include an Oracle node reliability determination step.
또한, 상기 오라클 블록체인 네트워크는 복수의 오라클 노드로 구성되며, 상기 오라클 노드는 상기 오라클 블록체인 프로그램 코드의 적어도 일부를 동작시키는 인클레이브를 포함하며, 상기 인클레이브 내에서 상기 오라클 노드 신뢰도 판단단계 및 오라클 블록생성 합의과정이 수행될 수 있다. In addition, the oracle blockchain network is composed of a plurality of oracle nodes, and the oracle node includes an enclave that operates at least a part of the oracle blockchain program code, and the oracle node reliability determination step in the enclave; An oracle block generation consensus process can be performed.
또한, 상기 데이터 보호단계는 상기 데이터에서 개인정보에 해당하는 정보를 익명화하거나 삭제하거나 필요한 데이터만을 범주화 또는 총계처리하는 비식별화를 수행하고, 필요한 경우 비식별화가 수행된 데이터를 암호화하는 것일 수 있다. In addition, the data protection step may be to anonymize or delete information corresponding to personal information from the data, or perform de-identification of categorizing or total processing only necessary data, and encrypting the de-identified data if necessary. .
본 발명의 특징 및 이점들은 첨부도면에 의거한 다음의 상세한 설명으로 더욱 명백해질 것이다.The features and advantages of the present invention will become more apparent from the following detailed description taken in conjunction with the accompanying drawings.
이에 앞서 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이고 사전적인 의미로 해석되어서는 아니 되며, 발명자가 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합되는 의미와 개념으로 해석되어야만 한다.Prior to this, the terms or words used in the present specification and claims should not be construed in a conventional and dictionary meaning, and the inventor may properly define the concept of a term to describe his invention in the best way. Based on the principle that there is, it should be interpreted as meaning and concept consistent with the technical idea of the present invention.
본 발명의 일실시예에 따르면, 오라클 블록체인의 외부에 존재하는 데이터를 오라클 블록체인의 내부로 들여오고 오라클 블록체인의 내부에 저장된 데이터를 오라클 블록체인의 외부로 제공하는 양방향 데이터 교환을 제공할 수 있다. According to one embodiment of the present invention, it is possible to provide a two-way data exchange that brings data existing outside of the Oracle blockchain into the inside of the Oracle blockchain and provides data stored inside the Oracle blockchain to the outside of the Oracle blockchain. can
또한, 본 발명의 일실시예에 따르면, 데이터 교환시 데이터의 기밀성, 무결성, 정보사용자의 프라이버시를 보장할 수 있다. In addition, according to an embodiment of the present invention, data confidentiality, integrity, and privacy of information users can be guaranteed during data exchange.
또한, 본 발명의 일실시예에 따르면, 다양한 외부 데이터의 접근을 위한 데이터 획득, 저장, 처리, 스케쥴링을 오라클 블록체인 네트워크에서 수행할 수 있는 스마트 컨트랙트 오라클을 제공할 수 있다. In addition, according to an embodiment of the present invention, it is possible to provide a smart contract oracle that can perform data acquisition, storage, processing, and scheduling for access to various external data in the Oracle blockchain network.
또한, 본 발명의 일실시예에 따르면, 각종 메인넷 커넥터 (Mainnet connector)와 dApp 을 서비스 할 수 있으며, 데이터에 신뢰도를 부여하는 서비스를 제공할 수 있다. In addition, according to an embodiment of the present invention, various mainnet connectors and dApps can be serviced, and a service that gives reliability to data can be provided.
도 1은 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법을 수행하는 오라클 블록체인 네트워크를 나타낸 도면이다.
도 2는 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법의 각 단계를 나타내는 도면이다.
도 3은 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법을 수행하는 프로그램 코드의 프레임워크 구조를 나타내는 도면이다.
도 4는 본 발명의 일실시예에 따른 정보소스의 신뢰도 판단단계를 나타내는 도면이다.
도 5는 본 발명의 일실시예에 따른 신규 노드의 노드 신뢰도 검증단계를 나타내는 도면이다. 1 is a diagram illustrating an Oracle blockchain network performing a method for recognizing and providing information outside a blockchain application according to an embodiment of the present invention.
2 is a diagram showing each step of a method for recognizing and providing information in a block chain application external information according to an embodiment of the present invention.
3 is a diagram illustrating a framework structure of a program code for performing a method for recognizing and providing information outside a block chain application according to an embodiment of the present invention.
4 is a diagram illustrating a step of determining reliability of an information source according to an embodiment of the present invention.
5 is a diagram illustrating a node reliability verification step of a new node according to an embodiment of the present invention.
본 발명의 일실시예의 목적, 특정한 장점들 및 신규한 특징들은 첨부된 도면들과 연관되어지는 이하의 상세한 설명과 바람직한 실시예들로부터 더욱 명백해질 것이다. 본 명세서에서 각 도면의 구성요소들에 참조번호를 부가함에 있어서, 동일한 구성 요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 번호를 가지도록 하고 있음에 유의하여야 한다. 또한, "일면", "타면", "제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위해 사용되는 것으로, 구성요소가 상기 용어들에 의해 제한되는 것은 아니다. 이하, 본 발명의 일실시예를 설명함에 있어서, 본 발명의 일실시예의 요지를 불필요하게 흐릴 수 있는 관련된 공지 기술에 대한 상세한 설명은 생략한다. The objects, specific advantages and novel features of one embodiment of the present invention will become more apparent from the following detailed description and preferred embodiments taken in conjunction with the accompanying drawings. In the present specification, in adding reference numbers to the components of each drawing, it should be noted that only the same components are given the same number as possible even though they are indicated on different drawings. In addition, terms such as "one side", "the other side", "first", "second" etc. are used to distinguish one component from another component, and the component is limited by the terms no. Hereinafter, in describing an embodiment of the present invention, detailed descriptions of related known technologies that may unnecessarily obscure the gist of an embodiment of the present invention will be omitted.
이하, 첨부된 도면을 참조하여, 본 발명의 일실시예를 상세히 설명한다.Hereinafter, an embodiment of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법을 수행하는 오라클 블록체인 네트워크(1020)를 나타낸 도면이다. 1 is a diagram illustrating an Oracle
본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법은 오라클 블록체인 네트워크(1020)를 구성하는 복수의 오라클 노드(1030)에서 수행될 수 있다. 오라클 블록체인 네트워크(1020)는 블록체인 응용 외부 정보 인식 및 정보 제공방법을 수행하여, 오라클 블록체인 네트워크(1020)의 외부에 존재하는 정보소스(1010)로부터 데이터를 획득하여 분산형 데이터 스토리지(1040)에 저장할 수 있고, 데이터 요청을 수신하면 분산형 데이터 스토리지(1040)에 저장된 데이터를 정보사용자(1050)에게 제공할 수 있다. The method for recognizing and providing information external to a block chain application according to an embodiment of the present invention may be performed in a plurality of
오라클 블록체인 네트워크(1020)는 복수의 오라클 노드(1030)가 피어 투 피어(P2P, Peer to Peer) 방식으로 연결된 네트워크이다. 오라클 블록체인 네트워크(1020)는 복수의 오라클 노드(1030)들 사이의 정보처리와 각 오라클 노드(1030)의 정보처리에 기초하여 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법을 수행할 수 있다. The Oracle
오라클 노드(1030)는 통신부(1031), 제어부(1032), 저장부(1033)를 포함할 수 있다. 오라클 노드(1030)는 서버 컴퓨터, PC, 노트북 PC, 태블릿 PC, 스마트폰 등의 정보처리장치를 포함한다. 통신부(1031)는 오라클 노드(1030)와 다른 오라클 노드(1030) 사이에서 데이터를 송수신하여 오라클 블록체인 네트워크(1020)의 연결을 수행할 수 있다. 저장부(1033)는 오라클 블록체인(1060)의 전부 또는 일부를 저장할 수 있다. 저장부(1033)는 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법을 수행하는 프로그램 코드를 저장할 수 있다. 제어부(1032)는 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법을 수행하는 프로그램 코드를 실시할 수 있는 프로세서(processor)를 포함할 수 있다. The Oracle
오라클 블록체인(1060)은 이전 오라클 블록(1060a)의 해시값을 자기 오라클 블록(1060a)의 구성으로 포함하는 오라클 블록(1060a)들의 연속적인 연결로 구성될 수 있다. 오라클 블록(1060a)은 이전 오라클 블록(1060a)의 해시값과 데이터를 저장하는 저장공간을 포함한다. 오라클 블록체인(1060)은 오라클 블록체인 네트워크(1020)를 구성하는 복수의 오라클 노드(1030)에 각각 저장되고, 복수의 오라클 노드(1030)에 저장된 오라클 블록체인(1060)들은 서로 동일한 데이터를 갖는다. 오라클 블록(1060a)의 저장공간에는 저장내역(1061) 및 제공내역(1062)이 저장될 수 있다. 저장내역(1061)은 오라클 블록체인 네트워크(1020)가 정보소스(1010)로부터 데이터를 획득하고 검증하여 저장하는 저장 프로세스(S1030)의 수행결과를 포함할 수 있다. 제공내역(1062)은 오라클 블록체인 네트워크(1020)가 정보사용자(1050)에게 데이터 요청을 수신하고 데이터를 제공하는 제공 프로세스(S1040)의 수행결과를 포함할 수 있다. The
정보소스(1010)(Information source)는 오라클 블록체인 네트워크(1020)의 외부(external)에 존재하며 데이터를 제공할 수 있는 장치를 말한다. 정보소스(1010)는 웹 서버, 클라우드 스토리지, 데이터베이스, 본 발명의 일실시예에 따른 오라클 블록체인 네트워크(1020) 이외의 외부 블록체인 네트워크(이더리움, 이오스 등), IoT 디바이스 등을 포함할 수 있다. IoT 디바이스는 공유자원에 연결되어 사용자의 접근을 허가하거나 차단할 수 있도록 잠금기능을 포함하고, 공유자원을 이용하는 사람의 존재 여부를 감지할 수 있는 게이트웨이모듈이 포함되는 복합 IoT 디바이스일 수 있다. 정보소스(1010)는 금융서비스를 중개하는 결제기관일 수도 있고, 다양한 종류의 데이터 제공자일 수도 있다. 오라클 블록체인 네트워크(1020)를 구성하는 오라클 노드(1030)는 정보소스(1010)에 접근하여 데이터를 수집할 수 있다. The information source 1010 (Information source) is external to the Oracle
정보사용자(1050)는 오라클 블록체인 네트워크(1020)를 구성하는 오라클 노드(1030)에 필요한 데이터를 요청하고 요청한 데이터를 수신하여 이용하는 주체를 말한다. 정보사용자(1050)는 오라클 블록체인 네트워크(1020)의 내부에서 동작하는 다양한 스마트 컨트랙트 계정들(Accounts), 오라클 블록체인 네트워크(1020)의 외부에 존재하는 다른 블록체인 네트워크(이더리움, 이오스 등), 오라클 블록체인 네트워크(1020)의 임의의 오라클 노드(1030)에 접속하여 데이터를 요청하는 개인 정보사용자(1050)들의 단말장치를 포함할 수 있다.The
오라클 블록체인 네트워크(1020)는 정보소스(1010)로부터 데이터를 제공받을 수 있다. 그리고, 오라클 블록체인 네트워크(1020)는 정보사용자(1050)로부터 데이터 요청을 받으면 요청받은 데이터를 정보사용자(1050)에게 제공할 수 있다. 이때, 정보소스(1010)와 정보사용자(1050)는 오라클 블록체인 네트워크(1020) 외부의 동일한 대상일 수 있다. 즉, 정보소스(1010)는 오라클 블록체인 네트워크(1020)에 데이터를 제공할 수도 있고, 정보소스(1010)는 데이터가 필요한 경우 오라클 블록체인 네트워크(1020)에 데이터를 요청하는 정보사용자(1050)가 될 수도 있다. 예를 들어, 이더리움 블록체인 네트워크는 오라클 블록체인 네트워크(1020)에 데이터를 제공하는 정보소스(1010)일 수도 있고, 이더리움 블록체인 네트워크가 필요한 정보를 오라클 블록체인 네트워크(1020)에 요청하고 오라클 블록체인 네트워크(1020)로부터 필요한 정보를 제공받는 정보사용자(1050)일 수도 있다.The
분산형 데이터 스토리지(1040)는 오라클 블록체인(1060) 기반의 데이터 분산 저장 시스템이다. 분산형 데이터 스토리지(1040)는 데이터를 복수의 조각으로 분할하여 분산형 데이터 스토리지(1040)를 구성하는 노드들의 저장공간에 분산 저장하고, 데이터의 저장내역(1061)과 이용을 오라클 블록체인(1060)에 기록하는 IPFS(Interplanetary File Storage), Corda 등의 분산 저장 방식이 사용될 수 있다. 분산형 데이터 스토리지(1040)는 오라클 블록체인 네트워크(1020)로부터 수신한 데이터를 저장하고, 오라클 블록체인 네트워크(1020)로부터 요청된 데이터를 전송한다. The distributed
도 2는 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법의 각 단계를 나타내는 도면이고, 도 3은 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법을 수행하는 프로그램 코드의 프레임워크 구조(1100)를 나타내는 도면이다. 2 is a view showing each step of a method for recognizing and providing information on a block chain application external information according to an embodiment of the present invention, Figure 3 is a block chain application external information recognition and information provision method according to an embodiment of the present invention It is a diagram showing the
도 2에 도시된 바와 같이, 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법은, 오라클 블록체인 네트워크(1020)의 외부에 존재하는 정보소스(1010)로부터 데이터를 획득하는 데이터 획득단계(S1031), 정보소스(1010)의 신뢰 여부를 검증하여 데이터의 신뢰도를 판단하는 신뢰도 판단단계(S1032), 데이터를 파싱하는 파싱단계(S1033), 데이터의 유형에 따른 보호를 부여하는 데이터 보호단계(S1034), 및 데이터를 분산형 데이터 스토리지(1040)에 저장하면서 데이터 저장내역(1061)을 오라클 블록체인(1060)에 저장하는 저장단계(S1035)를 포함할 수 있다. As shown in FIG. 2 , the method for recognizing and providing information external to a block chain application according to an embodiment of the present invention obtains data from an
그리고, 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법은, 오라클 블록체인 네트워크(1020)의 내부 또는 외부로부터 요청된 데이터를 상기 분산형 데이터 스토리지(1040)로부터 획득하는 로딩단계(S1041), 요청된 데이터에 부여된 보호를 제거 또는 변경하는 보호 변경단계(S1042), 데이터 공급 요청에 기초하여, 요청된 데이터를 필요한 형식으로 정리하는 재구성단계(S1043), 및 요청된 데이터를 제공하고 데이터 제공내역(1062)을 상기 오라클 블록체인(1060)에 저장하는 제공단계(S1044)를 더 포함할 수 있다. And, in the method for recognizing and providing information external to a block chain application according to an embodiment of the present invention, the data requested from inside or outside the Oracle
도 3에 도시된 바와 같이, 액세스 모듈(1110)은 API(1111), 파서(Parser)(1112), 악의적 오라클 노드 방지 알고리즘(1113), BFT 합의 알고리즘(1114)을 포함한다. 정보소스 검증모듈(1120)은 SSL 인증서 기반 신뢰판단모델(1121), Whois 기반 신뢰판단모델(1122), 투표 기반 신뢰판단모델(1123)을 포함한다. 데이터 관리모듈(1130)은 스케줄러(1131), 비식별화 알고리즘(1132), 암호화부(1133)를 포함한다. 오라클 스마트 컨트랙트 모듈(1140)은 데이터 저장 사용 기록 스마트 컨트랙트(1141), 오라클 블록체인 네트워크 운영부(1142)를 포함한다. As shown in FIG. 3 , the
도 2 및 도 3을 참조하여, 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법을 설명한다. With reference to FIGS. 2 and 3, a method for recognizing external information and providing information in a blockchain application according to an embodiment of the present invention will be described.
먼저, 데이터 요청 수신 단계(S1010)는 오라클 블록체인 네트워크(1020)의 임의의 오라클 노드(1030)가 정보사용자(1050)로부터 데이터 요청을 수신하는 것이다. 데이터 요청은 정보사용자(1050)가 필요로 하는 데이터에 관한 정보를 포함하며, 정해진 정보사용자(1050)만 접근하여야 하는 데이터인지 여부를 포함할 수 있다. 데이터 요청은 액세스 모듈(1110)의 API(1111)를 통하여 수신될 수 있다. API(1111)는 Restful API 또는 SDK API를 활용할 수 있다. API(1111)는 정보소스(1010)와 연결되어 데이터를 수신하고, 정보사용자(1050)와 연결되어 데이터를 요청하고 수신할 수 있는 채널을 제공할 수 있다. First, in the data request receiving step (S1010), any
데이터 요청을 수신한 오라클 노드(1030)는 요청된 데이터가 분산형 데이터 스토리지(1040)에 존재하는지 판단하는 요청 판단단계(S1020)를 수행한다. 요청 판단단계(S1020)는 요청된 데이터가 분산형 데이터 스토리지(1040)에 존재하는지 여부를 데이터 저장내역(1061)을 검색하여 판단하고, 요청된 데이터가 분산형 데이터 스토리지(1040)에 존재하는 경우 제공 프로세스(S1040)를 시작하기 위해 로딩단계(S1041)를 수행하고, 요청된 데이터가 분산형 데이터 스토리지(1040)에 존재하지 않는 경우 저장 프로세스(S1030)를 수행하기 위해 데이터 획득단계(S1031)를 수행한다. 저장 프로세스(S1030)는 분산형 데이터 스토리지(1040)와 오라클 블록체인 네트워크(1020)에 존재하지 않는 데이터를 오라클 블록체인 네트워크(1020)의 외부에 존재하는 정보소스(1010)로부터 획득하는 과정이다. 제공 프로세스(S1040)는 분산형 데이터 스토리지(1040)에 존재하는 데이터를 정보사용자(1050)에게 제공하는 과정이다.Upon receiving the data request, the
요청 판단단계(S1020)에서 오라클 노드(1030)는 오라클 블록체인(1060)에 저장된 저장내역(1061)을 검색하여 요청된 데이터와 이미 저장된 데이터의 일치 여부를 판단하여 요청된 데이터의 존재 여부를 판단할 수 있다. 저장내역(1061)은 데이터의 종류, 이름, 획득한 정보소스(1010)의 이름, 보호 부여 내용, 획득 시간, 정보소스(1010)의 신뢰도 판단 정보, 분산형 데이터 스토리지(1040)의 저장 위치 정보 등을 포함할 수 있다. 저장내역(1061)은 오라클 노드(1030)의 저장부(1033)에 저장된 오라클 블록체인(1060)에 저장되어 있으므로 요청 판단단계(S1020)는 오라클 블록체인 네트워크(1020)의 합의나 검증과정을 거치지 않고 동작할 수 있다. In the request determination step (S1020), the
요청된 데이터가 분산형 데이터 스토리지(1040)에 존재하지 않는 경우 요청된 데이터를 오라클 블록체인 네트워크(1020) 내부로 가져오기 위하여 저장 프로세스(S1030)를 수행한다. 데이터 획득단계(S1031)는 오라클 블록체인 네트워크(1020)의 외부에 존재하는 정보소스(1010)로부터 데이터를 획득하는 것이다. 정보소스(1010)의 종류에 따라 적용되는 데이터 수집방법이 달라질 수 있다. 정보소스(1010)가 외부의 블록체인 네트워크인 경우와 블록체인 네트워크가 아닌 외부 장치인 경우의 데이터 수집방법은 다를 수 있다. 예를 들어, 정보소스(1010)가 EOS 블록체인 네트워크인 경우 EOS 블록체인 네트워크는 데이터를 테이블(table) 방식으로 저장하므로 테이블을 읽는 방식으로 데이터를 수집하고, 정보소스(1010)가 이더리움 블록체인 네트워크인 경우 이더리움 블록체인 네트워크에서 제공하는 View function 을 이용하여 데이터를 수집할 수 있다. 이때, 오라클 블록체인 네트워크(1020)가 정보소스(1010)에서 데이터를 획득할 때에는 정보사용자(1050)의 요청에 따른 데이터만을 선별적으로 수집할 수 있다. If the requested data does not exist in the distributed
데이터 획득단계(S1031)는 데이터 요청을 수신한 오라클 노드(1030)가 API(1111)를 통해 정보소스(1010)의 데이터를 접근하는 방법으로 수행될 수 있다. 오라클 노드(1030)는 정보소스(1010)에 요청된 데이터가 존재하는지 여부를 검색하고, 해당 데이터가 존재하는 경우 데이터를 가져온다. 데이터 관리모듈(1130)의 스케줄러(1131)는 정기적으로 수집해야 하는 데이터를 수집하는 스케줄을 관리할 수 있다. 스케줄러(1131)는 정해진 시점이 되면 데이터를 수집하기 위하여 저장 프로세스(S1130)를 동작시킬 수 있다. The data acquisition step ( S1031 ) may be performed in such a way that the
정보소스(1010)로부터 데이터를 가져오면 데이터의 신뢰도를 판단하기 위하여 신뢰도 판단단계(S1032)를 수행한다. 신뢰도 판단단계(S1032)에서 오라클 블록체인 네트워크(1020)는 정보소스(1010) 자체의 신뢰도를 판단함으로써, 정보소스(1010)가 제공하는 데이터의 신뢰도를 판단한다. 정보소스(1010)는 오라클 블록체인 네트워크(1020) 외부에 존재하는 현실 세계에서 수행되거나 생성되거나 결정되는 결과물을 컴퓨터 장치가 인식할 수 있는 데이터 형식으로 생성하거나 입력받아 제공하고, 월드 와이드 웹(WWW) 등의 네트워크에서 수행되거나 생성되거나 결정된 결과 데이터를 제공한다. 정보소스(1010)는 물리적인 컴퓨터 장치에 기초하여 존재하므로 물리적인 컴퓨터 장치를 이용하여 정보를 제공하는 현실의 주체에 관한 정보를 검증하여 정보소스(1010)의 신뢰도를 판단할 수 있다. 신뢰도 판단단계(S1032)는 정보소스(1010)가 오라클 블록체인 네트워크(1020)에 제공하는 정보소스(1010) 자신에 관한 정보들을 검증하는 과정이다. 즉, 신뢰도 판단단계(S1032)는 정보소스(1010)를 운영하는 주체가 누구인지, 정보소스(1010)를 운영하는 주체가 실존하는지, 정보소스(1010)를 운영하는 주체가 현실세계에서 신뢰할 수 있는 검증을 거쳤는지 등을 판단한다. 신뢰도 판단단계(S1032)는 정보소스(1010)가 이미 신뢰가능한 것으로 판단된 경우 생략될 수 있다. 신뢰도 판단단계(S1032)는 정보소스(1010)가 신뢰가능한 것으로 판단된 이후 정해진 기간이 경과하면 정보소스(1010)의 신뢰도를 다시 판단하기 위하여 수행될 수 있다. When data is retrieved from the
정보소스(1010)가 신뢰가능한 것으로 판단되면, 파싱단계(S1033)를 수행한다. 파싱단계(S1033)는 정보소스(1010)에서 획득한 데이터를 파싱하는 것이다. 파싱단계(S1033)는 액세스 모듈(1110)의 파서(1112)에서 수행될 수 있다. 파서(Parser)(1112)는 정보소스(1010)로부터 획득한 데이터를 분석하여 세부 유형별로 분류할 수 있다. 파서(1112)는 정보소스(1010)에서 획득한 데이터의 유형에 따라 다양한 구문 분석 알고리즘을 적용하여 세부 데이터를 분류할 수 있다. 예를 들어, 이오스 오라클 블록체인(1060) 정보소스(1010)로부터 "A to B 1000 EOS"라는 데이터를 획득한 경우 파서(1112)는 "일련번호 = XXX1", "송금자 = A", "수신자 = B", "금액 = 1000", "단위 = EOS" 라는 방식으로 세부 데이터를 구분하고 세부 데이터의 유형을 판단할 수 있다.If it is determined that the
데이터 파싱을 수행한 다음, 데이터 보호단계(S1034)를 수행한다. 데이터 보호단계(S1034)는 데이터의 유형에 따른 보호를 부여하는 것이다. 데이터는 개인정보가 포함되어 있어서 프라이버시를 보호해야 하거나, 데이터를 요청한 정보사용자(1050)만이 접근할 수 있도록 보호할 필요가 있다. 데이터에 부여될 수 있는 보호는 익명화, 범주화, 총계처리, 암호화 등을 포함한다. After parsing the data, a data protection step (S1034) is performed. The data protection step S1034 is to provide protection according to the data type. Since data contains personal information, it is necessary to protect privacy or to protect so that only the
익명화, 범주화, 총계처리는 데이터 관리모듈(1130)의 비식별화 알고리즘(1132)을 통해 수행될 수 있다. 익명화는 데이터에 포함된 사람의 성명을 인식할 수 없도록 일부나 전부를 변형하거나 제거하는 것이다. 예를 들어, "홍길동"이라는 이름을 "홍*동"으로 일부를 변형하거나, "고객 1"과 같이 전부를 변형할 수 있다. 총계처리는 특정 항목의 값이 복수개 존재하는 경우 총액을 계산하는 것이다. 예를 들어, "홍*동"의 거래 횟수가 "20회/40회/10회"인 경우 총 거래 횟수가 "70회"인 것으로 집계할 수 있다. 범주화는 특정 값이 포함되는 범위에 따라 집계하는 것이다. 예를 들어, "홍*동"의 거래 횟수가 "13회"인 경우 미리 정해진 범위인 "10~20회"로 집계할 수 있다. Anonymization, categorization, and total processing may be performed through the
암호화는 정해진 정보사용자(1050)만이 데이터를 열람할 수 있도록 암호화하는 것이다. 암호화는 데이터 관리모듈(1130)의 암호화부(1133)에서 수행될 수 있다. 암호화는 정보사용자(1050)의 공개키를 수신하는 단계, 정보사용자(1050)의 공개키를 이용하여 데이터를 암호화하는 단계로 수행될 수 있다. 암호화는 정보사용자(1050)의 공개키를 이용하여 대칭키를 암호화하고 대칭키를 이용하여 데이터를 암호화한 다음 암호화된 대칭키와 데이터를 함께 저장하거나 제공하는 방식으로 수행될 수도 있다. 개인정보 보호가 불필요하거나 공개되어도 무방한 데이터인 경우 데이터 보호단계(S1034)에서 보호를 부여하지 않을 수 있다. Encryption is to encrypt data so that only a
보호단계를 수행한 데이터는 오라클 블록체인 네트워크(1020)를 구성하는 오라클 노드(1030)들에 공유되어 합의를 거친다. The data that has undergone the protection step is shared with the
데이터 보호단계(S1034)를 수행한 다음 저장단계(S1035)를 수행할 수 있다. 저장단계(S1035)는 데이터를 분산형 데이터 스토리지(1040)에 저장하면서 데이터 저장내역(1061)을 오라클 블록체인(1060)에 저장하는 것이다. 데이터 저장단계(S1035)에서, 데이터 저장내역(1061)을 오라클 블록체인(1060)에 저장하는 동작은 오라클 스마트 컨트랙트 모듈(1140)의 데이터 저장 사용 기록 스마트 컨트랙트(1141)에 따라 수행될 수 있다. 데이터 저장 사용 기록 스마트 컨트랙트(1141)는 데이터를 분산형 데이터 스토리지(1040)에 저장하는 동작과 저장내역(1061)을 오라클 블록체인(1060)에 저장하는 동작을 수행할 수 있다. 오라클 스마트 컨트랙트 모듈(1140)이 데이터를 분산형 데이터 스토리지(1040)에 제공하는 동작을 수행하면, 분산형 데이터 스토리지(1040)는 수신한 데이터를 저장할 수 있다. After performing the data protection step (S1034), the storage step (S1035) may be performed. The storage step ( S1035 ) is to store the
오라클 스마트 컨트랙트 모듈(1140)은 저장내역(1061) 및 제공내역(1062)을 기록하여 관리할 수 있다. 오라클 스마트 컨트랙트 모듈(1140)은 데이터 관리를 위하여 내부에 테이블을 정의하여 모든 저장내역(1061) 및 제공내역(1062)을 기록하여 관리하고, 데이터 저장 및 제공 내역을 업데이트할 수 있다. 저장내역(1061) 및 제공내역(1062)은 BFT 등의 합의 알고리즘에 따라 오라클 블록체인 네트워크(1020)에 참여한 적어도 일부의 오라클 노드(1030)들에 공유되고 검증되어 합의에 따라 오라클 블록(1060a)의 저장공간에 저장될 수 있다. The Oracle
데이터는 다양한 크기를 가질 수 있다. 오라클 블록(1060a)의 저장공간에 모든 데이터를 저장하기 어려우므로 데이터는 분산형 데이터 스토리지(1040)에 저장될 수 있다. 분산형 데이터 스토리지(1040)는 블록체인 기반으로 파일의 저장을 관리하여 파일의 무결성을 보장할 수 있다. 분산형 데이터 스토리지(1040)는 API(1111) 를 통하여 오라클 블록체인 네트워크(1020)로부터 데이터 저장 요청을 받고, 데이터에 알맞는 카테고리를 선택한 후 인덱싱을 거치고, 이 내용을 분산형 데이터 스토리지(1040) 자체의 블록체인 네트워크를 구성하는 노드들의 일부에 공유한 뒤 공유받은 노드의 저장매체에 기록한다.Data can have various sizes. Since it is difficult to store all data in the storage space of the
요청된 데이터가 분산형 데이터 스토리지(1040)에 존재하는 경우 또는 저장단계(S1035)를 수행한 경우, 요청된 데이터에 해당하는 데이터를 정보사용자(1050)에게 제공하는 제공 프로세스(S1040)를 수행하기 위하여 로딩단계(S1041)를 수행한다. 로딩단계(S1041)는 오라클 블록체인 네트워크(1020)의 내부 또는 외부로부터 요청된 데이터를 분산형 데이터 스토리지(1040)로부터 획득하는 것이다. 저장내역(1061)은 분산형 데이터 스토리지(1040)에서 데이터가 저장된 위치에 관련된 정보를 포함하고 있으므로, 저장내역(1061)에 기초하여 요청된 데이터를 획득할 수 있다. When the requested data exists in the distributed
로딩단계(S1041)에서 요청된 데이터를 획득하면, 보호 변경단계(S1042)를 수행한다. 보호 변경단계(S1042)는 요청된 데이터에 부여된 보호를 제거 또는 변경하는 것이다. 보호 변경단계(S1042)는 데이터 관리모듈(1130)의 비식별화 알고리즘(1132)이나 암호화부(1133)를 이용하여 수행될 수 있다. 데이터에 비식별화 또는 암호화 보호가 부여되어 있는 경우 데이터 요청에 따라 보호를 제거하거나 변경하여 정보사용자(1050)가 데이터를 이용할 수 있도록 제공할 수 있다. 예를 들어, 정보사용자(1050)의 공개키를 이용하여 암호화된 경우 정보사용자(1050)의 개인키를 수신하여 데이터를 복호화할 수 있다. 보호 변경단계(S1042)는 데이터의 특성과 데이터 요청 내용에 따라 보호의 제거 또는 변경 여부를 결정할 수 있다. When the requested data is obtained in the loading step (S1041), a protection change step (S1042) is performed. The protection change step S1042 removes or changes the protection granted to the requested data. The protection change step S1042 may be performed using the
보호 변경단계(S1042)에서 보호를 제거하거나 변경하면, 재구성단계(S1043)를 수행한다. 재구성 단계는 분산형 데이터 스토리지(1040)에 파싱되어 저장된 데이터를 데이터 요청에 기초한 데이터 형식으로 재구성하는 과정이다. 재구성 단계는 액세스모듈의 파서(1112)에서 수행될 수 있다. 정보사용자(1050)가 다른 오라클 블록체인 네트워크(1020)인 경우, 분산형 데이터 스토리지(1040)에 저장된 거래내역을 다른 오라클 블록체인 네트워크(1020)에서 사용할 수 있는 데이터 형식으로 가공할 수 있다. 예를 들어, 분산형 데이터 스토리지(1040)에 저장된 거래내역이 "송금자 = A, 수신자 = B, 금액 = 1000, 단위 = EOS" 일 때, 데이터 요청에 따라 "A->B/1000/EOS" 와 같은 연속된 하나의 데이터로 재구성할 수 있다.If protection is removed or changed in the protection change step S1042, a reconfiguration step S1043 is performed. The reconstruction step is a process of reconstructing data parsed and stored in the distributed
재구성 단계를 수행하면, 재구성된 데이터를 정보사용자(1050)에게 제공하는 제공단계(S1044)를 수행한다. 제공단계(S1044)는 요청된 데이터를 제공하고 데이터 제공내역(1062)을 오라클 블록체인(1060)에 저장하는 것이다. 제공단계(S1044)는 오라클 스마트 컨트랙트 모듈(1140)의 데이터 저장 사용 기록 스마트 컨트랙트(1141)에 따라 수행될 수 있다. 분산형 데이터 스토리지(1040)로부터 데이터를 찾아서 읽어들이고 데이터를 정보사용자(1050)에게 제공하는 제공 프로세스(S1040)를 수행한 결과 중요한 데이터는 오라클 블록(1060a)의 저장공간에 제공내역(1062)으로 저장된다. 제공내역(1062)은 데이터 요청의 내용, 요청된 데이터의 종류, 이름, 형식, 정보사용자(1050)의 정보, 보호 제거 또는 변경 내용 등을 포함할 수 있다. When the reconfiguration step is performed, a provision step (S1044) of providing the reconstructed data to the
상술한 바와 같이, 데이터 요청을 수신하고 요청된 데이터가 분산형 데이터 스토리지(1040)에 존재하는지 판단하고, 저장 프로세스(S1030)와 제공 프로세스(S1040)를 수행하여, 오라클 블록체인(1060) 외부에 존재하는 데이터를 인식하고 다른 오라클 블록체인 네트워크(1020)에 제공할 수 있다. 이러한 과정을 수행함에 따라, 본 발명의 일실시예는 블록체인과 블록체인을 서로 연결할 수 있는 각종 메인넷 커넥터 (Mainnet connector)와 dApp 을 서비스 할 수 있으며, 블록체인들 사이에서 교환되는 데이터에 신뢰도를 부여하는 서비스를 제공할 수 있다.As described above, by receiving the data request, determining whether the requested data exists in the distributed
저장 프로세스(S1030) 및 제공 프로세스(S1040)를 수행함에 있어서, 데이터의 접근 권한에 따라 세부적인 수행단계의 차이가 존재한다. 일반에 공개되는 데이터인 경우, 저장 프로세스(S1030)의 데이터 보호단계(S1034)에서 데이터의 비식별화를 수행하고 암호화를 수행하지 않는다. 즉, 데이터를 사용할 수 있도록 암호화는 하지 않지만, 데이터에 존재하는 개인정보 등을 보호하기 위한 비식별화를 수행하는 것이다. 일반에 공개되지 않고 특정 정보사용자(1050)만이 접근하여야 하는 데이터인 경우, 저장 프로세스(S1030)의 데이터 보호단계(S1034)에서 비식별화 이후에 암호화를 수행한다. 암호화는 공개키/개인키 암호화 방식을 이용하여, 특정 정보사용자(1050)의 공개키로 데이터를 암호화할 수 있다. 또는 암호화는 특정 오라클 노드(1030)의 공개키로 암호화되어 분산형 데이터 스토리지(1040)에 저장될 수 있다. In performing the storage process ( S1030 ) and the providing process ( S1040 ), there is a difference in detailed execution steps according to the access authority of data. In the case of data that is open to the public, de-identification of the data is performed and encryption is not performed in the data protection step ( S1034 ) of the storage process ( S1030 ). That is, data is not encrypted so that it can be used, but de-identification is performed to protect personal information, etc. existing in the data. In the case of data that is not disclosed to the public and that only a
일반에 공개되는 데이터인 경우, 암호화되어 있지 않으므로 제공 프로세스(S1040)의 보호 변경단계(S1042)를 생략할 수 있다. 일반에 공개되지 않고 특정 정보사용자(1050)만이 접근하여야 하는 데이터인 경우, 저장 프로세스(S1030)의 보호 변경단계(S1042)에서 특정 오라클 노드(1030)의 개인키로 복호화하여 데이터의 암호화를 해제할 수 있다. 또는, 저장 프로세스(S1030)의 데이터 보호단계(S1034)에서 데이터를 특정 정보사용자(1050)의 공개키로 암호화하는 경우, 정보사용자(1050)가 자신의 개인키로 복호화하여 데이터를 인식할 수 있으므로 보호 변경단계(S1042)에서 복호화가 수행되지 않을 수 있다. In the case of publicly available data, since it is not encrypted, the protection change step ( S1042 ) of the provision process ( S1040 ) may be omitted. In the case of data that is not disclosed to the public and only needs to be accessed by a
도 4는 본 발명의 일실시예에 따른 정보소스(1010)의 신뢰도 판단단계(S1032)를 나타내는 도면이다. 4 is a diagram showing the reliability determination step (S1032) of the
도 4에 도시된 바와 같이, 신뢰도 판단단계(S1032)는 정보소스(1010)가 제공하는 SSL 인증서를 이용하여 정보소스(1010)의 신뢰여부를 판단하는 제1 판단단계, 정보소스(1010)의 도메인에 기초하여 Whois 서비스를 통해 획득한 정보소스(1010)의 도메인 등록 정보를 이용하여 정보소스(1010)의 신뢰여부를 판단하는 제2 판단단계, 및 정보소스(1010)의 신뢰여부에 관하여 위임된 지분 증명 방식의 오라클 노드(1030) 투표를 진행하고 오라클 노드(1030) 투표에 기초하여 정보소스(1010)의 신뢰여부를 판단하는 제3 판단단계 중에서 적어도 하나를 수행하는 과정이다. 신뢰도 판단단계(S1032)는 제1 내지 제3 판단단계를 모두 수행할 수도 있다. As shown in FIG. 4 , the reliability determination step ( S1032 ) is a first determination step of determining whether the
제1 판단단계는 HTTPS 환경에서 제공되는 SSL 인증서를 이용하여 정보소스(1010)가 신뢰할 수 있는 주체에 의해 운영되는지 판단할 수 있다. SSL 인증서에 기초하여 정보소스(1010)가 운영되는 주소, 도메인, 등의 정보를 인식할 수 있고, SSL 인증서는 인증기관(CA, Certificate Authority)로부터 인증받은 것이므로 정보소스(1010)의 운영주체의 실재를 인정할 수 있고, 인증기관을 신뢰함에 따라 정보소스(1010)를 신뢰할 수 있다.In the first determination step, it may be determined whether the
제2 판단단계는 정보소스(1010)의 도메인 등록 정보를 이용하여 신뢰도를 판단한다. 도메인 등록 정보는 도메인 네임, 등록자 주소, 등록자 이메일, IP 주소 등의 정보를 포함하며, 도메인 등록 정보를 제공하는 Whois 검색 서비스를 이용하여 획득될 수 있다. 제2 판단단계에서 SSL 인증서와 도메인 등록 정보가 동일하거나 관련있는지, 접속 IP와 도메인 등록 정보의 IP가 동일하거나 유사한지, 도메인 국적과 IP 국적이 동일한지 등을 확인하여 정보소스(1010)의 신뢰여부를 판단할 수 있다. In the second determination step, reliability is determined using domain registration information of the
제3 판단단계는 오라클 블록체인 네트워크(1020)에 참여한 오라클 노드(1030)들이 투표를 진행하여 정보소스(1010)의 신뢰도를 판단할 수 있다. 투표는 위임된 지분 증명(DPoS) 방식으로 진행될 수 있다. 제3 판단단계가 수행되는 경우 오라클 노드(1030)들은 정보소스(1010)의 신뢰도를 판단하는 투표를 진행할 의원 오라클 노드(1030)를 선출한다. 의원 오라클 노드(1030)는 11개, 21개, 99개 등의 홀수개로 선정될 수 있다. 선출된 의원 오라클 노드(1030)들에게 정보소스(1010)의 SSL 인증서 정보와 도메인 등록 정보와 요청된 데이터에 관련된 정보가 공유되면, 의원 오라클 노드(1030)들은 해당 정보소스(1010)가 신뢰할 수 있는지 여부에 관한 투표를 진행하여 기준값 이상의 찬성을 받는 경우 정보소스(1010)를 신뢰한다. In the third determination step, the
본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법의 신뢰도 판단단계(S1032)는, 신뢰도 판단단계(S1032)를 수행한 결과 신뢰할 수 없는 정보소스(1010)로 판단되는 경우 소스-블랙리스트에 신뢰할 수 없는 정보소스(1010)를 추가하는 소스-블랙리스트 추가 단계를 더 포함할 수 있다. 제1 내지 제3 판단단계 중에서 어느 하나의 단계를 통과하지 못하는 경우 해당 정보소스(1010)는 신뢰할 수 없으며, 신뢰할 수 없는 정보소스(1010)는 소스-블랙리스트에 추가된다. 소스-블랙리스트에 추가된 정보소스(1010)로부터 획득하는 데이터는 신뢰할 수 없으므로 다른 정보소스(1010)에서 데이터를 수집하도록 한다. 소스-블랙리스트에 등록된 정보소스(1010)는 정해진 기간이 경과하면 삭제될 수 있다. 이미 신뢰도 판단단계(S1032)를 통과하여 신뢰할 수 있는 정보소스(1010)로 인정된 경우 정해진 기간동안 신뢰도 판단단계(S1032)를 수행하지 않고 해당 정보소스(1010)에서 획득한 데이터를 신뢰할 수 있다. The reliability determination step (S1032) of the block chain application external information recognition and information provision method according to an embodiment of the present invention is determined as an unreliable information source (1010) as a result of performing the reliability determination step (S1032). - A source of adding the
도 5는 본 발명의 일실시예에 따른 신규 노드의 노드 신뢰도 검증단계를 나타내는 도면이다. 5 is a diagram illustrating a node reliability verification step of a new node according to an embodiment of the present invention.
오라클 블록체인 네트워크(1020)를 구성하는 오라클 노드(1030)는 추가되거나 이탈될 수 있다. 새로운 노드가 오라클 블록체인 네트워크(1020)에 합류하려는 경우 노드를 신뢰할 수 있는지 판단할 필요가 있다. 오라클 노드 신뢰도 판단단계(S1101~S1106)는 신규 노드가 오라클 블록체인 네트워크(1020)에 합류를 요청하는 경우 수행될 수 있다. 오라클 노드 신뢰도 판단단계(S1101~S1106)는 합류를 요청하는 신규 노드의 신뢰도를 판단하여 합류를 허가하거나 차단하는 과정이다.
오라클 노드 신뢰도 판단단계(S1101~S1106)는 오라클 블록체인 네트워크(1020)에 합류를 요청한 신규 노드의 신뢰도를 판단하기 위하여, 신규 노드의 단위시간당 증가량이 기준값을 초과하는 경우(S1101의 Y) 정해진 기간동안 신규 노드의 합류를 중지하고(S1105), 신규 노드에 이미 생성된 오라클 블록(1060a)이 존재하는 경우(S1102의 Y) 신뢰할 수 없는 노드로 판단하여 합류를 차단하고(S1105) 노드-블랙리스트에 추가하며(S1106), 신규 노드가 노드-블랙리스트에 포함된 경우(S1103의 Y) 합류를 차단(S1105)할 수 있다. In the Oracle node reliability determination step (S1101 ~ S1106), in order to determine the reliability of the new node that has requested to join the
악의적인 오라클 노드(1030)가 전체 네트워크 서버 과반수 이상이나 66% 이상을 차지하게 하여 데이터를 왜곡하거나 위변조하는 일명 과반수 공격을 시도하는 경우 신규 노드 숫자가 급격히 증가하게 된다. 과반수 이상의 오라클 노드(1030) 개수를 차지하는 경우 공격자는 오라클 블록체인(1060)을 바꿔치기하여 이득을 얻을 수 있다. 이런 공격을 하려면, 신규 노드가 오라클 블록체인 네트워크(1020)에 합류하기 전에 현재 메인 오라클 블록체인(1060)보다 더 긴 체인을 미리 만들어놓아야 한다. 따라서, 신규 노드가 합류하려는 시점에 미리 만들어놓은 오라클 블록체인(1060)이 있다면, 해킹 시도로 간주하고 접속을 차단해야 한다(S1102). 이러한 과반수 공격을 막기 위하여 오라클 블록체인 네트워크(1020)는 신규 노드 증가 속도를 제어할 수 있고(S1101), 미리 생성된 오라클 블록체인(1060)이 존재하는 신규 노드를 악의적 오라클 노드(1030)로 판단(S1102)하여 합류를 차단할 수 있다. When a
오라클 노드(1030) 개수의 급격한 증가 또는 선-저장 오라클 블록체인(1060)이 존재하는 공격을 행했거나, Antminer와 같이 옛날에 공격했던 전력이 있는 기관은 노드-블랙리스트에 추가될 수 있다. 또한 노드-블랙리스트에 추가된 기관은 관련 IP나 Domain을 차단할 수 있다. Organizations that have a history of attacking a sharp increase in the number of
신규 노드의 수가 갑자기 증가하는 것은 일반적이지 않은 현상이며, 기존에 오라클 블록체인 네트워크(1020)를 구성하고 있는 오라클 노드(1030)들의 수에 비하여 신규 노드가 급격히 증가하는 것은 악의적 오라클 노드(1030)가 합류할 가능성이 높아지는 것이므로, 정해진 기간동안 신규 노드의 합류를 중지할 수 있다(S1105). 신규 노드의 저장부(1033)에 오라클 블록(1060a)이 존재하는지 점검하고(S1102), 이미 생성되어 저장부(1033)에 저장되어 있는 오라클 블록(1060a)이 존재하는 경우 오라클 블록체인(1060)의 건전성을 훼손할 가능성이 있으므로 악의적 오라클 노드(1030)로 판단하여 합류를 차단할 수 있다. 악의적 오라클 노드(1030)로 판단되는 경우 노드-블랙리스트에 추가(S1106)하여 동일한 신규 노드가 계속하여 합류 요청을 수행하는 것을 차단할 수 있다. 이미 노드-블랙리스트에 포함되어 있는 신규 노드가 합류 요청을 하는 경우 악의적 노드의 합류를 곧바로 차단할 수 있다. A sudden increase in the number of new nodes is not a common phenomenon, and the sharp increase in the number of new nodes compared to the number of
오라클 블록체인 네트워크(1020)는 복수의 오라클 노드(1030)로 구성될 수 있다. 오라클 노드(1030)는 오라클 블록체인 프로그램 코드의 적어도 일부를 동작시키는 인클레이브(1032a)를 포함하며, 인클레이브(1032a) 내에서 오라클 노드 신뢰도 판단단계(S1101~S1106) 및 오라클 블록생성 합의과정이 수행될 수 있다. 오라클 노드(1030)의 제어부(1032)는 인클레이브(1032a)를 포함할 수 있다. 인클레이브(1032a)는 제어부(1032)에서 물리적/소프트웨어적으로 분리되어 외부의 접근이 불가능한 정보처리공간이다. 인클레이브(1032a)에서는 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법을 수행하는 프로그램 코드의 전부 또는 일부가 수행될 수 있다. 인클레이브(1032a)에서 동작한 프로그램 코드는 위조되거나 변조되지 않은 것으로 신뢰할 수 있고, 오라클 노드(1030)들 사이의 합의, 트랜잭션의 검증 등이 인클레이브(1032a)에서 수행될 수 있다. The
본 발명의 일실시예에 따른 단계들 중에서, 정보소스(1010)의 신뢰도를 판단하는 신뢰도 판단단계(S1032), 신규 노드의 합류여부를 결정하는 오라클 노드 신뢰도 판단단계(S1101~S1106), 데이터를 분산형 데이터 스토리지(1040)에 저장하는 저장단계(S1035) 및 데이터를 정보사용자(1050)에게 제공하는 제공단계(S1044)는 오라클 블록체인 네트워크(1020)를 구성하는 오라클 노드(1030)들 사이의 검증과 합의를 거쳐 수행될 수 있다. 오라클 블록체인 네트워크(1020)를 구성하는 오라클 노드(1030)들 사이의 검증과 합의는 오라클 블록체인 네트워크(1020) 운영부(1142)가 포함하는 프로그램 코드에 기초하여 수행될 수 있다. Among the steps according to an embodiment of the present invention, the reliability determination step (S1032) of determining the reliability of the
오라클 블록체인 네트워크(1020)는 비잔틴 장애 허용(BFT, Byzantine Fault Tolerance) 알고리즘에 기반한 합의 또는 투표를 수행할 수 있다. 오라클 블록체인 네트워크(1020)는 분산된 지분 증명(DPoS) 방식의 합의 또는 투표를 수행할 수 있다. 신뢰도 판단단계(S1032)가 시작되면, 오라클 노드(1030)들은 투표를 진행할 의원 오라클 노드(1030)를 선출한다(S1201). 데이터를 획득한 정보소스(1010)에 접근할 수 있는 정보(IP주소 등)가 의원 오라클 노드(1030)들 사이에 공유되면(S1202), 의원 오라클 노드(1030)들은 정보소스(1010)에 개별적으로 접근하여 제1 또는 제2 판단단계를 수행하고, 그 결과를 공유한다. 정보소스(1010)에 접근할 수 있는 정보가 의원 오라클 노드(1030)에 모두 공유되지 않으면 공유될 때까지 대기할 수 있다(S1205). 제1 또는 제2 판단단계를 수행한 결과 신뢰가능하다고 판단한 오라클 노드(1030)의 수가 기준값보다 많은 경우(S1203) 정보소스(1010)를 신뢰할 수 있는 것으로 판단할 수 있다(S1204). 또는, 신뢰가능하다고 판단한 오라클 노드(1030)의 수가 기준값보다 적은 경우(S1203), 합의 또는 투표는 실패한 것이며 정보소스(1010)를 신뢰할 수 없다고 판단하고 소스-블랙리스트에 기록할 수 있다(S1206). 합의가 실패하는 경우 공유된 데이터는 버려질 수 있다(S1206).The
동일한 방법으로, 오라클 노드 신뢰도 판단단계(S1101~S1106)가 수행될 수 있다. 오라클 노드 신뢰도 판단단계(S1101~S1106)가 시작되면 오라클 노드(1030)들은 의원 오라클 노드(1030)를 선출하고(S1201), 의원 오라클 노드(1030)는 시간당 오라클 노드(1030) 합류 요청의 수, 신규 노드에 미리 생성된 오라클 블록(1060a)이 있는지, 노드-블랙리스트에 등록된 악의적 노드인지 판단하고 그 결과를 공유하여(S1202), 신규 노드가 신뢰가능하다고 판단한 오라클 노드(1030)의 수가 기준값보다 많은 경우(S1203) 신규 노드를 합류처리할 수 있다(S1204). 신규 노드가 신뢰가능하다고 판단한 오라클 노드(1030)의 수가 기준값보다 적은 경우 합의 또는 투표가 실패한 것으로 판단하여(S1206) 신규 노드의 합류를 차단하고 신규 노드를 노드-블랙리스트에 등록할 수 있다. 소스-블랙리스트와 노드-블랙리스트는 공유될 수 있다. In the same way, the Oracle node reliability determination steps (S1101 to S1106) may be performed. When the Oracle node reliability determination step (S1101 ~ S1106) starts, the
저장 프로세스(S1030) 및 제공 프로세스(S1040)를 수행한 결과물은 저장내역(1061) 및 제공내역(1062)으로서 오라클 블록(1060a)에 저장되기 위하여 오라클 노드(1030)들에게 공유되고 검증된다. 오라클 노드(1030)들은 정해진 시간마다 저장내역(1061)이나 제공내역(1062)들을 포함하는 오라클 블록(1060a)을 생성하기 위한 검증 및 합의를 위임된 지분 증명(DPoS)방식으로 수행할 수 있다. The result of performing the storage process ( S1030 ) and the provision process ( S1040 ) is shared with the
상술한 바와 같이 본 발명의 일실시예에 따르면, 오라클 블록체인(1060)의 외부에 존재하는 데이터를 오라클 블록체인(1060)의 내부로 들여오고 오라클 블록체인(1060)의 내부에 저장된 데이터를 오라클 블록체인(1060)의 외부로 제공하는 양방향 데이터 교환을 제공할 수 있다. As described above, according to an embodiment of the present invention, data existing outside the
또한, 본 발명의 일실시예에 따르면, 데이터 교환시 데이터의 기밀성, 무결성, 정보사용자(1050)의 프라이버시를 보장할 수 있다. In addition, according to an embodiment of the present invention, data confidentiality, integrity, and privacy of the
또한, 본 발명의 일실시예에 따르면, 다양한 외부 데이터의 접근을 위한 데이터 획득, 저장, 처리, 스케쥴링을 오라클 블록체인 네트워크(1020)에서 수행할 수 있는 스마트 컨트랙트 오라클을 제공할 수 있다. In addition, according to an embodiment of the present invention, it is possible to provide a smart contract oracle that can perform data acquisition, storage, processing, and scheduling for access to various external data in the
이상 본 발명을 구체적인 실시예를 통하여 상세히 설명하였으나, 이는 본 발명을 구체적으로 설명하기 위한 것으로, 본 발명은 이에 한정되지 않으며, 본 발명의 기술적 사상 내에서 당해 분야의 통상의 지식을 가진 자에 의해 그 변형이나 개량이 가능함은 명백하다고 할 것이다. Although the present invention has been described in detail through specific examples, it is intended to describe the present invention in detail, and the present invention is not limited thereto, and by those of ordinary skill in the art within the technical spirit of the present invention It will be clear that the transformation or improvement is possible.
본 발명의 단순한 변형 내지 변경은 모두 본 발명의 영역에 속하는 것으로 본 발명의 구체적인 보호 범위는 첨부된 특허청구범위에 의하여 명확해질 것이다.All simple modifications or changes of the present invention fall within the scope of the present invention, and the specific scope of protection of the present invention will be made clear by the appended claims.
1010: 정보소스
1020: 오라클 블록체인 네트워크
1030: 오라클 노드
1031: 통신부
1032: 제어부
1032a: 인클레이브
1033: 저장부
1040: 분산형 데이터 스토리지
1050: 정보사용자
1060: 오라클 블록체인
1060a: 오라클 블록
1061: 저장내역
1062: 제공내역
1100: 프레임워크 구조
1110: 액세스 모듈
1111: API
1112: 파서
1113: 악의적 오라클 노드 방지 알고리즘
1114: BFT 합의 알고리즘
1120: 정보소스 검증모듈
1121: SSL 인증서 기반 신뢰판단모델
1122: Whois 기반 신뢰판단모델
1123: 투표 기반 신뢰판단모델
1130: 데이터 관리모듈
1131: 스케줄러
1132: 비식별화 알고리즘
1133: 암호화부
1140: 오라클 스마트 컨트랙트 모듈
1141: 데이터 저장 사용 기록 스마트 컨트랙트
1142: 오라클 블록체인 네트워크 운영부1010: information source
1020: Oracle Blockchain Network
1030: Oracle node
1031: communication department
1032: control unit
1032a: enclave
1033: storage
1040: Decentralized Data Storage
1050: information user
1060: Oracle Blockchain
1060a: Oracle Block
1061: save history
1062: Provided
1100: framework structure
1110: access module
1111: API
1112: parser
1113: Malicious Oracle Node Prevention Algorithm
1114: BFT consensus algorithm
1120: information source verification module
1121: SSL certificate-based trust judgment model
1122: Whois-based trust judgment model
1123: Voting-based trust judgment model
1130: data management module
1131: Scheduler
1132: De-identification algorithm
1133: encryption unit
1140: Oracle Smart Contract Module
1141: data storage usage history smart contract
1142: Oracle Blockchain Network Operations Department
Claims (8)
상기 저장 프로세스는
오라클 블록체인 네트워크의 외부에 존재하는 정보소스로부터 데이터를 획득하는 데이터 획득단계;
상기 정보소스의 신뢰 여부를 검증하여 상기 데이터의 신뢰도를 판단하는 신뢰도 판단단계;
상기 데이터를 파싱하는 파싱단계;
상기 데이터의 유형에 따른 보호를 부여하는 데이터 보호단계; 및
상기 데이터를 분산형 데이터 스토리지에 저장하면서 데이터 저장내역을 오라클 블록체인에 저장하는 저장단계를 포함하고,
상기 신뢰도 판단단계는
상기 정보소스가 제공하는 SSL 인증서를 이용하여 상기 정보소스의 신뢰여부를 판단하는 제1 판단단계,
상기 정보소스의 도메인에 기초하여 Whois 서비스를 통해 획득한 상기 정보소스의 도메인 등록 정보를 이용하여 상기 정보소스의 신뢰여부를 판단하는 제2 판단단계, 및
상기 정보소스의 신뢰여부에 관하여 위임된 지분 증명 방식의 오라클 노드 투표를 진행하고 오라클 노드 투표에 기초하여 상기 정보소스의 신뢰여부를 판단하는 제3 판단단계 중에서 적어도 하나를 수행하는, 블록체인 응용 외부 정보 인식 및 정보 제공방법.It involves the storage process of obtaining data from outside the Oracle blockchain network,
The storage process is
A data acquisition step of acquiring data from an information source existing outside the Oracle blockchain network;
a reliability determination step of determining reliability of the data by verifying whether the information source is trustworthy;
a parsing step of parsing the data;
a data protection step of granting protection according to the data type; and
A storage step of storing the data storage details in the Oracle blockchain while storing the data in distributed data storage,
The reliability determination step is
A first determination step of determining whether the information source is trusted by using the SSL certificate provided by the information source;
a second determination step of judging whether the information source is trusted by using the domain registration information of the information source acquired through the Whois service based on the domain of the information source; and
Outside the blockchain application, which performs at least one of the third judgment step of determining whether the information source is trusted or not, by conducting a delegated proof-of-stake method oracle node vote on whether the information source is trustworthy and determining whether the information source is trusted based on the Oracle node vote How to recognize and provide information.
상기 분산형 데이터 스토리지에 존재하는 데이터를 제공하는 제공 프로세스를 더 포함하며,
상기 제공 프로세스는 상기 저장 프로세스가 수행된 다음에 수행되고,
상기 제공 프로세스는
상기 오라클 블록체인 네트워크의 내부 또는 외부로부터 수신된 데이터 공급 요청에 의해 요청된 데이터를 상기 분산형 데이터 스토리지로부터 획득하는 로딩단계;
상기 요청된 데이터에 부여된 보호를 제거 또는 변경하는 보호 변경단계;
상기 데이터 공급 요청에 기초하여, 상기 요청된 데이터를 필요한 형식으로 정리하는 재구성단계; 및
상기 요청된 데이터를 제공하고 데이터 제공내역을 상기 오라클 블록체인에 저장하는 제공단계를 포함하는, 블록체인 응용 외부 정보 인식 및 정보 제공방법.The method according to claim 1,
A providing process for providing data residing in the distributed data storage,
the providing process is performed after the storing process is performed;
The provision process is
a loading step of acquiring data requested by a data supply request received from inside or outside the Oracle blockchain network from the distributed data storage;
a protection change step of removing or changing protection granted to the requested data;
a reconfiguration step of organizing the requested data into a required format based on the data supply request; and
A method for recognizing and providing information outside of a blockchain application, comprising a providing step of providing the requested data and storing the data provision details in the Oracle blockchain.
상기 요청된 데이터가 상기 분산형 데이터 스토리지에 존재하는지 여부를 상기 데이터 저장내역을 검색하여 판단하고, 상기 요청된 데이터가 상기 분산형 데이터 스토리지에 존재하는 경우 상기 제공 프로세스를 수행하고, 상기 요청된 데이터가 상기 분산형 데이터 스토리지에 존재하지 않는 경우 상기 저장 프로세스를 수행하는 요청판단 단계를 더 포함하는, 블록체인 응용 외부 정보 인식 및 정보 제공방법.3. The method according to claim 2,
Searching the data storage details to determine whether the requested data exists in the distributed data storage, performing the providing process if the requested data exists in the distributed data storage, and performing the requested data A method for recognizing and providing information external to a blockchain application, further comprising a request determination step of performing the storage process when it does not exist in the distributed data storage.
상기 신뢰도 판단단계를 수행한 결과 신뢰할 수 없는 정보소스로 판단되는 경우 소스-블랙리스트에 상기 신뢰할 수 없는 정보소스를 추가하는 소스-블랙리스트 추가 단계를 더 포함하는, 블록체인 응용 외부 정보 인식 및 정보 제공방법.The method according to claim 1,
When it is determined as an unreliable information source as a result of performing the reliability determination step, the source-blacklist addition step of adding the unreliable information source to the source-blacklist further comprises, external information recognition and information of a block chain application How to provide.
상기 오라클 블록체인 네트워크에 합류를 요청한 신규 노드의 신뢰도를 판단하기 위하여, 상기 신규 노드의 단위시간당 증가량이 기준값을 초과하는 경우 정해진 기간동안 신규 노드의 합류를 중지하고, 상기 신규 노드에 생성된 오라클 블록이 존재하는 경우 신뢰할 수 없는 노드로 판단하여 합류를 차단하고 노드-블랙리스트에 추가하며, 상기 신규 노드가 상기 노드-블랙리스트에 포함된 경우 합류를 차단하는, 오라클 노드 신뢰도 판단단계를 더 포함하는, 블록체인 응용 외부 정보 인식 및 정보 제공방법.The method according to claim 1,
In order to determine the reliability of the new node that has requested to join the Oracle blockchain network, if the increase per unit time of the new node exceeds the reference value, the new node stops joining for a predetermined period, and the oracle block created in the new node If the node exists, it is determined that it is an untrusted node, blocks the joining, and adds it to the node-blacklist, and further comprising an Oracle node reliability determination step of blocking the joining when the new node is included in the node-blacklist. , a method of recognizing and providing information outside of blockchain applications.
상기 오라클 블록체인 네트워크는 복수의 오라클 노드로 구성되며,
상기 오라클 노드는
상기 오라클 블록체인 프로그램 코드의 적어도 일부를 동작시키는 인클레이브를 포함하며, 상기 인클레이브 내에서 상기 오라클 노드 신뢰도 판단단계 및 오라클 블록생성 합의과정이 수행되는, 블록체인 응용 외부 정보 인식 및 정보 제공방법.The method according to claim 1,
The Oracle blockchain network consists of a plurality of oracle nodes,
The Oracle node is
A method for recognizing and providing information outside of a blockchain application, comprising an enclave that operates at least a part of the Oracle blockchain program code, wherein the Oracle node reliability determination step and the Oracle block generation consensus process are performed within the enclave.
상기 데이터 보호단계는
상기 데이터에서 개인정보에 해당하는 정보를 익명화하거나 삭제하거나 필요한 데이터만을 범주화 또는 총계처리하는 비식별화를 수행하고, 필요한 경우 비식별화가 수행된 데이터를 암호화하는 것인, 블록체인 응용 외부 정보 인식 및 정보 제공방법.The method according to claim 1,
The data protection step is
In the above data, de-identification of anonymizing or deleting information corresponding to personal information or categorizing or totaling only necessary data, and encrypting the de-identified data if necessary, recognition of external information and HOW TO PROVIDE INFORMATION.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190143555A KR102337836B1 (en) | 2019-11-11 | 2019-11-11 | External information recognizing and information providing method using blockchain |
PCT/KR2019/015544 WO2021095926A1 (en) | 2019-11-11 | 2019-11-14 | Complex iot device and sharing service providing method using same, and method for recognizing external information through blockchain application and providing information |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190143555A KR102337836B1 (en) | 2019-11-11 | 2019-11-11 | External information recognizing and information providing method using blockchain |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210056744A KR20210056744A (en) | 2021-05-20 |
KR102337836B1 true KR102337836B1 (en) | 2021-12-10 |
Family
ID=76143160
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190143555A KR102337836B1 (en) | 2019-11-11 | 2019-11-11 | External information recognizing and information providing method using blockchain |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102337836B1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102391187B1 (en) * | 2021-11-24 | 2022-04-28 | 엘에스웨어(주) | Method and system for recording feedback data |
KR102391185B1 (en) * | 2021-11-24 | 2022-04-28 | 엘에스웨어(주) | Method and system for verifying external input |
CN116842559A (en) * | 2023-06-07 | 2023-10-03 | 陕西手一网络科技有限公司 | Data encryption storage model and data encryption storage method based on blockchain |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180130061A1 (en) | 2015-11-11 | 2018-05-10 | Idm Global, Inc. | Systems and methods for detecting relations between unknown merchants and merchants with a known connection to fraud |
WO2019116248A1 (en) * | 2017-12-15 | 2019-06-20 | nChain Holdings Limited | System and method for authenticating off-chain data based on proof verification |
KR102041911B1 (en) | 2019-07-30 | 2019-11-27 | 주식회사 바스랩 | Method for data split and distributed storage using blockchain |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102050007B1 (en) | 2017-03-07 | 2020-01-08 | 서강대학교산학협력단 | System and method for supporting external interface based on block chain |
CN107239479B (en) * | 2017-03-28 | 2020-03-13 | 创新先进技术有限公司 | Block chain based data storage and query method and device |
KR102123320B1 (en) * | 2018-05-24 | 2020-06-16 | 주식회사 한컴위드 | Smart Contract System and Smart Contract method |
-
2019
- 2019-11-11 KR KR1020190143555A patent/KR102337836B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180130061A1 (en) | 2015-11-11 | 2018-05-10 | Idm Global, Inc. | Systems and methods for detecting relations between unknown merchants and merchants with a known connection to fraud |
WO2019116248A1 (en) * | 2017-12-15 | 2019-06-20 | nChain Holdings Limited | System and method for authenticating off-chain data based on proof verification |
KR102041911B1 (en) | 2019-07-30 | 2019-11-27 | 주식회사 바스랩 | Method for data split and distributed storage using blockchain |
Also Published As
Publication number | Publication date |
---|---|
KR20210056744A (en) | 2021-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3547202B1 (en) | Method for access to anonymised data | |
US10789373B2 (en) | System and method for securely storing and sharing information | |
US11818251B2 (en) | System and method for securely storing and sharing information | |
van Beek et al. | Digital forensics as a service: Game on | |
Khaloufi et al. | Security model for big healthcare data lifecycle | |
US11431757B2 (en) | Access control using impersonization | |
KR102337836B1 (en) | External information recognizing and information providing method using blockchain | |
Razaque et al. | Privacy preserving model: a new scheme for auditing cloud stakeholders | |
US20140095866A1 (en) | System and method for verification of digital certificates | |
CN110753944B (en) | System and method for blockchain-based data management | |
JP6785808B2 (en) | Policy forced delay | |
Moussa et al. | CFaaS: bilaterally agreed evidence collection | |
US9521000B1 (en) | Complete forward access sessions | |
US20160239683A1 (en) | System and method for securely storing files | |
Vithanwattana et al. | Developing a comprehensive information security framework for mHealth: a detailed analysis | |
JP2006506749A (en) | Method and apparatus for protection processing of confidential data | |
US20220405765A1 (en) | Know your customer (kyc) and anti-money laundering (aml) verification in a multi-decentralized private blockchains network | |
Ali et al. | BCALS: Blockchain‐based secure log management system for cloud computing | |
Barbaria et al. | A novel blockchain-based architectural modal for healthcare data integrity: Covid19 screening laboratory use-case | |
Patruni et al. | Securing Internet of Things devices by enabling Ethereum blockchain using smart contracts | |
Mounnan et al. | Decentralized access control infrastructure using blockchain for big data | |
US11144657B2 (en) | System and method of providing a secure inter-domain data management using blockchain technology | |
Elgamal et al. | Blockchain in healthcare for achieving patients’ privacy | |
US11783342B1 (en) | Blockchain blacklist anti-money laundering system (BBAMLS) | |
Tran | A Systematic Literature Review on Secure IoT Data Sharing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |