Zendoo源代码审计报告结果公示2021
Horizen 团队致力于开发最安全、可互操作的区块链生态系统,以确保用户的资金安全。
作为对用户安全和安全承诺的一部分,我们获得了两个专业 IT 安全机构的支持。每个机构都是根据其职能专业知识选择的。
第一个被选中的机构是比特币安全服务的行业领导者Coinspect。Coinspect 之前审核了 Zcash 和 Horizen代码库。Coinspect 的后续审计是对 Zendoo 软件升级 ( ZEN 3.0.0 ) 进行的。Zendoo 是 Horizen 网络最大和最重要的升级。Zendoo是 Horizen 的扩展解决方案,它通过允许开发人员构建具有其他人无法比拟的可扩展性和灵活性的自定义零知识支持的公共或私有区块链来培育独立区块链和 dapp 的生态系统。因此,源代码和密码学符合最高标准至关重要。
加密操作中的漏洞通常是晦涩难懂的,这也是 Horizen聘请第二个机构NCC Group来审计 Zendoo 的证明验证者的原因。NCC Group 是网络安全和密码学领域的领导者。
最后,为了完善 Zendoo的稳健性,Horizen 与HackerOne合作,不断激励友好的黑客测试 Zendoo的安全性。
关于 Zendoo 源代码审计
审计的目的是审查 Zendoo源代码并检查 Zendoo引入的新代码修改,以合并 Horizen主链与多个侧链交互的能力。此次审计使 Coinspect 能够识别并尝试利用安全漏洞,这些漏洞可能允许攻击者攻击 Horizen 主链或侧链以及由它们保护的资金
Coinspect 在 Zendoo 源代码中没有发现严重风险漏洞。审计发现包括4个风险项目。Horizen 团队更正了审计中确定的项目。本次审计未发现其他风险项目:
- 严重风险:0
- 高风险:4 (4 个已修复)
- 可达断言允许攻击者通过对压缩数据的不当处理来劫持网络 DoS 攻击
- 侧链证书启用主链资源耗尽攻击
- 通过不当处理压缩数据进行 DoS 攻击
- 停止的侧链使主链资源耗尽攻击成为可能
- 中等风险:0
关于 Zendoo Proof Verifier 密码学评论
本次审计的目的是对 Zendoo 的证明验证器进行密码审查。该系统生成并验证修改后的 Marlin 证明。该系统还提供了累积证明的优化批量验证。审查包括证明系统的支持元素,例如基础字段算术、特定椭圆曲线的实例化、自定义哈希函数和优化的 Merkle 树实现。
NCC Group 团队在 Zendoo 的证明验证器中没有发现严重风险漏洞。他们在审计过程中报告了 22 项。确定的项目要么在审查后得到修复,要么被确定为不是风险或误报。
- 严重风险:0
- 高风险:3 (3 个已修复)
- 算术运算后缺少多项式归一化
- 批证明验证绕过
- 不正确的随机多项式生成
- 中等风险:4 (2 个已修复,1 个误报,1 个非风险)
- 规范反序列化中缺少长度检查
- Merkle 树实现中没有域分离
- Merkle 叶节点在重置时未归零
- 标记多项式承诺中不正确的隐藏边界
- 低风险:12 (9 个已修复,2 个误报,1 个非风险)
- 安全 Rust 最佳实践并不总是遵循
- 误导性的模块化归约函数
- 零除法的潜在恐慌
- 过时且易受攻击的 Rust 依赖项
- 多标量乘法中的参数检查不足
- Merkle 树实现中的参数验证不足
- Merkle 树实例化中通过内存耗尽的潜在 DoS
- 波塞冬轮数参数的不连贯性
- RNG 实现不符合 Rust 文档
- 模糊的 Fiat-Shamir Oracle 实例化和输入序列化
- 与随机挑战领域参考论文的差异
- 外部函数接口中的未定义行为
- 信息性:3(1 个已修复,2 个非风险)
- 非恒定时间模幂
- 缺少内存归零
- 随机生成琐碎随机挑战的潜力
附加信息:
- 阅读完整的Zendoo 审计
- 阅读完整的Zendoo 加密元素审计
Zendoo黑客马拉松
Horizen 正在与包括 HackerOne 在内的黑客马拉松项目合作,以执行 Zendoo 平台的黑客马拉松。这些黑客马拉松将确保我们生态系统的稳健性。HackerOne 黑客马拉松现已公开。加入 HEAP以获取有关事件的通知和更新。