Formal Simulation and Verification of Solidity contracts in Event-B - Archive ouverte HAL Access content directly
Conference Papers Year :

Formal Simulation and Verification of Solidity contracts in Event-B


Smart contracts are the artifact of the blockchain that provides immutable and verifiable specifications of physical transactions. Solidity is a domain-specific programming language with the purpose of defining smart contracts. It aims at reducing the transaction costs occasioned by the execution of contracts on the distributed ledgers such as Ethereum. However, Solidity contracts need to adhere to safety and security requirements that require formal verification and certification. This paper proposes a method to meet such requirements by translating Solidity contracts to Event-B models, supporting certification. To that purpose, we define a restrained Solidity subset and a transfer function that translates Solidity contracts to Event-B models. Besides, we have implemented a translator to improve the conversion efficiency. As a case study, we take advantage of Event-B method capabilities to simulate models at different levels of abstraction and to express the properties of a typical smart contract: Honeypot contract. Lastly, we verify the generated proof obligations of the Event-B model with the help of the Rodin platform.
No file

Dates and versions

hal-03411229 , version 1 (02-11-2021)



Jian Zhu, Kai Hu, Jean-Paul Bodeveix, M Filali, Jean-Pierre Talpin, et al.. Formal Simulation and Verification of Solidity contracts in Event-B. 45th IEEE Annual Computers, Software, and Applications Conference (COMPSAC 2021), IEEE, Jul 2021, Madrid, Spain. pp.1309-1314, ⟨10.1109/COMPSAC51774.2021.00183⟩. ⟨hal-03411229⟩
87 View
0 Download



Gmail Facebook Twitter LinkedIn More