本文深入探讨了Cosmos SDK开发中常见的安全问题,包括无限循环、Map的非确定性、AnteHandler的误用、以及存储键冲突等,并提供了实际案例和可操作的建议,旨在帮助开发者构建更安全的基于Cosmos的项目。文章强调了在Cosmos开发中需要开发者对安全问题有充分的认识,并详细介绍了开发者容易忽略的各种安全漏洞,以及相应的防范措施。
Provenance Blockchain团队在Cosmos SDK升级后发现测试网存在奇怪行为,节点从旧数据快照或创世区块初始化时无法同步,出现应用哈希不匹配错误。经调查发现是authz.MsgGrant中的time.Now()调用导致验证时的非确定性问题,可能导致验证器网络暂停。该团队已与Cosmos SDK团队沟通,并修复了此问题。
authz.MsgGrant
time.Now()
本文介绍了确定性和非确定性密钥交换的概念,以及如何在 ECDH 密钥交换方法中使用 libsodium.js 实现这两种方式。确定性密钥交换使用已知的种子值生成密钥,每次都得到相同的结果,而非确定性密钥交换则随机生成密钥,每次结果都不同。文章通过代码示例展示了这两种方法的实现,并提供了在线演示。
RISC Zero正与Veridise合作,使用Picus工具对zkVM的组件进行形式化验证,以提升ZK安全性。通过数学方法证明电路的确定性,从而消除约束不足的错误,已成功验证Keccak加速器电路的确定性,并正在验证RISC-V电路。此举旨在创建一个既快速又安全zkVM,使开发者无需在性能和安全性之间妥协。