SolType: Refinement Types for Arithmetic Overflow in Solidity
Bryan Tan, Benjamin Mariano, Shuvendu K. Lahiri, Isil Dillig, Yu Feng

TL;DR
SolType is a refinement type system for Solidity that automatically verifies arithmetic safety in smart contracts, reducing runtime checks and false positives compared to existing tools.
Contribution
This paper introduces SolType, a novel refinement type system with an inference engine for Solidity, enhancing arithmetic overflow prevention in smart contracts.
Findings
Successfully proved arithmetic safety for 120 contracts.
Reduced runtime overflow checks by 86.3% using type inference.
Lower false positive rate and faster verification compared to VeriSmart.
Abstract
As smart contracts gain adoption in financial transactions, it becomes increasingly important to ensure that they are free of bugs and security vulnerabilities. Of particular relevance in this context are arithmetic overflow bugs, as integers are often used to represent financial assets like account balances. Motivated by this observation, this paper presents SolType, a refinement type system for Solidity that can be used to prevent arithmetic over- and under-flows in smart contracts. SolType allows developers to add refinement type annotations and uses them to prove that arithmetic operations do not lead to over- and under-flows. SolType incorporates a rich vocabulary of refinement terms that allow expressing relationships between integer values and aggregate properties of complex data structures. Furthermore, our implementation, called Solid, incorporates a type inference engine and…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
