我们可以把跨链也理解为一种协议,解决两个或多个不同链上的资产以及功能状态可以互相传递、转移、交换的难题。也就是说,跨链的存在,不仅是增加了区块链的可拓展性,还可以解决不同公链之间交易困难产生的“数据孤岛”问题。跨链简单来说就是信息从一条链到另外一条链。由于现在我们说起区块链,脑海中浮现的基本都是 token,所以其实更多的是作为资产的 token 从一条链去另外一条链。最容易理解的是拿 ETH 换 BTC,简单来说就是资产交换。
从互联网的角度理解,有点像信息从一个内网到另一个内网。这对于已经有了底层标准化传输协议互联网来说不成问题。可是区块链每一个网络都是一个相对封闭、且互不信任的系统,每发生一件事都要“投票”(共识)一下,怎么能轻易相信链外的东西呢?原来互联网上的各个后台信息都是可以相互传递,几乎无需验证。吕旭军认为,由于区块链的资产属性尤其明显,使得其跨链不同于传统互联网信息传递,参与者说谎的动机增强。
跨链第一个“最痛”的应用场景就是去中心化交易所,解决了刚刚提到的第一个资产交换的问题。现在很多人用中心化交易所的方式也能解决,加上现行的去中心化交易所交易体验差、速度慢、还不能跨链交易,小白用户都不喜欢,看起来实在没什么戏。不过理想主义者会说:作为一个追求去中心化的行业,话语权最大的却是一大堆中心化的组织,大家觉得这实在太诡异了,而且中心化交易所作恶多端。
另外一种应用场景就是部署在A链上的应用支持其他链的 token。比如以太坊上的智能合约想用比特币支付——听到这个场景我的同事马上一脸懵逼地问:“为啥呀?”他这个反应也是对的,因为这个听起来貌似没有必要,但是有人就是希望支持比特币或者其他token,希望扩大用户群。其实这个问题同样可以用中心化交易所解决。
这个问题也能泛化为,某个DAPP的不同模块可能部署在不同链上,那它怎么调用其他链上的模块、不同的模块之间怎么交互?也就是链A需要得知链B的才能进行下一步或者执行。说白了,这也还是可以用“链外”的方式解决,就像一个权威中介,这说起来很像预言机(提供链外可信数据)。
V神2016年给R3写的那篇报告里提到提到了五个use cases,都离不开以上三种,包括:
1、资产(原子)交易(Payment-versus-payment or payment-versus-delivery - in technical circles, this concept is also often called "atomic swap");
2、可转移的资产(Portable assets,资产可以多链之间来回转移和使用);
3、跨链数据预言机(Cross-chain oracles );
4、资产留置或抵押(Asset encumbrance,某资产在链上被锁定,是否解锁取决于另一链上的结果)
5、通用跨链合约( General cross-chain contracts )。
跨链的应用场景其实都能用链外方式解决。因此,笔者曾经跟 ArcBlock CEO 冒志鸿交流过,他就对 “双向锚定” 的跨链比较悲观,一方面两条链能 “互读” 的难度非常高,“interledger 就是建起桥梁,两条链的东西还得是一致的,但是两条链确实是不一样的”;一方面实际应用需求很少,“99% 都只需要应用级的跨链,只有很少需要 interledger 级别的跨链,比特币和以太坊为了安全性,可能要这种”。
这个判断,是他以 “数据库历史” 为鉴得出。他介绍,在 80、90 年代,曾经有一个概念叫联邦分布数据库,愿景是:两家企业用的数据库供应商不同,该技术希望数据库的角度让交易保证数据交易的原子性,难度极其高,但是后来证明在现实中根本不需要。“既然可以通过应用层保证一致性,为什么一定要在底层做呢?因此我们其实在整体设计上比较实用主义。”
1、闪电网络(Lighting Network)
由于比特币网络可拓展性过低,交易速度慢,交易量又小,导致资源浪费严重。为了解决这一问题,比特币闪电网络在2015年被提出。这个项目最为巧妙之处就是它在比特币之上建立了一个结算层,也就是侧链。由此使得比特币主网压力减轻,资源浪费变少。
闪电网络底层运用了HTLC 技术和RSMC 技术,构建了一个个链下支付通道。这些通道合在一起成为一个网络。交易双方的数目比较小的微支付可以通过一系列的链下协议完成,从而拓展比特币的性能。
什么是HTLC 哈希时间锁技术?举个例子。A与B达成这样一个协议:协议将锁定A的1个比特币,在T时刻到来之前,如果B能够告诉A一个正确的“暗号”R, 使得R的哈希值等于约定的值(R),B就能获得者一个比特币。如果B在T时刻到来时不能提供正确的“暗号”R,那么这一个比特币自动解锁,回归A所有。
“不需要记录在区块链上”的闪电网络还应用了RSMC(可撤销的顺序成熟度协约)技术。具体来看,假设A与B之间有一个支付通道。二人共同存入一定资金。必须当二人都签名时才能动用这些资金。每次交易时,都要共同确认资金分配,并达成分配合约。当新的分配合约生效后,旧的分配合约失效。一旦有人,比如A仍然使用旧的合约来动用资金,作为惩罚这笔钱必须退还给B作为补偿。
RSMC实现了双向支付通道。双方的支付协议通过可撤销的资产分配合约的形式表达出来。由于协议不需要上链,于是支付请求可以在链下处理,直到最终双方决定清算时才需要在链上执行。
基于这两项技术协议的闪电网络比主链比特币网络具有速度更快, 可以达到百万级到十亿万级TPS。其不仅具有安全、匿名的优点,还做到了跨链原子交换,也就是允许加密货币在不同区块链上点对点的转移。
2、侧链技术(BTC Relay)
BTC Relay是在以太坊基金会支持之下,由ConsenSys团队推出并成长起来的项目。它被认为是区块链上的第一个侧链。其实质是以太坊的一个智能合约。
BTC Relay把以太坊网络与比特币网络通过使用以太坊的智能合约连接起来,可以使用户在以太坊上验证比特币交易。侧链机制不仅允许用户将交易发送到其他的地址或账户,还可以发送到其他的区块链。
简而言之,BTC-Relay的功能包括 验证比特币的交易,传递比特币交易到以太坊智能合约 ,存储比特币区块头部,检查智能合约内部最新的比特币信息。
3、Cosmos
Cosmos是Interchain Foundation的跨链开源项目。Cosmos是专注于解决跨链资产转移的区块链网络,其核心开发团队也是 Cosmos 所采用的Tendermint共识引擎发明者。Tendermint是一个类似实用拜占庭容错共识引擎,具有高性能、一致性等特点。
Cosmos网络主要由两部分组成: Hub (枢纽)和若干个Zone (分区)。每个Zone和Hub 都是独立的区块链。Zone 是解决特定应用需求的区块链,HUB专注于处理Zone间的跨链交易。Zone和Hub都有自己独立的状态共识。
Hub通过去中心化的验证人组来保证安全性,验证人组有罚金托管机制,它是多资产的分布式账本,也就是一种多资产权益证明加密货币网络,并负责保证各类资产在不同Zone转移的同时,资产总量不变。
4、Polkadot
Polkadot是由原以太坊主要核心开发者推出的跨链项目。旨在解决可拓展性以及隔离性的问题。那么,同样作为跨链项目的Polkadot与Cosmos相比有什么技术相通性和与众不同的特点呢?
在介绍Cosmos时,我们再一次提到了中继链。而Polkadot也是通过中继链技术能够将原有链上的代币转入原链地址中,对其进行暂时锁定。还记得我们前文提到过的 RSMC(可撤销的顺序成熟度协约)技术吗?其中多重签名控制的机制在Polkadot 也有同样的应用。在中继链上的交易结果将由这些签名人投票决定其是否生效。通过Polkadot可以将比特币、以太币等都链接到Polkadot上,从而实现跨链通信。
与Cosmos相比,PolKadot 也有许多技术、模式的创新点。在Polkadot看来,其它区块链都是平行链。