这篇文章探讨了Cosmos生态系统中应用特定区块链的崛起,分析了Tendermint、Cosmos SDK和ABCI的技术架构,强调了这些技术如何支持应用程序的主权、可组合性和互操作性,从而促进未来的生态系统发展。文章还讨论了不同模块之间的交互以及Interchain Security的概念,提出应用特定链能有效解决区块空间的拥堵问题,为应用提供更高的数据处理效率和经济模型优化。
在过去几周,整个 Cosmos 生态系统经历了一次复兴,许多应用和开发者决定构建自己的特定应用链,或表达了有此兴趣。这发生在 Terra 生态系统崩溃之后,该事件也对更广泛的 IBC 生态系统产生了一些影响。然而,我们认为重要的是需要注意的是整个技术栈的表现非常出色。它证明了尽管成交量波动极其剧烈,它仍然能够通过 IBC 跨链处理内部和外部的信息和资产转移,同时也能在 Cosmos SDK 内部通过 Tendermint、ABCI 和定制化的 VM 处理。这篇文章的目的是解释特定应用区块链崛起背后的理论,以及它们所带来的主权、可组合性和互操作性对于构建下一个“杀手级应用”和生态系统的重要性。
在我们深入理论之前,确保我们在同一频道上非常重要,因此,我们将简要介绍一些使 Cosmos 生态系统独特的各种技术方面,以便于理解。
基于 Tendermint 的链使用 ABCI 和 Cosmos SDK 的整体架构如下所示:
Cosmos SDK 是一组模块化工具,允许区块链开发者以虚拟机无关的方式构建其应用层逻辑。Cosmos SDK 旨在通过 ABCI 连接到 Tendermint。除了作为一个允许创建特定应用区块链的框架外,它还允许各种定制选项,例如协议无关的治理、交易和质押机制等等。SDK 处理大部分应用逻辑层所需的任务,这意味着开发者不需要从头开始构建。它通过一个路由器处理从 Tendermint 共识引擎接收到的事务,该路由器将消息发送到适当的处理模块和状态更改。
ABCI 是将区块链的应用部分连接到提供共识和网络机制的 Tendermint 状态复制引擎的接口。ABCI 使区块链栈的分离成为可能,这意味着区块链的应用部分可以是虚拟机无关的,因此,可以为栈的应用部分使用任何虚拟机和执行环境。这其中的示例有 Junowasm、Cosmwasm、Agoric 的增强版 Javascript,甚至是 Secret 的 Cosmwasm 版本,它允许使用 TEE。Tendermint 本身会为应用部分创建三个 ABCI 连接。这些连接包括在内存池中广播时对交易的验证、应用与共识引擎之间的连接以进行区块提议,以及查询应用状态的能力。
ABCI 的功能
Tendermint Core 负责 Cosmos 生态系统中链的共识和网络层。共识层 保证通过网络参与者之间的共识算法过程(在 Tendermint 的案例中为质押证明机制中的验证者)来确保交易的有效性和顺序。网络层 负责促进系统节点之间的点对点通信,并使第三方应用和节点能够与共识层进行交互。
Tendermint 使用一种拜占庭容错 (BFT) 共识模型,并实现即时最终性。BFT 过程经历三个阶段,然后进入提议块的最终承诺阶段。这三个阶段是 提议阶段,在该阶段某个区块在特定高度上被指定; 预投票阶段,在该阶段 2/3 的验证者对提议的区块进行预投票;以及 预提交步骤,在该阶段 2/3 的验证者对提议的区块进行预提交。
Tendermint 的 BFT 过程(超时:小的等待时间以接收提议或建立跳过)
跨链通信(IBC)在其核心是一个针对同质区块链的跨链消息协议。这意味着它连接共享相似功能的链,在这种情况下,由 Tendermint 共识算法提供的即时最终性,以及具有轻客户端功能的链。IBC 的工作原理是,两个希望连接到彼此的链将在目标链上提出治理提案。通常,这开始于 Cosmos Hub 或 Osmosis(当前 Osmosis 有 45 个对等节点,而 Cosmos 有 40 个)。这意味着双方在协议层达成 consensus,因此不需要外部桥梁中的受信任第三方。
这两条链需要在彼此的链上设置轻客户端,以便加密验证两条链之间的共识状态,以及 relayer 用于在两条链的轻客户端之间中继信息。relayer 是保持活跃的必要条件 - 它能够在节点之间交换消息,以便节点能够成功达成共识。让我们看看这在实践中是怎样的:
这意味着信任假设存在于已连接区块链的两个验证者集中,因此与其他类型的桥梁和消息协议相比,信任假设要少得多。例如,在 Polkadot 生态系统中,XCMP 的信任假设完全依赖于继承链(Polkadot)。
为了展示 IBC 在 Cosmos 生态系统中已变得多么兼容和广泛,以及它连接了多少条链 - 让我们看看当前实时连接的地图。
来源:mapofzones.com
ICS 代表跨链标准,设定通过 IBC 进行的跨链交易的参数。ICS 基本上是 IBC 交易的模块说明。为了使用 IBC 通信,两个链必须具有相同的 ICS 规范。
其中一个更有趣和独特的 ICS 是 ICS-27,也称为跨链账户。
跨链账户 启用了可组合性而不只是互操作性。它们允许链之间不仅交换数据,还能够将一个链上的智能合约的状态写入到另一个链上。这意味着用户不再需要在各种界面间移动,因为资产或消息的转移,而是可以在源链上利用一个单一界面,只要指定了交易的端点。
启用 ICS-27 的链可以在其他 ICS-27 启用的链上创建账户,并能够通过 IBC 交易控制这些账户。跨链账户具有普通账户的所有能力,但由通过 IBC 操作的不同链或终端用户控制,因此源链上的所有者对其在目标链上指定的任何跨链账户保持完全控制。
在初始化跨链账户交易时,你会通过 IBC 发送非 IBC 交易(在 IBC 交易中的非 IBC 交易)- 通常用来解释这一点的一个例子是“信中的信封内的信”。
跨链账户交易
在 IBC 交易发生后的程序遵循每个链必须拥有的 ICS 规范。这意味着这使得交易从特定应用变得通用,换句话说 - 它在不同网络之间实现了真正的可组合性。
链间安全允许一个链或集线器为其他链生成区块。验证者在每条链上运行两个(或多个)节点,但只需在主链上质押其原生代币。这是通过跨链验证启用的,跨链验证是一种 IBC 级别的协议。子链使用 IBC 与主链通信,以跟踪哪些验证者参与跨链安全和跨链验证。通过这种方式,从锁定在主链上的质押价值中获得的安全性与子链共享。因此,消费者/子链从主链获得安全性,不必自身建立自己的验证者集。这使得资本需求较低的应用能够轻松启动自己的链,同时从现有的验证者集中保持强大的安全性。
主链负责为一组子链生成区块。验证者将收到来自它们所验证的链(子链)中的质押奖励。惩罚机制确保没有任何验证者采取恶意行为。
特定应用区块链使我们可以称之为“区块空间仓储”。如果将区块链栈视为供应链,则栈上不同部分的区块空间技术上是由其所占据的链/层上的应用“购买”的。这意味着它为Gas费支付费用,同时与同一区块空间上所有应用一起竞争,这使得区块空间高度拥挤,竞争加剧,因此推动费用上涨。这种因为千千万万应用占据的高度拥挤的单一链导致的费用飙升则转嫁给最终用户,最终用户不得不承担沉重的成本。在特定应用链上,应用本身能更好地控制最终用户所支付的费用,并给予其保持一致的能力。Osmosis 就是一个很好的例子。它还使得想要完全消除费用波动结构的应用能够更轻松地补贴费用。例如,一个应用可以在特定时间段内补贴平均费用,而无须担心因为繁忙而导致的费用飙升。
这意味着应用拥有自己的仓储,而不是依赖于在某个角落租用一个托盘。
区块空间仓储
因此,应用不依赖 x 或 y 链作为仓储,这意味着承担了平均费用对应用更加昂贵的风险,类似于商店的库存风险。这意味着应用本身以及其社区可以参与并进行库存风险管理。这造成了资源定价效率,从而导致更好的经济模型。
由于应用是其所占据链的所有者,它允许对费用结构进行自我治理,这意味着你不再处于居住链的不确定之中,你决定你的链上每个资源的费用。
除此之外,基础技术栈所允许的灵活性使得在应用层进行优化,同时保留在更广泛生态系统中各链之间的可组合性,这要归功于其本地跨链消息系统。这种可组合性不需要信任假设与第三方建立,而是允许两个进行通信的链的验证者集成为信任假设。
在 Cosmos 兴起之前,应用与基础设施(区块链)之间存在明显的分隔,特定应用链与 IBC 打破了这一界限,从而允许应用成为连接和可组合的基础设施。
- 原文链接: maven11.substack.com/p/t...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!