ZONE:一文读懂 Hub 与 Zone 架构如何实现 Cosmos 互操作性

在第一部分中,我们从开发一条单独的区块链以及区块链应用程序的视角介绍了Cosmos。但如前所述,Cosmos最关建的特性之一是互操作性,即赋能多种区块链之间的交互。为了更好地理解这一特性的运作原理,我们首先需要了解Cosmos中用于支撑其互操作性的基础架构「Hub以及Zone」。

原文标题:《HowdoesCosmoswork?HowdoesitcomparetoBitcoinandEthereum?(Pt.2)》作者:PreethiKasireddy翻译&校对:安仔Clint&阿剑

Hub和Zone

Cosmos网络中的区块链应用了一种中心辐射模型:

位于中心的是Hub。Hub管理着许多被称为「Zone」的独立区块链,由Hub来追踪记录各个Zone的状态,而每一个Zone有义务不停地把自身产出的新区块反向汇报给Hub。类似地,每一个Zone也需要同步Hub的状态。

但这里有个棘手的问题——Zone之间并不直接同步各自的状态,而是通过发向Hub的数据包间接通信。要想弄清楚这一流程,我们首先需要调研其背后的支撑机制:跨链通信。

IBC是如何工作的

Hub与Zone直接通信,而Zone与Zone之间通过IBC间接通信。当Zone对Hub建立起一个IBC连接,它可以自动访问其他连接到该Hub上的Zone,这意味着Zone无需与其他Zone连接,而仅仅连接到Hub上即可。

通过保持各种跨Zone代币的固定总额,Hub可以预防双重支付问题。这些代币可以通过一种被称为「币包」的特殊IBC数据包而实现Zone之间的跨链转移。

当一个Zone通过Hub收到来自其他Zone的代币时,它只需要信任Hub以及代币来源的Zone,而不需要信任网络中所有其它的Zone。

让我们看个例子:

假设当前由两条区块链:Zone1以及Zone2。现在如果我们想要从Zone1上发送代币到Zone2,会发生什么呢?

要让数据包从Zone1发送到Zone2,Zone1首先要向Hub发送一个指向Zone2的数据包。

紧接着Hub向Zone2发送一则证明,表示Zone1向其发布了一个数据包。

在此之后,Zone2必须验证关于Zone1的证明是否真实。为此,Zone2要利用Zone1存储在Hub中的区块头。我们前面提到过Hub帮助Zone同步记录其它每一个Zone的状态,而Hub是通过记录其它Zone的区块头实现这一功能的。

现在你可能会疑问:为什么Cosmos不直接利用IBC建立Zone与Zone之间的连接?为什么需要进行Hub和Zone的设计?事实上,随着接入到网络中Zone的数量上升,以直连方式实现通信会导致链路数量呈平方级上升。以100个Zone接入到网络中为例,如果各个Zone直接都要建立起IBC连接,则网络中需要有4950条通信链路!如此快速的增长显然会令网络不堪重负。

采用「Hub与Zone」模型令Cosmos能够无视Zone的数量而实现跨链通信,并支持网络的不断拓展。

Cosmos网络的正常运转离不开IBC,正是因为它才能让多条承载着不同应用和验证者集的独立区块链实现互操作。

创世「Hub」:CosmosHub

如前所述,Hub是连接不同Zone的组件,而CosmosHub正是Cosmos网络中第一个Hub,它通过IBC连接其它的Zone。Cosmos网络上构建的第一个区块链会应用该主Hub来与网络中其他的Zone进行交互。这就意味着CosmosHub必须具备足够高的安全性来保证使用它的Zone能安全地进行互操作。

桥接非Tendermint共识的区块链

目前为止,我们探讨了基于Tendermint共识的区块链是如何利用IBC和Hub进行交互的。然而Cosmos并不局限于Tendermint共识链的跨链操作。

我将在下文粗略解释Cosmos如何兼容其它不同共识算法的区块链。

一般来说,区块链可以分成两种类型:不可逆链和概率链。

不可逆链指的是每个区块的状态都是确定的,在未来的任意时刻你都可以从创始块开始复现推演每个区块的状态;概率链是指你只能根据区块链网络参与者在不同分叉链上的比例,而以一定概率认为某条链是主链。Cosmos中的Hub理论上可以接入上述两者,只不过对于概率链的支持在实践中要相对麻烦一些。

这是因为从底层设计来讲,IBC发挥作用的前提在于区块链的不可逆。如果区块链是概率链,Hub就不能保证跨Zone的代币总额固定。如前所述,Hub如果想要实现无双重支付的跨Zone代币转移,就必须保证在Zone与Zone之间某一代币的总额是固定的。

Cosoms试图通过「PegZone」来实现概率链的互操作性。

PegZone是追踪记录另一条区块链状态的区块链,它要将自己桥接的某条概率链上的状态确定为不可逆的,使得这些状态得以与IBC兼容。

还跟得上吗,少年?现在我只剩下最后一个问题要跟你探讨:区块链究竟为什么需要要互操作性?

为什么互操作性如此重要?

众所周知,区块链是不可逆账本。然而和其他软件一样,随着时间推移,用于构建区块链的软件也需要进行迭代和升级。一蹴而就、无懈可击的软件简直是天方夜谭,所以软件的改动不可避免。「治理」问题就是讨论如何对区块链底层软件的改动进行提案、决议以及应用。

以比特币为例,由比特币基金会、比特币核心开发者、矿工以及用户来发起底层改动的提案,并以协作的方式实现升级。而以太坊则依靠开发者和用户社区的群策群力来做出此类决议。

Cosmos的做法与上述两者大相径庭。不同于常见的、统摄全网的治理机制,Cosmos允许每个Hub构建自己的治理策略。

任何持币人都可以发起变更提案,由该Zone或Hub的验证者和持币委托人对提案进行投票。提案的内容包括但不限于对系统预置参数的变更、软件更新,甚至是hub在处理窃币、入侵或漏洞时所采取的政策性升级。

同样每个Zone也具备各自的治理机制。

举例而言,Cosmos支持在Hub端强制应用不可逆性的同时,每一个Zone都可以根据自身需要设置是否不可逆。想要了解更多,可以阅读这篇文章《Cosmos中的Hub治理机制流程》。

在我看来这种设计十分强大,同时也被大大低估了。如果非要从本篇博文中提取出什么核心论点的话,也就是下面这一段话了:

Cosmos在底层设计上不认为能通过有限的规则治理大千世界中形形色色的经济网络,不认为存在特定的一个规则集合让大家都称心如意。这一道理不言自明,看看比特币自运行以来由于哲学和分歧引起的众多分叉。另一方面,从以太坊的治理中我们可以看出,持币人无法以规范的形式实现治理或是形成合力拒绝不规范的治理,这对生态的发展起到了副作用,阻碍了以太坊的更新升级。

Cosmos试图通过独立区块链之间的互操作性解决这一问题,即使并且尤其这些区块链拥有不同的治理政策。因此Cosmos最核心的价值属性就是在社会和经济领域的可拓展性。它为其生态之上的用户和开发者提供了无限的自由,以及不加约束的实验潜能。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:0ms0-7:569ms