Cardano の ZK リカバリーツールが Preview testnet でウォレットの完全請求を完了
Charles Hoskinson の GitHub アカウント配下の公開リポジトリは、侵害された Cardano ウォレットから救済された資産のエンドツーエンドのリカバリーシステムを文書化している。Plutus V3 コントラクトはゼロ知識による所有権証明を検証し、ユーザーのリカバリーフレーズを公開することなく、新しいウォレットへ 5 ADA を送金した。
By SongMarketCap
Cardano のゼロ知識リカバリーツールが Preview testnet で完全な請求を完了し、請求者が元のマスターシードを管理していることを確認した後にカストディコントラクトから資産を移転した。
このオープンソース版には、暗号回路、ローカルプロバー、Plutus V3 バリデータ、形式検証の成果、テストトランザクション、そして ReclaimGlobal という試作インターフェースが含まれている。これは Charles Hoskinson が以前に開示した実験を拡張し、オンチェーンで動作する結果を伴う公開レビュー可能なリカバリーフローへと発展させたものだ。
開発者の Phil がそのアーキテクチャ、ドキュメント、証明システムを取り上げたことで、当該リポジトリはさらなる注目を集めた。Hoskinson はその評価を後にリポストした。
ReclaimGlobal はウォレットの所有権を救済済み資産に結び付ける
ReclaimGlobal は、侵害された認証情報から資産がすでに取り除かれ、リカバリー用コントラクト内に置かれている事案向けに設計されている。
影響を受けたユーザーは侵害されたウォレットを読み取り専用モードで接続し、所有権の証明をローカルで生成し、資産の受け取り先となる新規ウォレットを選択する。リカバリーフレーズはユーザーのデバイス内に留まり、コントラクトやリカバリーオペレーター、外部サーバーには送信されない。
別のロッキングフローにより、オペレーターやレスキュー提供者、ドナーが、所有者に結び付けられた Cardano UTxO に資産を預け入れることができる。これらの資金は、影響を受けたペイメントクレデンシャルが対応するマスターシードから導出されたことを証明できるユーザーだけが請求できる。
このツールは、リカバリーフレーズを失ったユーザー向けではない。請求者は元のシードを依然として管理している必要があり、資産はまずカストディ構造内に確保されていなければならない。そのリカバリープロセスを越えてすでに移転された資金は、コントラクトによって取り戻すことはできない。
リポジトリは、約 8,823 件の影響を受けたペイメントクレデンシャルが関与するインシデントを記述している。技術的な説明によれば、リカバリーフレーズ、マスターシード、チェーンコードは漏えいしていない。代わりに、トランザクションサイナーにおける決定論的ノンスの欠陥により、導出済み署名鍵が侵害されたとされる。
個々のウォレットのクレデンシャルは一方向の処理を通じてマスターシークレットから導出されるため、盗まれた導出鍵は元のシードを明かすことなく不正なトランザクション署名を可能にし得る。リカバリーシステムはこの相違を利用し、侵害されたクレデンシャルだけを保持する攻撃者と正当なウォレット所有者とを切り分ける。
Plutus V3 はシードを明かさずに所有権を検証する
所有権の証明は、BLS12-381 曲線上で動作する Groth16 証明システムによってローカルに生成される。生成される証明は 336 バイトで、基盤となる回路は約 345 万の制約を含む。
Cardano の Plutus V3 環境は、カストディコントラクトが資産を解放する前にこの証明を検証する。請求者のリカバリーフレーズ、秘密鍵、完全な導出パスはオンチェーンに公開されない。
新しい送付先クレデンシャルは証明に暗号学的に結び付けられている。観察者がトランザクションを複製して受取アドレスを差し替えることはできない。送付先を変更すると請求が無効化されるためだ。
バリデータはまた、要求された支払いがカストディデータムに保存された権利額と一致することを確認する。追加条件により、コントラクトが自分自身に支払ったり、侵害されたクレデンシャルへ資産を戻したりすることを防いでいる。
当初の二つのマイルストーンが Preview testnet で完了した。最初の段階では、5 ADA のテスト資産が検証ゲートの背後にロックされ、有効な証明をノードが受け入れた後に解放された。同じ証明の 1 バイトを変更して実行した二つ目のトランザクションは拒否された。
その後、完全なカストディバリデータを通じてリカバリーフロー全体が検証された。5 ADA が預け入れられ、新たに作成した送付先ウォレット用の証明が生成され、コントラクトは資産を解放する前に所有権、権利額、送付先バインディングを検証した。
後続の請求では、影響を受けたクレデンシャルへの払い戻しを禁止するルールや、消化済みの請求を追跡するチケット方式のメカニズムなど、さらなる保護が追加された。トランザクションは Cardano の実行制限内で決済された。
リポジトリには、バリデータの意思決定ロジックを網羅する Lean 4 による証明、技術仕様、回路コード、複数回のレビューも含まれている。完全な R1CS 制約系と正準証人関係の間の形式的な接続のうち、SHA-512 および Ed25519 コンポーネントを含む部分が一つ未確定として残っている。
メインネットでの利用には追加のセキュリティとガバナンスの管理が必要
ReclaimGlobal は現時点で Preview testnet 上のプロトタイプとして動作しており、本番向けのいくつかの安全策はまだ開発中だ。
現在のデプロイで用いられた検証鍵は、単一運用者による信頼できるセットアップで生成された。リポジトリは、このモデルは testnet での開発には適しているが、実ユーザー資産を扱うシステムには適さないと明言している。
Groth16 では、証明鍵と検証鍵を作成するための構造化セットアップ手順が必要になる。セットアップ時の秘密情報をすべて保持している参加者は、理論上は検証を通過してしまう不正な証明を作り出すことができる。
そのため、提案されている本番モデルでは、独立した貢献者がそれぞれの乱数を追加し、個々の秘密を破棄するマルチパーティセレモニーを用いる。リポジトリは、公開乱数、公開された貢献トランスクリプト、完了したセレモニーの独立検証を含む手順を概説している。
運用管理面も未解決だ。ドキュメントは、適格者リストを誰が作成するのか、割当額をどのように独立して検証するのか、請求処理中のカストディ資産をどのように保護するのかを定義する必要性を指摘している。
今後の作業には、オンチェーンの消費済み状態およびヌルリファイアシステムの完成、エンコーディング保護の強化、プロトタイプの本番用 CIP-30 アプリケーションへの転換、回路とコントラクトおよびセレモニーに対する完全な外部監査の委託が含まれる。
Preview 上のトランザクションにより、Cardano が数百万制約規模の所有権証明を検証し、単一のトランザクション内でリカバリーの支払いを完了できることが示された。プロダクションへの移行は、単一運用者への信頼を排し、カストディ、適格性、請求認可に関する透明なルールを確立することにかかっている。