オラクルの台頭

Rise of the Oracle” の日本語訳です。
ブロックチェーンにおけるオラクルの概念の説明から始まり、データの信頼性に関する問題提起、その問題を解決するためのコンセンサスについて議論されています。そして、現状、オラクル開発はユーザーからのフィードバックにより開発の方向性を決めることが可能な段階であり、ユーザーからの意見を求めています。実際にオラクルを使用されている方は、どんどん意見を上げていきましょう。

Author

@Ralvan

オラクルの台頭

ブロックチェーンのオラクルは、外部データをブロックチェーンに配信する問題を解決します ― しかし、私達はどのデータを信頼できるかを知る必要があります。

Waves Oraclesディレクトリの立ち上げに関する記事で、ブロックチェーンにおけるオラクルの重要性について説明しました。分散アプリはブロックチェーン外のデータにアクセスできません。この問題は、オラクルを使用することにより解決できます。

議論すべき課題は非常に明快です。dAppの実行に外部データが必要な場合は、そのデータをブロックチェーンに保存する必要があります。それを実現するために、オラクル(Oracle)と呼ばれる小さなプログラムが作られました。オラクルは外部の世界の関連データにアクセスし、そのデータをブロックチェーンに記録します。

外部データソースのタイプにより、すべてのオラクルは、ソフトウェアオラクル、ハードウェアオラクル、およびヒューマンオラクルの3つのカテゴリに分類できます。

ソフトウェアオラクルは、温度、商品やサービスの価格、フライトや列車の遅延などのデータをインターネットから取得します。情報は、APIなどのオンラインソースから取得されます。オラクルは関連データを抽出し、ブロックチェーンに記録します。ここで、簡単なソフトウェアオラクルの作成方法を学ぶことができます。

ハードウェアオラクルは、デバイスとセンサーを使用して実世界のオブジェクトをトレース(追跡)します。たとえば、あるラインを横切る物体をを検知する様に較正されたビデオカメラは、ある特定のエリアに進入する車両を追跡します。オラクルは、ブロックチェーンにエリアに入ったという事実を記録します。そのオラクルのデータに基づいて、dAppのスクリプトは、たとえば、チケットを発行し、車両所有者のアカウントからトークンを差し引くことができます。

ヒューマンオラクルは、人間が入力したデータで動作し、イベントの結果とは独立したビューを提供するため、最も高度であると考えられます。最近、私たちは、仕様のもとでブロックチェーンにデータを書き込むことを可能にするツールを導入しました。

このツールは非常に簡単です。仕様を埋めてオラクルカードを登録すると、その仕様のもとでブロックチェーンにデータトランザクションを記録できます。ツールの詳細については、ドキュメントをご覧ください。

この種の標準化されたツールとインターフェースは、ブロックチェーンベースのサービスの開発者とユーザーの両方の活動を楽にします。このツールは、証明書の記録やオブジェクトに対する作成者の権利などの分野のヒューマンオラクルにとって特に役立ちます。

ただし、オラクルが提供するデータは信頼できるものでなければなりません。オラクルを1つだけ使用すると、問題が発生する可能性があります。ソースを信頼できるかどうか、およびデータが最新かどうかを知ることは重要です。そうしないと、利益を得るために故意に虚偽の情報を提供し、オラクルがユーザーを欺くことが可能というリスクがあります。

スポーツイベントの結果の情報を分散予測市場に提供するオラクルの例を考えてみましょう。

問題とするイベントは、UFC 242 の Khabib Nurmagomedov と Dustin Poirier の試合です。ブックメーカーによると、Nurmagomedovは1.24のオッズで優勢であり、76%の勝率に相当します。Poirierは4.26(22%)のオッズとなりました。引き分けのオッズは51.0(2%)でした。

スクリプトは、オラクルから実際の結果に関する情報を受け取るまで、3つの結果すべてに対する賭けを受け入れます。その情報は、賞金を分配するための唯一のトリガーです。

私たちは Nurmagomedov が戦いに勝ったことを知っています。しかし、不正なオラクル所有者が詐欺を計画し、最も収益性の高い結果であるドローにかなりの賭けをしたと仮定しましょう。多額のベットが蓄積されると、不正なオラクルの所有者は、ブロックチェーンへの引き分けに関する誤った情報の記録を開始します。分散取引所のスクリプトは、データの正確性のチェックはできず、受け入れることしかできません。その後、スクリプトは、受け取った結果データに従って賭け手の間で賞金を分配します。

この種の詐欺は、不正なオラクル作成者にとって非常に有益である可能性があります。予想される利益が正直なオラクルの予測収益よりも高く、法的リスクが低い場合、詐欺の可能性が大幅に増加します。

これに対処する1つの方法は、複数のオラクルにデータを要求し、受け取った結果からコンセンサス(合意)を確立することです。

コンセンサスにはいくつかのタイプがあります。

  • すべてのオラクルは同じ情報を提供する
  • 大多数のオラクルは同じ情報を提供する(3のうち2つ、4のうち3つなど)
  • オラクルのデータの中央値を計算する(中央値を計算する前に最大および最小の結果を破棄することも可能)
  • すべてのオラクルは、前もって合意された偏差内で同じ情報を提供する。たとえば、異なるソースからの為替レートは0.00001異なり、まったく同じデータを取得することは不可能
  • 一意の(ユニークな)結果のみを選択する

これを上の例に適用してみましょう。「4つのうち3つ」のコンセンサスタイプが使用されている場合、1つのオラクルからの嘘のNurmagomedov vs. Poirier 戦の結果情報はスクリプトの実行に影響を与えません。Nurmagomedovの勝利に関する情報に基づいて実行され、そのデータに基づいて賞金が分配されます。
ただし、不正な人が4つのオラクルのうち3つを所有している場合、結果データを不正操作することが可能です。

オラクルの整合性を維持するために、オラクルのランキングや偽情報提供に対する罰金、および正確な情報を提供するためのインセンティブに関するさまざまな概念を導入できます。しかし、それらのいずれも、談合や不正マジョリティのランク付けからは保護されません。

ですから、もっと複雑な概念が本当に必要なのでしょうか?、それとも、シンプルに、関連データを提供する(スーパーマーケットの棚からでてきたように)5つのオラクルを設定でき、コンセンサスのタイプを設定し、結果を得ることができるコンセンサスツールを持つ方が良いでしょうか?

たとえば、分散型アプリには摂氏温度データが必要とします。oracleディレクトリでそのデータを提供する4つのオラクルを見つけ、コンセンサスタイプを«中央値»に設定してリクエストを行います。

オラクルは18、17、19、21度の値を提供します。データに明らかな矛盾があり、3度の違いがスクリプトの実行に影響を与える可能性があります。サービスは受信したデータを処理し、中央値18.75度を算出し、dAppのスクリプトに送信します。

いずれにせよ、単一のオラクルからのデータを信頼するか、複数のオラクルからコンセンサスを構築するかはユーザー次第です。

全体的に、データオラクルは新しい分野です。これは現在、ユーザーが開発の方向性に影響を与えることができる段階にあります。そのため、私たちはあなたの意見を聞きたいです。上記のコンセンサスツールが必要であるとお考えの場合は教えてください。オラクルの分野が進化する方向についてのアイデアを共有してください。

コメントや公式テレグラムグループへあなたのフィードバックを提供してください。