본문으로 건너뛰기
0%

오라클이란?

Alchemy team headshot

작성자 Alchemy

2022년 3월 22일에 게시됨4분 읽기

소개

스마트 컨트랙트는 특정 이벤트나 조건이 충족되면 자체적으로 실행되는 프로그램이다. 이러한 이벤트는 블록체인 상에서 발생할 수도 있고 블록체인 외부에서 발생할 수도 있다. 예를 들어, 온체인 이벤트의 경우 발신자가 대출 담보로 스마트 컨트랙트에 자금을 보내면 이를 트리거로 대출 금액이 전송될 수 있다. 오프체인 이벤트의 경우, 스마트 컨트랙트는 언제 실행해야 할지 알기 위해 해당 이벤트에 대한 정확한 데이터를 가져올 방법이 필요할 수 있다. 오라클은 스마트 컨트랙트에 데이터 소스 역할을 함으로써 오프체인 세계와 온체인 스마트 컨트랙트를 연결한다.

오프체인 데이터를 온체인 스마트 컨트랙트에 연결하는 오라클 다이어그램
Source: https://www.leewayhertz.com/chainlink-solving-blockchain-oracle-problem/https://www.leewayhertz.com/chainlink-solving-blockchain-oracle-problem/

개발자가 오라클을 사용하는 방법

스마트 컨트랙트를 사용하는 이점은 중개자 역할을 할 제3자가 필요 없다는 것이다. 코드가 스마트 컨트랙트의 조건을 결정하며, 코드가 곧 법이다. 이러한 조건은 트랜잭션이 실행되기 전에 조건이 충족되어야 하는지를 외부 이벤트에 의존할 수 있다. 예를 들어, 스마트 컨트랙트를 사용하여 미국 달러 가치를 기반으로 토큰 교환을 실행할 수 있다. 스마트 컨트랙트는 언제 교환을 수행해야 할지 알기 위해 오라클에 쿼리를 보내 외부 소스로부터 미국 달러의 가치를 가져온다.

블록체인 오라클에 외부 데이터를 요청하는 스마트 컨트랙트 다이어그램
Source: https://coin98insights.com/what-is-blockchain-oracle

탈중앙화 금융(DeFi)은 오라클의 가장 큰 활용 사례 중 하나이다. 가격 오라클은 토큰과 유동성의 가치에 대한 정보를 제공하며, 이는 사용자의 재무 포지션을 관리하는 데 사용된다. NFT(대체 불가능 토큰)는 오라클을 사용하여 선거 결과와 같은 뉴스 속 외부 이벤트에 대한 정보를 가져와, 해당 결과에 따라 NFT의 외형이 동적으로 변경되도록 할 수 있다.

또한 오라클을 사용하여 사용자가 작업을 완료하거나 특정 목표를 달성했을 때 토큰으로 보상함으로써 지속가능성과 시민의식을 위한 바람직한 행동을 장려할 수 있다. 예를 들어, 도시 주민들에게 탄소 상쇄에 대한 보상으로 토큰을 제공할 수 있다.

오라클의 유형

오라클은 서버나 데이터베이스 같은 소프트웨어일 수도 있고, IoT 기기나 센서 같은 하드웨어일 수도 있다. 오라클은 여러 애플리케이션과 이에 연결된 블록체인에 데이터를 제공하는 외부 서비스일 수 있다.

프로젝트는 자체의 특수한 필요에 맞는 내부 오라클을 만들 수도 있다. 그 예로, 탈중앙화 베팅 플랫폼인 Augur는 베팅 대상 이벤트의 결과를 제공하는 오라클을 가지고 있다.

Augur가 어떻게 Alchemy를 사용하여 탈중앙화 오라클 및 P2P 프로토콜을 확장하고 더 나은 사용자 경험을 만들어내는지 알아보기.

오라클은 양방향으로 작동한다. 즉, 현실 세계로부터 데이터를 가져올 수도 있고, 온체인 이벤트에 대한 데이터를 외부 세계에 제공할 수도 있다. 완료된 트랜잭션을 기반으로 잠금이 해제되는 스마트 락은 온체인 이벤트 데이터가 오프체인에서 필요한 경우의 대표적인 예이다.

외부 세계와의 통신 외에도, 오라클은 서로 다른 블록체인 간의 크로스체인 통신을 가능하게 할 수 있다. 개발자는 이를 활용하여 자산을 브릿징하거나, 한 체인의 트랜잭션 및 이벤트를 기반으로 다른 체인에서 액션을 트리거할 수 있다. 또한 오라클은 난수 생성과 같은 연산을 오프체인에서 수행함으로써 귀중한 컴퓨팅 비용을 절감할 수 있다.

오라클 문제

오라클의 가치에 대해 논의할 때마다 대개 "오라클 문제"가 언급된다. 블록체인 상에서 구축하는 것의 독특한 점은 노드 간에 블록체인 상태에 대한 합의에 도달해야 한다는 것이다. 이는 각 노드가 동일한 트랜잭션과 이벤트를 처리하여 다른 모든 노드와 동일한 결과를 얻을 수 있어야 함을 의미한다.

공격자가 오라클이 가져오는 오프체인 데이터를 변경할 수도 있고, 데이터가 시간이 지나면서 변할 수도 있다.

예를 들어, 미국 달러의 가치는 하루 사이에도 자주 변할 수 있다. 스마트 컨트랙트가 이 값을 기반으로 실행되는 경우, 다른 노드가 연산을 수행할 때쯤에는 가격이 변해 있을 수 있다. 이는 예상 결과가 더 이상 실제 결과와 일치하지 않게 되어 노드 간의 합의를 깨뜨리게 된다.

오라클이 제공하는 데이터의 정확성 여부와 관련된 문제뿐만 아니라, 중앙화된 소스는 해킹당하거나 다운타임을 겪을 수도 있다. 이러한 상황에서는 스마트 컨트랙트가 손상된 데이터로 작동하거나 아예 데이터 없이 작동하게 된다. 스마트 컨트랙트는 변경할 수 없고 자체적으로 실행되기 때문에, 이는 관련 당사자들에게 돌이킬 수 없는 손해로 이어질 수 있다. 오라클이 스마트 컨트랙트에 안전하고 신뢰할 수 있는 데이터 제공자가 되려면 이러한 문제를 해결해야 한다.

오라클 문제의 해결책

오라클 문제를 해결하는 대중적인 방법은 블록체인 자체를 활용하는 것이다. 이러한 접근 방식을 탈중앙화 오라클 네트워크(Decentralized Oracle Network, DON)라고 한다.

DON에서는 노드들이 트랜잭션 원장에 대해 합의하는 대신, 각 노드가 하나의 오라클 역할을 한다. 이후 노드들은 별도의 오프체인 소스로부터 독립적으로 데이터를 가져오는 역할을 맡는다. 노드들로부터 얻은 데이터는 하나로 취합되어 진실의 값이 결정된다.

이는 또한 데이터 소스의 가동 시간(uptime) 문제도 해결하는데, 여러 데이터 소스가 존재하므로 스마트 컨트랙트가 여전히 작동할 수 있기 때문이다. DON이 실제로 작동하는 모습은 여기에서 확인할 수 있다.

여러 오프체인 소스의 데이터를 집계하는 탈중앙화 오라클 네트워크 다이어그램
출처: chain.link

오라클 서비스

개발자가 오라클을 사용하는 가장 일반적인 방법은 제3자 서비스를 이용하는 것이다. 이 분야에서 최초이자 가장 널리 사용되는 서비스는 Chainlink이다. Chainlink를 통해 개발자와 API 제공자는 자신의 API를 Chainlink 네트워크에 연결함으로써 참여 노드 운영자가 될 수 있다.

Chainlink는 이러한 오라클을 운영하는 제공자들에게 온체인 식별자를 부여하며, 이를 통해 오라클의 평판을 관리하고 보상할 수 있다. ERC677 토큰을 사용함으로써 제공자들이 잘 정리되고 정확한 데이터를 제공하고, 오프체인 연산을 수행하도록 동기를 부여한다.

인기가 높아지고 있는 또 다른 네트워크로 Band Protocol이 있다. 이 네트워크 역시 Chainlink처럼 외부 데이터를 위한 신뢰할 수 있고 안전한 소스를 제공하는 것을 목표로 한다. 마찬가지로, 좋은 데이터를 제공한 데이터 제공자에게 보상하기 위한 BAND 토큰도 존재한다. 핵심적인 차이점은 Band Protocol이 비용 절감을 위해 Ethereum이 아닌 Cosmos 상에서 운영된다는 점이다.

스마트 컨트랙트에 외부 데이터를 전달하는 오라클 서비스 네트워크 다이어그램
Source: https://public.bnbstatic.com/static/research/static/images/projects/band-protocol/oraclescript.png

오라클 사용 방법

Chainlink에서 제공하는 것과 같은 프레임워크를 사용하여 API 요청을 통해 오라클로부터 데이터를 가져오거나, 이미 제공자가 전송하여 온체인에 존재하는 데이터를 참조하는 방법으로 오라클 데이터를 가져올 수 있다. 이 정보를 보유한 스마트 컨트랙트의 주소를 참조하여 이 데이터를 가져올 수 있다. 이 방법의 일반적인 사용 사례는 DeFi 분야이다. 스마트 컨트랙트는 정기적으로 업데이트되는 환율을 보유하고 있으며, 이 데이터는 다른 스마트 컨트랙트가 토큰 스왑을 수행하는 데 사용될 수 있다.

결론

스마트 컨트랙트가 현실 세계에서 어떤 형태로든 쓸모가 있으려면, 세상에서 일어나는 일들에 접근할 수 있어야 한다. 오라클은 스마트 컨트랙트가 오프체인 이벤트에 반응하기 위해 필요한 데이터의 창이다. 블록체인과 같은 탈중앙화된 환경에서 중앙화된 데이터 소스를 사용하는 것은 이상적이지 않다. DON은 중앙화에서 비롯되는 이러한 문제들을 상당 부분 해결하여 보안성과 안정성을 제공한다. 이러한 오라클 서비스가 확장되고 더 많은 제공자를 확보함에 따라, 오라클은 블록체인과 스마트 컨트랙트 기술의 성장에 큰 역할을 하게 될 것이다.

Background gradient

블록체인 매직을 만드세요

Alchemy는 가장 강력한 Web3 개발자 제품 및 도구를 리소스, 커뮤니티, 그리고 전설적인 지원과 결합합니다.