PhD Abstracts

The 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 Turingcomplete 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).

Authors

Institutions

Publication Details

Journal
Journal of Functional Programming
Published
2025-01-01
DOI
https://doi.org/10.1017/s095679682510004x
Primary Topic
Blockchain Technology Applications and Security
Type
article
Field-Weighted Citation Impact
0.00
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

PhD Abstracts

Graham Hutton
Journal of Functional Programming
Blockchain Technology Applications and Security
article

PhD Abstracts

Graham Hutton
article en

Abstract

The 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 Turingcomplete 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).

Journal of Functional ProgrammingVol. 35
University of Nottingham (GB)
Openalex Percentile: Top 75%
Blockchain Technology Applications and Security
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.