Account Abstraction in simple words is the latest Ethereum Improvement Proposal used to create an abstract interface for interacting with the blockchain.
Yes, it is recently the hottest proposal on the Ethereum blockchain that aims to make storing of digital assets less of a chore than it currently is, and more like an everyday bank account.
Let’s dive into the details.
What is an EIP?
An EIP, meaning Ethereum Improvement Proposal are ways people propose, debate, and adopt changes that define the Ethereum Core Functions.
There are different kinds of EIPs for low-level protocol changes in existence today.
What is the EIP4337
The EIP4337 was proposed in 2021, and it introduced a pseudo transaction object called ‘UserOperation’: A structure that describes a transaction to be sent on behalf of a user.
These user operations now go into an ‘alt mempool’ where they will be stored as unconfirmed transactions.
The Ethereum nodes acting now as sort of ‘Bundler’ will pick up the user operations from the mempool and package them into a single transaction called a ‘Bundle transaction’.
Once the bundle transaction is created, it is sent to a global ‘singleton’ smart contract known as the ‘EntryPoint’.
Did i lose you there? My bad.
Let’s side track a bit: A singleton smart contract is a type of contract that has only one instance deployed on the blockchain. This means there can only ever be one of them.
The Bundler (formerly known as miner) then calls a function on the entry point/singleton smart contract called ‘handleOps’ (Handle Operations).
This function receives the bundle transaction, and calls another function called ‘validateUserOp’ (Validate User Operation).
Note: When this EIP gets adopted, every smart contract would have to include this function.
validateUserOp verifies the operations signature and pays the fee if the account considers the operation as valid, before continuing to execute the operation.
An execute function then performs the actual operation that is sent in by the EntryPoint contract.
Yes, this is another function that smart contracts will now have to implement.
Currently in Ethereum, accounts are either Externally Owned Accounts(EOAs), which are controlled by a private key, or Smart Contract Accounts(SCAs), which are self-executing due to this being the nature of all smart contracts.
Account Abstraction is a way to create a unified interface for both EOAs and Smart contracts, which aims to simplify the process of interacting with the Ethereum blockchain and reduce the risk of errors or confusion.
If you’re wondering ‘Unified interface?’
Well think of it this way, Account Abstraction will merge the functionality of both EOAs and SCAs to create a new way of creating, verifying, and executing transactions.
This unified interface serves as a bridge between the ethereum network and the user, making interactions with the Ethereum blockchain more user-friendly.
“We’re going to be at a point in the future where using an Ethereum account, is going to be just as simple as using a bank account.” — Kristof Gazso, co-author for Ethereum Improvement Proposal (EIP), on Account Abstraction.
How will this work?
Account Abstraction will move the validity conditions of a transaction such as gas payment, signature verification, and replay protection, out of the core protocol level, otherwise known as the consensus layer, and into the EVM smart contract level, or execution layer.
Did i lose anyone again? Well that’s okay, that was for my technical friends, here’s an even better explanation below:
In the current implementation of the Ethereum network, the process of transaction validation is handled by the consensus layer, which is the layer responsible for determining the validity of transactions and governance of the blockchain.
This means that every node on the network performs the same validation checks for each transaction, which can be computationally expensive and slow down the network.
With this new EIP request, the validation of transactions on the network will be moved from the consensus layer, to the execution layer which is responsible for executing smart contracts on the network.
Because of this change, validation will now be performed by the smart contract associated with the transaction, rather than every node on the network, therefore taking off most of the load from the nodes who previously had to sort out all these transactions as miners.
By moving the validation process to the execution layer, Account Abstraction would simplify the transaction creation process by removing the need for some of the validation steps, such as signature verification, gas payment, and replay protection.
Instead these steps will now be handled by the smart contract, which will be responsible for validating that the transaction is authorized and correctly formatted.
What’s possible with Account Abstraction?
These smart contract accounts leverage the use of Account Abstraction to provide advanced functionality and a more user friendly interface for managing digital assets.
- With Account Abstraction, smart contract accounts are able to abstract the complexity of managing an Ethereum account model, including the private keys and transaction fees. With Account Abstraction, smart contract accounts can provide a simple and user-friendly interface for managing digital assets, without requiring users to manage their private keys themselves.
- Account Abstraction allows smart contract accounts interact with smart contracts more efficiently and secured than with an EOA. This is because Account Abstraction enables them use their own logic and code to manage transactions, rather than relying on the user to generate and sign a transaction using their private keys to interact with smart contracts.
- Lastly, Account Abstraction enables smart contract accounts provide advanced functionality such as multi-sig support, voting systems, or complex financial instruments. Because they can use their own code and logic to execute transactions, rather than rely on the user to manage and sign each transaction manually.
Account Abstraction provides the foundation for a new kind of accounts by allowing them abstract away the high complexity of managing the Ethereum account model, interact with smart contracts in a more secure efficient manner, and provide functionality.
What’s in it for us developers?
Well, due to this new protocol change, developers would be able to create more flexible and powerful smart contracts for the Ethereum blockchain. This is because all that execution logic would now be hard-coded into smart contracts to take the work off the nodes.
The Bundlers are coming.
Presently, a smart contract can only interact with an EOA, and this limits functionality. With Account Abstraction they would be able to interact with other smart contracts directly, which would lead to the creation of new and powerful decentralized applications on the Ethereum network and we get to build it!
So, as a developer get ready to learn how to implement these new functions into your smart contract code as they would be a requirement for all contracts interacting with the EVM.
In conclusion, Account Abstraction is not only going to redefine the future of how Smart Contracts and Smart Contract Accounts communicate with each other, but the future of the Ethereum Blockchain, and how it handles transactions as well.
With the new EIP4337, nodes on the Ethereum network will spend way less resources and time validating transactions, and instead bundle them up and process them at once, which is a significant change, compared to how things are done today.
Thank you for your time.
If you liked this or found it informative, leave a like, a comment, anything, or reach out to me on any of my socials for hiring, or a good conversation by clicking on this link.
Account Abstraction: Enhancing Smart Contract Accounts. was originally published in Coinmonks on Medium, where people are continuing the conversation by highlighting and responding to this story.