ブロックチェーンのオラクルとは
ホーム
記事
ブロックチェーンのオラクルとは

ブロックチェーンのオラクルとは

中級者
公開済 Jan 22, 2020更新済 Nov 28, 2023
7m
コミュニティ寄稿 ー 筆者:Vallery Mou


コンテンツ


ブロックチェーンのオラクルとは?

ブロックチェーンにおけるオラクルとは、スマートコントラクトに外部の情報を提供するサードパーティ製のサービスのことです。ブロックチェーンと外の世界をつなぐ役割を果たします。
ブロックチェーンとスマートコントラクトは、オフチェーンのデータ(ネットワークの外にあるデータ)にアクセスすることができません。しかしながら、外部からの情報を必要とする契約は数多く存在しています。

そこで利用されるのがオラクルです。オラクルは、オフチェーンとオンチェーンの間でデータの橋渡しをしてくれます。それによってスマートコントラクトを利用できる範囲が広がるため、ブロックチェーンのエコシステムで重要な役割を果たします。オラクルを活用しないと、ネットワーク内のデータにしかアクセスできないため、スマートコントラクトの利用範囲が非常に限定されてしまいます。

オラクルはデータの情報源を指しているわけではありません。外部データの情報源を検証して、情報の橋渡しをするレイヤーのことです。オラクルによって提供されるデータには、様々な形態があります。例えば、価格情報、決済完了通知、センサーで計測された温度です。

外部の世界から提供されたデータを利用するためには、スマートコントラクトを起動する必要があり、ネットワークのリソースを使う必要があります。また、スマートコントラクトに情報を提供するだけでなく、外部の情報源にデータを返すことができるオラクルもあります。

オラクルには様々な種類があり、どのように設計されているかによって特徴が異なります。それでは、さらに詳しく見ていきましょう。


オラクルの例

仮にアリスとボブが、アメリカの大統領選挙で賭けをしたとします。アリスは共和党の候補者が、ボブは民主党の候補者が勝つと予想しました。両者が賭けの条件に同意し、スマートコントラクトに資産を預けます。選挙の勝者を当てた方が、預けた全資産をもらえるというのが賭けの内容です。

スマートコントラクトは外部のデータにアクセスすることができないため、情報を入手するためにオラクルを利用する必要があります。外部のデータとは、このケースでは「選挙の勝者」です。選挙が終わった後、オラクルは信頼できるAPIを通して選挙の勝者を調べ、その情報をスマートコントラクトに伝えます。それから選挙の結果に応じて、預けられた資産がアリスかボブに送られるという仕組みです。

データを伝達してくれるオラクルを活用しないと、賭けの勝ち負けを判断できないのです。


オラクルの種類は?

以下のように、オラクルは様々な種類に分類されます。

  • 情報源ーソフトウェアとハードウェアのどちらから送られてきたデータなのか?
  • 情報の方向性ーインバウンドかアウトバウンドか?
  • 信頼性ー中央集権的か非中央集権的か?

1つのオラクルを複数のカテゴリに分類することもできます。例えば、企業のウェブサイトから情報を入手する場合は、ソフトウェアオラクル・インバウンドオラクル・集権型オラクルに分類が可能です。


ソフトウェアオラクル

ソフトウェアオラクルは、オンライン上の情報源にアクセスし、そのデータをブロックチェーンに送信します。オンラインのデータベースやサーバー、ウェブサイトからの情報です。本質的には、ウェブ上のあらゆるデータが対象になります。

ソフトウェアオラクルがインターネットに接続されているということは、情報をスマートコントラクトに提供できるだけでなく、その提供をリアルタイムで行うことができるということです。利便性が高いため、ソフトウェアオラクルは最も利用されています。

一般的にソフトウェアオラクルから提供される情報には、取引所のレートやデジタル資産の価格、空港のフライト状況といったものがあります。


ハードウェアオラクル

上述したように、スマートコントラクトによっては、実世界の情報にアクセスする必要があります。ハードウェアオラクルは、物理的な機器から情報を入手し、それをスマートコントラクトに送信するように設計されています。具体的には電子センサーやバーコードスキャナーなど、情報を読み込むデバイスからデータを入手します。

ハードウェアオラクルは基本的に、実世界の出来事をスマートコントラクトが理解できるようにデジタル情報に変換します。

例えばハードウェアオラクルが入手するのは、商品を輸送するトラックが目的地に到着したかどうかを確認するセンサーからの情報です。到着していた場合、その情報をスマートコントラクトに伝えると、そのデータに基づいた判断が実行されます。

このような内容に興味をお持ちの場合は、ブロックチェーンユースケース:サプライチェーンをお読みください。


インバウンドオラクルとアウトバウンドオラクル

インバウンドオラクルは、外部の情報をスマートコントラクトに送信します。一方アウトバウンドオラクルは、スマートコントラクトから外部へ情報を送信します。

インバウンドオラクルの活用例は、センサーで計測された気温の送信です。アウトバウンドの活用例は、スマートロックです。例えば、指定のアドレスに支払いがされると、スマートコントラクトがアウトバウンドオラクルを通して入金情報を送信し、解錠される仕組みのことです。


集権型オラクルと分散型オラクル

集権型オラクルは、1つの主体が管理し、スマートコントラクトに対する情報提供も管理者のみが行います。情報源が単一であることはリスクが伴います。それは、契約の有効性が、オラクルの管理者に完全に依存するからです。また悪意ある干渉によって、スマートコントラクトが直接影響を受けることもあります。集権型オラクルの1番の問題は、単一障害点が存在することです。脆弱性を有し、攻撃に対する耐性が弱いというデメリットがあります。

分散型オラクルは、パブリックブロックチェーンのように、同じ目的を複数の参加者が共有します。カウンターパーティリスクをなくす仕組みです。単一の情報元だけに頼らずに済むので、スマートコントラクトに提供される情報の信頼性が向上します。スマートコントラクトは、データの正当性や正確性を判断するために、複数のオラクルを利用します。このため分散型オラクルは、合意型のオラクルと呼ばれることもあります。

もちろんブロックチェーン業界には、分散型オラクルのサービスを提供するプロジェクトがあります。特に、特定の結果の正当性を、社会的な合意によって認証する予測市場では利用価値があります。

分散型オラクルは、トラストレスの状態を目指していますが、信頼が全く必要ないというわけではありません。トラストレスなブロックチェーンネットワークと同じように、多くの参加者に信頼が分散されているということを覚えておきましょう。


特定の契約向けのオラクル

オラクルには、1つのスマートコントラクトのためだけに設計されたものもあります。複数のスマートコントラクトを実装したい場合は、その数だけオラクルの開発が必要になります。

このようなオラクルを運用するには、非常に時間とコストがかかります。様々なソースからデータを入手したい企業には、あまり実用的ではないかもしれません。一方で、1つのスマートコントラクトにだけ対応したオラクルは、特定のユースケースのためにゼロから設計することができます。そのため、個々の必要性を満たそうとする開発者にとっては、柔軟性が高いというメリットがあります。


人間によるオラクル

特定の分野の専門知識を持った人が、オラクルの役割を果たすこともできます。様々なソースから入手した情報の正当性を検証し、それをスマートコントラクトに提供します。オラクルの役割を果たす人は身分証明に暗号技術を利用できるため、悪意ある者が勝手に偽装データを提供する可能性は比較的低いと考えられています。


オラクル問題

スマートコントラクトは、オラクルに提供されたデータに基づいて契約を遂行します。そのため、ブロックチェーンで健全なエコシステムを構築するためには、オラクルが非常に重要な役割を果たします。オラクルのデータが改ざんされてしまうと、スマートコントラクトが正しく機能しなくなるからです。これが「オラクル問題」です。

オラクルは基本的に、ブロックチェーン上の合意事項に含まれないため、パブリックブロックチェーンのセキュリティの仕組みも効果がありません。サードパーティ製のオラクルと、トラストレスなスマートコントラクトの間に起こる信頼の矛盾は、ほとんど解決されていません。

また中間者攻撃も脅威です。悪意ある者がオラクルとスマートコントラクトのデータのやりとりを干渉し、データを改ざんする可能性があります。


まとめ

ブロックチェーンをグローバルに普及させるためには、スマートコントラクトが外部の世界と円滑にやりとりできるように、信頼できる仕組みを構築することが必要不可欠です。オラクルを活用しないと、スマートコントラクトはネットワークにある情報しか利用できなくなり、機能が大幅に制限されてしまいます。

分散型オラクルは、ブロックチェーンのエコシステムからシステミックリスクをなくす仕組みを導入できる可能性を秘めています。安全でトラストレスにブロックを生成し、ブロックチェーンのエコシステムを発展させるために、オラクルの機能は必要であると考えられています。