東京工業大学の情報理工学院 、パブリックブロックチェーンのシミュレータ「SimBlock」を開発・配布開始

東京工業大学 情報理工学院 数理・計算科学系の首藤一幸准教授、青木優介大学院生(研究当時)、大月魁大学院生、金子孟司大学院生、永山流之介大学院生、坂野遼平研究員らの研究グループと情報理工学院 サイバーセキュリティ研究センターは、ブロックチェーンネットワークをPC上で模擬して性能や安全性を検証できるパブリックブロックチェーンのシミュレータ「SimBlockouter」を開発し、オープンソースソフトウェアとして公開、無償配布を開始した。

SimBlockは、インターネット上の多数のノード(サーバ)から成るブロックチェーンネットワークを模擬するソフトウェア。

SimBlockでは、ブロックチェーンネットワークを構成するノードの挙動を比較的簡単に変えることができ、改良や新手法がブロックチェーンにどのような影響を与えるのかをPC上で調べることが出来る。

これによって、Bitcoinといった既存ブロックチェーンの改良や、また、独自に考案したブロックチェーンを手元のPC上で実験し、その性能や安全性を検証することが出来る。

「SimBlock」開発の背景

暗号通貨の基礎技術として生まれたブロックチェーンは、決済や送金だけでなく、資産や権利の管理、また、食料などの流通履歴追跡、投票といった政治プロセス、組織の自動運営などさまざまな応用が期待される。

2009年のBitcoin立ち上げから開発と展開が先行したが、最近では研究も盛んに行われている。

ブロックチェーンを主題とする学術国際会議も、IEEE ICBC、CryBlock、IEEE Blockchain等、いくつも立ち上がっている。

しかし、動作しているブロックチェーンネットワークの性能や安全性を高める改良や新手法を考案しても、それを実地で試すことはほとんど不可能。

改良や新手法を試すためには全ノードのソフトウェアを更新する必要があり、全ノードの管理者を実験に従わせることは現実的ではない。

そもそもブロックチェーンネットワークの動作を壊してしまうかもしれない実験を実地で行うわけにはいかない。

改良や新手法を試せないだけならともかく、もし深刻な問題が見つかって修正したい場合に、修正がネットワークを壊してしまうことがないかどうかを事前に実験・検証できないことも大きな課題だった。

そこで、本研究チームは、ブロックチェーンネットワークのシミュレータ「SimBlock」を開発し、2019年6月、オープンソースソフトウェアとして公開、無償配布を開始した。SimBlockは一般的なPC上で動作し、1万台近くに達するノード群の、インターネット上での振る舞いをシミュレート出来る。

ブロックチェーンシミュレータ「SimBlock」とは

技術者・研究者はこのSimBlockを用いることで、Bitcoinといった既存ブロックチェーンの改良や、また、自ら考案したブロックチェーンを、手元のPC上で試すことが出来る。

安全性については、例えば、悪意あるノードを模擬して攻撃の成功率を調べたり、攻撃への対策を模擬してその効果を調べることが出来る。

現在のSimBlockは、Bitcoin、Litecoin、Dogecoinの、規模やブロック生成間隔、また、インターネット越しのノード間通信時間を模擬できる。

ノードの振る舞いを変えたい場合、Java言語で開発されているSimBlockの当該個所に変更を加えることで、ブロックチェーンネットワーク上で何が起こるかを調べることが出来る。

ブロックチェーンのパラメータ、インターネット上での通信の速さをさまざまに変えることも出来る。

また、SimBlockは可視化機能を備えており、ノード間通信とブロック高を地図上でアニメーション表示できる。

ブロックチェーンネットワークの可視化, © OpenStreetMap contributors

技術者・研究者はこの表示から、何が起きているかを直観的に確認出来る。以下のウェブページに可視化機能のデモがある。

研究チームは、SimBlockを国際会議IEEE ICBC 2019(2019年5月、韓国 ソウル)にてデモ展示し、研究者の関心を集めた。

国際会議IEEE ICBC 2019でのデモ展示

応用例

研究チームは、SimBlockを活用し、ブロックチェーンの性能を向上させる研究を行っている。

隣接ノード選択[論文3, 4]

図3. 隣接ノード選択

リレーネットワークの影響測定 [論文5, 6]

図4. リレーネットワークの影響測定

図3は、隣接ノード選択という技法の効果を示している。

各ノードがネットワーク的に近いノードと優先的に接続を持つように改良することで、ブロックがブロックチェーンネットワーク上を伝搬するのにかかる時間を短縮できた。

伝搬時間が短くなると、安全性が向上する。また、安全性を犠牲にせずにトランザクション処理性能を向上させることが出来る。

図4は、リレーネットワークを利用したノードが受ける恩恵を示している。

リレーネットワークを利用することで、マイニングによって生成したブロックが孤立ブロックになってしまう確率が大幅に下がることがわかった。

これは、リレーネットワークを利用することでノードは収入を増やせることを意味する。

なぜなら、ノードは孤立ブロックからはマイニング報酬を得られないからだ。

ノードがリレーネットワークを利用すると、生成されたブロックをいち早く受け取れるため、自身がマイニングに成功する確率が上がりそうなものだ。

しかし、マイニング成功率の明確な向上は確認できなかった。一方で、研究チームは、リレーネットワークの利用にはむしろ別のメリットがあることを発見した。

具体的には、マイニングしたブロックが孤立ブロックになって報酬を失う確率を下げることができるという利点だ。

リレーネットワークによって全体の孤立ブロック発生率が下がることは自然であり、以前より指摘されていた。

しかし、リレーネットワークを利用したノードが1%とごくわずかであっても、それら利用したノードは非常に大きな恩恵を受けられるということは研究チームの発見だ。

今後の研究

研究グループは、SimBlockを活用してブロックチェーンの性能を向上させる研究を続けていく。

また、ブロックチェーンへの攻撃手法と対策をシミュレートし、安全性を向上させる研究にも取り組んでいく。

SimBlock自体の改良としては、Ethereumといった他のブロックチェーンへの対応、インターネットの現況への対応、ブロックチェーンの新しい通信方式(例:Compact Block Relay)への対応等を進める。

EdTechの最新ニュースを配信!メールマガジンに登録