The OpBench Ethereum opcode benchmark framework: Design, implementation, validation and experiments
2020; Elsevier BV; Volume: 146; Linguagem: Inglês
10.1016/j.peva.2020.102168
ISSN1872-745X
AutoresAmjad Aldweesh, Maher Alharby, Maryam Mehrnezhad, Aad van Moorsel,
Tópico(s)Security and Verification in Computing
ResumoEthereum is a public, permissionless blockchain, with Ether as cryptocurrency, and with Turing-complete smart contracts to implement arbitrarily complex distributed applications. Correct operation of Ethereum relies on appropriately rewarding participating nodes (called miners) for the resources used to run the blockchain. In Ethereum the Used Gas determines the reward miners receive for executing a smart contract. If the Used Gas is proportional to the cost of executing a smart contract, irrespective of the platform used, then all miners are incentivized identically. In this paper we propose OpBench, a platform-independent benchmark framework for Ethereum, as a lightweight approach to determine if for operational code (opcodes) the rewarded Used Gas is proportional to the invested CPU time. We implement OpBench for PyEthApp (in Python), Go-Ethereum (in GoLang) and Parity (in Rust). From the experiments we conclude that Used Gas is not always proportional to the required CPU, with up to an order of magnitude difference between opcodes. We also conclude that for most opcodes Parity performs the best of the three clients and that preference for Linux or Windows depends on the chosen Ethereum client software.
Referência(s)