ボム君.com

うどんのStackブログ

Ethereumとそのエコシステムについて学びましょう!

Plasma ーBlockchains in Blockchainsー

公式サイト:http://plasma.io/

Whitepaper:http://plasma.io/plasma.pdf

Plasmaの概要

f:id:udoncryptocurrency:20171213141425p:plain Vitalik ButerinとJoseph Poonが発表した、スマートコントラクトを実行する際のプロセスをスケーラブルなものにするためにプロセスを大幅に最適化するものです。これにより取引手数料の圧倒的な低下も見込まれます。またWhitepaperでは、数十億tpsまで拡張する潜在能力があると述べられています。 子チェーン、そしてまたその下に子チェーン…といったようにツリー状にブロックチェーン(台帳)をつなげ、最終的な結果をrootチェーン(Ethereum)に記録します。

Plasmaの仕組み

概要

Plasmaは子チェーンの使用によってroot chain(Ethereum)のスケーラビリティ問題を解決しようとするものです。概念的にいうと、基本的にEthereumの情報を参照するのは、不正なトランザクションなどで揉めた時、EthereumからETHやEthereumのトークンを移したり戻したりする時のみです。 そして普段使う際はいくつかの子チェーンに分かれて使用します。Ethereumにはトランザクションなどをいちいち書き込みません。ただ子チェーンのブロックヘッダーを親チェーンに書き込むだけです。また、この仕組みはネットワーク参加者が全てのトランザクションを監視する訳ではありません。自身に関係するものを主に監視することが想定されています。これにより全ノードが全てのものを検証する必要がなくなり、スケールが可能になります。

ツリー状になったチェーン ーBlockchains in Blockchainsー

f:id:udoncryptocurrency:20171213141509p:plain Plasmaの子チェーンといった仕組みは主にスマートコントラクトをスケールするものです。通常のETHトランザクショントークン送信程度のスマートコントラクト(ほぼ定型になっているスマートコントラクトの使用)はRaiden Network(図ではLightning Networkとなっていますが、Ethereumの場合Raiden Networkだと思います。)を使用します。この考え方が数十億tpsを実現するための考え方だと思われます。 Plasmaの子チェーンなどで「整合性がない」といった争いがあった場合、親チェーン、最終的にはroot chain(Ethereum)にまでさかのぼって判断します。そして整合性を狂わせる事があった場合、ブロックはロールバックされ、ブロック作成者にはペナルティが課されます。このシステムにより、攻撃を抑止します。 またあるチェーンに対して攻撃があった場合、そのチェーンの参加者はそのチェーンから安価かつ迅速に親チェーンに引き上げることが可能です。

Plasmaでのコンセンサス

PlasmaでのコンセンサスはもちろんProof of Workも使えるようですが、基本的にProof of Stakeが想定されています。そして使用するものはETHまたはERC20などのトークンによってPoSを行うというものです。Omise GoはTendermintというPoSアルゴリズムを使うようです。

MapReduceが果たす役割

MapReduceとは親チェーンが(複数の)子チェーンにコントラクトの処理の役割を分担し、並列化して処理することを可能にするものです。 MapReduceの使用により、Ethereum本体(root chain)では実行できないような大規模なスマートコントラクトに対応することが可能になります。またチェーンの負荷を大幅に削減することもできます。(これはzk-SNARKSを使用しても、互換性あり)

State ChannelやRaiden Netoworkとの違い

f:id:udoncryptocurrency:20171213141451p:plain Plasmaと、State ChannelやRaiden Network(Lightning Network)との主な違いは、すべての参加者がオンラインである必要はないということです。State ChannelやRaiden Networkでは参加者はオンラインであることが求められます。(オンラインの第三者に見張ってもらうという手もありますが) なので上の図のようなことが可能になります。PlasmaとState ChannelやRaiden Network(Lightning Network)とは基本的に競合しないものです。

Plasmaの応用例

Plasmaのホワイトペーパに載っていた例を挙げます。 - 分散型reddit.com - 分散型取引所 - 分散型メール - 分散型CDN - プライベートチェーン もちろんこんなのはほんの一例です。もっとスケーラブルなスマートコントラクトプラットフォームなので、できることは無限にひろがります。

まとめ

Plasmaは、自分の子チェーンにスマートコントラクトの処理を委任できたり、チェーン同士のスマートコントラクトを使用した安全な接続ができるといったところが面白いですね。Raidenなどとの相乗効果も見込めますね。