,
Daniele Gorla
,
Luca Aceto
Creative Commons Attribution 4.0 International license
This paper develops semantic typing in a smart-contract setting to ensure type safety of code that uses statically untypable language constructs, such as the fallback function. The idea is that the creator of a contract on the blockchain equips code containing such constructs with a formal proof of its type safety, given in terms of the semantics of types. Then, a user of the contract only needs to check the validity of the provided "proof certificate" of type safety. This is a form of proof-carrying code, which naturally fits with the immutable nature of the blockchain environment. As a concrete application of our approach, we focus on ensuring information flow control and non-interference for TinySol, a distilled version of the Solidity language, through security types. We provide the semantics of types in terms of a typed operational semantics of TinySol and we express the proofs of safety as coinductively-defined typing interpretations, which can be represented compactly via up-to techniques, similar to those used for bisimilarity. We also show how our machinery can be used to type the typical pointer-to-implementation pattern based on the fallback function and to reject a distilled version of the infamous Parity Multisig Wallet Attack.
@InProceedings{lybech_et_al:LIPIcs.ECOOP.2026.19,
author = {Lybech, Stian and Gorla, Daniele and Aceto, Luca},
title = {{Typing Fallback Functions: A Semantic Approach to Type Safe Smart Contracts}},
booktitle = {40th European Conference on Object-Oriented Programming (ECOOP 2026)},
pages = {19:1--19:29},
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
ISBN = {978-3-95977-423-9},
ISSN = {1868-8969},
year = {2026},
volume = {372},
editor = {Krebbers, Robbert and Silva, Alexandra},
publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
address = {Dagstuhl, Germany},
URL = {https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2026.19},
URN = {urn:nbn:de:0030-drops-261159},
doi = {10.4230/LIPIcs.ECOOP.2026.19},
annote = {Keywords: semantic typing, smart contracts, information flow control, non-interference}
}