聚焦EVM和Cosmos的模块化公链,Beosin如何为Celestia生态提供全面的安全服务?
摘要: 本文我们将详细分析 Celestia 的架构和技术,帮助大家了解 Celestia 和其生态发展,以及为大家讲解构建 Celestia 生态应用的最佳实践,加强项目方的安全防范。
Celestia 作为一个专注于数据可用性的模块化区块链即将上线,模块化公链再次成为了市场讨论的热点。Celestia 通过对公链功能的抽象和解耦,其本身主要承担共识层和数据可用层的功能,为构建去中心化应用和公链提供了更简单,更灵活的解决方案。
1. 什么是 Celestia ?
Celestia 是一条模块化的 Layer1 区块链,专注于排序交易并验证已发布的数据是否可用。Celestia 的核心理念是实现模块化的区块链架构,使得开发者在构建区块链的开发过程中可以摆脱单一架构的限制,以便开发者可以在 Celestia 的基础上按照他们的需求灵活地进行开发。Celestia 的模块化分为执行层 (Execution Layer),结算层 (Settlement Layer) 和共识与数据可用性层,如下图所示:
1. 执行层由 Rollups 组成,负责执行交易。Celestia 利用 Rollups 为执行层提供了多样化的可选方案。除了支持 Optimistic Rollup 和 zkRollup 外,围绕 Celestia 构建的 dYmension、Eclipse、Fuel 等 Rollup 方案让公链链接 Cosmos 和 Solana 生态项目成为可能。2. 结算层目前值得关注的是 Celestia 与 Evmos 合作开发的结算层 Cevmos,它将以 Evmos为基础,构建 EVM 的递归 Rollup。每个基于 Cevmos 构建的 Rollup 都存在一个与 Cevmos 的双向桥,可以重新部署以太坊上已有的 Rollup 合约与应用,以此来减少应用迁移所需的工作。3. 共识与数据可用性层这一层负责数据的可用性和共识机制。所有格式的数据都将传送到数据可用性层。节点会以它从结算层接收到数据的相同格式来存储数据。系统通过 $TIA 激励节点存储数据,而节点使用 Reed-Solomon 编码以及专门的 Namespaced Merkle Trees 数据结构来确保数据的可用性。
2. Celestia 安全实践
由于 Celestia 的模块化架构,Celestia 在结算层和执行层支持多种编程语言和虚拟机,比如 Solidity 和 Rust (CosmWasm)。但 Celestia 的模块化特性意味着开发人员可以不局限于这些语言,他们可以使用任何现有的语言和虚拟机,甚至可以定义自己的语言和虚拟机,比如 FuelVM 及其编程语言 Sway。
2.1 Solidity 最佳安全实践
若在 Cevmos 或者其它支持 EVM 的 Rollup上开发应用,其开发流程和所需工具与在 Ethereum 几乎完全相同,应用也可以向其它 EVM 兼容的公链进行迁移。遵循以下安全指南可以提高项目的合约安全性:1. 做好应对攻击的准备所有的智能合约都可能存在漏洞,对于 Cevmos 或是支持 EVM 的新 Rollup,合约漏洞问题依然不可忽视。因此,在项目方开发合约时,应在合约中设置紧急暂停功能并制定风险应对方案,以便在风险出现时快速反应,修复漏洞。2. 注意智能合约运算问题Solidity 没有浮点数,在涉及运算时需要考虑运算结果的精度问题,特别是有关代币数量和价格的计算。开发者应注意运算顺序,使用更高精度的数据类型如 uint256存储变量,然后执行运算。3. 注意智能合约升级问题有关合约升级,开发者需注意以下几点:● 避免在deploy合约中调用外部库,因为难以预测外部库如何影响合约的存储访问。● 升级过程中,注意不要覆盖存储变量的数据。● 尽量避免在构造函数中执行任何操作4. 使用多签钱包项目方需考虑使用多签钱包管理项目金库以及智能合约,多重签名帐户需由多个实体持有,尽量避免潜在的访问控制风险和内部作恶。
2.2 CosmWasm 安全实践
若开发者计划构建 Cosmos 生态应用,在开发智能合约时会采用 CosmWasm,遵循以下安全指南可以提高其项目的合约安全性:1. 做好应对攻击的准备与使用 Solidity 开发合约类似,开发者都需要考虑到如何面对攻击和修复漏洞。因此开发者需要构建可升级的智能合约,并制定好风险应对方案。2. 注意反序列化 addr 类型CosmWasm 的 addr 类型在反序列化时不会被验证,这表明 addr 类型会有预期之外的反序列化特性。因此,在反序列化 addr 后建议指定类型并进行验证。3. 注意运算与溢出在 CosmWasm 合约中,开发者需注意整数溢出风险或被0除等情况。建议开发者使用 CosmWasm 的 Uint256 和 Uint512 类型,并使用不会溢出的数学函数full_mul()。4. 注意无限循环CosmWasm 合约可能通过在 ACK handler 中回调自身从而陷入无限循环。如果开发者在两个 CosmWasm 合约之间有传递数据包,需注意这可能导致无限循环并损耗大量 gas 费。
2.3 协议安全实践
1. 智能合约审计智能合约审计是通过对智能合约代码进行系统的测试和审查,尽可能地发现潜在的安全漏洞,排除安全风险,确保代码没有业务逻辑漏洞,符合预期运行流程和结果。定期对于项目的智能合约进行安全审计至关重要,审计的时间点建议在合约开发完成后,主网部署之前进行。Beosin 作为一个全球领先的区块链安全团队,专注于区块链安全和形式化验证等技术,为 EVM 和 Cosmos 生态应用提供细致全面的安全审计,致力于为整个区块链生态系统提供先进的安全保障。此前 Beosin 已完成对 Cosmos 系公链 Sei 生态中最大的流动性质押协议 Kryptonite 的安全审计,为 Sei 的质押服务保驾护航。
详细报告可查看:https://beosin.com/audits/KryptoniteDAO-SEILOR_202308091649.pdf
3. 总结
Celestia 是一条极具潜力的专注数据可用性的模块化 Layer1,具有可扩展性、灵活性和互操作性的特点。目前 Celestia 的各类生态项目还在初期建设阶段,开发者在探索模块化解决方案的同时,通过遵循以上安全实践,可以有效提升项目的安全性。
评论(0)
Oh! no
您是否确认要删除该条评论吗?