Demystifying Loops in Smart Contracts

This paper aims to shed light on how loops are used in smart contracts. Towards this goal, we study various syntactic and semantic characteristics of loops used in over 20,000 Solidity contracts deployed on the Ethereum blockchain, with the goal of informing future research on program analysis for s...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE) s. 262 - 274
Hlavní autoři: Mariano, Benjamin, Chen, Yanju, Feng, Yu, Lahiri, Shuvendu K., Dillig, Isil
Médium: Konferenční příspěvek
Jazyk:angličtina
Vydáno: ACM 01.09.2020
Témata:
ISSN:2643-1572
On-line přístup:Získat plný text
Tagy: Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
Popis
Shrnutí:This paper aims to shed light on how loops are used in smart contracts. Towards this goal, we study various syntactic and semantic characteristics of loops used in over 20,000 Solidity contracts deployed on the Ethereum blockchain, with the goal of informing future research on program analysis for smart contracts. Based on our findings, we propose a small domain-specific language (DSL) that can be used to summarize common looping patterns in Solidity. To evaluate what percentage of smart contract loops can be expressed in our proposed DSL, we also design and implement a program synthesis toolchain called Solis that can synthesize loop summaries in our DSL. Our evaluation shows that at least 56% of the analyzed loops can be summarized in our DSL, and 81% of these summaries are exactly equivalent to the original loop.
ISSN:2643-1572
DOI:10.1145/3324884.3416626