出典:MetaCat
EIP-3074この件に関する共同執筆者!これ以上手に負えなくなる前に、この懸念は一旦置いておこう。
まず第一に、現在接頭辞なしデータへの署名をサポートしているウォレットを私は知りません。つまり、コントロールパネルをどれだけ閲覧しても、高度な機能をどれだけオンにしても、EIP-3074をサポートしているウォレットは現在ありません。現時点ではEIP-3074メッセージに署名することはできません。
あなたは、EIP-191に基づくEIP-3074とはまったく異なる標準を使用して「ログイン」dappメッセージに署名しています。
0x19 <0x45 (E)> <thereum Signed Message:\n" +len(message)> <data to sign
そのため、ダップにログインしている人を騙して、実際に有効なイーサ取引に署名させることはできないのです。
トランザクションの先頭に1バイトの値が付きます:
0x01 - 2930 tx
0x02 - 1559tx
0x03 - 4844 tx
詳細については、https://github.com/ethereum/execution-specs/tree/master。
EIP-3074は接頭辞0x04を使う予定です。これにより、イーサネットの他のすべてのタイプの署名可能なデータと曖昧さをなくすことができます。ウォレットは、ユーザーがこれらのメッセージに署名することを積極的に選択しなければなりません。
ウォレットがEIP-3074を統合する特定の方法に基づいて、ユーザーが悪用されやすい状況を作り出すかもしれません。これを理解するためには、EIP-3074シグネチャがどのように機能するのかを確認する必要があります。
署名を構築する認証メッセージには、以下のフィールドがあります。重要なのは、発信者アドレスが含まれていることである。これはAUTHが署名を有効とみなす唯一のアドレスである。
残高不足になりそうなアカウントでは、以下の両方を満たさなければならない:
1)ウォレットは、ユーザーが任意のインボーカーアドレスに署名できるようにする必要があります。
2)ユーザーは、インボーカーが信頼できることを検証していない必要があります。
つまり、ユーザーはこのどちらかを問題なく実行するということです。
ウォレットソフトウェアには、EIP-3074 invoker はコントラクトというよりも、ウォレットソフトウェアコードの拡張に近いものであることを理解してほしいと思います。ウォレットは、ユーザーが自由に任意のコードを実行し、自分のpk(秘密鍵)にアクセスすることを許可すべきではありません。同様に、ユーザーは自分のEtherアカウントを任意に委譲することを許可すべきではありません。
その結果、ウォレットソフトウェアがEIP-3074を安全に統合しておらず、ユーザーが対話する呼び出し元を認証していない場合、悪意のある呼び出し元に委任している可能性があります。しかし、EOAから単一のTxを送信することで、これを取り消すことは可能である。これは、すべての「進行中」AUTH署名を取り消す。
少なくとも、ウォレットソフトウェアはEIP-3074メッセージに署名することを、秘密鍵のエクスポートと同じくらい大きな問題にすべきです。
アカウントは、ウォレットが3074を安全に統合していると仮定すれば、まだ盗まれる可能性があります。これは一括取引の基本的な属性です。攻撃者があなたを騙して、彼らがコントロールするアドレスに資産のバッチを送ることができるのと同じように、複数のアクションを簡単に送ることができます。
ウォレットソフトウェアは、署名する各操作を明確に表示しなければなりません。そうすれば、「私は1つの取引しかするつもりがなかったのに、この署名要求によってさらに何十もの取引をさせられている」ことに簡単に気づくことができます。バッチがブラインド署名で行われた場合、これは検出できません。
そう、EIP-3074はウォレットを大いに信頼している。しかし、私たちはすでに秘密鍵でウォレットを安全に信頼している!これ以上の信頼レベルはありません。
EIP-3074を安全に統合して使用することは可能です。EIP-3074の作者として、私たちは現在、標準の開発の次のフェーズでどのように支援するのが最善かを検討しています。
ここ数年、私たちはEIP-3074がどのように使用され、悪用されるかについてのwhat-ifシナリオの開発に多くの時間を費やしてきました。私たちは、これらのアイデアが製品化され始めていることに興奮している。しかし、これが最も難しい部分であることも認識している。
EIP-3074以降、1つの不正な署名がイーサ口座の残高を枯渇させるという懸念のまとめ:
-現在ウォレットはEIP-3074タイプの署名をサポートしていません。3074タイプの署名には対応していません。
- EIP-3074署名の発信者フィールドは非常に重要です。悪質な発信者はあなたのお金を盗む可能性があります。
-ウォレットは発信者アドレスが信頼できることを確認する必要があります。これは、現在ウォレットが任意のコードの実行を防ぐ方法と似ています。
-EIP-3074の一括トランザクションは、悪意のある行為者があなたを騙してトランザクションに署名させ、資産を移転させることができる世界をまだ開いています。ウォレットは、EIP-3074メッセージが署名されたときに何が起こるかを明確に示す必要があります。
-たしかに、私たちはウォレットを高いレベルで信頼していますが、ユーザーはウォレットに秘密鍵を託しており、これは最高レベルの信頼です。
EIP-3074 vs EIP-4337
EIP-3074は、アカウント・アブストラクション・プロバイダーにとって、顧客にとって非常に有益なものです。
-ERC-4337は、新しいユーザーに暗号を紹介する最良の方法です。
- EIP-3074は、既存のユーザーにスマートアカウントを紹介する最良の方法です。
元リンク:https://twitter.com/lightclients/status/1778823652584120497
EIP-3074は次のイーサネットハードフォークで利用可能になる。
。