本页列出对 Baofa 合约的每一次外部审查,包括自动化审查,及其范围与结果。每收到一次审查,本页都在修复落地之前更新。
自动化扫描#
两次扫描均由 Nethermind 的 AI 生成扫描服务 AuditAgent 产出。其报告声明它们不是安全审计,也未经 Nethermind 安全团队审阅;本页按其本来面目列出。
| 扫描 | 日期 | 包 | 发现 | 结果 |
|---|---|---|---|---|
| 10 | 2026 年 11 月 2 日 | baofa-contracts-2026-11-02-e7c2b6c:基础切面(管理、发行、创作者管理、交易)、钻石合约与接口,28 个合约 |
1 高、5 中、2 低 | 8 项全部确认并修复,每个发现一次提交,附修复前失败、修复后通过的概念验证 |
| 11 | 2026 年 11 月 4 日 | baofa-rewrite-2026-11-04-b042d86:完整上线包,72 个文件 |
0 高、4 中、3 低、1 项清单备注 | 8 项全部以同样方式确认并修复;此后门禁运行 20261104T154521Z 干净 |
扫描 11 发现了什么#
| 发现 | 范围 | 一句话修复 |
|---|---|---|
| M-01 | 代币激励:更换激励代币会重新计量未结算奖励 | 每笔入账归属于其代币,旧代币保留一份停放账本,没有新时间范围的代币更换被拒绝 |
| M-02 | 代币激励:更改日长度会错位已记录的成交量 | 日长度冻结,直到新的时间范围清空数组 |
| M-03 | 狂暴模式:一条管理员提取路径移动金库存量而不记账 | 该路径已记账,并受与其他每一次金库移动相同的限额约束 |
| M-04 | 代币激励:零长度暂停期间的领取会重新盖章未结算成交量 | 只有在没有未结成交量时章戳才移动 |
| L-01 | 收益分成:零地址份额持有人可以被最终确认 | 拒绝 |
| L-02 | 收益分成:更新可能被待处理的池子费用阻塞 | 划转在创建与更新调用内部执行 |
| L-03 | 代币激励:关闭记录会删除未支付奖励 | 带未支付奖励的记录拒绝关闭 |
| C-01 | 一个事件在通过 WBNB 回退支付的领取后误报余额 | 测量并在事件中命名实际支付的资产 |
完整回应,包括发现登记表、每一项的参考实现比对、修复提交与概念验证,随交给审查方的审查包一起提供。
人工审计#
| 事项 | 状态 |
|---|---|
| 审计方 | 由协议所有者委托 |
| 范围 | 上线包 baofa-rewrite-2026-11-04-a727bfe |
| 报告 | 尚未发布;交付后在此完整、未经编辑地链接 |
一次先前的专业前端审查#
应用的前端已对照一次先前对同类钱包连接应用的专业前端安全审查的发现逐项核对。该审查的 28 类发现每一类都在本应用中追溯,并逐类记录在应用的验证日志(仓库中的 web/QA.md)里,附上可以说明问题的代码或测试。
| 结果 | 类数 | 示例 |
|---|---|---|
| 不存在,并指明了对应的测试或代码路径 | 25 | 失败的步骤被报告为已完成;失败的读取显示为零或空列表;授权在签名之后才被模拟;从错误消息文本中读取回退数据;窄整数被解码为数字;打印负零;只有一个无备援的公共 RPC 端点;内容安全策略遗漏钱包传输来源;取消交易的回执被当作结果;两个流程对同一授权额度同时通过模拟 |
| 不适用,因为这里不存在产生该发现的结构 | 3 | 在正式路由上可达的模拟提供者、访问门禁、手写的焦点陷阱 |
对照未能关闭的三件事记录在日志的同一页:WalletConnect 只会在注册到 baofa.fun 的项目存在后才被编译进来;智能合约钱包对测试网部署的一次实际运行尚待记录;哪些公共 BNB Smart Chain 端点支持 eth_simulateV1 将在主网 RPC 列表定稿时记录(不支持的节点按设计回退到逐步估算)。
应用在每一次写入时做什么,一段话说明:在第一次签名前模拟整个流程;按钱包与链加锁,使两个流程不能对同一授权额度同时通过模拟;等待每一张回执,并区分加速、取消与另一笔不同的交易;用合约 ABI 从回退数据解码任何回退;在授权已确认之后发生的失败会被如实报告。它的内容安全策略只允许来自自身来源的脚本(加上本文档中心的两段经哈希固定的内联脚本),只允许连接索引器、RPC 端点与所用的钱包传输,此外一概不允许;钱包 SDK 的遥测主机被刻意排除。
报告漏洞#
漏洞赏金计划与披露联系方式尚未发布;两者将在人工审计报告之后推出,并在 x.com/baofadotfun 与 更新日志 中公布。收到的每一份报告都会得到确认、以保留为回归测试的概念验证修复,并在报告者愿意时记入 更新日志。