dc.contributor.author | Marmsoler, D | |
dc.contributor.author | Brucker, AD | |
dc.date.accessioned | 2024-11-18T13:23:16Z | |
dc.date.issued | 2024-10-15 | |
dc.date.updated | 2024-11-16T18:01:31Z | |
dc.description.abstract | Smart contracts are computer programs designed to automate legal agreements. They are usually developed in a high-level programming language, the most popular of which is Solidity. Every day, hundreds of thousands of new contracts are deployed managing millions of dollars’ worth of transactions. As for every computer program, smart contracts may contain bugs which can be exploited. However, since smart contracts are often used to automate financial transactions, such exploits may result in huge economic losses. In general, it is estimated that since 2019, more than $5B was stolen due to vulnerabilities in smart contracts. This paper addresses the issue of smart contract vulnerabilities by introducing an executable denotational semantics for Solidity within the Isabelle/HOL interactive theorem prover. This formal semantics serves as the basis for an interactive program verification environment for Solidity smart contracts. To evaluate our semantics, we integrate grammar-based fuzzing with symbolic execution to automatically test it against the Solidity reference implementation. The paper concludes by showcasing t | en_GB |
dc.description.sponsorship | Engineering and Physical Sciences Research Council (EPSRC) | en_GB |
dc.identifier.citation | Published online 15 October 2024 | en_GB |
dc.identifier.doi | 10.1145/3700601 | |
dc.identifier.grantnumber | EP/X027619/1 | en_GB |
dc.identifier.uri | http://hdl.handle.net/10871/138674 | |
dc.identifier | ORCID: 0000-0002-6355-1200 (Brucker, Achim D) | |
dc.language.iso | en | en_GB |
dc.publisher | Association for Computing Machinery (ACM) | en_GB |
dc.rights | © 2024 Copyright held by the owner/author(s). Open access. | |
dc.subject | Solidity | en_GB |
dc.subject | Denotational Semantics | en_GB |
dc.subject | Isabelle/HOL | en_GB |
dc.subject | Software and its engineering | en_GB |
dc.subject | Formal software verification | en_GB |
dc.subject | Theory of computation | en_GB |
dc.subject | Program semantics | en_GB |
dc.subject | Security and privacy | en_GB |
dc.subject | Logic and verification | en_GB |
dc.title | Isabelle/Solidity: A deep embedding of Solidity in Isabelle/HOL | en_GB |
dc.type | Article | en_GB |
dc.date.available | 2024-11-18T13:23:16Z | |
dc.identifier.issn | 0934-5043 | |
dc.description | This is the author accepted manuscript. The final version is available on open access from ACM via the DOI in this record | en_GB |
dc.identifier.journal | Formal Aspects of Computing | en_GB |
dc.rights.uri | http://www.rioxx.net/licenses/all-rights-reserved | en_GB |
dcterms.dateAccepted | 2024-09-24 | |
dcterms.dateSubmitted | 2023-12-18 | |
rioxxterms.version | AM | en_GB |
rioxxterms.licenseref.startdate | 2024-10-02 | |
rioxxterms.type | Journal Article/Review | en_GB |
refterms.dateFCD | 2024-11-16T18:01:33Z | |
refterms.versionFCD | AM | |
refterms.dateFOA | 2024-11-21T14:00:43Z | |
refterms.panel | B | en_GB |
exeter.rights-retention-statement | Opt out | |