コンテンツ
ブロックチェーンのオラクルとは?
そこで利用されるのがオラクルです。オラクルは、オフチェーンとオンチェーンの間でデータの橋渡しをしてくれます。それによってスマートコントラクトを利用できる範囲が広がるため、ブロックチェーンのエコシステムで重要な役割を果たします。オラクルを活用しないと、ネットワーク内のデータにしかアクセスできないため、スマートコントラクトの利用範囲が非常に限定されてしまいます。
オラクルはデータの情報源を指しているわけではありません。外部データの情報源を検証して、情報の橋渡しをするレイヤーのことです。オラクルによって提供されるデータには、様々な形態があります。例えば、価格情報、決済完了通知、センサーで計測された温度です。
外部の世界から提供されたデータを利用するためには、スマートコントラクトを起動する必要があり、ネットワークのリソースを使う必要があります。また、スマートコントラクトに情報を提供するだけでなく、外部の情報源にデータを返すことができるオラクルもあります。
オラクルには様々な種類があり、どのように設計されているかによって特徴が異なります。それでは、さらに詳しく見ていきましょう。
オラクルの例
仮にアリスとボブが、アメリカの大統領選挙で賭けをしたとします。アリスは共和党の候補者が、ボブは民主党の候補者が勝つと予想しました。両者が賭けの条件に同意し、スマートコントラクトに資産を預けます。選挙の勝者を当てた方が、預けた全資産をもらえるというのが賭けの内容です。
データを伝達してくれるオラクルを活用しないと、賭けの勝ち負けを判断できないのです。
オラクルの種類は?
以下のように、オラクルは様々な種類に分類されます。
- 情報源ーソフトウェアとハードウェアのどちらから送られてきたデータなのか?
- 情報の方向性ーインバウンドかアウトバウンドか?
- 信頼性ー中央集権的か非中央集権的か?
1つのオラクルを複数のカテゴリに分類することもできます。例えば、企業のウェブサイトから情報を入手する場合は、ソフトウェアオラクル・インバウンドオラクル・集権型オラクルに分類が可能です。
ソフトウェアオラクル
ソフトウェアオラクルは、オンライン上の情報源にアクセスし、そのデータをブロックチェーンに送信します。オンラインのデータベースやサーバー、ウェブサイトからの情報です。本質的には、ウェブ上のあらゆるデータが対象になります。
ソフトウェアオラクルがインターネットに接続されているということは、情報をスマートコントラクトに提供できるだけでなく、その提供をリアルタイムで行うことができるということです。利便性が高いため、ソフトウェアオラクルは最も利用されています。
ハードウェアオラクル
上述したように、スマートコントラクトによっては、実世界の情報にアクセスする必要があります。ハードウェアオラクルは、物理的な機器から情報を入手し、それをスマートコントラクトに送信するように設計されています。具体的には電子センサーやバーコードスキャナーなど、情報を読み込むデバイスからデータを入手します。
ハードウェアオラクルは基本的に、実世界の出来事をスマートコントラクトが理解できるようにデジタル情報に変換します。
例えばハードウェアオラクルが入手するのは、商品を輸送するトラックが目的地に到着したかどうかを確認するセンサーからの情報です。到着していた場合、その情報をスマートコントラクトに伝えると、そのデータに基づいた判断が実行されます。
インバウンドオラクルとアウトバウンドオラクル
インバウンドオラクルは、外部の情報をスマートコントラクトに送信します。一方アウトバウンドオラクルは、スマートコントラクトから外部へ情報を送信します。
集権型オラクルと分散型オラクル
集権型オラクルは、1つの主体が管理し、スマートコントラクトに対する情報提供も管理者のみが行います。情報源が単一であることはリスクが伴います。それは、契約の有効性が、オラクルの管理者に完全に依存するからです。また悪意ある干渉によって、スマートコントラクトが直接影響を受けることもあります。集権型オラクルの1番の問題は、単一障害点が存在することです。脆弱性を有し、攻撃に対する耐性が弱いというデメリットがあります。
分散型オラクルは、パブリックブロックチェーンのように、同じ目的を複数の参加者が共有します。カウンターパーティリスクをなくす仕組みです。単一の情報元だけに頼らずに済むので、スマートコントラクトに提供される情報の信頼性が向上します。スマートコントラクトは、データの正当性や正確性を判断するために、複数のオラクルを利用します。このため分散型オラクルは、合意型のオラクルと呼ばれることもあります。
もちろんブロックチェーン業界には、分散型オラクルのサービスを提供するプロジェクトがあります。特に、特定の結果の正当性を、社会的な合意によって認証する予測市場では利用価値があります。
特定の契約向けのオラクル
オラクルには、1つのスマートコントラクトのためだけに設計されたものもあります。複数のスマートコントラクトを実装したい場合は、その数だけオラクルの開発が必要になります。
このようなオラクルを運用するには、非常に時間とコストがかかります。様々なソースからデータを入手したい企業には、あまり実用的ではないかもしれません。一方で、1つのスマートコントラクトにだけ対応したオラクルは、特定のユースケースのためにゼロから設計することができます。そのため、個々の必要性を満たそうとする開発者にとっては、柔軟性が高いというメリットがあります。
人間によるオラクル
オラクル問題
スマートコントラクトは、オラクルに提供されたデータに基づいて契約を遂行します。そのため、ブロックチェーンで健全なエコシステムを構築するためには、オラクルが非常に重要な役割を果たします。オラクルのデータが改ざんされてしまうと、スマートコントラクトが正しく機能しなくなるからです。これが「オラクル問題」です。
オラクルは基本的に、ブロックチェーン上の合意事項に含まれないため、パブリックブロックチェーンのセキュリティの仕組みも効果がありません。サードパーティ製のオラクルと、トラストレスなスマートコントラクトの間に起こる信頼の矛盾は、ほとんど解決されていません。
また中間者攻撃も脅威です。悪意ある者がオラクルとスマートコントラクトのデータのやりとりを干渉し、データを改ざんする可能性があります。
まとめ
ブロックチェーンをグローバルに普及させるためには、スマートコントラクトが外部の世界と円滑にやりとりできるように、信頼できる仕組みを構築することが必要不可欠です。オラクルを活用しないと、スマートコントラクトはネットワークにある情報しか利用できなくなり、機能が大幅に制限されてしまいます。