相信很多人都听过跨链,也知道跨链代表了两条链之间的互操作(interoperability),包括资产和数据两方面的互操作。其实跨链是一个大类,具体实现和技术上分很多种,比如哈希时间锁(HTLC,Hashed Timelock Contract),公证人(Notary)机制,侧链(Sidechain)和中继链(Relay Chain)等。
每个项目在实现上也有差别,比如Interledger就提出了HTLC的泛化协议——哈希时间锁协定HTLA(Hashed Time-Lock Agreements),不但支持去中心化账本,也支持中心化的账本。而公证人机制的实现也分为很多种,侧链和中继链也同样有不同的形式。
面对这些概念和术语,我们如何更好的理解跨链呢?
如果有一个关于跨链的思考框架就好了,这样当有新的技术出现时,我只需要和这个思考框架做对比就好了。这篇文章要介绍的思考框架会从跨链要解决的问题入手,当我们明白了跨链要解决的最核心的问题后,那对于具体的技术要解决的问题就很容易的和这个框架对上号了。
由于跨链包括了数据和资产的跨链,本文只从资产方面进行介绍。
跨链的思考框架
资产从A链的Alice转到B链的Bob,这个过程实际上不是资产真的在两条链上发生了转移,资产仍然停留在各自的链上,只是将资产转移给了同一条链上的另外一个账户。假设有一个机器人负责进行跨链的操作,这个时候Alice会将资产转给机器人在A链上的账户,然后机器人再从B链上自己的账户上转移对应的资产给Bob,这样就完成了跨链的过程。
实际上这个过程不完美,可能会出现两个严重的问题。一是如何保证两个交易的原子性,也就是说Alice到机器人和机器人到Bob这两个交易要么同时成功,要么同时失败,不能只有一个交易成功,另外一个失败,这样就会导致一方的资产损失。二是B链如何完成对A链上的交易确认,首先要确认Alice真的发送了这个资产,然后还要确认这笔交易不会因为链上共识发生区块重组而导致交易失败,典型的例子就是比特币,需要等到6个块之后才基本可以确定区块所在的链是主链,才能保证交易是有效的。
上面提到的两个问题就是我们的思考框架:
- 如何保障跨链交易的原子性
- 如何完成对另一条链的交易确认
从这两个问题着手,我们就可以对号入座,将现有的跨链技术对号入座,从而可以清晰的了解跨链。
解决跨链交易的原子性的技术和项目
使用HTLC和HTLA的都可以归到这一类中,这样的项目有:
- 闪电网络(HTLC)
- 雷电网络(HTLC)
- Ripple的Interledger(HTLA)
解决跨链交易确认的技术和项目
由于区块链本身无法主动与外界进行交互,跨链交易确认只能由外界的一个可信第三方来进行,这个可信第三方可以是一个可信权威,也可以是一组验证人,还可以是一条链,这里的技术包含:公证人机制和中继链模式。
公证人机制是指通过少量的可信第三方来进行跨链交易的确认,可信第三方可以是单个的可信权威,也可以是一组验证人。这个方案的问题是偏中心化,会降低网络的安全性,用户如果要转移大量的资产时会有顾虑。
中继链模式(Relay)是Vitalik在它的互操作性论文中提出的,只是A链和B链可以通过对方的区块数据来进行信息同步和跨链函数调用。这样的项目包含:
- Cosmos的Hub
- Polkadot的Relay Chain
- BTC-Relay中的Relayer
总结
让我们回顾一下文章中提到的理解跨链的思考框架,也就是跨链要解决的两个核心问题:
- 如何保障跨链交易的原子性
- 如何完成对另一条链的交易确认
当我们掌握了这个思考框架,那我们对跨链的理解也由被动的接收变成了主动的去吸收,让自己的知识体系更加完整。
跨链技术还在发展当中,还没有成熟,我们也没有列举所有的项目和技术,但我相信以后你看到跨链技术的时候会更加从容。
参考:【火币区块链产业专题报告】跨链篇