KR20210063055A - Distributed blockchain oracle system by using TEE and method of transferring external data in the oracle system - Google Patents

Distributed blockchain oracle system by using TEE and method of transferring external data in the oracle system Download PDF

Info

Publication number
KR20210063055A
KR20210063055A KR1020190151504A KR20190151504A KR20210063055A KR 20210063055 A KR20210063055 A KR 20210063055A KR 1020190151504 A KR1020190151504 A KR 1020190151504A KR 20190151504 A KR20190151504 A KR 20190151504A KR 20210063055 A KR20210063055 A KR 20210063055A
Authority
KR
South Korea
Prior art keywords
oracle
distributed
external data
tee
smart contract
Prior art date
Application number
KR1020190151504A
Other languages
Korean (ko)
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 KR1020190151504A priority Critical patent/KR20210063055A/en
Publication of KR20210063055A publication Critical patent/KR20210063055A/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1053Group management mechanisms  with pre-configuration of logical or physical connections with a determined number of other peers
    • H04L67/1057Group management mechanisms  with pre-configuration of logical or physical connections with a determined number of other peers involving pre-assessment of levels of reputation of peers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment
    • H04L2209/38

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

The present invention relates to a distributed blockchain oracle system using the trusted execution environment (TEE). The distributed blockchain oracle system comprises: a blockchain with a user smart contract and a transmission smart contract recorded; and a distributed oracle including a plurality of oracle nodes operating based on the TEE, which, when an external data request is generated from the blockchain network, collects data from an external data source, and provides the data to the blockchain network. The transmission smart contract sets an oracle leader among the distributed oracles based on a reputation, and requests for external data to the oracle leader. The oracle leader collects external data, encodes with a secret key based on the TEE, and transmits the data to the transmission smart contract. Accordingly, the present invention is able to, through the distributed oracle based on the TEE, guarantee the integrity of data from a data source, collect external data by a method minimizing the deviation, and provide the data to the blockchain network.

Description

신뢰 실행 환경을 이용한 분산 블록체인 오라클 시스템 및 상기 시스템에서의 외부 데이터 전달 방법{Distributed blockchain oracle system by using TEE and method of transferring external data in the oracle system}Distributed blockchain oracle system by using TEE and method of transferring external data in the oracle system

본 발명은 블록체인 오라클 시스템에 관한 것으로서, 더욱 구체적으로는 각 오라클 노드들을 신뢰 실행 환경을 기반으로 운영하여 외부 데이터를 무결성을 보장하고 편향을 최소화시켜 외부 데이터를 수집하여 블록체인 스마트 컨트랙트에게 제공하도록 구성된 신뢰 실행 환경을 이용한 분산 블록체인 오라클 시스템 및 상기 시스템에서의 외부 데이터 전달 방법에 관한 것이다. The present invention relates to a blockchain oracle system, and more specifically, to operate each oracle node based on a trusted execution environment to ensure the integrity of external data and minimize bias to collect external data and provide it to a blockchain smart contract. It relates to a distributed blockchain oracle system using a configured trusted execution environment and a method for transmitting external data in the system.

블록체인은 비트코인에서 처음으로 등장한 기술로써, 제3자의 개입 없이도 무결성 및 신뢰성을 확보하는 동등 계층간 통신망(Peer-to-Peer Network, P2P) 기반 분산원장 기술이다. 블록체인은 네트워크에서 발생한 입력과 출력, 즉 트랜잭션(Transaction)들을 블록체인 네트워크의 모든 참여자가 저장하고, 저장한 트랜잭션 내용을 바탕으로, 발생한 트랜잭션의 실행(혹은 결과)에 대한 유효성을 검증함으로써 트랜잭션의 무결성(Integrity)을 보장하는 장점을 가진다. 이때 트랜잭션은 다수의 트랜잭션 묶음인 블록(Block)이라는 단위로 합의(Consensus) 과정을 거친다. 합의는 모든 참여자가 동일한 트랜잭션의 실행 결과를 공유하기 위해 어떤 블록(혹은 결과)으로 통일할지 채택하는 과정이다.As a technology that first appeared in Bitcoin, it is a peer-to-peer network (P2P)-based distributed ledger technology that secures integrity and reliability without the intervention of a third party. The blockchain stores the inputs and outputs that occur in the network, that is, transactions by all participants in the blockchain network, and verifies the validity of the execution (or result) of the transaction based on the stored transaction contents. It has the advantage of ensuring integrity. At this time, a transaction goes through a process of consensus in a unit called a block, which is a bundle of multiple transactions. Consensus is a process in which all participants adopt which block (or result) to unify in order to share the execution result of the same transaction.

스마트 컨트랙트(Smart contract)는 블록체인 네트워크에서 실행되는 응용 프로그램의 실행 코드다. 트랜잭션을 통해 실행을 요청할 수 있으며, 마찬가지로 네트워크의 모든 참여자 입력과 출력을 저장하고, 실행하는 특징을 갖고 있다. 또한, 코드의 내용이 블록에 저장되어 모든 블록체인 참여자에게 공유되어 있고, 모든 구성원의 실행과 검증을 통해 실행 결과가 블록에 저장되므로 응용 프로그램의 투명하고 무결한 실행이 가능하다.A smart contract is the executable code of an application running on a blockchain network. Execution can be requested through a transaction, and it also has the characteristic of storing and executing the inputs and outputs of all participants in the network. In addition, the contents of the code are stored in the block and shared with all blockchain participants, and the execution result is stored in the block through execution and verification of all members, enabling transparent and flawless execution of the application.

한편, 블록체인의 스마트 컨트랙트는 일반 응용 프로그램과 달리 특수한 한계점이 존재한다. 모든 참여자가 트랜잭션의 실행과 검증에 참여하는 블록체인의 특징상, 어떤 참여자의 환경에서 실행해도 같은 입력에 같은 결과가 나오는 결정성(Deterministic)이 보장되어야 하나의 실행 결과로 합의가 가능하다. 실행 결과의 결정성을 위해 스마트 컨트랙트는 네트워크를 통해 외부 데이터에 접근이 불가능하고, 오직 원장(혹은 블록)에 저장된 데이터만 접근이 가능하다. 블록체인 외부 데이터(이하 외부 데이터)에 접근이 불가능한 한계점을 오라클 문제(Oracle problem)라고 하고, 이런 한계점을 극복하기 위해 외부 데이터를 블록체인에 제공하는 데이터 중개자를 오라클(Oracle)이라고 한다. 오라클은 데이터 중개자로서, 외부 출처로부터 받은 외부 데이터에 변조가 없다는 무결성(Integrity)을 증명해야 한다.On the other hand, smart contracts of blockchain have special limitations unlike general applications. Due to the characteristics of the blockchain in which all participants participate in the execution and verification of transactions, one execution result can be agreed upon only when deterministic that the same result is obtained for the same input regardless of the environment of any participant. For the determinism of execution results, smart contracts cannot access external data through the network, and only data stored in the ledger (or blocks) can be accessed. The limitation of being unable to access data outside the block chain (hereinafter referred to as external data) is called the Oracle problem, and the data intermediary that provides external data to the block chain to overcome this limitation is called Oracle. Oracle, as a data intermediary, must prove the integrity of external data received from external sources that there is no tampering.

신뢰 실행 환경(Trusted Execution Environment; 이하 'TEE' 라 한다)는 안전성을 높이기 위하여 프로세서, 주변 장치 및 저장 장치를 대상으로 보안 서비스를 제공하는 소프트웨어 플랫폼을 말한다. TEE는 일반적으로 보안 영역과 비보안 영역의 분리를 지원하는 하드웨어 기능과 이를 이용하여 보안 서비스를 제공하는 소프트웨어로 구성된다. 따라서, TEE는 특정 프로세서만 접근이 가능한 영역으로, 운영체제와 하이퍼바이저를 비롯한 소프트웨어의 비인가된 접근을 하드웨어 단계에서 막는다. 즉, TEE는 악성 소프트웨어 감염 위험이 있는 소프트웨어의 접근을 차단함으로써 프로세스 실행의 기밀성(Confidentiality)과 무결성을 보장한다. 또한, 특정 프로세스를 TEE에서 실행했음을 증명하는 기능을 제공하여, 원격의 사용자 간에 지정된 프로세스를 조작없이 실행할 수 있는 환경을 제공한다. 위의 특징을 활용하여 보안성과 무결성을 요구하는 여러 응용들이 TEE를 활용하여 개발되고 있다.Trusted Execution Environment (hereinafter referred to as 'TEE') refers to a software platform that provides security services to processors, peripherals, and storage devices to enhance safety. TEE is generally composed of hardware functions that support the separation of secure and non-secure areas and software that provides security services using them. Therefore, the TEE is an area that only a specific processor can access, and prevents unauthorized access of software including the operating system and hypervisor at the hardware level. In other words, TEE guarantees the confidentiality and integrity of process execution by blocking access to software that is at risk of malicious software infection. In addition, by providing a function to prove that a specific process has been executed in the TEE, it provides an environment where the specified process can be executed between remote users without manipulation. Various applications requiring security and integrity by utilizing the above characteristics are being developed using TEE.

한국등록특허공보 제 10-2023101호Korean Patent Publication No. 10-2023101 한국공개특허공보 제 10-2018-0069856호Korean Patent Publication No. 10-2018-0069856 미국공개특허공보 US 2019/0095879US Patent Publication US 2019/0095879

전술한 문제점을 해결하기 위한 본 발명의 목적은, 단일 장애점 (Single-point-of-failure) 문제를 보완하면서 데이터 무결성을 보장하며 블록체인 네트워크에 외부 데이터를 제공하기 위하여 신뢰 실행 환경(TEE)을 이용하여 데이터의 무결성을 증명하고 데이터를 출처로부터 블록체인 네트워크까지 전달할 수 있도록 하는 분산 블록체인 오라클 시스템을 제공하는 것이다. An object of the present invention to solve the above-mentioned problems is to ensure data integrity while supplementing the single-point-of-failure problem, and to provide external data to the blockchain network by using a Trusted Execution Environment (TEE) to provide a distributed blockchain oracle system that can prove the integrity of data using

본 발명의 다른 목적은 TEE를 기반으로 한 분산 블록체인 오라클 시스템에서 데이터의 무결성을 보장하면서 데이터를 출처로부터 블록체인 네트워크까지 전달할 수 있도록 하는 데이터 전달 방법을 제공하는 것이다. Another object of the present invention is to provide a data transfer method that allows data to be transferred from a source to a blockchain network while ensuring data integrity in a distributed blockchain oracle system based on TEE.

전술한 기술적 과제를 달성하기 위한 본 발명의 제1 특징에 따른 TEE를 이용한 분산 블록체인 오라클 시스템은, 사용자 스마트 컨트랙트 및 전달 스마트 컨트랙트가 기록된 블록체인을 구비하는 노드들을 포함하는 블록체인 네트워크; 신뢰 실행 환경(Trusted Execution Environment; TEE)을 기반으로 동작되는 복수 개의 오라클 노드들로 구성되며, 상기 블록체인 네트워크로부터 외부 데이터 요청이 발생하면, 외부 데이터 소스로부터 데이터를 수집하여 상기 블록체인 네트워크로 제공하는 분산 오라클;을 구비하고, A distributed blockchain oracle system using TEE according to the first aspect of the present invention for achieving the above-described technical problem is a blockchain network including nodes having a blockchain in which a user smart contract and a delivery smart contract are recorded; It consists of a plurality of oracle nodes operating based on a Trusted Execution Environment (TEE). When an external data request occurs from the blockchain network, data is collected from an external data source and provided to the blockchain network. Distributed oracle to;

상기 사용자 스마트 컨트랙트는 상기 전달 스마트 컨트랙트에게 외부 데이터를 요청하고, 상기 전달 스마트 컨트랙트로부터 무결성을 갖는 외부 데이터를 전달받는 것을 특징으로 하며, The user smart contract requests external data from the delivery smart contract, and receives external data with integrity from the delivery smart contract,

상기 전달 스마트 컨트랙트는 상기 사용자 스마트 컨트랙트로부터 외부 데이터의 요청이 입력되면, 상기 분산 오라클에게 외부 데이터를 요청하고, 상기 분산 오라클로부터 상기 외부 데이터가 제공되면 외부 데이터를 검증하여 상기 사용자 스마트 컨트랙트에게 전달하는 것을 특징으로 한다. The delivery smart contract requests external data from the distributed oracle when a request for external data is input from the user smart contract, and when the external data is provided from the distributed oracle, verifies the external data and delivers it to the user smart contract characterized in that

전술한 제1 특징에 따른 TEE를 이용한 분산 블록체인 오라클 시스템에 있어서, 상기 전달 스마트 컨트랙트는, 분산 오라클을 구성하는 오라클 노드들에 대한 평판을 관리하고, 사용자 스마트 컨트랙트로부터 외부 데이터 요청이 발생하면 평판을 기준으로 하여 분산 오라클 중 오라클 리더를 선출하는 리더 선출 모듈; 분산 오라클로부터 외부 데이터가 수신되면, 외부 데이터를 검증하는 데이터 검증 모듈; 분산 오라클로부터 수신된 외부 데이터가 상기 데이터 검증 모듈에 의해 데이터 검증되면, 상기 검증된 외부 데이터를 상기 사용자 스마트 컨트랙트에게 전달하는 데이터 전달 모듈;을 구비한다. In the distributed blockchain oracle system using TEE according to the first feature described above, the delivery smart contract manages the reputation of the oracle nodes constituting the distributed oracle, and when an external data request occurs from the user smart contract, the reputation A leader election module that selects an Oracle leader among distributed oracles based on ; When external data is received from the distributed oracle, a data verification module that verifies the external data; and a data delivery module that transmits the verified external data to the user smart contract when the external data received from the distributed oracle is data verified by the data verification module.

전술한 제1 특징에 따른 TEE를 이용한 분산 블록체인 오라클 시스템에 있어서, 상기 오라클 노드에 대한 평판은 응답 시간이 빠르고 취합한 다른 오라클 노드의 비율이 높을수록 높은 값을 갖도록 설계된 것이 바람직하다. In the distributed blockchain oracle system using the TEE according to the first feature described above, it is preferable that the reputation for the oracle node is designed to have a high value as the response time is fast and the ratio of other oracle nodes collected is high.

전술한 제1 특징에 따른 TEE를 이용한 분산 블록체인 오라클 시스템에 있어서, 상기 TEE 의 공개키는 상기 전달 스마트 컨트랙트와 분산 오라클의 오라클 노드들이 공유하고, 상기 전달 스마트 컨트랙트의 데이터 검증 모듈은, 상기 분산 오라클로부터 원본 데이터와 암호화된 내용을 포함하는 메시지를 제공받고, 상기 공개키를 이용하여 암호화된 내용을 복호화하고, 복호화된 메시지가 원본 데이터와 일치하면, 해당 데이터를 사용자 스마트 컨트랙트에게 전달하는 것이 바람직하다. In the distributed blockchain oracle system using the TEE according to the first feature described above, the public key of the TEE is shared by the oracle nodes of the forwarding smart contract and the distributed oracle, and the data verification module of the forwarding smart contract is the distributed It is desirable to receive a message including original data and encrypted content from Oracle, decrypt the encrypted content using the public key, and deliver the data to the user smart contract if the decrypted message matches the original data Do.

전술한 제1 특징에 따른 TEE를 이용한 분산 블록체인 오라클 시스템에 있어서, 상기 분산 오라클 중 오라클 리더는, 다른 오라클 노드에게 외부 데이터를 요청하고, 다른 오라클 노드로부터 전달받은 외부 데이터와 해당 오라클 노드의 응답 시간을 기록하며, 사전 설정된 개수 이상의 응답을 받거나 응답 시간을 초과하면, 기록된 외부 데이터와 응답 시간의 원본, 상기 원본에 대하여 TEE 내부에서 만들어진 비밀키로 암호화된 내용을 포함한 메시지를 생성하여 상기 전달 스마트 컨트랙트로 전송하는 것이 바람직하다. In the distributed blockchain oracle system using the TEE according to the first feature, the Oracle leader among the distributed oracles requests external data from another oracle node, and the external data received from the other oracle node and the response of the corresponding oracle node The time is recorded, and when more than a preset number of responses are received or the response time is exceeded, a message containing the recorded external data, the original of the response time, and the contents encrypted with the secret key created inside the TEE for the original is generated and the delivery smart It is preferable to transmit it to the contract.

전술한 제1 특징에 따른 TEE를 이용한 분산 블록체인 오라클 시스템에 있어서, 상기 TEE 의 공개키는 상기 전달 스마트 컨트랙트와 분산 오라클의 오라클 노드들이 공유하고, 상기 전달 스마트 컨트랙트는, 상기 분산 오라클로부터 메시지를 제공받고, 상기 공개키를 이용하여 상기 메시지 중 암호화된 내용을 복호화하고, 복호화된 내용과 원본 데이터가 일치하면, 해당 데이터를 사용자 스마트 컨트랙트에게 전달하는 것이 바람직하다. In the distributed blockchain oracle system using the TEE according to the first aspect, the public key of the TEE is shared by the delivery smart contract and the oracle nodes of the distributed oracle, and the delivery smart contract sends a message from the distributed oracle. It is preferable to receive provided, decrypt the encrypted content of the message using the public key, and if the decrypted content matches the original data, the data is transmitted to the user smart contract.

본 발명의 제2 특징에 따른 외부 데이터 전달 방법은, 사용자 스마트 컨트랙트와 전달 스마트 컨트랙트가 기록된 블록체인을 구비하는 블록체인 네트워크와 신뢰 실행 환경(TEE)를 기반으로 한 복수 개의 오라클 노드들로 이루어진 분산 오라클을 구비하는 분산 블록체인 오라클 시스템에서의 오라클 노드에 의해 수행되는 외부 데이터 전달 방법에 있어서, (a) 상기 오라클 노드들이 TEE 내부에서 비밀키와 공개키 쌍을 생성하고, 상기 공개키는 전달 스마트 컨트랙트와 다른 오라클 노드들에게 공유하는 단계; (b) 상기 전달 스마트 컨트랙트에 의해 분산 오라클의 복수 개의 오라클 노드들 중 오라클 리더가 선출되는 단계; (c) 상기 오라클 리더는 다른 오라클 노드에게 외부 데이터를 요청하고, 상기 요청에 따라 외부 데이터를 전달받으면, 전달받은 외부 데이터와 응답 시간을 기록하는 단계; (d) 상기 오라클 리더는 상기 기록된 외부 데이터와 응답 시간의 원본 데이터 및 이를 암호화한 내용을 포함하여 생성된 메시지를 상기 전달 스마트 컨트랙트에게 전달하는 단계; (e) 상기 전달 스마트 컨트랙트는 상기 오라클 리더로부터 수신한 메시지 중 암호화된 내용을 복호하하고 원본 데이터를 검증하는 단계;를 구비한다. The external data transfer method according to the second aspect of the present invention is composed of a plurality of oracle nodes based on a trusted execution environment (TEE) and a blockchain network having a block chain in which a user smart contract and a transfer smart contract are recorded. In an external data transfer method performed by an oracle node in a distributed blockchain oracle system having a distributed oracle, (a) the oracle nodes generate a private key and a public key pair inside the TEE, and the public key is transmitted sharing the smart contract with other oracle nodes; (b) selecting an oracle leader from among a plurality of oracle nodes of a distributed oracle by the delivery smart contract; (c) the Oracle leader requests external data from another Oracle node, and when the external data is received according to the request, recording the received external data and response time; (d) transmitting, by the Oracle reader, the message generated including the recorded external data, the original data of the response time, and the encrypted content to the delivery smart contract; (e) the delivery smart contract decrypts the encrypted content of the message received from the Oracle reader and verifies the original data;

전술한 제2 특징에 따른 외부 데이터 전달 방법에 있어서, 상기 (d) 단계는 상기 오라클 리더는 상기 기록된 외부 데이터와 응답 시간의 원본, 및 TEE 내부의 비밀키를 이용하여 상기 원본을 암호화한 내용을 포함한 메시지를 생성하고, 상기 메시지를 전달 스마트 컨트랙트에게 제공하는 것을 특징으로 하며, In the external data delivery method according to the second aspect, in step (d), the Oracle reader encrypts the original using the recorded external data and the original response time, and the private key inside the TEE. It generates a message including, and provides the message to a delivery smart contract,

상기 (e) 단계는, 상기 전달 스마트 컨트랙트가 상기 오라클 리더로부터 수신한 메시지 중 암호화한 내용을 공개키로 복호화하고, 복호화된 내용과 원본 데이터를 비교하여 일치하면 상기 외부 데이터를 사용자 스마트 컨트랙트에게 전달하는 것이 바람직하다. In the step (e), the delivery smart contract decrypts the encrypted content of the message received from the oracle reader with the public key, compares the decrypted content with the original data, and if they match, the external data is delivered to the user smart contract it is preferable

본 발명에 따른 분산 블록체인 오라클 시스템은, 신뢰 실행 환경(TEE)를 이용함으로써, 조작하지 않은 원본의 외부 데이터를 수집하여 블록체인 네트워크에 제공할 수 있게 된다. 따라서, 본 발명에 따른 시스템은, 외부 데이터에 대한 무결성을 증명하고 외부 데이터를 소스로부터 블록체인 네트워크까지 전달할 수 있게 된다. The distributed blockchain oracle system according to the present invention can collect unmanipulated external data and provide it to the blockchain network by using the Trusted Execution Environment (TEE). Therefore, the system according to the present invention can prove the integrity of external data and transmit external data from the source to the blockchain network.

또한, 본 발명에 따른 분산 블록체인 오라클 시스템은, 분산 오라클 네트워크를 구성하여 단일 장애점 문제와 편향된 데이터 제공의 문제를 해결할 수 있다. 편향된 데이터 제공은 오라클이 데이터 출처로부터 조작없이 데이터를 제공하되, 오라클이 원하는 데이터만 선택적으로 제공하는 악의적인 행위를 말한다. 본 발명은 각 오라클 노드에 대한 평판을 기준으로 하여 오라클 노드들을 평가하고 이에 따라 오라클 리더 노드를 선택함으로써, 선택적으로 데이터를 제공하는 노드를 배제하고, 빠르고 편향없이 데이터를 제공하는 노드를 장려하여 데이터에 편향이 반영되는 것을 막을 수 있다.In addition, the distributed blockchain oracle system according to the present invention can solve the problem of single point of failure and biased data provision by configuring a distributed oracle network. Biased data provision refers to a malicious act in which Oracle provides data without manipulation from the data source, but selectively provides only the data that Oracle wants. The present invention evaluates Oracle nodes based on the reputation of each Oracle node and selects an Oracle leader node accordingly, thereby excluding nodes that selectively provide data, and encouraging nodes that provide data quickly and without bias. It is possible to prevent bias from being reflected in

또한, 본 발명에 따른 시스템은 복수의 오라클 노드들이 존재하는 분산 오라클을 구성함으로써, 단일 장애점(Single-point-of-failure)문제와 같은 단일 노드 오라클의 문제점을 해결할 수 있게 된다. In addition, the system according to the present invention can solve the problems of a single node oracle, such as a single-point-of-failure problem, by configuring a distributed oracle in which a plurality of oracle nodes exist.

도 1은 본 발명의 바람직한 실시예에 따른 분산 블록체인 오라클 시스템을 전체적으로 도시한 구성도이다.
도 2는 본 발명의 바람직한 실시예에 따른 분산 블록체인 오라클 시스템에 있어서, 분산 오라클을 도시한 구성도이다.
도 3은 본 발명의 바람직한 실시예에 따른 분산 블록체인 오라클 시스템에 있어서, 외부 데이터 전달 방법을 순차적으로 도시한 흐름도이다.
1 is a block diagram showing the entire distributed blockchain oracle system according to a preferred embodiment of the present invention.
2 is a block diagram illustrating a distributed oracle in a distributed blockchain oracle system according to a preferred embodiment of the present invention.
3 is a flowchart sequentially illustrating an external data transfer method in a distributed blockchain oracle system according to a preferred embodiment of the present invention.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those of ordinary skill in the art may easily implement the present invention. However, the present invention may be implemented in various different forms and is not limited to the embodiments described herein. In the drawings, parts irrelevant to the description are omitted in order to clearly describe the present invention, and similar reference numerals are attached to similar parts throughout the specification. Throughout the specification, when a part "includes" a certain component, it means that other components may be further included rather than excluding other components unless specifically stated to the contrary.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 따른 TEE를 이용한 분산 블록체인 오라클 시스템 및 상기 분산 블록체인 오라클 시스템에서의 데이터 전달 방법을 구체적으로 설명한다. Hereinafter, a distributed blockchain oracle system using TEE according to a preferred embodiment of the present invention and a data transfer method in the distributed blockchain oracle system according to a preferred embodiment of the present invention will be described in detail with reference to the accompanying drawings.

먼저, 외부 소프트웨어로부터 고립된 환경에서 안전한 실행이 가능한 TEE는 여러 형태로 구현되어 각각 용어가 상이하다. 본 발명에서는 Intel Software Guard Extensions(SGX)를 기준으로 용어를 기술한다. 또한, 스마트 컨트랙트의 설명은 스마트 컨트랙트를 지원하는 블록체인 플랫폼 중 하나인 이더리움(Ethereum)의 스마트 컨트랙트를 기준으로 기술한다. First, TEE, which can be safely executed in an environment isolated from external software, is implemented in various forms, so the terms are different for each. In the present invention, terms are described based on Intel Software Guard Extensions (SGX). In addition, the description of smart contracts is based on smart contracts of Ethereum, one of the blockchain platforms that support smart contracts.

Enclave는 악의적인 개체로부터 응용 프로그램을 보호할 수 있는 독립적이고 안정성이 보장된 메모리 영역을 의미한다. Remote attestation은 Intel SGX의 고급 기능으로, Enclave가 안전한 환경에서 설정되었음을 원격 사용자에게 증명하는 프로세스다. Remote attestation을 통해 프로세스가 Enclave 내부에서 실행되었음과, 프로세스의 신원(Identity), 그리고 데이터와 코드의 무결성을 증명할 수 있다.Enclave refers to an independent and reliable memory area that can protect applications from malicious objects. Remote attestation is an advanced feature of Intel SGX, the process of attesting to remote users that an enclave has been set up in a secure environment. Through remote attestation, it is possible to prove that the process is executed inside the enclave, the identity of the process, and the integrity of data and code.

이더리움의 스마트 컨트랙트는 고유의 주소를 갖는 응용 프로그램이며, 실행하고자 하는 스마트 컨트랙트의 주소, 함수, 그리고 인자(Argument)를 지정한 트랜잭션을 생성함으로써 실행시킬 수 있다. 소스코드와 응용 프로그램의 데이터는 원장(혹은 블록)에 저장되어 있으며, 데이터들은 오로지 트랜잭션을 통해 값을 변화시킬 수 있다.Ethereum smart contract is an application program with a unique address, and it can be executed by creating a transaction that specifies the address, function, and argument of the smart contract to be executed. Source code and application program data are stored in the ledger (or block), and the data can only change values through transactions.

도 1은 본 발명의 바람직한 실시예에 따른 분산 블록체인 오라클 시스템을 전체적으로 도시한 구성도이다. 도 1을 참조하면, 본 발명에 따른 분산 블록체인 오라클 시스템(1)은 블록체인(10)을 기록한 노드들을 구비한 블록체인 네트워크 및 신뢰 실행 환경(Trusted Execution Environment; 'TEE')을 기반으로 한 복수 개의 오라클 노드들(24)로 이루어진 분산 오라클(20)을 구비하여, 상기 분산 오라클은 외부 데이터 소스(30)들로부터 외부 데이터를 수집하여 무결성의 외부 데이터를 블록체인 네트워크로 전달하는 것을 특징으로 한다. 1 is a block diagram showing the entire distributed blockchain oracle system according to a preferred embodiment of the present invention. Referring to FIG. 1, the distributed blockchain oracle system 1 according to the present invention is based on a blockchain network having nodes recording the blockchain 10 and a Trusted Execution Environment ('TEE'). With a distributed oracle 20 composed of a plurality of oracle nodes 24, the distributed oracle collects external data from external data sources 30 and delivers the external data of integrity to the blockchain network. do.

상기 블록체인(10)은 사용자 스마트 컨트랙트(12; User smart contract)와 전달 스마트 컨트랙트(14; Delivery smart contract)를 구비한다. The block chain 10 includes a user smart contract 12 (User smart contract) and a delivery smart contract 14 (Delivery smart contract).

상기 사용자 스마트 컨트랙트(12)는 블록체인 네트워크의 노드들로부터 외부 데이터의 요청을 받고, 이러한 요청에 응답하여 상기 전달 스마트 컨트랙트에게 외부 데이터를 요청하고, 상기 전달 스마트 컨트랙트로부터 무결성의 외부 데이터를 최종적으로 전달받는 스마트 컨트랙트로서, 외부 데이터의 종착지를 의미한다. The user smart contract 12 receives a request for external data from nodes of the blockchain network, requests external data from the forwarding smart contract in response to this request, and finally receives external data of integrity from the forwarding smart contract. As a smart contract to be delivered, it means the destination of external data.

상기 전달 스마트 컨트랙트(14)는 오라클로부터 받은 데이터의 검증, 평판(Reputation) 관리 및 리더 선출, 그리고 데이터 전달의 역할을 하는 중개자 스마트 컨트랙트이다. 상기 전달 스마트 컨트랙트(14)는 리더 선출 모듈(140), 데이터 검증 모듈(142) 및 데이터 전달 모듈(144)를 구비한다. The delivery smart contract 14 is an intermediary smart contract that performs the role of verification of data received from Oracle, management of reputation and leader election, and data delivery. The delivery smart contract 14 includes a leader selection module 140 , a data verification module 142 and a data delivery module 144 .

상기 리더 선출 모듈(140)은 분산 오라클을 구성하는 오라클 노드들에 대한 평판을 관리하고, 사용자 스마트 컨트랙트로부터 외부 데이터 요청이 발생하면 평판을 기준으로 하여 분산 오라클 중 오라클 리더를 선출한다. The leader selection module 140 manages the reputation of the oracle nodes constituting the distributed oracle, and when an external data request occurs from a user smart contract, selects an Oracle leader from among the distributed oracles based on the reputation.

상기 오라클 노드에 대한 평판(Reputation)은 응답 시간이 빠르고 취합한 다른 오라클 노드의 비율이 높을수록 높은 값을 갖도록 설계된 것으로서, 수학식 1에 따라 계산될 수 있다. Reputation for the oracle node is designed to have a high value as the response time is fast and the ratio of other oracle nodes that are collected is high, and can be calculated according to Equation (1).

Figure pat00001
Figure pat00001

여기서,

Figure pat00002
는 가장 느린 응답 시간이며,
Figure pat00003
는 수집된 응답 개수이며,
Figure pat00004
는 분산 오라클을 구성하는 오라클 노드들의 개수이며,
Figure pat00005
는 상수값이다. here,
Figure pat00002
is the slowest response time,
Figure pat00003
is the number of responses collected,
Figure pat00004
is the number of oracle nodes constituting the distributed oracle,
Figure pat00005
is a constant value.

상기 리더 선출 모듈은 사용자 스마트 컨트랙트로부터 외부 데이터의 요청이 발생하면 상기 측정된 평판들을 기준으로 하여 임의로 오라클 리더를 선출하고, 상기 리더로 선출된 노드는 해당 외부 데이터 요청에 대한 응답의 책임을 갖게 된다. 상기 평판은 해당 노드의 과거 응답을 기준으로 수학식 1에 따라 계산되며, 응답하는데 사전 설정된 일정 시간을 초과한 노드는 오프라인 상태로 간주하고 리더 후보에서 제외한다. The leader election module randomly selects an Oracle leader based on the measured reputations when a request for external data from a user smart contract occurs, and the node elected as the leader is responsible for responding to the external data request. . The reputation is calculated according to Equation 1 based on the past response of the corresponding node, and a node that exceeds a predetermined time to respond is considered offline and excluded from the leader candidate.

상기 데이터 검증 모듈(142)은 분산 오라클로부터 외부 데이터가 수신되면, 외부 데이터를 검증한다. 상기 데이터 검증 모듈은 분산 오라클의 오라클 노드들로부터 TEE 내부의 공개키를 제공받게 되며, 상기 오라클 노드로부터 외부 데이터를 암호화된 메시지의 형태로 전달받으면, 상기 공개키를 이용하여 상기 암호화된 메시지를 복호화하고 이로부터 무결성의 외부 데이터를 얻을 수 있게 된다. When external data is received from the distributed oracle, the data verification module 142 verifies the external data. The data verification module receives the public key inside the TEE from the Oracle nodes of the distributed oracle, and when the external data is transmitted from the Oracle node in the form of an encrypted message, it decrypts the encrypted message using the public key and it is possible to obtain external data of integrity from this.

상기 데이터 전달 모듈(144)은 분산 오라클로부터 수신된 외부 데이터가 상기 데이터 검증 모듈에 의해 데이터 검증되면, 상기 검증된 무결성의 외부 데이터를 상기 사용자 스마트 컨트랙트에게 전달한다. When the external data received from the distributed oracle is verified by the data verification module, the data delivery module 144 delivers the verified integrity of the external data to the user smart contract.

상기 분산 오라클(20)은 신뢰 실행 환경(Trusted Execution Environment; TEE)(22)을 기반으로 동작되는 복수 개의 오라클 노드들(24)로 구성되며, 상기 블록체인 네트워크로부터 외부 데이터 요청이 발생하면, 외부 데이터 소스들(30)로부터 데이터를 수집하고 무결성을 갖는 데이터를 상기 블록체인 네트워크로 제공한다. The distributed oracle 20 is composed of a plurality of oracle nodes 24 operating based on a Trusted Execution Environment (TEE) 22, and when an external data request occurs from the blockchain network, an external It collects data from data sources 30 and provides data with integrity to the blockchain network.

도 2는 본 발명의 바람직한 실시예에 따른 분산 블록체인 오라클 시스템에 있어서, 분산 오라클을 도시한 구성도이다. 도 2를 참조하면, 분산 오라클은 복수 개의 오라클 노드들이 존재하며, 서로 데이터를 주고받는다. 오라클 노드는 기밀성과 무결성이 보장되는 TEE 내부에서 수행되는 기능과 TEE 외부의 네트워크 기능으로 나뉜다. TEE 내부의 비대칭키(Asymmetric key)는 TEE 내부에서 생성한 비밀키와 공개키 쌍과 그에 관련된 모듈을 의미한다. 공개키는 전달 스마트 컨트랙트와 다른 오라클 노드에게 공유하고, 비밀키는 TEE 내부에서만 암호화하는 용도로 사용한다. TEE 내부의 데이터는 외부에서 읽거나 사용할 수 없기 때문에, TEE 내부에서 만든 비밀키로 암호화한 메시지는 TEE 환경에서 수행하였고, 지정된 프로세스를 수행하여 만든 메시지임을 증명할 수 있다. 본 발명에서는 위의 방법을 통해 오라클 간에 나누는 각종 메시지와 스마트 컨트랙트에 전달하는 데이터가 TEE의 검증을 거친 메시지 혹은 데이터임을 증명한다.2 is a block diagram illustrating a distributed oracle in a distributed blockchain oracle system according to a preferred embodiment of the present invention. Referring to FIG. 2 , in a distributed oracle, a plurality of oracle nodes exist and exchange data with each other. An Oracle node is divided into a function performed inside the TEE, which guarantees confidentiality and integrity, and a network function outside the TEE. Asymmetric key inside TEE means a private key and public key pair generated inside the TEE and related modules. The public key is shared with the delivery smart contract and other Oracle nodes, and the private key is used for encryption only inside the TEE. Since the data inside the TEE cannot be read or used from the outside, the message encrypted with the secret key created inside the TEE is performed in the TEE environment and can prove that it is a message created by performing a specified process. In the present invention, it is proved that various messages shared between oracles through the above method and data delivered to a smart contract are messages or data that have been verified by TEE.

각 오라클 노드는 외부의 데이터 소스들(30)로부터 외부 데이터를 얻는다. 이 과정에서 가져오는 데이터의 무결성을 증명하기 위해, 오라클 노드는 데이터 소스와 SSL 연결을 위한 각종 암호키 교환과 X.509 인증서를 TEE 내부에서 생성하여 데이터 소스로부터 받은 데이터를 임의로 조작하지 못하는 SSL 채널을 구축하여 데이터를 수신한다.Each Oracle node obtains external data from external data sources 30 . In order to prove the integrity of the data imported in this process, the Oracle node exchanges various encryption keys for SSL connection with the data source and generates X.509 certificates inside the TEE, so that the data received from the data source cannot be arbitrarily manipulated through the SSL channel. to receive data.

이하, 도 3을 참조하여, 본 발명에 따른 분산 블록체인 오라클 시스템에서의 데이터 전달 방법을 구체적으로 설명한다. Hereinafter, with reference to FIG. 3, a data transfer method in a distributed blockchain oracle system according to the present invention will be described in detail.

도 3은 본 발명의 바람직한 실시예에 따른 분산 블록체인 오라클 시스템에 있어서, 데이터 전달 방법을 순차적으로 도시한 흐름도이다. 도 3을 참조하면, 먼저 상기 분산 블록체인 오라클 시스템의 오라클 노드들은 TEE 내부에서 비밀키와 공개키 쌍을 생성하고 상기 공개키는 전달 스마트 컨트랙트와 다른 오라클 노드들과 공유한다(단계 300). 다음, 사용자 스마트 컨트랙트로부터 외부 데이터 요청이 발생되면(단계 310), 전달 스마트 컨트랙트는 각 오라클 노드들에 대한 평판을 측정하고 이를 기반으로 하여 오라클 리더를 선출하고, 선출된 오라클 리더에게 외부 데이터를 요청한다(단계 320).3 is a flowchart sequentially illustrating a data transfer method in a distributed blockchain oracle system according to a preferred embodiment of the present invention. Referring to FIG. 3, first, the oracle nodes of the distributed blockchain oracle system generate a private key and a public key pair within the TEE, and the public key is shared with the delivery smart contract and other oracle nodes (step 300). Next, when an external data request is generated from the user smart contract (step 310), the delivery smart contract measures the reputation of each oracle node, selects an oracle leader based on this, and requests external data from the elected oracle leader do (step 320).

상기 오라클 리더는 다른 오라클 노드들에게 외부 데이터를 요청하고(단계 330), 이러한 요청에 따라 다른 오라클 노드들로부터 데이터를 전달받으면, 전달받은 데이터와 해당 노드의 응답 시간을 기록한다(단계 340). 사전 설정된 개수 이상의 응답을 받거나 사전 설정된 응답 시간을 초과하면, 상기 오라클 리더는 기록된 데이터와 응답시간의 원본, 및 TEE 내부에서 생성된 비밀키를 이용하여 상기 원본을 암호화한 내용을 포함하는 메시지를 생성하고(단계 360), 상기 생성된 메시지를 트랜잭션의 형태로 상기 전달 스마트 컨트랙트에 전달한다(단계 370). The Oracle leader requests external data from other Oracle nodes (step 330), and when data is received from other Oracle nodes according to the request, the received data and response time of the corresponding node are recorded (step 340). When more than a preset number of responses are received or the preset response time is exceeded, the Oracle reader sends a message including the recorded data and the original of the response time, and the contents of the original encrypted using the secret key generated inside the TEE. It generates (step 360), and transmits the generated message in the form of a transaction to the delivery smart contract (step 370).

상기 전달 스마트 컨트랙트는 상기 오라클 리더로부터 전달받은 메시지 둥 암호화된 내용을 공개키로 복호화하고(단계 380), 복호화된 내용과 원본 데이터를 비교하여 서로 일치하면(단계 382) 사용자 스마트 컨트랙트에 전달하고(단계 390), 수학식 1을 기반으로 하여 오라클 리더에 대한 평판을 업데이트시킨다(단계 392). The delivery smart contract decrypts the encrypted content, including the message delivered from the Oracle reader, with the public key (step 380), compares the decrypted content with the original data, and if they match (step 382), delivers it to the user smart contract (step 380) 390), and update the reputation for the Oracle leader based on Equation 1 (step 392).

이상에서 본 발명에 대하여 그 바람직한 실시예를 중심으로 설명하였으나, 이는 단지 예시일 뿐 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 분야의 통상의 지식을 가진 자라면 본 발명의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 그리고, 이러한 변형과 응용에 관계된 차이점들은 첨부된 청구 범위에서 규정하는 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다. In the above, the present invention has been mainly described with respect to its preferred embodiment, but this is only an example and does not limit the present invention, and those of ordinary skill in the art to which the present invention pertains without departing from the essential characteristics of the present invention. It will be appreciated that various modifications and applications not exemplified above in the scope are possible. In addition, differences related to such modifications and applications should be construed as being included in the scope of the present invention defined in the appended claims.

1 : 분산 블록체인 오라클 시스템
10 : 블록체인
12 : 사용자 스마트 컨트랙트
14 : 전달 스마트 컨트랙트
20 : 분산 오라클
22 : 신뢰 실행 환경(TEE)
24 : 오라클 노드들
140 : 리더 선출 모듈
142 : 데이터 검증 모듈
144 : 데이터 전달 모듈
1: Distributed Blockchain Oracle System
10 : Blockchain
12: User smart contract
14: Forward smart contract
20: Distributed Oracle
22 : Trusted Execution Environment (TEE)
24 : Oracle Nodes
140: leader election module
142: data verification module
144: data passing module

Claims (11)

사용자 스마트 컨트랙트 및 전달 스마트 컨트랙트가 기록된 블록체인을 구비하는 노드들을 포함하는 블록체인 네트워크;
신뢰 실행 환경(Trusted Execution Environment; TEE)을 기반으로 동작되는 복수 개의 오라클 노드들로 구성되며, 상기 블록체인 네트워크로부터 외부 데이터 요청이 발생하면, 외부 데이터 소스로부터 데이터를 수집하여 상기 블록체인 네트워크로 제공하는 분산 오라클;
을 구비하고, 상기 사용자 스마트 컨트랙트는 상기 전달 스마트 컨트랙트에게 외부 데이터를 요청하고, 상기 전달 스마트 컨트랙트로부터 무결성을 갖는 외부 데이터를 전달받는 것을 특징으로 하며,
상기 전달 스마트 컨트랙트는 상기 사용자 스마트 컨트랙트로부터 외부 데이터의 요청이 입력되면, 상기 분산 오라클에게 외부 데이터를 요청하고, 상기 분산 오라클로부터 상기 외부 데이터가 제공되면 외부 데이터를 검증하여 상기 사용자 스마트 컨트랙트에게 전달하는 것을 특징으로 하는 TEE를 이용한 분산 블록체인 오라클 시스템.
a blockchain network comprising nodes having a blockchain in which user smart contracts and delivery smart contracts are recorded;
It consists of a plurality of oracle nodes operating based on a Trusted Execution Environment (TEE). When an external data request occurs from the blockchain network, data is collected from an external data source and provided to the blockchain network. a distributed oracle;
characterized in that, the user smart contract requests external data from the delivery smart contract and receives external data with integrity from the delivery smart contract,
The delivery smart contract requests external data from the distributed oracle when a request for external data is input from the user smart contract, and when the external data is provided from the distributed oracle, verifies the external data and delivers it to the user smart contract Distributed blockchain oracle system using TEE, characterized in that.
제1항에 있어서, 상기 전달 스마트 컨트랙트는,
분산 오라클을 구성하는 오라클 노드들에 대한 평판을 관리하고, 사용자 스마트 컨트랙트로부터 외부 데이터 요청이 발생하면 평판을 기준으로 하여 분산 오라클 중 오라클 리더를 선출하는 리더 선출 모듈;
분산 오라클로부터 외부 데이터가 수신되면, 외부 데이터를 검증하는 데이터 검증 모듈;
분산 오라클로부터 수신된 외부 데이터가 상기 데이터 검증 모듈에 의해 데이터 검증되면, 상기 검증된 외부 데이터를 상기 사용자 스마트 컨트랙트에게 전달하는 데이터 전달 모듈;
을 구비하는 것을 특징으로 하는 TEE를 이용한 분산 블록체인 오라클 시스템.
The method of claim 1, wherein the delivery smart contract comprises:
a leader election module that manages the reputation of the oracle nodes constituting the distributed oracle, and selects an oracle leader among the distributed oracles based on the reputation when an external data request occurs from a user smart contract;
When external data is received from the distributed oracle, a data verification module that verifies the external data;
When the external data received from the distributed oracle is data verified by the data verification module, a data delivery module that delivers the verified external data to the user smart contract;
A distributed blockchain oracle system using TEE, characterized in that it comprises a.
제2항에 있어서, 상기 오라클 노드에 대한 평판은 응답 시간이 빠르고 취합한 다른 오라클 노드의 비율이 높을수록 높은 값을 갖도록 설계된 것을 특징으로 하는 TEE를 이용한 분산 블록체인 오라클 시스템.The distributed block chain oracle system using TEE according to claim 2, wherein the reputation for the oracle node is designed to have a fast response time and a higher value as the ratio of other oracle nodes collected is high. 제2항에 있어서, 상기 리더 선출 모듈은 아래의 수학식에 따라 각 오라클에 대한 평판을 측정하고,
Figure pat00006

여기서,
Figure pat00007
는 가장 느린 응답 시간이며,
Figure pat00008
는 수집된 응답 개수이며,
Figure pat00009
는 분산 오라클을 구성하는 오라클 노드들의 개수이며,
Figure pat00010
는 상수값인 것을 특징으로 하는 TEE를 이용한 분산 블록체인 오라클 시스템.
According to claim 2, wherein the leader election module measures the reputation for each oracle according to the following equation,
Figure pat00006

here,
Figure pat00007
is the slowest response time,
Figure pat00008
is the number of responses collected,
Figure pat00009
is the number of oracle nodes constituting the distributed oracle,
Figure pat00010
A distributed blockchain oracle system using TEE, characterized in that is a constant value.
제2항에 있어서, 상기 TEE 의 공개키는 상기 전달 스마트 컨트랙트와 분산 오라클의 오라클 노드들이 공유하고,
상기 전달 스마트 컨트랙트의 데이터 검증 모듈은,
상기 분산 오라클로부터 암호화된 메시지를 제공받고, 상기 공개키를 이용하여 암호화된 메시지를 복호화하고, 복호화된 메시지가 원본 데이터와 일치하면, 해당 데이터를 사용자 스마트 컨트랙트에게 전달하는 것을 특징으로 하는 TEE를 이용한 분산 블록체인 오라클 시스템.
The method of claim 2, wherein the public key of the TEE is shared by the delivery smart contract and the oracle nodes of the distributed oracle,
The data verification module of the delivery smart contract,
TEE, characterized in that receiving an encrypted message from the distributed oracle, decrypting the encrypted message using the public key, and delivering the data to the user smart contract if the decrypted message matches the original data Distributed blockchain oracle system.
제1항에 있어서, 상기 분산 오라클 중 오라클 리더는,
다른 오라클 노드에게 외부 데이터 요청을 보내고, 다른 오라클 노드로부터 전달받은 외부 데이터와 해당 오라클 노드의 응답 시간을 기록하며,
사전 설정된 개수 이상의 응답을 받거나 응답 시간을 초과하면,
상기 오라클 리더는
기록된 외부 데이터와 응답 시간의 원본, 상기 원본에 대하여 TEE 내부에서 만들어진 비밀키로 암호화된 내용을 포함한 메시지를 생성하여 상기 전달 스마트 컨트랙트로 전송하는 것을 특징으로 하는 TEE를 이용한 분산 블록체인 오라클 시스템.
The method of claim 1, wherein the Oracle leader among the distributed oracles,
Sends an external data request to another Oracle node, records the external data received from another Oracle node and the response time of the Oracle node,
If you receive more than a preset number of responses or exceed the response time,
The Oracle leader
A distributed block chain oracle system using TEE, characterized in that a message including the recorded external data, the original of the response time, and the contents encrypted with the secret key created inside the TEE for the original is generated and transmitted to the delivery smart contract.
제6항에 있어서, 상기 TEE 의 공개키는 상기 전달 스마트 컨트랙트와 분산 오라클의 오라클 노드들이 공유하고,
상기 전달 스마트 컨트랙트는,
상기 분산 오라클로부터 메시지를 제공받고, 상기 공개키를 이용하여 상기 메시지 중 암호화된 내용을 복호화하고, 복호화된 내용과 원본 데이터가 일치하면, 해당 데이터를 사용자 스마트 컨트랙트에게 전달하는 것을 특징으로 하는 TEE를 이용한 분산 블록체인 오라클 시스템.
The method of claim 6, wherein the public key of the TEE is shared by the delivery smart contract and the oracle nodes of the distributed oracle,
The delivery smart contract is
TEE, characterized in that receiving a message from the distributed oracle, decrypting the encrypted contents of the message using the public key, and delivering the corresponding data to the user smart contract if the decrypted contents and the original data match A distributed blockchain oracle system using
제1항에 있어서, 상기 분산 오라클의 오라클 노드들은,
TEE 내부의 비대칭키 모듈을 구비하고,
상기 비대칭키 모듈은 TEE 내부에서 생성된 비밀키와 공개키의 쌍을 구비하고, 상기 공개키는 전달 스마트 컨트랙트와 다른 오라클 노드들과 공유하고, 상기 비밀키는 TEE 내부에서만 암호화하는 용도로 사용되는 것을 특징으로 하는 TEE를 이용한 분산 블록체인 오라클 시스템.
The method of claim 1, wherein the Oracle nodes of the distributed oracle,
Equipped with an asymmetric key module inside the TEE,
The asymmetric key module includes a pair of a private key and a public key generated inside the TEE, the public key is shared with the delivery smart contract and other Oracle nodes, and the private key is used for encryption only inside the TEE. Distributed blockchain oracle system using TEE, characterized in that.
사용자 스마트 컨트랙트와 전달 스마트 컨트랙트가 기록된 블록체인을 구비하는 블록체인 네트워크와 신뢰 실행 환경(TEE)를 기반으로 한 복수 개의 오라클 노드들로 이루어진 분산 오라클을 구비하는 분산 블록체인 오라클 시스템에서의 오라클 노드에 의해 수행되는 외부 데이터 전달 방법에 있어서,
(a) 상기 전달 스마트 컨트랙트에 의해 분산 오라클의 복수 개의 오라클 노드들 중 오라클 리더가 선출되는 단계;
(b) 상기 오라클 리더는 다른 오라클 노드에게 외부 데이터를 요청하고, 상기 요청에 따라 외부 데이터를 전달받으면, 전달받은 외부 데이터와 응답 시간을 기록하는 단계;
(c) 상기 오라클 리더는 상기 기록된 외부 데이터와 응답 시간을 이용하여 암호화하여 생성된 메시지를 상기 전달 스마트 컨트랙트에게 전달하는 단계;
(d) 상기 전달 스마트 컨트랙트는 상기 오라클 리더로부터 수신한 메시지를 복호하하는 단계;
를 구비하는 것을 특징으로 하는 TEE를 이용한 분산 블록체인 오라클 시스템에서의 외부 데이터 전달 방법.
Oracle node in a distributed blockchain oracle system with a distributed oracle consisting of multiple oracle nodes based on a trusted execution environment (TEE) and a blockchain network with a blockchain in which user smart contracts and delivery smart contracts are recorded. In the external data transfer method performed by
(a) selecting an oracle leader from among a plurality of oracle nodes of a distributed oracle by the delivery smart contract;
(b) the Oracle leader requests external data from another Oracle node, and when the external data is received according to the request, recording the received external data and response time;
(c) transmitting, by the oracle reader, a message generated by encryption using the recorded external data and response time to the delivery smart contract;
(d) the forwarding smart contract decrypting the message received from the oracle reader;
An external data delivery method in a distributed blockchain oracle system using TEE, characterized in that it comprises a.
제9항에 있어서, 상기 외부 데이터 전달 방법은,
상기 오라클 노드들이 TEE 내부에서 비밀키와 공개키 쌍을 생성하고, 상기 공개키는 전달 스마트 컨트랙트와 다른 오라클 노드들에게 공유하는 단계; 를 더 구비하는 것을 특징으로 하는 TEE를 이용한 분산 블록체인 오라클 시스템에서의 외부 데이터 전달 방법.
The method of claim 9, wherein the external data transfer method comprises:
generating, by the oracle nodes, a private key and a public key pair within the TEE, and sharing the public key with a delivery smart contract and other Oracle nodes; An external data delivery method in a distributed blockchain oracle system using TEE, characterized in that it further comprises.
제9항에 있어서, 상기 (c) 단계는
상기 오라클 리더는 상기 기록된 외부 데이터와 응답 시간의 원본, 및 TEE 내부의 비밀키를 이용하여 상기 원본을 암호화한 내용을 포함한 메시지를 생성하고, 상기 메시지를 전달 스마트 컨트랙트에게 제공하는 것을 특징으로 하며,
상기 (d) 단계는,
상기 전달 스마트 컨트랙트가 상기 오라클 리더로부터 수신한 메시지 중 암호화한 내용을 공개키로 복호화하고, 복호화된 내용과 원본 데이터를 비교하여 일치하면 상기 외부 데이터를 사용자 스마트 컨트랙트에게 전달하는 것을 특징으로 하는 TEE를 이용한 분산 블록체인 오라클 시스템에서의 외부 데이터 전달 방법.
10. The method of claim 9, wherein step (c) is
The oracle reader generates a message including the encrypted content of the original using the recorded external data, the original of the response time, and the secret key inside the TEE, and provides the message to the delivery smart contract, ,
The step (d),
The delivery smart contract decrypts the encrypted content of the message received from the oracle reader with a public key, compares the decrypted content with the original data and, if they match, delivers the external data to the user smart contract using TEE An external data delivery method in a distributed blockchain oracle system.
KR1020190151504A 2019-11-22 2019-11-22 Distributed blockchain oracle system by using TEE and method of transferring external data in the oracle system KR20210063055A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190151504A KR20210063055A (en) 2019-11-22 2019-11-22 Distributed blockchain oracle system by using TEE and method of transferring external data in the oracle system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190151504A KR20210063055A (en) 2019-11-22 2019-11-22 Distributed blockchain oracle system by using TEE and method of transferring external data in the oracle system

Publications (1)

Publication Number Publication Date
KR20210063055A true KR20210063055A (en) 2021-06-01

Family

ID=76376214

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190151504A KR20210063055A (en) 2019-11-22 2019-11-22 Distributed blockchain oracle system by using TEE and method of transferring external data in the oracle system

Country Status (1)

Country Link
KR (1) KR20210063055A (en)

Cited By (4)

* 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
WO2023113573A1 (en) * 2021-12-17 2023-06-22 주식회사 크립토랩 Electronic device and encryption method
CN117997654A (en) * 2024-04-03 2024-05-07 湖南天河国云科技有限公司 Data processing method, device and computer equipment in edge computing architecture
CN117997654B (en) * 2024-04-03 2024-06-07 湖南天河国云科技有限公司 Data processing method, device and computer equipment in edge computing architecture

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180069856A (en) 2015-12-07 2018-06-25 아마존 테크놀로지스, 인크. Chain Security Systems
US20190095879A1 (en) 2017-09-26 2019-03-28 Cornell University Blockchain payment channels with trusted execution environments
KR102023101B1 (en) 2018-12-20 2019-11-04 주식회사 엔퍼 Apparatus for preventing forgery of original data and method thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180069856A (en) 2015-12-07 2018-06-25 아마존 테크놀로지스, 인크. Chain Security Systems
US20190095879A1 (en) 2017-09-26 2019-03-28 Cornell University Blockchain payment channels with trusted execution environments
KR102023101B1 (en) 2018-12-20 2019-11-04 주식회사 엔퍼 Apparatus for preventing forgery of original data and method thereof

Cited By (4)

* 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
WO2023113573A1 (en) * 2021-12-17 2023-06-22 주식회사 크립토랩 Electronic device and encryption method
CN117997654A (en) * 2024-04-03 2024-05-07 湖南天河国云科技有限公司 Data processing method, device and computer equipment in edge computing architecture
CN117997654B (en) * 2024-04-03 2024-06-07 湖南天河国云科技有限公司 Data processing method, device and computer equipment in edge computing architecture

Similar Documents

Publication Publication Date Title
TWI707245B (en) Retrieving access data for blockchain networks using highly available trusted execution environments
TWI740423B (en) System and method for providing privacy and security protection in blockchain-based private transactions
US11449641B2 (en) Integrity of communications between blockchain networks and external data sources
US10673626B2 (en) Threshold secret share authentication proof and secure blockchain voting with hardware security modules
KR102136960B1 (en) How to retrieve public data for blockchain networks using a highly available trusted execution environment
CN111475827A (en) Private data query method and device based on down-link authorization
US11595187B2 (en) Communication device and communication method used in decentralized network
CN110580245A (en) private data sharing method and device
CN111475850A (en) Private data query method and device based on intelligent contract
KR20210151020A (en) Blockchain system for providing anonymity of privacy information and method for providing anonymity of privacy information in a blockchain
KR20210063055A (en) Distributed blockchain oracle system by using TEE and method of transferring external data in the oracle system
JP7410060B2 (en) Blockchain system with limited transactions
US11893577B2 (en) Cryptographic key storage system and method
WO2022241571A1 (en) System and method for the safe custody of private data using blockchain
Sunil Kumar et al. A Data Privacy Approach Using Shamir’s Secret Scheme in Permissioned Blockchain
IL298959A (en) Distributed anonymized compliant encryption management system
shaher Alslman et al. Exchanging digital documents using blockchain technology
Gagged et al. Improved secure dynamic bit standard technique for a private cloud platform to address security challenges
Panda et al. Contextual attribute‐based access control scheme for cloud storage using blockchain technology
CN113193966B (en) Service data management method and device
Le et al. PPCA: privacy-preserving conditional actions for IoT environments using smart contracts
Austria Dea 2 uth: A Decentralized Authentication and Authorization Scheme for Secure Private Data Transfer
Le Secure and Private Access Control for Systems of Smart Devices
Lu et al. Enhanced Privacy with Blockchain-based Storage for Data Sharing
Someswar Security Techniques for Protecting Data in Cloud Computing