Tech-Trends

(블록체인) 블록체인의 데이터신뢰 : 오라클 문제와 해결 (Oracle Problem)

IT오이시이 2022. 4. 16. 22:22
728x90

 

 

[ 블록체인 관련 정리 ]
* 블록체인 생태계와 용어 정리(1)
* 블록체인 생태계와 용어 정리(2)
* 암호화 화폐의 분류
* 암호화폐. 전자지갑
* 블록체인의 데이터신뢰 : 오라클 문제와 해결(Oracle Problem)
* NFT 표준 기초 용어 와 ERC20 ERC721 ERC1155 표준

[출처] https://couplewith.tistory.com/search/블록체인

 

* 블록체인의 오라클 문제 (Oracle Problem)
블록체인 분야에서 오라클(oracle)이란 블록체인 밖에 있는 데이터를 블록체인 안으로 가져오는 것을 말합니다.


오라클(Oracle)이란?

흔히 오라클 하면 데이터베이스라고 생각 하지만 블록체인의 오라클은 다른 의미로 해석 합니다.
오라클(oracle)이라는 용어의 유래는 고대 그리스 신화에서 유래한 것으로, 신과 직접 소통하고 미래를 예언하는 신탁자 게시자를 말합니다.


블록체인 환경 에서 오라클은 현실 세계에서 오는 정보를 블록체인에 제공하는 시스템입니다.
오라클을 통해서 블록체인이 실세계의 비즈니스와 연결되면서 발생하는 불확실한 상황을 해결하거나 확인하여 데이터의 신뢰를 보장하려는 것입니다.


블록체인 메커니즘은 내부의 데이터를 신뢰 노드간의 합의를 통해 데이터를 분산 저장하는 네트웍 시스템입니다. 그런데 스마트 계약이 API나 외부 데이터를 활용해서 외부와 거래를 하면서 잘못된 데이터가 유입되는 경우 신뢰와 합의를 어떻게 할 것인가에 대한 문제가 생깁니다.
잘못된 계약정보나 상태확인(취소, 부적합, 오입력)과 같이 현실세계에서 흔히 일어나는 사소한 데이터 오류 부터 인위적인 데이터 변조에 대한 대응이 필요 하다는 것이 오라클 문제라고 보시면 됩니다.
따라서 현실 세계에서 오는 정보는 모든 노드에 대해 신뢰성이 의심의 여지가 없는 오라클인 제3자 univocal 소스를 통해 해결하려는 것이 오라클 문제의 해결책이라는 점입니다.

그런측면에서 블록체인의 스마트계약과 오라클 문제를 해결하는 방안에 대한 정리를 해보았습니다.

 

블록체인의 오라클 문제 (Oracle Problem)


* 블록체인과 스마트계약
블록체인의 스마트계약(Smart Contracts)은 계약 이행 및 검증의 과정이 네트워크 상에서 자동화 됩니다. 계약실행 조건과 확인을 하는 사람의 간섭 없이 블록체인의 네트워크와 Dapp 프로그램을 통해서 자동적으로 실행이 됩니다. 스마트계약을 통해서 복잡한 복잡한 사업상의 계약 과정을 적은 비용으로 블록체인은 합의 과정으로 신뢰와 안전한 계약이 가능합니다.

* 스마트계약을 이용한 전자 계약
스마트 계약은 중간에 제3의 보증기관의 참여 없이 개인간(P2P)에 원하는 계약을 체결할 수 있도록 해주는 디지털 전자계약 기능입니다. 솔리디티(solidity)라는 프로그래밍 언어를 사용하여, 계약 기간, 금액, 조건 등을 미리 코딩해 두면, 부동산 거래, 중고 자동차 거래, 무역 거래 등 어떠한 종류의 계약도 자동 실행되도록 만들 수 있습니다.

※ 스마트 계약은 1994년 닉 재보(Nick Szabo)가 처음 제안하였으나 실제로 구현하지는 못하였습니다. 2013년 당시 19세의 천재 프로그래머였던 비탈릭 부테린(Vitalik Buterin)은 스마트 계약 플랫폼인 이더리움(Ethereum)을 개발할 것을 제안하였고, 2015년 7월 30일 이더리움 개발에 성공하여 실제 서비스를 시작했습니다.


* 스마트 계약 플랫폼 - 이더리움
이더리움(Ethereum)은 비트코인 스크립트 시스템의 튜링 불완전성이라는 한계를 극복하고자 나온 스마트 컨트랙트 플랫폼(smart contract platform)입니다. 이더리움 블록체인은 블록에 데이터뿐만 아니라 비트코인 스크립트 시스템의 한계인 조건문(if), 반복문(loop) 등의 실행 코드를 포함시켜 로직의 실행을 자동화할 수 있습니다.


스마트 컨트랙트를 구현하기 위한 컨트랙트 코드(contract code)는 이더리움 가상머신(EVM; Ethereum Virtual Machine)이라는 독립된 실행 환경에서 실행됩니다. 여기에 스마트 컨트랙트를 실행할 때마다 수수료인 가스(gas)를 발생시키고 네트워크상에 수수료의 한계를 설정하여 무한루프를 막았습니다. 무한히 반복되는 조건을 만들어 스마트 컨트랙트를 실행시키면 중간에 수수료 한계점에 도달하면 중단되는 구조 입니다.

 

* 스마트 계약 의 구현

이더리움에서 스마트 컨트랙트는 솔리디티(Solidity) 언어로 프로그래밍 됩니다. 프로그래밍된 스마트 컨트랙트는 컴파일러(solc)에 의해 바이트코드(bytecode)로 컴파일되고, 컴파일된 바이트코드는 블록에 포함되어, 이더리움 가상머신(EVM)에 의해 실행됩니다.

스마트 계약은 사용자들의 계약에 필요한 조건과 상태를 프로그래밍 언어로 코딩 규칙에 따라 '어떤 상태'를 '다른 상태'로 변환시키는 기능(arbitrary state transition functions)을 작성 할수 있습니다. 이로써 인간이 상상할 수 있는 모든 종류의 계약을 스마트 컨트랙트로 작성이 가능합니다. 또 모든 계약은 자동으로 실행할 수 있고, 이를 위한 다양한 분산형 애플리케이션인 디앱(DApp)도 만들 수 있습니다.

블록체인 기반 스마트 컨트랙트는 기본적으로 모든 트랜잭션 로그가 저장된 블록체인 데이터베이스와 스마트 컨트랙트의 상태를 저장하는 데이터베이스 두 가지가 존재합니다.
스마트 컨트랙트는 상태를 변경할 수 있는 애플리케이션이라고 할 수 있고, 스마트 컨트랙트의 상태는 해당 애플리케이션에서 사용하는 변수라고 할 수 있으며, 이를 변경하기 위한 입력값은 트랜잭션에 포함되어 있습니다.
* 데이터베이스에 접근 할수 있는 인터페이스로 트랜잭션(transaction)과 쿼리(query)가 제공 됩니다.
* 트랜잭션(Transaction)을 통해 스마트 컨트랙트의 상태를 트랜잭션 데이터베이스에 저장하고
* 쿼리(Query)는 트랜잭션 데이터베이스에 기록이 남지 않으면서 스마트 컨트랙트의 상태를 읽을수 있습니다.
* 트랜잭션은 쓰기, 삭제, 수정을 실행하고, 쿼리는 읽기를 통한 조회만을 실행할 수 있습니다.

 

* 닉재보의 스마트 계약 설계 원칙 (1996)

관측 가능성, 검증 가능성, 사생활 보호, 강제 가능성 등 4가지의 스마트계약 설계 원칙을 제시 하였습니다.

1) 관측 가능성(observability): 스마트 계약은 서로의 계약 이행 가능성을 관찰하거나 성과를 입증할 수 있어야 한다.
2) 검증 가능성(verifiability): 계약을 이행 또는 위반했을 때 이를 알 수 있어야 한다.
3) 사생활 보호(privacy): 계약 내용은 계약에 관련된 당사자들에게만 알려져야 한다.
4) 강제 가능성(enforceability): 계약을 강제로 이행할 수 있는 구속력이 있어야 한다.

 

오라클 문제

- 오프체인 : 블록체인 밖에 있는 데이터
- 온체인 : 블록체인 내부에 있는 데이터
- 오라클 : 블록체인 밖의 데이터를 안으로 가져오는 것

 

* 블록체인의 오라클 문제 (Oracle Problem)

블록체인 분야에서 오라클(oracle)이란 블록체인 밖에 있는 데이터를 블록체인 안으로 가져오는 것을 말합니다.

블록체인(blockchain)은 데이터의 위변조가 거의 불가능한 분산 저장 기술이지만, 데이터를 블록체인 안으로 들어와야 블록체인으로 관리할 수 있습니다.

데이터가 블록체인 안으로 들어오지 않거나, 블록체인 안으로 들어오는 과정에서 위변조가 발생한다면, 그 데이터가 블록체인으로 관리된다고 할지라도 신뢰하기 어렵게 됩니다.


이 오라클 문제를 해결하기 위해 현실 세계와 블록체인 사이에서 신뢰할 수 있는 데이터를 제공해 주는 중간자(middleware)를 두는 방법이 있습니다.

오라클 문제(oracle problem)는 스마트 계약과 같이 블록체인의 내부의 프로그램과 외부 세상의 데이터가 일치 하지 못하는 데서 발생하는 문제입니다.


스마트 계약을 이용하면, 계약 당사자가 사전에 협의한 계약 내용을 미리 프로그래밍하여 블록체인 안에 넣어두고, 이 계약 조건이 모두 충족되면 자동으로 계약 내용이 실행되도록 할 수 있습니다.
하지만 스마트 계약의 가장 큰 문제점은 블록체인 외부에서 나타나는 현상에 대한 정보를 수집할 수가 없다는 것입니다. 즉  스마트 계약을 자동으로 실행하기 위해 외부 데이터를 가져오는 과정에서 오라클 문제가 발생할 수 있게 됩니다.
그렇기 때문에 일정한 규모와 조직을 갖춘 기업이나 단체가 중간자 또는 미들웨어 역할을 맡을 필요가 있습니다. 이들은 특정 분야의 데이터를 체계적으로 수집한 후 해당 정보가 필요한 블록체인 네트워크에 체계적으로 정보를 제공할 수 있습니다. 그렇게 하면 블록체인 네트워크는 굳이 직접 나서서 오라클 문제를 해결할 필요 없이, 중간자가 제공하는 안정적이고 체계적인 데이터를 그대로 받아서 블록체인 안에 넣어주기만 하면 됩니다.

 

* 중간자 업체를 이용한 오라클 문제 해결

이러한 중간자의 사례로 오라클라이즈(Oraclize), 체인링크(Chainlink), 아이캐시(iCash), 톰슨로이터원 등이 있습니다.


1) 오라클라이즈(Oraclize) : http://www.oraclize.it

영국 런던에 있는 데이터 제공 회사이기도 하다. 현실 세계의 다양한 데이터를 수집하여 스마트 계약을 운영하려는 블록체인 네트워크에게 API 방식으로 제공해 주는 오라클 서비스를 하고 있습니다.


2) 체인링크(Chainlink) : http://chain.link

체인링크는 블록체인의 스마트 계약을 블록체인 외부의 데이터, 결제, API 등에 연결하기 위해 사용하는 블록체인 미들웨어 플랫폼이자 암호화폐입니다. 체인링크는 이더리움 기반으로 작동하는 각종 스마트 계약이 현실 세계의 데이터와 쉽게 연결되도록 돕는 역할을 합니다.
스위프트(Swift)와 협력하여 '스위프트 스마트 오라클'이라는 기능을 개발하고, 전세계 약 11,000개 은행에서 사용되고 있는 스위프트 외 다수의 파트너십 제휴를 통해서 기존 오라클 시스템의 탈중앙화를 이뤄 분산형 오라클 및 소스 시스템을 통해 실물 세계를 블록체인과 연결하는데 있어서 더욱 정확한 데이터를 제공하고 있습니다.

 

Chainlink: The Industry-Standard Web3 Services Platform

Chainlink connects the world to blockchains—enabling developers, startups, and enterprises to build tangible use cases that unlock real value in Web3.

chain.link


3)아이캐시(i-Cash) :

아이캐시는 신뢰증명(PoT) 프로토콜을 다중 플랫폼으로써 블록체인 애플리케이션으로 도입해, 대규모로 스마트 계약 결제 시 여러 곳에 분산된 참가자들에게 실제 입력값을 검증 받도록 지원하는 플랫폼입니다.
원래 블록체인의 기술의 가장 큰 장점은 중앙집권적 관리자나 중개인을 두지 않고도 일체의 데이터 조작이나 해킹의 위험이 없이 원장에 거래가 기록된다는 점입니다. 그러나 블록체인 상에 기록된 데이터의 신뢰성을 인증해주는 솔루션이 많이 존재하지 않습니다. 아이캐시 솔루션은 신뢰증명(PoT) 프로토콜에 기반한 것으로 스마트 계약의 입력과 결과의 정확성을 보장하여 신뢰와 보증을 해주는 역할을 합니다.
아이캐시는 자체적인 프로토콜을 통해서 모든 원장 상에서 스마트계약 결과를 검사하고, 데이터 입력과 결과의 정확성을 항상 인증하고 감사를 실시합니다.

 


 

블록체인 관련 정리

 

 

 

 

[출처] https://couplewith.tistory.com/search/블록체인

728x90
반응형