Cosmos 和 Polkadot 的跨链是一回事吗?看懂跨链这一篇就够了

背景
谈到区块链的发展,用一个较为形象的比喻来形容可能更为贴切,它就像春秋时期的朝代更替一般,最开始还是零零散散的诸侯分割,各自为地,发展到后来往往需要有一定统一的东西出现,不管是货币、语言抑或度量单位,而这就是区块链发展的未来雏形。
 
如果说 2017 年之前的区块链是诸侯分割,那么之后的 2 年中,人们谈论更多的可能是如何让无数条链变得略加统一些,毕竟每一条公链都声称自己会是未来的底层操作系统,但哪怕真的有 10 条这样的“链”产生,人们也依然无法达成“链间协作”的目的。
 
尤其是当区块链的协议越来越多、资产交互也越来越频繁时,人们迫切需要一类技术来让不同链之间能够产生交互,而这就是“跨链”技术慢慢产生和逐渐成熟的原因。
 
当然,跨链(Cross Chain)并不是最近两年才出现,跨链最早可追溯到 2012 年,当时的瑞波实验室提出了一种名为 Interledger 的协议,该协议旨在连接不同区块链账本并实现它们之间的协同,而它的目标是要打造一个全球统一的支付标准,创建统一的网络金融传输的协议。
 
简单来说瑞波带来的跨链更像一种支付协议,它通过设定一个自动执行的“中间商”,让交易双方的信息汇聚到一起,一旦双方约定达成,便自动完成交易,其实这种跨链更像后来的一种特殊智能合约,而不是我们现在所熟知的跨链。
 
那么,在跨链提出来的 8 年后,跨链领域究竟发生了怎样的巨变,又将走向何方,我们尝试通过 Polkadot 和 Cosmos 两个跨链项目来深度剖析跨链的发展,以飨读者。
什么是真正的跨链?
1. 跨链的误解
当然,当我们谈到跨链时,大家可能都听过这个词,甚至把它作为 2020 年的区块链热门词汇也不足为过,毕竟区块链的世界也需要一些新鲜的故事来填补历史的空缺,至于智能合约和公链已经是 2 年前的故事,而跨链似乎更符合区块链发展的宏伟目标,虽然事实也确实如此。
不过,市场上有不少人对跨链似乎存在一些误解,而这些误解对于理解什么是真正的跨链又产生了门槛,因此,我们先从几个常见的误解说起。
A、跨链是让链上资产像互换位置一样交换?
谈到跨链,有些朋友可能真的以为跨链是能把类似比特币链上的资产通过“跨链”的方式转移到以太坊上来,就像把桌子上的苹果和梨交换位置一样,似乎这样听起来的确很神奇,但跨链真的如此吗?
在区块链世界里我们常讲的跨链其实更像一种人民币和美元兑换的关系,什么意思呢,跨链好比我们将人民币兑换成美元,欧元或者其他货币,而中间的兑换过程我们称为跨链,这也是较早期跨链所留存的形态,但它并不是物物交换一般的真实转移,而是价值的对等交换。
因此,2012 年之后几年提出的跨链其实通常代指资产跨链,它包括了大家熟知的双向锚定、哈希时间锁、原子交换、资产质押转移、网关和联邦签名等等,而这些是实现的方式,它们的目标都不是为了完成变魔法一般的将链上比特币转换成其他类型的通证,而只是资产的形式转换。
B、跨链的实现路径非常简单?
也许很多人听到跨链技术时会觉得这是一个极为简单的理工科工程,毕竟从字面上来理解的意思似乎非常简单,就像把信息从 A 地传输到 B 地一样,只要通过手机或者物流即可完成,但事实上,对于跨链而言,并非这般简单。
哪怕是资产跨链这种听起来较为容易的方式,人们已经摸索了很多年,通过不同的方式来尝试突破一些问题和瓶颈,但依然没有找到一种最好或者更加普世的方式来完成这一目标。
例如我们从几年前就看到了在提的比特币侧链,其中双向锚定作为比特币侧链技术中非常重要的概念,目的是实现比特币主链币和侧链币之间的跨链。双向锚定能够让侧链“知道”主链上的特定币是否处于锁定状态,并且依此锁定状态来解锁或销毁对应数量的侧链,这就好像 BTC “跨”到了侧链,或者反过来,侧链币“跨”回了主链,但发展至今资深技术人员依然认为该方式太过简陋,甚至存在不少安全隐患。
所以,跨链并没有大家想得那般简单,实际上它要比我们预想的复杂的多,正因如此也才成为了区块链行业需要攻坚的问题。
C、跨链的实现方式只有一种?
这可能是大部分不太懂技术的区块链从业者常犯的一个错误,他们会认为区块链的跨链方式其实只有一种,而大家都在朝着一个正确的方式努力,但相信通过上面两点的讲解,大家不会再这样认为了,跨链的实现方式其实包罗太多,只是我们把它们都统称为了跨链。
我们将在下节较为详细的为大家讲解目前跨链常见的几种实现方式,相信会让大家有豁然开朗的感觉。
2. 实现跨链的方式
既然跨链的实现方式不止一种,那么目前可以有哪些值得关注的跨链方式呢?当然我们尝试不从那些复杂的技术名词入手,以一种更好理解的方式为大家讲解跨链的几个主流方式。
A、中心化网关跨链
顾名思义这是一种由一个权威机构外部预言机(Oracle)模式输入的一种跨链方式,通过引入外部力量接入跨链,相当于借助第三方机构来完成跨链动作,就好比转账借助银行系统一样,该方式虽然效率较高,但也存在一些安全隐患。
B、多签托管跨链
相较于上一种方式,在单个中心化的基础上加入了一组权威机构,通过他们投票来承担跨链数据的交互,这点类似于议会制度一样,因为多机构的存在进一步提高了安全性,但相对地,效率也大打折扣。
C、镜像跨链
镜像跨链是一种更为趣味的解决跨链的方式,它通过最大资产镜像合成其他小额资产,来完成经济学上的虚拟跨链,比如 Synthetix 就是用它的数字资产 SNX,以超额抵押几倍价值的 SNX (最大资产)来合成小额的其他资产。
 D、轻节点跨链
沿着前面几种跨链思路深入下去,我们可以找到另一种跨链思路,也就是完全由代码来托管数据的交互,不需要任何中间人执行,当然这是较理想的方式,理论上它可以最终完成块头 Header 跨链、交易 Transaction 跨链和终极的共识跨链,但也意味着技术实现最难,需要更多时间和精力去开发。
3. 真正的跨链
虽然市面上关于跨链的具体实现方式不下 10 种,甚至每年还会有新的关于跨链的名词出现,但我们回到本质上来看跨链这个问题,并思考到底什么才是真正的跨链。
最近一位区块链技术资深人士谈到了一个更有趣的关于跨链的描述,首先他给共识穿透下了个定义,共识穿透是指两条不同共识的区块链,如何从共识层打通,让两条链互联有无,最终实现共识跨链。
综上我们认为跨链的基本作用是实现链间资产的交互,其次是信息交互,而放大来说,跨链需要解决的其实是相同共识下链与链之间的信息传递与交互,但更本质来说跨链解决的是不同共识下链与链之间的 Transaction,而能解决这个问题的方式或者技术我们称为跨链。
当然,这只是目前我们认为关于跨链较为准确的定义,但随着区块链的发展,不排除会有更有趣的描述出现。
为什么区块链需要跨链?
1. 打破区块链信息孤岛困境
USDT 是目前市值最高,使用范围最广的稳定币,是 Tether 公司推出的基于稳定价值货币美元(USD)的加密货币 Tether USD(简称USDT),1USDT = 1 美元。Tether 公司严格遵守 1:1 的准备金保证,即每发行 1 个 USDT,其银行账户都会有 1 美元的资金保障。
而 USDT 也是几经周折在多条区块链上发行,从最开始基于 Omni 协议发行,再到后来开始在以太坊上发行 ERC20 版本的 USDT,再到之后在波场上发行 TRC20 版本的 USDT,如此一步步发展最终成为了市值第三的加密货币。
而由于 USDT 是有对应的美元作为支撑的,所以 USDT 可以随着保障的美元数量的增加而增发,但是也经常会遇到这样的情况,比如今年 DeFi 火热,以太坊上的许多 ERC20 的 USDT 被所到 DeFi 项目中,使得 ERC20 的 USDT 不够用了,这时如果紧急增发 USDT 很难快速筹集到大体量的美元,没办法,Tether 公司不得不把 TRC20 上的 USDT 转移到以太坊上,以满足市场需要。Tether 公司采用的方法,是把 TRC20 的 USDT 销毁一部分,再在以太坊上增发同样数量的 ERC20 版 USDT。
而后,波场上的一些 DeFi 项目也逐渐诞生,又出现波场上的 TRC20 版 USDT 不够用了,所以,Tether 公司不得不经常将几条区块链上的 USDT 来回转移。
这就是目前区块链的一个大的痛点,区块链与区块链之间并不能随意的转移数据(即信息和资产),每个区块链生态做的再好,也只是相当于一个发展很好但却不能与其他城市互通的城市,而这就是信息孤岛。
而好的区块链应用,肯定不满足于只在一条区块链上,正如我们刚才举例的 USDT。还有一种方式是,类似于路印协议(LRC)以另一个名字的加密资产 LRN 发行在 NEO 链上,来做到在 NEO 上扩展路印协议的使用场景。
所以,如果有一种跨链技术,能将不同区块链的数据进行互相交互,Tether 公司和路印协议的团队就不用那么麻烦地在不同的链上来回折腾了。而 Polkadot 的设计初衷就是能将所有区块链链接在一起,互联互通,最终形成一个由多个区块链组成的互联网络,它完美的契合了这个需求,未来想要在多个区块链上应用的区块链应用项目,只需要在 Polkadot 上发行,就可以将这个应用扩展到所有区块链上了。
2. 提供区块链性能
 
今年 DeFi 大热,以太坊再次证明了它是区块链领域里最大的区块链应用平台,在这段 DeFi 盛宴中,一些区块链的老问题又再次走到台前,让我们难以忽视它。
目前,90 %以上的 DeFi 项目都在以太坊上,带来结果之一就是以太坊和 ERC20 的 Token 转账速度变慢,转账费用飙升。以太坊的转账 Gas 费在很长一段时间平均在 500Gwei 以上,居高不下,最高还到过 1000Gwei,而这也严重影响了 DeFi 生态以外的项目和组织。
NFT 市场 Cargo 创始人 Sean Papanikolas 就曾表示,NFT 行业正处于一个拐点。但由于 Gas 价格飙升,以太坊可扩展性不足给该行业的新参与者带来了压力。而高 Gas 费已经导致一些平台开始致力于 Layer2 扩展,也就是二层网络的解决方案,而还有一些项目方则将目光投向了其他的区块链,完全离开了以太坊。
另一方面,交易所也是另一个受害者,高昂的转账费让许多交易所在用户每次转账以太坊和 ERC20 的时候都要亏上几美金甚至更多。而美国最大的加密货币交易所 Coinbase Pro 不堪重负,最后发布公告让用户来承担转账的网络费用。
提高性能,降低转账费用,对区块链进行扩容已是迫在眉睫的刚需。
目前扩容的方案有两大类,一类是链上扩容,通过修改区块链的修改规则,包括区块大小、共识机制等来做到。比如,加密货币圈就曾经热议过,考虑把比特币的区块大小增加来提高比特币的转账速度。又比如,以太坊 2.0 的设计,是将共识机制由 PoW 转换成 PoS,并采用改变网络验证方式的分片技术来提高效率。
第二类则是链下扩容,比如我们常说的 Layer2 扩展,也就是二层网络的扩展方式。二层网络顾名思义,是把一条区块链上的数据交给另一个网络来处理,处理好了再传回来。这其中也分为中心化的解决方案,比如比特币的链下扩容方案——闪电网络,也有去中心化的解决方案,比如能将比特币跨过来的 ChainX,区别在于第二个网络是否是区块链,中间过程是否是通过智能合约完成的。
而 Polkadot 作为知名跨链项目,其本身的架构就属于分片,不用担心 Polkadot 的性能问题,另一方面,Polkadot 可以链接其他的平行链,这些平行链可以自发的作为某些链的二层扩展的一条链,来提高这条链的性能。
3. 增加区块链可扩展性
上一点中,我们提到 Polkadot 的平行链可以作为某些链的二层网络,那么如果这条链拥有的属性是原有的区块链没有的,就可以为原有的链增加更多功能。如果我们在 Polkadot 上给比特币做了一条带有智能合约功能的二层网络,这样就可以让比特币也拥有了智能合约的功能了。
4. 丰富区块链生态
 
老一辈人都知道,要致富,先修路,要发展一定要与外界的资源进行流通,北京发展的再好,也比不过互联互通之后,一次十一长假带来的整体经济效益。区块链同样也是这个道理。我们还是以今年红极一时的 DeFi 来说,以太坊最火爆的时候,全网参与 DeFi 的资金也才一百多亿美金。如果通过跨链的方式,能将价值上千亿体量的比特币拉入到 DeFi 生态中,如此庞大的流动性来参与到 DeFi,所带来的经济效益绝对不可同日而语。届时,DeFi 的发展将有可能远超 2017 年牛市的盛况,并且震动传统金融。
5. 保护各条链隐私
首先澄清一下,我们所说的跨链绝不仅限于公链与公链之间的链接,还可以是联盟链与公链,或者联盟链与联盟链之间的跨链。那么,有这么一种情况,A 联盟链和 B 联盟链它们之间的数据不是共享的,如果需要交互两者的数据,就可以通过跨链的方式连接起来,两者互相交互仅仅会涉及到需要交互的数据,这既保护了各条链的隐私,又能让各链之间进行交互。
6. 业务逻辑进一步细化
未来每条链都会有独立的业务,多条链联合起来,理解和分析也比较清晰,比如有专注于 DeFi 的链,有专注于游戏的链,有比特币的智能合约链,还有以太坊的 Layer2 链等等,因此跨链可以让不同业务的链也产生链接。
Polkadot 的跨链是如何实现的?
Polkadot 号称跨链之王,是当下最复杂最庞大的设计之一,这也由于它所谋甚大,希望能联通所有的区块链。那它是一种怎样的结构,又是以什么方式来实现跨链的呢?
1. Polkadot 的跨链结构
我们之前在之前的文章中就介绍过以太坊 2.0 是同构分片,Polkadot 是异构分片的结构,如下图所示,Polkadot 的主要结构是由主链——中继链,再连接其他分片——平行链组成的。
要清楚的理解 Polkadot 的结构,我们需要理解 Polkadot 结构的三条重要的链(中继链,平行链和转接桥平行链)与四个重要的角色。
其中,中继链是负责处理网络中整体的共识和安全性的主链,平行链是基于 Substrate 框架做出来的与中继链有相同共识的分片,转接桥平行链是由于一些已经成熟的区块链(比如比特币、以太坊)与 Polkadot 的底层共识不一样,不能直接连接到中继链上,所以通过在 Polkadot 的平行链和外部的区块链上部署智能合约来达到桥的效果,以实现跨链的功能。

Polkadot 网络有四个基本的角色在维持:收集人(帮助验证人收集、验证和提交备选的平行链区块)、提名人(类似于比特币矿工)、验证人(类似于比特币的矿池,打包网络区块)、钓鱼人(防止网络作恶,负责举报其他角色)。

通过这几个角色,以及 Polkadot 的跨链消息传递方案(XCMP),可以让数据在不同的区块链之间进行交互。
那么,为什么说,我们需要注意到上图的右边有个二级中继链,如果一条中继链能连接的平行链和转接桥是有限的,那么中继链还可以通过生成或者连接一个二级中继链,进一步扩大自己的连接能力,而二级中继链还可以再连接新的中继链,以此类推,从理论上讲 Polkadot 的这个结构具有无限扩展性,可以连接所有的区块链。
2. Polkadot如何实现跨链?
Polkadot 主要是通过跨链消息传递方案(XCMP)来传递消息,下面我们通过一个趣味的方式来向大家讲解跨链的具体实现流程。
假如有个这样的场景,我要用 1 个平行链 A 的资产和你交换 10 个平行链 B 的资产,那么如果把平行链 A 比作美国,平行链 B 比作日本,就相当于我用 1 万美元和你交换 10 万日元,那么,整个跨链的流程就是这样的:
我在美国的银行发起一笔转账,转给你在美国的账户 1 万美元,美国的收集人就注明,我给你在美国的账户转 1 万美元,并且求你在日本这边的银行给我转 10 万日元。
美国的收集人准备将这个信息连同目的地与时间,一并传递到日本,这些信息会先放置在美国的输出队列中,传递之前需要经过美国的验证人确认这笔交易后,就会经过中继链这个组织将该信息从美国的输出队列放置到日本的输入队列。
当日本的验证人会收到该信息后,通过日本这边的收集人来执行信息中的要求,然后将你账户中的 10 万日元转到了我在日本的账户中,由此完成整个过程。
而映射到区块链网路中同样是这样的路径,美国和日本就好比不同的区块链,通过该方式就完成了两个信息孤岛的网络的链接,而具体 Polkadot 的跨链实现,整个过程全部由区块链和智能合约执行,是以去中心化的方式做到链间通讯的。
Cosmos 的跨链是如何实现的?
虽然 Polkadot 作为跨链领域当下的王者,但是人们常常以 Cosmos 作为 Polkadot 的有力对手相比较,因此,我们需要以同样的角度浅谈一些关于 Cosmos 的跨链构成。
1. Cosmos的跨链结构
同样 Cosmos 也是采用了中继链的方式来进行跨链交互,但 Cosmos 意在提供一个标准的协议(IBC)让其他区块链接入该协议后,完成信息交互。
我们将 Cosmos 的结构进行拆分后可分为 Zones 和 Hubs,Zones 相当于 Polkadot 中的平行链(类似于接入不同的区块链网络),而 Hubs 则对应了 Polkadot 中的中继链(负责监视其他链是否正常运行),总体来说,Hub 管理着被称为 “Zone” 的独立区块链,而由 Hub 来追踪记录各个 Zone 的状态。
而他们之间的信息传递是有被称为“IBC”(区块链之间的通信协议)的协议来负责传输信息,读者可以理解为是 Cosmos 中特有的编码模式,只要通过该编码即可确认是 Cosmos 生态的一部分,也可进行安全的信息交互。

而基于这些底层构成和通信协议,Cosmos 还开发了一个名为 Cosmos SDK 的一个通用框架,它的目标是创建一个模块生态系统,允许开发人员轻松地创建特定应用的区块链,而无需从头开始编写应用的每个功能,从而大大减少程序员在区块链底层开发上花费的时间。
2. Cosmos 如何实现跨链?
谈到 Cosmos 如何具体完成跨链动作,我们依然要回到其结构构成来看,Cosmos 将区块链拆分出了共识层(Tendermint 内核)、网络层和应用层(Cosmos SDK),这能让开发者在开发各种类型应用的时候有更大的灵活性。

因此,Cosmos 的跨链方式其实是通过自己搭建一套区块链开发框架,来让其他区块链在此框架上进行开发,并满足自身像 BFT 共识算法或者 Cosmos SDK 这样的应用加入进去,这样的理想状态听起来似乎很有趣,但离真正的跨链依然有不少差距,所以它依然在“轻节点跨链”的方式上努力着。
Polkadot 与 Cosmos 的区别
1. 两者核心对比
为了便于更加直观的让用户了解 Polkadot 和 Cosmos 两者之间的不同,我们制作了下图:

如果单从功能上或者某一方面来对比两个跨链项目的优劣,似乎并不能判断孰是孰非,因为单一的组成只能体现某一方面的优势,因此,我们还是回到跨链本身来看,或许会有更不错的效果。
2. 两者发展现状
 
Cosmos 自 2015 年立项以来,受到不了行业不同程度的关注,毕竟作为跨链领域的翘楚不管是资方还是社区,都赋予了极大期望,而其主网在 2019 年上半年迎来了上线。
但是就在主网上线半年后,Tendermint Labs (Cosmos背后核心开发团队)的总监 Zaki Manian在推特上公开表示,在过去的 6 个月中,Jae Kwon (Cosmos创始人)一直专注于 Virgo 项目,而忽略了 Cosmos 的 IBC 开发,没有为 IBC 提供资源,造成了许多才华横溢的工程师离开公司的局面,这使核心软件团队的资源严重不足,并表示要辞去 CEO 职位,此举引发了 Cosmos 社区巨大动荡。
正是因为 Cosmos 社区开发人数的下降,使得其 IBC 跨链通信协议开发一直处于缓慢爬坡阶段,因此跨链目标变得遥不可及,现在仅出来了一个 Cosmos SDK 框架。
反观另 Polkadot 的开发自 8 月主网上线以来,团队一直在努力开发平行链功能(跨链的核心部件),并且上周区块链大会上,创始人 Gavin 博士表示平行链代码将在未来 2 周内公布,这让人们对跨链的到来有了更强的期许。
当然某种意义上来说,Polkadot 的跨链是借助 XCMP 完成平行链之间的消息交互,还处于同一共识下的跨链,离我们理想的终极跨链(不同共识链的交互)还有一段差距,但按照发展路径来看,符合预期。
从跨链的功能性和发展来说,我们认为 Polkadot 目前更像是真正的跨链,而 Cosmos 目前还是伪跨链,其设计只是在转移资产这一层面,最主要的是 Cosmos 团队在实现最基础的资产转移之前就戛然而止了。尽管当初的理想很美好,但现实却很骨感,跨链的重任还是交给 Polkadot 来实现吧。

后记

尽管我们了解到有许多跨链的方式,但是我们更推崇的还是 Polkadot 设计的跨链形式,因为许多跨链技术往往考虑的只是针对性的解决某一些问题,让某一条链能获得扩展,但这并不能使区块链真正成为所谓的价值互联网和可信互联网。
而要承载起价值互联网的名号,一定是非常庞大的网络,而不会仅仅局限在某一条区块链上,现在的公有链或者联盟链都只是像局域网,只有像 Polkadot 所设计的,将所有区块链都互联互通,最终形成由众多区块链组成的互联网络,才更符合这个标准。
当然,跨链的解决方式也绝非我们现在看到的这些,不排除未来会有更创新的方式出现,但从项目演变和区块链发展来看,像 Polkadot 和 Cosmos 这样的跨链项目都值得我们去了解,而至于谁能成为未来的“跨链之王”,除了技术层面的因素,可能还要考虑市场和商业落地,而这才是区块链当下更应关心的问题,我们也将在后续文章中进一步去发掘 Polkadot 或者 Polkadot 生态中这样优质的项目。