ボム君.com

うどんの仮想通貨・暗号通貨ひろば

暗号通貨・仮想通貨について色々なことを書いていきます。

Ethereumパブリックブロックチェーンがプライベートチェーンを超える日

うどんです。気軽な気持ちで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.com

Vitalik ButerinとJoseph Poonが発表したスケーリングソリューションです。Ethereumをroot chainとして、子チェーンを階層状に作れるというものです。これにより主なトランザクションは子チェーンでおこない、結果(state)だけをEthereumに書き込むというものです。なおPlasmaはEthereumのコントラクトの計算能力を上げるという側面もあります。計算を複数の子チェーンに依頼しその結果を親チェーンに戻すということもできるようになります。いわば子チェーンによるコントラクトの並列処理が可能になるのです。

Raiden Network

udon-cryptocurrency.hatenablog.com

  • アップグレード内容:トランザクションのスケーリング
  • 100万tps(目標)
  • Payment ChannelバージョンであるμRaidenはローンチ済み

言わずもがな、Raidenさんです。

Sharding

udon-cryptocurrency.hatenablog.com

難易度が高いと言われるSharding。現在Ethereumのノードは数万ありますが、増えれば増えるほど並列処理が可能になりネットワークは大量のトランザクションをさばけるようになります。認証者やノードを絞っており、増やせるノードの数の限界のあるプライベートチェーンではできない技です。

zk-SNARK、リング署名

  • アップグレード内容:匿名性の導入
  • Byzantiumで実装済

公開したくないようなコントラクトやトランザクションの内容を秘匿するものです。プライベートブロックチェーンでは、基本的には特定の参加者だけしか見ることができないのですが、パブリックブロックチェーンではBitcoinなどの場合誰でも見ることができてしまいます。これではプライバシーも保てませんし、通貨代替性が保てません。隠したい大事なコードであったりライバルに見られたくないような取引記録だってあるでしょう。そういったものから解放してくれるのが匿名性の実装なのです。いまのEthereumではこの機能を使いずらい上に、手数料がかなりかかるので実用的ではないですが、ShardingやPlasmaなどのスケーリングソリューションでの実装で大幅なコストカットが期待されます。

Proof of Stake(Casper)

  • アップグレード内容:高速なブロックタイム、ファイナリティの導入
  • ConstantinopleでPoWとPoSのハイブリット実装か?
  • 完全移行は来年末かそれ以降?アイスエイジと同じように徐々にPoSに移行か?

Proof of Stakeを導入することにより、承認プロセスを簡易化することが可能になります。また、一定以上のコンセンサスを得られた場合そのブロックは確定し覆せないものとする仕組みも導入されるようです。これによりブロックタイムを速くしたり(3〜4s/Block)やファイナリティが導入されるなど、プライベートチェーンにある能力をパブリックブロックチェーンでもゲットできるようになります。

Casperに関する全体的なお話:https://medium.com/@jonchoi/ethereum-casper-101-7a851a4f1eb0

Casper FFGについて:https://zoom-blc.com/casper-the-friendly-finality-gadget

まとめ

このようにいくつかの技術によりプライベートブロックチェーンと同等の能力を手に入れることができるようになると思います。プライベートネットワークが一部の機関でしか使われなくなり、代わりにバーチャルプライベートネットワーク(いわゆるVPN)が普及したように。

ちなみに上に書いてある技術的試みが失敗することはあるので、その時はその時で…。