原文:https://rainandcoffee.substack.com/p/the-application-specific-chain-thesis?utm_source=%2Fprofile%2F14239335-rainandcoffee&utm_medium=reader2
作者:RainandCoffee
过去几周,更广泛的 Cosmos 生态系统出现了复兴,因为应用程序和构建者要么决定构建自己的应用程序特定链,要么表示有兴趣这样做。这是在 Terra 生态系统消亡之后发生的,该生态系统也对更广泛的 IBC 生态系统产生了一些影响。然而,我们认为需要注意的重要一点是,整个堆栈在技术方面都表现得非常好。事实证明,尽管交易量非常不稳定,但它能够通过 IBC 跨链处理内部和外部的消息和资产传输,也可以通过 Cosmos SDK 与 Tendermint、ABCI 和定制的 VM 在内部链上处理。在本文中,我们旨在解释特定应用区块链兴起背后的论点,以及为什么它们带来的主权、可组合性和互操作性对于在即将到来的周期中构建下一个“杀手级应用”和生态系统至关重要。
在我们深入研究这一论题之前,我们有必要达成共识,因此,我们将以一种易于消化的方式简要介绍一些 Cosmos 生态系统中独特的技术。
使用 ABCI 和 Cosmos SDK 的基于 Tendermint 的链的整体架构如下所示:
Cosmos SDK
Cosmos SDK 是一套模块化工具,允许区块链开发者以与虚拟机无关的方式构建他们的应用层逻辑。Cosmos SDK 被设计为通过 ABCI与Tendermint连接。除了作为允许创建特定于应用程序的区块链框架之外,它还允许各种自定义选项,如与协议无关的治理、交易和质押机制等等。SDK 处理应用逻辑层所需的大部分任务,这意味着开发人员不需要完全从头开始构建。它通过路由器处理从 Tendermint 共识引擎收到的交易,该路由器将消息与状态变化一起发送到适当的处理模块。
ABCI
ABCI 是连接区块链应用部分,和提供共识和网络机制的 Tendermint 状态复制引擎接口。ABCI 实现了区块链堆栈的拆分,这意味着区块链应用部分可以与虚拟机无关,因此,任何虚拟机和执行环境都可以用于堆栈的应用部分。例如 Junowasm、Cosmwasm、Agoric 的 Hardened Javascript,甚至Secret版本的Cosmwasm(允许使用TEE)。Tendermint 本身创建了三个 ABCI 连接到应用部分,负责在内存池广播时对交易的验证,应用程序和共识引擎之间的连接,以及用于区块建议和查询应用程序的状态的能力。
Tendermint
Tendermint Core是负责 Cosmos 生态系统中链的共识和网络层。共识层是通过网络参与者之间的共识算法过程来保证交易的有效性和顺序,网络层负责促进系统中节点之间的点对点通信,并使第三方应用程序和节点能够与共识层互动。
Tendermint 使用拜占庭容错( BFT )共识模型,并实现即时终结。BFT 过程在提议块的最终提交阶段之前经历了三个阶段。这三个阶段是:
- 提议阶段,一个区块被指定在一个特定的高度;
- 预投票阶段,2/3 的验证者对提议的区块进行预投票;
- 预提交步骤,2/3 的验证者对提议的区块进行预提交。
IBC
Inter-Blockchain Communication(IBC)的核心是同质区块链的跨链信息传递协议。这意味着它连接了共享相似功能的链,在这种情况下,Tendermint 共识算法提供的即时确定性和具有轻客户端功能的链。IBC 的工作方式是,两个有兴趣相互连接的链将在目标链上提出治理建议。这通常是通过 Cosmos Hub 或 Osmosis(目前 Osmosis 能连接 45 个,Cosmos 有 40 个)。这意味着在协议层面上有一个协议,因此,不需要在外部桥中使用可信的第三方。
然后,这两条链需要彼此链上的一个轻客户端来加密验证两条链之间的共识状态,还需要一个中继器在两条链上的轻客户端之间传递信息。中继器是活动所必需的——能够在节点之间交换信息,节点成功达成共识。让我们来探讨一下实际情况:
这意味着信任假设位于连接区块链的两个验证器中,因此信任假设比其他类型的跨链桥和消息传递协议要少得多。例如,在 Polkadot 生态系统中的 XCMP,信任假设只在于中继链(Polkadot)。
为了显示 IBC 在 Cosmos 生态系统中的兼容性和广泛性,以及它所连接链的数量--让我们看一下当前的实时连接规模:
ICS
ICS 是 Interchain Standard 的缩写,并使用发生中 IBC 的链之间的交易设置参数。ICS 基本上是 IBC 交易的模块规范,对于两个使用 IBC 的链来说,他们需要拥有相同的 ICS。
其中一个有趣和独特的 ICS 是 ICS-27,也被称为链间账户。
ICS-27
链间账户实现了可组合性,也就是互操作性。它们允许链上的人不仅只交换数据,还可以将状态从一个链上的一个智能合约写到另一个链上。这意味着,只要指定交易的端点,用户将能够利用源链上的单一接口,而不是在资产或消息转移时需要在各种接口之间移动。支持 ICS-27 的链在其他支持 ICS-27 的链上创建账户,并能够通过 IBC 交易控制这些账户。链间账户保留了普通账户的所有功能,但由单独的链或最终用户通过 IBC 进行操作,这样,以便源链上的所有者对其在目标链上登记的任何跨链账户保持完全控制。
IBC 交易后的程序按照每条链必须具备的 ICS 规范进行。这意味着,它允许交易从特定的应用变成与应用无关,换句话说--它实现了在一系列不同网络中的真正可组合性。
链间安全
链间安全允许一个链或枢纽为其他链生产区块。验证者运行两个(或更多)节点,每个链上都有一个,但只需在主链上抵押他们的原生代币。这是由跨链验证实现的,这是一个 IBC 级别的协议。子链使用 IBC 与主链进行通信,以跟踪哪些验证者正在使用跨链验证参与链间安全。通过这种方式,从主链上锁定的价值中获得的安全性与子链共享。因此,消费者/子链从主链上获得安全保障,而不需要建立自己的验证器。这使得资本负担较轻的应用能够轻松地启动自己的链,同时保留现有验证器的强大安全水平。
主链负责为一组子链生成区块,验证者将从他们正在验证的链中获得质押奖励,Slashing 有助于防止验证者做出恶意行为。
总结
特定于应用程序的区块链实现了我们所谓的区块空间“仓储”。如果你把区块链堆栈看作是一个供应链,那么堆栈各个部分的区块空间在技术上是由其所在的链/层上的应用程序“购买”的。这意味着,它与无数不同的应用程序一起为居住在同一区块空间的气体支付费用,这导致它高度拥挤和竞争,因此推动了费用上涨。
这种由数以千计的应用所居住的严重拥挤的单体链造成的费用飙升,然后被推到用户身上,他们不得不承担沉重的费用。在一个特定应用链上,应用本身能够更好地控制由最终用户支付的费用,并让他们有能力将其保持在一个恒定的水平,这方面的一个很好的例子是 Osmosis。
由于这样的应用不依赖 X 或 Y 链作为仓库,这将意味着为应用承担平均费用较高的风险,类似于商店的库存风险。这意味着应用程序本身以及作为其延伸的社区,可以参与并进行库存风险管理。这导致了资源定价的效率,然后又反过来导致应用程序更好的经济模式。
由于应用程序是它所居住的链的所有者,它允许收费结构的自我管理,这意味着你不再受你所居住的链的影响,你决定你的链上的每个资源的成本。
除此之外,底层技术栈所允许的灵活性允许在应用层进行优化,同时由于其原生的跨链信息传递系统,在更大的生态系统中保持链之间的可组合性,这种可组合性完全不需要第三方的信任。
在 Cosmos 盛行之前,应用和基础设施(链)之间存在着明显的鸿沟,而具有 IBC 的特定应用链将打破了这一屏障,并允许应用程序成为连接和可组合的基础设施。