区块链的跨链技术是什么?
自比特币10年前诞生以来,数以千计的区块链公链被开发出来,基于各种公链的加密货币数量更呈现井喷式增长。客观来看,各条公链都具有自己独特的优势和特征,以 EOS 为代表的公链更是提出了“侧链”的概念。基于“侧链”的概念,EOS 打出了百万级 TPS(系统吞吐量) 的口号。要知道比特币的 TPS 最高值仅有 7,也就是说比特币每秒钟仅支持 7 笔交易。作为区块链 2.0 代表的以太坊的 TPS 也不过才 30~40。而 EOS 号称可以达到百万级 TPS 的技术基础正是“侧链跨链”。
跨链技术可以被理解为一种协议,解决两个或多个不同链上的资产以及功能状态不能互相传递、转移、交换的问题。也就是说,跨链技术能够增加区块链的可拓展性,能够从根本上解决不同公链/侧链之间交易困难产生的”数据孤岛“问题。
跨链技术的难点
跨链技术从 Blockstream 提出侧链概念以来,一直是区块链技术的重点攻关方向。目前并没有被普遍认可的跨链机制,原因在于各个公链之间的底层技术实现差异巨大给跨链技术带来了不小的障碍。
跨链需要解决的几个难点问题:
-
保证跨链信息真实可信
原链上的交易信息对于另一条链来说是一个外部信息,如何保证这个外部信息进入另一条链时是正确的,是整个跨链机制的重要环节。如果要考虑到使用 POW 机制的区块链上没有终局状态(始终存在分叉的情况,只是随着确认块的增加,概率逐渐变小),这个问题的复杂度会更高。
-
跨链交易要确保原链上的 Token 总量不会因为跨链而减少或增多
跨链技术很重要的一个应用方向就是数字资产的跨链转移,如何保证不同链上的数字资产能够安全地从一条链转移到其他链,又可以从其他区块链安全地返回主链是亟待解决的问题之一。
对于数字资产的跨链转移来说,原链上 Token 总量减少的后果是当 Token 需要跨回原链时,原链无法产生新的 Token ,也就是只能单向跨链。原链 Token 增多是名义上的增多,实际上是本来已经跨链至另一个账本的 Token 在原链上被双重支付了,这种情况违背了精确记账的原则,是在任何时候都无法接受的。因此当 Token 跨出原链时,原链上的 Token 必然需要进入“锁定”的状态,当 Token 跨回原链时,这些 Token 需要被解锁。如何通过去中心化的管理机制完成“锁定”、“解锁“的过程就成为了跨链的关键。
-
保证整个跨链交易的原子性
交易的原子性,简单来说是指交易处理的某个环节停止,整个交易能够撤销,而不会存在部分成功,部分失败的情况,无法保证原子性会造成双重支付。在跨链技术中保证原子性的难点在于,跨链双方是两条独立的链,可能具有不同的共识机制、数据结构、交易处理逻辑等等,造成交易最终没有被执行的原因也千差万别。
现有的跨链技术方案
目前主流的区块链跨链技术有公证人机制(Notary schemes)、侧链/中继(Sidechains/relays)、哈希锁定(Hash-locking)。
公证人机制
公证人技术的代表就是瑞波 Interledger 协议。2012年,瑞波实验室提出 Interledger 协议,旨在连接不同账本并实现它们之间的协同。Interledger 协议适用于所有记账系统、能够包容所有记账系统的差异性,该协议的目标是要打造全球统一支付标准,创建统一的网络金融传输的协议。
Interledger 协议使两个不同的记账系统可以通过第三方“连接器”或“验证器”互相自由地传输通证。记账系统无需信任“连接器”,因为该协议采用密码算法用连接器为这两个记账系统创建资金托管,当所有参与方对交易达成共识时,便可相互交易。
侧链
侧链是以锚定某种原链上的通证为基础的新型区块链,正如美金锚定到黄金。侧链是连接各种链,其它区块链则可以独立存在。
侧链技术的代表是 BTC Relay。它被认为是区块链上的第一个侧链。BTC Relay 把以太坊网络与比特币网络通过使用以太坊的智能合约连接起来,可以使用户在以太坊上验证比特币交易。它通过以太坊智能合约创建一种小型版本的比特币区块链,但智能合约需要获取比特币网络数据,因此实现去中心化比较困难。BTC Relay 进行了跨区块链通信的有意义的尝试,打开了不同区块链交流的通道。
中继技术
中继技术的代表是 Polkadot。Polkadot 是由原以太坊主要核心开发者推出的公有链。它主要解决当今两大难题:即时拓展性和可扩展性。Polkadot 计划将私有链/联盟链融入到公有链的共识网络中,同时又能保有私有链/联盟链的原有的数据隐私和许可使用的特性。它可以将多个区块链互相连接。
Polkadot的提出者 Gavin Wood 希望用一条中继链(Relay-chain)来实现其他所有链的交易的验证工作, 再通过平行链的创建实现与原链的交易与通信。
具体来说,现在想在链 A 和链 B 间进行跨链转账,他们的中继链为链 C。链 A 先将数据发送到中继链 C 上,然后在中继链 C 上进行数据校验。校验完成后,将一份成功的凭证发送给链 A,同时向链 B 发送数据,链 B 接收数据后,向中继链 C 发送接收凭证。在链 B 操作执行成功后,会向中继链 C 发送成功凭证。
哈希锁定技术
哈希锁定技术的代表是闪电网络。闪电网络底层运用了 HTLC 技术和 RSMC 技术,构建了一个个链下支付通道。这些通道合在一起成为一个网络。交易双方的数目比较小的微支付可以通过一系列的链下协议完成,从而拓展比特币的性能。
什么是 HTLC 哈希时间锁技术?举个例子。A 与 B 达成这样一个协议:协议将锁定 A 的1个比特币,在 T 时刻到来之前,如果 B 能够告诉 A 一个正确的“暗号” R,使得 R 的哈希值等于约定的值(R),B 就能获得者一个比特币。如果 B 在 T 时刻到来时不能提供正确的“暗号” R,那么这一个比特币自动解锁,回归 A 所有。
“不需要记录在区块链上”的闪电网络还应用了 RSMC(可撤销的顺序成熟度协约)技术。具体来看,假设 A 与 B 之间有一个支付通道,二人共同存入一定资金,必须当二人都签名时才能动用这些资金。每次交易时,都要共同确认资金分配,并达成分配合约。当新的分配合约生效后,旧的分配合约失效。一旦有人,比如 A 仍然使用旧的合约来动用资金,作为惩罚这笔钱必须退还给 B 作为补偿。
FIBOS 的跨链思考
哈希锁定作为 FIBOS 跨链技术的选型并不理想。一来哈希锁定无法保证数据来源的可信度;此外,它还需要用户在一定时间窗口完成操作,用户本身也成为了跨链的一部分,提升了用户使用门槛。
公证人机制天然比较契合 FIBOS 的生态,因为 FIBOS 中 BP 节点(Block Producer)恰好可以作为公证人。但这也带来了一定的问题,首先,BP 节点由投票产生,其变动速度较快,公证人列表需要不断的更新,需要考虑如何去中心化的同步公证人列表、以及公证人列表和 FIBOS BP 不一致所带来的数据同步问题;其次,BP 节点的可信度也存在问题,因为 BP 是由 FIBOS 选出,其公信力不能影响到其他链,这会使得跨链数据的真实信被质疑;最后,公证人机制本身存在数据重复发送的问题,降低了效率。同时,得到的数据依靠“多签”机制来判断能否执行,不能在数学层面上验证,这也会产生风险。
侧链方案有一定的可取性。由于其区块状态同步在合约内进行,所以会产生不必要的 CPU,RAM 等资源消耗。同时带来的问题是,由于 FIBOS 出块速度较快(0.5s),在 FIBOS 侧链进行多块的状态同步,容易产生超时问题。使用侧链来解决数据的可信度是一个很好的方案,可是不应该将其放在合约内进行。
中继方案看起来更为可取,因为中继链的存在,不会因同步状态消耗额外资源在源链上。同时,异构链的数据结构不同问题,可以用在中继链内进行数据转换解决。这使得中继方案不仅比较经济,而且能在异构链之间进行转账。唯一的问题在于锁定资产账户由谁来控制,以及状态和数据同步由谁进行,这一点在上述的中继技术方案里并没有给出答案。
对于 FIBOS 生态来说,解决跨链问题是一个战略性的挑战,尤其在谈到和 EOS 之间的跨链转账问题时,跨链技术是必须要攻克的难关之一。对此,融合公证人机制和中继的方案有着较高的可行性。资产锁定账号由公证人共同掌握,公证人同时负责区块状态的初始化和给出一个同步地址。当出现跨链转账操作时,首先由见证人执行多签对跨链资产进行转出,然后进入中继链,进行数据验证。验证成功后,再由多签操作转入目标链。这使得公证人机制能够在数学层面上被验证,同时使得中继链的数据来源较为可信。
区块链从技术上来说是P2P网络、加密技术和分布式账本,从经济上来说,它是价值网络。而目前,由于不同链之间通信壁垒的存在,导致了区块链的价值网络呈割裂的状态。区块链作为价值网络的基础设施部分,不应该只局限于和止步于一个个“价值孤岛”,更不能仅仅将价值圈定于一个个小的生态中。我们需要跨链技术,需要将不同链之间进行连接和拓展,构建价值网络的高速公路。随着区块链技术的高效迭代和创新,我们相信跨链技术终将成熟,区块链价值网络的高速公路也终将会把一个个“孤岛”连接起来。