This is first part of our series to understand Account Abstraction in Ethereum. In this article we will get introduction to Ethereum Accounts, Basic Terminologies and Account Abstraction.
An entity having an ether balance that can send Ethereum transactions is called an ethereum account. Using our account, we can send, receive, and hold our ETH and tokens, as well as interact with smart contracts.
1.Externally Owned Accounts: Accounts which are controlled by Private Keys. Cost for Creating an account is zero. These accounts can initiate transactions. These accounts exist outside of the EVM. Example; Wallet Accounts.
2.Contract Accounts: Accounts are created when a smart contract is deployed to the network; these accounts are controlled by code. It has a Cost for Creating an account as we are using network storage. Transactions can only be sent in response to receiving a transaction. They exist inside the EVM. Example; Any account which follows the above Definition.
Image Source: Gnosis
In this section, we will understand some basic terminologies which we will use in the Account Abstraction.
Gas: Car need gasoline to run. Similarly, the Ethereum network needs Gas. It is the cost of computing effort necessary to carry out specific actions on the Ethereum network.
Mempool: Waiting area for the unconfirmed transactions that are not to the block. Blockchain keeps a permanent record of all transactions. We can’t undo what is already written. As a result, blockchains require a way to determine the order in which transactions are written to the block. In this case, mempool acts as a dynamic staging area in front of the blockchain that allows for transaction ordering, transaction fee prioritization, and block construction.
Transaction: These are Cryptographically signed instructions from accounts. If Bob transfers Alice 1 ETH, Bob’s account must be debited, and Alice’s account must be credited.
This code is taken from Github Ethdocs, an Example of a transaction object.
It is an Improvement in making two types of ethereum accounts more comparable and making EOAs operate like contract accounts. The goal is to reduce two account types to one, a contract account. The single account type will be able to transact both coins and contracts. As the transaction will be moved entirely inside the EVM and away from the blockchain protocol, developers and users will no longer need to distinguish between account types.
2016: Vitalik Buterin proposed an idea for initial abstraction changes for Metropolis. The goal was to prepare an account security abstraction. In traditional model, ECDSA and the default nonce scheme are the only way to secure an account. In this model, all accounts are contracts, contracts can pay for gas, and users are free to define their security model.
2017: Vitalik Buterin proposed EIP-86 for abstraction of transaction origin and signature. The goal was to abstract out signature verification and nonce checking and allowing users to establish account contracts that conduct any required signature/nonce checks rather than relying on the traditional method.
2020: Vitalik Buterin, Ansgar Dietrichs, Matt Garnett, Will Villanueva and Sam Wilson proposed EIP-2938 for account abstraction. The goal was to allow a contract to be the top-level account that can pay fees and start transaction execution.
2021: Vitalik Buterin, Yoav Weiss, Kristof Gazso, Namra Patel and Dror Tirosh proposed EIP-4337 for account abstraction via entry point contract specification. The goal is to avoid consensus-layer protocol changes instead of relying on higher-layer infrastructure.
We have briefly discussed ethereum accounts, account abstraction and some basic terminologies. In second part of this series, we will understand EIP-86 proposal for the abstraction of transaction origin and signature.
Hope you like it.
Hoping for a positive response.
Please Follow My @Medium profile Yash Kamal Chaturvedi
Account Abstraction: Introduction was originally published in DataDrivenInvestor on Medium, where people are continuing the conversation by highlighting and responding to this story.