全面解析跨链桥基本原理及安全性
什么是跨链桥?
当前区块链行业发展迅猛,出现了各种各样的公有链,但是不同链上有着不同类型的资产、协议等,使得它们之间无法直接通信,这给用户带来了诸多不便,比如:某用户持有比特币资产,但是想在以太坊生态中进行投资或消费,那么最直接的方式就是通过中心化的交易所进行兑换,但是整个过程非常繁琐,耗时很长并且需要多次支付手续费。
跨链技术的发展使得用户对于不同区块链之间的互操作(如:资产交易和信息交互)成为可能,其中应用范围最广的实现就是跨链桥。Web3领域中的「跨链桥」,不是物理位置连接的桥,而是连接两个不同的区块链网络。这种连接非常重要,因为如果没有区块链「桥」,区块链就会处于孤立的环境中,无法相互通信。
跨链互操作性详细解读
区块链的互操作性Interoperability,由Interaction、Operation和Ability组合而成,即“相互操作的能力”,简称互操作性。区块链互操作性主要包含三方面内容:一是用于应用层的互操作性,主要解决上层应用与底层链紧密耦合的问题,二是用于链间互操作性,主要解决“链级孤岛”问题,三是链下数据互操作性,主要解决链上链下数据的安全可信交互。而本文主要从跨链交易的用途讨论区块链互操作性,即不同区块链系统之间的资产和信息交互。
下面将首先对三种区块链中的互操作性技术进行详细介绍:
2.1公证人机制
公证人机制是技术上可实现的最简单的一种跨链机制,本质上是一种中介的方式。通过引入一个或多个可信第三方做信用背书,持续监听链上的事件,并根据获取到的事件信息负责在其他链上进行跨链消息的验证和转发。公证人机制的实现方式主要分为以下三种:
1.单签名公证人机制
最简单的公证人机制,该方式会选取一个独立的节点或者机构作为第三方公证人。公证人在整个跨链交互中进行数据收集、验证、交易确认等任务。该方式兼容性高、交易速度快,但使用范围仅限于跨链资产交换等场景。
2.多签名公证人机制
该方式中公证人为一群独立节点或者机构组成的联盟,每个节点都拥有一个密钥,只有一定比例的公证人在跨链交易上签名达成共识时,该交易才有效。
该方式弱化了单签名公证人机制的中心化风险,具有更高的安全性,即使有部分节点受到恶意攻击也不会影响整个跨链系统的运行。
3.分布式签名公证人机制
该方式相较于多签名公证人机制,采用了多方计算MPC(multipartycomputation)来确保密钥的安全性和隐私性。即将密钥拆分为多个碎片并随机分发给公证人,但无法利用这些碎片得出完整的密钥,仅当一定比例的公证人共同完成签名后才能拼凑出完整的密钥。
2.2哈希锁定
哈希锁定全称为哈希时间锁定合约(Hash timelock contract),该方式利用哈希函数的单向性与低碰撞性,通过哈希锁和时间锁,在无需可信第三方作为公证人的情况下完成不同链间资产兑换的跨链技术。其中,哈希时间锁要求接收方在规定的deadline期限内,能够确认收款并生成证明给发送方,否则资金将会归还。发送方能够使用收款证明获取到接收方在目标链上的资金或触发相关事件。
该方式的能够保证同一条链上的资产总量保持不变,但通常只能用于转账操作。下面以闪电网络中基于哈希锁定的原子交换实现过程:
1)用户A生成随机数s,并计算出其哈希值H(s);
2)将H(s)值通过网络发送给另一条链上的用户B;
3)用户A设置时间锁t1,并使用H(s)将BTC锁定在自己所在的链的脚本中,该操作限定了只有能提供s值的用户才能获取到锁定的BTC;
4)另一条链上的用户B在A所在链上确认上述交易后,同样在自己所在的链上设置时间锁t2(t2 < t1),同时使用接收到的H(s)将自己的BTC锁定在该链的脚本中;
5)用户A在t2时间内向用户B的脚本发送s值;
6)用户B的合约验证通过后,将锁定的BTC发送给用户A,同时获取到s值。此时如果交易超过t2时限则跨链交易失败,双方都各自取回待兑换的资产。
7)用户B将获取到的s值在t1时限内,发送给用户A的脚本。待其验证通过后,脚本将锁定的BTC发送给用户B。如果超时同样使得跨链交易失败。
2.3 侧链/中继技术
侧链和中继是最常用的跨链机制,都可以通过采集原链上的信息,实现主链区块和账本数据的解析和验证。
但二者存在以下几点差异:首先,侧链从属于主链,侧重于提高主链的可扩展性,对于主链不可见,通常共享原链上的原生代币,而中继则没有从属关系,着重于跨链数据的传输;其次,侧链处理交易时需要同步所有的区块头,导致其速度比中继链慢;最后,侧链和主链的安全机制相互独立,即侧链具有自己的共识协议,这些协议通常是为特定类型的交易设计的,意味着其通常不会继承主链的安全属性,在使用侧链时,用户将失去对资金的保管权,且仅依赖于侧链的安全性。而中继则依赖于主链进行验证。
中继本质上是各主链抽象出的一个跨链操作层,是公证人和侧链机制的融合和扩展。主要作用是作为一个通信中枢收集不同区块链间的数据并进行消息转发,适用于异构或同构的区块链。
侧链实现的基本技术是双向锚定(Two-way Peg)。跨链过程实际上是在一条链上锁定某种代币资产,同时又在另一条链上生成对应的另一种代币资产。其中,双向锚定技术就是解决跨链过程中,目标链如何判定代币资产已经被安全锁定的问题。被认为是区块链上第一条侧链的BTC-Relay,其就通过在智能合约中内嵌Bitcoin SPV功能来允许用户在以太坊上验证比特币的交易。
该技术目前可以通过单一托管模式、联盟模式、驱动链模式、SPV模式实现,
下面将进行具体介绍:
1.单一托管