July 5, 2019Ā· arXiv
preprint
Open access
Solidity 0.5: when typed does not mean type safe
Authors:Silvia CrafaMatteo Di Pirro
Abstract
The recent release of Solidity 0.5 introduced a new type to prevent Ether transfers to smart contracts that are not supposed to receive money. Unfortunately, the compiler fails in enforcing the guarantees this type intended to convey, hence the type soundness of Solidity 0.5 is no better than that of Solidity 0.4. In this paper we discuss a paradigmatic example showing that vulnerable Solidity patterns based on potentially unsafe callback expressions are still unchecked. We also point out a solution that strongly relies on formal methods to support a type-safer smart contracts programming discipline, while being retro-compatible with legacy Solidity code.
Community
0 commentsUse Connect Wallet in the navigation
No discussion yet
Be the first to share a question or observation.