署名時には画面に問題がないように見えても、資金が消えることがあります。イーサリアム財団は10/5、プロトコル層でこれを防ぐための方向性を提案しました。

問題はどこにあるのか:署名で固定されるのは「何をするか」(どのコントラクトを呼び出すか、どんなパラメーターを渡すか)だけで、「最終的にどうなるか」は固定されません。署名後にコントラクトの実装が差し替えられることもあれば、取引が成立する前に価格がサンドイッチ攻撃で動かされることもあります。EFが挙げた例では、BybitとBadgerDAOのケースはフロントエンドが改ざんされ、ユーザーが別の内容に署名していました。Aave/CoWのケースでは、インターフェースに価格インパクト99.9%の警告が表示されていたにもかかわらず、ユーザーが確認。約5,040万ドル相当のaEthUSDTを、約3万6,000ドル相当と交換しました。

EFの提案(EIP-7906):取引の最後に読み取り専用のチェックを追加し、取引全体の終了後に生じた純変化(残高、コントラクトのストレージ、新たにデプロイされたコントラクト、イベント)を確認します。事前に署名したルール、たとえば「最低でもいくら受け取る」「新たな承認を追加しない」「マルチシグコントラクトの実装を変更しない」に違反した場合、取引全体がロールバックされます。取引自体はオンチェーンに記録され、ガス代も支払います。

制約について、まず明確にしておきます。
・まだ草案です。依存するEIP-8141はHegotáアップグレードに向けて検討中です。7906は現時点で「採用を検討」の段階で、まだ承認されていません。
・強制ではありません。ウォレットやプロトコルが取引にチェックの付与を求めなければ、チェックがないのと同じです。
・ルールの出どころが重要です。ルール自体がハッキングされたフロントエンドによって生成されているなら、やはり防げません。EIPの原文にも「不完全なアサーションは、アサーションがないのと同じ」と明記されています。

今できること:スワップでは最低受取額を設定する。マルチシグではSafeのGuard(実行後のチェック)を調べる。「価値のすべてを失う可能性があります」といった警告が出たら、いったん止める。シミュレーションや署名内容の確認は役立ちますが、Radiantの事例ではインターフェースもシミュレーションも正常で、署名する瞬間に悪意あるプログラムによって内容が差し替えられていました。

私の見立て(推論):これはウォレットセキュリティの長期的な方向性であり、短期的にETHの使い方が変わるわけではなく、価格材料でもありません。今後注目するのは、どのウォレットが先に対応を表明するか、そして7906がHegotáへの採用を承認されるかの2点です。

$ETH|出典:Ethereum Foundation Blog(10/5)、EIP-7906|投資助言ではありません