うどんです。気軽な気持ちでEthereum Advent Calendar 2017に登録したらみなさんガチすごい記事を書かれていて焦ってますw コードを読めも書けもできないので、コラム的な話で勘弁…。
現在あらゆるプロジェクトでは大量のトランザクションを裁くため、スケールするために様々な技術が日々検証、開発されています。今回はEthereumでなされているスケーリングソリューションについて書いていきます。
そもそものお話
そもそもプライベートチェーンってなに
まあ色々な定義がありますからめんどいですが、簡単に言ってしまえば「そのネットワークを使える人や、取引を承認する人が特定の人や団体に制限されてるブロックチェーン」のことです。有名どころでいうとHyperLedgerやmijin、もちろんEthereumもプライベートとして簡単に立ち上げることが可能です。
多くの場合特定の人や団体に絞るという中央集権的な手法をとっているため、ブロックサイズなどはほとんど気にする必要はなく、大量のトランザクションをさばけますし、ブロックタイムも超高速にすることだってできます。またファイナリティ(取引が確定され、その後覆されないこと)もあります。
パブリックブロックチェーンの問題点
現状パブリックブロックチェーンと呼ばれるようなものは、プライベートチェーンと真逆で分散的なことを第一においているため、大量のトランザクションを裁けず(Ethereumでは一日90万件程度)、ブロックタイムなどもそこそこ時間がかかり(Ethereumだと14秒程度)、またファイナリティは(PoS系の通貨ではあるところはあるのですが)おおよそ確保されていません。
ある本では「ビットコイン(暗号通貨)は終わりだ。これからはブロックチェーンの時代だ」などと書かれていました。これは本当なのでしょうか?
必要とされる圧倒的スケーリング
簡単なスケール方法として、ブロックサイズ(EthereumだとBlock Gaslimit)を拡張するという方法があります。ですが、この方法でプライベートチェーンのように秒間数千トランザクション(以降単位をtpsと表記します)を裁こうとすると、ノードの容量やネットワーク帯域を食い尽くしてしまい、ネットワークの分散性は確保できなくなってしまうため、どうしても限界がきてしまいます。これではEthereumの開発者のリーダー であるVitalikの目指す、Visaレベルの能力であるMax数万tpsを裁く能力はとてもじゃないですが無理です。またEthereumが「The World Computer」となるのであればもっとトランザクションやコントラクト(コードの実行)を裁く能力が必要です。
圧倒的アップグレード
Ethereumをプライベートチェーンレベルに機能拡張、アップグレードするものです。
Plasma
udon-cryptocurrency.hatenablog.comVitalik ButerinとJoseph Poonが発表したスケーリングソリューションです。Ethereumをroot chainとして、子チェーンを階層状に作れるというものです。これにより主なトランザクションは子チェーンでおこない、結果(state)だけをEthereumに書き込むというものです。なおPlasmaはEthereumのコントラクトの計算能力を上げるという側面もあります。計算を複数の子チェーンに依頼しその結果を親チェーンに戻すということもできるようになります。いわば子チェーンによるコントラクトの並列処理が可能になるのです。
Raiden Network