如何构建一条基于Cosmos的应用专属链

MarsBit
媒体专栏
热度: 13110

链间账户实现了可组合性,而不是互操作性。

原文标题:The Application-Specific Chain Thesis

原文作者:Maven11

原文来源:maven11Research

编译:西早先生,MarsBit Intern

在过去的几周里,因为有些应用和建设者决定建立他们的应用专属链,有些表示对此有兴趣,Cosmos生态系统因此重新火热起来。这是在Terra生态系统消亡后发生的,并且Terra对IBC生态系统也产生了一些影响。不过,我们认为值得注意的是,整个技术堆栈依旧非常好。事实证明,尽管处理的交易量极为不稳定,它仍能够通过IBC跨链、以Tendermint为共识的Cosmos SDK、ABCI和定制化的的虚拟机,来处理内外部的信息传达和资产转移。在这篇文章中,我们想要解释应用专属链兴起背后的逻辑,以及为什么应用专属链带来的主权、可组合性和互操作性对未来建立 "杀手级应用 "和生态系统至关重要。

在探讨理论之前,我们要在同一频道上,我们才能以一种浅显的方式,介绍一些Cosmos生态系统独特的技术。

在以Tendermint为基础的使用ABCI和Cosmos SDK的链中,整体架构看起来如下:

Cosmos SDK

IBC

Cosmos SDK是一套模块化的工具,它使区块链开发者能以与虚拟机兼容的方式(VM agnostic manner)构建其应用层逻辑。Cosmos SDK的设计原理是通过ABCI连接到Tendermint。除了可以创建特定应用区块链的框架,Cosmos SDK还有各种定制选项,如协议兼容治理、交易和质押机制等等。SDK处理应用逻辑层所需的大部分任务,这意味着开发人员不需要从零开始。从Tendermint共识引擎收到的交易由SDK通过一个路由器处理,该路由器将消息与状态变化一起发送到适当的处理模块中。

ABCI

ABCI是连接区块链应用部分和Tendermint状态复制引擎的接口,该状态复制引擎负责提供共识和网络机制。ABCI实现了区块链叠层的拆分,这意味着区块链的应用部分是可以兼容虚拟机的,因此,任何虚拟机和执行环境都可以用于叠层的应用部分。这方面的例子有Junowasm、Cosmwasm、Agoric的Hardened Javascript,甚至允许使用TEE的Secret的Cosmwasm版本也是一样。Tendermint本身创建了三个ABCI到应用部分的接口。这些既是对内存池广播交易的验证,也是应用程序和用于区块建议的共识引擎之间的连接,同样是查询应用程序状态的能力。

IBC

ABCI的功能

 

Tendermint

Tendermint Core负责Cosmos生态系统中链的共识层和网络层。通过网络参与者之间的共识算法,共识层可以保证交易的有效性和顺序。在Tendermint之下,共识层是权益证明(PoS)中的验证者。网络层负责促进系统中节点之间的点对点通信,并使第三方应用程序和节点能连接共识层。

Tendermint使用拜占庭容错(BFT)共识模型,并且能够实现即时确定性。在被提议区块达到最终承诺阶段之前,BFT过程会经历三个阶段。这三个阶段是:1、提议阶段,一个区块被指定在一个特定的高度;2、预投票阶段,三分之二的验证者对提议的区块进行预投票;3、预承诺阶段,三分之二的验证者对提议的区块进行预承诺。

IBC

Tendermints的BFT进程((Timeout: Small wait time to receive a proposal, or establish skip))

 

IBC

区块链间通信(IBC)的核心是同质区块链的跨链信息传递协议。这意味着IBC连接了具有类似功能的链,比如说,它连接了由Tendermint共识算法提供的即时确定性和那些具有轻型客户端功能的链。IBC的工作方式是,两个想要相互连接的链可以在目标链上提出治理建议。以前通常是通过Cosmos Hub或Osmosis(目前Osmosis有45个同行,而Cosmos有40个)。也就是说,在协议层面上有一个协定,因此,不需要外部桥梁的可信第三方。

然后,这两条链需要双方链上的轻型客户端来加密验证两条链之间的共识状态,还需要一个中继器在他们之间传递信息。中继器必须是功能正常的,也就是能够在节点之间交换信息,使节点成功达成共识。我们来研究一下在实践中是怎样的:

IBC

这意味着信任假设存在于连接区块链的两个验证器组内,因此,与其他类型的桥和信息传递协议相比,验证器组内的信任假设要少得多。举个例子,因为Polkadot生态系统中的XCMP,信任假设只在于中继链(Polkadot)。

为了显示IBC在Cosmos生态系统中的兼容性和广泛性,以及它所连接的链的数量,我们需要看看下面这张图,它显示了当前的实时连接。

IBC来源:mapofzones.com

 

ICS

ICS是Interchain Standard的缩写,使用IBC的区块链之间的交易参数由它决定。基本上,ICS是IBC交易的模块规范。对于两个使用IBC的链来说,他们得有相同的ICS规范。

其中一个更有趣和独特的ICS是ICS-27,它被称为链间账户。

ICS-27

链间账户实现了可组合性,而不是互操作性。它们允许不同链上的人交换数据,将一条链上的智能合约状态写到另一条链上。也就是说,只要指定交易的端口遵守ICS规范,用户就能够用源链上的单一接口来转移资产或传递信息,而不需要多种接口。 

只要都支持ICS-27,一条链在另一条链上创建账户,就能够通过IBC交易控制这些账户。链间账户保留了普通账户的所有能力,但它既不是由单独的链控制,也不是由终端用户通过IBC控制,这样一来,源链上的所有者能完全控制目标链上的链间账户。

当初始化一个链间账户交易时,你需要用IBC来发送一个非IBC交易(IBC交易中的非IBC交易)。典型的例子是 "信装在信封里,信封装在盒子里 "的概念。

IBC

链间账户交易

 

该程序发生在IBC交易之后,同时它需要符合每条链都具备的ICS规范。这意味着,交易能够从特定应用进阶到兼容应用,换句话说,它实现了真正意义上的在不同网络中的可组合性。

链间安全

链间安全允许链或枢纽为其他链产出区块。验证者可以运行两个(或更多)节点,每条链上一个节点,但只需要在主链上质押原生代币。这是由跨链验证实现的,这也是IBC级别的协议。子链使用IBC与主链通信,追踪有哪些验证者使用跨链验证参与了链间安全。通过这种方式,主链上锁定权益而获得的安全性可以与子链共享。因此,用户链或子链从主链上获得安全保障,便不需要建立自己的验证节点(validator set)。这使得资本负担较轻的应用能够轻松地启动自己的链,同时以现有的验证节点获得稳定的安全性。

主链负责为一组子链产出区块。验证者从他们正在验证的链上获得质押奖励。削减工作量是为了减少恶意行为。

理论

应用专属的区块链,使我们能称之为区块空间的 "仓储"。如果你把区块链叠层结构看作是一个供应的链,那么叠层中各部分的区块空间在技术上来说,是被链或层上的应用 “购买"的。这意味着,应用与同一区块空间里其他无数不同的应用一起支付gas费,这导致区块空间高度拥挤和且竞争性大,从而推动了费用上涨。有着上千个应用整体链在高度拥挤之下造成费用飙升,然后高昂的费用被转嫁到终端用户身上。在一条特定应用链上,应用本身能够很好地控制终端用户支付的费用,并将费用保持稳定。

一个极好的例子是Osmosis。很多应用想要彻底减少快速上涨的费用,Osmosis能让这些应用更容易地向用户补贴费用。例如,应用可以补贴某一时间段的平均费用,用户不必担心因高度拥挤而导致的费用飙升。

这意味着该应用拥有自己的仓储,而不是依赖于出租仓库的一个小块。

IBC

区块空间仓储

因为这样的应用不依赖某一条链作为仓库,这将意味着为应用会承担费用较高的风险,类似商店的库存风险。也就是说,应用本身及其延伸的风险,社区可以参与并进行库存风险管理。这样提高了资源定价的效率,高效率也为应用创造了更好的经济模式。

由于应用程序是链的所有者,应用便能够允许自我管理费用结构,这意味着你不再受所在链的控制,你可以自主决定链上资源的成本。

除此之外,底层技术堆栈允许灵活性,而灵活性可以在应用层进行优化,同时,因为灵活性的原生跨链信息传递系统,它在大生态系统中链之间能够保持可组合性。这种可组合性不需要与第三方的信任假设,但允许两条链的验证者集进行通信,以此作为信任假设。

在Cosmos流行之前,应用和基础(链)之间存在着明显的鸿沟,具有IBC的特定应用链打破了这一障碍,使应用成为可连接和可组合的基础设施。

声明:本文为入驻“MarsBit 专栏”作者作品,不代表MarsBit官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
免责声明:本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况,及遵守所在国家和地区的相关法律法规。