A smart contract that is deployed to a blockchain system like Ethereum is, under reasonable circumstances, expected to be immutable and tamper-proof. This is both a feature (promoting integrity and transparency) and a bug (preventing security patches and feature updates). Modern smart contracts use software tricks to enable upgradeability, raising the research questions of how upgradeability is achieved and who is authorized to make changes. In this paper, we summarize and evaluate six upgradeability patterns. We develop a measurement framework for finding how many upgradeable contracts are on Ethereum that use certain prominent upgrade patters. We find 1.4 million proxy contracts which 8,225 of them are unique upgradeable proxy contracts. We also measure how they implement access control over their upgradeability: about 50% are controlled by a single Externally Owned Address (EOA), and about 14% are controlled by multi-signature wallets in which a limited number of persons can change the whole logic of the contract.
翻译:在合理的情况下,向Etherom这样的链条系统部署的智能合同预期是不可改变的,而且防作弊。这是一个特征(促进完整性和透明度)和一个错误(防止安全补丁和特征更新 ) 。现代智能合同使用软件把戏来进行升级,提出了如何实现升级和授权谁进行变革的研究问题。在本文中,我们总结和评价了六个升级模式。我们开发了一个测量框架,以找到Eeherum上有多少可升级的合同,而Ethereum上有多少合同使用某些突出的升级版。我们发现140万份代理合同,其中8 225份是独特的升级代理合同。我们还测量了它们如何对升级能力实施访问控制:大约50%由单一的外部拥有地址(EOA)控制,大约14%由多签名的钱包控制,其中人数有限的人可以改变合同的整个逻辑。