Artigo Revisado por pares

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

ISSN

1872-745X

Autores

Amjad Aldweesh, Maher Alharby, Maryam Mehrnezhad, Aad van Moorsel,

Tópico(s)

Security and Verification in Computing

Resumo

Ethereum 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)
Altmetric
PlumX