イーサリアム財団は、ユーザーがトランザクションの最終結果に強制力のある条件を付与し、要求した操作の承認だけに頼らないようにするトランザクション・アサーションを検討している。この研究は「Trillion Dollar Security」イニシアチブの一環で、トランザクションの安全性における課題を対象としている。有効な署名であっても、実行後の残高、権限、アカウント制御が署名者の意図に沿うとは限らない。
主なポイント
- 提案されているチェック機能は、実行中にトランザクションの結果を評価し、署名済みルールに違反する操作を取り消す。
- 保護の有効性は、侵害されている可能性のあるトランザクション構築者とは独立して承認されたルールに左右される。
- この研究はウォレットの安全ポリシー、委任されたエージェント、ソルバーのワークフローを支援する可能性があるが、導入が発表されたわけではない。
目次
- トランザクションを承認しても損失が生じる可能性がある理由
- トランザクション・アサーションが結果をチェックする仕組み
- 提案されている実装で確認できる情報
- ウォレットとプロトコルに求められる変更
- エージェントとソルバーのワークフローが得られるもの
- 結論
トランザクションを承認しても損失が生じる可能性がある理由
イーサリアムは、ユーザーが承認した要求を、実行時に利用可能なコードと状態に基づいて処理する。その条件は、ユーザーが確認した時点のものと異なる場合がある。たとえば、実行前にプロキシの実装が変更されることがあり、トランザクションの順序によってスワップ時の価格が変わることもある。
財団は、誤解を招く要求と望ましくない結果を区別している。BybitとBadgerDAOへの攻撃では、侵害されたフロントエンドが、ユーザーが承認していると思っていた内容とは異なる署名要求を表示した。一方、要求が正確に表示されていても、経済的な損失につながる結果が許容される場合がある。
財団が挙げる例は、aEthUSDT約5,040万ドル相当を用いたAaveとCoWの担保スワップだ。AAVEの流動性が薄かったこととCoWのガス上限により、検証済みの見積もりはaEthAAVE約329枚にとどまった。価格インパクトが99.9%に達するとの警告が表示され、全価値を失う可能性があることも確認されたにもかかわらず、ユーザーは署名し、約3万6,000ドル相当のトークンを受け取った。
この違いが、トランザクションの説明を改善するだけでは不十分な理由を示している。Clear Signingは、ユーザーが要求された操作を理解するのに役立つ。シミュレーションは、選択したチェーンの状態に基づき影響を見積もる。しかし、いずれも単独では、実際に起きる結果に独立した条件を課さない。
| 項目 | 詳細 |
|---|---|
| TXTRACE | トランザクションによる状態の純変化と発行イベントを列挙する。 |
| TXDIFF | 指定されたアドレスとストレージスロットの開始時および最終値を取得する。 |
| EVENTDATACOPY | 検査できるよう、イベントのデータをメモリにコピーする。 |
| デプロイ情報 | 提案されている状態変更データには、新たにデプロイされたコントラクトとそのコードハッシュが含まれる。 |
トランザクション・アサーションが結果をチェックする仕組み
アサーションは、操作の実行後に読み取り専用ロジックを用いて、トランザクションの開始時と終了時の状態を比較する。条件はトランザクションに含められ、操作とともに署名される。条件を満たさなければ、それらの操作はリバートされる。
考えられるルールには、受取額の最低水準、支出上限、新たなトークン承認への制限、アカウントの制御ロジックの維持などがある。提案されている検査機能は、残高だけでなく、ストレージ、コード、新たにデプロイされたコントラクト、発行イベントにも及ぶ。
既存のコントラクトチェックも、特定の結果を保護している。Uniswapは指定された最低出力を下回るスワップを拒否でき、Safeのガードは実行後のアカウント状態を検査できる。制約となるのは可視性だ。こうしたチェックでは、何を検査するかをあらかじめ想定する必要があり、通常は他のコントラクトが公開するインターフェースに依存する。たとえばプロキシは、実装アドレスを明らかにする関数を提供する必要がない。
ネイティブのアサーションであれば、通常のガードが検査対象と認識していない変更も含め、トランザクションのあらゆる純効果をチェックできるようになる。ただし、可視性の拡大が役立つのは、ルールが信頼できる場合に限られる。悪意あるフロントエンドが自らの攻撃を許す条件を提示する可能性があるため、ポリシーは独立して承認された意図、アカウントポリシー、または保護されたプロトコルロジックに基づく必要がある。
提案されている実装で確認できる情報
ネイティブのトランザクション・アサーションに関する財団の発表では、EIP-7906は確定した設計ではなく、実装案として説明されている。これは、検証ステップと操作ステップを順序立てて配置するEIP-8141のフレーム・トランザクションを基盤としている。EIP-8141はHegotáでの実施が予定されているが、EIP-7906は「採用を検討中」に達した段階であり、同アップグレードへの採用は確定していない。
この方式では、読み取り専用のPOST_TXフレームが実行終了時に結果を検査する。提案されているデータアクセス命令は、EVM全体で利用できるのではなく、このフレーム内でのみ動作する。
確認できる情報は、すべての中間的な書き込み履歴ではなく、純効果を示す。ストレージスロットが繰り返し変更された場合、開始時と最終時の値が表示される。元の値に戻されたスロットは表示されない。このため、最終状態の強制と、実行中のすべての段階の監視を区別することが重要となる。
チェックに失敗すると実行本体はリバートされるが、トランザクション自体は失敗としてブロックに残る。ガス支払者は消費したガスの代金を支払うため、意図的に失敗させるトランザクションが、ビルダーに無料で実行作業を負わせることはない。
ウォレットとプロトコルに求められる変更
この提案が提供するのはチェックの仕組みであり、その利用を自動的に義務づけるものではない。ユーザーのトランザクションを保護するには、ウォレットはトランザクションの構築時に安全ポリシーを組み込む必要がある。ビルダーがそのポリシーを省略できる状態にしてはならない。ポリシーはウォレット独自のシミュレーションから導くことも、アカウントに継続的に適用するルールとすることもできる。
プロトコルの場合、保護対象の関数にアクセスする条件に保護策を組み込む必要がある。アサーションに対応したトランザクションを用意するだけでは不十分で、呼び出しにはプロトコルが要求する特定のチェックを含めなければならない。これにより呼び出し側に求められる統合要件が変わる一方、すでにデプロイ済みの変更不能なコントラクトに、このアクセス時チェックを後付けすることはできない。
こうした依存関係により、EVMの強力な機能となる可能性と、ユーザー向けの保証との違いが明確になる。実効性のある保護には、妥当な条件と、その条件を一貫して不可避なものにするソフトウェアの両方が必要となる。
エージェントとソルバーのワークフローが得られるもの
委任されたエージェントは、権限だけでなく結果によっても制約できる。エージェントが利用できるコントラクトや支出可能額の制限に加え、各トランザクションの実行後に何が残るべきかを定める要件も設けられる。
ソルバーを使う実行では、プロトコルが許容可能な結果を指定しつつ、経路の選択をソルバーに任せることができる。保証の対象は単一ネットワーク上のトランザクションに限られ、複数のチェーンにまたがる経路には及ばない。
アサーションは、未使用トークンの返却や、残っている承認の取り消しといったワークフローの後処理もチェックできる。財団は設計を進めながらウォレットとプロトコルのチームから意見を募っており、これらの用途は発表済みの製品機能ではなく、研究の方向性である。
結論
ネイティブのトランザクション・アサーションは、イーサリアムのトランザクション安全性の一部を、要求の解釈から結果の強制へと移す可能性がある。実用上の価値は、信頼できるポリシーと、それを適用する責任を負うウォレットおよびプロトコルへの普及に左右される。
ニュースをもっと読む
免責事項
本FinanceVelix記事は一般情報を提供するものであり、個別の金融、投資、法律、税務に関する助言ではありません。暗号資産の価格は急速に変動する可能性があり、投資した資金をすべて失うおそれがあります。事実関係は公開時点で入手可能な資料に基づいており、変更される場合があります。重要な情報はご自身で確認し、必要に応じて資格を有する専門家に相談してください。資産、企業、サービスへの言及は推奨を意味するものではありません。




