Formal Simulation and Verification of Solidity contracts in Event-B - Archive ouverte HAL
Communication Dans Un Congrès Année : 2021

Formal Simulation and Verification of Solidity contracts in Event-B

Résumé

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.
Fichier non déposé

Dates et versions

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

Identifiants

Citer

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⟩
133 Consultations
0 Téléchargements

Altmetric

Partager

More