跨链,顾名思义,就是通过某些技术让价值跨过链与链之间的障碍,使得原本存储在特定区块链上的价值转换为另一条链上的价值,从而实现价值的流通;只有将同构或者异构的区块链网络连接起来,使资产和价值自由顺畅地在链间流通,才能实现真正的价值区块链网络。
跨链技术是实现价值网络的关键,是区块链向外拓展和连接的桥梁。
跨链技术的研究案例,包括侧链、M2、Poladot、Interledger等。
侧链:BTC Relay是一种基于以太坊与比特币的一种跨区块链通信的技术,其通过使用以太坊智能合约允许用户在以太坊区块链上验证比特币的交易。
M2:同时锚定比特币和以太坊两种区块链的技术。将网络中的所有数据整合成条目或者链,用户数据存储在条目中,而链与条目之间形成互动协作。
Polkadot:计划将私有链和联盟链融入到公有链的共识网络中去,同时又能保有私有链和联盟链的隐私和许可的防护措施。目前以以太坊为核心,实现与私链的互连,以其他的公有链为升级目标,使得以太坊最终能直接去任何链通信。
Interledger:实现不同账本之间的连接从而创造账本之间的写作,其适用于所有的记账系统,能够包容不同记账系统之间的差异性。
目前的区块链项目都是由不同团队基于不同的场景需求和设计理念,采用不同的技术架构开发出的异构区块链。如何实现区块链之间的互联互通和价值转移成为当前区块链技术的研究重点。目前实现区块链网络之间价值转移的最常用方式是中心化的交易所,基于跨链技术搭建的去中心化交易所能够降低链间交易摩擦,提高价值流动性,成为中心化交易所的有效补充手段。
跨链不只是信息的传输,其本质是在价值守恒的前提下,价值在不同区块链之间流动的过程。无论是资产兑换还是资产转移,重要的是保证跨链交易的原子性,即交易要么完全发生,要么完全失败,不存在第三种中间状态。
跨链技术难点及其参考解决方案:
(1)跨链交易验证问题
交易的确认和验证包含了两方面的问题,一是确认交易已经发生并且写入区块链账本,二是验证交易已经获得了系统中足够多区块的确认。(公证人机制:通过外部公证人(联盟)验证跨链消息的可靠性,公证人验证通过后需对跨链消息签名;“区块头+SPV”: 将公证人(联盟)提供的外部区块链系统的区块头数据保存在自己的网络中,根据SPV机制验证交易。)
(2)跨链事务管理问题
交易的最终确定性问题和交易的原子性问题。
(3)锁定资产管理问题
锁定资产的管理,目前有单一托管人模式、联盟托管模式和智能合约模式。
(4)多链协议适配问题
多链跨链方案可分为主动兼容型方案和被动兼容型方案。主动兼容型方案自上而下进行,主要针对已有的区块链系统,先有了上层不同的区块链应用系统,再进行底层的跨链机制研发。通常已有的区块链系统都是异构链,需要进行一一对接。被动兼容型方案自下而上进行设计,主要针对尚未开发的区块链系统,首先搭建好底层的跨链平台,然后基于跨链平台开发新的区块链系统。
(5)跨链安全保障问题
若是链间安全无法隔离,那么如果一条链遭受攻击,将影响整个跨链网络。
3个方面考虑:适度隔离、检测安全事件和保障跨链交易正确性。
链之间应该保持各自的独立性,尽量通过第三方节点或者独立模块处理跨链事务,这样当跨链交易发生问题时,不会影响链本身交易的处理;如果第三方节点或者独立模块具备检测安全事件的能力和响应能力,则在系统架构隔离的基础上更进一步,使跨链协议或系统具备类似防火墙的功能。
主流跨链技术:
公证人机制(中心化公证人机制运行处理效率相对较高,但是存在严重的单点故障风险,一旦公证人遭受攻击变得不可信,整个公证系统将停滞或处于较大的安全风险中。)
侧链/中继:侧链技术就是另外启动一条区块链(侧链),将主链上的比特币资产转移到侧链上,反之也可以将侧链上的资产转回到主链上;比特币在主链和侧链上的资产双向转移称为资产的双向锚定。中继模式适用于链接两个异构或同构区块链,是实现区块链互操作性的更为直接的方式。
哈希锁定:哈希锁定是系统之间进行原子交易的基本框架,能保障跨链交易的原子性,可拓展应用于中心化账本或去中心化账本的系统之间。
分布式私钥控制:通过分布式节点控制各种资产的私钥,并将原链资产映射至跨链中,确保各种资产在区块链系统中实现互联互通。
跨链技术不仅要充当连接者的角色,还需要具备适度隔离各链的功能。
跨链网络之间的连接健壮性及安全性问题、跨链网络之间恶意行为的预警和制止问题、跨链交易中目的链的死循环问题、母链分叉问题、跨链网络激励制度的优化问题等,都是跨链技术的发展所面临的挑战。
跨链技术的难点:一是保障跨链交易的原子性;二是技术实现难度较大;三是交易速度有待提升。
保证跨链交易的原子性,创建无信任的环境,基于哈希锁定的哈希时间契约锁定协议(HTDLC),以加密方式进行哈希处理并具有相关时间与保障金限制的合同, 是一种能够在加密货币渠道中进行使用的智能合约。
哈希锁:由事务的发起者生成的加密密钥的加扰版本, 其是一种阻碍, 它限制输出的开销, 直到公开显示指定的某个数据( 作为加密证据) 。
时间锁:一种限制资金支出的功能, 使用时基来锁定和释放交易货币, 仅在特定时间和日期或块大小的特定高度完成事务。
违约锁:一种在跨链交易过程中作为保障交易强制执行的方法,通过将10%的交易金额放入违约锁进行锁定, 一旦出现单方面发生了违约操作, 例如在交易过程中, 超出时间锁限制的情况, 则将对违约方进行资金处罚, 扣除违约锁内的金额给应约方。
跨链的意义主要总结为以下两点:
(1)突破底层公链性能和功能瓶颈
(2)实现跨链互操作
跨链交互一般按照参与双方的底层平台技术是否为同构链进行讨论,对于同构链,双方的共识算法、区块生成与验证规则、交易广播、安全机制等逻辑都一致,所以跨链交互也相对简单;对于异构链,情况相对复杂,如比特币采用UTXO机制处理交易,而以太坊采用账户机制处理交易,使得一笔交易很难同时被比特币和以太坊处理。异构链的跨链一般需要第三方辅助实现,涉及的具体使用场景不同,也存在去中心化的跨链机制,一般讨论的跨链都是异构链的跨链。
已有的跨链项目中,基于侧链/中继模式的项目占比最高,现有的跨链技术存在一定的缺陷:
(1)公证人机制:优点在于能够通过简单的方式实现跨链,并支持不同结构的区块链跨链,仅要求公证人能访问双方链上的信息;缺点较明显,首先该跨链方式在一定程度上违反了区块链去中心化的特性,公证人存在修改跨链信息的可能,即存在中心化的风险。
(2)哈希锁定:优点是通过对交换信息进行哈希运算并锁定,可以保证交换信息的真实性;缺点在于哈希锁定只能做到交换,而不能做到信息或资产的跨链转移,使用场景受到很大限制。通过在两条链上运行特定的智能合约,实现跨链交易与信息交互。
(3)侧链:优点是这种跨链实现方式简单,侧链相对于哈希锁定技术能提供更多的实现场景;缺点是侧链的实现通常需要利用智能合约,随着交易量的增多,智能合约内部的数据存储存在膨胀问题,可能会造成交易处理速度慢,甚至出现交易堵塞的情况。
(4)中继链:中继链本质上是公证人和侧链机制的融合和扩展。优点是提供了一个跨链交互的平台或中继区块链,各种不同的链都可以接上中继链,实现跨链交互,极大地提高了实用性;缺点是该跨链实现方式复杂,开发难度大,并且在一定程度上依赖于自身的一套跨链协议,对异构链的接入存在一定困难。
跨链的目的以及要解决的主要问题:
(1)不同区块链之间的资产转移,确保实现非中心化的链上资产转移;
(2)区块链上的资产留置,能够实现区块链上资产的锁定冻结,并设定某个区块链上的资产锁定条件、解锁条件,还可以与其他链的特定事件/行为进行关联;
(3)读取和验证其他链的状态或事件,在某个区块链上部署的智能合约,触发其执行的条件可能需要依赖于其他链的信息和数据,跨链数据访问在该应用场景中具有关键作用;
(4)提升区块链交易处理能力,跨链通信是提供更高扩展性的技术路线之一。
跨链技术安全性可以包括以下两个类别:
(1)跨链的技术原理与实现机制本身存在的安全性缺陷,在设计与实现上还存在信任依赖、恶意交易等安全性问题;
(2)区块链系统的结构及特点对跨链安全性造成的影响。
跨链的主要安全性问题:
(1)公证人信任问题。公证人机制由于引入了第三方机构或组织,尽管有成熟的选举策略,但价值转移或信息交换主要依赖于公证人的诚实性,因此中心化程度较高。公证人多重签名通过随机选择在一定程度上增强了安全性,但并未完全消除相关依赖,仍然存在共谋风险。基于公证人机制的一些跨链项目也在寻求与其他技术的结合,如公证人机制的代表——Interledger 项目,在其最新协议中融合了哈希锁定机制,以提供更完备的安全保障;
(2)侧链/中继的安全性问题。由于侧链/中继机制主要通过读取区块头来实现对事件或支付的验证,无法像主链全节点获知网络上所有交易的信息,因此难以实现交易的全面验证,如追溯所有历史交易的UTXO(unspent transaction output)数据、判断是否存在双重支付等。侧链/中继机制依赖于矿工的诚实性,在链失效(chain fail)或51%攻击情况下,将导致跨链系统无法正常工作;
(3)哈希锁定的安全性问题。根据哈希锁定的设计原理,其技术安全性主要与资金锁定机制以及锁定时间超时相关。例如,基于哈希锁定的闪电网络在系统设计时就预见到如下安全风险:恶意参与者创建大量交易通道并让所有通道同时超时,导致垃圾交易信息在网络中广播并造成阻塞,从而影响正常交易;交易通道开启阶段必须保证定量的资金处于锁定状态,即用户需要采用“热钱包”保持较长时间连接到区块链网络以便能签名交易,而非“冷钱包”或离线存储等更安全的方式,因而将增加黑客盗取用户私钥的风险;交易一方如果发生数据丢失或者没有在正确的时间内广播交易,将可能存在被另一方盗取资金的风险。
(4)孤块问题。在采用工作量证明(PoW)为共识算法的区块链网络中,不同矿工可能在相近时间内挖出了两个或多个区块,它们均符合区块链基础协议且工作量足够,因此都属于合法区块。但由于网络传输等问题,网络中的各个节点可能会以不同的顺序接受这些区块,并在最早接收的区块基础上继续计算下一个区块。最终,这些区块中只有一个存在于最长链中,其他区块则被丢弃成为孤块。因此,当跨链网络读取所接入区块链的最新区块信息后,会出现包含相关交易数据的区块先被确认有效,随后又成为孤块的情况,从而导致跨链网络实际传递了错误的区块信息(该区块内的交易和相关数据均已被原始区块链丢弃);
(5)长距离攻击。在采用权益证明(PoS)共识算法的区块链网络中,恶意的节点可能会预先计算出大量区块再一次性放出,导致对应的原始区块链出现重组(block reorganization)。基于替换前的区块完成的跨链交易将均被撤销,跨链网络中的交易因此会被双花(double-spend),智能合约则可能出现满足触发条件并执行结束,但随后触发条件被回滚的情况。应对此类攻击较好的方法之一是设立确定性检查点;
(6)阻塞超时问题。某些跨链技术通过设置延迟时间以确保跨链交易或交互数据得到区块链的确认,这在一定程度上可以避免孤块和长距离攻击问题。鉴于区块链目前有限的交易处理速度,垃圾交易或短期内过多的交易数量会导致区块链网络阻塞。在当前影响力最大的公有链系统比特币和以太坊中,均出现过多次交易阻塞超过数小时甚至几天未被确认的情况。跨链形成的链联网,可能会因为跨链网络一侧的区块链阻塞而导致跨链交易超时且无法及时取消,甚至存在大面积跨链交互阻塞的风险;
(7)竞争条件攻击。在原子交换类的跨链系统中,尤其容易遭受此类攻击。举例来说,A,B双方通过跨链系统提供的智能合约,尝试交换A的1个BTC和B的10个ETH 资产。A发送1个BTC给合约规定的地址,B此时也发送同样数量的BTC到相同地址,并且试图取回自己的10个ETH。这两笔交易均有一定概率被先确认,从而导致B同时得到A的BTC并取回自己的ETH而A一无所获的情况;
(8)日蚀攻击。区块链以及跨链网络均是以P2P网络为基础,由于P2P网络单个节点连接至其他节点数量受TCP连接限制,攻击者通过控制足够多的地址,可以屏蔽受害节点的所有输入和输出节点,从而使受害节点无法获得真实的网络信息。相较于节点全球分散、数量庞大的大型公有链区块链网络,组成跨链网络的节点数相对更少,更易遭受类似的日蚀攻击;
(9)区块肿胀问题。通过存储跨链交易相关区块链的区块头实现数据访问是跨链技术的一种主流做法,由于区块链交易记录的不断累积,截至本文撰写时(2018年10月),比特币区块链大小已达220GB,以太坊区块链为108GB,并在继续快速增长中。尽管区块头的容量占比较低,但跨链接入的区块链越多,需要存储的容量也会相应增多,使得跨链也会面临相同的区块膨胀问题;
(10)失效蔓延问题。跨链形成的链联网结构中,如果其中一部分区块链因共识失败或51%攻击成功等,使这些区块链被恶意势力掌控或完全无法正常运转,链联网中错综复杂的跨链通信则会因为部分死链导致连锁式的交互失败,从而使跨链失效在链联网中大面积蔓延。2018 年以来,有BTG,Verge 等多种区块链遭受了51%攻击,造成重大的区块链资产双花问题,如跨链系统连接了这类区块链网络且未采取相应的安全防护措施,可能导致与它们相联的其他区块链网络受到影响,并造成经济损失等后果;
(11)跨链重放攻击。区块链网络发生硬分叉后,由于原始链和分叉链的交易地址、交易格式、密钥算法等均可能完全相同,其中一条链上的交易被恶意传送到另外一条或多条链重新广播,该交易也可能得到确认,即重放攻击。硬分叉是区块链中并不少见,一般出现在区块链系统升级、共识失败,或开发人员将代码进行一定程度修改后另行启动新的区块链系统。跨链重放攻击会导致跨链交易在分叉的区块链同时成立,造成用户区块链资产的损失;
(12)升级兼容性问题。大多数区块链项目在上线后均会通过持续升级更新特性,特别是大版本升级时会影响一些关键特性,如区块大小、共识算法切换、新增功能等。当跨链接入众多区块链时,各链版本升级后对跨链协议、跨链机制的兼容,以及跨链如何应对与自适应,都是需要关注的问题。
高志豪.区块链之跨链技术介绍[J].金卡工程,2016(11):46-51.
路爱同,赵阔,杨晶莹,王峰.区块链跨链技术研究[J].信息网络安全,2019(08):83-90.
魏昂.一种改进的区块链跨链技术[J].网络空间安全,2019,10(06):40-45.
郭朝,郭帅印,张胜利,宋令阳,王晖.区块链跨链技术分析[J].物联网学报,2020,4(02):35-48.
李芳,李卓然,赵赫.区块链跨链技术进展研究[J].软件学报,2019,30(06):1649-1660.