Formal Methods for the Verification of Smart Contracts: A Review
Moez Krichen, Mariam Lahami, Qasem Abu Al‐Haija
Abstract
Smart contracts are digital contracts that rely on Blockchain technology to make their terms and execution conditions unforgeable. The purpose of a smart contract is to eliminate the need for a middleman in business and trade between anonymous and identified participants. Since 2016, smart contracts have been gaining traction in various areas, including public management, supply chain, energy, finance, communication, and healthcare. Anyone who interacts with a smart contract after it is launched on the blockchain system will be in danger if it contains vulnerabilities or faults. Therefore, the use of formal methods which are mathematical techniques for modeling, designing, and testing software and hardware systems to ensure they are constructed correctly, is highly required. In this paper, the applied state-of-the-art formal methods on smart contracts specification and verification have been reviewed with the aim of minimizing the risk of faults and bugs occurrence and avoiding possible resulting costs. Also, we have discussed several challenges and future research guidelines related to this emerging research tonic.