SEMay 4, 2020

Formal Verification of Solidity contracts in Event-B

arXiv:2005.01261v25 citations
Originality Synthesis-oriented
AI Analysis

This addresses security and certification needs for blockchain developers, but it is incremental as it builds on existing formal verification techniques.

The paper tackles the problem of ensuring safety and security in Solidity smart contracts by proposing a method to translate them into Event-B models for formal verification, enabling property verification using the Rodin platform.

Smart contracts are the artifact of the blockchain that provide 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 the Ethereum. However, Solidity contracts need to adhere 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 which translates Solidity contracts to Event-B models. Then we take advantage of Event-B method capabilities to refine models at different levels of abstraction to verify Solidity contracts' properties. And we can verify the generated proof obligations of the Event-B model with the help of the Rodin platform.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes