
1 当前存在的问题
区块链为我们带来了防篡改、去中心化、不可逆、智能合约等极具价值的特性,我们可以使用一个独立的区块链系统构建一个完美的分布式账本。
但是,多条区块链之间互联互通,也是非常必要的。
在区块链最传统的加密数字货币领域,有些用户则倾向于使用比特币,有些用户则倾向于使用以太币,或者其他加密数字货币。
大多数区块链加密数字货币都是独立的价值网络,大多都无法参与自身之外的信息交互和价值转移,从某种程度上讲,可以视其为一个“信息孤岛”,区块链上的价值流通也大大的受限。
这里以一个例子来描述跨链技术在加密数字货币领域的意义

比特币网络与以太币网络跨链实例
Alice是比特币的用户,持有3个比特币; Bob是以太币的用户,持有100个以太币; 咖啡店C,支持比特币支付,且一杯咖啡的售价为1个比特币,但不支持以太币支付; Bob通过跨链机制(比特币、以太币之间的跨链机制)从Alice手里兑换到一定比例的比特币,再使用比特币从咖啡店C买到了想要的咖啡,最终完成了使用自己持有的以太币从咖啡店购买一杯咖啡的交易。 |
对于跨链技术来讲,更为重要的应用领域是在区块链企业业务中。
如果把区块链分布式账本类比于多家企业共同建立的一个分布式数据库,那每条区块链就相当于数据库中的一张数据表。
对于复杂的企业业务场景,必然要采用多张表才完成业务。而每张数据表不可能都是孤立的,必然存在着一定的关联性、依赖性或者数据的一致性。
以税收的场景为例,每个地域的企业可以与相关的税务部门组成一条区块链,记录纳税信息,但是,企业还会涉及采购、销售等上下游的相关企业,这些企业可能处于其他地域,这其中又涉及增值税数据的抵扣。
所以,不同地域的区块链账本之间,数据存在一定的关联性和一致性。
跨链技术可以解决企业业务场景下的一个重要的问题——在保证业务协同性的情况下,尽可能地提升区块链系统的整体业务性能。
通过跨链技术,将具有紧耦合的业务,放到一条区块链上,对于松耦合的业务,拆分到不同的链上,由跨链技术实现业务的协同和事务的一致性。
总体来说,当前的区块链系统都是相对独立的系统。
不管是从性能上,还是从支撑的业务复杂度上,都已经成为区块链技术的发展瓶颈,必须要通过合适的跨链技术,实现区块链业务系统的互联互通和高性能。
当前设计与实现跨链的技术难点,主要集中于以下两方面:
(1)交易验证问题:如何设计区块链系统之间的信任机制,使得一个区块链可以接收并且验证另一个区块链上的交易?
(2)事务管理问题:跨链交易包含多个子交易,这些子交易构成了一个事务,如何确定子交易是否被最终确认、永不回滚,及如何保证交易的原子性?所有子交易要么都成功,要么都失败。
2 常用解决方法
在多个区块链间进行跨链是一个复杂的过程,对于加密数字货币领域,有侧链、中继、哈希锁定等跨链实现方案,来完成数字资产的价值交换和转移。
1.侧链
侧链是相对于主链而言的一个概念,它是以锚定某种原链上的代币为基础的新型区块链,正如比特币锚定到以太币。
侧链概念的提出主要是为了实现比特币和其他数字资产在多个区块链间的转移。通俗地讲,侧链就是使区块链代币在不同区块链间转移的机制。
侧链不像之前其他的区块链系统,对已有的区块链系统具有较强的排斥性,主链与侧链的关系如下图主链与侧链:

主链与侧链
可以将主链与侧链看成两个不同的系统,而虚线侧是数据流向,主、侧链的相互作用,可以简单地看作是两个系统间进行数据传输的过程。
侧链的主要工作方式分为单一托管和合约联盟。
当前的侧链系统中,有以下具有代表性的方案:BTC-Relay,它是被认为区块链上的第一个侧链,主要原理是通过一种安全去中心化的方式把以太坊网络与比特币网络连接起来,BTC-Relay基于以太坊的智能合约功能,使用户可以在以太坊网络上进行比特币交易。
Elements(元素链),作为比特币侧链,其最具创新意义的特性莫过于私密交易。
私密交易中的金额仅由该交易的参与者知道(或其他指定的人可以知道)。
比特币用地址来保证隐私,同时公开交易让别人验证。
元素链在保护个人隐私上更进一步,因为其引入一种新地址类型,称为私密地址,私密地址含有一个盲化因子,因此比普通比特币地址更长,这种地址在元素链Alpha版本中是默认地址。
对于中继、哈希锁定等公链跨链技术,感兴趣的读者可自行网上查询。
对于在企业业务场景,应用更为广泛的区块链联盟链,还可以采用公证人机制实现跨链。
2.公证人机制
这种模式相对简单,易于理解,和现实世界中的“公证人”很类似。
假设A和B不是互相信任的,那就引入A和B都能够共同信任的第三方充当公证人作为中介。这样的话,A和B就间接可以互相信任。
此模式中,通过外部的公证人验证跨链消息的可靠性,公证人验证通过后必须对跨链消息签名。具有代表性的方案是瑞波实验室提出的跨链价值传输协议(Interledger Protocol,简称ILP)。
ILP旨在连接不同账本并实现它们之间的协同。
Interledger Protocol适用于所有记账系统,能够包容所有记账系统的差异性,该协议的目标是要打造全球统一支付标准,创建统一的网络金融传输的协议。
Interledger Protocol使两个不同的记账系统可以通过第三方“连接器”或“验证器”互相自由地传输货币。
记账系统无需信任“连接器”,因为该协议采用密码算法用连接器为这两个记账系统创建资金托管,当所有参与方对交易达成共识时,便可相互交易。
ILP整个交易流程分成两个方向的流程:
(1)由发送者向接收者;
(2)由接收者向发送者。
每个流程又会由各自“账本”上的子交易组成,子交易包括托管创建和托管确认。
连接者同时处在发送者链上账本和接收者链上账本上,它与发送者通过发送者所在的链上账本进行交易,与接收者通过接收者链上账本进行交易。
从发送者到接收者方向,会在所有账本上创建“托管”交易,“托管”交易在未被确认完成时,其交易内指定的资产转移不会真正发生。
只有当接收者对“托管”交易确认完成后,从接受者向发送者方向上的各个“托管”交易才会被确认,此时所有账本上的“托管”交易才会被确认,各个“托管”交易内指定的资产才会真正转移。

IPL交易流程
而对于在企业业务场景中,应用广泛的区块链联盟链平台——HyperledgerFabric,引入了通道的概念,它支持多通道并行运行,其中每个通道有一个独立的区块链账本,多个通道之间链结构相同,相互隔离,我们可以通过分布式事务技术,实现多条通道之间账本的协同和一致性。
利用类似Hyperledger Fabric系统的水平扩容方案,将一个主链分成若干个同构的子链。每一条子链的性能都是类似的。
用户的业务可以承载在其中一条链上,通过跨链技术完成多业务之间的交互。
系统的交易可以在多个子链上并行处理,达到了水平扩容的效果,从而使区块链系统的整体性能得到十倍甚至是百倍的提升。


