プライバシー重視のレイヤー1ブロックチェーンZano(ザノ)は1日、新機能「ゲートウェイアドレス」の脆弱性でZANOとfUSDが不正に発行された問題について、原因と経緯をまとめた技術報告を公式Xで公開した。同チームは9月27日、ハードフォーク6(HF6)直前のブロック3,833,000からチェーンを再開したと発表しており、約1カ月分の履歴が無効になっている。
Zanoのゲートウェイアドレスに照合漏れ、1回で約1,840万ZANOを発行
ゲートウェイアドレスは、HF6で導入された新しいアドレス形式だ。通常のZanoの出力は金額と資産IDの両方を秘匿するが、ゲートウェイの出力はどちらも平文で扱う。
報告によると、ゲートウェイの出力の資産IDは、ネットワークに登録済みの資産に対応していなければならない。ところがHF6のコードでは、ネイティブコインの識別子としか照合していなかった。攻撃者は特殊な値を計算することで残高の証明を通しつつ、任意の額を持つ隠れた出力を作れたという。
こうして作られたコインは正規のZANOと同じように機能し、通常どおり送金できた。報告が示した経緯を表にまとめた(日付はUTC)。
| 日付 | 出来事 |
|---|---|
| 8月28日 | 攻撃者がゲートウェイアドレスを登録(登録料100ZANOを焼却) |
| 8月29日 | 1回目の不正発行。2の64乗単位(約1,840万ZANO)を1件の取引で発行。これに先立ち、存在しない資産を載せた取引も実行 |
| 9月24日 | 攻撃者が自身のゲートウェイアドレスに0.05ZANOずつ2回入金 |
| 9月25日 | ZANOとfUSDを2の64乗単位ずつ追加で発行。同日、内部の分析ツールが検知 |
これらは発行された総量で、Zanoのエコシステムに流入したのはその一部だとしている。
Zano、不正なコインを追跡できずチェーン再開を選択
HF6の公開前には、AIを使ったテストやチームの監査、バグ報奨金制度を実施していたが、脆弱性は見つからなかった。不正な出力は通常の秘匿された出力と見分けがつかず、発見まで約1カ月かかったという。
追跡も困難だった。ブロック3,878,388の時点で、3件の不正発行にリング署名を通じてつながりうる出力は11万7,941件、それらを生んだ取引は6万5,301件にのぼる。報告はこれを「プライバシーが意図どおりに機能している」結果だとし、チームを含め誰も影響を受けた出力を正確には特定できないとした。
そのため同チームは9月27日、HF6の直前のブロック3,833,000からチェーンを再開したと発表した。同じ高さで有効になるHF7でゲートウェイアドレスを無効にし、不正なZANOとfUSDをすべて取り除く。この期間の取引、ステーキング報酬、採掘されたブロックは新しいチェーンに含まれない。
USDTやDAIなど、別のネットワークで決済済みの支払いは巻き戻せない。同チームは損失の補償と請求の手続きを公表するとしている。
利用者の資金や秘密鍵、取引の秘匿性は侵害されていないという。イーサリアム上のwZANOも影響を受けておらず、ブリッジは停止中だ。ゲートウェイアドレスは、コードを時間をかけて再評価・監査するまで無効のままとなる。
関連:ジーキャッシュ、BTC比0.1%→1.5%に──グレースケールがなお拡大余地
関連:ビットゲット、ビットコイン出金再開へ──第三者製品を起点とした攻撃経路も判明


