Smart Contract Verification
Research Project, 2020
– 2023
Blockchain is an an open, distributed ledger that can record transactions between untrusted parties, in a permanent, checkable and cryptographically secured way, without relying on any central authority. The most famous application of blockchain is cryptocurrencies in general, and Bitcoin in particular. But the blockchain technology has a much wider, rapidly growing set of applications. One of them is smart contracts. A smart contract is a computer program intended to digitally facilitate and enforce the performance of a contract between all parties which choose to engage with it. The execution of smart contracts is performed in the blockchain network. The by far most popular smart contract platform is Ethereum, with the smart contract language Solidity. The goals of this project are to develop a specification language for Solidity, to develop a program logic and calculus for this logic, allowing reasoning about smart contract correctness, and to develop a proof system for Solidity smart contracts. Specific challenges of the targeted domain include the hostile environment assumption, which dictates a strictly compositional verification discipline, the necessity to reason about resource flow, rather than information only, and the inclusion of hyper-properties, like robustness against scheduling attacks.
Participants
Wolfgang Ahrendt (contact)
Chalmers, Computer Science and Engineering (Chalmers), Formal methods
Funding
Swedish Research Council (VR)
Project ID: Vetenskapsrådet
Funding Chalmers participation during 2020–2023