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