KR102565850B1 - 신뢰 실행 환경을 기반으로 한 탈중앙형 오라클 시스템 및 상기 시스템에서의 외부 데이터 전달 방법 - Google Patents
신뢰 실행 환경을 기반으로 한 탈중앙형 오라클 시스템 및 상기 시스템에서의 외부 데이터 전달 방법 Download PDFInfo
- Publication number
- KR102565850B1 KR102565850B1 KR1020200102278A KR20200102278A KR102565850B1 KR 102565850 B1 KR102565850 B1 KR 102565850B1 KR 1020200102278 A KR1020200102278 A KR 1020200102278A KR 20200102278 A KR20200102278 A KR 20200102278A KR 102565850 B1 KR102565850 B1 KR 102565850B1
- Authority
- KR
- South Korea
- Prior art keywords
- oracle
- node
- data
- transaction
- blockchain network
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/183—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1834—Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1087—Peer-to-peer [P2P] networks using cross-functional networking aspects
- H04L67/1093—Some peer nodes performing special functions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Quality & Reliability (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
본 발명은 신뢰 실행 환경을 기반으로 한 탈중앙형 오라클 시스템에 관한 것이다. 상기 탈중앙형 오라클 시스템은, 복수 개의 오라클 노드들이 프라이빗 블록체인 네트워크로 구성되어 외부의 블록체인 네트워크로부터의 요청에 따라 외부 데이터 소스의 데이터를 제공한다. 상기 오라클 노드는, 외부의 블록체인 네트워크에 의해 요청된 트랜잭션을 신뢰 실행 환경(TEE)에서 수행하는 트랜잭션 처리 장치; PoET 합의 알고리즘에 따라 리더 오라클 노드를 무작위로 선출하는 합의 엔진 모듈; 리더 오라클 노드로 선출되면, 검증자로서 일정 주기마다 블록을 생성하고 블록체인에 연결하여 블록을 배포하도록 구성된 블록 매니지먼트 모듈; 를 구비하여, PoET 합의 알고리즘에 따라 오라클 노드들 중에서 선출된 리더 오라클 노드가 검증자 노드로서 동작할 수 있도록 구성된다.
Description
본 발명은 블록체인 네트워크의 오라클 시스템에 관한 것으로서, 더욱 구체적으로는 데이터 무결성을 보장하고 데이터 조작이 불가능하며, 중앙화로 인한 단일 장애점 문제와 분산 오라클에서의 확장성과 성능 문제를 해결하기 위하여, 프라이빗 블록체인인 하이퍼레저를 이용하여 신뢰 실행 환경(Trusted Execution Environment; TEE)을 기반으로 하여 구성된 탈중앙형 오라클 시스템에 관한 것이다.
블록체인은 비트코인에서 처음으로 등장한 기술로서, 모든 네트워크 참가자가 원장을 소유하고 합의 알고리즘을 통해 거래를 검증함으로써, 제3자의 개입 없이도 무결성 및 신뢰성을 확보하는 동등 계층간 통신망(Peer-to-Peer Network, P2P) 기반 분산원장 기술이다. 블록체인은 네트워크에서 발생한 입력과 출력, 즉 트랜잭션(Transaction)들을 블록체인 네트워크의 모든 참여자가 저장하고, 저장한 트랜잭션 내용을 바탕으로, 발생한 트랜잭션의 실행(혹은 결과)에 대한 유효성을 검증함으로써 트랜잭션의 무결성(Integrity)을 보장하는 장점을 가진다. 이때, 트랜잭션은 다수의 트랜잭션을 블록(Block)에 담아 합의(Consensus) 과정을 거친다. 합의는 모든 참여자가 동일한 트랜잭션의 실행 결과를 공유하기 위해 어떤 블록(혹은 결과)으로 통일할지 채택하는 과정이다.
이러한 특성을 갖는 블록체인 기술은 이중 지불 문제를 해결하는 P2P 전자화폐 거래시스템인 비트코인의 기술로 개발되었지만, 최근에는 건강 관리, 사물인터넷 또는 의료데이터 관리와 같은 다양한 분야를 지원할 수 있는 혁신적인 기술로 등장하게 되었다.
한편, 블록체인기술에 스마트 컨트랙트가 도입되면서 블록체인의 응용분야가 더 다양해지게 되었다. 스마트 컨트랙트(Smart contract)는 블록체인 네트워크에서 실행되는 응용 프로그램의 실행 코드이며, 코드가 공개적으로 블록체인에 저장되고 코드의 실행이 참여자간의 합의를 통해 일관성과 무결성을 보장받게 된다. 따라서, 스마트 컨트랙트를 이용하여, 다양한 분야의 탈중앙 어플리케이션이 개발되고 있다.
한편, 블록체인의 스마트 컨트랙트는 일반 응용 프로그램과 달리 특수한 한계점이 존재한다. 모든 참여자가 트랜잭션의 실행과 검증에 참여하는 블록체인의 특징상, 어떤 참여자의 환경에서 실행해도 같은 입력에 같은 결과가 나오는 결정성(Deterministic)이 보장되어야 하나의 실행 결과로 합의가 가능하다. 실행 결과의 결정성을 위해 스마트 컨트랙트는 네트워크를 통해 외부 데이터에 접근이 불가능하고, 오직 원장(혹은 블록)에 저장된 데이터만 접근이 가능하다.
이와 같이, 블록체인 외부 데이터(이하 외부 데이터)에 접근이 불가능한 한계점을 오라클 문제(Oracle problem)라고 하고, 이런 한계점을 극복하기 위해 외부 데이터를 블록체인에 제공하는 데이터 중개자 또는 미들웨어(middle-ware)를 오라클(Oracle)이라고 한다. 외부 데이터를 블록체인 내부로 가져오기 위하여 블록체인과 동일한 수준의 보안성이 보장되거나 데이터 제공자인 오라클을 신뢰할 수 있어야 한다. 따라서, 오라클은 데이터 중개자로서, 외부 출처로부터 받은 외부 데이터에 변조가 없다는 무결성(Integrity)을 증명해야 한다.
따라서, 블록체인 오라클 문제를 해결하기 위하여 Oraclize, Town-crier, Chainlink 등과 같은 다양한 오라클 프로토콜이 제안되었다. 그러나, 기존의 오라클 프로토콜에는 중앙 집중식 문제 또는 데이터를 가져오기 위한 보안 채널 및 사물 인터넷 데이터와 같이 시간에 따라 가치가 다른 시변(Time-variant) 데이터를 제공하는 데 한계가 있다. 또한, 이더리움과 같은 외부 데이터를 제공할 블록체인에서 일부 검증 과정이 불가능하며 과도한 연산을 요구하게 되는 문제점이 있다.
전술한 문제점을 해결하기 위한 본 발명의 목적은 외부 데이터 소스로부터 외부 데이터를 가져오는 과정에서 데이터 무결성, 데이터 가용성 및 오라클의 응답시간을 보장할 수 있도록 하는 신뢰 실행 환경을 기반으로 한 탈중앙형 오라클 시스템을 제공하는 것이다.
전술한 기술적 과제를 달성하기 위한 본 발명의 제1 특징에 따른 신뢰 실행 환경을 기반으로 한 탈중앙형 오라클 시스템은, 복수 개의 오라클 노드들이 프라이빗 블록체인 네트워크로 구성되어 외부의 블록체인 네트워크로부터의 요청에 따라 외부 데이터 소스의 데이터를 제공하는 것을 특징으로 하며,
상기 오라클 노드는, 외부의 블록체인 네트워크에 의해 요청된 트랜잭션을 신뢰 실행 환경(TEE)에서 수행하는 트랜잭션 처리 장치; PoET(Proof-of-Elapsed-Time) 합의 알고리즘에 따라 상기 복수 개의 오라클 노드들 중 리더 오라클 노드를 무작위로 선출하는 합의 엔진 모듈; 리더 오라클 노드로 선출되면, 검증자로서 일정 주기마다 블록을 생성하고 블록체인에 연결하여 블록을 배포하도록 구성된 블록 매니지먼트 모듈; 를 구비하여, PoET 합의 알고리즘에 따라 오라클 노드들 중에서 선출된 리더 오라클 노드가 검증자 노드로서 동작할 수 있도록 구성된다.
전술한 제1 특징에 따른 TEE를 기반으로 한 탈중앙형 오라클 시스템에 있어서, 상기 오라클 노드들은 프라이빗 블록체인 내트워크인 하이퍼레저를 이용하여 peer-to-peer(P2P) 블록체인 네트워크를 구성한 것이 바람직하다.
전술한 제1 특징에 따른 TEE를 기반으로 한 탈중앙형 오라클 시스템에 있어서, 상기 PoET 합의 알고리즘은 각 오라클 노드들이 동일한 연산을 푸는 수행 시간만큼의 시드값을 기반으로 하여 리더 오라클 노드를 무작위로 선출하고, 무작위로 선출된 리더 오라클 노드가 블록을 생성하고 트랜잭션을 검증하는 것이 바람직하다.
전술한 제1 특징에 따른 TEE를 기반으로 한 탈중앙형 오라클 시스템은, 외부의 블록체인 네트워크의 전달 스마트 컨트랙트를 모니터링하는 클라이언트를 더 구비하고, 상기 클라이언트는 블록체인 네트워크로부터 오라클 요청에 대한 트랜잭션을 발생시키는 것을 특징으로 하며, 상기 오라클 노드는 상기 클라이언트로부터 발생된 트랜잭션을 트랜잭션 처리 장치에서 수행하여 외부 데이터 소스로부터 데이터를 받아오는 것이 바람직하다.
전술한 제1 특징에 따른 TEE를 기반으로 한 탈중앙형 오라클 시스템에 있어서, 상기 오라클 노드가 오라클 요청에 따른 트랜잭션을 수행하여 외부 데이터 소스로부터 데이터를 전달받으면, 리더 오라클 노드에게 트랜잭션 처리 장치에서 수행된 코드와 데이터가 포함된 리포트 데이터(Report Data)를 보내는 것을 특징으로 하며,
상기 리더 오라클 노드는 리포트 데이터를 신뢰 실행 환경에서 원격 증명을 수행하여 검증하고, 검증된 트랜잭션을 포함한 블록을 생성하여 자신의 블록체인에 연결하고, 생성된 블록을 P2P 블록체인 네트워크를 통해 전파하고, 블록체인 네트워크의 전달 스마트 컨트랙트에 트랜잭션을 발생시켜 상기 데이터를 블록체인 네트워크로 전송하는 것이 바람직하다.
본 발명의 제2 특징에 따른 탈중앙형 오라클 시스템에서의 외부 데이터 전달 방법은, 프라이빗 블록체인 네트워크를 구성한 복수 개의 오라클 노드들 및 오라클 노드에 연결된 클라이언트를 구비하여, 외부의 블록체인 네트워크로부터의 요청에 따라 외부 데이터 소스의 데이터를 제공하는 탈중앙형 오라클 시스템에서의 오라클 노드 및 클라이언트에 의해 수행되는 외부 데이터 전달 방법에 관한 것으로서, (a) 클라이언트가 전달 스마트 컨트랙트를 모니터링하여 오라클 요청에 대한 트랜잭션을 발생시키는 단계; (b) 오라클 노드가 클라이언트로부터 발생된 트랜잭션을 트랜잭션 처리 장치에서 수행하여 외부 데이터 소스로부터 데이터를 받아오는 단계; (c) 상기 오라클 노드가 트랜잭션 처리 장치에서 수행된 코드와 데이터가 포함된 리포트 데이터를 리더 오라클 노드에게 전송하는 단계;를 구비한다.
전술한 제2 특징에 따른 TEE를 기반으로 한 탈중앙형 오라클 시스템에서의 외부 데이터 전달 방법에 있어서, 상기 리더 오라클 노드는 PoET 합의 알고리즘에 따라 상기 복수 개의 오라클 노드들 중에서 선출되는 것이 바람직하다.
전술한 제2 특징에 따른 TEE를 기반으로 한 탈중앙형 오라클 시스템에서의 외부 데이터 전달 방법은, (d) 오라클 노드로부터 리포트 데이터를 전달받은 상기 리더 오라클 노드는, 리포트 데이터를 신뢰 실행 환경에서 원격 증명을 수행하여 검증하고, 검증된 트랜잭션을 포함한 블록을 생성하여 자신의 블록체인에 연결하고, 생성된 블록을 P2P 블록체인 네트워크를 통해 전파하고, 블록체인 네트워크의 전달 스마트 컨트랙트에 트랜잭션을 발생시켜 상기 데이터를 블록체인 네트워크로 전송하는 단계;를 더 구비하는 것이 바람직하다.
본 발명에 따른 탈중앙형 오라클 시스템은 복수 개의 오라클 노드들을 프라이빗 블록체인 네트워크인 하이퍼레저를 이용하여 구성함으로써, 단일 오라클 서버의 중앙화로 인한 단일 장애점 문제와 분산 오라클에서의 확장성과 성능 문제를 해결할 수 있게 된다.
또한, 본 발명에 따른 탈중앙형 오라클 시스템은 오라클 노드의 트랜잭션 처리장치를 신뢰 실행 환경인 Intel-SGX에서 실행되도록 하고, 외부 데이터 소스와 TLS 통신을 함으로써, 데이터 무결성을 보장하고, 외부 데이터를 가져오기 위한 TLS 통신을 각 오라클 노드의 Intel SGX Enclave 내부에서 수행하도록 하여 데이터 조작이 불가능하게 된다.
또한, 본 발명에 따른 탈중앙형 오라클 시스템은 합의 알고리즘으로 PoET(Proof-of-Elapsed-Time)을 사용하여 리더 오라클 노드를 선출하고, 리더 오라클 노드는 다른 오라클 노드들이 외부 데이터 소스에서 TLS 통신을 이용하여 데이터를 가져오는 절차를 합의 과정에서 Intel SGX Enclave의 기능 중 하나인 원격 증명을 통해 검증한다. 따라서, 본 발명에 따른 오라클 시스템은 오라클 응답시간을 최소화시킬 수 있게 된다.
본 발명에 따른 탈중앙형 오라클 시스템은 하이퍼레저를 사용함으로써, 성능과 오라클 응답 시간에 대한 문제를 최소화하게 되며, 오라클 노드 수의 증가에 따라 성능이 저하되던 기존의 분산 오라클의 확장성 문제를 해결할 수 있게 된다.
또한, 본 발명에 따른 탈중앙형 오라클 시스템은 이더리움과 같은 데이터 요청 블록체인에서의 연산을 최소화하고, 데이터를 가져오는 과정 검증을 대신하게 된다. 또한, 본 발명에 따른 탈중앙형 오라클 시스템은 PoET 합의 알고리즘을 통해 데이터 어뷰징(Data Abusing)을 방지하여 오라클 응답시간을 보장하게 됨에 따라, 블록체인이 오라클에 데이터를 요청하고 데이터를 받는 사이의 시간인 오라클 응답 시간을 최소화함으로써, 시간에 따라 변하는 사물인터넷 데이터를 블록체인에 제공할 수 있게 된다.
도 1은 본 발명의 바람직한 실시예에 따른 TEE를 기반으로 한 탈중앙형 오라클 시스템을 전체적으로 도시한 구성도이다.
도 2는 본 발명의 바람직한 실시예에 따른 신뢰 실행 환경을 기반으로 한 탈중앙형 오라클 시스템에 있어서, 합의 엔진 모듈에서 이루어지는 PoET 합의 과정을 도시한 모식도이다.
도 3은 본 발명의 바람직한 실시예에 따른 신뢰 실행 환경을 기반으로 한 탈중앙형 오라클 시스템에 있어서, 트랜잭션 처리장치(110)의 구조를 도시한 모식도이다.
도 4는 본 발명의 바람직한 실시예에 따른 탈중앙형 오라클 시스템에 있어서, 검증자의 원격 증명 과정을 설명하기 위하여 도시한 모식도이다.
도 5는 본 발명의 바람직한 실시예에 따른 탈중앙형 오라클 시스템에 있어서, 외부 데이터 전달을 위한 오라클 요청 및 응답 과정을 설명하기 위하여 도시한 모식도이다. 도 6은 본 발명의 바람직한 실시예에 따른 탈중앙형 오라클 시스템에 있어서, 오라클 요청 알고리즘에 대한 의사 코드이다.
도 7은 본 발명의 바람직한 실시예에 따른 탈중앙형 오라클 시스템에 있어서, 오라클 응답 알고리즘에 대한 의사 코드이다.
도 2는 본 발명의 바람직한 실시예에 따른 신뢰 실행 환경을 기반으로 한 탈중앙형 오라클 시스템에 있어서, 합의 엔진 모듈에서 이루어지는 PoET 합의 과정을 도시한 모식도이다.
도 3은 본 발명의 바람직한 실시예에 따른 신뢰 실행 환경을 기반으로 한 탈중앙형 오라클 시스템에 있어서, 트랜잭션 처리장치(110)의 구조를 도시한 모식도이다.
도 4는 본 발명의 바람직한 실시예에 따른 탈중앙형 오라클 시스템에 있어서, 검증자의 원격 증명 과정을 설명하기 위하여 도시한 모식도이다.
도 5는 본 발명의 바람직한 실시예에 따른 탈중앙형 오라클 시스템에 있어서, 외부 데이터 전달을 위한 오라클 요청 및 응답 과정을 설명하기 위하여 도시한 모식도이다. 도 6은 본 발명의 바람직한 실시예에 따른 탈중앙형 오라클 시스템에 있어서, 오라클 요청 알고리즘에 대한 의사 코드이다.
도 7은 본 발명의 바람직한 실시예에 따른 탈중앙형 오라클 시스템에 있어서, 오라클 응답 알고리즘에 대한 의사 코드이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 따른 신뢰 실행 환경(Trusted Execution Environment; TEE)을 기반으로 한 탈중앙형 오라클 시스템의 구성 및 동작을 구체적으로 설명한다.
먼저, 외부 소프트웨어로부터 고립된 환경에서 안전한 실행이 가능한 TEE는 여러 형태로 구현되어 각각 용어가 상이하다. 본 발명에서는 Intel Software Guard Extensions(SGX)를 기준으로 용어를 기술한다. 또한, 스마트 컨트랙트의 설명은 스마트 컨트랙트를 지원하는 블록체인 플랫폼 중 하나인 이더리움(Ethereum)의 스마트 컨트랙트를 기준으로 기술한다.
Enclave는 악의적인 개체로부터 응용 프로그램을 보호할 수 있는 독립적이고 안정성이 보장된 메모리 영역을 의미한다. Remote attestation은 Intel SGX의 고급 기능으로, Enclave가 안전한 환경에서 설정되었음을 원격 사용자에게 증명하는 프로세스다. Remote attestation을 통해 프로세스가 Enclave 내부에서 실행되었음과, 프로세스의 신원(Identity), 그리고 데이터와 코드의 무결성을 증명할 수 있다.
이더리움의 스마트 컨트랙트는 고유의 주소를 갖는 응용 프로그램이며, 실행하고자 하는 스마트 컨트랙트의 주소, 함수, 그리고 인자(Argument)를 지정한 트랜잭션을 생성함으로써 실행시킬 수 있다. 소스코드와 응용 프로그램의 데이터는 원장(혹은 블록)에 저장되어 있으며, 데이터들은 오로지 트랜잭션을 통해 값을 변화시킬 수 있다.
도 1은 본 발명의 바람직한 실시예에 따른 TEE를 기반으로 한 탈중앙형 오라클 시스템을 전체적으로 도시한 구성도이다. 도 1을 참조하면, 본 발명에 따른 탈중앙형 오라클 시스템(1)은 신뢰 실행 환경(Trusted Execution Environment; 'TEE')을 기반으로 한 복수 개의 오라클 노드들(10)이 P2P(Peer to Peer) 네트워크를 형성하여 구성된 것을 특징으로 하며, 상기 탈중앙형 오라클 시스템(1)은 외부 데이터 소스(30)들로부터 외부 데이터를 수집하여 무결성의 외부 데이터를 블록체인 네트워크로 전달하는 것을 특징으로 한다. 특히, 본 발명에 따른 탈중앙형 오라클 시스템은 프라이빗 블록체인 네트워크인 하이퍼레저 소투스(Hyper-ledger Sawtooths)를 이용하여 복수 개의 오라클 노드들이 P2P 블록체인 네트워크를 구성하는 것이 바람직하다. 한편, 상기 탈중앙형 오라클 시스템(1)은 외부의 블록체인 네트워크를 모니터링하는 클라이언트(50)를 더 구비하는 것이 바람직하다.
본 발명에 따른 탈중앙형 오라클 시스템을 구성하는 각 오라클 노드(10)는 검증자 노드이며, 검증자 노드는 합의 엔진 모듈(Consensus engine module;100), 트랜잭션 처리장치(Transaction Processor;110), 블록 매니지먼트 모듈(Block Management Module; 120) 및 P2P 네트워크 모듈(130)를 구비한다. 이하, 전술한 각 구성 요소들에 대하여 구체적으로 설명한다.
상기 합의 엔진 모듈(Consensus engine module;100)은, 블록 생성을 위한 합의 알고리즘이 구동되는 모듈이다. 도 2는 본 발명의 바람직한 실시예에 따른 신뢰 실행 환경을 기반으로 한 탈중앙형 오라클 시스템에 있어서, 합의 엔진 모듈에서 이루어지는 PoET 합의 과정을 도시한 모식도이다.
합의 알고리즘은 블록체인에 연결할 다음 블록을 누가 만들고 어떤 방법으로 결정할지에 대한 알고리즘이다. 종래의 일반적인 블록체인 네트워크는 합의 알고리즘으로 작업 증명(Proof-of-Work;'PoW') 방식을 주로 사용하며, PoW 방식은 모든 채굴 노드가 특정 해시값으로 이루어진 퍼즐을 풀고, 먼저 푼 노드가 블록을 생성하여 보상을 받게 된다. 하지만, 전술한 PoW 방식은 자원 낭비가 심하게 발생하게 되므로, 신뢰할 수 있는 네트워크 참여자만 참여하도록 구성된 프라이빗 블록체인 네트워크에서는 적합하지 않다. 따라서, 본 발명에 따른 탈중앙형 오라클 시스템은 프라이빗 블록체인 네트워크로 구성하고 PoET(Proof-of-Elapsed-Time) 합의 알고리즘을 사용하는 것이 바람직하다.
도 2를 참조하면, PoET는 각 블록체인 노드에게 동일한 연산인, 일종의 퍼즐을 신뢰 실행 환경의 Enclave 메모리 영역내에서 풀게 하고, 수행 시간만큼의 시드(seed) 값을 주고, 시드값을 기반으로 하여 리더 노드를 랜덤하게 선출하며, 이렇게 선출된 리더 노드가 블록 생성과 트랜잭션의 검증을 맡도록 하는 합의 방법이다. 전술한 PoET 방식은 기존의 PoW 방식에 비하여 적은 연산을 사용하며, 합의에 참여하는 노드 수가 증가하더라도 상수 시간내에 합의에 도달하게 된다. 또한, 최근 퍼블릭 블록체인에서 주로 사용되고 있는 PBFT 합의는 합의에 참여하는 노드의 수가 20개 이상이 되면 합의 속도가 급격하게 감소하는데 비하여, PoET 방식은 노드 수가 증가하더라도 합의에 도달하는 시간이 빠르므로 확장성이 있는 합의 알고리즘이라 할 수 있다.
도 3은 본 발명의 바람직한 실시예에 따른 신뢰 실행 환경을 기반으로 한 탈중앙형 오라클 시스템에 있어서, 트랜잭션 처리장치(110)의 구조를 도시한 모식도이다.
도 3을 참조하면, 상기 트랜잭션 처리장치(Transaction Processor;110)는 각 오라클 노드가 트랜잭션을 수행하는 공간을 의미하는 것으로서, 트랜잭션 처리장치가 외부 데이터 소스로부터 데이터를 가져오는 작업을 수행하게 된다. 오라클 요청은 클라이언트에 의해 소투스 체인의 트랜잭션으로 요청되고, 요청된 트랜잭션은 검증자 노드의 트랜잭션 처리장치에서 수행된다. 본 발명에 따른 탈중앙형 오라클 시스템에 있어서, 각 오라클 노드의 트랜잭션 처리장치에서 수행되는 트랜잭션은 신뢰 실행 환경의 Enclave 메모리 영내에서 수행된다. 트랜잭션의 입력은 요청된 오라클 데이터의 소스와 요청 시점의 블록 넘버이고, ecall을 통해 오라클 데이터 소스를 신뢰 실행 환경의 Enclave 내부로 보내면, Enclave 내에서 오라클 데이터 소스에 TLS Connection을 생성하고 데이터를 가져오게 된다. 이 후, Enclave 내에서 데이터를 가져오는 코드가 올바르게 수행된 결과물인 데이터와 수행된 코드의 바이트 코드를 저장한 Report 자료 구조를 ocall로 반환받게 된다.
한편, 본 발명에 따른 오라클 시스템을 구성하는 모든 오라클 노드는 잠재적으로 검증자가 될 자격이 있다. 따라서, 모든 오라클 노드는 검증자 기능을 갖는 블록 매니지먼트 모듈을 구비한다. 도 4는 본 발명의 바람직한 실시예에 따른 탈중앙형 오라클 시스템에 있어서, 검증자의 원격 증명 과정을 설명하기 위하여 도시한 모식도이다. 도 4를 참조하면, PoET 합의 알고리즘을 통해 선출된 리더 오라클 노드는 상기 블록 매니지먼트 모듈(Block Management Module; 120)을 통해, 다른 오라클 노드들이 수행한 트랜잭션을 자신의 트랜잭션 처리장치 내의 Enclave에서 원격 증명을 통해 검증하고, 해당 트랜잭션에 데이터 또는 코드 조작에 대한 문제가 없으면 블록에 포함시킨다. 이후 검증자는 일정 주기마다 블록을 생성하고 블록체인에 연결하여 블록을 배포하는 역할을 한다.
한편, 오라클 시스템으로 외부 데이터를 요청하는 블록체인 네트워크의 전달 스마트 컨트랙트는 블록체인 네트워크과 오라클 시스템을 연결해 주는 역할을 하는 스마트 컨트랙트로서, 블록체인 네트워크를 구성하는 노드들에 배포된다. 블록체인 네트워크의 일례로는 이더리움 등이 포함된다. 외부 데이터를 요구하는 사용자 컨트랙트가 전달 스마트 컨트랙터에 데이터를 요청하면, 요청된 트랜잭션이 블록체인 네트워크의 블록에 담기게 된다.
한편, 오라클 시스템의 클라이언트(50)는 블록체인 네트워크의 블록을 모니터링하면서, 해당 데이터 요청에 대한 트랜잭션을 발생시키는 형태로 오라클 요청을 진행하게 된다.
오라클 시스템의 리더 오라클 노드는 오라클 노드로부터 외부 데이터가 전달되면, 자신에 블록을 전파함과 동시에 해당 블록 넘버와 트랜잭션 해쉬, 그리고 외부 데이터를 포함시킨 이더리움 트랜잭션을 전달 스마트 컨트랙트에 발생시킨다. 이후, 전달 스마트 컨트랙트에서 콜백(Callback) 함수를 통해 사용자 컨트랙트에 데이터를 전달한다.
이하, 도 5 내지 도 7을 참조하여 본 발명의 바람직한 실시예에 따른 탈중앙형 오라클 시스템에 있어서의 외부 데이터 전달을 위한 오라클 요청 및 응답에 대한 동작 과정을 구체적으로 설명한다.
오라클 요청은 블록체인 네트워크의 사용자 컨트랙트(200)로부터 외부 데이터에 대한 요청이 발생하고, 전달 스마트 컨트랙트(210)를 통해 오라클 시스템에 트랜잭션이 발생하여 오라클 노드(10)의 트랜잭션 처리장치가 외부 데이터 소스(30)로부터 외부 데이터를 가져오는 과정까지를 의미한다. 오라클 응답은 오라클 노드의 트랜잭션 처리장치가 가져온 데이터를 PoET 합의 과정을 통해 오라클 시스템의 블록에 커밋(commit)되고, 이를 전달 스마트 컨트랙트를 거쳐 이더리움의 사용자 컨트랙트에 전달하는 과정이다.
도 5는 본 발명의 바람직한 실시예에 따른 탈중앙형 오라클 시스템에 있어서, 외부 데이터 전달을 위한 오라클 요청 및 응답 과정을 설명하기 위하여 도시한 모식도이다. 도 6은 본 발명의 바람직한 실시예에 따른 탈중앙형 오라클 시스템에 있어서, 오라클 요청 알고리즘에 대한 의사 코드이다.
도 5 및 도 6을 참조하여, 본 발명에 따른 탈중앙형 오라클 시스템에서의 오라클 요청 과정을 보다 구체적으로 설명한다. 오라클 요청 과정은 도 5의 과정 1부터 과정 5까지의 과정이다. 먼저, 블록체인 네트워크 상의 사용자 스마트 컨트랙트에서 전달 스마트 컨트랙트에게 오라클 요청을 보낸다(과정 1). 다음, 과정 1 이후, 블록체인 네트워크의 블록을 모니터링하던 오라클 시스템의 클라이언트가 오라클 요청이 발생하였음을 확인한다(과정 2). 다음, 클라이언트가 해당 오라클 요청에 대한 오라클 시스템의 트랜잭션을 발생시킨다(과정 3). 다음, 오라클 노드는 자신의 로컬 트랜잭션 처리장치에서 해당 트랜잭션을 수행한다(과정 4). 이때, 트랜잭션 처리장치의 비신뢰영역에서 신뢰 영역으로의 ocall이 발생한다. 다음, 오라클 노드가 신뢰 실행 환경의 Enclave 내에서 오라클 요청에 대한 TLS 통신을 연결하고 외부 데이터를 받아온다(과정 5).
다음, 도 5 및 도 7을 참조하여, 본 발명에 따른 탈중앙형 오라클 시스템에서의 오라클 응답 과정을 보다 구체적으로 설명한다.
도 7은 본 발명의 바람직한 실시예에 따른 탈중앙형 오라클 시스템에 있어서, 오라클 응답 알고리즘에 대한 의사 코드이다. 오라클 응답은 트랜잭션을 수행한 오라클 노드가 외부 데이터 소스로부터 데이터를 전달받은 이후 과정부터 최종적으로 블록체인 네트워크의 사용자 컨트랙트에 데이터가 전달되기 까지의 과정이다. 도 5의 과정 6 내지 과정 11이 오라클 응답 과정이다. 먼저, PoET 합의 알고리즘에 의해 선출된 리더 오라클 노드에게 트랜잭션 처리 장치에서 수행된 코드와 데이터가 포함된 report 데이터를 보내면, 리더 오라클 노드는 자신의 로컬 Enclave에서 원격 증명을 수행하여 데이터와 코드를 검증한다(과정 6). 다음, 과정 6 이후 검증된 트랜잭션을 포함한 블록을 생성하고(과정 7), 이를 자신의 로컬 상태 데이터베이스의 블록체인에 연결한다(과정 8). 다음, 생성된 블록을 P2P 네트워크를 통해 전파하여 블록생성 과정을 마친다(과정 9). 다음, 리더 오라클 노드가 외부 데이터를 이더리움 전달 스마트 컨트랙트에 트랜잭션을 발생시켜 전송하고(과정 10), 마지막으로 전달 스마트 컨트랜트가 외부 데이터를 요청한 사용자 컨트랙트에 데이터를 보내는 트랜잭션을 생성하여(과정 11) 오라클 응답을 종료한다.
이상에서 본 발명에 대하여 그 바람직한 실시예를 중심으로 설명하였으나, 이는 단지 예시일 뿐 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 분야의 통상의 지식을 가진 자라면 본 발명의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 그리고, 이러한 변형과 응용에 관계된 차이점들은 첨부된 청구 범위에서 규정하는 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다.
1 : 탈중앙형 오라클 시스템
10 : 오라클 노드
20 : 외부 블록체인 네트워크
200 : 사용자 컨트랙트
210 : 전달 스마트 컨트랙트
50 : 클라이언트
30 : 외부 데이터 소스
100 : 합의 엔진 모듈(Consensus engine module)
110 : 트랜잭션 처리장치(Transaction Processor)
120 : 블록 매니지먼트 모듈(Block Management Module)
130 : P2P 네트워크 모듈
10 : 오라클 노드
20 : 외부 블록체인 네트워크
200 : 사용자 컨트랙트
210 : 전달 스마트 컨트랙트
50 : 클라이언트
30 : 외부 데이터 소스
100 : 합의 엔진 모듈(Consensus engine module)
110 : 트랜잭션 처리장치(Transaction Processor)
120 : 블록 매니지먼트 모듈(Block Management Module)
130 : P2P 네트워크 모듈
Claims (8)
- 복수 개의 오라클 노드들이 프라이빗 블록체인 네트워크로 구성되어 외부의 블록체인 네트워크로부터의 요청에 따라 외부 데이터 소스의 데이터를 제공하는 것을 특징으로 하며,
상기 오라클 노드는,
외부의 블록체인 네트워크에 의해 요청된 트랜잭션을 신뢰 실행 환경(TEE)에서 수행하는 트랜잭션 처리 장치;
PoET(Proof-of-Elapsed-Time) 합의 알고리즘에 따라 상기 복수 개의 오라클 노드들 중 리더 오라클 노드를 무작위로 선출하는 합의 엔진 모듈; 및
리더 오라클 노드로 선출되면, 검증자로서 일정 주기마다 블록을 생성하고 블록체인에 연결하여 블록을 배포하도록 구성된 블록 매니지먼트 모듈;
을 구비하여, 상기 오라클 노드가 오라클 요청에 따른 트랜잭션을 수행하여 외부 데이터 소스로부터 데이터를 전달받으면, 트랜잭션 처리 장치에서 수행된 코드와 상기 전달받은 데이터가 포함된 리포트 데이터(Report Data)를 리더 오라클 노드에게 전송하는 것을 특징으로 하며,
상기 합의 엔진 모듈에 의해 PoET 합의 알고리즘에 따라 오라클 노드들 중에서 선출된 리더 오라클 노드가 검증자 노드로서 동작할 수 있도록 구성된 것을 특징으로 하며,
상기 리더 오라클 노드는, 리포트 데이터에 포함된 코드와 데이터에 대하여 신뢰 실행 환경에서 원격 증명을 수행하여 검증하고, 검증된 트랜잭션을 포함한 블록을 생성하여 자신의 블록체인에 연결하고, 생성된 블록을 P2P 블록체인 네트워크를 통해 전파하고, 블록체인 네트워크의 전달 스마트 컨트랙트에 트랜잭션을 발생시켜 상기 검증된 데이터를 블록체인 네트워크로 전송하는 것을 특징으로 하는 탈중앙형 오라클 시스템. - 제1항에 있어서,
상기 오라클 노드들은 프라이빗 블록체인 네트워크인 하이퍼레저를 이용하여 peer-to-peer(P2P) 블록체인 네트워크를 구성한 것을 특징으로 하는 탈중앙형 오라클 시스템. - 제1항에 있어서,
상기 PoET 합의 알고리즘은 각 오라클 노드들이 동일한 연산을 푸는 수행 시간만큼의 시드값을 기반으로 하여 리더 오라클 노드를 무작위로 선출하고,
무작위로 선출된 리더 오라클 노드가 블록을 생성하고 트랜잭션을 검증하는 것을 특징으로 하는 탈중앙형 오라클 시스템. - 제1항에 있어서, 상기 탈중앙형 오라클 시스템은,
외부의 블록체인 네트워크의 전달 스마트 컨트랙트를 모니터링하는 클라이언트를 더 구비하고, 상기 클라이언트는 블록체인 네트워크로부터 오라클 요청에 대한 트랜잭션을 발생시키는 것을 특징으로 하며,
상기 오라클 노드는 상기 클라이언트로부터 발생된 트랜잭션을 트랜잭션 처리 장치에서 수행하여 외부 데이터 소스로부터 데이터를 받아오는 것을 특징으로 하는 탈중앙형 오라클 시스템. - 삭제
- 프라이빗 블록체인 네트워크를 구성한 복수 개의 오라클 노드들 및 오라클 노드에 연결된 클라이언트를 구비하여, 외부의 블록체인 네트워크로부터의 요청에 따라 외부 데이터 소스의 데이터를 제공하는 탈중앙형 오라클 시스템에서의 오라클 노드 및 클라이언트에 의해 수행되는 외부 데이터 전달 방법에 있어서,
(a) 클라이언트가 전달 스마트 컨트랙트를 모니터링하여 오라클 요청에 대한 트랜잭션을 발생시키는 단계;
(b) 오라클 노드가 클라이언트로부터 발생된 트랜잭션을 트랜잭션 처리 장치에서 수행하여 외부 데이터 소스로부터 데이터를 받아오는 단계;
(c) 상기 오라클 노드가 트랜잭션 처리 장치에서 수행된 코드와 상기 외부 데이터 소스로부터 받아온 데이터가 포함된 리포트 데이터를 리더 오라클 노드에게 전송하는 단계; 및
(d) 오라클 노드로부터 리포트 데이터를 전달받은 상기 리더 오라클 노드는, 상기 리포트 데이터에 포함된 코드와 데이터에 대하여 신뢰 실행 환경에서 원격 증명을 수행하여 검증하고, 검증된 트랜잭션을 포함한 블록을 생성하여 자신의 블록체인에 연결하고, 생성된 블록을 P2P 블록체인 네트워크를 통해 전파하고, 블록체인 네트워크의 전달 스마트 컨트랙트에 트랜잭션을 발생시켜 상기 검증된 데이터를 블록체인 네트워크로 전송하는 단계;
를 구비하는 것을 특징으로 하는 TEE를 이용한 탈중앙형 오라클 시스템에서의 외부 데이터 전달 방법. - 제6항에 있어서, 상기 TEE를 이용한 탈중앙형 오라클 시스템에서의 외부 데이터 전달 방법에 있어서,
상기 리더 오라클 노드는 PoET 합의 알고리즘에 따라 상기 복수 개의 오라클 노드들 중에서 선출되는 것을 특징으로 하는 TEE를 이용한 탈중앙형 오라클 시스템에서의 외부 데이터 전달 방법.
- 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200102278A KR102565850B1 (ko) | 2020-08-14 | 2020-08-14 | 신뢰 실행 환경을 기반으로 한 탈중앙형 오라클 시스템 및 상기 시스템에서의 외부 데이터 전달 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200102278A KR102565850B1 (ko) | 2020-08-14 | 2020-08-14 | 신뢰 실행 환경을 기반으로 한 탈중앙형 오라클 시스템 및 상기 시스템에서의 외부 데이터 전달 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220021576A KR20220021576A (ko) | 2022-02-22 |
KR102565850B1 true KR102565850B1 (ko) | 2023-08-09 |
Family
ID=80494149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200102278A KR102565850B1 (ko) | 2020-08-14 | 2020-08-14 | 신뢰 실행 환경을 기반으로 한 탈중앙형 오라클 시스템 및 상기 시스템에서의 외부 데이터 전달 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102565850B1 (ko) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10169591B2 (en) | 2015-12-07 | 2019-01-01 | Amazon Technologies, Inc. | Chained security systems |
US20190095879A1 (en) | 2017-09-26 | 2019-03-28 | Cornell University | Blockchain payment channels with trusted execution environments |
KR20200062889A (ko) * | 2018-11-27 | 2020-06-04 | 한국전자통신연구원 | 블록체인 시스템에서 계층적 합의 알고리즘에 기초하여 블록 합의를 수행하는 방법 및 장치 |
KR102023101B1 (ko) | 2018-12-20 | 2019-11-04 | 주식회사 엔퍼 | 원본 데이터의 위변조 방지 장치 및 그 방법 |
-
2020
- 2020-08-14 KR KR1020200102278A patent/KR102565850B1/ko active IP Right Grant
Non-Patent Citations (2)
Title |
---|
A. Beniiche, A Study of Blockchain Oracles, arXiv:2004.07140v2(2020.07.14.)* |
O. Dib et al., Consortium Blockchains: Overview, Applications and Challenges, International Journal on Advances in Telecommunications Vol.11(2018)* |
Also Published As
Publication number | Publication date |
---|---|
KR20220021576A (ko) | 2022-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11388152B2 (en) | Manicoding for communication verification | |
US20230023857A1 (en) | Data processing method and apparatus, intelligent device, and storage medium | |
TWI740423B (zh) | 在基於區塊鏈的私有交易中提供隱私和安全保護的系統和方法 | |
TW202038221A (zh) | 使用可信執行環境檢索區塊鏈網路的公開資料 | |
CN110993044A (zh) | 一种医疗联盟链轻量级动态自主跨链交互方法 | |
JP6951649B2 (ja) | ブロック検証装置、ブロック検証方法、及びプログラム | |
JP2024505692A (ja) | ブロックチェーンネットワークに基づくデータ処理方法、装置及びコンピュータ機器 | |
US20230097738A1 (en) | Data processing method and apparatus, device, and storage medium | |
EP3543887B1 (en) | Incentivized delivery network of iot software updates based on trustless proof-of-distribution | |
KR20220045025A (ko) | 탈중앙화된 트랜잭션의 통신 프로토콜을 위한 방법 및 시스템 | |
Ren et al. | HCNCT: A cross-chain interaction scheme for the blockchain-based metaverse | |
CN114422146B (zh) | 一种区块链主节点匿名排序方法 | |
Kottursamy et al. | A novel blockchain architecture with mutable block and immutable transactions for enhanced scalability | |
KR102565850B1 (ko) | 신뢰 실행 환경을 기반으로 한 탈중앙형 오라클 시스템 및 상기 시스템에서의 외부 데이터 전달 방법 | |
KR102518634B1 (ko) | 트랜잭션 처리 속도 향상이 가능한 블록체인 합의 시스템 및 방법 | |
CN116126480A (zh) | 事务的跨区块链处理方法、装置及智能设备、介质、产品 | |
CN115796861A (zh) | 一种区块链上跨链交易方法、***、设备及存储介质 | |
KR20210150810A (ko) | 이종의 블록체인 플랫폼에서 거래 무결성 및 비밀성을 제공하는 방법 | |
KR102534411B1 (ko) | 네트워크 확장성을 고려한 블록체인 합의 시스템 및 방법 | |
KR102428950B1 (ko) | 오프체인 결제 방법 및 그 시스템 | |
Tarmissi et al. | A Literature Review of Bitcoin Network Infrastructure, Methodology, and Challenges | |
CN111162970B (zh) | 在区块链***中测试去中心化应用服务器的方法及装置 | |
Marcer Albareda | Fog-Applying blockchain to secure a distributed set of clusters | |
El Abid et al. | LighTx: A Lightweight Proof-of-Bandwidth Transactions Transfer System | |
Theuermann | Institute of Applied Information Processing and Communications, Graz Technical University, 8010 Graz, Austria kevin. theuermann@ egiz. gv. at |
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 |