Original author: David

In the past few months, the discussion about account abstraction and smart contract wallets has been very heated.

With the rapid development of the Ethereum ecosystem, it is becoming increasingly important to achieve a unified and seamless user experience. In the Ethereum 2.0 roadmap, account abstraction, merging, and sharding are placed on an equal footing.

Vitalik Buterin also tweeted that smart contract wallets have a better user experience than EOA wallets.

For crypto veterans, using EOA wallet is already familiar enough. But from the perspective of attracting more new users, EOA wallet still has some problems in user interface and understanding cost: confusing signatures, where to get gas fees, hard-core logic of "action = transaction"...

Therefore, the community gradually reached a consensus that a smooth transition from EOA accounts to smart contract wallets is needed, which has also become a politically correct practice.

But the popular information in the Crypto community generally only talks about narratives, not how to achieve it:

Assuming we all know that smart contract wallets are better than EOAs, this path is very obvious, the question is how to get there? Where is the bridge?

What is even more difficult to solve is the practical problem behind path dependence: I already have various assets in my EOA account. Now you want me to migrate them to a smart contract account. Is that troublesome?

How can we effectively achieve this transformation? How can we make it easier to migrate user assets?

There are no roads in this world unless someone has paved them in advance.

Recently, the EIP-7377 proposal provides a possible solution for this. The proposal was proposed by Go Ethereum developer Matt Garnett, and its purpose is to add a new transaction type that allows EOA accounts to permanently migrate accounts to smart contract wallets through a one-time transaction. This provides a feasible path for advancing Ethereum account abstraction.

Motivation for EIP-7377

Since 2015, smart contract wallets have been considered an important way to solve Ethereum's user experience problems. Compared with EOA accounts, smart contract wallets have stronger programmability, can implement complex mechanism design, and improve security and user-friendliness.

However, due to historical reasons, overall, only a few users on Ethereum currently use smart contract wallets, and a large amount of assets are still stored in EOA accounts. This has become an obstacle to the development of Ethereum.

As assets accumulate, users cannot easily manually migrate all assets in the EOA account to a new smart contract address, which is very difficult both in terms of cost and operational procedures.

Therefore, the motivation of EIP-7377 is to solve this practical need and achieve a smooth transition by providing a mechanism for migrating from EOA to smart contract wallets at the protocol level. This may greatly increase the willingness of existing users to migrate, and provide a more pragmatic EOA transition solution for incremental users when they enter the market before account abstraction becomes popular.

A simple explanation of EIP-7377 technical implementation

So, how does this proposal specifically achieve the transfer of EOA to smart contract wallet?

In the original post on the technical forum, the author briefly explained:

The general meaning of this summary is that EIP-7377 proposes a new transaction type 0x 04, which is specifically used for "migration transactions".

To use the technical language of the original post:

"It sets the code field of the sending account in the state tree to a pointer to the specified code in the code storage. At the same time, the migration transaction can also directly set the storage value of the sending account. The storage field in the transaction will be written to the storage tree of the sending account as a key-value pair. In addition, the code storage uses pointers instead of inline code. The advantage of this is that shared code can be reused, redundancy can be reduced, and the size of the state tree can be optimized."

The original description above is very obscure and difficult to understand for people without technical knowledge. After consulting some technical friends and public information, we tried to simplify all the technical details and use metaphors to quickly understand EIP-7377:

  • EIP-7377 proposes a special transaction type that can be understood as a "migration card".

  • Ordinary users only need to initiate this migration card transaction to migrate the assets in their account to the smart contract wallet.

  • This is equivalent to your account on the original website, which contains username, password, avatar and other information (your original EOA contains coin name, quantity, chain, gas limit, etc.). However, the function of this website is not very good, and you want to completely migrate to another new website.

  • In order to facilitate the migration, the new website has launched a "Migration Card". You only need to submit this "Migration Card" on the new website, and your account information will be automatically copied over, which is equivalent to directly connecting the new and old account data. This is much more convenient than manually moving data one by one.

  • At the same time, for the sake of safety, the "migration card" can only be used once, and repeated migration and refreshing of data are not allowed. In addition, the new website will inherit some verification rules of the old website, so other users cannot tell whether you are a new user or an old user.

This is what EIP-7377 wants to achieve technically. Using the special "card" of "migration transaction", by directly operating the account code and storage, the smooth migration of EOA to smart contract wallet is completed in a safe and efficient way.

Of course, the specific objects of migration are not the usernames, passwords, and avatars mentioned in the above analogy, but various types of information related to encrypted assets:

(Note: Due to my non-technical background, I cannot fully understand all the contents of this proposal. I also invite technical experts to make further corrections and additions. Original post address: https://eips.ethereum.org/EIPS/eip-7377?ref=newsletter.ether.fm)

Potential impact, significance and risks of EIP-7377

The EOA migration plan to smart contract accounts proposed by EIP-7377 will have a positive impact on the Ethereum ecosystem in the long run. We believe that it is expected to become one of the key steps to promote the realization of account abstraction.

This smooth migration method supported at the protocol level can greatly reduce the difficulty and path dependence of users migrating to smart contract wallets. Crypto users are often not proficient in the underlying technology, and will not make active technological innovations under the guidance of asset priority. If the underlying protocol already supports "one-click migration", then with appropriate incentive activities and friendly adaptation of the front-end interface, the willingness of users to migrate will theoretically increase greatly.

However, we should also be aware of the risk of this new feature being used for malicious attacks. Possible malicious means include but are not limited to:

  1. Phishing attack: Create a fake migration transaction and then deceive the user into approving the transaction through a phishing link, in order to illegally transfer assets.

  2. Malicious code implantation: Hackers can implant backdoors by tampering with the code during the migration process to gain control of the account.

  3. Repeated migration theft: Taking advantage of the restriction that migration transactions can only be executed once, hackers can initiate repeated migration transactions after legitimate migration, falsely claiming failure and then ask the user to approve again, in order to steal assets.

In the crypto world, a single protocol upgrade and innovation cannot achieve the complete vision overnight. In the dark forest environment, protocol upgrades also need to be accompanied by corresponding audit upgrades, trusted source verification, bounty programs and other means to prevent these threats and ensure the security of migration transactions.

Finally, we also need to think about:

The transformation of infrastructure and protocols requires a strong ecological driving force. Who will promote the large-scale migration of users from EOA to smart contract accounts? Who will bear the technical risks and asset security during the migration process?

In the crypto world that advocates freedom and decentralization, how can such system upgrades form consensus and synergy?

Ethereum is a huge ecosystem with many stakeholders. Although this transition has positive significance, it may also encounter doubts and resistance from different groups. The planning and details of the transition process need to be carefully designed to gain community consensus and ensure that user interests are not harmed.

From ideal to reality, from conception to execution, the road is still long.