Skip to main content

ブロックチェーン oracle(オラクル)とは

注:この文書は英語の原文からの自動翻訳です。

ブロックチェーン oracle(オラクル)とは

ブロックチェーン oracle(オラクル) は、ブロックチェーン上のスマートコントラクトに外部データを供給するサービスです。スマートコントラクトは、自身のチェーン上にすでに存在する情報にしかアクセスできません — 外部の API を呼び出したり、ウェブページを読んだり、現実世界の状況を自分で確認したりすることはできません。oracle は、オフチェーンのデータを取得し、何らかのメカニズムを通じて検証し、それをオンチェーンに配信して、スマートコントラクトが意思決定に用いられるようにすることで、このギャップを埋めます。

要約: oracle は外部の世界をブロックチェーンのスマートコントラクトに接続するデータフィードであり、AI プロジェクトにとっては、モデルの出力、外部データセット、現実世界のシグナルがオンチェーン環境に入る手段です。

ブロックチェーン oracle の仕組み

oracle が解決する根本的な課題は オラクル問題(oracle problem) と呼ばれます。ブロックチェーンは決定論的な閉じたシステムです。すべてのノードは、スマートコントラクトを実行する際に同じ結果に到達しなければなりません。もしコントラクトが外部のソースから直接データを取得しようとすると、異なるノードが異なる時点で異なるレスポンスを得るかもしれず、コンセンサスを壊してしまいます。oracle は、すべてのノードが参照できる単一の合意されたデータフィードを提供することで、これを解決します。

検証と配信

oracle はオフチェーンのソース — API、ウェブサービス、IoT センサー、データベース、または他のブロックチェーン — からデータを収集します。データは価格フィード、AI モデルの予測、その他あらゆる外部で生成された値であり得ます。収集されると、ブロックチェーンに到達する前に検証されなければなりません。検証のアプローチには次のものがあります。

  • 分散型オラクルネットワーク — 複数の独立した oracle ノードが同じデータを取得し、プロトコルがそれらの報告を(しばしば中央値や加重平均を用いて)集約することで、単一のノードが偽のデータを提供するリスクを減らします。
  • 評判とステーキング — oracle のオペレーターは担保としてトークンをステークします。誤ったデータを供給すると、ペナルティ(slashing)を受け得るため、正確性への経済的インセンティブが生まれます。
  • 暗号学的証明 — 一部の oracle 設計は、trusted execution environment(TEE)やゼロ知識証明を用いて、データが指定されたソースから正しく取得されたことを暗号学的に証明します。

検証されたデータは、その後トランザクションを通じてブロックチェーンに書き込まれ、oracle のオンチェーンアドレスを参照するあらゆる スマートコントラクト が利用できるようになります。

プッシュ vs. プル

oracle はデータを二つの方法で配信できます。プッシュベース の oracle は、一定の間隔で、または条件が変化したとき(例えば価格が 1% を超えて動いたとき)にオンチェーンのデータを更新します。プルベース の oracle はオンデマンドでデータを提供します — スマートコントラクトがデータを要求し、oracle が後続のトランザクションでそれを配信します。

なぜクリプト AI プロジェクトにとって重要なのか

ブロックチェーン上の AI プロジェクトは、チェーンの外部で発生する外部データを必要とすることがよくあります。oracle は、このデータを信頼性高く配信するための標準的なメカニズムです。

AI モデルの出力。 AI モデルがオフチェーンで実行され、結果 — 予測、分類、生成されたレスポンス — を生み出すとき、その結果はスマートコントラクトに用いられるためにブロックチェーンに入る必要があります。oracle は検証されたモデル出力をオンチェーンに配信し、スマートコントラクトが AI 生成データに基づいて行動できるようにします。

トレーニングデータとデータセット。 分散型トレーニングやデータマーケットプレイスを調整する AI プロジェクトは、オフチェーンに保存された データセット の可用性、完全性、品質スコアを検証するために oracle を用いる場合があります。oracle は、データセット全体をオンチェーンに保存する必要なく、データセットが特定の基準を満たすことを証明します。

現実世界のシグナル。 AI を活用した取引分析、リスク評価、意思決定ツールは、リアルタイムの外部データ — 市場価格、ネットワークメトリクス、ソーシャルシグナル — を必要とします。oracle は、オンチェーンのロジックが消費できる形式でこれらのフィードを提供します。

検証層。 一部のアーキテクチャでは、oracle が AI 計算の検証層として機能します。単一の AI プロバイダーの出力を信頼するのではなく、分散型オラクルネットワークが複数の AI プロバイダーからの結果を集約し、比較し、コンセンサス出力をオンチェーンに配信できます。

DecAIHub のプロジェクトカードのどこに現れるか

  • AI component — AI の出力をオンチェーンに配信するために oracle を用いるプロジェクトは、AI パイプラインの一部として oracle インフラに言及する場合があります。
  • Type — 主要な機能が AI データ向けの oracle サービスを提供することであるプロジェクトは、それに応じて分類されます。
  • Category — oracle に依存する AI プロジェクトは、外部データフィードがワークフローに不可欠な、AI/分析、AI/データ、AI/推論のようなカテゴリに分類されることがよくあります。

oracle だけでは証明できないこと

  • データの正確性 — oracle は外部のソースからデータを配信しますが、基盤となるソースが正しいことを保証することはできません。ソースの API が偽のデータを提供すれば、oracle は忠実に偽のデータを配信します。oracle の品質は、ソースの信頼性と検証メカニズムに依存します。
  • 分散化 — oracle ネットワークは、単一の中央集権的なデータフィードから、独立したオペレーターの大規模な分散型ネットワークまで、幅があり得ます。「oracle」というラベルは分散化の度合いについて何も語りません。
  • AI reality — データをオンチェーンに持ち込むために oracle を用いることは、AI モデルが実際にそのデータを処理したことを証明しません。oracle は情報を配信します。その情報を何が生成するかは別の問題です。
  • トラストレス性 — 分散型オラクルネットワークでさえ、基盤となるブロックチェーン層を超えた信頼の前提をもたらします。ユーザーは、oracle の設計、そのオペレーターの集合、その経済的インセンティブを信頼しなければなりません。

混同しないでください

  • API — API はデータやサービスにアクセスするための一般的なインターフェースです。oracle は、スマートコントラクトが消費できる形で外部データをブロックチェーンに配信することに特化しています。すべての API が oracle というわけではなく、oracle はコンセンサス、検証、オンチェーン配信を扱わなければならないため、単純な API 呼び出し以上のものです。
  • node — ブロックチェーンノードはオンチェーンのトランザクションを検証し保存します。oracle ノードはオフチェーンのデータを取得し配信します。これらはブロックチェーンスタックにおいて異なる役割を果たしますが、oracle ノードはフルのブロックチェーンノードも運用する場合があります。
  • データインデクサー(Data indexer) — インデクサー(The Graph など)は、オフチェーンでの消費のためにオンチェーンのデータを読み取り整理します。oracle はその逆を行います。すなわちオフチェーンのデータをオンチェーンに持ち込みます。データは反対方向に流れます。
  • Bridge — bridge(ブリッジ)は二つのブロックチェーン間で資産やメッセージを移動させます。oracle はオフチェーン(非ブロックチェーン)のソースからブロックチェーンにデータを持ち込みます。どちらも異なる情報ドメインを接続しますが、異なる問題を解決します。

よくある質問

オラクル問題とは何ですか?

オラクル問題は、信頼できる外部データを決定論的なブロックチェーンシステムに取り込むという根本的な課題です。スマートコントラクトはオフチェーンのデータに直接アクセスできず、いかなる外部のデータソースもブロックチェーンのセキュリティモデルの外側にある信頼の前提をもたらすため、オラクル問題はこう問います。ブロックチェーンベースのアプリケーションは、チェーンの外部で発生したデータをどのように信頼できるか? 完璧な解決策は存在しません — すべての oracle 設計は、速度、コスト、分散化、信頼の前提の間のトレードオフを伴います。

なぜ AI プロジェクトは oracle を必要とするのですか?

ほとんどの AI 計算は、スマートコントラクト内で ニューラルネットワーク を実行することが法外に高価であるため、オフチェーンで行われます。AI が、オンチェーンのアクションをトリガーする必要のある結果 — 取引の実行、スコアの更新、報酬の分配など — を生み出すとき、oracle がその結果をブロックチェーンに配信します。oracle は、ブロックチェーン環境内で動作する AI システムに現実世界のデータ(価格、メトリクス、シグナル)を供給するためにも用いられます。

oracle は操作され得ますか?

はい。oracle はブロックチェーンシステムにおける既知の攻撃ベクトルです。攻撃者がデータソースを侵害したり、oracle ノードの多数を破壊したり、集約メカニズムを悪用したりできれば、スマートコントラクトに偽のデータを供給し、誤ったトランザクションをトリガーする可能性があります。これが、oracle の設計 — 独立したノードの数、ステーキング要件、データソースの多様性、集約方法 — が、外部データに依存するあらゆるプロジェクトのセキュリティにとって決定的に重要である理由です。

外部リンク

  • Ethereum.org — Oracles — Ethereum のドキュメントによる、oracle の概念、種類、セキュリティ上の考慮事項の包括的な解説。
  • Chainlink Documentation — Data Feeds — 広く用いられている oracle ネットワークがスマートコントラクトにデータを配信する方法。

関連ページ