CometBFT 共识机制下的链可定制化,IBC 与以太坊、Avalanche、NEAR、波卡平行链的连接,Cosmos「宇宙」仍在不断膨胀。
撰文:Babywhale,Foresight News
Cosmos 开发团队推出的一系列技术解决方案一直都广受 Web3 开发团队欢迎,无论是 Cosmos SDK 还是 IBC,其中很多方案都帮助开发者解决了重复造轮子的问题。
虽然 Cosmos 为 Web3 带来了诸多产品,但其核心的 ATOM 代币却一直没有受益于 Cosmos 生态的膨胀。但去年的 Cosmoverse 大会上,Cosmos 2.0 白皮书的发布为 ATOM 带来了额外的价值,包括为「消费链」提供安全性来收取费用以及捕获 MEV 收入等。简单来说,如果 Cosmos 2.0 完全实现,则 ATOM 也将受益于 Cosmos 生态的不断扩张,所以现在剩下的问题就是尽快实现 Cosmos 2.0 的开发与进一步扩展 Cosmos 生态。
上个月,旨在推动 Cosmos 生态发展的 Interchain 基金会公开发布了 2024 年 Interchain 堆栈的开发计划,该路线图旨在实现四个战略目标:
通过通用化软件来提高模块化程度,以便更轻松地适应特定用例;
改善开发人员体验,以便更轻松地使用 Interchain Stack 进行构建;
还清技术债务,以便能够更快地取得进展;
推动用户采用。
这其中有不少计划或许会改变你对 Cosmos 和 ATOM 发展前景的判断。
CometBFT 是 Interchain 状态机的复制引擎,以保证网络的验证者在区块的生成上达成一致,从而确保区块链网络的安全性和一致性。
Interchain 基金会表示,其目标是通过扩大 CometBFT 的覆盖范围和适用性来发展 Interchain,帮助建立主权互操作应用。此外,包括 CometBFT 在内的跨链公共产品堆栈需要达到新的灵活性和模块化水平来适应 Interchain 中应用的日益差异化、提供机构级服务和以多种方式竞争。
Interchain 基金会于 2023 年 2 月发布了 CometBFT v0.34,3 月又发布了 v0.37,其中包括 ABCI++ 的第一部分。3 月底发布了 v0.38 候选版本,这是 ABCI++ 的最后一部分,在最终版本发布前,Interchain 基金会会将其集成到 Cosmos SDK 和 IBC-go 中。
Interchain 基金会计划在 2023 年结束之前发布正在准备中的 v0.39,其更新包括效率改进(减少带宽和存储消耗)、最终将包含索引器和 RPC 子系统的 Data Companion API 等,预计将于 2024 年初发布,该版本也可能被称为 v1。
至于什么是 ABCI++,先要从 ABCI 说起。ABCI 是应用和共识之间的接口,它的主要作用是执行由共识决定的区块。有了 ABCI,应用只用在决策时与共识交互,并且对从 mempool 中挑选哪些交易几乎没有控制权。ABCI++ 为共识的每一步都增加了可编程性,允许应用重新排序、修改、放弃、延迟或增加交易,以及通过引入优化产生区块的能力来缩短区块生产时间。
Sei 正是采用了 ABCI++ 来实现优化区块生产、智能区块广播和订单并行执行,从而提高链上交易的处理效率。
总结起来,CometBFT 为基于该共识机制的链提供了非常定制化的区块构建功能,不同的链可以根据其本身的需求来制定出块和交易排序、执行等的方式,大大提高了链层面优化的想象力。此外,Interchain 基金会提出了一个非常宏大的设想:允许应用直接通过 ABCI 接口利用 IBC 的功能,而不论其开发采用的虚拟机、框架或模块堆栈如何。如此,即可实现让 IBC 成为基于 Cosmos SDK、OP Stack、Celestia 等开发的链上应用之间的跨链互操作性标准的目标。
说到 Cosmos SDK,相信大多数人都不陌生。Cosmos SDK 是一个用于开发区块链或 Rollup 的工具包,被很多新推出的区块链作为开发的核心工具,除了 Cosmos 生态的众多应用链,还包括了Fairblock、dYdX V4、Berachain等。
在 Cosmos SDK 的开发计划中,Interchain 基金会表示新一年的重点将在于模块化和新功能的推出。
首先,欠下的「技术债」方面,Cosmos 将在包括存储、ABCI 的核心层以及包括模块、质押等的一层中将未完成的优化工作继续完成,具体包括:
存储:性能、可扩展性。
核心:模块化(使用不同的共识引擎: Rollkit、Dymint 等);可切换(轻松切换组件:存储、不同的模块加载器(Wasm、FFI、gRPC 和本地)、客户端等)。
模块:易于在各种虚拟机中证明;减少代码总行数;模块化(允许应用开发人员修改业务逻辑);重写传统模块(Auth、Bank、Staking、Distribution、Mint、Slash 等。
密码学:重写密钥处理,使其更加模块化,允许他人使用自定义 HSM;引入新的加密原语。
第二是模块化方面,Interchain 基金会认为「模块化」一词在区块链领域被过度使用,其重点在于软件的模块化水平。Interchain 基金会表示,将在今年下半年让 Cosmos SDK 在核心层面更加模块化并持续努力至 2024 年,具体包括:
共识模块化:模块化(使用不同的共识引擎: Rollkit、Dymint 等);可切换(可轻松切换组件:存储、不同模块加载器(Wasm、FFI、gRPC 和本地)、客户端等)。
存储:允许切换原有结构;允许模块之间采用不同的结构;读写并行化。
模块可组合性:允许用户分叉或插入自定义逻辑(取决于用户反馈)。
第三维护方面没有太多值得关注的内容,第四块未来计划方面,Interchain 基金会计划推出以下更新:
跨语言:模块加载器(WASM、FFI、GRPC);可能与 CosmWasm 更紧密地结合。
升级:将模块和 VMS 的业务逻辑与核心 / 节点升级分开;实现无缝升级(在目标区块高度之前部署升级);实现从创世状态开始同步。
研究:用于证明模块的 ZK 电路;欺诈和有效性证明。
CosmJS 是一个库,可帮助开发人员将基于 JavaScript 的客户端与 Cosmos SDK 区块链集成。
Interchain 基金会计划在 CosmJS 库中添加新的编码器,提高库的效率,减少代码臃肿,为用户提供更精简、更专业的开发体验。这些更新旨在添加原生可视化、优化包大小、自动编码过程、实现多网络适应性以及创建更精简和可扩展的客户端。
此外,这项工作的一个关键方面是利用 Telescope 的 codegen 功能来替换某些目标并使其自动化,例如使库更加精简、删除硬编码的辅助方法,以及允许开发人员使用自己选择的模块和辅助方法来定制他们的客户端。
有关 CosmJS 的更新计划大多牵扯较为底层的技术方面,读者若要了解具体涉及的细节可自行阅读原文。总结起来主要包括信息的「Proto Visual」编码、使得 CosmJS 与 Cosmos SDK 保持同步更新、更精简的包和代码优化、更新 Amino 编码器并添加模块、使用不同密钥和签名的多网络适配器、更精简、可扩展的 Telescope 和 Helpers 客户端。
CosmWasm 是一个为 Cosmos SDK 构建的智能合约框架。一方面,它允许用户以无需许可的方式部署去中心化应用;另一方面,区块链开发者可以将他们的产品开发周期与区块链开发分离,减少验证器的升级次数,从而降低区块链的运行成本。
Interchain 基金会表示,得益于使用 CometBFT 的应用链模型、Cosmos SDK 以及 Wasm 合约近乎原生的执行速度,Cosmos 解决了可扩展性问题,将交易费用降至几分钱,但同时也导致 L1 中可用的区块空间远远超出了需要。所以需要优化 CosmWasm 使得更多应用可以被更方便地开发从而提高区块利用率,其中重点包括IBC 采用和账户智能化。
Interchain 基金会表示,到 2024 年初,CosmWasm 2.0 将交付并部署到大多数链上。这将为 2024 年期间发布的 2.1、2.2 和 2.3 版功能添加打下基础,新版本的功能将包括:
零知识证明验证。通过验证合约中的零知识证明,可以实现安全的链外计算以及各种隐私应用。通过在应用接口中添加配对友好的椭圆曲线加密技术,CosmWasm 已经为服务这些应用做好了准备:
定义应用程序接口并找到合适的实现方法;
提供全栈示例应用,展示如何使用合约中的 API;
制定基准,设定 Gas 成本。
进一步升级 IBC 功能。目前已经出现了 IBC 无法实现的高级用例,这些用例将作为 IBC 更新的重点:
全面支持 ADR-8,允许合约对超时和所发送包裹的确认做出反应;
支持 IBC 费用,允许合约为自己的数据包支付费用;
创建可选的延迟确认,允许在合约中实施 Packet Forward Middleware 以及 ICQ long polling。
其他偏向底层技术或重要性不高的更新包括维护当前的软件栈、提高存储访问效率、增强 authz、创建 IBC 应用程序、在 2025 年春季举办黑客松 AwesomWasm II、针对 DApp 开发者的 CosmWasm 文档、运行 CosmWasm 测试网以方便开发者测试。
区块链间通信(IBC)协议是一种区块链互操作性解决方案,允许以安全、无需许可的方式在区块链间进行任意数据传输,以及在区块链、应用和智能合约间无缝地跨链发送和接收数据。从 2022 年 1 月到 2023 年 2 月,ibc-go 为 5200 万次转账提供了便利,转账金额达 290 亿美元。目前已有 100 多条链与 IBC 网络连接。
IBC 生态非常丰富。除了由 ICF 资助的团队开发的应用外,其他协议包括 Osmosis 的跨链交易;Stride 和 Neutron 广泛使用中间件、ICA 和查询;DAO DAO 创建了 Polytone;Evmos 建立了 IBC 预编译器,以便通过 EVM 进行传输;Injective 建立了预言机数据流模块。
Interchain 基金会表示,IBC 在 2024 年将围绕两个主题进行更新:可扩展性和可用性。
IBC 目前存在诸多挑战。迄今为止,只有 Cosmos SDK 和使用 ibc-go 的 CometBFT 链才能实际使用 IBC 协议。此外,与非 Cosmos 链建立第一个连接花费了近两年时间。如果每次整合都需要这么长的时间,那么要实现 IBC 的愿景是根本不可能的。
此外,实施本地 IBC 和中继器所带来的维护开销是巨大的。除了 IBC 传输和应用实施的维护成本外,每连接一个新的区块链架构,都会产生一个相关的中继器,并产生维护和开发成本。中继器目前没有可持续的现金流,必须为其提供的服务支付 Gas 费和基础设施费用,包括链外协议来支付基础设施费用、基金会授权或使用 Cosmos SDK 费用赠款模块。
据此,在可扩展性方面所需的具体更新包括:
最大限度地缩短 IBC 集成所需的开发时间;
降低 IBC 集成的维护成本;
搭建 Layer1 和 Rollup 的 IBC 连接框架。
ICS-20(代币转移)是 IBC-go 于 2021 年 3 月推出的第一个应用模块,此后一直是使用最多的应用。随着应用变得越来越复杂,仅发送代币显然不足以满足互操作性需求。因此,ICS-20 数据包中增加了 memo 字段,以便在发送代币的同时发送其他数据,结合中间件就能实现更复杂的工作流程,如跨链交易和一键式流动性质押。但是,ICS-30 中规定的中间件设计模式经常与 memo 字段结合使用,这引起了对密钥碰撞的普遍关注。此外,堆叠多个中间件对正确格式化 memo 字段提出了挑战,而且中间件必须按照工作流程的正确顺序进行。
IBC denomination 是开发者遇到的另一个难题,因为用户界面需要以人类可读的格式显示 denomination,这需要每个项目维护的注册表来实现。由于代币的流通路径决定了所产生的 IBC denomination,因此通过不同链或渠道到达目的地的代币将不可替代。现有的一些应用利用数据包转发中间件解决了这一问题,不过这些解决方案依赖链外配置来确定从代币原点到目的地的通道 ID。长期解决方案应利用链上注册。
于 2022 年 3 月推出的 ICS-27 即链间账户(ICA),目前只有 8 条链采用了控制器功能。最初的设计要求构建一个定制的身份验证中间件来使用该功能,这对更广泛地采用该功能造成了直接障碍。ibc-go v6 中的重构消除了这一需求,然而,ICA 仍然存在许多痛点,ics-999 和 polytone 等替代解决方案试图解决这些痛点:缺乏跨通道排序、多通道工作流中的原子性以及没有原子性所需的错误处理。
总的来说,IBC 的所有组件对于应用或链开发人员来说都不是那么容易学习和完全理解的。这表现在可信数据包发送方的设计决策上,这可能会导致因通过 IBC 领取空投或信任中间件而被攻击。此外,升级到最新的 ibc-go 版本往往不是优先事项,约有 60% 的链使用不支持的版本。
鉴于上述已存在的诸多问题,IBC 在可用性上亟待改进的点包括:
改善 IBC 用户的开发体验 -- 在单链上部署应用程序的便捷性应向部署跨链应用程序靠拢;
除了 ICS-20(代币传输)之外,还能在 IBC 上使用功能丰富的应用程;
使用 IBC 开发的应用应与使用其他协议有显著的不同。
除了 Interchain 基金会之外,在 IBC 的推广和采用上立下汗马功劳的加密开发公司 Strangelove 也为支持 Interchain 堆栈提出了一个计划。其中 IBC 的采用和市场推广计划尤其值得关注,其中内容包括:
一条 Avalanche Subnet 支持 IBC;
包括非 Cosmos SDK 链在内的 8 条链支持 WASM 轻客户端;
8 条链开始应用合约对合约的 IBC 连接; 除 Composable 之外的另一条波卡平行链与 IBC 直接连接;
为 NEAR 添加 IBC 支持;
以太坊和 Cosmos 之间通过 cometBLS/ZK 进行 IBC 跨链;
8 条区块链支持 IBC-App 和中间件;
4 条链支持 ICS-721 格式 NFT 通过 IBC 跨链。