Flint for safer smart contracts
File(s)Flint-for-Safer-Smart-Contracts.pdf (634.45 KB)
Working paper
OA Location
Author(s)
Schrans, Franklin
Hails, Daniel
Harkness, Alexander
Drossopoulou, Sophia
Eisenbach, Susan
Type
Working Paper
Abstract
The Ethereum blockchain platform supports the execution of decentralised
applications or smart contracts. These typically hold and transfer digital
currency to other parties on the platform; however, they have been subject to
numerous attacks due to the unintentional introduction of bugs. Over a billion
dollars worth of currency has been stolen since its release in July 2015. As
smart contracts cannot be updated after deployment, it is imperative that the
programming language supports the development of robust contracts.
We propose Flint, a new statically-typed programming language specifically
designed for writing robust smart contracts. Flint's features enforce the
writing of safe and predictable code. To encourage good practices, we introduce
protection blocks. Protection blocks restrict who can run code and when (using
typestate) it can be executed. To prevent vulnerabilities relating to the
unintentional loss of currency, Flint Asset traits provide safe atomic
operations, ensuring the state of contracts is always consistent. Writes to
state are restricted, simplifying reasoning about smart contracts.
applications or smart contracts. These typically hold and transfer digital
currency to other parties on the platform; however, they have been subject to
numerous attacks due to the unintentional introduction of bugs. Over a billion
dollars worth of currency has been stolen since its release in July 2015. As
smart contracts cannot be updated after deployment, it is imperative that the
programming language supports the development of robust contracts.
We propose Flint, a new statically-typed programming language specifically
designed for writing robust smart contracts. Flint's features enforce the
writing of safe and predictable code. To encourage good practices, we introduce
protection blocks. Protection blocks restrict who can run code and when (using
typestate) it can be executed. To prevent vulnerabilities relating to the
unintentional loss of currency, Flint Asset traits provide safe atomic
operations, ensuring the state of contracts is always consistent. Writes to
state are restricted, simplifying reasoning about smart contracts.
Date Issued
2019-04-13
Citation
2019
Publisher
arXiv
Copyright Statement
© 2019 The Authors.
Identifier
http://arxiv.org/abs/1904.06534v1
Subjects
cs.PL
cs.PL
cs.CR
Publication Status
Published