
インターネットコンピューターではhttps通信は難しい?
インターネットコンピューターでは http(s)通信に課題があるということに疑問を持つ方向けの記事です。
http(s)ができない??どういうこと?
インターネットコンピューターで作られているWebアプリはhttp(s)しているのに?
Webサービスにhttp(s)通信をすることは、ごくごく一般的です。例えば、amazonで買い物をする場合、裏ではvisa,masterなどのクレジットカードを使うサービスとhttps通信をしたりします。
しかし、インターネットで行われているhttp(s)がインターネットコンピュータに限らず、ある種のブロックチェーンでは問題になります。
この記事では
- ブロックチェーンの外へのhttp(s)通信がうまく機能しない場面
- 外と通信した先のオラクル問題
にふれつつ、インターネットコンピューターが解決しようとしている外部とのhttp (s) の課題を紹介します。
目次
ブロックチェーンは普通のhttps通信が難しい
スマートコントラクトをサポートしているブロックチェーンは、非ブロックチェーンのサーバーとhttp(s)通信すると失敗したり、思わぬ結果になったりします。
- 分散化されていることの弊害
- オラクル問題とインターネットコンピューター
- オラクル問題・その情報の確からしさは?
分散化されていることの弊害
インターネットコンピューターで構築されたアプリは分散化されています。それぞれが計算し互いの計算結果を照合して最終的な計算結果を出します。それぞれの力関係が均等なので合意をとるんですね。多数決のようなものでコンセンサスとも呼びます。
インターネットコンピューターの内側だけであれば「災害がおきても止められない」「悪意ある攻撃に対して耐性をもつ」など分散されているメリットがいくつもあります。しかし、一歩インターネットコンピューターの外にでると逆に分散されていることが問題になります。
具体的な場面をいくつか例を紹介します。
ID発行やメールアドレス登録できているのに常にエラー
ブロックチェーンでアプリが分散化されているということはそれぞれのアプリで処理・計算することになります。
ブロックチェーンの外にあるメールアドレスを登録するAPIを想定してみましょう。分散化されたアプリがそれぞれ処理をするのでメールアドレスを登録しようとするとこんな感じになります。

どうでしょう?ちょっと嫌な感じがしますね。掘り下げます。
最初にAPIに登録を要求したプログラムは登録に成功するのですが、しかし最初のプログラム以外は「すでに登録されたメールアドレスを登録する」ことになるので、エラーになります。
外のAPIの動きも正常ですよね。 登録すべきは最初の一回だけで十分です。2回目以降にエラーを出すのはAPIとしておかしくありません。
ですがブロックチェーン内部はそうはいきません。外から取得した処理結果は、登録成功が1に対してエラーが3になるので、エラーで合意をとります。するとブロックチェーンの世界では「エラー」が正しいと判断されます。
本当はアドレスを登録できているし、外のAPIも正しい挙動をしているのに内部では常にエラーになる。これでは困ります。
今のドル円の為替の取得が困難
ほかにも問題になるパターン例を紹介します。為替のドル円などリアルタイムで変化する値も難しいです。

もちろん外にあるAPIは正常に稼働しています。
ただ、ネットワークの都合上、どうしても取得するタイミングがずれてしまうことで、一律同じ価格を外のAPIが返しすことができないのです。
- 115.01 円/$
- 114.98 円/$
- 114.99 円/$
- 115.02 円/$
この場合、すべて違うので合意には至りませんね。大抵のリアルタイムデータ(時刻など)はミリ秒とは言えインターネットを経由してしまえばずれるのは珍しいことではありません。ブロックチェーンがいくら高速で動こうとも通信先のマシンスペックが低い可能性もありますし、経由ネットワークが多少混雑していることも考えられます。
オラクル問題とインターネットコンピューター
ブロックチェーンが外とhttps通信をするだけでも問題が生じることがあり、現実にあるデータを取得することは難しいことを紹介しました。
さらに取得がもしもうまくいったとしても、信頼できるデータかどうかという問題もあります。オラクル問題です。
- オラクル問題・その情報の確からしさは?
- 解決するための提案が可決
- オラクルに特化しているChainlinkの統合案
- 独自にオラクル問題を解決案
オラクル問題・その情報の確からしさは?
ブロックチェーンの外から得た情報は本当に正しいのかという問題。先ほどのドル円の為替で考えてみます。為替情報をもつサービスは世にたくさんありますが、どのAPIからデータを取得するので、ブロックチェーンの世界は多大な影響を受けてしまいます。

上記の例では、ドル円は115円近辺で取引されています。ただ、証券会社Bだけは明らかに誤った金額をAPIが出力してきている状態です。証券会社Bのバグか悪意かはおいておいて、もしブロックチェーンが「証券会社Bだけ」からデータを取得してしまった場合、ブロックチェーンの世界ではドル円が900.20円であることが正しいとみなされます。
もし世界中で115円で取引している中、ブロックチェーン内部で900円で取引されたら、被害を被る人たちが出てきます。資産の大半を失ってしまう人も出てくるでしょう。大事件です。
ブロックチェーンの外から取得する信憑性のあるデータをオラクルとよび、信憑性のあるデータ、つまりオラクルを取得する難しさをオラクル問題と呼んでいます。
特にDEXでは重要。仮想通貨・ドルなどの為替相場ではDEXに与える問題は大きくなります。ICP/USDはもちろんのこと統合が予定されているBTC/USD、ETH/USDも今後重要です。
オラクル問題の解決例
オラクル問題へのアプローチはいくつかあります。オラクル問題はいくつかの種類がありそれぞれ解決策も考えられ、実際に試されています。
例えば、先の為替レートであれば、複数のAPIから得られるデータの中央値でコンセンサスをとる等。
- 114.98
- 115.01
- 115.01←採用
- 115.02
- 900.20
これはあくまで一例です。
オラクルに特化しているChainlinkの統合案
そして、オラクルに特化してソリューション提供しているブロックチェーンがあります。Chainlinkです。すでに数百を超えるオラクルを保持しています。
Chainlinkなど、オラクルに関して先行しているブロックチェーンをリサーチし、BTC・ETH同様に統合できるかを検討していくことはそのひとつです。
Chainlinkを統合すればすぐさまこれら大量のオラクルにアクセス可能になります。2022年時点で、オラクル問題に取り組むブロックチェーンはいくつもありますが、Chainlinkが提供するオラクルの数は競合と比較して圧倒的に多いです。
独自にオラクル問題を解決案
一方で既存のChainlinkなどのブロックチェーンと接続せずに、インターネットコンピューターの中でオラクルに取り組めないかも検討していくのも一つの手です。
オラクルサービスが作れる可能性
インターネットコンピューターがインフラとしてオラクルをサポートしてくれれば、自分たちでオラクルサービスを作ることができる可能性がでてきます。外部にあるリソースを自分たちで選ぶだけでオラクルデータを生成できれば、オラクル・キャニスターなるものを展開可能になるでしょう。
オラクルを利用する側も楽に
インターネットコンピューター内にオラクルがあれば、オラクルを利用する側の開発も単純になるでしょう。他のブロックチェーンと対話するには、たとえばChainlinkと接続するにはLINKのアドレスを使って支払うための設定をしていく必要があります。
単純にブロックチェーンをまたぐので必要な手続きが増えるのでどうしても手数が要るんですね。もし、インターネットコンピューター内部だけで完結できればオラクルを利用が幾分簡単になります。
ハードルは多そう
一方でオラクルをサポートするのは開発コストが相当かかることが予想されます。
実際、オラクルの問題を解決するために、Chainlilnk、Band 、 Dia 、 Umbrella 、 Kylinなどいくつものブロックチェーンプロジェクトが立ち上がっていることを考えると、オラクルを導入すること自体・難易度が高いことが考えられます。加えて、多くのブロックチェーンがChainlinkを既に利用している事実がありますので、既存のオラクル特化のブロックチェーンを利用するほうがスムーズにみえます。
https通信の研究開発がロードマップに乗る

さて、ここまでhttps通信の課題とオラクル問題にふれてきましたが実際にインターネットコンピューターではどのように対応していくのか最後に紹介します。
最近インターネットコンピューターのロードマップが更新されました。その中にhttps通信可能にする研究開発がロードマップにも乗り、2022第一四半期末にリストされたことが確認できます。
オラクル問題を解決するにしろ、まずは外と通信できなければ話になりません。最初の一歩目がきました!
まとめ
- https通信の研究開発が2022第一四半期末にリストされる
- オラクル問題はまず既存ブロックチェーンの統合が濃厚か
インターネットコンピューターはオラクル問題はこれからです。
オラクルを利用できるようになると現実世界のデータを取り込めることになるので、DeFiなど金融以外にも、保険業や気象データの利用、観測するためのIOTなどなどサービスや技術に広がりがもたらされます。
個人的にはオラクルもインターネットコンピューター内にあるとうれしいのですが、Dfinityの開発部隊はビットコイン統合やらETH統合やら大忙しですので、開発リソースと優先順位しだいといったところでしょうか。ひょっとするとオラクル問題の解決は投票になるかもしれませんね。