오라클은 블록체인 및 스마트 계약의 맥락에서 실제 발생을 찾아 확인하고 이 정보를 블록체인에 제출하여 스마트 계약에서 사용하도록 하는 에이전트입니다.
스마트 계약은 가치를 포함하고 특정 사전 정의된 조건이 충족되는 경우에만 해당 가치를 잠금 해제합니다. 특정 값에 도달하면 스마트 계약은 상태를 변경하고 프로그래밍 방식으로 사전 정의된 알고리즘을 실행하여 블록체인에서 이벤트를 자동으로 트리거합니다. 오라클의 주요 임무는 이러한 값을 안전하고 신뢰할 수 있는 방식으로 스마트 계약에 제공하는 것입니다.
블록체인은 네트워크 외부의 데이터에 액세스할 수 없습니다. 오라클은 타사 서비스에서 제공하는 데이터 피드로, 블록체인의 스마트 계약에서 사용하도록 설계되었습니다. 오라클은 외부 데이터를 제공하고 사전 정의된 조건이 충족되면 스마트 계약 실행을 트리거합니다. 이러한 조건은 날씨 온도, 성공적인 지불, 가격 변동 등과 같은 모든 데이터가 될 수 있습니다.
오라클은 예를 들어 원래 수탁자가 특정 조건이 충족되는 경우에만 자금을 미래에 해제하기 위해 계약에 서명하는 다중 서명 계약의 일부입니다. 자금이 해제되기 전에 오라클도 스마트 계약에 서명해야 합니다.
사용 유형에 따라 다양한 유형의 오라클이 있습니다. 소프트웨어 오라클, 하드웨어 오라클, 합의 오라클, 인바운드 및 아웃바운드 오라클을 구별합니다.
소프트웨어 오라클은 온라인에서 사용할 수 있는 정보를 처리합니다. 예를 들어 온도, 상품 및 제품 가격, 항공편 또는 기차 지연 등이 있습니다. 데이터는 회사 웹사이트와 같은 온라인 소스에서 비롯됩니다. 소프트웨어 오라클은 필요한 정보를 추출하여 스마트 계약에 푸시합니다.
일부 스마트 계약은 물리적 세계에서 직접 정보를 필요로 합니다. 예를 들어 차량을 감지하고 데이터를 스마트 계약으로 보내야 하는 이동 센서가 있는 장벽을 넘는 자동차가 있습니다. 또 다른 사용 사례는 공급망 산업의 RFID 센서입니다. 하드웨어 오라클의 가장 큰 과제는 데이터 보안을 희생하지 않고 판독값을 보고하는 기능입니다. Oracalize는 센서 판독값에 대한 암호화 증거와 위반 시 장치를 작동 불능으로 만드는 변조 방지 메커니즘을 제공하여 위험에 대한 2단계 솔루션을 제안합니다.
이러한 오라클은 외부 세계의 데이터를 스마트 계약에 제공합니다. 사용 사례의 예는 USD가 특정 가격에 도달하면 자동 구매 주문이 됩니다.
이러한 오라클은 스마트 계약에 외부 세계로 데이터를 보낼 수 있는 기능을 제공합니다. 예를 들어 블록체인 주소에서 지불을 받고 자동으로 잠금을 해제해야 하는 물리적 세계의 스마트 잠금이 있습니다.
Augur 및 Gnosis와 같은 예측 시장은 미래 결과를 확인하기 위해 오라클에 크게 의존합니다. 정보 소스를 하나만 사용하는 것은 위험하고 신뢰할 수 없을 수 있습니다. 시장 조작을 피하기 위해 예측 시장은 오라클에 대한 평가 시스템을 구현합니다. 추가 보안을 위해 서로 다른 오라클의 조합을 사용할 수 있습니다. 예를 들어 5개의 오라클 중 3개가 이벤트 결과를 결정할 수 있습니다.
오라클은 블록체인 합의 메커니즘의 일부가 아닌 타사 서비스입니다. 오라클의 주요 과제는 사람들이 이러한 정보 소스를 신뢰해야 한다는 것입니다. 웹사이트든 센서든 정보 소스는 신뢰할 수 있어야 합니다. 이러한 문제를 해결하는 방법으로 다양한 신뢰할 수 있는 컴퓨팅 기술을 사용할 수 있습니다. 예를 들어 Oracalize와 같은 회사는 TLSNotary 기반 증거로 Amazon을 활용하고 있습니다. 또 다른 회사인 Town Crier는 Intel Software Guard Extensions(SGX) 활용에 주력하고 있습니다. 실수할 경우 롤백이 없기 때문에 사용자에게 신뢰할 수 있는 정보 소스를 스마트 계약에 제공하는 것이 중요합니다.