- A+
不同区块链之间共通的应用一定会出现。因为区块链是一个开放的系统,其中的一切都是加密认证的,开发出使一个区块链上发生的事件联动另一个区块链发生变化的应用其实是很容易的。很多方法可以实现这样的效果,比如哈希锁定和中继。过去的几年已经有很多尝试跨链加密货币交易的实验了。我觉得这一技术也能应用到其他领域。目前最大的挑战仍然是寥寥无几的区块链实际应用和使用人群,现在除了个别领域外,还没到开始实施跨链应用的时机。但我觉得在一两年内,肯定可以看到这方面应用的大规模增长。
什么是跨链技术?
3)哈希锁定(Hash-locking)。
跨链技术的应用
2.2中继/侧链模式
如果一个链B能拥有另外一个链A的所有功能,则称链B为链A的侧链,链A为链B的主链。其中主链A并不知道侧链B的存在,侧链B知道有主链A的存在。
假设区块链拥有区块Header和Body,Header中拥有Merkle等证明信息,可以将链A的区块链头,写入链B的块中,链B使用和链A一样的共识验证方法,比如PoW验证难度和长度,PBFT验证投票等。等待链A的区块头序列之后,链B就可以通过Merkle分支的证明信息来证明链A的数据和操作。
链A、B不能直接验证对方块的状态,因为这样会形成循环,但相互只包含轻节点是可行的,这个区块链验证的逻辑可以由链协议本身或应用合约实现。上述该过程如下图1所示。
图1 中继/侧链模式资产转移流程
图2 中继/侧链模式下事件的发送和接收接口
图2中代码需要在使用中继/侧链模式的两条链上同时存在,但同时需要两条链上的币或物是可以无限量发行的,这样才可以保证验证过程没有错误,从而来达到资产转移操作。中继/侧链模式的代表项目有BTC-Relay、RootStock、Polkadot、Cosmos等。下面将依次对各项目进行介绍。
BTC-Relay
BTC-Relay是一种基于以太坊区块链的智能合约,把以太坊网络与比特币网络以一种安全去中心化的方式连接起来。BTC-Relay通过使用以太坊的智能合约功能可以允许用户在以太坊区块链上验证比特币交易。
BTC-Relay使用区块Header创建一种小型版本的比特币区块链,以太坊DApp开发者可以从智能合约向BTC-Relay进行API调用来验证比特币网络活动。BTC-Relay进行了跨区块链通信的有意义的尝试,打开了不同区块链交流的通道。BTCRelay的认证过程如下图3所示。
图3 BTC Relay交易认证过程
其中,BTC Relay社区成员,被称为Relayers。所有人都可以加入以太坊网络并成为一名Relayer,并且无需花费硬件或者电力
RootStock
RootStock 是一个建立在比特币区块链上的智能合约分布式平台。RootStock采用了「混合」安全模式,同时包含了PoW机制和私人网络模式,基于联合的门限签名方案实现的安全联合工作量证明挖矿机制。它的目标是将复杂的智能合约实施为一个侧链,为核心比特币网络增加价值和功能。
RootStock实现了根链虚拟机(RVM),是以太坊虚拟机的一个改进版本,它将作为比特币的一个侧链,使用了一种可转换为比特币的代币(根币,RTC)作为智能合约的「燃料」。RootStock与比特币之间采用的是双向锚定机制。RootStock的交易认证过程如下图4所示。
图4 RootSock交易认证过程
Polkadot
Polkadot是Web3基金会的跨链协议开源项目。由Parity团队的Gavin Wood主导开发。Polkadot宣称是未来Web3.0时代的基础设施之一,是一个未来「区块链互联网」的基础协议。Polkadot协议强调解决当前区块链技术的伸缩性和隔离性问题,以提供众多异构区块链系统之间去信任、去中心化的通用的互访问性、互操作性为目标。
Polkadot的核心思想是区分交易方发起和执行交易的方式以及交易方统一记录的方式。Polkadot提供基础的中继链(relay-chain),很多可验证的、全球动态同步的数据架构都建立在这个基础上,这些数据架构为平行链或者侧链。区块链应用可以将以太坊分叉,按照各自需求调整,通过Polkadot与以太坊公有链连接,或者给不同的链设置不同的功能,实现更好的扩展性和效率。Polkadot的原理图如下图所示。
图5 Polkadot的原理图
图5所示流程大致如下:收集人收集并且广播用户的交易,也广播候选区块给钓鱼人和验证人。用户提交一个交易,先转移到平行链外部,然后通过中继链再转移到另一条平行链,成为一个可以被平行链上账户执行的交易。
Cosmos
Cosmos是Interchain Foundation的跨链开源项目。Cosmos是专注于解决跨链资产转移的区块链网络。
该网络主要由两部分组成:Cosmos Hub和若干个Zone。
每个Zone可以看作是单独的区块链空间。每个Zone会和Hub保持状态同步。Hub通过去中心化的验证人组来保证安全性,验证人组有罚金托管机制,它是唯一的多资产中心账本,并负责保证各类资产在不同Zone转移的同时,资产总量不变。
Hub既是中继链。Zone之间的跨链通信主要是通过与Hub之间的IBC协议来实现。Zone1向Zone2做跨链消息时,Zone1先生成消息包,并将其证明发布在Hub上,接下来Hub会生成Zone1的跨链消息包已在Hub上的存在证明的证明发布于Zone2,接下来Zone2收妥消息包,并给出证明发布于Hub上,最后,Hub再给出Zone2的收妥证明的证明发布于Zone2,完成整个跨链消息传递。
上述Cosmos的区块链间通信如下图6所示。
图6 Cosmos的区块链间通信
2.3哈希锁定模式
哈希锁定模式的设计是希望链A与链B之间尽可能少的了解彼此,并作为消除公证人信任的手段,该模式的基本流程如下图7所示。
图7 哈希锁定模式流程图
图7所示基本流程如下:
- 1)A生成随机数S,并发送hash(S)给B。
- 2)A在链LA上锁定币,并设定条件:如果在(当前时间+2X=TA)时间内链LA收到S,则转账给B,否则退回给A。
- 3)B收到hash(S),并看见A的锁定和时间设定后,在链LB上锁定币,并设定条件:如果在TA-X时间内链LB收到S,则转账给A,否则退回给B。
- 4)A看见B的锁定后,在TA-X时间内发送S给链LB,得到链LB的币。
- 5)B收到S后,在TA时间内发送S到链LA,得到链LA的币
哈希锁定模式的代表项目有Interledger、闪电网络等。
Interledger
Interledger是由Ripple公司主导发起的跨账本价值传输开放协议。Interledger不是区块链,它是连接各类账本的支付标准、统一协议。Interledger专注于跨账本间资金流动领域。
Interledger本身并不是一个账本,它并不寻求任何的共识。相反,它提供了一个顶层加密托管系统,在称之为「连接者」的中介机构的帮助下,可以让资金在各账本之间进行流动。此外,Interledger也没有原生代币,因此,操作该协议的个体账本,仍然可以使用它们自己的原生代币,这种互操作性解决了特定支付网络的问题。Interledger的加密第三方与交易发送者和接收者的关系如下图8所示。
图8 Interledger的加密第三方与交易发送者和接收者的关系
闪电网络
闪电网络的目的是实现安全地进行链下交易,其本质上是使用了哈希时间锁定智能合约来安全地进行0确认交易的一种机制,通过设置巧妙的「智能合约」,使得用户在闪电网络上进行未确认的交易和黄金一样安全(或者和比特币一样安全)。
使用闪电网络第一步需要在用户A和用户B之间开启双向支付通道。这个通道是在主链之外,如下图9所示。
图9 闪电网络结构图
交易双方在开启闪电交易功能之前,会首先将开启状态所需的数据写入主区块链中建立闪电交易合约,例如锁定期限,合约规则等数据。
当闪电网络出现故障时,将按照合约规则和举证方的数据,在主区块链上进行处理。每一个状态通道建立,类似于一个多重签名系统构建,保证了交易双方守信原则,它比多重签名多了合约的处理。对不守信,将会在主网络受到处罚。处罚在期限内可以得到申诉,例如1000个区块期,而这种申诉是算法进行维护,不以人为因素为标准。
在通道内是双方私匙签名的区块链数据流,双方所有交易细节均在这个数据流得到体现,并以独立链的形式存储,它是证明一个通道是否合乎算法规则。当一个状态通道结束后,双方按照闪电网络输出的最终状态数据来兑现合约,这相当于是一个交易帐本,帐本记录了参与方交易结果,进而实现财产重新分配。
Pallet的诞生
Pallet跨链体系
Pallet与跨链技术应用场景比较
Pallet与其他跨链项目性能比较
总结及参考文献
[2] 《联盟链的多链与跨链的思考与实现(一)》
[3] 《 区块链解读22-跨链技术》
[4] 《连接不同区块链的跨链技术介绍》
[5] 《 **【汇编2】区块链的跨链技术》
[6] 《重磅项目波卡链来袭,深度解析Polkadot跨链技术》
[7] 《Ripple发布Interledger,欲将银行账本和区块链连接到一起》
[8] 上述各项目的白皮书