Skip to content

Integrate Account Abstraction Implementation as in EIP-2938 #35

@rlan35

Description

@rlan35

Description

Integrate the Account Abstraction feature as proposed in EIP-2938 into Harmony's core protocol logic using the reference implementation in https://github.com/quilt/go-ethereum. Note this won't be a simple merging since Harmony's EVM implementation has minor difference from the ethereum's implementation.

Context

Harmony is a fully Ethereum-compatible blockchain which shares the core EVM logic and account model. Some of the limitation of Ethereum account model is also present in Harmony. EIP-2938 is proposed to improve the flexibility of the account model in Ethereum to allow a contract to be the top-level account that pays fees and starts transaction execution. This will enable many applications such as:

  • Smart contract wallets that use signature verification other than ECDSA (eg. Schnorr, BLS, post-quantum…)
  • Smart contract wallets that include features such as multisig verification or social recovery, reducing the highly prevalent risk of funds being lost or stolen
  • Privacy-preserving systems like tornado.cash
  • Attempts to improve gas efficiency of DeFi protocols by preventing transactions that don’t satisfy high-level conditions (eg. existence of a matching order) from being included on chain
  • Users being able to pay for transaction fees in a token other than ETH (eg. by converting that token into the ETH needed for fees inside the transaction in real-time)

Acceptance Criteria

  • Fully implement the EIP-2938 proposal into Harmony core, including new opcode and txn type, account abstraction logic, txPool validation logic update etc.
  • Passes all the test cases in https://github.com/quilt/tests/tree/account-abstraction.
  • The implementation needs to be backward compatible and all existing Harmony test cases need to pass.
  • optional, implement a demo application to demonstrate the account abstraction feature.

Reference

  • Paradigm Research: How does Optimism's Rollup really work? Account Abstraction
  • @lightclients: Ethereum wallets may be getting a significant upgrade soon. With the proposed change, EOAs will immediately be able to send batch txs, expiring txs, unordered txs, and more.
  • Near's Implicit Accounts: Similar to Bitcoin/Ethereum accounts. They allow you to reserve an account ID before it's created by generating a ED25519 key-pair locally. This key-pair has a public key that maps to 64 character hex representation which becomes the account ID.

Reward

$25,000 equivalent in ONE tokens.

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