Online Detection of Effectively Callback Free Objects with Applications to Smart Contracts
Not on the map. Why?
Abstract (arXiv)
Callbacks are essential in many programming environments, but drastically complicate program understanding and reasoning because they allow to mutate object's local states by external objects in unexpected fashions, thus breaking modularity. The famous DAO bug in the cryptocurrency framework Ethereum, employed callbacks to steal 150M. We define the notion of Effectively Callback Free (ECF) objects in order to allow callbacks without preventing modular reasoning. An object is ECF in a given execution trace if there exists an equivalent execution trace without callbacks to this object. An object is ECF if it is ECF in every possible execution trace. We study the decidability of dynamically checking ECF in a given execution trace and statically checking if an object is ECF. We also show that dynamically checking ECF in Ethereum is feasible and can be done online. By running the history of all execution traces in Ethereum, we were able to verify that virtually all existing contracts, excluding the DAO or contracts with similar known vulnerabilities, are ECF. Finally, we show that ECF, whether it is verified dynamically or statically, enables modular reasoning about objects with encapsulated state.
Key facts. Cited by 9 papers in the map (data through 14 Oct 2026). First posted on arXiv 12 Jan 2018.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2021: 4; 2022: 4; 2023: 1.
9 papers.
- 2021SINGA-Easy: An Easy-to-Use Framework for MultiModal Analysiscited by 0
- 2021VisualTextRank: Unsupervised Graph-based Content Extraction for Automating Ad Text to Image Searchcited by 0
- 2021HELMHOLTZ: A Verifier for Tezos Smart Contracts Based on Refinement Typescited by 0
- 2021Text is NOT Enough: Integrating Visual Impressions into Open-domain Dialogue Generationcited by 0
- 2022Discovering Personalized Semantics for Soft Attributes in Recommender Systems using Concept Activation Vectorscited by 0
- 2022Reinforced MOOCs Concept Recommendation in Heterogeneous Information Networkscited by 0
- 2022Explanation-Guided Fairness Testing through Genetic Algorithmcited by 0
- 2022Using Graph Neural Networks for Program Terminationcited by 0
- 2023Tribe or Not? Critical Inspection of Group Differences Using TribalGramcited by 0
- 2023Tribe or Not? Critical Inspection of Group Differences Using TribalGram16 Mar 2023
- 2022Using Graph Neural Networks for Program Termination28 Jul 2022
- 2022Explanation-Guided Fairness Testing through Genetic Algorithm16 May 2022
- 2022Reinforced MOOCs Concept Recommendation in Heterogeneous Information Networks8 Mar 2022
- 2022Discovering Personalized Semantics for Soft Attributes in Recommender Systems using Concept Activation Vectors6 Feb 2022
- 2021Text is NOT Enough: Integrating Visual Impressions into Open-domain Dialogue Generation13 Sep 2021
- 2021HELMHOLTZ: A Verifier for Tezos Smart Contracts Based on Refinement Types30 Aug 2021
- 2021VisualTextRank: Unsupervised Graph-based Content Extraction for Automating Ad Text to Image Search5 Aug 2021
- 2021SINGA-Easy: An Easy-to-Use Framework for MultiModal Analysis3 Aug 2021