Guide to the Ethereum Virtual Machine

Ethereum is hot. Really hot. It’s worth around a billion dollars and its community is tightly knit, having just successfully executed a contentious hard fork. Serious researchers and serious bankers alike are flocking to the platform in droves. No less so given the catastrophe of the arrogantly named The DAO, which exposed for the world the enormous difficulty of programming Ethereum contracts securely.

I’ve been building in, on, and around Ethereum for over two years now, since long before solidity was a language that could be used by mere mortals.  Actually, it still shouldn’t be used by mere mortals, unless they are well versed in proper solidity coding practices. That said, there is a dearth of documentation about the low-level design of the Ethereum Virtual Machine. Sure, there’s the yellow paper, and various bits of solidity documentation, but both leave something wanting.

Here, I introduce an overarching Guide to the Ethereum Virtual Machine. The guide is hosted on github, with an associated set of simple tools for studying and executing contracts. One of these tools, simple named evm , is particularly useful, as it allows contracts to be deployed and interacted with all from the command line without ever running a full node. Let this page serve as an introduction and index to the various writeups and tooling that are developed to facilitate this initiative, of making the low level design of Ethereum more accessible.


Guide to the EVM:

In depth analysis of the EtherSignal contract:


Many thanks are owed to Rick Dudley for motivating me to write these guides.

Feel free to contact me for consulting or speaking engagements:

ethan at tendermint dot com




Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s