For the past couple of months as part of my Masters in CS at Imperial, I’ve been developing EthCon Viewer, a versatile visualisation tool for Ethereum Smart Contracts. What follows is the abstract from my thesis:
The Ethereum Virtual Machine (EVM) is a trustless deterministic Turing complete distributed computer which achieves consensus on smart contract executions by all machines executing the same bytecode. This EVM is often referred to as the “World Computer” due to its mass distributed peer to peer nature.
The EVM is a registerless 256 bit stack based virtual machine with a limited instruction or opcode list. Each execution step costs Gas, an internal price unit which cost is converted into Ether, the internal Ethereum currency. These costs are to prevent the halting problem — and to ensure EVM availability. Each of these opcodes consumes and/or produces words from the stack on each execution. Each execution step is recorded in the full blockchain facilitating analysis of this massive dataset, which has grown to over 200GB since Ethereum’s release in May 2015. This work, undertaken at Imperial College London’s Data Observatory, aims to examine information gained from visualisation of these EVM execution steps or “execution traces”.
EthCon Viewer provides a visual insight into the EVM’s execution. It provides methods of observing the high level code intention without having access to the high level code itself, a technique termed “visual decompilation”. This heightens understanding of both the EVM and the compiler used to create the bytecode.
EthCon Viewer provides several visual formats: graphViz, SigmaJS and graph-tools. Execution traces can be visualised on a per transaction, per contract or per block basis. The choice of visualisation format depends on the desired level of granularity; graphViz is best for an indepth analysis of singular transactions while large meta trends of data are better suited to graph-tool. EthCon Viewer allows insight into transactions that would otherwise be obfuscated by mass quantities of data.
Interesting trends can readily be picked out when working with this large Ethereum dataset thanks to the magnitude of space available on the Data Observatories’ large canvas. Additionally, the Data Observatory’s setup allows for significant social interaction which allows for further data investigation.
The tool also allows visualisation of transactions between smart contracts, termed “internal transactions”, facilitating heightened understanding of the EVM and how these come about.