-
Notifications
You must be signed in to change notification settings - Fork 816
Closed
Description
Description
According to EIP-7702 Specification it's several inconsistencies:
➡️ In validation Step 1 there is no validation step Behavior 1..
authority = ecrecover(keccak(MAGIC || rlp([chain_id, address, nonce])), y_parity, r, s]
It's a vector of attack.
➡️ Step 4 - accodingto specification Nonce
is required filed, and it's impossible situation for Option<None>
➡️ Step 6 just wrong (in Specification it's step 7
):
Set the code of authority to be 0xef0100 || address. This is a delegation designation.
➡️ A nit: Behavior steps number in the specification and in comments are different, and it's confusing.
➡️ Step 8
from Specification just absent:
Increase the nonce of authority by one.
Main logic of EIP-7702
It looks, like after creating list it doesn't used for Delegation Designation logic
Unclearity
It's unclear intention of:
pub enum AuthorizationList {
Signed(Vec<SignedAuthorization>),
Recovered(Vec<RecoveredAuthorization>),
}
It looks overcomplicated for such simple simple structure (according to Spec) like authorization_list
.
Relations
Related to #1268
Metadata
Metadata
Assignees
Labels
No labels