オラクルは、ブロックチェーンのアプリケーションを、その実行環境の外にある情報や動作につなぎます。価格情報は一例であり、イベントの結果、気象観測、準備資産データもコントラクトの判断に利用できます。ブロックチェーンの出力を外部システムに伝えることもあります。
コントラクトに接続が必要な理由
ノードは同じトランザクションを一貫して実行する必要があります。各ノードが変化するウェブサイトに個別に問い合わせても、同じ答えを確実に得られるとは限りません。そこでオラクルが、合意された手順で情報を提出し、コントラクトが決定論的に読み取り、利用できるようにします。
設計はさまざまです。単一の提供者が報告に署名する方式、複数の報告者が観測値を集約する方式、所定の期間内に異議がなければ提案された答えを受け入れる楽観的な方式があります。データは定期的に公開される場合も、特定のイベントについて要求される場合もあります。
信頼はチェーンの外にも及ぶ
答えをオンチェーンに記録しても、元の観測が正確であることや、今も最新であることは証明できません。信頼性は情報源、報告者のインセンティブ、検証ルール、更新時期、異議処理手続きに左右されます。
アプリケーションには、適切な鮮度確認と、データが得られない場合や不自然な場合の対応が必要です。分散型オラクルは一人の報告者への依存を減らせますが、共通の情報源、相関した障害、連携の不備は依然としてコントラクトの結果に影響します。