仮想通貨でよく聞くOracle(オラクル)は本当に分散型である必要はあるのか?基本の説明と共に考察します!

仮想通貨でよく聞くOracle(オラクル)は本当に分散型である必要はあるのか?基本の説明と共に考察します!

こんにちわ、五月雨まくら(@samidare_makura)です。

今回のこの記事ではオラクル(oracle)について考察していきたいと思います。

そもそもオラクル(oracle)とは?

みなさんの中に「オラクル(oracle)」という言葉を聞いたことがある方は多いと思います。あ、一応お約束ですが、オラクル社は一切関係ありませんので注意です。

オラクル(oracle)とは一言でいうと「ブロックチェーンの外側からデータを引っ張ってくる仕組み」のことです。ここでいうデータとは例えば、A社の株式の価格とか道路の渋滞状況などですね。

ではなぜオラクル(oracle)が必要なのでしょうか?それはスマートコントラクトを実行する引数(インプット)としてブロックチェーンの外側のデータが必要になる場合があるからです。

具体例として、AugurやGnosisなどの分散型予測市場について考えてみてください。

サッカーの試合でチームXが勝つかチームYが勝つか予測していたとしたら、当然スマートコントラクトを実行するためには、試合の勝敗という外部データが必要になりますよね。つまりそういうことです。

オラクル(oracle)には集中型と分散型が存在する

オラクル(oracle)には「集中型オラクル(Centralized oracle)」と「分散型オラクル(Decentralized oracle)」の2種類があります。

まず集中型オラクルについて説明しますね。

集中型オラクルの仕組みではデータを提供する特定のエンティティが存在します。そしてデータの正しさはこのエンティティが証明します。現状のオラクル(oracle)はほとんどが、集中型オラクルです。集中型オラクルの仕組みはシンプルである故に、効率的にデータを提供することができます。一見問題がないように思えますね。

しかし勘のいい方はすでにお気付きの通り、集中型オラクルはエンティティを信頼する必要があり、いわゆる単一障害点が存在します。つまりトラストレスな仕組みではないということです。そしてコレに対処することを目的に考えられた仕組みが分散型オラクルというわけです。

ただ分散型オラクルは、データを提供するインセンティブを設計することがとても難しいといわれています。

言い換えれば、どうしてデータを不特定多数の個々が提供してくれるのか、理由を見つけることがなかなかできないということです。また提供されたとしても、データの真偽を検証、合意形成するのには手間がかかります。そのため現状、うまく走っている分散型オラクルは存在していません。

オラクル(oracle)は分散型でなければいけないのか?

スマートコントラクトは、現実世界に存在する手続きをトラストレスに執行するプログラムと認識していますので、ブロックチェーンの外側のデータを処理する機会は多々あると考えられます。

そのため、オラクルのニーズというのは、スマートコントラクトのユースケースが増える比例して高まっていくでしょう。そのため分散型オラクルの開発が急務であるように思えます。

しかし、本当にオラクルは分散型でなくてはならないのでしょうか?考えてみてください。

現在もさまざまなプログラムはAPIを経由して単一もしくは複数のエンティティが提供するデータを活用しています。それが特に問題視されたことはあるでしょうか?

たまにシステムの不具合が起こってメンテナンスされたり、間違った情報が提供されることはありますが、看過できるレベルだと思います。

これはブロックチェーンあるあるの「トラストレス至上主義」ではないでしょうか?果たして本当にすべての仕組みがトラストレスである必要があるのでしょうか?

五月雨はケースバイケースに考えれば良いのではと思います。

個人的には、もし集中型オラクルを運用していった結果、どうしてもトラストレスにせざるを得ない事情が生まれた場合、分散型オラクルを検討していけばいいのではないかと思います。

まとめると、もちろん実験的試みは必要ですが「それでなければいけない」わけではないという意見です。ただオラクル(oracle)の重要性が高いことは間違いないので、動向に注目することは必要です。

ニュース/解説記事

Enable Notifications OK No thanks