Demystifying Loops in Smart Contracts
- Ben Mariano ,
- Yanju Chen ,
- Yu Feng ,
- Shuvendu Lahiri ,
- Isil Dillig
35th IEEE/ACM International Conference on Automated Software Engineering (ASE'20) |
Published by IEEE/ACM | Organized by IEEE/ACM
Research
35th IEEE/ACM International Conference on Automated Software Engineering (ASE'20) |
Published by IEEE/ACM | Organized by IEEE/ACM
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.
한국마이크로소프트(유)
대표이사: 조원우
주소: (우)110-150 서울 종로구 종로1길 50 더 케이트윈타워 A동 12층
전화번호: 02-531-4500, 메일: ms-korea@microsoft.com
사업자등록번호: 120-81-05948 사업자정보확인
호스팅서비스 제공자: Microsoft Corporation
통신판매신고: 제2013-서울종로-1009호
사이버몰의 이용약관: Microsoft Store 판매 약관