【イベントレポート】BlockChainJam 2018 『Ethereumの最前線』
Shota

10月21日(日曜日)に東京・六本木で、国内外のプロジェクトや技術の最新のトレンドが紹介されるイベントである「BlockChainJam 2018」が開催されました。
イベントにはほぼ満席となるオーディエンスも集まり、ブロックチェーン周りの最新の情報やトレンドに対して、興味深々な様子でした。
CryptoTimesでもこのイベントにメディアパートナーとして参加しましたので、本記事ではラインナップの一つである『Ethereumの最前線』についてを紹介していこうと思います。
目次
プレゼンター 落合渉悟氏
Ethereumの最新のトレンド追いかける中で、Cryptoeconomics LabのCTOとして活動を行っています。
イベント公式サイトには以下のような紹介がされています。
Ethereum、Plasma、zk-SNARKsを専門とするブロックチェーンエンジニア。現在のEthereum開発の基盤となっているCryptoeconomicsに不可欠なStakingやFormal Verificationに関するOSS活動を中心にアジア地域の暗号通貨プロジェクトと協業を多数行っている。マイブームは、RustとIsabelle/HOL。
以下は関連リンクになります。
Ethereumの最前線
今回の落合氏によるプレゼンテーションは、技術的な部分に寄せた内容となっていました。
そのため、このプレゼンテーションは質疑応答の形式で行われ、事前に3つの質問が用意されそれをかみ砕きながら複雑な最新技術の概要がわかりやすく紹介されていきました。
様々なスケーリングソリューションが出てくるが、我々はSolidityだけをやっていれば良いのだろうか?
結論から言うとNOであるようです。
落合氏は、現在世界中で開発が進められている
- Sharding(シャーディング)
- Plasma(プラズマ)
- General-State-Channel(ステートチャネル)
の3つのスケーリングソリューションについてSolidityを利用した場合のドローバックと周辺の技術仕様の解説を行いました。
プレゼンの内容を確認する前にこれらの技術の概要だけを簡単に把握しておきましょう(内容がかなりテクニカルになっているため)。
#Sharding(シャーディング)
Sharding(シャーディング)は、ノードやトランザクションを小さなグループに分けることで並列的に検証作業を行うことが可能になりスケーラビリティ問題の解決策の一つとして注目されています。
#Plasma(プラズマ)
Plasma(プラズマ)は、サイドチェーンを利用したソリューションで、スマートコントラクトを利用してメインチェーンとのリレーを行うサイドチェーンを階層的に創り上げることでスケーラビリティ問題の解決を目指します。
#General-State-Channel(ステートチャネル)
Raiden(ライデン)やLightning Network(ライトニングネットワーク)などがステートチャネルを利用した技術として有名ですが、このソリューションではトランザクションをオフチェーンで行うことでメインチェーンに対する負担を軽減するようなアプローチがとられています。
一方で、Solidityだけを使ってこれらの実装を目指すのはスライドにもある通り、いくつかのドローバックを伴うようです。
Sharding(シャーディング)とSolidity
現在、Ethereumでは昨日のアップグレードが延期されたCapserとSharding周りの技術を盛り込んだものを融合したShasper(Ethereum2.0)の開発が進められています。
落合氏は先日、同じくEthereumのスケーラビリティ問題に関する研究を行っているPrysmatic Labの森さんと議論を行ったようですが、その中でSolidityを利用してコントラクトを呼び出す際に最大性能が引き出せないことがあるようです。
ちなみに、紹介されている『Hotel&Train Problem』というものですが、これは電車とホテルの予約をする際にこの予約の結果を成功もしくは失敗で一致させようとする際、電車とホテルの予約が別のシャードに存在した場合(Shardをまたいだ一括TXs)、Atomicityが犠牲となってしまうという問題です。
Plasma(プラズマ)とセキュリティ
最初のPlasmaのコンセプトとして紹介されたのは『EVM Plasma』と呼ばれるものです。
スライドにもある通り、EVMを使うことのできるPlasmaはExitのコストが高くなるためParity BridgeなどのPoAを利用して実装するような形となってしまいます。
しかし、この場合EVMと互換性のあるチェーンとメインチェーン間でお金を移動できるという話になってしまうので、Ethereumの分散性やセキュリティを生かし切れていないことになると言えます。
続いて紹介されたのが、『PlasmaLeap』と呼ばれるコンセプトです。
Dogethereumなどでも有名なTruebitですが、このPlasmaLeapは先ほどのEVM PlasmaでExitに高額なコストがかかるという問題へのソリューションの参考とされているようです。
落合氏の説明によれば、Truebitを参考にしたこの仕組みでは、「全ノードが検証を行う代わりに一人に対して検証をさせる」という仕組みを取っています。
確かにExit自体は安く行うことができるようですが、このソリューションの場合新たにセカンドレイヤーに対する攻撃インセンティブを生み出す可能性があるため、Ethereumのセキュリティを完全に引き継いでいるとはいえず、新たにセカンドレイヤーにCryptoeconomicsが生まれるという状況になります。
3つめのPlasmaとして紹介されたのが『Plasma snapp』と呼ばれるものです。
説明によれば、zk-SNARKsのSNARK Proofを利用することで、Plasmaの子チェーンのノードにおける不正が行われていないかどうかを確認することができるようです。
Plasma CashはトークンのIDを利用したものになりますが、EVM PlasmaやPlasma Leapなどと違いEthereumのメインチェーンのセキュリティを完全に引きついだ設計となっています。
しかし、マルチシグやDEXのような処理はSolidity一つでは書けるロジックではないようです。
Plasma CashにDEXなどのDAppを埋め込もうとすると先ほどのスライドでもあった通り、”PlasmaのResearcherが必要になり大がかりなものになってしまう”とありましたが、落合氏によれば、Plasma CashにDAppを埋め込んだものを生成するPlasma Generatorと呼ばれるフレームワークの可能性が注目されているようです。
このフレームワークと相性のいい言語としてBitcoinのivy langと呼ばれる言語と相性がいいそうで、Plasma Solidityとして注目されているとのことです。
EthereumのScalingがもう少しかかりそうなので、EOSや自前オフチェーンに逃げちゃって良いのだろうか?
Ethereum以外にもEOS、ZIL、TEZ、NEM、NEOなどがありますが、これらはそれぞれ中央集権性や表現力、コントラクトのイディオムの整い方が大きく異なるので使い道も異なるようです。
結論から言うとサイファーパンク(Cypherpunk)でないのならばEthereum以外を選んでしまって構わないということに加えて、オープンソースのデータ蓄積という点を考えるとパブリックチェーンを選んでいくべきということでした。
以上のテーブルではそれぞれのチェーンの性能比較が行われていますが、落合氏はいくつかの例を使ってどのようなチェーンを利用すべきかという点についても言及していきます。
- 法人案件で、自社でお客さんのお金を管理したくないとか、パブリックチェーンを使いたいという要望があったら?
=> EOS・自前のオフチェーン - トラストレスで簡単なゲームや金融系の仕組みを作りたくて、表現できるものは少し少なくてもよく、メインネットローンチまで待てる場合
=> ZIL - チューリング完全なスマコン言語、かつハードフォークが少なく投票方式すら変えられる長期視点なもの。Big blockでスケーリングする。
=> TEZ
まとめ
タイトルの通りEthereumの最前線で活躍する落合氏によるプレゼンテーションをまとめました。
落合氏は、将来に関して過渡的に様々なチェーンに開発者が分散していくことを予想しており、真に分散性を必要とするのかどうかという問いがスケーリング問題によって暴かれる年になるだろうと予測しています。
また、スマートコントラクトの開発自体もSolidityだけで完結するものではなくなってきているとのことです。
技術的にレベルが高く追いつくのも精一杯という感じでしたが、Ethereumに関してとても面白い話が聞けました。
ありがとうございました!