Original Author: David
In the past few months, discussions about account abstraction and smart contract wallets have been very hot.
With the rapid development of the Ethereum ecosystem, achieving unified and seamless user experience has become increasingly important. In the Ethereum 2.0 roadmap, account abstraction and merging, as well as sharding, are placed in equally important positions.
Vitalik Buterin has also tweeted that smart contract wallets provide a better user experience compared to EOA wallets.
For crypto veterans, using EOA wallets is already familiar enough. However, from the perspective of attracting more new users, EOA wallets still have certain issues in terms of user interface and understanding cost: baffling signatures, where to get gas fees, the hardcore logic of "action=transaction," etc.
Therefore, the community has gradually formed a consensus that a smooth transition from EOA accounts to smart contract wallets is needed, which has become a kind of political correctness as well.
However, the popular information in the crypto community usually only talks about narratives without discussing how to implement them:
Assuming we all know that smart contract wallets are better than EOAs, this path is very obvious; the question is, how do we get there? Where is the bridge?
Even more difficult is the real-world problem of path dependence: I already have various assets in my EOA account, and now you want me to migrate to a smart contract account, is that troublesome?
How can we effectively achieve this transition? And how can user asset migration be made simpler?
There were no roads in this world before, unless someone paved the way in advance.
Recently, the EIP-7377 proposal has provided a possible solution for this. The proposal, put forward by Go Ethereum developer Matt Garnett, aims to add a new transaction type that allows EOA accounts to permanently migrate to smart contract wallets through a one-time transaction. This provides a feasible path for advancing Ethereum's account abstraction.
Motivation behind the EIP-7377 Proposal
Since 2015, smart contract wallets have been recognized as an important solution to improve the user experience on Ethereum. Compared to EOA accounts, smart contract wallets have stronger programmability, allowing for complex mechanism designs, increased security, and user friendliness.
However, due to historical reasons, there are currently only a few users utilizing smart contract wallets on Ethereum, 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 find it difficult to manually migrate all assets from EOA accounts to new smart contract addresses, both in terms of cost and operational process.
Therefore, the motivation of EIP-7377 is to provide a migration mechanism from EOA to smart contract wallets at the protocol level, addressing this practical need and enabling a smooth transition. This may greatly increase the willingness of existing users to migrate their assets, and provide a more pragmatic EOA transition solution for new users before account abstraction becomes ubiquitous.
EIP-7377 Layman's Explanation of Technical Implementation
So, how does this proposal actually achieve the transfer from EOA to smart contract wallets?
In the original post on a technical forum, the author provided a brief explanation:
The essence of this summary is that EIP-7377 introduces a new transaction type, 0x04, specifically for "migration transactions".
In the technical language used in 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. Additionally, migration transactions can also directly set the storage value of the sending account. The 'storage' field in the transaction writes key-value pairs into the storage tree of the sending account. Furthermore, code storage uses pointers instead of inline code. This approach allows for the reuse of shared code, reducing redundancy and optimizing the size of the state tree."
The original description above seems very obscure and difficult to understand, especially for those without a technical background. After consulting with some technical friends and public resources, we attempted to simplify all the technical details and explain EIP-7377 using metaphors:
EIP-7377 proposes a special type of transaction, which can be understood as a "migration card".
Regular users only need to initiate this migration card transaction to migrate the assets in their account to a smart contract wallet.
Think of it as your original website account, which contains information like username, password, avatar, etc. (similar to the token name, quantity, chain, and gas limit in your original EOA). However, this website is not functioning very well, and you want to completely migrate to another new website.
To facilitate the migration, the new website introduces a "migration card". You just need to submit this "migration card" on the new website, and your account information will be automatically copied over, essentially connecting the data of the old and new accounts. This is much more convenient than manually transferring data one by one.
At the same time, for security reasons, the "migration card" can only be used once and cannot be repeatedly used to transfer back and forth. Also, the new website will inherit some verification rules from the old website, so other users cannot tell whether you are a new or old user.
This is the technical implementation that EIP-7377 aims to achieve. By using the "migration transaction" as a special "card", it directly manipulates account code and storage, enabling a secure and efficient migration from EOA to a smart contract wallet.
Of course, the specific migration objects are not the username, password, and avatar as mentioned in the metaphor above, but rather various information related to encrypted assets:
(Note: As a non-technical background, I am unable to fully understand all the contents of this proposal. I also ask all the technical experts to further correct and supplement. Original Post URL: https://eips.ethereum.org/EIPS/eip-7377?ref=newsletter.ether.fm)
The potential impact, significance, and risks of EIP-7377
The proposed EIP-7377 introduces a scheme for EOA to smart contract account migration, which could have a positive impact on the Ethereum ecosystem in the long term. We believe it could be a critical step in realizing account abstraction.
This protocol-level supported smooth migration approach can significantly reduce the difficulty and path dependency for users migrating to smart contract wallets. For crypto users, who are often not familiar with the underlying technology and are more focused on asset priorities, they are unlikely to actively pursue technical innovation. If the underlying protocol already supports "one-click migration", coupled with appropriate incentive activities and user-friendly frontend interfaces, the willingness of users to migrate theoretically will greatly increase.
However, we should also be aware of the risk of this new feature being used for malicious attacks. Possible malicious methods may include, but are not limited to:
Phishing attacks: Creating forged migration transactions and deceiving users into approving the transactions through phishing links, with the purpose of illegally transferring assets.
Malicious code injection: Hackers can implant backdoors by tampering with code during the migration process, gaining control over accounts.
Repeat Migration Theft: By exploiting the restriction that migration transactions can only be executed once, hackers can initiate repeated migration transactions after a legitimate migration, falsely claim failure, and then ask the user to approve again, in order to steal assets.
In the encrypted world, the complete vision of a single protocol upgrade and innovation cannot be achieved overnight. In the Dark Forest environment, protocol upgrades also need to be accompanied by corresponding measures such as auditing upgrades, trusted source verification, and bounty programs to guard against these threats and ensure the security of migration transactions.
Finally, we also need to consider:
Infrastructure and protocol transformations require strong ecological driving forces. Who will drive users to migrate on a large scale 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 consensus and synergy be formed for such system upgrades?
The Ethereum ecosystem is vast, with many stakeholders. Although this transition has positive implications, it may also face questioning 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 journey is still long.
