Suiネットワークがバグ原因で約2時間停止、現在は復旧済み

Suiのネットワークが約2時間停止

レイヤー1ブロックチェーン「Sui(スイ)」のメインネットネットワークが、バグにより11月21日に約2時間にわたり完全停止した。なお現在では回復しており通常通り利用可能だ。

「スイ(Sui)」の開発を支援するスイ財団(Sui Foundation)によると今回の停止は、混雑制御(Congestion Control)のコードに存在する「assert!」エラーが原因とのこと。特定の条件下でトランザクションの推定実行コストがゼロと計算された場合、バリデーターがクラッシュする仕様になっていたという。

このバグは、プロトコルバージョン63および68で導入された、TotalGasBudgetWithCapモードが有効な状態で、ネットワークが「ミュータブルな共有オブジェクト入力」、「MoveCallコマンドがゼロ」といった特定の形のトランザクションを受信するという条件を満たしたことで引き起こされたものであるとのこと。

混雑制御とは、1つの共有オブジェクトに書き込まれるトランザクションの処理負荷を制限するシステムで、ネットワークが過負荷になり遅延するのを防ぐ役割を担っているという。「スイ」は多くのユーザートランザクションを並列処理できるが、複数のトランザクションをすべて同じ共有オブジェクトに書き込む場合、順番に実行しなければならず、特定のオブジェクトに影響を与えるトランザクションの処理数には限界があるため、混雑制御システムを用いているという。

この混雑制御システムは、トランザクションの複雑さをより正確に見積もることによって共有オブジェクトの利用率を向上させるために最近アップグレードされていたとのこと。今回のバグの原因である、TotalGasBudgetWithCapのコードは、そのアップグレードにより追加されたものであるという。

「スイ」開発元のミステンラボ(Mysten Labs)は、問題を発見した後、コード修正を行い、これに対してバリデーターは迅速な対応を行ったとのこと。これにより、修正後わずか15分でネットワークが復旧したとのこと。迅速な対応ができたのは、インシデント検知・対応システムがうまく機能したこと、すぐに総動員で問題の分析と修正を行えたこと、そしてバリデーターのコミュニティによる迅速な作業のおかげであるとのこと。

スイ財団は今後このようなバグが発生しないよう、問題を引き起こしたような特異なトランザクションを再現するテストシステムを強化するとのこと。またリリースバイナリの生成時間を短縮することで、今後の対応時間をさらに短縮するとのことだ。

「スイ」は、メタ(Meta)のブロックチェーン研究開発部門であるディエム(Diem)の元リードエンジニアたちによって設立されたミステンラボ開発のブロックチェーン。高い処理性能による高速なトランザクションと低い手数料で利用できることから高く評価されている。なおスイは、昨年5月3日にメインネットがローンチしている。

ちなみに「スイ」は、ディエム開発の開発言語「ムーブ(Move)」を採用している。また「スイ」の他に、ディエムの開発チームに所属していた元メンバーによって開発されているL1ブロックチェーン「アプトス(Aptos)」でも、「スイ」と同じく開発言語には「ムーブ」が採用されている。

参考:スイ財団ブログ

関連ニュース

関連するキーワード

この記事の著者・インタビューイ

田村聖次

和歌山大学システム工学部所属
格闘技やオーケストラ、茶道など幅広い趣味を持つ。
SNSでは、チェコ人という名義で、ブロックチェーンエンジニアや、マーケターとしても活動している。「あたらしい経済」の外部記者として記事の執筆も。

和歌山大学システム工学部所属
格闘技やオーケストラ、茶道など幅広い趣味を持つ。
SNSでは、チェコ人という名義で、ブロックチェーンエンジニアや、マーケターとしても活動している。「あたらしい経済」の外部記者として記事の執筆も。

合わせて読みたい記事