『マスタリング・イーサリアム』の翻訳に参加しました。

オラクルとは何か? Devcon3に登壇した3つのオラクル関連プロジェクト概要

プロジェクト紹介

11月1日から4日までメキシコのカンクンで行われたEthereumの開発者カンファレンスが終了しました。VitalikやVlad等のコア開発者はもちろん、EVM(Ethereum Virtual Machine)を用いたアプリケーションの開発者も多数参加し、各々のプロジェクトや技術についてプレゼンテーションやパネルディスカッションを行いました。

今月はDevcon3の中から個人的に気になるプロジェクトをいくつかピックアップして、分野ごとに概要をまとめたいと思います。変則的にはなりますが、本記事では3日目の発表より、オラクルに関連する3つのプロジェクトを紹介します。

オラクルとは?

様々な意味で使われているようですが、株価や天気等のブロックチェーンの外側に存在するあらゆる情報をブロックチェーンの内側にもたらすものを一般にオラクルと呼んでいます。Ethereumのスマートコントラクトはチェーン外の情報を直接参照することはできないため、チェーン外で発生した事象(事故、選挙結果、天候など)をトリガーにしてスマートコントラクトを発動させることはできません。

例えばEthereum上で運営されている予測市場があったとして、「ビットコインの価格は年内に100万円に到達するか?」という賭けの実行は一見簡単に見えますが、100万円に到達したか否かをブロックチェーン内のスマートコントラクトが自力で参照することはできないため、何らかの形でチェーンに結果をインプットする必要があります。

ここでは詳述しませんが、仮にそのインプットを誰か特定の人間が担う場合、その人間をトラストしなければなりません。特定の人物や組織をトラストすることは、それらに依存することになってしまうので暗号通貨界では好まれず、ネットワークを用いたりオラクルを分散させたりして、トラストレスでデータの取得を実現する手法が研究されています。Ethereum経済圏における関連プロジェクトしてはAugurやGnosis, Aeternityがあります。

Devcon3に登壇した3つのオラクルプロジェクト

[LIVE] Devcon3 Day 3 Stream - Afternoon

いずれのプロジェクトも上の動画の中で登壇しており、下に登壇時刻を付記しています。

BlockOne IQ

2:29:40~
BlockOne IQ

通信社トムソン・ロイターが提供するサービスで、上図にもあるように株価や為替レートなどの金融データをEthereumとCordaのネットワークで使えるようにするというもの。市場価格をスマートコントラクト発動のトリガーとして使ったり、為替レートをサプライチェーンのリスクマネジメントに応用したりすることができるようになる。ロイターの情報をロイター自身が提供するという点において興味深い。

ChainLink

2:49:15~
Smart Contracts are self-executing contractual states, stored on the blockchain.

ChainLinkはブロックチェーンとブロックチェーン外のデータを結びつけるミドルウェアの役割を果たし、APIによって取得できるあらゆるデータをブロックチェーン内に持ち込むことを目指している。APIデータにはデータフィードや従来の銀行アカウントの決済などが含まれる。SWIFTとも提携しているようだが、詳細は不明。Ethereumのみを対象にしているわけではなさそう。

Oraclize

3:09:45~
Oraclize – blockchain oracle service, enabling data-rich smart contracts

データキャリアとしてWeb APIとDappsを繋ぐ役割を果たす。分散型保険として知られるEtheriscがOraclizeをベースにして構築されている他、エストニアのデジタルIDとEthereumのアドレスを結びつけるサービスなども展開している模様。

OraclizeはTLSNotaryという技術を用いて、Oraclizeがユーザーに返したデータが確かにOraclizeが特定のページから取得したデータであることを暗号学的に証明できると公式ブログには書いてある。

オラクルはなぜ重要か

冒頭でも書きましたが、オラクルはブロックチェーンが扱える情報の種類や量を爆発的に増やすという意味で非常に重要です。オラクルが実現できれば、賭け、保険、未来予想など様々な分野に応用することができます。オフチェーン処理がデータ処理のスケーラビリティだとすれば、オラクルは情報量のスケーラビリティとも言えるでしょう。