ジオマーリン

geomerlin.com に関することを中心に。難しいことをもっと難しく書くブログ。

iEx.ec RLCのホワイトペーパー 徹底解説

iEx.ecの将来性について数週間前に記事を書きました。

 

 

その際、システムの目的や将来性を中心に書いたため、技術的なポイントをおさえることを怠ったように思います。何故そのポイントが重要かといいますと、iEx.ecに投資するにあたってはslackに入ることを強く勧めますが、技術的なニュースが分からないと投資のタイミングが分からないと思います。

 

iExecは一言で言えば、「ブロックチェーンクラウドコンピューティングを安くする。そのためにはオフチェーン処理とデスクトップグリッドを使う」です。 

 

iExecの技術におけるキーワードは

「オフチェーン」、「Proof of Contribution」、「Domain-Specific Blockchain」、「デスクトップグリッド」の4つです。

では一つずつ解説を書かせてもらいます。

 

①オフチェーン

 最近のビットコイン分裂騒動でもお馴染みの単語です。「スモールブロック」とも近い話ですが、メインブロックチェーンに全てを記録すると、パフォーマンスがありとあらゆる点で低下すると考えられるのです。だから、ビットコインの時には、ブロック以外に記録しよう=Segwitが支持されました。オフチェーンというのは、iExecの場合、Ethereumにプロセスを記録しないで、結果のみを記録することを言います。

オフチェーンで重要なのは、メインブロックチェーンに記録していない=合意のないデータ・トランザクションに関する合意をどのようなプロトコルで行うかです。それがおそらく次の項目です。

 

 ちなみに、オフチェーンの実証実験は2016年のソルトレークシティのイベントで発表したとおり、もう済んでいるそうです。


②Proof of Contribution 

 ホワイトペーパーで「PoCo、これはオフチェーンでのコンセンサスを可能にする」と書いてあります。ここでひとつ?がつきますね。オフチェーンでコンセンサスとは?
これを理解するために他のプロジェクトを参照しましょう。

http://businessblockchain.org/about-aeternity

Aeternityはオフチェーンでスマートコントラクト=コンセンサス生成を行うプロジェクトです。主なオフチェーン処理にOraclizeが挙げられています。

 

[Oraclizeとは]

 例えば明日の天気で賭けをEthereumで行う際に,明日の天気のデータはブロックチェーン内から生まれないため、外部のAPIやURLを参照し天下り的に受け入れる必要があります。Oracle=神託です。

 

 ここで重要なことですが、信用のあるAPIの元(天下り元)で複雑な処理が出来たらどうでしょう?これは、Ethereumへの負荷・手数料を減らす上、システム全体の速度を上げてくれます。これがオフチェーン処理の意義であり、オフチェーンへの移行=オラクル側ノードの増加と言えるでしょう。

medium.com

 さて、オフチェーンでのオラクル側の仕事にいくら報酬をあげましょうか?この決定方法がProof of Contributionらしいです。細かい仕様はおそらく11月にオープンソースが出るまで分かりませんが、ブロックチェーンをどのくらい正しく変更させたかで報酬が決まるようです。

 

 ここで疑問として残るのは、この報酬がクライアント側が出したEthereumスマートコントラクトに記述されているかどうかですね。個人的な予想ですが、クライアント側のスマートコントラクトに適切に報酬を記述するガイドラインがなければ、iExecは機能しないでしょう。11月のドキュメントを注意深く見守る必要があります。

 

③Domain-Specific Blockchain

 スマートコントラクトではセキュリティ問題が発生しやすいことから考案されたものらしいです。iExec特製のバーチャルマシンとセットとなるブロックチェーンです。さっきまでオフチェーンオフチェーンってたくさん言いましたが、iExecはたぶん、Ethereumに書かない処理をこのサイドチェーンに書くと思われます。

 この項目を考慮すると、オフチェーンというより、どちらかというとクロスチェーンと考えてもよいのではと思います。正直最初読んだ時にはオフチェーンって書いておきながら、サイドチェーンのこの話が出てきて???ってなりました。Whitepaperはみんなが知ってる単語書かないといけないので大変ですねっていう感想です。

 

④デスクトップグリッド

 これは分散コンピューティングの種類ですね。ブロックチェーンで分散コンピューティングする際にもタスクの割当は非常に重要なので、下のリンクのような既存の技術は必要です。

Berkeley Open Infrastructure for Network Computing - Wikipedia

 iExecにおけるタスクの割当の仕様は以下のリンクに解説されている通り

medium.com

 

総論

 Ethereumの技術的な観点を中心に考えると、iExecは

「かなり凝ったOraclizeの手法」あるいは「Oracleのスマートコントラクト化」というのが適切かもしれません。

 Proof of Contirbutionは、ライトニングネットワークやライデンネットワークのようなオフチェーンのコンセンサス案が暗号学的に有効だと考えられていることから、信じてもよいものだとも思えますが、本当にちゃんと報酬を計算できるのか少し心配です。

 次のようなケースを考えて下さい。

 僕が数学者らしきノードSATOSHIに難しい計算100+200を頼むとします。SATOSHIは怠け者なので101とかいうテキトーな答えを返してきます。そして僕に報酬を請求するのです。iExec側はそういった悪意のあるノードを排除できるのがPoCoだと言いますが、ではどうやって排除するのでしょう?他のノードVITALIK,ASAYAMAが100+200を計算し、間違いを指摘するのでしょうか?それでは、大量の二重計算を行ってしまうので、低コスト計算を行える気がしません。おそらく計算するのは1ノードでしょう。

 

 ホワイトペーパーには、PoSやテスト期間を設けることでこの問題を解決すると書いてあります。つまりこのシステムはある程度看板を背負っている企業か、既に信用を築いたノードが、余った計算量を使うことを指向しているのです。信用をある程度もつIT企業同士の協業システムです。ただ、これはデスクトップグリッド自体がそういう性質を持つので許容されるものですが。

 このケースを考えることで得られるのは、スマートコントラクトを最初に書く側が報酬を設定しない限り、モラルハザードは簡単に起こるということです。もし、計算過程をサイドチェーン上で追えるなら話は全く別になりますが