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

46                                                         软件学报  2026  年第  37  卷第  1  期


                    然而信标模式中容易产生单点故障和中心化风险. Beacon                合约作为所有代理合约的核心, 如果           beacon  合约的
                 逻辑或存储出现问题, 所有依赖它的代理合约都会受到影响. 例如实现合约地址更新到错误地址                              (例如未初始化或
                 不存在的合约) 或指向一个恶意或存在漏洞的实现合约. Beacon                 合约的控制权通常集中于少数管理员. 如果这些
                 管理员的权限被恶意行为者获取           (如私钥泄露), 攻击者可以更改实现地址, 影响所有代理合约的安全性.
                  2   升级需求

                    对于区块链系统而言, 修复漏洞最直接的方法是修补源代码, 因此智能合约代码的升级被称为“软分叉”. 然而,
                 合约源代码并不总是可供参考: 目前部署在以太坊上的                  4 900  万智能合约中, 只有   0.3%  的源代码公开可用. 此外,
                 由于合约可能调用其他合约的函数, 闭源合约中存在的安全漏洞, 也可能影响到它依赖开源合约. 因此, 本节从合
                 约优化、合约部署、合约维护          [59] 这  3  个方面分析当前的相关工作.
                  2.1   合约优化
                    目前关于可升级智能合约的应用研究仍较为薄弱                  [60,61] , 特别是在部署和执行升级操作的      Gas 成本方面. 已部
                 署合约中超过     90%  的包含死代码或不透明的代码, 并且超过            70%  的合约使用    Gas 消耗较大的循环语句       [62] , 意味
                 着代码优化不足的问题几乎困扰着所有的智能合约                  [63] .
                    Marin [17] 基于  DApp  架构系统化分析可升级智能合约的设计模式, 通常需要考虑合约的结构大小、升级的频
                 率以及调用的复杂性. Marchesi 等人      [64] 分类出  24  种设计模式, 并提供一套优化方案帮助在以太坊上开发可升级智
                 能合约时节省     Gas. Chen  等人  [65] 总结  10  种  Gas 效率低下的编程模式, 并提出一种基于符号执行的方法, 用于检测
                 智能合约字节码中的这些问题. Hu          等人  [66] 分析当前最新的智能合约构建和执行方案, 从合约构建的设计范式、工
                 具、扩展方案中发现: 不完整的范式、效率低下的分析工具、复杂性有限的合约以及权限隐私性缺失是阻碍智能
                 合约应用的主要挑战.
                  2.2   合约部署
                    一旦合约部署或升级, 存储在上一版本合约中的所有数据都会被清除                        [4] , 这与当前通过代理合约解决漏洞、
                 增加功能的思路并不相符. Kim        等人  [67] 提出一个允许加密资产恢复的智能合约, 通过设置截止日期使资产可退回,
                 用于确保区块链加密资产意外丢失或烧毁时能够恢复.
                    Dai 等人  [68] 讨论物联网产业升级的相关挑战, 针对工业中固件升级功能应如何在整个工业网络中部署. Dorri
                 等人  [69] 提出一个基于区块链的互联智能汽车框架, 提供及时的个性化服务例如无线远程软件更新及动态车辆保
                 险费用等新兴服务. Wang      等人  [70] 提出基于区块链的预制施工供应链溯源和信息共享框架, 根据预制建筑项目供
                 应链的加工情况对智能合约功能进行更新.
                    为保证数据合约的可信性与复杂实现合约的可操作性, Zhang                   等人  [71] 提出一种基于区块链的碳交易智能合
                 约设计, 将交易智能合约拆分为入口合约、实现合约、存储合约这                      3  个模块. 这种拆分方式不仅绕过合约大小限
                 制, 还简化智能合约的升级, 同时实现复杂功能. 出现问题时, 拆分方式还可以让管理员账号直接关闭关键操作.
                 Leng  等人  [72] 设计一个四合一的金字塔型区块链智能合约以实现去中心化的工业制造控制, 合约上层实现各种个
                 性化需求的初始任务调度, 而下层应对内部随机中断的快速自主控制. Lu                       等人  [73] 在非现场物流和现场装配服务
                 的背景下, 开发一个区块链赋能的建筑供应链管理系统架构, 并分为                     4  个主要的智能合约对服务质量和信誉评价
                 的更新.
                    当多个合约同时执行时, 同步和并发操作会导致访问合约逻辑数据的冲突问题. Feng                         等人  [74] 提出一种分解方
                 法将合约分解为多个原子合约. 并根据合约内容顺序或并行执行多个步骤, 防止死锁, 一旦合约履行或到期, 就需
                 要注销. Nelaturu  等人  [75] 提出  VeriSolid  框架, 引入图形符号来指定合约类型之间可能的交互. 该框架允许开发人
                 员在较高的抽象层次上推理和验证一组交互合约的行为. 访问控制逻辑与业务逻辑的解耦进一步提高系统效率.
                 Sookhak  等人  [76] 讨论智能合约用户在医疗保健中的访问控制挑战, 在区块链中添加一个新区块用于数据拥有者更
                 新智能合约. 然而, 在用户数量巨大的大公司中, 区块链上实现撤销功能的存储开销极高. Gilani 等人                         [77] 提出一个
   44   45   46   47   48   49   50   51   52   53   54