イーサリアムのスケーラビリティ問題解決策4つを概略する

Ethereumはいかにして限界突破するのか。

はじめに

イーサリアム(Ethereum)はワールドコンピュータを実現するプラットフォームとして、現在開発が急ピッチで進んでいます。一方でこのイーサリアムが社会で実装され、活用されるためにはイーサリアムを取り巻く技術的課題を解決しなければなりませんが、この技術的課題の1つにトランザクションの処理速度の遅さに起因する「スケーラビリティ問題」があります。現在開発者たちはどのようにしてこの問題を解決しようとしているのか、「スケーラビリティって単語よく聞くけど、結局何?」と思っているビギナーの人でもわかるように技術的な解説とロードマップをメインに解説していきます。

スケーラビリティ問題とは

そもそもスケーラビリティ問題とは、ある仕様が対応できるキャパシティを超過するようなトランザクション量が発生した場合に、このキャパシティを超える分のトランザクションに関して、ブロック追加待ち(pending)となることでトランザクション詰まりが発生してしまうことを言います。すなわち、イーサリアム上のブロックチェーンが対応できるトランザクション量を超過したトランザクションが発生していることで、トランザクションの処理に非常に時間がかかってしまうようになります。

このスケーラビリティ問題の背景には、

  • ユーザー数の増加による送金詰まり
  • ICOの増加
  • イーサリアム上で実行されるアプリケーション(Dapps)の増加
  • 全ノードによってトランザクションが検証される必要があるにも関わらず、マイニングをするノードの増加によりトランザクションの処理に時間がかかる低スペックノードが増え、トランザクションの処理・検証に時間がかかってしまう

といった問題があります。これらを解決する打ち手として現在注目されている主な手段が、Casper、Sharding、Plasma、Raiden Networkになります。以下順番に見ていきましょう。

Casper

1つ目の解決策が、トランザクションの検証をProof of Work(PoW)から独自に改良したProof of Stake(PoS)に移行する、通称Casperです。Casperは2014年にBFT(Bizantine Fault Torelanceシステム。全員の合意の中にウソが混在していたとしても、全体として正しい意思決定を行うシステムの総称。)をベースとして開発されたPoSに基づいて発表されました(これを初期のPoSという意味でnaivePoSと呼びます)。

PoSの基本的な仕組み

PoSにおいてはPoWと異なり計算資源を必要とせず、Stakeと呼ばれる掛け金をデポジットし、その量が多い人ほど高確率でブロック生成の権利を得られる仕組みになっています。

もしPoSが実現する場合、外部資源としてASICのようなマシンを用意する必要もありませんし、ブロックチェーンの維持にかかるコンピュータエネルギーの消費量を削減することができるとされています。

さて、このPoSに基づいたCasperですが、実は現在2種類のCasperの開発が進んでいます。一つはイーサリアム生みの親であるVitalik Buterinが発案したCasper the Friendly Finality Gadget(CFFG)、もう一つがイーサリアム開発者のひとりであるVlad Zamfirが発案したCasper the Friendly Ghost(CTFG)です。

両者はフォークする際のチェーンにおいてどのチェーンをメインに定めるかという点において異なっており、CFFGはファイナリティとビザンチン将軍問題の耐性の双方に基づいて合意形成を取ろうとするものであるのに対して、CTFGではPoWイーサリアムで使用されているGHOSTプロトコルをPoSに活用することを目指しています。

開発状況

イーサリアムは合計4回のアップデート「フロンティア」「ホームステッド」「メトロポリス」「セレニティ」が予定されており、当初の予定では最終的にセレニティの段階で完全なPoSへの移行を目指していました。そして現時点であるメトロポリス第二段階であるコンスタンティノープルにおいて(後述するShardingの実現にはCasperの実装が必要不可欠であることから)Shardingとの同時並行での実装が試みられていました。

しかし2018年9月初旬、ディフィカルティ・ボムの影響によりCasperとShardingが同時に12ヶ月延期されることが発表されました。この延期においては前後のブロックとの互換性がないため、同コンスタンティノープルにおいてのハードフォークが予定されています。(Casperの動きやハードフォークの予定については、今後Ethereum研究所の別記事で公開予定です。)

Sharding

次の解決策として考えられるのがShardingです。Shardingとは一言で言えば「各ノードをShardと呼ばれるグループに分け、グループごとにトランザクションに関して並列処理を行わせる」機能です。元々Shardingとはデータベースを水平方向に分割することをいうデータベースシステム用語でしたが、これと同じことをイーサリアムというワールドコンピュータ上でも実行しようというのがShardingの試みです。

すなわち、現在のイーサリアムにおいては全ノードが同じトランザクションを検証しなければならないためにブロックの生成に非常に時間がかかってしまいますが、全員で同じトランザクションを処理するのではなく各Shardが一つずつトランザクションを検証することで、同時並行で複数のトランザクションを処理することができるようになります。そしてこれの並列に処理されたいくつものトランザクションに関しては、定期的にShard同士で同期しあうこととされています。

ShardingにはPoSが不可欠

このShardingですが、PoSへの移行を前提としています。

というのもShardingにおいては、グルーピングされたノードすなわちShardはランダムに選出され、トランザクションの検証作業を行います。ゆえに、もしランダムに選出されたShardのなかにハッシュパワーの少ないマイナーが集中した場合、PoWであればこのShardに対して簡単に攻撃することができてしまいます。

しかしPoSであれば、Stakeをデポジットしているバリデータは特定されていますので、これらを各Shardに振り分けるだけでアルゴリズムに従った意思決定が可能になります。ゆえにPoSの実装が行われることがShardingの前提であると言えます。もっとも、CasperとShardingの同時延期が公表されているので、Casperの動向を待たねばなりません。

Plasma

CasperとShardingはイーサリアムチェーン上での処理速度向上を目指したものでしたが、トランザクションの一部をサイドチェーンで処理することで、メインチェーン上で処理せねばならない情報量を削減しようとする解決策もあります。これがPlasmaと後述するRaiden Networkです。

Plasmaではイーサリアムチェーンを親ブロックチェーンとした上で、プラズマブロックチェーンによっていくつものTreeチェーンを作っていくことで、親ブロックチェーンに格納されるべき情報量を削減します。

すなわち、これまではイーサリアムブロックチェーン上に全情報を記録しなければなりませんでしたが、プラズマチェーンとして不要な情報を親チェーンから切り離すことで、イーサリアムブロックチェーンに保存されるデータサイズを減らしスマートコントラクトの実行速度を向上させることができます。そしてプラズマのペーパーにおいてはDEX(分散型取引所)、SNS、マイクロペイメントなどについてプラズマチェーンを作ることが想定されています。

最新のPlasma「Tesuji」「Plasma Debit」

現在のイーサリアムコアリサーチャーの注目するスケーラビリティ解決策はもっぱらこのPlasmaです。Plasmaには様々な種類があり(Plasma Cash,Plasma XTなど)、それぞれ開発が進んでいますが、最新の情報で言えばOmiseGoのTesujiのテストネットが公開されました。また現在上海・香港で行われているNeutrinoオープンセレモニーに参加しているVitalikおよびコア開発者らがPlasma Cashを改善したPlasma Debitと呼ばれる新たなPlasmaを提唱しているようです。(これらPlasmaの最新情報についても、今後イーサリアム研究所から記事を公開する予定です。)

Raiden Network

Plasmaと同様にしてメインチェーン以外でのスケーラビリティ問題解決を図っているのがRaiden Networkになります。これはイーサリアムネットワーク上でのEther及びERC20に準拠したトークンをオフチェーンで動作させるようにする仕組みです。

すなわち、ユーザー間で送金に際してオンチェーンで一定額のEtherをデポジットして支払専用チャンネルを開きます。この支払専用チャンネルはペイメントチャネルと呼ばれ、このチャネルを利用することでデポジット金額以内の二者間の送金がブロードキャストなしで可能になります。このようなRaidenの考え方をbalance proofsと呼びます。

このRaiden Networkでは取引の途中経過は全てオフチェーンで処理しているため、最終的な取引結果のみをメインチェーンに記録することになります。ゆえに高速通信が可能になり、スケーラビリティを解決できるようになるとされています。

開発状況

ただこのRaidenについてはICOにより資金調達したものの開発状況が不透明であり、現在も実装されていません。一応今月8日にver0.8.0のrising edgeのテストネットが公開されましたが、プロダクトとしての実装は程遠く、先述のPlasmaの開発が進んでいることからもPlasmaが先に実装されることでの価値の低下が懸念されています。

おわりに

イーサリアムのスケーラビリティ解決策について見てきました。これらは実装されれば確かにイーサリアムの処理速度の向上に大きく寄与するものですが、一方でまだまだ開発途中であり、各技術に対する問題点も多いため、今後の開発を注視していくことが必要になりそうです。もっともコアリサーチャーや開発者の注目はもっぱらPlasma(とCasper)ですから、今後のスケーラビリティ解決はPlasmaメインになっていくものと思われます。



EthereumTech Lab.ではブロックチェーン、特にイーサリアムに対して強い興味を持った学生または社会人のメンバーを募集しています。
発信はMedium上で行い、本格的な開発状況に関する分析、または開発者それぞれの思想をリサーチし、日本語にて発信するなど様々な方向性の記事を作成しています。

EthereumTech Lab.はイーサリアムのモバイルウォレットを開発している”Wei Wallet Team”(*https://github.com/popshootjapan/WeiWallet-iOS) が中心となり、活動を行っています。そのため、オフラインでのイベント/ミートアップ実施の機会も多く開催していく予定です。

ご興味のある方は、こちら

EthereumTech Lab | イーサリアム研究所

今後の記事更新のお知らせ・イベント情報・最新ニュースはFacebookグループへの参加がおすすめです。

Like what you read? Give meika miyamoto a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.