Typefully

Externally Owned Accounts (EOAs)

Avatar

Share

 • 

A year ago

 • 

View on X

(1/14) @ethereum 101: Externally Owned Accounts (EOAs) A primer on what EOAs represent and how users interact with the World Computer.
(2/14) Ethereum is the World Computer, a single, globally shared computing platform that exists in the space between a network of 1,000s of computers (nodes). These nodes are real computers in the real world, communicating directly from peer to peer. x.com/LogarithmicRex/status/1592309373732151296
(3/14) This globally shared computing platform is manifested with the Ethereum Virtual Machine (EVM). Each node is running a copy of the EVM, held in perfect sync with all other nodes via Proof of Stake. The state of the EVM is the state of the World Computer. x.com/LogarithmicRex/status/1574618174879735808
(4/14) What makes up the EVM's state? First, a definition: In comp sci, state refers to the stored information at a particular moment that reflects the current condition of a system. For blockchain, blocks represent a snapshot of state; the blockchain is its history. x.com/LogarithmicRex/status/1858551510218789294
(5/14) Within the EVM, there are two major types of entities: EOAs and smart contracts. EOAs (Externally Owned Accounts) represent private keys that exists outside of the EVM. In general, we think of these as the human users of Ethereum (although they are often bots).
(6/14) Smart contracts are programs that live within Ethereum. While there are nuances that separate a generic computer program and a smart contract, at this level we don't need to worry about them. For now: the EVM is a computing platform, smart contracts are applications.
(7/14) Under the hood, both EOAs and smart contracts represent two different kinds of accounts within the EVM. I've linked a technical deep dive here, but we'll through the important takeaways in the next tweet. x.com/LogarithmicRex/status/1612265449923956737
(8/14) Tl;dr: EOAs are controlled by a private key and can initiate transactions (either transferring $ETH or triggering a smart contract). Smart contracts are controlled by code and can store persistent data.
(9/14) *Technically, an EOA stores one more piece of data other than just $ETH balance - the nonce. This is a number that increments every time you execute an Ethereum transaction. A fresh EOA will have a nonce of 0. An EOA that's done 10 transactions will have a nonce of 9.
(10/14) The nonce is a counter that ensures Ethereum can determine which txns are valid. Ethereum will reject a txn if its submitted with a nonce lower than a previously accepted txn. But, tbh, the nonce is a very technical, minor detail. You can safely ignore it.
(11/14) Now you might be noticing something unexpected. If an EOA can only store an $ETH balance, what does it mean for an EOA to "have" a token? Well that, my friends, requires its own thread. But I'll leave you with a little teaser...
(12/14) An EOA doesn't ever "hold" a token. A token is really a smart contract that tracks its own balances for every EOA that has interacted with the asset. Eg the $USDC contract has a database of every EOA and records their balance. A transfer just updates this database.
(13/14) Before we go, I'd be remiss not to mention the future of EOAs... or more precisely the fact that they probably wont exist. In the Ethereum endgame we will have account abstraction, where all accounts will become smart contracts. But that's a topic for another thread! x.com/LogarithmicRex/status/1612587312638234626
(14/14) In summary, the best way to understand an EOA is that it represents an Ethereum user (human or bot). It is controlled by a private key, and is able to hold/transfer $ETH and trigger smart contracts. EOAs = blockchain users
Avatar

Logarithmic Rex

@LogarithmicRex