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 block chain, 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.
Tue 22 Sep Times are displayed in time zone: (UTC) Coordinated Universal Time
16:00 - 17:00: Synthesis and RepairResearch Papers at Kangaroo Chair(s): Shahar MaozTel Aviv University, Israel | |||
16:00 - 16:20 Talk | Synthesis of Infinite-State Systems with Random Behavior Research Papers Andreas KatisUniversity of Minnesota, Grigory FedyukovichFlorida State University, Jeffrey ChenUniversity of Minnesota, David GreveCollins Aerospace, Sanjai RayadurgamUniversity of Minnesota, Michael W. WhalenUniversity of Minnesota | ||
16:20 - 16:40 Talk | Demystifying Loops in Smart Contracts Research Papers Benjamin MarianoUniversity of Texas at Austin, Yanju ChenUniversity of California, Santa Barbara, Yu FengUniversity of California, Santa Barbara, Shuvendu K. LahiriMicrosoft Research, Isil DilligUniversity of Texas at Austin, USA | ||
16:40 - 17:00 Talk | Patching as Translation: The Data and the Metaphor Research Papers Yangruibo DingColumbia University, Baishakhi RayColumbia University, USA, Prem DevanbuUniversity of California, Vincent HellendoornCarnegie Mellon University DOI Pre-print |