Zilliqaが7月19日、ネットワーク上のネイティブ取引を緊急停止するという異例の措置に踏み切った。Ledgerハードウェアウォレット向けアプリに、実に7年間も潜んでいた深刻な脆弱性が明らかになったためだ。
この脆弱性を突かれると、わずか5つの取引署名から秘密鍵が完全に復元されてしまう。つまり、攻撃者は該当アドレスを完全に乗っ取り、残高を自由に動かせるようになる。Zilliqaの発表によれば、2019年から2026年までにリリースされたすべてのバージョンのアプリがこの問題を抱えているという。
すでに7月19日には、この脆弱性を悪用したとみられるオンチェーン活動が検知されている。事態の深刻さを受け、Zilliqaは現在、安全な資産移行計画の策定を急いでいる状況だ。
7年間見過ごされたバグと即時対応

問題の核心は、Zilliqaが提供してきたLedgerアプリの署名生成プロセスにある。Zilliqaのブロックチェーンには、EVM(イーサリアム仮想マシン)互換の取引と、Zilliqa独自の「ネイティブ取引」と呼ばれる2種類の取引方式が存在する。今回の脆弱性が影響を及ぼすのは、後者のネイティブ取引に限られる。
2019年リリース以来、全バージョンに影響
Zilliqaのセキュリティ開示によれば、2019年から2026年までに提供されたZilliqa Ledgerアプリの全バージョンに、この欠陥が含まれていた。つまり、この7年間にLedgerデバイスでZilliqaのネイティブ取引に署名したことのあるすべてのユーザーが、潜在的に影響を受ける可能性がある。
7月19日に不審なオンチェーン活動を検知したZilliqaは、直ちに調査を開始。同月21日には根本原因を特定し、KuCoin取引所からの報告が調査の大きな助けになったことも明らかにしている。
KuCoinがいち早く異常を察知
Zilliqaは今回の脆弱性発見と原因特定において、KuCoinの貢献が大きかったと表明している。KuCoinは公開されている署名データから影響を受けた秘密鍵を復元し、問題の追跡に協力した。
これは両刃の剣とも言える事実だ。公開データだけで秘密鍵が復元できてしまうことの証明でもあるからだ。Zilliqaは現時点で、影響を受けたアドレスの具体的な数や、被害総額については公表していない。
たった5つの署名で秘密鍵が割れる仕組み

この脆弱性の技術的な原因は、署名生成時に必要な「ノンス」と呼ばれる一時的な乱数値の生成プロセスにある。ノンスとは、取引の署名を一意にするために使われる、いわば「使い捨ての証明書番号」のようなものだ。本来なら毎回ランダムに生成されるべきだが、ZilliqaのLedgerアプリでは重大なミスが発生していた。
乱数の偏りが鍵を露出させる
具体的な問題は、アプリが40バイトの乱数を生成した後、そのデータを処理する過程で発生した。署名に使用する32バイトの数値を切り出す際に、誤った範囲をコピーしていたのだ。このミスにより、ノンス値のうち上位64ビットが常にゼロに固定され、実質的な乱数の範囲が大幅に狭まってしまった。
つまり、本来なら天文学的に広いはずの乱数空間が、極端に狭い範囲に押し込められていた。この偏りを利用し、攻撃者は「格子基底簡約」という数学的手法を用いる。これは、偏りのある複数のデータから元のパターンを復元する手法で、同じ鍵で署名された約5つの取引データがあれば、一般的な性能のコンピュータでも数秒で秘密鍵を割り出せるという。
アップデートでは過去の漏洩は取り戻せない
ここで最も重要な点は、この問題がソフトウェアのアップデートだけでは解決しないことだ。なぜなら、すでにブロックチェーン上に永久に記録されてしまった署名データそのものに、秘密鍵を復元する手がかりが含まれているからだ。
Zilliqaは「過去に約5回以上のネイティブ取引をLedgerアプリ経由で署名したアカウントは、すべて危殆化していると見なすべき」としている。影響を受けた秘密鍵は、最終的に廃止する以外に対処法がない。
「救出」ができないジレンマ

通常、秘密鍵が漏洩した疑いがある場合、ユーザーは速やかに新しいアドレスへ資産を移動させることが推奨される。しかし今回のケースでは、その「救出作戦」自体が新たなリスクを生むというジレンマに陥っている。
フロントランニングの危険性
もしZilliqaがネイティブ取引を再開すれば、正規のユーザーが新しいアドレスへ資産を移そうとする瞬間を、攻撃者が狙う可能性がある。攻撃者はすでに秘密鍵を復元済みのため、正規ユーザーとまったく同じ権限で取引を作成できる。ユーザーが送金トランザクションをブロックチェーンに送信した直後、攻撃者がより高い手数料を付けた取引を割り込ませ、資金を自分のアドレスに奪い去る「フロントランニング攻撃」が成立してしまう。
これは、イーサリアムのDeFiでよく知られるフロントランニングとは本質的に異なる。取引の内容を見て先回りするのではなく、同一の秘密鍵を持つ攻撃者が、正規ユーザーの取引そのものを上書きできるという、より根本的な問題なのである。
調整された移行計画が必要
Zilliqaは現在、この「移行のパラドックス」を解決するための調整された対策を最終決定中だとしている。正規ユーザーに安全に資産を移行させる方法を確保しつつ、同じ署名権限を持つ攻撃者に取引を先取りされない仕組みが必要だからだ。
現時点では具体的な再開日や移行手順は発表されていない。Zilliqaは公式チャンネルを通じて、影響を受ける可能性のあるユーザーに対し、勝手な行動を取らずに公式の指示を待つよう呼びかけている。
影響範囲と安全な領域

この脆弱性はLedgerハードウェアウォレット本体の問題ではなく、Zilliqaが提供するアプリの実装に起因するものだ。そのため、影響範囲は特定の条件を満たす取引に限定されている。
EVM取引と公式SDKは影響なし
Zilliqaは明確に、この脆弱性の影響を受けない領域を示している。第一に、Zilliqaネットワーク上で実行されるEVM互換の取引は影響を受けない。第二に、Zilliqaが公式に提供する開発キットを使用した署名も安全だ。対象となるのは、zilliqa-js、gozilliqa-sdk、pyzilといったソフトウェア開発キットである。
つまり、MetaMaskなどのウォレットを通じてZilliqaのEVM互換機能を利用していたユーザーや、公式SDK経由で取引を行っていた開発者は、今回の問題とは無関係ということになる。
修正版アプリの準備と限界
ZilliqaはLedger社と協力し、ノンス生成を本来の仕様に戻した修正版アプリを準備中だ。このアップデートにより、今後の署名が同じ情報を漏洩することは防げるようになる。しかし、これはあくまで将来の予防策に過ぎない。既にブロックチェーン上に記録されてしまった署名データのリスクを消し去ることはできないのである。
Ledgerユーザーが取るべき行動

今回の一件で最も重要なのは、パニックに陥らず、正しい手順を踏むことだ。間違った行動は、かえって資産を危険にさらす可能性がある。
まずは自分の影響を確認する
LedgerデバイスでZilliqaのネイティブ取引に署名したことがある場合、まず自分のアカウントが影響を受ける可能性があるかどうかを冷静に確認する必要がある。目安として、ネイティブ取引の署名回数が5回を超えている場合は、特に注意が必要だ。
具体的な判断はZilliqaの公式発表を待つべきだが、EVM取引しか行っていないユーザーは、少なくとも今回の脆弱性の直接的な影響範囲外であることを認識しておいてよいだろう。
公式の移行手順を待つ
絶対にやってはいけないのは、ネイティブ取引の再開と同時に自分だけ先に資産を移動させようとすることだ。これは攻撃者によるフロントランニングの格好の標的になりかねない。Zilliqaが「調整された移行計画」を発表するまで、影響を受ける可能性のあるユーザーは公式チャンネルの情報を注視し、指示に従うことが求められる。
また、修正版アプリがリリースされたとしても、それだけでは既に漏洩した鍵の問題は解決しない。新しい秘密鍵への移行が不可避であることを理解しておく必要がある。
この記事のポイント
- ZilliqaのLedgerアプリに2019年から存在したバグにより、わずか5つの署名から秘密鍵が復元可能
- 問題は署名生成時のノンス値の偏りにあり、アップデートでは過去の漏洩を取り戻せない
- 影響を受けるのはLedger経由のネイティブ取引のみで、EVM取引や公式SDKは安全
- 現在は取引が停止されており、Zilliqaが調整された資産移行計画を策定中
- ユーザーは公式の指示を待ち、自己判断での資産移動はフロントランニングの危険があるため厳禁

暗号資産とブロックチェーンの可能性を追求するエミリー。
暗号資産投資、DeFi、NFT、WEB3、メタバースといった最先端分野を深く理解し、「エミリーズ・クリプト・インサイダー」を運営。
分かりやすい解説で、ブロックチェーン革命の潮流を一般に広めることを目指す。初心者から上級者まで、最新情報を求めるすべての人に役立つ情報発信を心がけている。
