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

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


                 钥、解析令牌和每次调用都会执行一次签名验证. 这种方法减少链上存储和计算需求, 以低成本实现智能合约的
                 可更新和复杂的      ACR. 2021  年, 刘云霞等人  [97,98] 提出基于区块链的通证智能合约链上升级方法研究, 将传统智能
                 合约拆分为接口合约、实现合约、数据合约这                 3  个子集, 3  个子集间保持互相调用的松耦合关系, 共同实现对事
                 务的处理. 此外, 考虑到现有的        3  层模式只能实现部分链上升级, 无法保证链上升级的安全性. 2023                年, Du  等人  [99]
                 提出一个   4  层合约模型应用于区块链架构, 如图          20, 包括代理层、验证层、业务层和存储层. 与             3  层模型相比, 重
                 新定义存储层, 以面向库表开发方式抽象底层的库表合约, 并实现数据的统一存储. 增加一个验证层, 并引入交易
                 回滚机制, 所提出的      4  层模型和算法能够实现链上升级, 以部分整体部署为代价降低合约复杂度和数据迁移成本.

                                                存储合约        商业合约         常规请求
                                                升级请求        升级请求
                                         应用层                 DApp

                                                             代理合约
                                                 存储数据

                                         合约层         返回数据   商业合约         验证合约
                                                                  交易回滚
                                                                        面向库表的
                                                验证合约        存储合约         合约开发

                                         数据层                 区块链
                                                  图 20 4  层模型的总体设计

                    Nelaturu  等人  [75] 引入  VeriSolid  框架, 用于具有严格操作语义的基于抽象状态机模型, 指定合约的正式验证.
                 该框架利用    initialize_public 方法, 可在整个合约生命周期的任何时间点使用, 用于动态改变合约逻辑. VeriSolid
                 支持正确设计、开发和部署多个交互智能合约. 并扩展功能以满足复杂应用场景的需求. Jin                            等人  [100] 提出一种名
                 为  Aroc 的通用智能合约修复程序, 能够修补部署在链上的脆弱合约. Aroc 首先基于固定模板生成包含安全规则
                 的补丁合约, 并将补丁部署到区块链上, 然后将存在安全漏洞的合约与补丁合约捆绑在一起, 从而使后续交易在调
                 用原始合约之前, 必须先调用补丁合约. 表            5  为基于链上/链下升级框架的方法小结.


                                            表 5 基于链上/链下升级框架的方法小结

                      类型           名称       发表年份                           主要内容
                                Angelo等人 [94]  2020    对大量智能合约进行分类, 使用差分代码来支持智能合约链下升级
                   链下升级框架       Shao等人 [95]   2020        智能合约漏洞日志异常分析, 实现智能合约链下升级的提示
                               Jean-Louis等人 [29]  2024    基于可信执行环境的智能合约修复区块链架构SGXonerated
                                 Liu等人 [96]   2020    智能合约访问控制服务框架, 实现链上轻量级的基于令牌的访问控制
                               刘云霞等人   [97,98]  2021            基于区块链的通证智能合约链上升级方法
                                 Du等人 [99]    2023          提出4层合约模型, 引入交易回滚机制实现链上升级
                   链上升级框架
                                                    提出VeriSolid框架, 用于使用具有严格操作语义的基于抽象状态机的模型指
                               Nelaturu等人 [75]  2022
                                                    定的合约的正式验证
                                 Jin等人 [100]  2021       提出Aroc通用智能合约修复程序, 修补部署在链上的脆弱合约

                  4   升级规范

                    尽管以太坊的生态系统有了明显的改善, 但开发人员仍然声称缺乏标准、组件库和有用的参考代码                                 [101] . 这种
                 情况在设计可升级智能合约中体现得更加明显. 由于上市时间的压力、发布的紧迫性、软件开发工具的不成熟、
                 高质量培训资源的缺乏, 以及以太坊路线图的不明确和生态系统的快速发展, DApp                         开发者难免会在智能合约中
   49   50   51   52   53   54   55   56   57   58   59