作为区块链的代表应用,比特币首次向世人展示了在没有权威授信的环境中,如何利用密码学技术实现安全可靠的点对点支付系统。在比特币之后,涌现了数量庞多的区块链项目,它们形成了具有不同特点、 针对不同应用场景的区块链网络。

每个区块链项目根据自身发展的需要,来选择合适的共识机制、数据结构、哈希函数以及签名算法。支撑起区块链蓬勃生态的技术栈组合越来越丰富,但也造成了不同项目之间的异构性,使其承载的交易数据和经济价值很难在生态内自由地流转,跨链渐渐成为行业的刚需。所谓跨链,指的是通过特定的技术方案在不同(同构或者异构)区块链之间实现安全地信息互通与价值转移,赋予其额外的互操作能力。

跨链的目的是为了在不同区块链之间进行资产的转移。例如,某用户A在比特币网络拥有10 BTC,但他想要参与以太坊生态的活动,于是他准备将手中的BTC按照当前市场价格兑换呈等价值的ETH,这就是一次典型的跨链需求。

一次成功的跨链交易拆分为以下三个步骤:

  1. 用户的源链地址发送一笔转账交易到该链上的某接收地址
  2. 该交易的有效性通过验证,并触发目标链上的交易
  3. 目标链上的某地址向用户指定的收款地址发送一笔转账交易

为了完成上述的跨链流程,本文将介绍三种技术方案,分析它们的特点,以及讨论潜在的风险。它们分别是公证人机制、哈希时间锁和中继模式。

公证人

在行业初期,技术难点主要在于提升单链的性能,但随着PoS以及拜占庭容错算法的应用,很多区块链的峰值TPS已经能够很好地支撑起用户的交易需求,基础设施日趋完整。于是,更多的技术与金融部门开始注意到区块链所带来的交易范式的转移,参与交易的用户/机构数量和资金规模也随之提高。追逐收益的资金也频繁地在热门项目之间转移,方便、高效的跨链交易需求催生出了中心化的交易所,交易所就是最初的公证人

这类受到信任的第三方,在跨链流程中负责跨链消息的验证和转发。根据签名方式的不同,可区分为单签和多签。单签名公证人又称作中心化公证人,通过指定单一的节点/机构为公证人角色,在交易过程中收集源链的交易数据、验证交易有效性、并通过数字签名来启动目标链的交易执行。单签模式简单,又兼具较高的处理速度。但是其缺点也显而易见,即单一节点的故障或者作恶,会导致该跨链交易系统的崩溃,使跨链服务不再可用。

img

于是,出现了更安全可靠的多签名公证人机制来保障跨链交易。如上图所示,存在一组由多个节点/机构共同成立的公证人集合,负责协调两条区块链之间的跨链操作。用户A在一号区块链中发起的跨链请求,需要获得多数公证人对该请求交易的有效性验证,并公布签名其签名信息,二号链上的对应操作交易才会被执行。为了满足拜占庭容错,只有大于三分之二的多数公证人采取一致行动,跨链交易的流程才能顺利进行。

哈希时间锁

以太坊的出现,第一次为智能合约提供了可靠的去中心化的执行环境,即EVM (Ethereum Virtual Machine)。在无信任的条件下,实现了资产的自动化管理,随之而来的就是如今繁荣的DeFi生态。简单来说,智能合约是由代码控制、提供读写接口实现信息交互,并根据交互信息触发特定操作的自动化协议。以太坊最了不起的创新之处在于,它实现了一个无需任何信任条件的执行环境EVM,使得任何智能合约的部署、交互与执行都不再依靠权威授信的第三方。

于是,通过智能合约部署的哈希时间锁实现了另外一种跨链技术。具体流程如下

  1. 跨链交易的发起者选择一个保密的随机数 $S$,然后计算得到该随机数的哈希值 $h = Hash(S)$,并将$h$发送给跨链交易的响应者
  2. 发起者和响应者在各自的区块链上将待交易的资产锁在智能合约中,上锁信息为$h$,解锁密钥为随机数$S$,锁定期限分别为$T_1$和$T_2$,其中$T_1$必须晚于$T_2$,解锁人分别设置为对方的帐号
  3. 发起者在时刻 $T_2$范围内,通过公布$S$来获得响应者锁定在合约中的资产 ,若超时未取则合约将自动退还资产给响应者
  4. 响应者在发起者公布$S$之后,依然存在不少于$T_1-T_2$的时间窗口,去解锁属于他的资产,若超时未取则资产自动退还给发起者

img

哈希时间锁的出现,很好地解决了跨链交易中的信任问题。只要发起者保护好私密的随机数 $S$,以及时间窗口$T_1 - T_2$足够使得响应者解锁资产,双方无需任何信任便能实现一次成功的跨链交易,可以说是实现了真正的去中心化跨链交易。

应用哈希时间锁的前提是,交易涉及的两条区块链必须支持同一种哈希函数,以及该哈希函数足够安全。前者是工程选择问题,随着以太坊的盛行,越来越多的区块链项目都会选择兼容EVM;后者是密码学问题,目前在区块链行业得到应用的哈希函数,例如SHA256 和Keccak-256,都还没有发现安全隐患。

鉴于人类在数论和量子计算的持续研究,可能在不远的未来,黑客可以利用新发明的数学工具或者计算技术来完成对当前哈希函数的攻击。到那时,密码学家们就该设计出更安全的哈希函数了。密码学大厦就是在这样的矛盾攻守之中,一点点地被构建得更加安全牢靠。

中继模式

中继是对跨链操作的一种抽象,跨链流程中的信息验证问题被抽象成中继层的共识问题, 在此抽象层上可以开发出一条独立的区块链,具有了更好的可扩展性。作为跨链交易的账本,在跨链操作中出现了第三条区块链,即中继链。

在此模式中,存在一系列的中继节点被部署在各个区块链网络中, 负责监控、和同步该区块链的交易数据到中继链。中继链的共识节点验证跨链交易的有效性,并触发对应交易的执行。通过在每条链上部署智能合约,作为跨链操作的接口,中继模式还能将跨链作为一项基础设施,服务更多有跨链需求的项目。

img

一次典型的中继跨链操作,如上图所示:

  1. 用户在源链发起跨链交易请求
  2. 中继节点监测并搬运该交易信息至中继链
  3. 中继链共识节点验证交易的有效性
  4. 验证通过以后,共识节点构造对应交易
  5. 多数共识节点对交易进行签名,组成签名集合
  6. 中继节点监测共识节点产生的交易及签名
  7. 中继节点搬运该交易至目标链,等待执行

中继链的共识算法决定着跨链服务的性能和安全性,经典的拜占庭容错算法,例如PBFT,能够在大多数节点正常工作的条件下,实现较高的交易处理速度。改进版的拜占庭容错算法,例如HotStuff,进一步减少了通信复杂度,支持更大规模的节点参与共识。

中继链作为工程复杂度较高的技术方案,实现难度大,安全风险高,但是其优势也很明显。中继链搭配智能合约,能组成跨链服务网络,用一条中继链沟通多条区块链之间信息,实现更大范围的价值转移。

作为刚需,跨链解决方案必然伴随着区块链行业的发展持续改进,而跨链技术为加密资产所赋予的流动性也必然为更多优秀的区块链项目注入增长动力,彼此互惠。对跨链技术演进的持续关注,意味着在关心加密资产的流通渠道,也许可以帮助我们更好地理解交易市场的变化。