오라클
용어심층Oracle (블록체인 오라클, blockchain oracle)
오라클은 블록체인 바깥의 데이터를 수집·검증하여 스마트 컨트랙트가 읽을 수 있는 형태로 전달하는 장치 또는 서비스로, 폐쇄된 블록체인과 현실 세계를 잇는 다리 역할을 한다.
1.개요
블록체인은 그 자체로는 외부 정보에 접근할 수 없는 폐쇄된 시스템이다. 네트워크 참여자 모두가 동일한 상태에 합의해야 하기 때문에, 블록체인은 오직 자신의 원장에 기록된 데이터만을 신뢰하며 인터넷의 웹사이트나 외부 데이터베이스를 직접 조회하지 못한다. 그러나 스마트 컨트랙트가 실제로 쓸모 있으려면 자산 가격, 환율, 날씨, 경기 결과, 사물인터넷 센서 값처럼 블록체인 바깥의 정보가 필요한 경우가 많다.
오라클(Oracle)은 바로 이 간극을 메우는 장치이다. 오라클은 외부 세계의 데이터를 수집·검증하여 블록체인 위의 스마트 컨트랙트가 읽을 수 있는 형태로 전달한다. 예컨대 특정 코인의 시장 가격이 일정 수준에 도달하면 자동으로 실행되는 계약을 만들려면, 그 가격 정보를 계약에 공급해 주는 오라클이 반드시 필요하다. 이런 의미에서 오라클은 블록체인과 현실 세계를 잇는 다리에 비유된다.
오라클은 블록체인 프로토콜 자체의 일부가 아니라, 온체인과 오프체인 사이에 위치하며 데이터를 중개하는 별도의 계층으로 이해된다. 따라서 오라클의 품질과 신뢰성은 그것에 의존하는 모든 스마트 컨트랙트의 안전성을 좌우한다.
[1]2.오라클 문제
오라클의 가장 큰 과제는 신뢰 문제이다. 블록체인 자체는 탈중앙적이고 조작이 어렵도록 설계되었지만, 하나의 중앙화된 오라클에 의존하면 그 지점이 곧 단일 실패 지점(single point of failure)이 된다. 오라클이 잘못된 데이터를 공급하거나 공격자가 이를 조작하면, 아무리 견고하게 작성된 스마트 컨트랙트라도 그 잘못된 입력을 사실로 받아들여 잘못된 결과를 실행하게 된다.
이처럼 탈중앙 시스템이 신뢰할 수 있는 외부 데이터를 어떻게 확보할 것인가라는 근본적 난제를 흔히 오라클 문제(Oracle Problem)라고 부른다. 블록체인이 아무리 위·변조에 강하더라도, 그 위에 올라오는 외부 데이터가 부정확하거나 조작 가능하다면 시스템 전체의 신뢰가 무너진다. 오라클 설계의 역사는 사실상 이 문제를 어떻게 완화할 것인가를 둘러싼 과정이라 할 수 있다.
3.오라클의 유형
오라클은 여러 기준으로 분류된다.
데이터가 흐르는 방향에 따라
- 인바운드(inbound) 오라클: 외부 데이터를 블록체인 안으로 들여온다. 시세, 환율, 날씨 정보 등이 대표적이다.
- 아웃바운드(outbound) 오라클: 블록체인의 정보를 외부 시스템으로 내보내, 온체인의 상태 변화가 오프체인 세계에 반영되도록 한다.
데이터의 출처에 따라
- 소프트웨어 오라클: 웹 API·데이터베이스 등 디지털 정보를 다룬다.
- 하드웨어 오라클: 바코드 스캐너·센서 등 물리 세계의 측정 장치에서 값을 받아온다.
- 인간 오라클: 전문 지식을 가진 사람의 판단을 데이터로 제공한다.
이 밖에 신뢰 구조에 따라 하나의 주체가 데이터를 책임지는 중앙화 오라클과, 다수의 독립적 노드가 값을 함께 제공하는 탈중앙화 오라클로도 나눈다.
4.작동 원리
전형적인 오라클은 스마트 컨트랙트가 특정 데이터를 요청하면, 지정된 외부 소스에서 값을 조회하고 이를 온체인 트랜잭션으로 계약에 전달하는 순서로 동작한다. 이 과정에서 데이터의 정확성과 조작 저항성을 높이기 위해 여러 기법이 쓰인다.
특히 오라클 문제를 완화하기 위해, 하나의 출처에만 의존하지 않고 여러 독립적인 데이터 소스와 노드로부터 값을 모으는 방식이 널리 쓰인다. 이렇게 모은 값의 평균이나 중앙값을 취하면, 일부 소스가 오류를 내거나 조작되더라도 최종 결과가 왜곡될 가능성이 줄어든다. 노드 운영자에게 정확한 데이터 제공에 대한 경제적 보상과 담보 예치를 결합해, 부정직한 행위에 비용을 부과하는 인센티브 설계도 함께 활용된다.
5.탈중앙화 오라클 네트워크
단일 오라클의 위험을 줄이기 위해 등장한 것이 탈중앙화 오라클 네트워크(DON, Decentralized Oracle Network)이다. 이는 서로 독립적인 다수의 노드가 각자 데이터를 수집·제출하고, 그 값들을 집계해 하나의 신뢰할 수 있는 결과로 만들어 스마트 컨트랙트에 전달하는 구조이다. 소수의 노드가 오작동하거나 악의적으로 행동하더라도 전체 결과가 오염되지 않도록 설계된다.
대표적인 사례가 체인링크(Chainlink)이며, 이 밖에도 API3 등 데이터 제공 방식이 서로 다른 여러 오라클 프로젝트가 존재한다. 탈중앙화 오라클은 오늘날 탈중앙화 금융을 비롯한 온체인 응용의 핵심 인프라로 자리 잡았다.
6.대표 사례: 체인링크
체인링크는 탈중앙화 블록체인 오라클 네트워크로, 오프체인 소스의 데이터를 온체인 스마트 컨트랙트로 위·변조 없이 전달하는 것을 목표로 한다. 2017년 세르게이 나자로프와 스티브 엘리스가 시작했으며, 같은 해 코넬대학교 교수 아리 줄스와 함께 프로토콜을 소개하는 백서를 발표했다. 스마트 컨트랙트를 지원하는 이 네트워크는 2019년에 공식 출시되었다.
체인링크는 이후 학술 프로젝트를 흡수하며 기능을 넓혔다. 2018년에는 신뢰 실행 환경(TEE)을 활용해 이더리움을 HTTPS 웹 소스와 연결하는 오라클인 타운 크라이어(Town Crier)를 통합했고, 2020년에는 영지식 증명을 이용해 사용자가 생년월일 같은 민감한 정보를 노출하지 않고도 정보가 참임을 증명할 수 있게 하는 코넬 프로젝트 DECO를 통합했다.
네트워크의 기본 토큰은 LINK로, 데이터를 조회·제공하는 노드 운영자에게 지급되며 노드가 예치하는 담보로도 쓰인다. 모든 LINK는 미리 채굴(pre-mine)되었고 그 일부가 초기 코인 공개(ICO)에서 판매되었다. LINK는 ERC-20의 모든 기능을 유지하는 ERC677 토큰이어서 일반 ERC-20 지갑에 보관할 수 있다.
7.검증 가능한 난수와 오프체인 연산
오라클의 역할은 외부 데이터를 단순히 전달하는 데 그치지 않는다. 체인링크는 검증 가능한 무작위 함수(VRF, Verifiable Random Function)를 제공하는데, 이는 결과가 조작되지 않았음을 온체인에서 검증할 수 있는 난수를 생성하는 기능이다. 블록체인은 결정론적으로 동작하기 때문에 내부적으로 진정한 무작위성을 만들기 어렵고, 게임의 아이템 추첨이나 NFT 배정처럼 공정한 난수가 필요한 응용에서 이러한 검증 가능한 난수가 활용된다.
이 밖에도 오라클 네트워크는 데이터 피드 제공을 비롯한 여러 오프체인 연산 기능을 수행할 수 있으며, 이러한 데이터 피드는 선거 데이터를 온체인으로 가져오는 데 쓰인 사례가 있다. 이는 오라클이 단순한 데이터 배관을 넘어 온체인 응용에 다양한 연산 자원을 연결하는 계층으로 확장되고 있음을 보여준다.
8.활용
오라클은 오늘날 여러 블록체인 응용에서 핵심 역할을 한다.
- 탈중앙화 금융: 대출·파생상품·탈중앙화 거래소 등은 자산의 정확한 시세를 알아야 담보 청산이나 가격 결정을 처리할 수 있다. 이 가격 정보를 공급하는 것이 가격 오라클(price feed)이다.
- 스테이블코인: 실제 화폐 가치에 연동되기 위해 환율 데이터를 필요로 한다.
- 실물자산 토큰화: 부동산·채권 등 현실 자산의 가치나 상태를 블록체인에 반영하기 위해 오라클을 사용한다.
- 보험: 항공편 지연 시 자동 보상처럼, 외부 사실이 확인되면 자동으로 지급되는 계약을 구현한다.
- 예측 시장: 경기·선거 등 실제 결과를 확정해 정산에 반영한다.
- 게임·NFT: 공정한 난수 생성 등에 활용된다.
요컨대 외부 사실에 의존하는 거의 모든 스마트 컨트랙트가 오라클을 필요로 한다.
9.과제와 위험
오라클은 블록체인의 활용 범위를 크게 넓혔지만, 동시에 온체인 시스템에서 가장 취약한 지점 가운데 하나로 지목된다. 특히 탈중앙화 금융에서는 오라클이 공급하는 가격이 담보 청산과 직접 연결되기 때문에, 시세를 일시적으로 왜곡해 부당한 이익을 노리는 가격 조작 공격의 표적이 되기 쉽다. 이는 오라클 자체의 코드 결함이 아니라 데이터 입력 경로를 겨냥한 설계 결함 공격의 성격을 띤다.
또한 블랙 스완과 같은 극단적 시장 상황에서는 데이터 소스 자체가 불안정해지거나 지연되어, 오라클이 현실을 제때 정확히 반영하지 못할 수 있다. 이러한 위험을 줄이기 위해 다수의 소스와 노드에 값을 분산시키고, 이상치를 걸러내며, 데이터 갱신 주기와 편차 허용 범위를 정교하게 관리하는 방향으로 오라클 설계가 발전해 왔다. 그럼에도 오라클 문제는 완전히 해소되기보다 지속적으로 완화·관리되어야 하는 과제로 남아 있다.
10.연표6건
- 2017설립세르게이 나자로프와 스티브 엘리스가 체인링크 프로젝트를 시작
- 2017이정표코넬대 교수 아리 줄스와 함께 체인링크 프로토콜을 소개하는 백서 발표
- 2017투자미리 채굴된 LINK 토큰의 일부를 ICO를 통해 소매 구매자에게 판매
- 2018출시체인링크가 신뢰 실행 환경(TEE) 기반 오라클 타운 크라이어(Town Crier)를 통합
- 2019출시체인링크 오라클 네트워크가 공식적으로 출시
- 2020출시영지식 증명 기반 프로토콜 DECO를 통합
각주
오라클, 어렵지 않아요 블록체인이 바깥세상 정보를 어떻게 받아오나
1. 블록체인은 왜 바깥 정보를 못 볼까요?
블록체인은 그 자체로는 바깥 정보에 손을 뻗을 수 없는 닫힌 시스템이에요. 네트워크에 참여한 모든 컴퓨터가 똑같은 상태에 합의해야(서로 무엇이 맞는지 맞춰 봐야) 하기 때문에, 블록체인은 오직 자기 장부에 적힌 데이터만 믿어요. 인터넷의 웹사이트나 바깥 데이터베이스를 직접 들여다보지는 못하죠. 그런데 스마트 컨트랙트(조건이 맞으면 자동으로 실행되는 계약 프로그램)가 실제로 쓸모 있으려면 자산 가격, 환율, 날씨, 경기 결과, 사물인터넷 센서 값처럼 블록체인 바깥의 정보가 필요한 경우가 많아요.
오라클(Oracle)이 바로 이 빈틈을 메워 주는 장치예요. 오라클은 바깥세상의 데이터를 모으고 확인해서, 블록체인 위의 스마트 컨트랙트가 읽을 수 있는 형태로 전달해 줘요. 예를 들어 어떤 코인의 시장 가격이 정해 둔 수준에 도달하면 자동으로 실행되는 계약을 만들려면, 그 가격 정보를 계약에 넣어 주는 오라클이 반드시 있어야 해요.
오라클은 블록체인 프로토콜 자체의 일부가 아니에요. 블록체인 안(온체인)과 바깥(오프체인) 사이에 끼어서 데이터를 중개하는 별도의 층으로 보면 돼요. 그래서 오라클의 품질과 신뢰도가, 거기에 기대는 모든 스마트 컨트랙트의 안전을 좌우하게 돼요.
이렇게 보면 쉬워요 · 오라클은 창문 없는 방(블록체인)에 바깥 날씨를 알려 주는 다리 같은 존재예요.
2. '오라클 문제'가 뭐예요?
오라클의 가장 큰 숙제는 신뢰 문제예요. 블록체인 자체는 여러 곳에 흩어져 있어서(탈중앙적이라) 조작하기 어렵게 설계됐지만, 만약 하나의 중앙화된 오라클 한 곳에만 기대면 바로 그 지점이 단일 실패 지점(single point of failure), 즉 그 한 곳만 무너져도 전체가 무너지는 약점이 돼요. 오라클이 잘못된 데이터를 넣어 주거나 공격자가 그 값을 조작하면, 아무리 튼튼하게 짜인 스마트 컨트랙트라도 그 잘못된 입력을 사실로 받아들여 엉뚱한 결과를 실행하게 돼요.
이렇게 '흩어진 시스템이 믿을 만한 바깥 데이터를 어떻게 확보할 것인가'라는 근본적인 난제를 흔히 오라클 문제(Oracle Problem)라고 불러요. 블록체인이 아무리 위·변조에 강해도, 그 위에 올라오는 바깥 데이터가 부정확하거나 조작할 수 있으면 시스템 전체의 신뢰가 무너지거든요. 오라클을 설계해 온 역사는 사실상 이 문제를 어떻게 덜어 낼 것인가를 두고 씨름해 온 과정이라고 할 수 있어요.
3. 오라클에는 어떤 종류가 있어요?
오라클은 여러 기준으로 나눌 수 있어요.
먼저 데이터가 흐르는 방향에 따라 나뉘어요. 인바운드(inbound) 오라클은 바깥 데이터를 블록체인 안으로 들여와요. 시세, 환율, 날씨 정보 같은 것이 대표적이에요. 반대로 아웃바운드(outbound) 오라클은 블록체인의 정보를 바깥 시스템으로 내보내서, 블록체인 안에서 일어난 상태 변화가 바깥세상에도 반영되도록 해요.
데이터의 출처에 따라서도 나뉘어요. 소프트웨어 오라클은 웹 API(프로그램끼리 정보를 주고받는 통로)나 데이터베이스 같은 디지털 정보를 다뤄요. 하드웨어 오라클은 바코드 스캐너나 센서처럼 물리 세계를 재는 장치에서 값을 받아와요. 인간 오라클은 전문 지식을 가진 사람의 판단을 데이터로 제공해요.
이 밖에 신뢰 구조에 따라서도 나뉘는데, 한 주체가 데이터를 책임지는 중앙화 오라클과, 여러 독립적인 노드(참여 컴퓨터)가 값을 함께 제공하는 탈중앙화 오라클로 구분해요.
4. 오라클은 어떻게 작동해요?
전형적인 오라클은 이런 순서로 움직여요. 스마트 컨트랙트가 특정 데이터를 요청하면, 오라클이 지정된 바깥 소스에서 그 값을 조회하고, 이를 블록체인 안의 거래(온체인 트랜잭션)로 만들어 계약에 전달해 줘요. 이 과정에서 데이터의 정확성을 높이고 조작에 잘 견디게 하려고 여러 기법을 써요.
특히 오라클 문제를 덜기 위해, 한 곳에만 기대지 않고 여러 독립적인 데이터 소스와 노드에서 값을 모으는 방식을 널리 써요. 이렇게 모은 값의 평균이나 중앙값(가운데 값)을 취하면, 일부 소스가 틀리거나 조작되더라도 최종 결과가 뒤틀릴 가능성이 줄어들거든요.
또 노드를 운영하는 사람에게는, 정확한 데이터를 제공하면 경제적 보상을 주고 동시에 담보(맡겨 두는 돈)를 걸게 해요. 이렇게 하면 부정직하게 행동할 경우 비용을 치르게 되니, 정직하게 굴 이유가 생기는 인센티브 설계인 거예요.
5. 탈중앙화 오라클 네트워크는 뭐가 다른가요?
오라클 하나에만 기대는 위험을 줄이려고 나온 것이 탈중앙화 오라클 네트워크(DON, Decentralized Oracle Network)예요. 서로 독립적인 여러 노드가 각자 데이터를 모아서 제출하고, 그 값들을 한데 모아 하나의 믿을 만한 결과로 만들어 스마트 컨트랙트에 전달하는 구조예요. 소수의 노드가 오작동하거나 나쁜 마음을 먹더라도 전체 결과가 오염되지 않도록 설계돼요.
대표적인 사례가 체인링크(Chainlink)이고, 이 밖에도 API3처럼 데이터를 제공하는 방식이 서로 다른 여러 오라클 프로젝트가 있어요. 탈중앙화 오라클은 오늘날 탈중앙화 금융을 비롯한 여러 블록체인 응용의 핵심 기반 시설로 자리 잡았어요.
6. 대표 사례인 체인링크는 어떤 곳이에요?
체인링크는 탈중앙화 블록체인 오라클 네트워크로, 블록체인 바깥 소스의 데이터를 블록체인 안의 스마트 컨트랙트로 위·변조 없이 전달하는 것을 목표로 해요. 2017년 세르게이 나자로프와 스티브 엘리스가 시작했고, 같은 해 코넬대학교 교수 아리 줄스와 함께 프로토콜을 소개하는 백서를 냈어요. 스마트 컨트랙트를 지원하는 이 네트워크는 2019년에 공식 출시됐어요.
체인링크는 이후 학술 프로젝트들을 흡수하며 기능을 넓혔어요. 2018년에는 신뢰 실행 환경(TEE, 데이터를 안전하게 처리하도록 보호된 영역)을 활용해 이더리움을 HTTPS 웹 소스와 연결하는 오라클인 타운 크라이어(Town Crier)를 통합했어요. 2020년에는 영지식 증명(정보 내용을 드러내지 않고도 그것이 참이라는 사실만 증명하는 기술)을 이용해, 사용자가 생년월일 같은 민감한 정보를 노출하지 않고도 그 정보가 참임을 증명할 수 있게 하는 코넬 프로젝트 DECO를 통합했어요.
네트워크의 기본 토큰은 LINK예요. 데이터를 조회하고 제공하는 노드 운영자에게 지급되고, 노드가 맡겨 두는 담보로도 쓰여요. 모든 LINK는 미리 채굴(pre-mine)됐고, 그 일부가 초기 코인 공개(ICO)에서 판매됐어요. LINK는 ERC-20의 모든 기능을 그대로 유지하는 ERC677 토큰이라서, 일반 ERC-20 지갑에 보관할 수 있어요.
7. 오라클이 난수 만들기와 계산도 해 준다고요?
오라클의 역할은 바깥 데이터를 단순히 전달하는 데서 그치지 않아요. 체인링크는 검증 가능한 무작위 함수(VRF, Verifiable Random Function)를 제공하는데, 이는 결과가 조작되지 않았다는 것을 블록체인 안에서 확인할 수 있는 난수(무작위 숫자)를 만들어 내는 기능이에요. 블록체인은 정해진 대로 똑같이 움직이기(결정론적으로 동작하기) 때문에 내부에서 진짜 무작위성을 만들기가 어려워요. 그래서 게임의 아이템 추첨이나 NFT 배정처럼 공정한 난수가 필요한 곳에서 이런 검증 가능한 난수가 쓰여요.
이 밖에도 오라클 네트워크는 데이터 피드(데이터를 계속 공급해 주는 흐름) 제공을 비롯해 여러 블록체인 바깥(오프체인) 계산 기능을 할 수 있어요. 실제로 이런 데이터 피드가 선거 데이터를 블록체인 안으로 가져오는 데 쓰인 사례도 있어요. 이는 오라클이 단순한 '데이터 배관'을 넘어, 블록체인 응용에 다양한 계산 자원을 연결해 주는 층으로 넓어지고 있음을 보여줘요.
8. 오라클은 어디에 쓰여요?
오라클은 오늘날 여러 블록체인 응용에서 핵심 역할을 해요.
탈중앙화 금융에서는 대출·파생상품·탈중앙화 거래소 같은 서비스가 자산의 정확한 시세를 알아야 담보 청산(맡긴 담보를 정리하는 일)이나 가격 결정을 처리할 수 있어요. 이 가격 정보를 공급하는 것이 바로 가격 오라클(price feed)이에요. 스테이블코인은 실제 화폐 가치에 맞춰 움직이려고 환율 데이터를 필요로 해요. 실물자산 토큰화에서는 부동산·채권 같은 현실 자산의 가치나 상태를 블록체인에 반영하려고 오라클을 써요.
보험에서는 항공편이 지연되면 자동으로 보상해 주는 것처럼, 바깥 사실이 확인되면 자동으로 지급되는 계약을 구현해요. 예측 시장에서는 경기·선거 같은 실제 결과를 확정해 정산에 반영하고, 게임·NFT에서는 공정한 난수 생성 등에 활용돼요.
요컨대 바깥 사실에 기대는 거의 모든 스마트 컨트랙트가 오라클을 필요로 해요.
9. 오라클에는 어떤 위험이 있어요?
오라클은 블록체인의 활용 범위를 크게 넓혔지만, 동시에 블록체인 시스템에서 가장 약한 지점 가운데 하나로 꼽혀요. 특히 탈중앙화 금융에서는 오라클이 공급하는 가격이 담보 청산과 곧바로 연결되기 때문에, 시세를 잠깐 왜곡해서 부당한 이익을 노리는 가격 조작 공격의 표적이 되기 쉬워요. 이건 오라클 자체의 코드 결함이 아니라, 데이터가 들어오는 경로를 노린 설계 결함 공격의 성격을 띠어요.
또 블랙 스완(거의 일어나지 않을 것 같던 극단적 사건)처럼 시장이 크게 요동칠 때는 데이터 소스 자체가 불안정해지거나 늦어져서, 오라클이 현실을 제때 정확히 반영하지 못할 수 있어요. 이런 위험을 줄이려고, 여러 소스와 노드에 값을 분산시키고, 튀는 값(이상치)을 걸러 내며, 데이터를 얼마나 자주 갱신할지와 어느 정도 편차까지 허용할지를 정교하게 관리하는 방향으로 오라클 설계가 발전해 왔어요.
그래도 오라클 문제는 완전히 없어진다기보다는, 계속 덜어 내고 관리해 나가야 하는 숙제로 남아 있어요.
토큰포스트 위키, “오라클”, 2026-07-31 수정, https://wiki.tokenpost.kr/w/oraclesAccept: text/markdown 로 요청해도 같은 결과문단 9개 · 연표 6건 · 각주 1개