Abstract

Ethereum is one of the first blockchains executing smart contracts (financial applications directly executed on the ledger using a virtual machine). The performance of the Ethereum virtual machine has become a bottleneck caused by high volumes of transactions due to blockchain applications, including decentralized finance and non-fungible tokens. Hence, there is a need to detail the execution characteristics of the Ethereum virtual machine before its performance can be improved. This work introduces an off-line Ethereum virtual machine tracer called EVMTracer that produces runtime data dependence graphs from executed transactions as an alternative program representation. From the runtime dependence graphs, we can deduce valuable metrics about program execution characteristics, including the degree of parallelization and computational redundancies in smart contracts. Our experiments encompass all blocks up to 12M on the Ethereum mainnet. We found a geometric mean of 1.90× theoretical maximum speedup when executing the smart contracts in parallel and identified 34.97% of SLOAD instructions as redundant.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call