Lombard Liquid Bitcoin 审计总结

  • Ackee
  • 发布于 2025-08-26 23:22
  • 阅读 21

本文总结了Ackee Blockchain Security对Lombard Finance的Liquid Bitcoin协议进行的多次安全审计。审计发现了从信息级别到高危级别的22个问题,包括未经授权的LBTC铸造、费用问题和潜在的初始化抢跑。审计团队建议Lombard Finance解决所有报告的问题,并提供了完整的审计报告链接。

Lombard Finance 的 Liquid Bitcoin 协议 允许用户以 Solana SPL Tokens(称为 LBTC)的形式获得桥接的 Bitcoin。

Lombard Finance 聘请 Ackee Blockchain Security 在 2025 年 3 月 3 日至 3 月 18 日期间进行安全审查,总共捐赠了 12 个工程日

对先前修订的修复进行了第二次修复审查。

Lombard Finance 随后聘请 Ackee Blockchain Security 对 Liquid Bitcoin 协议 进行另一次安全审查,在 2025 年 3 月 25 日至 3 月 28 日期间总共捐赠了 3 个工程日

然后对第二次修订的修复进行了修复审查,包括对范围的扩展,如下所述。

方法论

我们首先熟悉代码库和范围的业务逻辑来开始我们的审查。我们花费了大量时间审查文档并研究 协议 的更广泛范围(例如,Babylon Bitcoin 质押)。

完成初步研究后,我们继续手动审查代码库。手动审查包括多个阶段,第一阶段侧重于大致了解代码库:

  • Solana 程序的组成部分;
  • 程序接受的所有指令;
  • 代码库的架构和结构;以及
  • 项目存储在链上的所有信息。

在建立了初步了解之后,我们继续进行第二阶段,我们进行了逐行代码审查。这包括对代码的更深入分析,检查潜在的问题、错误和安全问题。

在手动审查期间,我们特别注意:

  • 确保项目已正确初始化和配置;
  • 验证 LBTC 的铸造是否得到安全处理;
  • 确认验证过程无法绕过;
  • 确保 协议 的行为透明且符合预期;
  • 验证是否存在可能被用来对抗用户的机制;以及
  • 寻找代码库中可能出现的常见问题。

在审查 Bascule 程序期间,我们通过概念验证测试来测试 协议 是否按预期工作。审查在对程序的更深入理解的情况下继续进行,在此期间,我们确保:

  • 在来自 LBTC 程序的跨程序调用 (CPI) 期间正确使用它;
  • 只有指定的报告者才能提交新的存款;
  • 只有指定的验证者才能验证存款;
  • 正确涵盖所有潜在场景(例如,存款低于验证阈值的场景);以及
  • 所有 mint 请求仍然得到正确验证并且无法绕过。

范围

第一次审计是在 commit 9171ae4 上进行的,范围如下:

  • Lombard Finance Solana 合约,不包括外部依赖项

修订版 1.1 是在给定的 commit ca1ccb2 上执行的,重点是第一次审计的修复。

修订版 2.0 是在 commit c96dc36 上执行的,范围如下:

  • Lombard Finance Solana 合约,不包括外部依赖项;
  • Bascule 程序,不包括外部依赖项。

然后对修订版 2.0 中提供的修复程序在 commit 9001c77 上进行了修订版 2.1。该范围包含对源代码的添加(例如,change_mint_auth),这些添加未被审查,因为这些添加不在修订版 2.0 的范围内。

发现

安全发现的分类由两个等级确定:影响可能性。这种二维分类有助于阐明各个问题的严重性。如果问题被评为中等严重程度,但可能仅由团队发现,则通常会通过可能性因素将其降低到警告信息性严重程度等级。

我们的审查导致了 22 项发现,范围从信息到高严重性。客户已修复或确认了这些问题。阅读下面链接的完整报告以获得完整的概述。

严重程度 - 危急

未发现危急严重性问题。

严重程度 - 高

H1:可能未经授权的 LBTC 铸造

严重程度 - 中

M1:可能不足的费用

M2:可能的初始化抢跑

M3:赎回不允许资产退款

M4:Mint 者是一种安全隐患

M5:由于 Config 帐户是 Rent 支付者,因此无法执行跨程序调用

M6:由于帐户不可变,因此无法执行跨程序调用

严重程度 - 低

L1:无法保证基于角色的访问控制的唯一性

严重程度 - 警告

W1:无法转移 Config 权限

W2:金库可能会使 协议 无法运行

W3:加权验证器签名

W4:已弃用的跨程序调用

W5:字段可能未初始化

W6:UnstakeRequest 没有考虑费用

W7:由于算术溢出,可能会发生 panic

W8:向量边界中的意外行为

W9:未完成的代码可能会触发不期望的行为

W10:Bascule 初始化抢跑

W11:无法转移 BasculeData 权限

严重程度 - 信息

I1:不准确的注释

I2:可以提高代码质量

I3:Config 帐户中不必要的 Bascule 程序存储

信任模型

尽管 协议 实现了基于角色的访问控制 (RBAC),具有多个权限级别并且消息验证过程已正确实现,但用户必须信任:

  • Config 管理员设置适当的运营费用;
  • Config 管理员在安全考虑因素下分配 mint 者,因为 mint 者可以在 Solana 区块链上将新 token 铸造到流通中(在 M4 中描述);
  • 协议 维护足够的验证,因为链下验证器的最小限制设置为 1(启用潜在的中心化,在 W3 中描述);以及
  • 协议 正确初始化 LBTC token,这意味着不滥用 freeze_authority 或可用的 Token-2022 扩展。

结论

Ackee Blockchain Security 建议 Lombard Finance 解决所有报告的问题。

可以在此处找到 Ackee Blockchain Security 的完整 Lombard Finance Liquid Bitcoin 审计 报告。

我们很高兴对 Lombard Finance 进行审计,并期待再次与他们合作。

  • 原文链接: ackee.xyz/blog/lombard-l...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Ackee
Ackee
Cybersecurity experts | We audit Ethereum and Solana | Creators of @WakeFramework , Solidity (Wake) & @TridentSolana | Educational partner of Solana Foundation