跨链项目Polkadot和Cosmos对比



如果说 2017 年之前的区块链是诸侯分割,那么之后的 2 年中人们谈论更多的可能是如何让无数条链变得略加统一些,毕竟每一条公链都声称自己会是未来的底层操作系统,但哪怕真的有 10 条这样的链产生,人们也依然无法达成链间协作的目的。尤其是当区块链的协议越来越多且资产交互也越来越频繁时,人们迫切需要一类技术来让不同链之间能够产生交互,而这就是跨链技术慢慢产生和逐渐成熟的原因。

当然跨链Cross Chain并不是最近两年才出现,跨链最早可追溯到 2012 年,当时的瑞波实验室提出了一种名为 Interledger 的协议,该协议旨在连接不同区块链账本并实现它们之间的协同,而它的目标是要打造一个全球统一的支付标准,创建统一的网络金融传输的协议。简单来说瑞波带来的跨链更像一种支付协议,它通过设定一个自动执行的中间商,让交易双方的信息汇聚到一起,一旦双方约定达成便自动完成交易,其实这种跨链更像后来的一种特殊智能合约,而不是我们现在所熟知的跨链。那么在跨链提出来的 8 年后,跨链领域究竟发生了怎样的巨变,又将走向何方,本期尝试通过Polkadot和Cosmos 两个跨链项目来讨论跨链的发展。

当我们谈到跨链时大家可能都听过这个词,甚至把它作为区块链热门词汇也不足为过,毕竟区块链的世界也需要一些新鲜的故事来填补历史的空缺,至于智能合约和公链已经是 2 年前的故事,而跨链似乎更符合区块链发展的宏伟目标。有些朋友可能真的以为跨链是能把类似比特币链上的资产通过跨链的方式转移到以太坊上来,就像把桌子上的苹果和梨交换位置一样,似乎这样听起来的确很神奇,但跨链真的如此吗?在区块链世界里我们常讲的跨链其实更像一种人民币和美元兑换的关系,什么意思呢?跨链好比我们将人民币兑换成美元和欧元或者其他货币,而中间的兑换过程我们称为跨链,这也是较早期跨链所留存的形态,但它并不是物物交换一般的真实转移,而是价值的对等交换。

因此2012 年之后几年提出的跨链其实通常代指资产跨链,它包括了我们熟知的双向锚定和哈希时间锁以及资产质押转移和联邦签名等等,而这些是实现的方式,它们的目标都不是为了完成变魔法一般的将链上比特币转换成其他类型的通证,而只是资产的形式转换。

币的跨链有一个非常重要的概念叫原子交换。所谓的原子交换是指A链上的一笔交易和B链上的一笔交易,要么同时成立要么同时不成立。比如BTC和LTC两个人,王坦克愿意拿1个BTC换张大炮的100LTC,为了防止毁约双方使用原子交换技术来完成币的互换。

首先王坦克给张大炮一个LTC地址,而张大炮给王坦克一个BTC地址。接着王坦克使用原子交换协议构建了一笔BTC交易将1个BTC发到张大炮的BTC地址。这笔交易成立的条件是王坦克的LTC地址收到张大炮发送过来的100LTC。然后张大炮使用原子交换协议构建了一笔LTC交易,将100个LTC发到王坦克的LTC地址。这笔LTC交易成立的条件是张大炮的BTC地址收到了王坦克发送过来的1个BTC。最后上述两笔交易要么同时成立要么同时不成立,没有任何一方可以做到在收到对方的虚拟币后不给币就跑路。这就是币的跨链。本质上币的跨链并没有真实的币从一条链跑到另外一条链,只是币在各自链上相互纠缠一样锁定和解锁的状态。当然还有其它的方式例如合约跨链,具体的实现方式和原理我就不过多讨论了。

最近一位区块链技术资深人士谈到了一个更有趣的关于跨链的描述,首先他给共识穿透下了个定义,共识穿透是指两条不同共识的区块链,如何从共识层打通,让两条链互联有无,最终实现共识跨链。我们认为跨链的基本作用是实现链间资产的交互,其次是信息交互,而放大来说跨链需要解决的其实是相同共识下链与链之间的信息传递与交互,但更本质来说跨链解决的是不同共识下链与链之间的 Transaction,而能解决这个问题的方式或者技术我们称为跨链。

现在让我们来讨论Polkadot 的跨链是如何实现的?

Polkadot 号称跨链之王,是当下最复杂最庞大的设计之一。那么它是一种怎样的结构,又是以什么方式来实现跨链的呢?以前我们说过以太坊 2.0 是同构分片,Polkadot 是异构分片的结构。Polkadot 的主要结构是由主链即中继链,再连接其他分片即平行链组成的。要清楚的理解 Polkadot 的结构,我们需要理解 Polkadot 结构的三条重要的链,也就是中继链和平行链以及转接桥平行链与四个重要的角色。

其中中继链是负责处理网络中整体的共识和安全性的主链,平行链是基于 Substrate 框架做出来的与中继链有相同共识的分片,转接桥平行链是由于一些已经成熟的区块链,比如比特币和以太坊与Polkadot 的底层共识不一样,不能直接连接到中继链上,所以通过在 Polkadot 的平行链和外部的区块链上部署智能合约来达到桥的效果,来实现跨链的功能。

如果一条中继链能连接的平行链和转接桥是有限的,那么中继链还可以通过生成或者连接一个二级中继链,进一步扩大自己的连接能力,而二级中继链还可以再连接新的中继链,以此类推从理论上讲 Polkadot 的这个结构具有无限扩展性,可以连接所有的区块链。Polkadot 网络有四个基本的角色在维持。第一个是收集人也就是帮助验证人收集和验证以及提交备选的平行链区块。第二个是提名人即类似于比特币矿工。第三个是验证人即类似于比特币的矿池并打包网络区块。第四个是钓鱼人即防止网络作恶和负责举报其他角色。


那么Polkadot如何实现跨链?Polkadot 主要是通过跨链消息传递方案XCMP来传递消息,下面我们通过一个趣味的方式来说明跨链的具体实现流程。假如有个这样的场景,我要用 1 个平行链 A 的资产和你交换 10 个平行链 B 的资产,那么如果把平行链 A 比作美国,平行链 B 比作日本,就相当于我用1万美元和你交换 10 万日元,那么整个跨链的流程就是我在美国的银行发起一笔转账,转给你在美国的账户 1 万美元,美国的收集人就注明我给你在美国的账户转 1 万美元,并且求你在日本这边的银行给我转 10 万日元。美国的收集人准备将这个信息连同目的地与时间一并传递到日本,这些信息会先放置在美国的输出队列中,传递之前需要经过美国的验证人确认这笔交易后,就会经过中继链这个组织将该信息从美国的输出队列放置到日本的输入队列。当日本的验证人会收到该信息后,通过日本这边的收集人来执行信息中的要求,然后将你账户中的 10 万日元转到了我在日本的账户中,由此完成整个过程。

而映射到区块链网路中同样是这样的路径,美国和日本就好比不同的区块链,通过该方式就完成了两个信息孤岛的网络的链接,而具体 Polkadot的跨链实现,整个过程全部由区块链和智能合约执行,是以去中心化的方式做到链间通讯的。

最后我们来讨论Cosmos 的跨链是如何实现的?

虽然 Polkadot 作为跨链领域当下的王者,但是人们常常以 Cosmos作为Polkadot 的有力对手相比较,因此我们需要以同样的角度浅谈一些关于 Cosmos 的跨链构成。同样 Cosmos 也是采用了中继链的方式来进行跨链交互,但 Cosmos 意在提供一个标准的协议IBC让其他区块链接入该协议后完成信息交互。我们将 Cosmos 的结构进行拆分后可分为 Zones和Hubs,Zones 相当于Polkadot 中的平行链,而 Hubs 则对应了 Polkadot 中的中继链即负责监视其他链是否正常运行,总体来说Hub 管理着被称为 Zone的独立区块链,而由 Hub 来追踪记录各个 Zone 的状态。而他们之间的信息传递是有被称为IBC也就是区块链之间的通信协议来负责传输信息。而基于这些底层构成和通信协议,Cosmos 还开发了一个名为 Cosmos SDK 的一个通用框架,它的目标是创建一个模块生态系统,允许开发人员轻松地创建特定应用的区块链,而无需从头开始编写应用的每个功能,从而大大减少程序员在区块链底层开发上花费的时间。

那么Cosmos 如何实现跨链?Cosmos 将区块链拆分出了共识层和网络层以及应用层,这能让开发者在开发各种类型应用的时候有更大的灵活性。因此Cosmos 的跨链方式其实是通过自己搭建一套区块链开发框架,来让其他区块链在此框架上进行开发,并满足自身像 BFT 共识算法或者 Cosmos SDK 这样的应用加入进去,这样的理想状态听起来似乎很有趣,但离真正的跨链依然有不少差距,所以它依然在轻节点跨链的方式上努力着。

最后尽管我们了解到有许多跨链的方式,但是我们更推崇的还是 Polkadot 设计的跨链形式,因为许多跨链技术往往考虑的只是针对性的解决某一些问题,让某一条链能获得扩展,但这并不能使区块链真正成为所谓的价值互联网和可信互联网。而要承载起价值互联网的名号,一定是非常庞大的网络,而不会仅仅局限在某一条区块链上,现在的公有链或者联盟链都只是像局域网,只有像 Polkadot 所设计的将所有区块链都互联互通,最终形成由众多区块链组成的互联网络才更符合这个标准。

当然跨链的解决方式也绝非我们现在看到的这些,不排除未来会有更创新的方式出现,但从项目演变和区块链发展来看,像 Polkadot和Cosmos 这样的跨链项目都值得我们去了解,而至于谁能成为未来的跨链之王,除了技术层面的因素之外可能还要考虑市场和商业落地,而这才是区块链当下更应关心的问题。

没有评论:

Blogger 提供支持.