Skip to content

EIP-7702 inconsistency #1714

@mrLSD

Description

@mrLSD

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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions