[쟁글 아카데미] 오라클 ①
[목차]
오라클의 정의와 오라클 활용 사례
- 오라클 문제란
- 오라클 문제의 해결방법: 오라클 미들웨어
- 오라클 주요 활용 사례: 디파이
1. 오라클 문제란?
오라클 문제(Oracle Problem)란 외부 환경의 데이터(오프체인 데이터)를 고립된 네트워크의 성질을 띈 블록체인으로 전달해야 하는 과제를 뜻합니다.
블록체인은 분산화된 컴퓨터들이 미리 결정된 합의 규칙 및 공유 원장에 기록된 데이터를 기반으로 연산을 수행합니다. 그렇기 때문에 블록체인에 기록된 장부는 높은 신뢰성과 보안성을 자랑하지만, 다른 한편으로는 신뢰할 수 없는 외부 데이터와는 단절될 수밖에 없습니다.
즉, 블록체인은 본질적으로 외부환경과 단절된 고립 네트워크인 것입니다. 이러한 고립 네트워크의 성질 덕분에 블록체인에 기록된 결과물은 위변조, 검열 등 악의적인 공격에 대해 면역을 가질 수 있습니다.
그러나 이러한 고립 네트워크라는 성질 때문에 블록체인은 바깥 세상의 데이터를 받아들일 수 없게 됩니다. 검증을 거치지 않은 외부 데이터를 받아들인다면 블록체인 장부의 완전무결성이 깨지기 때문이죠.
문제는 세상 대부분의 정보가 이러한 오프체인 데이터에 있다는 것입니다.
날씨, 자산 가격, 경기 결과 등 세상 대부분의 정보는 블록체인이 아닌 오프체인에서 만들어집니다. 이 때문에 블록체인에서 오프체인 데이터를 활용하지 않는다면 토큰의 유틸리티가 매우 제한적이게 되는 이슈가 발생합니다.
특히 스마트 컨트랙트를 사용하는 이더리움이 등장하면서, 스마트 컨트랙트를 활용하는 수많은 디앱(dApp)들은 이러한 오프체인 데이터를 필요로 하게 되었습니다. 이러한 디앱의 필요 때문에 오프체인 데이터를 블록체인으로 전달해야하는 오라클 문제가 발생하게 된 것이죠.
오라클 문제를 예시를 들어 설명해보겠습니다. 예를 들어, 축구 경기의 승패에 따라 배팅을 하는 디앱이 있다고 가정해보죠. 이 디앱에서는 경기의 결과에 따라 사용자에게 보상을 분배하는 스마트 컨트랙트를 작성했습니다.
그러나 축구 경기 결과는 오프체인 데이터인데 이러한 오프체인 데이터를 신뢰할 수 있을까요? 결과를 입력하는 주체가 만약에 악의적으로 결과를 조작한다면 이를 막을 방법은 없습니다. 그렇게 되면 블록체인의 전체 신뢰성이 의심받게 되는 상황이 생기는 것이죠. 이러한 문제가 바로 오라클 문제의 대표적인 예시입니다.
2. 오라클 문제의 해결 방법: 오라클 미들웨어
그렇다면 오라클 문제에 대한 해결방법은 무엇일까요?
블록체인(온체인)과 외부(오프체인) 사이를 연결하는 오라클이라는 별도의 미들웨어 인프라가 바로 그 해결방법으로 탄생하게 되었습니다. 오라클이라는 미들웨어에서 데이터에 대한 검증을 하겠다는 것이죠.
오라클은 1) 데이터를 취합하며, 2) 데이터를 검증하는 역할을 하게 됩니다.
오라클은 크게 데이터 제공자, 데이터 검증자, 데이터 소비자, 그리고 데이터 어그리게이터, 이렇게 네 주체로 구성되어 있습니다. 그리고 이 오라클의 데이터를 데이터 소비자가 제공받게 되는 것이죠.
데이터 제공자는 오프체인의 데이터를 제공하는 주체입니다.
데이터 검증자는 데이터 제공자로부터 제공받은 데이터에 악의적인 정보가 섞여있지 않는지에 대해서 검증을 합니다.
데이터 검증자가 데이터 검증을 마치면 데이터 어그리게이터에서는 검증을 마친 모든 데이터들을 모두 취합하여 하나의 정보로 데이터 소비자에게 제공을 합니다.
그리고 데이터 소비자는 데이터를 사용하는 대신 사용료를 지불합니다.
3. 오라클 주요 활용 사례: 디파이
그렇다면 오라클은 실제 서비스에서 어떻게 활용될까요?
오라클의 활용가능성은 무궁무진합니다. 스포츠 경기 승패부터 날씨, 자산 가격 등 사회 전 분야에서 적용이 가능하기 때문이죠.
그러나 아직 블록체인에 적용되는 오라클은 많지 않습니다. 아직 블록체인 업계가 수많은 오프체인 데이터를 활용할만큼 성숙하지 않았습니다. 그렇기 때문에 아직 오라클 기술이 적용되는 섹터는 다소 제한적이죠.
이러한 가운데, 블록체인 업계에서 가장 적극적으로 오라클을 활용하는 섹터는 바로 탈중앙화 금융인 디파이입니다. 디파이에서 크립토 자산의 가격 정보는 오프체인 데이터이기 때문에 스테이블 코인부터 DEX, 렌딩 등 모든 분야에서 오라클이 필요합니다.
예를 들어, Compound에 ETH를 예치하고 DAI를 대출한다고 해봅시다. 이 때, Compound는 ETH의 달러 가치가 얼마인지에 대한 데이터가 필요합니다. 즉, Compound는 데이터 소비자인 것이죠.
이러한 데이터 소비자의 수요를 충족시키기 위해 데이터 제공자들은 중앙화 거래소(CEX) 혹은 코인마켓캡(Coinmarketcap)과 같은 가격 정보 사이트 등으로부터 ETH 가격 데이터를 가지고 와서 제공합니다.
그러면 이 가격 데이터는 데이터 검증자으로부터 검증을 받게 되죠. 검증을 마친 가격 데이터들은 데이터 어그리게이터에서 하나로 취합되어 하나의 가격 데이터(가격 피드)로 제공되게 됩니다.
이 외에도 수없이 많은 디파이 프로토콜을 만들기 위해서는 반드시 프로젝트는 오라클을 사용해야 합니다. 이렇듯 현재 블록체인에서 오라클은 뗄레야 뗄 수 없는 필수적인 요소입니다.
이번 글에서는 1) 오라클 문제와 2) 오라클, 3) 오라클의 주요 활용사례에 대해서 알아보았습니다. 다음 글에서는 오라클의 종류와 써드파티(Third-Party) 오라클에 대해서 알아보도록 하겠습니다.
비슷한 리서치 보러가기
- [쟁글 아카데미] 오라클 ②
- [쟁글 아카데미] 오라클 ③
- [쟁글 아카데미] 가상자산 지갑 ①
- 체인링크(Chainlink), 그레이스케일이 선택한 업계 1위 오라클 솔루션
- 메타마스크 지갑 설치 및 메타마스크 사용법 정리