本文是Ackee Blockchain Security对Watt协议进行的安全审计报告。审计发现了20个安全问题,包括严重、高、中、警告和信息级别。在修复审查中,发现了一个新问题。关键、高和中等严重程度的发现已由客户修复,警告和信息严重程度的发现已由客户修复、部分修复或确认。
Watt 协议 允许用户质押他们从提供流动性中获得的 LP 代币。质押者从包装和解包代币以及交易费用中获得奖励。
Watt 委托 Ackee Blockchain Security 进行安全审查,在 2025 年 5 月 28 日至 5 月 13 日期间,总共捐赠了 10 个工程日。
第二次修复审查是对之前修订版的修复进行的,时间在 6 月 25 日至 6 月 27 日之间。
我们首先熟悉了协议的核心概念和主要功能,包括阅读客户提供的文档。在审计的初始阶段,我们的目标是收集关于协议的预期运行、逻辑和潜在漏洞点的全面信息。
在第二阶段,我们开始深入研究代码库。我们开始编写概念验证(PoC)测试,以验证协议的核心功能,观察其行为,并测试我们的漏洞假设。在此阶段,我们特别注意确保:
审计是在 commit 版本 78128cf
上进行的,范围如下:
安全发现的分类由两个评级决定:影响和可能性。这种二维分类有助于明确各个问题的严重性。那些被评为中等严重性,但可能仅由团队发现的问题,通常会因可能性因素而降低到警告或信息严重性评级。
我们的审查发现了 20 个发现,范围从信息到危急严重性。修复审查发现了一个新的发现 (W5)。
所有危急、高和中等严重性的发现都已由客户修复,所有警告和信息严重性的发现都已由客户修复、部分修复或确认。
C1:LP 代币和池状态验证不匹配导致奖励膨胀
C2:不正确的返回语句可能导致不正确的流动性累积
C3:通过 Amplifier Config 重复初始化,有可能从用户那里积累额外的费用
C4:Unstake 函数允许完全提取,同时保持 staking 位置
C5:重复的 unstake-stake 循环能够实现无限的流动性倍增
C6:缺少 FeeConfig 验证允许创建零费用铸币
C7:可以使用欺诈性的 Raydium 池来质押毫无价值的 LP 代币,并获得合法代币的质押奖励
H1: 由于未初始化的全局累加器,在 unstake 中除以零
H2:协议状态重置会丢弃累积的费用
H3:抢先的 lamport 转移阻止了 mint 初始化
H4:不受限制的费用配置允许过高的费用
M1:未验证的 Token-2022 扩展允许耗尽 vault
M2:未验证的冻结权限会导致永久资金锁定
M3:未验证的费用配置可能会阻止代币解包
未发现低严重性问题。
W1:零分配率初始化阻止费用索赔
W2:epoch 字段和 slot 数据之间的命名不一致
W3:单个字段更新需要完整的配置重新输入
W4:Mint 权限验证放在错误的指令中
W5:更新转移费用时,FeeConfig 账户未更新
I1:不必要的/不寻常的源代码
I2:如果可能,使用 Raydium SDK 而不是自己的实现
Watt 没有实施任何基于角色的访问控制 (RBAC) 机制。但是,协议中使用了两个角色。
用户必须信任以下实体:
FeeConfig
,其中包含协议的所有重要费用参数和费率;Metadata
;Amplifiers
;以及Ackee Blockchain Security 建议 Watt 协议:
Ackee Blockchain Security 的完整 Watt 协议 审计 报告可以在这里找到。
我们很高兴与 Watt 合作,并期待将来再次与他们合作。
- 原文链接: ackee.xyz/blog/watt-prot...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!