Introduction to Oracle Problem

오라클이란?

블록체인에서 오라클이란 블록체인 밖(off-chain)에 있는 데이터를 블록체인 안(on-chain)으로 전달하는 것이다. 블록체인과 오프체인 시스템 간 의사소통을 돕는 역할을 한다. 온체인에서 블록체인 연결, 데이터 전파, 증거 전송, 블록체인 데이터 추출, 데이터 계산 등을 수행하고, 오프체인에서 요청 처리, 외부 데이터 검색과 포맷, 데이터 전송, 데이터 계산 등을 수행한다.

[그림 1] 오라클
블록체인에서 오라클이란 블록체인 밖에 있는 데이터를 블록체인 안으로 전달하는 것을 뜻한다.

오라클 역할

  • 요청 확인 (Listen) : 블록체인 네트워크를 모니터링해서 오프체인 데이터를 요청하는 사용자나 스마트 컨트랙트가 있는지 확인한다.
  • 추출 (Extract) : 오프체인 API와 같은 하나 이상의 외부 시스템으로부터 데이터를 추출한다.
  • 포맷 (Format) : API로부터 받은 데이터를 블록체인이 읽을 수 있는 형태로 포맷한다. 블록체인 데이터가 외부 API에 호환할 수 있도록 상호 시스템 간 의사소통이 가능하게 한다.
  • 입증 (Validate) : 다양한 조합(데이터 서명, 블록체인 트랜잭션 서명 등)을 활용해 오라클 서비스의 퍼포먼스를 증명할 수 있는 암호학적 증거를 생성한다.
  • 계산 (Compute) : 오라클이 제출한 다수의 데이터에 대해 다양한 종류의 계산(중간값 계산, 시장 시세, 보험료 산정 등)을 수행한다.
  • 전파 (Broadcast) : 컨트랙트를 위한 데이터를 전송하기 위해서 블록체인 트랜잭션을 전파한다.
  • 아웃풋 (Output) : 스마트 컨트랙트의 실행과 동시에 외부 시스템에 데이터를 전송한다.

오라클 문제란?

블록체인에 기록된 온체인 데이터는 위조와 변조가 어려운 분산 저장 기술이다. 그러나 외부 데이터가 들어오지 않거나, 들어오는 과정에서 데이터 위조 또는 변조가 생기는 경우 문제가 발생할 수 있다. 이를 오라클 현상 또는 연결성 문제라고 하며, 블록체인 밖의 데이터를 블록체인 안에 기록할 때 발생할 수 있는 문제를 뜻한다. 오라클 문제는 주로 오프체인 데이터를 사용하는 스마트 컨트랙트에서 발생한다.

[그림 2] 오라클 문제 (출처 : chain.link)
오라클 문제란 블록체인 밖에 있는 데이터인 오프체인(off-chain) 데이터를 블록체인 안에 있는 데이터인 온체인(on-chain) 데이터로 변환할 때 발생하는 문제이다.

오라클 문제 종류

오라클 문제는 크게 하드웨어 오라클 문제소프트웨어 오라클 문제로 나눌 수 있다.

  • 하드웨어 오라클 문제
    • 센서와 같은 하드웨어 기기를 사용해 수집한 데이터를 블록체인에 기록할 때 발생한다. 예를 들어 센서 장치의 오작동이나 부정확한 측정으로 인해 실제 데이터와 다른 값이 블록체인에 기록되는 경우 발생할 수 있다.
  • 소프트웨어 오라클 문제
    • 소프트웨어를 사용해 수집한 데이터를 블록체인에 기록할 때 발생한다. 예를 들어 자료 수집 봇이나 인공지능이 사실과 다른 판단을 내려 잘못된 데이터를 기록하는 경우 발생할 수 있다.

해결방법

오라클 문제를 해결하기 위한 방법은 다음과 같다.

  • 투표

    • 외부 데이터를 투표자들이 검증해주고 결과에 문제가 없는 경우 검증자에게 인센티브를 제공하는 방식이다. 데이터의 신뢰성을 유지하기 위해 검증자에게 의존한다. 위임지분증명방식은 대표자들의 담합 가능성이 있어 이중위임지분증명 등의 방식이 제시되고 있다. 투표 방식을 사용한 사례로 아토믹 스왑(Atomic Swap)과 어거(Augur)가 있다.
  • 중앙값

    • 다양한 데이터 가운데 중앙값을 선택하는 것으로 여러 데이터를 모아 한가운데 있는 값을 선택하는 것이다. 평균값은 극단적으로 크거나 작은 데이터가 있으면 값이 왜곡될 수 있다. 이에 비해 중앙값은 왜곡될 가능성이 낮아 주로 중앙값을 이용한다. 시장 가격에 연동되는 코인 교환이나 표준화된 상품 판매 등에서 사용하며 데이터를 크기 순서대로 정렬하기 어려운 경우에는 사용하기 어렵다. 중앙값을 사용하는 사례로 메이커토큰이 있다.
  • 중간자

    • 블록체인과 현실 세계 사이에 신뢰할 수 있는 데이터를 제공해 주는 중간자를 두는 방법이다. 일정한 규모와 조직을 갖춘 기업이나 단체가 미들웨어 역할을 맡아 데이터를 수집하고 블록체인 네트워크에 데이터를 제공한다. 현실 세계와 블록체인 네트워크 중간에 존재하면서 신뢰할 수 있는 데이터를 안정적이고 체계적으로 제공한다는 장점이 있다. 새로운 형태의 중앙화가 될 가능성이 있어 블록체인의 탈중앙화와 거리가 있다. 중간자를 사용한 사례로 오라클라이즈, 체인링크, 아이캐시 등이 있다.
You've successfully subscribed to PLAINBIT
Great! Next, complete checkout to get full access to all premium content.
Error! Could not sign up. invalid link.
Welcome back! You've successfully signed in.
Error! Could not sign in. Please try again.
Success! Your account is fully activated, you now have access to all content.
Error! Stripe checkout failed.
Success! Your billing info is updated.
Error! Billing info update failed.