A Concurrent Perspective on Smart Contracts
@inproceedings{Sergey2017ACP, title={A Concurrent Perspective on Smart Contracts}, author={Ilya Sergey and Aquinas Hobor}, booktitle={Financial Cryptography Workshops}, year={2017} }
In this paper, we explore remarkable similarities between multi-transactional behaviors of smart contracts in cryptocurrencies such as Ethereum and classical problems of shared-memory concurrency. We examine two real-world examples from the Ethereum blockchain and analyzing how they are vulnerable to bugs that are closely reminiscent to those that often occur in traditional concurrent programs. We then elaborate on the relation between observable contract behaviors and well-studied concurrency…
94 Citations
Finding Concurrency Exploits on Smart Contracts
- Computer Science2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)
- 2019
This work highlighted a general miner-side type of exploit, called concurrency exploit, which attacks smart contracts via generating malicious transaction sequences, and designed a systematic algorithm to automatically detect such exploits.
Temporal Properties of Smart Contracts
- Computer ScienceISoLA
- 2018
Preliminary results of mechanically verifying some of such properties of smart contracts by embedding a smart contract language into the Coq proof assistant are reported on.
Towards Automatic Inference of Gas Bounds for Smart Contracts on the Ethereum Blockchain
- Computer Science
- 2018
An application of SACO—a resource Static Analyzer for Concurrent Objects—to infer gas bounds on Ethereum smart contracts written in Solidity, and how the translation of smart contracts from Solidity into concurrent objects allows one to automatically derive parametric gas bounds.
Exploiting the laws of order in smart contracts
- Computer ScienceISSTA
- 2019
EthRacer, an automatic analysis tool that runs directly on Ethereum bytecode and requires no hints from users, is built, providing compact event traces (witnesses) that human analysts can examine in only a few minutes per contract.
Towards a Formally Verified EVM in Production Environment
- Computer ScienceCOORDINATION
- 2020
The behavior of EVM is defined in Why3, a platform for deductive program verification, which facilitates the verification of different properties and serves as a powerful analysis basis for EVM and smart contracts.
Formal Verification of Smart Contracts from the Perspective of Concurrency
- Computer ScienceSmartBlock
- 2018
The results show the potential advantage of using CSP and FDR tool to check the vulnerability in smart contracts especially from the perspective of concurrency, and adopt the CSP theory to formally model concurrent programs.
Concurrency Protocol Aiming at High Performance of Execution and Replay for Smart Contracts
- Computer ScienceArXiv
- 2019
A novel efficient concurrency control scheme which is the first one to do optimization in both phases and outperforms state-of-art solutions significantly.
Verifying Smart Contracts with Cubicle
- Computer ScienceFM Workshops
- 2019
The approach is a two-layer framework where the first part consists of a blockchain transactional model, while the second layer is a model of the smart contract itself, and lays the foundations for a complete and automatized framework for the design and certification of smart contracts.
OV: Validity-based Optimistic Smart Contracts
- Computer ScienceArXiv
- 2020
A novel programming language, so-called OV, and a Solidity API are introduced to ease programing of optimistic smart contracts and help reasoning about a crucial property of optimistically executed smart contracts -- the validity of object states in trustless systems.
SoK: Development of Secure Smart Contracts - Lessons from a Graduate Course
- Computer ScienceFinancial Cryptography Workshops
- 2019
This work focuses on smart contracts, which are programs on top of blockchains and cryptocurrencies that allow parties to exchange valuable assets without mutual trust, with smart contracts controlling the interaction between the parties.
References
SHOWING 1-10 OF 45 REFERENCES
Making Smart Contracts Smarter
- Computer ScienceIACR Cryptol. ePrint Arch.
- 2016
This paper investigates the security of running smart contracts based on Ethereum in an open distributed network like those of cryptocurrencies, and proposes ways to enhance the operational semantics of Ethereum to make contracts less vulnerable.
Safer smart contracts through type-driven development
- Computer Science
- 2016
It is shown how dependent and polymorphic types can make smart contract development safer by using the functional language Idris to describe smart contracts on the Ethereum platform and extended the Idris compiler with a backend for the Ethereum Virtual Machine.
Formal Verification of Smart Contracts: Short Paper
- Computer SciencePLAS@CCS
- 2016
This paper outlines a framework to analyze and verify both the runtime safety and the functional correctness of Ethereum contracts by translation to F*, a functional programming language aimed at program verification.
ETHEREUM: A SECURE DECENTRALISED GENERALISED TRANSACTION LEDGER
- Computer Science
- 2014
The blockchain paradigm when coupled with cryptographically-secured transactions has demonstrated its utility through a number of projects, with Bitcoin being one of the most notable ones, and Ethereum implements this paradigm in a generalised manner.
Permission accounting in separation logic
- Computer SciencePOPL '05
- 2005
A lightweight logical approach to race-free sharing of heap storage between concurrent threads is described, based on the notion of permission to access, which mirrors the programming technique called permission counting.
Modular Reasoning about Separation of Concurrent Data Structures
- Computer ScienceESOP
- 2013
A new logic and a new style of specification for thread-safe concurrent data structures that allow clients to refine usage protocols and associate ownership of additional resources with instances of these data structures.
Mechanized verification of fine-grained concurrent programs
- Computer SciencePLDI 2015
- 2015
This paper presents the first completely formalized framework for mechanized verification of full functional correctness of fine-grained concurrent programs, based on the recently proposed program logic FCSL.
A program logic for concurrent objects under fair scheduling
- Computer SciencePOPL 2016
- 2016
The rely-guarantee style logic unifies thread-modular reasoning about both starvation-freedom and deadlock-freedom in one framework and establishes progress-aware abstraction for concurrent objects, which can be applied when verifying safety and liveness of client code.
Unifying refinement and hoare-style reasoning in a logic for higher-order concurrency
- Computer ScienceICFP 2013
- 2013
CaReSL is presented, the first logic to support the use of granularity abstraction for modular verification of higher-order concurrent programs, and its effectiveness is demonstrated by using it to tackle a significant case study: the first formal proof of (partial) correctness for Hendler et al.'s "flat combining" algorithm.
Linearizability: a correctness condition for concurrent objects
- Computer ScienceTOPL
- 1990
This paper defines linearizability, compares it to other correctness conditions, presents and demonstrates a method for proving the correctness of implementations, and shows how to reason about concurrent objects, given they are linearizable.