Page 38 - 《软件学报》2026年第1期
P. 38

郭涛 等: 智能合约可升级技术综述                                                                 35


                                                                    [1]
                    智能合约的发展与区块链技术的演进密切相关. 1994               年, Szabo  首次提出智能合约的概念: “智能合约是一种
                                                         [2]
                 执行合约条款的计算机化交易协议.” 1996           年, Grigg 提出李嘉图合约, 更明确地定义由计算机编写的智能合约的
                                         [3]
                 意图和用途. 2008   年, Nakamoto 提出比特币的设计构想, 标志着区块链            1.0  时代的开始, 使得智能合约有望在安
                                                        [4]
                 全且去中心化的环境中有效部署. 2013           年, Buterin 提出一个用户可自由创造实例的区块链——以太坊, 该项目
                 在  2015  年上线, 是第  1  个支持可编程的智能合约平台. 以太坊虚拟机实现代表区块链                  2.0  时代, 推动去中心化应
                 用的发展. 智能合约作为去中心化应用的基础模块, 与传统程序相比, 具有显著的去中心化特性                             [5] : 能够在区块链
                 上自动执行合约条款, 不依赖任何中介机构或第三方服务, 执行过程和结果对所有人公开透明, 其代码和交易记录
                 在区块链上任何人都可以审查. 有效防止数据篡改和欺诈行为, 确保合约内容和执行过程的完整性与可信度                                  [6] .
                                                       [7]
                                                                      [9]
                                                              [8]
                    2016–2018  年间, 多个开源区块链平台如       EOS 、NEO 、Fabric 、Libra  [10] 、Zilliqa [11] 的陆续诞生, 标志着区
                 块链技术进入     3.0  时代  [12] . 区块链  3.0  时代强调可扩展性、隐私性和效率, 以支持更复杂的交易协议和多样化的
                 并行应用. 在金融领域, Hyperledger Fabric、Corda 和  Tron  等平台以支持企业级智能合约自主开发            [13] , 用作市场预
                 测. 在政府部门中也可用于自治管理           [14] , 如电子政务  eGov-DAO、数字版权管理、智能交通等应用. 可升级智能合
                 约是未来智能合约发展的新趋势, 它使得合约在部署后仍具备动态升级的能力, 从而提高其可维护性和适应性.
                                      [15]       [16]
                 2022  年, Compound Finance  和  Open Sea  项目中, 通过可升级智能合约技术实现功能的灵活升级.
                    尽管智能合约具有诸多好处, 但为修复漏洞和进行潜在的功能改进, 升级合约代码仍然是必要的                                [17] . 由于上
                 市时间的压力、发布的紧迫性、开发工具的不成熟                  [18] 、高质量的培训资源的缺乏, 以及以太坊路线图的不明确
                 和生态系统的快速发展, 合约开发者难免会在智能合约中引入一定程度的技术债务                           [19] , 例如代码中的漏洞、临时
                 性解决方法和非最优实现. 此外, 区块链的严格不变性也会造成智能合约功能的固化                           [20] , 这意味着后续业务功能
                 扩展面临挑战. 在过去的几年里, 已经发生几起备受瞩目的智能合约攻击事件. 以                        2016  年  DAO  黑客攻击为例. 攻
                 击者利用重入漏洞窃取价值超过            5 000  万美元的以太币   [21] . 此类安全事件的主要攻击目标通常是持有大量以太币
                 的智能合约, 考虑到人为失误、技术改进和新发现的漏洞, 这些智能合约一直存在升级的需求.
                    对于以太坊开发人员来说, 智能合约升级并不是一个全新的概念. 升级既可以允许在不改变合约地址的情况
                 下迅速修复安全漏洞, 防止潜在攻击和资金损失, 也可以通过逐步添加新功能实现系统持续迭代. 最早关于合约升
                 级的讨论可以追溯到       2016  年  Johnson [22] 在  GitHub  上的提案, 自此合约升级便成为以太坊发展历程中的重要话题:
                 2017  年开始探索代理合约模式以解决智能合约的不可变性问题                  [23] . 2018  年, OpenZeppelin  推出代理合约库, 为可
                 升级智能合约提供标准化工具          [24] . 2019  年, EIP-1822  提案进一步标准化代理合约机制   [25] . 2020–2022  年  [26] , 随着以
                 太坊  2.0 和  Layer2 网络扩展方案的推广    [27] , 可升级智能合约的性能和灵活性得到显著提升. 2023 年, OpenZeppelin
                 发布  OpenZeppelin Contracts 5.0 [28] , 添加对 Foundry 的升级支持, 并集成了 Defender 2.0, 发布了升级插件和合约指
                 南的更新, 使得可升级智能合约的开发和管理更加便捷和安全. 2024                   年, 基于可信执行环境的完全可编辑智能合
                 约升级平台得到关注        [29] . 目前, 智能合约可升级方法主要在非学术的技术博客中讨论                [30−39] . 例如, 以太坊  Stack
                 Exchange 中包含近  10  万个有关于以太坊智能合约可升级性的讨论帖子, 其中很多开发者都有升级合约的需求.
                 主要原因可以归纳为: 功能扩展、性能优化和漏洞修复                 [40] 等.
                    基于区块链的可升级智能合约技术在商业化创新驱动下取得较大进展, 但学术研究方面相对滞后, 截至                                2024 年
                 7  月, 以知网为中文数据源, Web of Science、IEEE Xplore、DBLP、Google Scholar 等英文数据源, 如表      1  检索主
                 题包含“可升级智能合约/Upgradable Smart Contracts”相关的学术论文仅有中文           2  篇和英文  40  篇. 其中体现应用升
                 级需求类相关的论文占比最高, 达到           44% (26/59), 其中  16  篇论文发表在高水平学术期刊; 其次是智能合约升级规
                 范相关的论文占比       37% (22/59), 其中  13  篇论文发表在高水平学术期刊; 介绍相关可升级智能合约的论文较少, 占
                 比  19% (11/59), 但  6  篇论文发表在高水平学术期刊.
                    根据统计, 目前关于可升级智能合约的现实需求主要集中在以下                     3  个方面.
                    1) 介绍类说明: 大多为综述类介绍智能合约的升级方式, 主要工作涉及代理模式的大规模探索性研究                              [41] .
                    2) 需求类分析: 分析可升级合约时调用优化、部署或后期的维护问题, 主要工作围绕需求分析和框架应用展开.
                    3) 规范类讨论: 关注智能合约升级的安全性和规范性问题, 提出合约升级的安全开发流程.
   33   34   35   36   37   38   39   40   41   42   43