本文介绍了Boson Protocol,一个旨在通过区块链连接数字资产与实体商品的服务基础设施。ImmuneBytes对该协议进行了安全审计,发现了多处高低严重性漏洞,并提供了具体的安全改进建议,Boson团队已迅速解决。
2026年3月3日
Boson Protocol 是一种去中心化基础设施,旨在以无需信任和自动化的方式,促进数字资产(如加密货币或NFT)与现实世界商品和服务的无缝交换。它运行在区块链技术上,特别是以太坊网络,并利用智能合约来实现最小化信任的商业活动。
Boson Protocol 的目标是利用区块链在数字世界和物理世界之间架起桥梁,实现跨这些领域的去中心化、无需信任的价值交换。
本次审计的主要目标是确保智能合约系统安全、健壮并精确地按预期运行。审计过程分为三个关键领域:
这种结构化方法确保智能合约系统符合严格的安全、架构和质量标准。
ImmuneBytes 对 Boson Protocol 进行了深入审计,发现了系统中多个高严重性和低严重性漏洞。Boson Protocol 团队迅速有效地采取行动,快速解决了这些问题。他们解决这些潜在威胁的行动和奉献精神,体现了对确保其协议安全的坚定承诺,为用户创建了一个值得信赖的环境。
我们已根据严重性级别对问题进行划分:

详细审计报告可在此处找到:here。
它指的是智能合约函数未被正确限制,导致未经授权的用户可以访问或执行的漏洞。合约中的一个函数允许卖方承认错误并终止交易。然而,由于缺乏任何此类 access modifier,任何人都可以在卖方未授权的情况下触发此函数。
建议: 该函数必须包含一个 onlyFromRouter() 修饰符,以确保它只能从 router 合约调用。
在 Solidity 中,require 语句因其 gas 效率和明确的交易回滚,而优于 if-else 语句用于处理验证和错误检查。当 require 语句中的条件失败时,交易会立即停止,回滚所有更改并退还未使用的 gas。

在严格验证的场景中,如果函数的进一步执行严格依赖于某个值,那么使用 require 语句而不是 if 语句相对更有效。
建议: triggerFinalizeVoucher() 函数中在更新 voucher token 状态之前的验证,可以通过 require 语句修改如下:

它指的是智能合约未能正确验证其从用户或其他合约接收的输入的情况。如果没有输入验证,恶意或意外数据可以传递到合约中,导致不可预测的行为或漏洞,例如溢出、下溢,甚至未经授权的访问。TokenRegistry 合约中的 setETHLimit() 和 setTokenLimit() 未实现适当的输入验证。
建议: 上述函数应包含有效的验证,以确保没有无效的 uint 参数传递给函数。
它指的是智能合约中的安全漏洞,即系统在授予地址访问或权限之前未能正确验证其合法性。当合约允许用户注册或批准地址,但没有经过彻底检查以确保地址是有效的、经过授权的,或者没有被标记为可疑活动时,就会发生这种情况。在少数地方的 approve() 函数中,对于作为参数传递的地址,不包括零地址验证。
建议: 此类函数应包含 require 语句,以确保参数中没有传递零地址。
总而言之,ImmuneBytes 对 Boson Protocol 的审计,强调了在不断发展的去中心化金融格局中进行彻底安全评估的至关重要性。通过细致审查,发现了一些漏洞,Boson Protocol 团队的迅速响应表明了他们对维护一个安全且具有弹性的平台的承诺。他们的积极措施不仅解决了已识别的问题,还增强了协议的完整性,培养了用户和利益相关者之间的信任。
本案例研究强调了持续的警惕和安全实践的持续改进的重要性,确保像 Boson Protocol 这样的 DeFi 协议能够在快速变化的环境中安全有效地运行。
- 原文链接: blog.immunebytes.com/202...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!