개인 리서치 정리(1) : 오라클이 필요한 이유

nmlyh
2 min readOct 17, 2022

--

개인 리서치 정리

  1. 오라클이 필요한 이유

질문 : 오라클이 필요한 이유는 무엇인가?

답변 :
블록체인은 여러 대의 컴퓨터가 하나의 컴퓨터처럼 동작해야 한다. 모든 동작이 동시에 이루어지는 것이 아니라 모든 실행 순서를 공유하며 같은 데이터 베이스(장부)를 유지한다.
이더리움을 포함한 스마트 컨트랙트 플랫폼은 외부 세계의 데이터를 블록체인에서 사용한다. 예를 들어 애플 주가를 dapp에서 사용한다고 해보자. 노드들은 어떻게 애플 주가를 가져올까? 각각의 노드가 애플 주가를 제공하는 api에 요청을 할까? 스테이블 코인으로 애플 주식을 매수하는 트랜잭션을 보냈다고 해보자. 트랜잭션을 보내면 다음과 같은 일이 발생한다. 트랜잭션을 받은 노드는 트랜잭션을 전파하고 처리한다. 처리가 끝나면 블록에 넣고 다른 노드에 전파한다. 해당 블록을 받은 노드는 블록을 검증 실행하고 상태에 반영한다. 핵심은 노드 별로 애플을 사는 트랜잭션을 실행하는 시점에 약간의 시간차가 있다는 것이다. 노드A가 실행하는 시점에 애플 가격이 100이고 노드B가 실행할 때는 99.9일 수 있다. 분명 같은 트랜잭션을 순서에 맞게 실행했음에도 상태값(장부)가 달라지게 된다. 때문에 블록체인은 트랜잭션을 실행할 때 노드에서 직접 외부 데이터를 가져와 사용할 수 없다.
외부 데이터 사용을 위해 새로운 방식이 필요했고 그 때 나온 것이 오라클이다. 오라클은 외부 데이터를 저장하는 스마트 컨트랙트이다. 블록체인에서 외부 데이터를 받아오는 유일한 방법은 트랜잭션 DATAFIELD에 입력해서 보내는 것이다. 오라클 컨트랙트는 트랜잭션에서 외부 데이터를 받아 컨트랙트 스토리지에 기록한다. 오라클 사용자들은 비용을 지불하고 해당 데이터를 사용한다.

[REF]
https://ethereum.org/en/developers/docs/oracles/

--

--