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 费用、提升可信升级、实现自动优化, 并增强跨链兼容性. 在此
   53   54   55   56   57   58   59   60   61   62   63