Show simple item record

dc.contributor.authorMarmsoler, D
dc.contributor.authorBrucker, AD
dc.date.accessioned2022-08-25T13:40:54Z
dc.date.issued2022-07-18
dc.date.updated2022-08-25T11:16:26Z
dc.description.abstractSmart contracts are automatically executed programs, usually representing legal agreements such as financial transactions. Thus, bugs in smart contracts can lead to large financial losses. For example, an incorrectly initialized contract was the root cause of the Parity Wallet bug that saw $280M worth of Ether destroyed. Ether is the cryptocurrency of the Ethereum blockchain that uses Solidity for expressing smart contracts. We address this problem by formalizing an executable denotational semantics for Solidity in the interactive theorem prover Isabelle/HOL. This formal semantics builds the foundation of an interactive program verification environment for Solidity programs and allows for inspecting them by (symbolic) execution. We combine the latter with grammar based fuzzing to ensure that our formal semantics complies to the Solidity implementation on the Ethereum Blockchain. Finally, we demonstrate the formal verification of Solidity programs by two examples: constant folding and a simple verified token.en_GB
dc.identifier.citationPublished online 18 July 2022en_GB
dc.identifier.urihttp://hdl.handle.net/10871/130524
dc.language.isoenen_GB
dc.publisherAFPen_GB
dc.relation.urlhttps://www.isa-afp.org/entries/Solidity.htmlen_GB
dc.rights© 2004, Gerwin Klein, Tobias Nipkow, Lawrence C. Paulson. © 2022, contributing authors (see author notice in individual files) All rights reserved. All files in the Archive of Formal Proofs that are unmarked or marked with 'License: BSD' are released under the following license. Files marked with 'License: LGPL' are released under the terms detailed in LICENSE.LGPL Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the Archive of Formal Proofs nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGEen_GB
dc.titleIsabelle/Solidity: A deep Embedding of Solidity in Isabelle/HOLen_GB
dc.typeArticleen_GB
dc.date.available2022-08-25T13:40:54Z
dc.identifier.issn2150-914X
dc.descriptionThis is the final version. Available from AFP via the link in this recorden_GB
dc.identifier.journalArchive of Formal Proofsen_GB
dc.rights.urihttps://www.isa-afp.org/LICENSEen_GB
rioxxterms.versionVoRen_GB
rioxxterms.licenseref.startdate2022-07-18
rioxxterms.typeJournal Article/Reviewen_GB
refterms.dateFCD2022-08-25T13:39:05Z
refterms.versionFCDVoR
refterms.panelBen_GB


Files in this item

This item appears in the following Collection(s)

Show simple item record