Litcius/Paper detail

SmartPulse: Automated Checking of Temporal Properties in Smart Contracts

Jon Stephens, Kostas Ferles, Benjamin Mariano, Shuvendu K. Lahiri, Işıl Dillig

202155 citationsDOI

Abstract

Smart contracts are programs that run on the blockchain and digitally enforce the execution of contracts between parties. Because bugs in smart contracts can have serious monetary consequences, ensuring the correctness of such software is of utmost importance. In this paper, we present a novel technique, and its implementation in a tool called SMARTPULSE, for automatically verifying temporal properties in smart contracts. SMARTPULSE is the first smart contract verification tool that is capable of checking liveness properties, which ensure that "something good" will eventually happen (e.g., "I will eventually receive my refund"). We experimentally evaluate SMARTPULSE on a broad class of smart contracts and properties and show that (a) SMARTPULSE allows automatically verifying important liveness properties, (b) it is competitive with or better than state-of-the-art tools for safety verification, and (c) it can automatically generate attacks for vulnerable contracts.

Topics & Concepts

LivenessCorrectnessComputer scienceDesign by contractModel checkingState (computer science)Formal verificationSmart contractComputer securitySoftwareSoftware engineeringEmbedded systemProgramming languageSoftware systemBlockchainSoftware constructionSecurity and Verification in ComputingAdvanced Malware Detection TechniquesBlockchain Technology Applications and Security
SmartPulse: Automated Checking of Temporal Properties in Smart Contracts | Litcius