Page 58 - 《软件学报》2026年第1期
P. 58
郭涛 等: 智能合约可升级技术综述 55
来越多的智能合约集成升级功能, 攻击者针对这些合约攻击的可能性也成倍增加 [47] . Destefanis 等人 [120] 通过对平
价钱包这一研究案例的深入分析, 强调建立专门的区块链软件工程学科的必要性. 智能合约依赖于非标准的软件
生命周期, 然而根据常规生命周期, 交付的应用程序很难通过发布新版本的软件来更新或解决错误. Wöhrer 等人 [121]
认为在智能合约应用 DevOps 中, 需要一种更加灵活的结构化方法和指导方针, 以便将新版本完全自动化地部署
到生产环境中. Klinger 等人 [66] 考虑到不断发展的业务需求或不断变化的业务合作伙伴, 引入流程版本控制概念,
设置民主化的投票机制, 以确保智能合约的可信升级. Marchesi 等人 [122] 提出一种名为 ABCDE 的敏捷区块链
DApp 工程框架, 该框架详尽地描述设计、开发、测试和集成智能合约及链外软件所必需的关键活动. 该方法使
用形式化图表来记录智能合约, 旨在辅助开发、安全评估和维护工作. 它具有通用性, 并通过适当的调整, 可以适
用于任何区块链软件项目. Taherdoost [123] 探讨数据科学智能合约的潜在发展方向, 提出一种可扩展的方法论, 以支
持数据科学领域中可信的数据共享、去中心化的信任建立、数据完整性维护和访问控制. 表 6 为基于可升级智能
合约的升级规范小结.
表 6 基于可升级智能合约的升级规范小结
类型 名称 发表年份 主要内容
Qasse等人 [18] 2023 讨论以太坊区块链平台上智能合约的可升级性研究
认为合约注册和数据合约是两种旨在提高智能合约升级能力的模式. 嵌入许
Xu等人 [102] 2018
可和工厂合约两种模式旨在提高智能合约的安全性
可升级性问题 Salehi等人 [46] 2022 总结3类安全控制问题
Chen [104] 2020 比较以太坊智能合约的历史版本来识别安全问题
Abuhashim等人 [105] 2022 分类编写方面相似的智能合约发现初始重用合约存在漏洞问题
Chen等人 [107] 2020 投票方法应用于可升级合约, 来减少使用自毁函数的信任和安全问题
Casolari等人 [109] 2023 讨论《欧盟数据法》提案中智能合约的法律形式
Antonino等人 [108,111] 2022/2024 提出一种新的“规范即法律”智能合约安全部署与演化方法
Dickerson等人 [112] 2018 提出携带证明的智能合约
形式化升级规范 Kondo等人 [114] 2020 发现超过79.2%的智能合约包含代码克隆, 提出代码的可重用性维护
Ringer等人 [115] 2021 对比新旧合约之间的代码相似性, 代码重用完成修复证明
Sorensen等人 [116,117] 2022/2024 提出合约演化概念, 推理升级智能合约的结构和行为
Galimullin等人 [118] 2022 引入的智能合约的前后时间关系用于规范和验证智能合约升级
Porru等人 [119] 2017 提出面向区块链的软件工程
Destefanis等人 [120] 2018 通过案例分析, 提出区块链软件工程学科
Wöhrer等人 [121] 2021 在智能合约应用DevOps需要一种结构化的方法和相应的指导方针
结构化开发流程 [66]
Klinger等人 2020 引入流程版本控制概念, 设置民主化投票机制进行智能合约的可信升级
Marchesi等人 [122] 2020 提出一种ABCDE——敏捷区块链DApp工程框架
Taherdoost [123] 2023 提出数据科学智能合约潜在发展作为一种可扩展的方法
5 总结与展望
在可编程区块链的框架下, 引入可升级智能合约极大的提升区块链的灵活性. 随着业务需求与技术的不断演
进, 开发者能够借助可升级智能合约轻松添加或更新功能, 而无需重新部署整个合约. 这一特性不仅简化合约的维
护流程, 也显著降低部署的成本与复杂度. 然而, 当前基于代理模式的可升级智能合约的具体特性尚不为公众所熟
知. 本文从可升级智能合约、应用需求、升级框架与安全监督这 4 个角度进行总结, 涵盖可升级智能合约的设计、
实现、测试、部署及运维多个阶段, 总结当前可升级智能合约的研究进展, 最后通过本文的总结与展望, 以期为区
块链可升级智能合约应用未来发展提供参考.
随着区块链技术的不断进步与应用的深入拓展, 智能合约可升级技术的持续改进与优化, 以满足高效、安全、
去中心化的需求. 当前研究的核心目标是优化 Gas 费用、提升可信升级、实现自动优化, 并增强跨链兼容性. 在此

