見出し画像

Ethereum 2.0のローカルテストツール「Mousse」のベータ版を公開しました

こんにちは、今年度のIPA未踏事業でブロックチェーン関連のプロジェクトに取り組んでいる中村(@nrryuya_jp)です。※この記事は、共同開発者の岡南(@vinami)と一緒に書いています。

未踏の成果の一つとして、Ethereum 2.0のローカルテストツール「Mousse」(ムース)のベータ版を公開しました。
https://github.com/ethereum-mousse/mousse

今回の記事では、Mousseの概要と、開発に至った背景などを紹介できればと思います。ブロックチェーンには興味があるが、技術面はそんなに、という方にも、最近また盛り上がりつつあるブロックチェーンの裏で行われている研究や開発がどんなものか、少しでも感じてもらえたらいいなと思っています。(ブロックチェーン開発者の方向けの、Mousseの技術的な詳細については、近日中に別の記事を出す予定です!)

なお、明日20日土曜日の未踏の成果報告会で、今回のプロジェクトについてプレゼンを行います。ニコニコ動画でも配信されるようなので、興味のある方は是非そちらもお聴きいただけると嬉しいです。我々の登壇は土曜日の11:40 - 12:15です。


Ethereum 2.0(Eth2)とは

Ethereumは、時価総額がBitcoinに次ぐ暗号通貨というだけではなく、様々な分散型アプリケーションが乗るプラットフォームです。例えば、DeFi(分散型金融)と呼ばれるアプリケーション群では、ブロックチェーン上のデジタル資産を、ブロックチェーン上のプログラム(スマートコントラクト)によって交換したり、貸付をしたり、デリバティブを発行したり、、、といった活動がユーザー間で、銀行や証券会社などの既存の金融機関を介さずに行われています。DeFiはこの1年で飛躍的に利用者が増え、現在は数兆円もの資産がDeFiに預けられています。

Ethereumのアプリケーションやユーザーが増えた結果、Ethereumを使う際の手数料が高騰しています。Ethereumに限らず、パブリックブロックチェーンの手数料は大雑把に言えば、ユーザーによるオークションで決まっています。しかし、需要が増えても、供給、つまり、ブロックチェーンのキャパシティ(処理性能)は変わらないので、人気になるほど、一つ一つの処理が高価になってしまうのです。

このような状況の中、Ethereumのコミュニティは、Ethereumをもっと「スケール」させるべく、抜本的にプロトコルをアップグレードしようとしています。それがEthereum 2.0(Eth2)です。Eth2では色々な技術が導入されるのですが、その中でも目玉の一つが「シャーディング」です。


ブロックチェーンのシャーディング

ブロックチェーンにおけるシャーディングとは、ブロックチェーンを「分割」して複数の「シャード」に分け、それぞれのシャードを並列に実行することでキャパシティを高めようという技術です。(もちろん実際には非常に難しく、いかにセキュリティを落とさずに分割するのかが非常にトリッキーです。)具体的にどう分割するか、各シャードにどういう役割を持たせるかによって様々なパターンがあります。元々一本だったブロックチェーンを、同じものを並列で何十個も何百個も動かそうみたいなものもあります。

Ethereum 2.0の場合は、まず「Data sharding」という仕組みが導入される予定です。複雑なことはせず、各シャードはただデータを書き込めるだけです。最初は、今動いているEthereumのチェーンとEth2チェーンが共存します。既存のEthereumチェーンがEth2を参照する形です。既存のEthereumチェーンに引き続き様々なアプリケーションを乗せることができ、Eth2はそれらアプリの「データ置き場」として使えるというわけです。

画像2↑現行のEthereumチェーンはEth2のBeacon chainを介してShard dataを参照


Mousse

前置きが長くなりました。それでは、今回我々が開発した「Mousse」(ムース)を紹介します。Mousseは、Eth2のシャーディングを用いるアプリケーションを開発するためのテストツールです。Eth2のData shardingがどう動くかを、ローカルPCなどの環境で簡単に再現(エミュレーション)します。

可視化のためのダッシュボードも備えています。

画像1↑ブロック一覧の画面(赤い行は何か異常があるブロックを表す)

Ethereum開発者の方はここまで読んでお気づきかもしれませんが、Mousseは現在のEthereumコミュニティで使われている「Ganache」のEth2版を目指しています。(チョコレート系のお菓子の名前として、Mousseを選びました!)

ブロックチェーンのアプリケーション開発では、普通の開発以上に、テストが大事です。なぜなら、パブリックなブロックチェーンというのは誰もが参加でき、常に攻撃に晒されているためです。アプリ開発者は、Eth2で様々なイレギュラーや故障が起きた場合を想定した異常系のテストを行う必要があります。Mousseでは様々な異常系の再現をサポートしていて、例えば、ブロックが一定時間生成されなかったり、データが取り込まれなかったり、というシナリオのテストに使うことができます。

今回は概要の紹介のみでしたが、実際にMousseを使ってみたい、という方向けに、具体的に内部でどう動いているか等、技術的な詳細は近日中に別途記事を出しますので、少々お待ちください。


もう一つの成果物: 「Shargri-La」

実はMousseの開発を始めたのは昨年末からで、未踏期間の前半は「Shargri-La」(シャーグリラ)という別のプロジェクトをやっていました。Shargri-LaもMousseと同様、ブロックチェーンのシャーディングに関するものですが、中身や目的はかなり異なっています。Shargri-Laはシャーディングにおけるユーザーの行動をモデル化・解析して、システム全体への影響を調査するシミュレーターで、シャーディングの理論的な研究をサポートするものです。Mousseと違って、Eth2のData shardingではなく、シャードで送金等が実行できるタイプのシャーディング全般を対象としています。

Shargri-Laでは、ユーザーの利己的な行動に着目しています。例えば、シャーディングにおいては、(プロトコルにもよりますが)シャードごとに手数料が決まり、ユーザーは手数料が安いシャードを選択する可能性があります。みんなが同じような選択をしたら、当然手数料が一番安いシャードにユーザーが殺到してしまいます。すると、そのシャードの手数料もすぐに上がってしまいます。個々のユーザーの利己的な行動が、結果的に本人の不利益にも繋がりうるのです。

我々はShargri-Laを使って、このような現象を調査し、結果をEthereum Researchというオンラインフォーラムに投稿しています。

概要はこちらのTwitterスレッドでも日本語でまとめています。


さいごに

ブロックチェーンや暗号通貨というと、一見派手なアプリケーションやサービスに焦点が当てられがちです。しかし実は、ブロックチェーンのエコシステムはたくさんの土台となるオープンソースの開発が積もり積もって造られています。我々が今回開発したソフトウェアも、直接ユーザーの手に触れるものではありませんが、エコシステムを裏から支えるものにしたいと考えています。

ブロックチェーンには良くも悪くも色々な期待が集まり、成熟する前に成長し、多額の資産が集まってしまっています。もはや後戻りはできないので、みんなで成熟させるしかありません。焦らず、地道にやっていきましょう。

おしまい。


謝辞

今回支援してくださった、IPA及び未踏関係者の皆様に、この場を借りて感謝申し上げます。

いいなと思ったら応援しよう!