搞不懂区块链中侧链、跨链是什么?读这一篇就够了!

 

硅谷Live / 实地探访 / 热点探秘 / 深度探讨

 

 

在之前的文章中,小探与大家讨论了区块链技术底层平台中的公链 (参考文章:想明白区块链是啥,你要先了解这个!)。然而,关于区块链大家目前讨论的最多的技术却是关于侧链和跨链的,甚至有人说 “2018就是侧链、跨链年!” 那么,区别于区块链中的公链,侧链和跨链又代表着什么呢?就让小探用这篇区块链“科普”文章,努力为大家说明吧。

 

在介绍公链的文章中,我们提到了很多区块链项目都是为了解决公链交易吞吐量和交易速度的问题,也就是“可拓展性”问题。其实,对于可拓展性的提高,还有其他办法。侧链就是主要用于解决这一问题的。

 

我们可以把侧链看做一种协议。它可以让资产安全地从主链转移到其他区块链,又可以从其他区块链安全地返回主链。

 

图片来源网络,版权归作者所有

 

那么,跨链又是什么呢?我们也可以把跨链也理解为一种协议,解决两个或多个不同链上的资产以及功能状态可以互相传递、转移、交换的难题。也就是说,跨链的存在,不仅是增加了区块链的可拓展性,还可以解决不同公链之间交易困难产生的“数据孤岛”问题。

 

 

涨姿势

Takeaway

 

跨链和侧链到底有什么区别?跨链除了增强了可拓展性,还提高了可操作性。比如,我们把比特币从比特币公链利用跨链协议转移到以太坊上后,便可以用以太坊的智能合约来编程了。

 

 

侧链背后的技术

 

侧链的诞生,源于应对比特币的低TPS挑战。当年,每秒只能处理7笔交易的比特币可拓展性太差,导致许多高级应用无发建立。于是,大家通过增加侧链,来辅助比特币主链,从而让比特币可以自由、安全、更快地“跑”起来。

 

图片来源网络,版权归作者所有

 

那么,侧链与主链如何“沟通”呢?

 

侧链与主链沟通的过程被称为成为“双向锚定(也称“双向挂钩”,2WP)。“锚定”一词在经济学中较为常见,指双方交易中一方要以另一方的行动为基准。

 

在区块链中,由于比特币实际上不是简单的“转移”,而是暂时将其在比特币区块链上锁定,之后将等量等值的代币在侧链上释放。当等量等值的代币在侧链上被锁定时,比特币区块链上的原始比特币就可以被释放了。因此,“双向锚定”实际上就是一方是否解锁,要以另一方是否已经有投币行为为基准。

 

这个主意听起来不错,但是却有不少挑战。比如,谁应该来管理锁定的账户?谁来解锁?锁定的资产如何被安全释放?可以说,侧链的管理和监督一直以来都是难点

 

针对双向锚定中的资产管理问题,对于以比特币为主链的侧链,目前有两种管理模式。单一托管人模式与联盟托管模式。

 

单一托管人模式:顾名思义,是一个由可信任的第三方机构来锁定、监管双方资产的模式。托管人可以手动操作,也可以使用软件。最常见的单一托管人就是交易所了。举个例子,小张想把主链上的比特币放到侧链上。那么,只需要把小张的钱包,和侧链拥有代币的钱包共同交给交易所管理就可以了。到时候,交易所可以来验证、监督两条链是否投在钱包里投入的等值的币,锁定币,继续验证,然后再释放。

 

 

联盟托管模式:相对于单一托管人模式的过度中心化问题,联盟托管模式则显得更加公平、公正。这种模式很像“人民代表大会”。每位人大代表都有一次投票权,当代表们接受到解锁请求时,每位代表要独自验证交易并投票。只有当投票数大于一定的数值时(比如半数),才能将资产解锁。

 

但是,假如多个代表串通一气怎么办呢?目前来看,还没有好的解决方法。唯一能做的就是尽量在一开始就严格筛查出声誉好的代表。

 

从侧链到跨链

 

不同于侧链,跨链中,链与链的关系是对等的。用户可以通过“双向锚定” 来“转移”比特币。同时,跨链还可以实现汇率兑换、智能合约交互等功能状态的转移、交换。

 

和侧链技术一样,跨链技术也需要解决资产的锁定与管理问题。

 

除了我们在侧链部分已经提到的的单一托管人模式和联盟托管模式,对于被跨的链中包含以太坊的情况来说,智能合约管理模式可以派得上用场。这个管理模式的关键就在于这个智能合约中需要包含双方区块链的区块头,从而验证双方的线上交易。

 

举个例子来看。假如我想把我的比特币转到以太坊上,我首先要把比特币在比特币区块链上转移到特定的锁定地址中。并把我在以太坊的地址附加在交易中。在此交易被矿工确定后,他们向以太坊的锚定智能合约(Peg Contract )发送 SPV 验证。验证时,我在以太坊的地址就会被提取出来。最后,交易验证成功且满足最终确定性要求时,锚定智能合约就会自动从锁定地址中转账对等的资产到我的以太坊地址。

 

 

在这里,我们要解释两个名词:SPV 和“最终确定性” 。

 

侧链协议中,用SPV “简单支付验证”,Simplified Payment Verification )来证明一个交易确实已经在区块链中发生过,称为 SPV 证明(SPV Proof)。一个 SPV 证明包括两部分内容:一组区块头的列表,表示工作量证明;一个特定输出(output)确实存在于某个区块中的密码学证明。

 

中本聪设计的SPV 能够让用户以较小的代价判断某个支付交易是否已经被验证过(存在于区块链中),以及得到了多少算力保护。SPV 客户端只需要下载所有区块的区块头,并进行简单的定位和计算工作就可以作出判断。

 

在交易的最后一步中,“最终确定性” ( Finality )非常关键。原来,当区块链使用POW (工作性证明)的共识算法时,在足够大的算力下交易是可以被撤销的。在跨链交易中,从我们刚刚举的例子来看,每一步,每一个环节,如果不能被确认,那么交易就会停止。因此,我们需要一些方法去确定上一步的交易已经成功或被撤销。

 

目前,有两种常见方法来解决跨链交易的最终确定性问题

 

最简单也最常见的方法就是等待足够多的确认区块数。因为POW共识算法中,当确认的区块足够多时,撤销的可能性就会变得很低。然而很多人并不想将时间白白浪费在等待上。于是,也就有了第二种方法:利用区块纠缠

 

这首先需要将两个链之间的区块建立一种依赖关系。假如其中一笔交易被撤销,那么交易所在的区块回滚,同时依赖于这一区块的另一条链上的区块也会回滚,其交易也会被撤销。因此,我们只需要看一个区块有没有回滚,就可以知道交易确定了与否。

 

在以上的部分中,我们介绍了如何通过侧链、跨链技术管理两条链上的资产。

 

在跨链中,可能会出现多条链共同交易的情况。比如下面这张繁乱如麻的图:

 

 

每2个区块链之间都需要1个跨链协议。那么,如何将这么多的区块链管理得井井有条呢?

 

解决这个问题的关键是添加一个特殊区块链作为“中枢”。我们可以把这个特殊区块链作为“太阳”,让其居中,联结其他区块链间的交易,其他所有的区块链都要围绕着它“转”。这个“太阳”就被称为中继链。中继是链与链之间的通道,如果通道本身是区块链,那就是中继链。   它具体的应用我们会在下面的项目解析中进一步提到。中继链的引入让跨链网络的复杂性大大降低。

 

 

涨姿势

Takeaway

 

侧链、跨链的管理模式总结起来一共有四种:1. 单一托管人模式 2. 联盟托管模式 3. 智能合约管理模式 4. 加入中继链

 

 

侧链、跨链典型项目

 

目前主流的跨链技术包括公证人机制,中继,哈希锁定,和分布式私钥控制四种技术。这四种技术的各自特点与代表项目见下图。我们会在项目介绍中,具体来看其中有代表性的技术。

 

本图来源自:吴聊区块链 《深度解析:区块链跨链技术》,版权属于作者

 

下面,我们就着重讲一下BTC Relay和闪电网络这两个侧链项目,以及Polkadot和Cosmos这两个具有代表性的跨链项目。

 

闪电网络(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。其不仅具有安全、匿名的优点,还做到了跨链原子交换,也就是允许加密货币在不同区块链上点对点的转移。

 

闪电网络的成长历程

 

自从2017年12月闪电网络发布了1.0 RC版本,并成功在比特币主网进行了测试,闪电网络就一直不断发展。

 

今年5月,MIT实验室发现,智能合约与闪电网络的结合不仅能够实现数百万级的交易吞吐量,并且大幅提高整个系统的复杂性 。难道传说中的“比特币智能合约” 就要来了?还有媒体报道称微软公司也开始考虑用比特币闪电网络来建立身份认证系统。

 

今年8月,首个基于闪电网络的加密货币交易所SparkSwap成立。用户可以在数秒内完成比特币与其他加密货币的交易,同时还不需要在第三方存入资产。

 

同时,今年8月,闪电网络节点数量正式突破3000个,网络容量达到近100个比特币(约64万美金)。而在刚刚过去的7月,网络容量为97个比特币(约62.8万美金)。与六月的网络容量相比增长了38%。

 

虽然,闪电网络看起来前途一片大好,但是世人对它的诟病一直没有停止。Bitcoin.com附属公司的负责人David Shares公开表示闪电网络中心化。还有人认为闪电网络作为一种通道网络,其支付路线过于复杂,交易时未知因素太大。并且,当前版本通道容量有上限,可能会导致一些用户不能进行稍微大额的交易等问题。

 

侧链技术:BTC Relay - “给比特币网路与以太坊搭座桥”

 

BTC Relay是在以太坊基金会支持之下,由ConsenSys团队推出并成长起来的项目。它被认为是区块链上的第一个侧链。其实质是以太坊的一个智能合约。

图片来源网络,版权归作者所有

 

BTC Relay把以太坊网络与比特币网络通过使用以太坊的智能合约连接起来,可以使用户在以太坊上验证比特币交易。侧链机制不仅允许用户将交易发送到其他的地址或账户,还可以发送到其他的区块链。

 

简而言之,BTC-Relay的功能包括 验证比特币的交易,传递比特币交易到以太坊智能合约 ,存储比特币区块头部,检查智能合约内部最新的比特币信息。

 

那么在创新模式上BTC Relay与其他的侧链项目有什么不同呢?

 

我们知道BTC-Relay是由带有比特币SPV钱包功能的以太坊智能合约, 以及Relayers(BTC Relay的社区成员)共同组成。Relayers为BTC Relay提供新的比特币区块头,当交易在区块链进行验证或者区块头被检索的时候,Relayer会获得一笔手续费作为奖励,Relayer提交区块头的这种循环——然后处理比特币支付和奖励Relayer手续费的应用程序——使系统能够自立和自治。而不同于其他利用类似双向锚定原理的侧链。

 

那么BTC Relay有怎样的使用场景呢?举例来说。首先,A和B同意使用BTCSwap合约来进行交易。A要买B的以太币,B把他的以太币发送到BTCSwap合约上。 随后,A向B发送比特币,并希望BTCSwap这个合约能知道这件事以便BTCSwap合约可以释放B之前的以太币。 于是,A通过比特币的交易信息以及BTCSwap合约地址来调用btcrelay.relayTx (), BTC Relay 验证这笔交易通过后就触发BTCSwap合约里面的交易。 之后,BTCSwap合约在被触发后确认这个BTC Relay地址是一个合法地址,然后释放之前B的以太币。由此,交易完成。

 

BTC Relay作为“第一个吃螃蟹的”进行了跨区块链通信的有意义的尝试,打开了不同区块链交流的通道。但是它仍然存在几个问题。比如智能合约需要获取比特币网络数据,这还比较难实现去中心化。同时,奖励Relayers的机制固然好,但是这样一来维护合约的成本会变得比较高,而Relayers活跃度却仍然比较低。路漫漫其修远兮,BTC Relay需要改进的地方还有不少。

 

Cosmos - “让你看到跨链的真正意义”

 

Cosmos是Interchain Foundation的跨链开源项目。Cosmos是专注于解决跨链资产转移的区块链网络,其核心开发团队也是 Cosmos 所采用的Tendermint共识引擎发明者。Tendermint是一个类似实用拜占庭容错共识引擎,具有高性能、一致性等特点。

 

作为最早研发,目前发展最成熟的跨链项目,Cosmos 的核心开发团队早在2014年就提出了“一区块最终确认”(One Block Finality)。前文中我们说到了最终确认性的问题,Cosmos的这一技术研发可谓对跨链的发展帮助极大。

 

Cosmos网络主要由两部分组成: Hub (枢纽)和若干个Zone (分区)。每个Zone和Hub 都是独立的区块链。Zone 是解决特定应用需求的区块链,HUB专注于处理Zone间的跨链交易。Zone和Hub都有自己独立的状态共识。

 

Hub通过去中心化的验证人组来保证安全性,验证人组有罚金托管机制,它是多资产的分布式账本,也就是一种多资产权益证明加密货币网络,并负责保证各类资产在不同Zone转移的同时,资产总量不变。

 

还记得我们在前面提到的多链如何管理中被称为中继链的“太阳”吗?Hub就是中继链。Zone之间的跨链通信主要是通过与Hub之间的IBC协议来实现。

 

什么是IBC(区块链间通信)协议?该协议用于Cosmos 网络的枢纽及各个分区的沟通。 代币可以安全快速地从一个Zone传递到另一个Zone,两者之间无需体现汇兑流动性。枢纽会将每个Zone与其他故障Zone隔离开。当有新的分区产生时,在线治理社区的投票会决定新的分区是否可以连接到Cosmos枢纽。所以,Cosmos也可以支持未来新的安全高价值区块链接入。

 

具体来看:当Zone1向Zone2发出跨链消息时,Zone1先生成消息包,并将其证明发布在Hub上,接下来Hub会生成Zone1的跨链消息包已在Hub上的存在证明的证明发布于Zone2,接下来Zone2收好消息包,并给出证明发布于Hub上,最后,Hub再给出Zone2的收妥证明的证明发布于Zone2,完成整个跨链消息传递。

 

而Cosmos因为可扩展性的优越性与以太坊的关系可谓“情深意长”。目前Cosmos最经典的一个案例就是作为以太坊的二级扩容。我们知道,以太坊自己的团队用Casper做了一级扩容。而很多年前,Cosmos就为以太坊做了一个EVM 兼容但底层已经是用高效的POS 协议tendermint的区块链叫 ethermint。2017年,以太坊创始人Vitalik 代表太坊生态基金会ECF (Ethereum Community Foundation) 与Cosmos合作,Cosmos 将为以太坊的二级扩容开发而做贡献。

 

可以想象,如果以太坊自身因为扩容不够而导致其上面的应用跑不动了。那么就可以通过Cosmos这样一个Hub,把以太币转到Cosmos的Ethermint Zone是上去,为以太坊开发出N多个它的Ethermint Zone。一个最简单的例子就是2017年时“加密猫”突然流行导致以太坊拥堵不堪。而如今就可以将这些猫们转到Cosmos的新的Zone里跑。如果跑完了想回到以太坊,还可以随时再回来。Cosmos的扩容的功能听起来更像侧链,但是却是比侧链更具有灵活性的跨链应用。

 

如果从Cosmos反观跨链的意义,我们就可以真正看到跨链不仅仅可以扩容,更可以提高可操作性。有了Cosmos,我们如果想对比特币做一个智能合约的编程,我们就可以把比特币直接借助Cosmos的Hub转到以太坊进行编程。同时,如果我们想让我们的比特币私密性更强,我们就可以把比特币直接借助Cosmos的Hub转到门罗币的网络。正如我们在公链文章中(参考文章:想明白区块链是啥,你要先了解这个!所提到的,为了提高私密性门罗币才应运而生。

 

目前Cosmos发展到什么阶段了呢?去年项目提出了为以太坊做二级扩容的技术方案,今年一直在开发中的Cosmos, 估计今年年底有望完成。

 

同时,由于 Cosmos 的自身架构支持多Hub, 今年有许多区块链项目都选择用Cosmos作为跨链技术之一 来搭建自己的项目平台。密探之前的文章(参考文章:《快速实现分布式商业应用?这个为下一代公链提供了可能》)曾经介绍过 IRISnet 项目将为开发者提供一个更友好的应用开发接口,并同时提供面向服务的跨链基础设施。

 

开发者可以在这上面使用已有的程序模块进行组合创造,开发自己的分布式应用链。IRISnet的创始人Harriet Cao 在采访中表示之所以选用Cosmos 体系,看中的原因就是Cosmos的清晰的分层架构,其高效的POS引擎和开放的去中心化结构。IRISnet的就是用Cosmos SDK 开发出来了更方面的面向服务的开发接口,并创新性地对IBC协议进行了扩展,这样不仅代币能跨链,数据服务和复杂计算也能跨链被调用并消费。

 

Polkadot - “期待中的跨链项目”

 

Polkadot是由原以太坊主要核心开发者推出的跨链项目。旨在解决可拓展性以及隔离性的问题。那么,同样作为跨链项目的Polkadot与Cosmos相比有什么技术相通性和与众不同的特点呢?

 

 

在介绍Cosmos时,我们再一次提到了中继链。而Polkadot也是通过中继链技术能够将原有链上的代币转入原链地址中,对其进行暂时锁定。还记得我们前文提到过的 RSMC(可撤销的顺序成熟度协约)技术吗?其中多重签名控制的机制在Polkadot 也有同样的应用。在中继链上的交易结果将由这些签名人投票决定其是否生效。通过Polkadot可以将比特币、以太币等都链接到Polkadot上,从而实现跨链通信。

 

与Cosmos相比,PolKadot 也有许多技术、模式的创新点。在Polkadot看来,其它区块链都是平行链。

 

 

涨姿势

Takeaway