오라클 (Oracle)
한눈에 보기 오라클은 스마트 컨트랙트가 사용할 수 있도록 외부 데이터(주로 자산 가격)를 블록체인에 제공하는 서비스입니다. 오라클 오류는 심각한 자산 손실로 이어집니다.
블록체인은 체인 상에 기록된 데이터만 읽을 수 있습니다. 스마트 컨트랙트는 자체적으로 ETH의 달러 가격, 스포츠 경기 결과, 날씨 등을 조회할 방법이 없습니다. 오라클은 바로 이 간극을 메우는 브릿지 역할을 합니다. 외부 세상의 데이터를 읽어와 체인에 기록하고, 스마트 컨트랙트가 이를 활용할 수 있게 해주는 서비스나 네트워크를 의미합니다.
DeFi에서 오라클이 가장 흔히 쓰이는 분야는 가격 데이터 제공입니다. 대출 프로토콜은 오라클 가격을 기준으로 담보 부족 여부를 판단해 청산을 실행합니다. 무기한 선물(Perp) 플랫폼은 이를 포지션의 마크 프라이스로 삼아 청산을 트리거합니다. 어떤 오라클은 수많은 독립 노드가 값을 제출하고 네트워크가 중앙값 등의 집계치를 공표하는 탈중앙화 네트워크 방식입니다. 반면 어떤 오라클은 DEX 풀에서 직접 가격을 가져오며, 일정 기간의 평균치인 시간가중평균가격(TWAP)을 활용하기도 합니다. 평균을 내면 일시적인 가격 튐(spike)을 이용한 익스플로잇은 어려워지지만, 자본력이 풍부한 공격자는 여러 블록에 걸쳐 왜곡된 가격을 유지할 수 있고 유동성이 얇은 풀은 여전히 실제 시장 가격과 크게 벌어질 수 있어 리스크가 완전히 사라지지는 않습니다.
오라클이 중요한 이유는 스마트 컨트랙트가 전달받은 수치를 그대로 믿고 작동하기 때문입니다. 잘 설계된 프로토콜은 가격이 지나치게 급변할 때 거부하거나, 오래된(stale) 데이터를 차단하고, 백업 피드로 전환하거나, 대출을 일시 중단하는 등의 안전장치를 둡니다. 하지만 이는 설계자가 미리 예상한 상황만 방어할 수 있을 뿐입니다. 과거의 여러 익스플로잇 사례를 보면, 플래시론을 이용해 얇은 풀의 가격을 왜곡시킨 뒤 프로토콜이 그 조작된 가격을 읽게 만들어 담보 가치보다 훨씬 많은 금액을 대출받아 가로채는 방식이었습니다. 유동성이 얕은 중소형 토큰은 가격 조작이 가장 쉬우므로, 이런 자산을 담보로 허용하는 프로토콜은 각별히 주의해야 합니다.
프로젝트의 가격 피드가 어디서 오는지 반드시 확인해야 합니다. 검증된 오라클 네트워크는 단일 소형 풀의 스팟 가격보다 조작하기 훨씬 어렵지만, 노드 수가 많다고 무조건 안전한 것은 아닙니다. 기초 데이터 소스가 실제로 독립적인지, 그 가격 뒤에 실제 유동성이 얼마나 받쳐주는지, 집계 방식은 어떠한지 살펴봐야 합니다. 유동성이 빈약한 한 시장의 가격을 여러 노드가 그대로 긁어오면 잘못된 가격이 리포팅되는 건 마찬가지이기 때문입니다. 또한 오라클 설정을 누가 관리하는지도 확인해야 합니다. 단일 어드민 지갑이 데이터 피드를 마음대로 바꿀 수 있다면 사실상 그 지갑이 가격을 마음대로 정하는 것이나 다름없습니다.




