Verification of Smart Contracts using the Interactive Theorem Prover Agda

dc.contributor.advisorSetzer, Anton
dc.contributor.authorAlhabardi, Fahad Faleh
dc.date.accessioned2024-07-29T12:11:09Z
dc.date.available2024-07-29T12:11:09Z
dc.date.issued2024-07-25
dc.description.abstractThe goal of this thesis is to verify smart contracts in Blockchain. In particular, we focus on smart contracts in Bitcoin and Solidity. In order to specify the correctness of smart contracts, we use weakest preconditions. For this, we develop a model of smart contracts in the interactive theorem prover and dependent type programming language Agda and prove the correctness of smart contracts in it. In the context of Bitcoin, our verification of Bitcoin scripts consists of non-conditional and conditional scripts. For Solidity, we refer to programs using object- oriented features of Solidity, such as calling of other contracts, full recursion, and the use of gas in order to guarantee termination while having a Turing-complete language. We have developed a simulator for Solidity-style smart contracts. As a main example, we executed a reentrancy attack in our model. We have verified smart contracts in Bitcoin and Solidity using weakest precondition in Agda. Furthermore, Agda, combined with the fact that it is a theorem prover and programming language, allows the writing of verified programs, where the verification takes place in the same language in which the program is written, avoiding the problem of translation from one language to another (with possible translation mistakes).
dc.format.extent929
dc.identifier.urihttps://hdl.handle.net/20.500.14154/72723
dc.language.isoen
dc.publisherSwansea University
dc.subjectAccess control
dc.subjectSecurity
dc.subjectVerification
dc.subjectBlockchain
dc.subjectBlockchain control flow
dc.subjectProvable correctness
dc.subjectWeakest precondition
dc.subjectPrecondition
dc.subjectPostcondition
dc.subjectSymbolic execution
dc.subjectAgda proof assistant
dc.subjectModel of Solidity-style
dc.subjectReentrancy attacks
dc.subjectOperational semantics
dc.subjectP2PKH
dc.subjectP2MS
dc.subjectSmart contracts
dc.subjectSolidity
dc.subjectInterface
dc.subjectSimulator
dc.subjectBitcoin script
dc.titleVerification of Smart Contracts using the Interactive Theorem Prover Agda
dc.typeThesis
sdl.degree.departmentComputer Science
sdl.degree.disciplineComputer Science
sdl.degree.grantorSwansea
sdl.degree.nameDoctor of Philosophy

Files

Copyright owned by the Saudi Digital Library (SDL) © 2024