Cosmos 还憋了哪些大招?解读 Interchain 堆栈 2024 年路线图

    作者:Babywhale,ForesightNewsCosmos开发团队推出的一系列技术解决方案一直都广受Web3开发团队欢迎,无论是CosmosSDK还是IBC,其中很多方案都帮助开发者解决了重复造轮子的问题。虽然Cosmos为Web3带来了诸多产品,但其核心的ATOM代币却一直没有受益于Cosmos生态的膨胀。但去年的Cosmoverse大会上,Cosmos2.0白皮书的发布为ATOM带来了额外的价值,包括为「消费链」提供安全性来收取费用以及捕获MEV收入等。简单来说,如果Cosmos2.0完全实现,则ATOM也将受益于Cosmos生态的不断扩张,所以现在剩下的问题就是尽快实现Cosmos2.0的开发与进一步扩展Cosmos生态。上个月,旨在推动Cosmos生态发展的Interchain基金会公开发布了2024年Interchain堆栈的开发计划,该路线图旨在实现四个战略目标:通过通用化软件来提高模块化程度,以便更轻松地适应特定用例;改善开发人员体验,以便更轻松地使用InterchainStack进行构建;还清技术债务,以便能够更快地取得进展;推动用户采用。这其中有不少计划或许会改变你对Cosmos和ATOM发展前景的判断。CometBFTCometBFT是Interchain状态机的复制引擎,以保证网络的验证者在区块的生成上达成一致,从而确保区块链网络的安全性和一致性。Interchain基金会表示,其目标是通过扩大CometBFT的覆盖范围和适用性来发展Interchain,帮助建立主权互操作应用。此外,包括CometBFT在内的跨链公共产品堆栈需要达到新的灵活性和模块化水平来适应Interchain中应用的日益差异化、提供机构级服务和以多种方式竞争。Interchain基金会于2023年2月发布了CometBFTv0.34,3月又发布了v0.37,其中包括ABCI++的第一部分。3月底发布了v0.38候选版本,这是ABCI++的最后一部分,在最终版本发布前,Interchain基金会会将其集成到CosmosSDK和IBC-go中。Interchain基金会计划在2023年结束之前发布正在准备中的v0.39,其更新包括效率改进(减少带宽和存储消耗)、最终将包含索引器和RPC子系统的DataCompanionAPI等,预计将于2024年初发布,该版本也可能被称为v1。至于什么是ABCI++,先要从ABCI说起。ABCI是应用和共识之间的接口,它的主要作用是执行由共识决定的区块。有了ABCI,应用只用在决策时与共识交互,并且对从mempool中挑选哪些交易几乎没有控制权。ABCI++为共识的每一步都增加了可编程性,允许应用重新排序、修改、放弃、延迟或增加交易,以及通过引入优化产生区块的能力来缩短区块生产时间。

    Sei正是采用了ABCI++来实现优化区块生产、智能区块广播和订单并行执行,从而提高链上交易的处理效率。总结起来,CometBFT为基于该共识机制的链提供了非常定制化的区块构建功能,不同的链可以根据其本身的需求来制定出块和交易排序、执行等的方式,大大提高了链层面优化的想象力。此外,Interchain基金会提出了一个非常宏大的设想:允许应用直接通过ABCI接口利用IBC的功能,而不论其开发采用的虚拟机、框架或模块堆栈如何。如此,即可实现让IBC成为基于CosmosSDK、OPStack、Celestia等开发的链上应用之间的跨链互操作性标准的目标。CosmosSDK说到CosmosSDK,相信大多数人都不陌生。CosmosSDK是一个用于开发区块链或Rollup的工具包,被很多新推出的区块链作为开发的核心工具,除了Cosmos生态的众多应用链,还包括了Fairblock、dYdXV4、Berachain等。在CosmosSDK的开发计划中,Interchain基金会表示新一年的重点将在于模块化和新功能的推出。首先,欠下的「技术债」方面,Cosmos将在包括存储、ABCI的核心层以及包括模块、质押等的一层中将未完成的优化工作继续完成,具体包括:存储:性能、可扩展性。核心:模块化(使用不同的共识引擎:Rollkit、Dymint等);可切换(轻松切换组件:存储、不同的模块加载器(Wasm、FFI、gRPC和本地)、客户端等)。模块:易于在各种虚拟机中证明;减少代码总行数;模块化(允许应用开发人员修改业务逻辑);重写传统模块(Auth、Bank、Staking、Distribution、Mint、Slash等。密码学:重写密钥处理,使其更加模块化,允许他人使用自定义HSM;引入新的加密原语。第二是模块化方面,Interchain基金会认为「模块化」一词在区块链领域被过度使用,其重点在于软件的模块化水平。Interchain基金会表示,将在今年下半年让CosmosSDK在核心层面更加模块化并持续努力至2024年,具体包括:共识模块化:模块化(使用不同的共识引擎:Rollkit、Dymint等);可切换(可轻松切换组件:存储、不同模块加载器(Wasm、FFI、gRPC和本地)、客户端等)。存储:允许切换原有结构;允许模块之间采用不同的结构;读写并行化。模块可组合性:允许用户分叉或插入自定义逻辑(取决于用户反馈)。第三维护方面没有太多值得关注的内容,第四块未来计划方面,Interchain基金会计划推出以下更新:跨语言:模块加载器(WASM、FFI、GRPC);可能与CosmWasm更紧密地结合。

    升级:将模块和VMS的业务逻辑与核心/节点升级分开;实现无缝升级(在目标区块高度之前部署升级);实现从创世状态开始同步。研究:用于证明模块的ZK电路;欺诈和有效性证明。CosmJSCosmJS是一个库,可帮助开发人员将基于JavaScript的客户端与CosmosSDK区块链集成。Interchain基金会计划在CosmJS库中添加新的编码器,提高库的效率,减少代码臃肿,为用户提供更精简、更专业的开发体验。这些更新旨在添加原生可视化、优化包大小、自动编码过程、实现多网络适应性以及创建更精简和可扩展的客户端。此外,这项工作的一个关键方面是利用Telescope的codegen功能来替换某些目标并使其自动化,例如使库更加精简、删除硬编码的辅助方法,以及允许开发人员使用自己选择的模块和辅助方法来定制他们的客户端。CosmWasmCosmWasm是一个为CosmosSDK构建的智能合约框架。一方面,它允许用户以无需许可的方式部署去中心化应用;另一方面,区块链开发者可以将他们的产品开发周期与区块链开发分离,减少验证器的升级次数,从而降低区块链的运行成本。Interchain基金会表示,得益于使用CometBFT的应用链模型、CosmosSDK以及Wasm合约近乎原生的执行速度,Cosmos解决了可扩展性问题,将交易费用降至几分钱,但同时也导致L1中可用的区块空间远远超出了需要。所以需要优化CosmWasm使得更多应用可以被更方便地开发从而提高区块利用率,其中重点包括IBC采用和账户智能化。Interchain基金会表示,到2024年初,CosmWasm2.0将交付并部署到大多数链上。这将为2024年期间发布的2.1、2.2和2.3版功能添加打下基础,新版本的功能将包括:零知识证明验证。通过验证合约中的零知识证明,可以实现安全的链外计算以及各种隐私应用。通过在应用接口中添加配对友好的椭圆曲线加密技术,CosmWasm已经为服务这些应用做好了准备:定义应用程序接口并找到合适的实现方法;提供全栈示例应用,展示如何使用合约中的API;制定基准,设定Gas成本。进一步升级IBC功能。目前已经出现了IBC无法实现的高级用例,这些用例将作为IBC更新的重点:全面支持ADR-8,允许合约对超时和所发送包裹的确认做出反应;支持IBC费用,允许合约为自己的数据包支付费用;创建可选的延迟确认,允许在合约中实施PacketForwardMiddleware以及ICQlongpolling。

    其他偏向底层技术或重要性不高的更新包括维护当前的软件栈、提高存储访问效率、增强authz、创建IBC应用程序、在2025年春季举办黑客松AwesomWasmII、针对DApp开发者的CosmWasm文档、运行CosmWasm测试网以方便开发者测试。IBC协议区块链间通信(IBC)协议是一种区块链互操作性解决方案,允许以安全、无需许可的方式在区块链间进行任意数据传输,以及在区块链、应用和智能合约间无缝地跨链发送和接收数据。从2022年1月到2023年2月,ibc-go为5200万次转账提供了便利,转账金额达290亿美元。目前已有100多条链与IBC网络连接。IBC生态非常丰富。除了由ICF资助的团队开发的应用外,其他协议包括Osmosis的跨链交易;Stride和Neutron广泛使用中间件、ICA和查询;DAODAO创建了Polytone;Evmos建立了IBC预编译器,以便通过EVM进行传输;Injective建立了预言机数据流模块。Interchain基金会表示,IBC在2024年将围绕两个主题进行更新:可扩展性和可用性。可扩展性IBC目前存在诸多挑战。迄今为止,只有CosmosSDK和使用ibc-go的CometBFT链才能实际使用IBC协议。此外,与非Cosmos链建立第一个连接花费了近两年时间。如果每次整合都需要这么长的时间,那么要实现IBC的愿景是根本不可能的。此外,实施本地IBC和中继器所带来的维护开销是巨大的。除了IBC传输和应用实施的维护成本外,每连接一个新的区块链架构,都会产生一个相关的中继器,并产生维护和开发成本。中继器目前没有可持续的现金流,必须为其提供的服务支付Gas费和基础设施费用,包括链外协议来支付基础设施费用、基金会授权或使用CosmosSDK费用赠款模块。据此,在可扩展性方面所需的具体更新包括:最大限度地缩短IBC集成所需的开发时间;降低IBC集成的维护成本;搭建Layer1和Rollup的IBC连接框架。可用性ICS-20(代币转移)是IBC-go于2021年3月推出的第一个应用模块,此后一直是使用最多的应用。

    随着应用变得越来越复杂,仅发送代币显然不足以满足互操作性需求。因此,ICS-20数据包中增加了memo字段,以便在发送代币的同时发送其他数据,结合中间件就能实现更复杂的工作流程,如跨链交易和一键式流动性质押。但是,ICS-30中规定的中间件设计模式经常与memo字段结合使用,这引起了对密钥碰撞的普遍关注。此外,堆叠多个中间件对正确格式化memo字段提出了挑战,而且中间件必须按照工作流程的正确顺序进行。IBCdenomination是开发者遇到的另一个难题,因为用户界面需要以人类可读的格式显示denomination,这需要每个项目维护的注册表来实现。由于代币的流通路径决定了所产生的IBCdenomination,因此通过不同链或渠道到达目的地的代币将不可替代。现有的一些应用利用数据包转发中间件解决了这一问题,不过这些解决方案依赖链外配置来确定从代币原点到目的地的通道ID。长期解决方案应利用链上注册。于2022年3月推出的ICS-27即链间账户(ICA),目前只有8条链采用了控制器功能。最初的设计要求构建一个定制的身份验证中间件来使用该功能,这对更广泛地采用该功能造成了直接障碍。ibc-gov6中的重构消除了这一需求,然而,ICA仍然存在许多痛点,ics-999和polytone等替代解决方案试图解决这些痛点:缺乏跨通道排序、多通道工作流中的原子性以及没有原子性所需的错误处理。总的来说,IBC的所有组件对于应用或链开发人员来说都不是那么容易学习和完全理解的。这表现在可信数据包发送方的设计决策上,这可能会导致因通过IBC领取空投或信任中间件而被攻击。此外,升级到最新的ibc-go版本往往不是优先事项,约有60%的链使用不支持的版本。鉴于上述已存在的诸多问题,IBC在可用性上亟待改进的点包括:改善IBC用户的开发体验--在单链上部署应用程序的便捷性应向部署跨链应用程序靠拢;除了ICS-20(代币传输)之外,还能在IBC上使用功能丰富的应用程;使用IBC开发的应用应与使用其他协议有显著的不同。Strangelove对Interchain堆栈的支持除了Interchain基金会之外,在IBC的推广和采用上立下汗马功劳的加密开发公司Strangelove也为支持Interchain堆栈提出了一个计划。其中IBC的采用和市场推广计划尤其值得关注,其中内容包括:一条AvalancheSubnet支持IBC;包括非CosmosSDK链在内的8条链支持WASM轻客户端;8条链开始应用合约对合约的IBC连接;除Composable之外的另一条波卡平行链与IBC直接连接;为NEAR添加IBC支持;以太坊和Cosmos之间通过cometBLS/ZK进行IBC跨链;8条区块链支持IBC-App和中间件;4条链支持ICS-721格式NFT通过IBC跨链。