KR102337836B1 - External information recognizing and information providing method using blockchain - Google Patents

External information recognizing and information providing method using blockchain Download PDF

Info

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
Application number
KR1020190143555A
Other languages
Korean (ko)
Other versions
KR20210056744A (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 KR1020190143555A priority Critical patent/KR102337836B1/en
Priority to PCT/KR2019/015544 priority patent/WO2021095926A1/en
Publication of KR20210056744A publication Critical patent/KR20210056744A/en
Application granted granted Critical
Publication of KR102337836B1 publication Critical patent/KR102337836B1/en

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing 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.

Figure R1020190143555
Figure R1020190143555

Description

블록체인 응용 외부 정보 인식 및 정보 제공방법{External information recognizing and information providing method using blockchain}External information recognizing and information providing method using blockchain}

본 발명은 블록체인 응용 외부 정보 인식 및 정보 제공방법에 관한 것이다.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.

KR 10-2018-0102269 AKR 10-2018-0102269 A

본 발명의 일실시예에 따른 목적은, 오라클 블록체인이 외부 시스템과 정보 교환시 데이터의 기밀성과 무결성을 보장하기 위한 것이다.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 blockchain network 1020 that performs a method for recognizing and providing information outside a blockchain application according to an embodiment of the present invention.

본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법은 오라클 블록체인 네트워크(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 oracle nodes 1030 constituting the oracle block chain network 1020 . The Oracle blockchain network 1020 performs a method of recognizing and providing information external to a blockchain application, and acquires data from an information source 1010 existing outside the Oracle blockchain network 1020 to provide a distributed data storage (1040). ), and upon receiving a data request, the data stored in the distributed data storage 1040 may be provided to the information user 1050 .

오라클 블록체인 네트워크(1020)는 복수의 오라클 노드(1030)가 피어 투 피어(P2P, Peer to Peer) 방식으로 연결된 네트워크이다. 오라클 블록체인 네트워크(1020)는 복수의 오라클 노드(1030)들 사이의 정보처리와 각 오라클 노드(1030)의 정보처리에 기초하여 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법을 수행할 수 있다. The Oracle blockchain network 1020 is a network in which a plurality of Oracle nodes 1030 are connected in a peer-to-peer (P2P, Peer to Peer) manner. The oracle blockchain network 1020 recognizes and provides information outside the blockchain application according to an embodiment of the present invention based on information processing between a plurality of oracle nodes 1030 and information processing of each oracle node 1030 method can be performed.

오라클 노드(1030)는 통신부(1031), 제어부(1032), 저장부(1033)를 포함할 수 있다. 오라클 노드(1030)는 서버 컴퓨터, PC, 노트북 PC, 태블릿 PC, 스마트폰 등의 정보처리장치를 포함한다. 통신부(1031)는 오라클 노드(1030)와 다른 오라클 노드(1030) 사이에서 데이터를 송수신하여 오라클 블록체인 네트워크(1020)의 연결을 수행할 수 있다. 저장부(1033)는 오라클 블록체인(1060)의 전부 또는 일부를 저장할 수 있다. 저장부(1033)는 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법을 수행하는 프로그램 코드를 저장할 수 있다. 제어부(1032)는 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법을 수행하는 프로그램 코드를 실시할 수 있는 프로세서(processor)를 포함할 수 있다. The Oracle node 1030 may include a communication unit 1031 , a control unit 1032 , and a storage unit 1033 . The Oracle node 1030 includes an information processing device such as a server computer, a PC, a notebook PC, a tablet PC, and a smart phone. The communication unit 1031 may transmit and receive data between the oracle node 1030 and another oracle node 1030 to connect the oracle block chain network 1020 . The storage unit 1033 may store all or part of the Oracle blockchain 1060 . The storage unit 1033 may store a program code for performing a method for recognizing and providing information external to a block chain application according to an embodiment of the present invention. The control unit 1032 may include a processor capable of executing 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.

오라클 블록체인(1060)은 이전 오라클 블록(1060a)의 해시값을 자기 오라클 블록(1060a)의 구성으로 포함하는 오라클 블록(1060a)들의 연속적인 연결로 구성될 수 있다. 오라클 블록(1060a)은 이전 오라클 블록(1060a)의 해시값과 데이터를 저장하는 저장공간을 포함한다. 오라클 블록체인(1060)은 오라클 블록체인 네트워크(1020)를 구성하는 복수의 오라클 노드(1030)에 각각 저장되고, 복수의 오라클 노드(1030)에 저장된 오라클 블록체인(1060)들은 서로 동일한 데이터를 갖는다. 오라클 블록(1060a)의 저장공간에는 저장내역(1061) 및 제공내역(1062)이 저장될 수 있다. 저장내역(1061)은 오라클 블록체인 네트워크(1020)가 정보소스(1010)로부터 데이터를 획득하고 검증하여 저장하는 저장 프로세스(S1030)의 수행결과를 포함할 수 있다. 제공내역(1062)은 오라클 블록체인 네트워크(1020)가 정보사용자(1050)에게 데이터 요청을 수신하고 데이터를 제공하는 제공 프로세스(S1040)의 수행결과를 포함할 수 있다. The oracle block chain 1060 may be composed of a continuous connection of the oracle blocks 1060a including the hash value of the previous oracle block 1060a as a configuration of the own oracle block 1060a. The Oracle block 1060a includes a storage space for storing the hash value and data of the previous Oracle block 1060a. The Oracle blockchain 1060 is stored in a plurality of oracle nodes 1030 constituting the Oracle blockchain network 1020, respectively, and the Oracle blockchains 1060 stored in the plurality of oracle nodes 1030 have the same data. . A storage history 1061 and a provision history 1062 may be stored in the storage space of the Oracle block 1060a. The storage history 1061 may include the result of the storage process ( S1030 ) in which the Oracle blockchain network 1020 acquires, verifies, and stores data from the information source 1010 . The provision details 1062 may include the results of the provision process ( S1040 ) in which the Oracle blockchain network 1020 receives a data request to the information user 1050 and provides data.

정보소스(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 blockchain network 1020 and refers to a device capable of providing data. The information source 1010 may include a web server, cloud storage, database, an external blockchain network other than the Oracle blockchain network 1020 according to an embodiment of the present invention (Ethereum, EOS, etc.), IoT devices, etc. have. The IoT device may be a composite IoT device that is connected to a shared resource and includes a lock function to allow or block a user's access, and a gateway module that can detect the presence of a person using the shared resource. The information source 1010 may be a payment institution that brokers financial services or may be various types of data providers. The Oracle node 1030 constituting the Oracle blockchain network 1020 may collect data by accessing the information source 1010 .

정보사용자(1050)는 오라클 블록체인 네트워크(1020)를 구성하는 오라클 노드(1030)에 필요한 데이터를 요청하고 요청한 데이터를 수신하여 이용하는 주체를 말한다. 정보사용자(1050)는 오라클 블록체인 네트워크(1020)의 내부에서 동작하는 다양한 스마트 컨트랙트 계정들(Accounts), 오라클 블록체인 네트워크(1020)의 외부에 존재하는 다른 블록체인 네트워크(이더리움, 이오스 등), 오라클 블록체인 네트워크(1020)의 임의의 오라클 노드(1030)에 접속하여 데이터를 요청하는 개인 정보사용자(1050)들의 단말장치를 포함할 수 있다.The information user 1050 refers to a subject who requests data required for the Oracle node 1030 constituting the Oracle blockchain network 1020 and receives and uses the requested data. The information user 1050 has various smart contract accounts (Accounts) operating inside the Oracle blockchain network 1020, and other blockchain networks (Ethereum, EOS, etc.) that exist outside the Oracle blockchain network 1020. , may include terminal devices of personal information users 1050 requesting data by accessing any Oracle node 1030 of the Oracle blockchain network 1020 .

오라클 블록체인 네트워크(1020)는 정보소스(1010)로부터 데이터를 제공받을 수 있다. 그리고, 오라클 블록체인 네트워크(1020)는 정보사용자(1050)로부터 데이터 요청을 받으면 요청받은 데이터를 정보사용자(1050)에게 제공할 수 있다. 이때, 정보소스(1010)와 정보사용자(1050)는 오라클 블록체인 네트워크(1020) 외부의 동일한 대상일 수 있다. 즉, 정보소스(1010)는 오라클 블록체인 네트워크(1020)에 데이터를 제공할 수도 있고, 정보소스(1010)는 데이터가 필요한 경우 오라클 블록체인 네트워크(1020)에 데이터를 요청하는 정보사용자(1050)가 될 수도 있다. 예를 들어, 이더리움 블록체인 네트워크는 오라클 블록체인 네트워크(1020)에 데이터를 제공하는 정보소스(1010)일 수도 있고, 이더리움 블록체인 네트워크가 필요한 정보를 오라클 블록체인 네트워크(1020)에 요청하고 오라클 블록체인 네트워크(1020)로부터 필요한 정보를 제공받는 정보사용자(1050)일 수도 있다.The Oracle blockchain network 1020 may receive data from the information source 1010 . In addition, when receiving a data request from the information user 1050 , the Oracle blockchain network 1020 may provide the requested data to the information user 1050 . In this case, the information source 1010 and the information user 1050 may be the same object outside the Oracle blockchain network 1020 . That is, the information source 1010 may provide data to the Oracle blockchain network 1020, and the information source 1010 is an information user 1050 who requests data from the Oracle blockchain network 1020 when data is needed. may be For example, the Ethereum blockchain network may be an information source 1010 that provides data to the Oracle blockchain network 1020, and the Ethereum blockchain network requests the necessary information to the Oracle blockchain network 1020 and It may be an information user 1050 who receives necessary information from the Oracle blockchain network 1020 .

분산형 데이터 스토리지(1040)는 오라클 블록체인(1060) 기반의 데이터 분산 저장 시스템이다. 분산형 데이터 스토리지(1040)는 데이터를 복수의 조각으로 분할하여 분산형 데이터 스토리지(1040)를 구성하는 노드들의 저장공간에 분산 저장하고, 데이터의 저장내역(1061)과 이용을 오라클 블록체인(1060)에 기록하는 IPFS(Interplanetary File Storage), Corda 등의 분산 저장 방식이 사용될 수 있다. 분산형 데이터 스토리지(1040)는 오라클 블록체인 네트워크(1020)로부터 수신한 데이터를 저장하고, 오라클 블록체인 네트워크(1020)로부터 요청된 데이터를 전송한다. The distributed data storage 1040 is a data distributed storage system based on the Oracle blockchain 1060 . The distributed data storage 1040 divides the data into a plurality of pieces and stores them distributedly in the storage space of the nodes constituting the distributed data storage 1040, and the storage details 1061 and use of the data are stored in the Oracle blockchain 1060 ), a distributed storage method such as IPFS (Interplanetary File Storage), Corda, etc. may be used. The distributed data storage 1040 stores data received from the Oracle blockchain network 1020 and transmits data requested from the Oracle blockchain network 1020 .

도 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 framework structure 1100 of the program code for performing 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 information source 1010 existing outside of the Oracle block chain network 1020 . Data acquisition step (S1031), reliability determination step (S1032) of determining the reliability of data by verifying whether the information source 1010 is trustworthy, parsing step of parsing data (S1033), granting protection according to the type of data It may include a data protection step ( S1034 ) and a storage step ( S1035 ) of storing the data storage details 1061 in the Oracle blockchain 1060 while storing the data in the distributed data storage 1040 .

그리고, 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법은, 오라클 블록체인 네트워크(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 block chain network 1020 is loaded from the distributed data storage 1040 Step S1041, a protection change step S1042 of removing or changing the protection granted to the requested data, a reconfiguration step of organizing the requested data into a required format based on the data supply request (S1043), and the requested data It may further include a providing step (S1044) of providing and storing the data provision details 1062 in the Oracle block chain 1060.

도 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 access module 1110 includes an API 1111 , a Parser 1112 , an Malicious Oracle Node Prevention Algorithm 1113 , and a BFT Consensus Algorithm 1114 . The information source verification module 1120 includes an SSL certificate-based trust decision model 1121 , a Whois-based trust decision model 1122 , and a vote-based trust decision model 1123 . The data management module 1130 includes a scheduler 1131 , a de-identification algorithm 1132 , and an encryption unit 1133 . The Oracle smart contract module 1140 includes a data storage usage record smart contract 1141 and an Oracle blockchain network operation unit 1142 .

도 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 Oracle node 1030 of the Oracle blockchain network 1020 receives a data request from the information user 1050 . The data request includes information on data required by the information user 1050, and may include whether data that only a predetermined information user 1050 should access. The data request may be received through the API 1111 of the access module 1110 . The API 1111 may utilize a Restful API or an SDK API. The API 1111 may be connected to the information source 1010 to receive data, and may be connected to the information user 1050 to provide a channel for requesting and receiving data.

데이터 요청을 수신한 오라클 노드(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 Oracle node 1030 performs a request determination step (S1020) of determining whether the requested data exists in the distributed data storage 1040. In the request determination step (S1020), it is determined whether the requested data exists in the distributed data storage 1040 by searching the data storage history 1061, and when the requested data exists in the distributed data storage 1040 A loading step S1041 is performed to start the providing process S1040, and a data acquisition step S1031 is performed to perform a storage process S1030 when the requested data does not exist in the distributed data storage 1040. carry out The storage process (S1030) is a process of acquiring data that does not exist in the distributed data storage 1040 and the Oracle blockchain network 1020 from the information source 1010 existing outside the Oracle blockchain network 1020. The providing process ( S1040 ) is a process of providing data existing in the distributed data storage 1040 to the information user 1050 .

요청 판단단계(S1020)에서 오라클 노드(1030)는 오라클 블록체인(1060)에 저장된 저장내역(1061)을 검색하여 요청된 데이터와 이미 저장된 데이터의 일치 여부를 판단하여 요청된 데이터의 존재 여부를 판단할 수 있다. 저장내역(1061)은 데이터의 종류, 이름, 획득한 정보소스(1010)의 이름, 보호 부여 내용, 획득 시간, 정보소스(1010)의 신뢰도 판단 정보, 분산형 데이터 스토리지(1040)의 저장 위치 정보 등을 포함할 수 있다. 저장내역(1061)은 오라클 노드(1030)의 저장부(1033)에 저장된 오라클 블록체인(1060)에 저장되어 있으므로 요청 판단단계(S1020)는 오라클 블록체인 네트워크(1020)의 합의나 검증과정을 거치지 않고 동작할 수 있다. In the request determination step (S1020), the Oracle node 1030 searches the storage history 1061 stored in the Oracle blockchain 1060 and determines whether the requested data matches the already stored data to determine whether the requested data exists can do. The storage history 1061 includes data type, name, name of the acquired information source 1010, protection granted content, acquisition time, reliability determination information of the information source 1010, and storage location information of the distributed data storage 1040 and the like. Since the storage history 1061 is stored in the Oracle blockchain 1060 stored in the storage unit 1033 of the Oracle node 1030, the request determination step (S1020) does not go through the consensus or verification process of the Oracle blockchain network 1020. can work without

요청된 데이터가 분산형 데이터 스토리지(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 data storage 1040, a storage process (S1030) is performed to bring the requested data into the Oracle blockchain network 1020. The data acquisition step (S1031) is to acquire data from the information source 1010 existing outside the Oracle blockchain network 1020. An applied data collection method may vary depending on the type of the information source 1010 . A data collection method may be different when the information source 1010 is an external blockchain network and an external device other than the blockchain network. For example, if the information source 1010 is an EOS blockchain network, the EOS blockchain network stores data in a table manner, so data is collected by reading the table, and the information source 1010 is an Ethereum block. In the case of a chain network, data can be collected using the View function provided by the Ethereum blockchain network. In this case, when the Oracle blockchain network 1020 acquires data from the information source 1010 , only data according to the request of the information user 1050 may be selectively collected.

데이터 획득단계(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 Oracle node 1030 receiving the data request accesses the data of the information source 1010 through the API 1111 . The oracle node 1030 searches whether the requested data exists in the information source 1010, and if the data exists, retrieves the data. The scheduler 1131 of the data management module 1130 may manage a schedule for collecting data to be regularly collected. The scheduler 1131 may operate a storage process ( S1130 ) to collect data when a predetermined time comes.

정보소스(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 information source 1010, a reliability determination step (S1032) is performed to determine the reliability of the data. In the reliability determination step (S1032), the Oracle blockchain network 1020 determines the reliability of the data provided by the information source 1010 by determining the reliability of the information source 1010 itself. The information source 1010 generates or receives the results performed, generated, or determined in the real world that exists outside the Oracle blockchain network 1020 in a data format that a computer device can recognize, and provides them, and the World Wide Web (WWW) ), etc., provides result data performed, generated, or determined in the network. Since the information source 1010 exists based on a physical computer device, the reliability of the information source 1010 can be determined by verifying information on a real subject providing information using the physical computer device. The reliability determination step (S1032) is a process of verifying information about the information source 1010 itself provided by the information source 1010 to the Oracle blockchain network 1020. That is, the reliability determination step (S1032) determines who the subject operating the information source 1010 is, whether the subject operating the information source 1010 exists, and whether the subject operating the information source 1010 can be trusted in the real world. It is judged whether the verification has been passed or not. The reliability determination step (S1032) may be omitted when it is determined that the information source 1010 is already reliable. The reliability determination step ( S1032 ) may be performed to determine the reliability of the information source 1010 again when a predetermined period has elapsed after it is determined that the information source 1010 is reliable.

정보소스(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 information source 1010 is reliable, a parsing step S1033 is performed. The parsing step (S1033) is to parse the data obtained from the information source (1010). The parsing step ( S1033 ) may be performed by the parser 1112 of the access module 1110 . The parser 1112 may analyze the data obtained from the information source 1010 and classify the data by detailed type. The parser 1112 may classify detailed data by applying various syntax analysis algorithms according to the type of data obtained from the information source 1010 . For example, when data "A to B 1000 EOS" is obtained from the information source 1010 of the EOS oracle block chain 1060, the parser 1112 reads "Serial number = XXX1", "Sender = A", " Recipient = B", "Amount = 1000", "Unit = EOS" can classify detailed data and determine the type of detailed data.

데이터 파싱을 수행한 다음, 데이터 보호단계(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 information user 1050 who requested the data can access it. Protections that can be granted to data include anonymization, categorization, aggregation, encryption, and the like.

익명화, 범주화, 총계처리는 데이터 관리모듈(1130)의 비식별화 알고리즘(1132)을 통해 수행될 수 있다. 익명화는 데이터에 포함된 사람의 성명을 인식할 수 없도록 일부나 전부를 변형하거나 제거하는 것이다. 예를 들어, "홍길동"이라는 이름을 "홍*동"으로 일부를 변형하거나, "고객 1"과 같이 전부를 변형할 수 있다. 총계처리는 특정 항목의 값이 복수개 존재하는 경우 총액을 계산하는 것이다. 예를 들어, "홍*동"의 거래 횟수가 "20회/40회/10회"인 경우 총 거래 횟수가 "70회"인 것으로 집계할 수 있다. 범주화는 특정 값이 포함되는 범위에 따라 집계하는 것이다. 예를 들어, "홍*동"의 거래 횟수가 "13회"인 경우 미리 정해진 범위인 "10~20회"로 집계할 수 있다. Anonymization, categorization, and total processing may be performed through the de-identification algorithm 1132 of the data management module 1130 . Anonymization is the transformation or removal of some or all of the names of persons contained in data so that they cannot be recognized. For example, the name "Hong Gil-dong" can be partially changed to "Hong*dong", or all can be changed to "Customer 1". Total processing is to calculate the total amount when there are multiple values of a specific item. For example, if the number of transactions of “Hong*Dong” is “20/40/10”, the total number of transactions may be counted as “70”. Categorization is aggregation according to the range in which a particular value is included. For example, if the number of transactions of "Hong*Dong" is "13", it can be counted as "10 to 20", which is a predetermined range.

암호화는 정해진 정보사용자(1050)만이 데이터를 열람할 수 있도록 암호화하는 것이다. 암호화는 데이터 관리모듈(1130)의 암호화부(1133)에서 수행될 수 있다. 암호화는 정보사용자(1050)의 공개키를 수신하는 단계, 정보사용자(1050)의 공개키를 이용하여 데이터를 암호화하는 단계로 수행될 수 있다. 암호화는 정보사용자(1050)의 공개키를 이용하여 대칭키를 암호화하고 대칭키를 이용하여 데이터를 암호화한 다음 암호화된 대칭키와 데이터를 함께 저장하거나 제공하는 방식으로 수행될 수도 있다. 개인정보 보호가 불필요하거나 공개되어도 무방한 데이터인 경우 데이터 보호단계(S1034)에서 보호를 부여하지 않을 수 있다. Encryption is to encrypt data so that only a predetermined information user 1050 can read the data. Encryption may be performed by the encryption unit 1133 of the data management module 1130 . Encryption may be performed by receiving the public key of the information user 1050 and encrypting data using the public key of the information user 1050 . Encryption may be performed by encrypting a symmetric key using the public key of the information user 1050, encrypting data using the symmetric key, and then storing or providing the encrypted symmetric key and data together. If personal information protection is unnecessary or data that can be disclosed, protection may not be granted in the data protection step ( S1034 ).

보호단계를 수행한 데이터는 오라클 블록체인 네트워크(1020)를 구성하는 오라클 노드(1030)들에 공유되어 합의를 거친다. The data that has undergone the protection step is shared with the Oracle nodes 1030 constituting the Oracle blockchain network 1020 and agreed upon.

데이터 보호단계(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 data storage details 1061 in the Oracle blockchain 1060 while storing the data in the distributed data storage 1040 . In the data storage step (S1035), the operation of storing the data storage details 1061 in the Oracle blockchain 1060 may be performed according to the data storage usage record smart contract 1141 of the Oracle smart contract module 1140. The data storage usage record smart contract 1141 may perform an operation to store data in the distributed data storage 1040 and an operation to store the storage history 1061 in the Oracle blockchain 1060 . When the Oracle smart contract module 1140 performs an operation of providing data to the distributed data storage 1040 , the distributed data storage 1040 may store the received data.

오라클 스마트 컨트랙트 모듈(1140)은 저장내역(1061) 및 제공내역(1062)을 기록하여 관리할 수 있다. 오라클 스마트 컨트랙트 모듈(1140)은 데이터 관리를 위하여 내부에 테이블을 정의하여 모든 저장내역(1061) 및 제공내역(1062)을 기록하여 관리하고, 데이터 저장 및 제공 내역을 업데이트할 수 있다. 저장내역(1061) 및 제공내역(1062)은 BFT 등의 합의 알고리즘에 따라 오라클 블록체인 네트워크(1020)에 참여한 적어도 일부의 오라클 노드(1030)들에 공유되고 검증되어 합의에 따라 오라클 블록(1060a)의 저장공간에 저장될 수 있다. The Oracle smart contract module 1140 may record and manage the storage history 1061 and the provision history 1062 . Oracle smart contract module 1140 defines a table therein for data management, records and manages all storage details 1061 and provision details 1062, and can update data storage and provision details. The storage history 1061 and the provision history 1062 are shared and verified by at least some Oracle nodes 1030 participating in the Oracle blockchain network 1020 according to a consensus algorithm such as BFT, and according to the agreement, the Oracle block 1060a can be stored in the storage space of

데이터는 다양한 크기를 가질 수 있다. 오라클 블록(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 Oracle block 1060a , the data may be stored in the distributed data storage 1040 . The distributed data storage 1040 may secure the integrity of the file by managing the storage of the file based on the block chain. The distributed data storage 1040 receives a data storage request from the Oracle blockchain network 1020 through the API 1111, selects a category suitable for the data, and then indexes the data, and stores the data in the distributed data storage 1040. After sharing with some of the nodes constituting its own blockchain network, it is recorded in the storage medium of the shared node.

요청된 데이터가 분산형 데이터 스토리지(1040)에 존재하는 경우 또는 저장단계(S1035)를 수행한 경우, 요청된 데이터에 해당하는 데이터를 정보사용자(1050)에게 제공하는 제공 프로세스(S1040)를 수행하기 위하여 로딩단계(S1041)를 수행한다. 로딩단계(S1041)는 오라클 블록체인 네트워크(1020)의 내부 또는 외부로부터 요청된 데이터를 분산형 데이터 스토리지(1040)로부터 획득하는 것이다. 저장내역(1061)은 분산형 데이터 스토리지(1040)에서 데이터가 저장된 위치에 관련된 정보를 포함하고 있으므로, 저장내역(1061)에 기초하여 요청된 데이터를 획득할 수 있다. When the requested data exists in the distributed data storage 1040 or when the storage step S1035 is performed, performing the providing process S1040 of providing the data corresponding to the requested data to the information user 1050 To perform a loading step (S1041). The loading step (S1041) is to acquire data requested from the inside or outside of the Oracle blockchain network 1020 from the distributed data storage 1040. Since the storage history 1061 includes information related to a location where data is stored in the distributed data storage 1040 , requested data can be obtained based on the storage history 1061 .

로딩단계(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 de-identification algorithm 1132 or the encryption unit 1133 of the data management module 1130 . If de-identification or encryption protection is granted to data, the protection may be removed or changed according to a data request, and the data may be provided so that the information user 1050 can use the data. For example, if the data is encrypted using the public key of the information user 1050 , the data may be decrypted by receiving the private key of the information user 1050 . The protection change step S1042 may determine whether to remove or change protection according to data characteristics and data request contents.

보호 변경단계(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 data storage 1040 into a data format based on a data request. The reconfiguration step may be performed in the parser 1112 of the access module. When the information user 1050 is another Oracle blockchain network 1020 , the transaction details stored in the distributed data storage 1040 can be processed into a data format that can be used in other Oracle blockchain networks 1020 . For example, when the transaction history stored in the distributed data storage 1040 is "Sender = A, Receiver = B, Amount = 1000, Unit = EOS", according to the data request, "A->B/1000/EOS" It can be reconstructed as one continuous data such as ".

재구성 단계를 수행하면, 재구성된 데이터를 정보사용자(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 information user 1050 is performed. The provision step (S1044) is to provide the requested data and to store the data provision details 1062 in the Oracle blockchain 1060. The provision step ( S1044 ) may be performed according to the data storage usage record smart contract 1141 of the Oracle smart contract module 1140 . As a result of performing the provision process (S1040) of finding and reading data from the distributed data storage 1040 and providing the data to the information user 1050, important data is provided in the storage space of the Oracle block 1060a as the provision history 1062. is saved The provision details 1062 may include the contents of the data request, the type, name, and format of the requested data, information of the information user 1050, protection removal or change contents, and the like.

상술한 바와 같이, 데이터 요청을 수신하고 요청된 데이터가 분산형 데이터 스토리지(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 data storage 1040, and performing the storage process (S1030) and the provision process (S1040), Existing data can be recognized and provided to other oracle blockchain networks 1020. By performing this process, an embodiment of the present invention can service various mainnet connectors and dApps that can connect the block chain and block chain with each other, and provide reliability in data exchanged between block chains. We can provide services that grant

저장 프로세스(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 specific information user 1050 should access, encryption is performed after de-identification in the data protection step (S1034) of the storage process (S1030). Data may be encrypted with the public key of the specific information user 1050 by using a public key/private key encryption method. Alternatively, encryption may be encrypted with the public key of a specific Oracle node 1030 and stored in the distributed data storage 1040 .

일반에 공개되는 데이터인 경우, 암호화되어 있지 않으므로 제공 프로세스(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 specific information user 1050, the data can be decrypted by decrypting it with the private key of the specific Oracle node 1030 in the protection change step (S1042) of the storage process (S1030). have. Alternatively, when data is encrypted with the public key of a specific information user 1050 in the data protection step S1034 of the storage process S1030, the information user 1050 can recognize the data by decrypting it with his or her private key, so the protection is changed Decryption may not be performed in step S1042.

도 4는 본 발명의 일실시예에 따른 정보소스(1010)의 신뢰도 판단단계(S1032)를 나타내는 도면이다. 4 is a diagram showing the reliability determination step (S1032) of the information source 1010 according to an embodiment of the present invention.

도 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 information source 1010 is trustworthy by using the SSL certificate provided by the information source 1010 , the information source 1010 . A second determination step of determining whether to trust the information source 1010 using domain registration information of the information source 1010 obtained through the Whois service based on the domain, and delegation of whether the information source 1010 is trustworthy It is a process of performing at least one of the third determination steps of determining whether the information source 1010 is trustworthy based on the Oracle node 1030 voting of the proof-of-stake method and the Oracle node 1030 voting. In the reliability determination step S1032, all of the first to third determination steps may be performed.

제1 판단단계는 HTTPS 환경에서 제공되는 SSL 인증서를 이용하여 정보소스(1010)가 신뢰할 수 있는 주체에 의해 운영되는지 판단할 수 있다. SSL 인증서에 기초하여 정보소스(1010)가 운영되는 주소, 도메인, 등의 정보를 인식할 수 있고, SSL 인증서는 인증기관(CA, Certificate Authority)로부터 인증받은 것이므로 정보소스(1010)의 운영주체의 실재를 인정할 수 있고, 인증기관을 신뢰함에 따라 정보소스(1010)를 신뢰할 수 있다.In the first determination step, it may be determined whether the information source 1010 is operated by a trusted subject using an SSL certificate provided in an HTTPS environment. Based on the SSL certificate, information such as the address, domain, and the like at which the information source 1010 operates can be recognized, and since the SSL certificate is authenticated by a CA (Certificate Authority), the operating subject of the information source 1010 is Reality can be acknowledged, and the information source 1010 can be trusted by trusting the certification authority.

제2 판단단계는 정보소스(1010)의 도메인 등록 정보를 이용하여 신뢰도를 판단한다. 도메인 등록 정보는 도메인 네임, 등록자 주소, 등록자 이메일, IP 주소 등의 정보를 포함하며, 도메인 등록 정보를 제공하는 Whois 검색 서비스를 이용하여 획득될 수 있다. 제2 판단단계에서 SSL 인증서와 도메인 등록 정보가 동일하거나 관련있는지, 접속 IP와 도메인 등록 정보의 IP가 동일하거나 유사한지, 도메인 국적과 IP 국적이 동일한지 등을 확인하여 정보소스(1010)의 신뢰여부를 판단할 수 있다. In the second determination step, reliability is determined using domain registration information of the information source 1010 . The domain registration information includes information such as a domain name, a registrant address, a registrant email address, and an IP address, and may be obtained using a Whois search service that provides domain registration information. In the second determination step, it is checked whether the SSL certificate and the domain registration information are the same or related, whether the IP of the access IP and the domain registration information is the same or similar, and whether the domain nationality and the IP nationality are the same, and the trust of the information source 1010 can determine whether

제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 Oracle nodes 1030 participating in the Oracle blockchain network 1020 may vote to determine the reliability of the information source 1010 . Voting can be done in a Delegated Proof of Stake (DPoS) method. When the third determination step is performed, the oracle nodes 1030 elect a member of the Oracle node 1030 to vote to determine the reliability of the information source 1010 . The member oracle node 1030 may be selected as an odd number such as 11, 21, or 99. When the SSL certificate information of the information source 1010, domain registration information, and information related to the requested data are shared with the elected member Oracle nodes 1030, the member Oracle nodes 1030 can trust the information source 1010. If a vote on whether or not there is more than the standard value in approval is received, the information source 1010 is trusted.

본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법의 신뢰도 판단단계(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 untrusted information source 1010 to the blacklist - may further include a blacklist addition step. If any one of the first to third determination steps is not passed, the corresponding information source 1010 is not trusted, and the unreliable information source 1010 is added to the source-blacklist. Since data obtained from the information source 1010 added to the source-blacklist is unreliable, data is collected from another information source 1010 . The information source 1010 registered in the source-blacklist may be deleted when a predetermined period elapses. If it has already passed the reliability determination step (S1032) and recognized as the reliable information source 1010, the data obtained from the information source 1010 can be trusted without performing the reliability determination step (S1032) for a predetermined period.

도 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)는 합류를 요청하는 신규 노드의 신뢰도를 판단하여 합류를 허가하거나 차단하는 과정이다. Oracle nodes 1030 constituting the Oracle blockchain network 1020 may be added or removed. When a new node wants to join the Oracle blockchain network 1020, it is necessary to determine whether the node can be trusted. Oracle node reliability determination steps ( S1101 to S1106 ) may be performed when a new node requests to join the Oracle blockchain network 1020 . Oracle node reliability determination step (S1101 ~ S1106) is a process of permitting or blocking joining by determining the reliability of a new node requesting joining.

오라클 노드 신뢰도 판단단계(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 Oracle blockchain network 1020, if the increase per unit time of the new node exceeds the reference value (Y in S1101), a predetermined period In the meantime, the new node stops joining (S1105), and if there is an oracle block 1060a already created in the new node (Y in S1102), it is judged as an untrusted node and blocks the joining (S1105) Node-blacklist In addition to (S1106), when the new node is included in the node-blacklist (Y of S1103), the joining can be blocked (S1105).

악의적인 오라클 노드(1030)가 전체 네트워크 서버 과반수 이상이나 66% 이상을 차지하게 하여 데이터를 왜곡하거나 위변조하는 일명 과반수 공격을 시도하는 경우 신규 노드 숫자가 급격히 증가하게 된다. 과반수 이상의 오라클 노드(1030) 개수를 차지하는 경우 공격자는 오라클 블록체인(1060)을 바꿔치기하여 이득을 얻을 수 있다. 이런 공격을 하려면, 신규 노드가 오라클 블록체인 네트워크(1020)에 합류하기 전에 현재 메인 오라클 블록체인(1060)보다 더 긴 체인을 미리 만들어놓아야 한다. 따라서, 신규 노드가 합류하려는 시점에 미리 만들어놓은 오라클 블록체인(1060)이 있다면, 해킹 시도로 간주하고 접속을 차단해야 한다(S1102). 이러한 과반수 공격을 막기 위하여 오라클 블록체인 네트워크(1020)는 신규 노드 증가 속도를 제어할 수 있고(S1101), 미리 생성된 오라클 블록체인(1060)이 존재하는 신규 노드를 악의적 오라클 노드(1030)로 판단(S1102)하여 합류를 차단할 수 있다. When a malicious oracle node 1030 attempts a so-called majority attack that distorts or forges data by making it occupy more than half or more than 66% of the total network servers, the number of new nodes increases rapidly. If the number of Oracle nodes 1030 or more is occupied by a majority, an attacker can obtain a benefit by swapping the Oracle blockchain 1060. In order to perform such an attack, a chain longer than the current main oracle blockchain 1060 must be created in advance before the new node joins the oracle blockchain network 1020. Therefore, if there is an oracle block chain 1060 created in advance at the time a new node wants to join, it should be regarded as a hacking attempt and the connection should be blocked (S1102). In order to prevent such a majority attack, the oracle blockchain network 1020 can control the new node increase rate (S1101), and a new node in which the pre-created oracle blockchain 1060 exists is determined as a malicious oracle node 1030 (S1102) to block the joining.

오라클 노드(1030) 개수의 급격한 증가 또는 선-저장 오라클 블록체인(1060)이 존재하는 공격을 행했거나, Antminer와 같이 옛날에 공격했던 전력이 있는 기관은 노드-블랙리스트에 추가될 수 있다. 또한 노드-블랙리스트에 추가된 기관은 관련 IP나 Domain을 차단할 수 있다. Organizations that have a history of attacking a sharp increase in the number of oracle nodes 1030 or a pre-storage oracle blockchain 1060 exist, or have a history of attacking in the past, such as Antminer, can be added to the node-blacklist. In addition, an authority added to the node-blacklist can block related IPs or domains.

신규 노드의 수가 갑자기 증가하는 것은 일반적이지 않은 현상이며, 기존에 오라클 블록체인 네트워크(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 oracle nodes 1030 constituting the existing Oracle blockchain network 1020 is a malicious oracle node 1030. Since the possibility of joining increases, the joining of new nodes may be stopped for a predetermined period (S1105). Check whether the Oracle block 1060a exists in the storage unit 1033 of the new node (S1102), and if there is an Oracle block 1060a that has already been created and stored in the storage unit 1033, the Oracle block chain 1060 Since there is a possibility of compromising the health of the Oracle node 1030, it is determined that it is a malicious oracle node 1030 and can block joining. If it is determined as the malicious oracle node 1030, it can be added to the node-blacklist (S1106) to block the same new node from continuously making a join request. When a new node already included in the node-blacklist requests to join, the malicious node can be immediately blocked from joining.

오라클 블록체인 네트워크(1020)는 복수의 오라클 노드(1030)로 구성될 수 있다. 오라클 노드(1030)는 오라클 블록체인 프로그램 코드의 적어도 일부를 동작시키는 인클레이브(1032a)를 포함하며, 인클레이브(1032a) 내에서 오라클 노드 신뢰도 판단단계(S1101~S1106) 및 오라클 블록생성 합의과정이 수행될 수 있다. 오라클 노드(1030)의 제어부(1032)는 인클레이브(1032a)를 포함할 수 있다. 인클레이브(1032a)는 제어부(1032)에서 물리적/소프트웨어적으로 분리되어 외부의 접근이 불가능한 정보처리공간이다. 인클레이브(1032a)에서는 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법을 수행하는 프로그램 코드의 전부 또는 일부가 수행될 수 있다. 인클레이브(1032a)에서 동작한 프로그램 코드는 위조되거나 변조되지 않은 것으로 신뢰할 수 있고, 오라클 노드(1030)들 사이의 합의, 트랜잭션의 검증 등이 인클레이브(1032a)에서 수행될 수 있다. The oracle blockchain network 1020 may consist of a plurality of oracle nodes 1030 . The Oracle node 1030 includes an enclave 1032a that operates at least a portion of the Oracle block chain program code, and the Oracle node reliability determination step (S1101 ~ S1106) and the Oracle block generation consensus process within the enclave 1032a can be performed. The control unit 1032 of the Oracle node 1030 may include an enclave 1032a. The enclave 1032a is an information processing space that is physically/softly separated from the control unit 1032 and cannot be accessed from the outside. In the enclave 1032a, all or part of the program code for performing the method for recognizing and providing information external to a block chain application according to an embodiment of the present invention may be performed. The program code operated in the enclave 1032a is reliable as it has not been forged or tampered with, and agreement between the oracle nodes 1030, verification of a transaction, etc. may be performed in the enclave 1032a.

본 발명의 일실시예에 따른 단계들 중에서, 정보소스(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 information source 1010, the Oracle node reliability determination step (S1101 ~ S1106) of determining whether to join a new node, data The storage step (S1035) of storing the distributed data storage 1040 and the providing step (S1044) of providing the data to the information user 1050 are performed between the Oracle nodes 1030 constituting the Oracle blockchain network 1020. This can be done through verification and consensus. Verification and agreement between the Oracle nodes 1030 constituting the Oracle blockchain network 1020 may be performed based on the program code included in the Oracle blockchain network 1020 operating unit 1142 .

오라클 블록체인 네트워크(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 Oracle blockchain network 1020 can perform consensus or voting based on the Byzantine Fault Tolerance (BFT) algorithm. The Oracle blockchain network 1020 can perform consensus or voting in a distributed proof-of-stake (DPoS) method. When the reliability determination step (S1032) starts, the oracle nodes 1030 select the Oracle node 1030 of the member to vote (S1201). When information (such as an IP address) that can access the information source 1010 that has obtained data is shared between the member Oracle nodes 1030 (S1202), the member Oracle node 1030 is individually connected to the information source 1010 to perform the first or second judgment step, and share the result. If the information that can access the information source 1010 is not all shared with the member oracle node 1030, it can wait until it is shared (S1205). When the number of Oracle nodes 1030 determined to be reliable as a result of performing the first or second determination step is greater than the reference value (S1203), it may be determined that the information source 1010 is reliable (S1204). Alternatively, if the number of Oracle nodes 1030 determined to be reliable is less than the reference value (S1203), consensus or voting has failed, and it is determined that the information source 1010 is not reliable and may be recorded in the source-blacklist (S1206). . If the agreement fails, the shared data may be discarded (S1206).

동일한 방법으로, 오라클 노드 신뢰도 판단단계(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 Oracle nodes 1030 select the member Oracle node 1030 (S1201), and the member Oracle node 1030 determines the number of Oracle node 1030 joining requests per hour, It is determined whether there is a pre-created oracle block 1060a in the new node or whether it is a malicious node registered in the node-blacklist, and the result is shared (S1202), and the number of oracle nodes 1030 determined that the new node is reliable In more cases (S1203), a new node can be joined (S1204). If the number of oracle nodes 1030 determined that the new node is reliable is less than the reference value, it is determined that consensus or voting has failed (S1206), and the new node may be blocked from joining and the new node may be registered in the node-blacklist. The source-blacklist and node-blacklist can be shared.

저장 프로세스(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 Oracle nodes 1030 and verified to be stored in the Oracle block 1060a as the storage history 1061 and the provision history 1062 . The oracle nodes 1030 may perform verification and agreement for generating the oracle block 1060a including the storage details 1061 or the provision details 1062 every predetermined time in a delegated proof-of-stake (DPoS) method.

상술한 바와 같이 본 발명의 일실시예에 따르면, 오라클 블록체인(1060)의 외부에 존재하는 데이터를 오라클 블록체인(1060)의 내부로 들여오고 오라클 블록체인(1060)의 내부에 저장된 데이터를 오라클 블록체인(1060)의 외부로 제공하는 양방향 데이터 교환을 제공할 수 있다. As described above, according to an embodiment of the present invention, data existing outside the Oracle block chain 1060 is brought into the Oracle block chain 1060, and data stored inside the Oracle block chain 1060 is transferred to the oracle. It is possible to provide a two-way data exchange provided to the outside of the block chain 1060 .

또한, 본 발명의 일실시예에 따르면, 데이터 교환시 데이터의 기밀성, 무결성, 정보사용자(1050)의 프라이버시를 보장할 수 있다. In addition, according to an embodiment of the present invention, data confidentiality, integrity, and privacy of the information user 1050 can be guaranteed during data exchange.

또한, 본 발명의 일실시예에 따르면, 다양한 외부 데이터의 접근을 위한 데이터 획득, 저장, 처리, 스케쥴링을 오라클 블록체인 네트워크(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 Oracle blockchain network 1020 .

이상 본 발명을 구체적인 실시예를 통하여 상세히 설명하였으나, 이는 본 발명을 구체적으로 설명하기 위한 것으로, 본 발명은 이에 한정되지 않으며, 본 발명의 기술적 사상 내에서 당해 분야의 통상의 지식을 가진 자에 의해 그 변형이나 개량이 가능함은 명백하다고 할 것이다. 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.
청구항 1에 있어서,
상기 분산형 데이터 스토리지에 존재하는 데이터를 제공하는 제공 프로세스를 더 포함하며,
상기 제공 프로세스는 상기 저장 프로세스가 수행된 다음에 수행되고,
상기 제공 프로세스는
상기 오라클 블록체인 네트워크의 내부 또는 외부로부터 수신된 데이터 공급 요청에 의해 요청된 데이터를 상기 분산형 데이터 스토리지로부터 획득하는 로딩단계;
상기 요청된 데이터에 부여된 보호를 제거 또는 변경하는 보호 변경단계;
상기 데이터 공급 요청에 기초하여, 상기 요청된 데이터를 필요한 형식으로 정리하는 재구성단계; 및
상기 요청된 데이터를 제공하고 데이터 제공내역을 상기 오라클 블록체인에 저장하는 제공단계를 포함하는, 블록체인 응용 외부 정보 인식 및 정보 제공방법.
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.
청구항 2에 있어서,
상기 요청된 데이터가 상기 분산형 데이터 스토리지에 존재하는지 여부를 상기 데이터 저장내역을 검색하여 판단하고, 상기 요청된 데이터가 상기 분산형 데이터 스토리지에 존재하는 경우 상기 제공 프로세스를 수행하고, 상기 요청된 데이터가 상기 분산형 데이터 스토리지에 존재하지 않는 경우 상기 저장 프로세스를 수행하는 요청판단 단계를 더 포함하는, 블록체인 응용 외부 정보 인식 및 정보 제공방법.
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.
삭제delete 청구항 1에 있어서,
상기 신뢰도 판단단계를 수행한 결과 신뢰할 수 없는 정보소스로 판단되는 경우 소스-블랙리스트에 상기 신뢰할 수 없는 정보소스를 추가하는 소스-블랙리스트 추가 단계를 더 포함하는, 블록체인 응용 외부 정보 인식 및 정보 제공방법.
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.
청구항 1에 있어서,
상기 오라클 블록체인 네트워크에 합류를 요청한 신규 노드의 신뢰도를 판단하기 위하여, 상기 신규 노드의 단위시간당 증가량이 기준값을 초과하는 경우 정해진 기간동안 신규 노드의 합류를 중지하고, 상기 신규 노드에 생성된 오라클 블록이 존재하는 경우 신뢰할 수 없는 노드로 판단하여 합류를 차단하고 노드-블랙리스트에 추가하며, 상기 신규 노드가 상기 노드-블랙리스트에 포함된 경우 합류를 차단하는, 오라클 노드 신뢰도 판단단계를 더 포함하는, 블록체인 응용 외부 정보 인식 및 정보 제공방법.
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.
청구항 1에 있어서,
상기 오라클 블록체인 네트워크는 복수의 오라클 노드로 구성되며,
상기 오라클 노드는
상기 오라클 블록체인 프로그램 코드의 적어도 일부를 동작시키는 인클레이브를 포함하며, 상기 인클레이브 내에서 상기 오라클 노드 신뢰도 판단단계 및 오라클 블록생성 합의과정이 수행되는, 블록체인 응용 외부 정보 인식 및 정보 제공방법.
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.
청구항 1에 있어서,
상기 데이터 보호단계는
상기 데이터에서 개인정보에 해당하는 정보를 익명화하거나 삭제하거나 필요한 데이터만을 범주화 또는 총계처리하는 비식별화를 수행하고, 필요한 경우 비식별화가 수행된 데이터를 암호화하는 것인, 블록체인 응용 외부 정보 인식 및 정보 제공방법.
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.
KR1020190143555A 2019-11-11 2019-11-11 External information recognizing and information providing method using blockchain KR102337836B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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