首页
/ Safe智能账户模块守卫上下文数据传递方案探讨

Safe智能账户模块守卫上下文数据传递方案探讨

2025-07-05 19:39:20作者:幸俭卉

背景介绍

Safe智能账户项目在开发过程中遇到了一个关于模块守卫(Module Guard)功能的设计问题。模块守卫作为Safe账户安全机制的重要组成部分,负责验证由模块发起的交易。然而当前实现中,模块守卫在执行检查时无法获取交易相关的上下文信息,这限制了其功能的灵活性。

问题分析

在解决具体问题(如负控制场景下的共同签名验证)时,开发团队发现模块守卫缺乏获取额外上下文数据的能力。当前的模块守卫接口仅接收基本交易参数(目标地址、金额、数据、操作类型和模块地址),无法满足某些高级验证场景的需求。

解决方案探讨

团队提出了三种主要解决方案,各有优缺点:

方案一:修改Safe合约及模块守卫接口

此方案通过在模块守卫的检查函数中增加上下文参数,并在Safe合约中新增支持上下文的重载函数来实现。

优点

  • 模块守卫接口尚未正式发布,修改不会影响现有部署
  • 对Safe合约的修改保持向后兼容

缺点

  • 增加Safe合约代码大小(但仍保持在24KB限制内)
  • 需要模块开发者适配新接口

方案二:预执行设置上下文信息

此方案利用模块守卫自身的存储(或临时存储)来保存上下文信息。在执行模块交易前,Safe账户通过单独交易或多重发送方式将上下文信息存入守卫。

优点

  • 无需修改Safe核心合约

缺点

  • 守卫需要实现额外的存储管理逻辑
  • 增加存储读写带来的gas成本
  • 需要额外的预执行调用

方案三:模块自行管理上下文

此方案由模块自行存储上下文信息,守卫通过调用模块接口获取所需上下文。

优点

  • 无需修改Safe合约

缺点

  • 需要模块实现特定接口
  • 增加存储访问的gas成本
  • 模块与守卫需要约定协议

技术评估与决策

经过深入讨论,团队认为:

  1. 上下文需求目前仅出现在特定用例(如负控制)中,尚不具备普遍性
  2. 通过多重发送等现有机制已能实现上下文传递
  3. 引入标准化上下文协议可能增加开发者复杂度和审计难度
  4. 类似功能可通过ERC7579等现有标准实现

基于以上考量,团队决定不修改Safe核心合约,也不强制要求守卫或模块实现特定接口。对于需要上下文验证的特定用例,建议采用方案二的变体(通过多重发送设置守卫上下文)或直接在模块内部实现验证逻辑。

结论

Safe智能账户项目在模块守卫上下文传递问题上进行了全面评估,最终选择了保持核心合约稳定性的方案。这一决策体现了项目对向后兼容性和开发者体验的重视,同时也为特定用例提供了可行的替代实现路径。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
22
6
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
202
2.17 K
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
208
285
pytorchpytorch
Ascend Extension for PyTorch
Python
61
94
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
977
575
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
9
1
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
550
83
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
1.02 K
399
communitycommunity
本项目是CANN开源社区的核心管理仓库,包含社区的治理章程、治理组织、通用操作指引及流程规范等基础信息
393
27
MateChatMateChat
前端智能化场景解决方案UI库,轻松构建你的AI应用,我们将持续完善更新,欢迎你的使用与建议。 官网地址:https://matechat.gitcode.com
1.2 K
133