A large-scale exploratory study on the proxy pattern in Ethereum

被引:0
|
作者
Ebrahimi, Amir M. [1 ]
Adams, Bram [2 ]
Oliva, Gustavo A. [1 ]
Hassan, Ahmed E. [1 ]
机构
[1] Queens Univ, Sch Comp, Software Anal & Intelligence Lab SAIL, 99 Univ Ave, Kingston, ON K7L 3N6, Canada
[2] Queens Univ, Sch Comp, Lab Maintenance Construct & Intelligence Software, 99 Univ Ave, Kingston, ON K7L 3N6, Canada
基金
加拿大自然科学与工程研究理事会;
关键词
Proxy pattern; Proxy; Maintenance; Smart contracts; Ethereum; Blockchain;
D O I
10.1007/s10664-024-10485-1
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The proxy pattern is a well-known design pattern with numerous use cases in several sectors of the software industry (e.g., network applications, microservices, and IoT). As such, the use of the proxy pattern is also a common approach in the development of complex decentralized applications (DApps) on the Ethereum blockchain. A contract that implements the proxy pattern (proxy contract) acts as a layer between the clients and the target contract, enabling greater flexibility (e.g., data validation checks) and upgradeability (e.g., online smart contract replacement with zero downtime) in DApp development. Despite the importance of proxy contracts, little is known about (i) how their prevalence changed over time, (ii) the ways in which developers integrate proxies in the design of DApps, and (iii) what proxy types are being most commonly leveraged by developers. In this paper, we present a large-scale exploratory study on the use of the proxy pattern in Ethereum. We analyze a dataset of all Ethereum smart contracts as of Sep. 2022 containing 50M smart contracts and 1.6B transactions, and apply both quantitative and qualitative methods in order to (i) determine the prevalence of proxy contracts, (ii) understand the ways they are deployed and integrated into applications, and (iii) uncover the prevalence of different types of proxy contracts. Our findings reveal that 14.2% of all deployed smart contracts are proxy contracts. We show that proxy contracts are being more actively used than non-proxy contracts. Also, the usage of proxy contracts in various contexts, transactions involving proxy contracts, and adoption of proxy contracts by users have shown an upward trend over time, peaking at the end of our study period. They are either deployed through off-chain scripts or on-chain factory contracts, with the former and latter being employed in 39.1% and 60.9% of identified usage contexts in turn. We found that while the majority (67.8%) of proxies act as an interceptor, 32.2% enables upgradeability. Proxy contracts are typically (79%) implemented based on known reference implementations with 29.4% being of type ERC-1167, a class of proxies that aims to cheaply reuse and clone contracts' functionality. Our evaluation shows that our proposed behavioral proxy detection method has a precision and recall of 100% in detecting active proxies. Finally, we derive a set of practical recommendations for developers and introduce open research questions to guide future research on the topic.
引用
收藏
页数:51
相关论文
共 50 条
  • [1] Self-Admitted Technical Debt in Ethereum Smart Contracts: A Large-Scale Exploratory Study
    Ebrahimi, Amir Mohammad
    Oliva, Gustavo A.
    Hassan, Ahmed E.
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2023, 49 (09) : 4304 - 4323
  • [2] Learning in the Large - An Exploratory Study of Retrospectives in Large-Scale Agile Development
    Dingsoyr, Torgeir
    Mikalsen, Marius
    Solem, Anniken
    Vestues, Kathrine
    [J]. AGILE PROCESSES IN SOFTWARE ENGINEERING AND EXTREME PROGRAMMING, XP 2018, 2018, 314 : 191 - 198
  • [3] A Large Scale Study of the Ethereum Arbitrage Ecosystem
    McLaughlin, Robert
    Kruegel, Christopher
    Vigna, Giovanni
    [J]. PROCEEDINGS OF THE 32ND USENIX SECURITY SYMPOSIUM, 2023, : 3295 - 3312
  • [4] THE QUALITY OF PROXY INFORMATION - SOME RESULTS FROM A LARGE-SCALE STUDY
    MARTIN, J
    BUTCHER, B
    [J]. STATISTICIAN, 1982, 31 (04): : 293 - 319
  • [5] Large-Scale Empirical Study of Inline Assembly on 7.6 Million Ethereum Smart Contracts
    Liao, Zhou
    Song, Shuwei
    Zhu, Hang
    Luo, Xiapu
    He, Zheyuan
    Jiang, Renkai
    Chen, Ting
    Chen, Jiachi
    Zhang, Tao
    Zhang, Xiaosong
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2023, 49 (02) : 777 - 801
  • [6] Agile Management in the Large: An Exploratory Case Study on Large-Scale Interdisciplinary Projects
    Hennel, Phil
    Dobmeier, Michael
    [J]. AMCIS 2020 PROCEEDINGS, 2020,
  • [7] From transformation to normalisation: An exploratory study of a large-scale agile transformation
    Carroll, Noel
    Conboy, Kieran
    Wang, Xiaofeng
    [J]. JOURNAL OF INFORMATION TECHNOLOGY, 2023, 38 (03) : 267 - 303
  • [8] Portrait of decentralized application users: an overview based on large-scale Ethereum data
    Min, Tian
    Cai, Wei
    [J]. CCF TRANSACTIONS ON PERVASIVE COMPUTING AND INTERACTION, 2022, 4 (02) : 124 - 141
  • [9] Exploratory Research on Determinants of Place of Death in a Large-scale Cohort Study: The JPHC Study
    Fujiwara, Noriko
    Shimada, Naoki
    Nojima, Masanori
    Ariyoshi, Keisuke
    Sawada, Norie
    Iwasaki, Motoki
    Tsugane, Shoichiro
    [J]. JOURNAL OF EPIDEMIOLOGY, 2023, 33 (03) : 120 - 126
  • [10] Portrait of decentralized application users: an overview based on large-scale Ethereum data
    Tian Min
    Wei Cai
    [J]. CCF Transactions on Pervasive Computing and Interaction, 2022, 4 : 124 - 141