跨链桥详解

1,047 阅读14分钟

一、理解跨链桥

区块链本身无法互相交流。一般来说,区块链无法监控或追踪其他网络中发生的事情。每条链都会制定自己的规则,比如协议设计、货币、编程语言、治理架构以及文化等各个方面。因此,区块链之间要实现交互相当困难。而这也限制了Web3生态的经济活动,每个区块链网络的经济活动被完全孤立,无法形成协同和联系。

要理解跨链桥的价值,一个简单的方法就是将区块链想象成一个个被海洋隔开的大陆。A大陆拥有丰富的自然资源;B大陆拥有肥沃的土地,粮食质量高;C大陆的制造业蓬勃发展,而且拥有许多工艺精湛的工匠。

如果我们能够将这些大陆的优势结合起来,就可以创造一个繁荣的世界。然而,如果不能通过航运、造桥、修隧道或其他基础设施来将这些大陆连通起来,这些地区也无法利用自身优势来获利。A大陆可能种不出粮食,B大陆可能没有技术来提高粮食产量;C大陆可能没有足够的资源制造质量上乘的产品。如果我们能将这些经济体都连通起来,那么所有大陆都可以从中受益。每个地区都可以专注发展自身的独特优势,并通过贸易来共享全世界的财富和创造力。

同样地,如果我们能将各个区块链、扩容方案以及应用链连接起来,也可以利用每个区块链生态的独特优势来实现更大的协同效应。

二、跨链桥的运作机制

跨链桥是一种允许不同区块链之间传输资产和数据的技术。它的运作机制基于两个主要的组件:锁定和释放。

当用户想要将资产从一个区块链转移到另一个区块链时,他们将把资产锁定在第一个区块链上。这个过程通常涉及将资产存入一个专门的智能合约中,该合约负责管理锁定和释放资产。 一旦资产被锁定,跨链桥将会生成一个类似于代币的资产,该资产代表着锁定的资产。这个代币可以在第二个区块链上使用,就像任何其他代币一样。 当用户想要解锁资产并将它们带回原来的区块链时,他们将把代币发送回跨链桥。跨链桥将检查代币是否有效,然后释放锁定的资产。

跨链桥的运作机制是复杂的,但它为区块链之间的资产转移提供了一个安全且可靠的方式。

通证桥通常会采用跨链消息传输协议,其目的就是在区块链之间转移通证。实际上,跨链桥只是跨链消息传输协议众多用例的其中之一,许多跨链桥只针对具体应用提供跨链服务。除此之外,跨链桥还可以用于更广泛的应用场景,比如跨链去中心化交易平台(DEX)、跨链货币市场或更通用的跨链功能。

三、跨链桥的分类

跨链桥主要分为三种类型:

  • 锁定 / 铸造——用户在起始链的智能合约中锁定通证,然后在目标链上以“打欠条”的方式铸造包装版通证。反向操作的话就是将目标链上的包装通证销毁,以解锁起始链上的原始通证。
  • 销毁 / 铸造——用户将起始链上的通证销毁,然后在目标链上重新发布(铸造)同样的原生通证。
  • 锁定 / 解锁——用户锁定起始链上的通证,然后解锁目标链上流动性池中同样的原生通证。这几类跨链桥通常会推出收入共享等经济激励机制来吸引两条链上的流动性。

另外,跨链桥还可以添加任意数据消息传输功能,这个功能不仅能够跨链转移通证,还可以转移任何类型的数据。这类可编程通证桥包含通证桥和任意消息传输功能,一旦通证从起始链发送到目标链,就会立刻在目标链上执行智能合约调用。

可编程通证桥不只可以实现通证桥功能,还可以实现更复杂的跨链功能。比如在执行通证桥功能的同一笔交易中还可以执行通证兑换、借贷、权益质押或储蓄等功能。

跨链桥的另一种分类方式就是评估它们在验证起始链状态以及将交易传输到目标链过程中的信任最小化水平。一般来说,跨链方案的信任最小化水平越高,计算成本就会越高,而且灵活性和通用性也会随之降低。在一些应用场景中,需要在最大程度上保障信任最小化,因此必须做出这样的权衡。

四、跨链互操作性详细解读

区块链的互操作性 Interoperability,由 Interaction、Operation 和 Ability 组合而成,即 “相互操作的能力”,简称互操作性。区块链互操作性主要包含三方面内容:一是用于应用层的互操作性, 主要解决上层应用与底层链紧密耦合的问题,二是用于链间互操作性, 主要解决 “链级孤岛” 问题,三是链下数据互操作性, 主要解决链上链下数据的安全可信交互。而本文主要从跨链交易的用途讨论区块链互操作性,即不同区块链系统之间的资产和信息交互。

下面将首先对三种区块链中的互操作性技术进行详细介绍:

4.1  公证人机制

公证人机制是技术上可实现的最简单的一种跨链机制,本质上是一种中介的方式。通过引入一个或多个可信第三方做信用背书,持续监听链上的事件,并根据获取到的事件信息负责在其他链上进行跨链消息的验证和转发。公证人机制的实现方式主要分为以下三种:

1. 单签名公证人机制

最简单的公证人机制,该方式会选取一个独立的节点或者机构作为第三方公证人。公证人在整个跨链交互中进行数据收集、验证、交易确认等任务。该方式兼容性高、交易速度快,但使用范围仅限于跨链资产交换等场景。

2. 多签名公证人机制

该方式中公证人为一群独立节点或者机构组成的联盟,每个节点都拥有一个密钥,只有一定比例的公证人在跨链交易上签名达成共识时,该交易才有效。

该方式弱化了单签名公证人机制的中心化风险,具有更高的安全性,即使有部分节点受到恶意攻击也不会影响整个跨链系统的运行。

3. 分布式签名公证人机制

该方式相较于多签名公证人机制,采用了多方计算 MPC(multipartycomputation)来确保密钥的安全性和隐私性。即将密钥拆分为多个碎片并随机分发给公证人,但无法利用这些碎片得出完整的密钥,仅当一定比例的公证人共同完成签名后才能拼凑出完整的密钥。

4.2  哈希锁定

哈希锁定全称为哈希时间锁定合约(Hash timelock contract),该方式利用哈希函数的单向性与低碰撞性,通过哈希锁和时间锁,在无需可信第三方作为公证人的情况下完成不同链间资产兑 换的 跨链技术。 其中,哈希时间锁要求接收方在规定的 deadline 期限内,能够确认收款并生成证明给发送方,否则资金将会归还。发送方能够使用收款证明获取到接收方在目标链上的资金或触发相关事件。

该方式的能够保证同一条链上的资产总量保持不变,但通常只能用于转账操作。下面以闪电网络中基于哈希锁定的原子交换实现过程:

EJ%Y3)PJ0OBB%1P2OL_NW_2.png

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。如果超时同样使得跨链交易失败。

4.3 侧链/中继技术

侧链和中继是最常用的跨链机制,都可以通过采集原链上的信息,实现主链区块和账本数据的解析和验证。

但二者存在以下几点差异:首先,侧链从属于主链,侧重于提高主链的可扩展性,对于主链不可见,通常共享原链上的原生代币,而中继则没有从属关系,着重于跨链数据的传输;其次,侧链处理交易时需要同步所有的区块头,导致其速度比中继链慢;最后,侧链和主链的安全机制相互独立,即侧链具有自己的共识协议,这些协议通常是为特定类型的交易设计的,意味着其通常不会继承主链的安全属性,在使用侧链时,用户将失去对资金的保管权,且仅依赖于侧链的安全性。而中继则依赖于主链进行验证。

中继本质上是各主链抽象出的一个跨链操作层,是公证人和侧链机制的融合和扩展。主要作用是作为一个通信中枢收集不同区块链间的数据并进行消息转发,适用于异构或同构的区块链。

侧链实现的基本技术是双向锚定(Two-way Peg)。跨链过程实际上是在一条链上锁定某种代币资产,同时又在另一条链上生成对应的另一种代币资产。其中,双向锚定技术就是解决跨链过程中,目标链如何判定代币资产已经被安全锁定的问题。被认为是区块链上第一条侧链的 BTC-Relay,其就通过在智能合约中内嵌 Bitcoin SPV 功能来允许用户在以太坊上验证比特币的交易。

图片

该技术目前可以通过单一托管模式、联盟模式、驱动链模式、SPV 模式实现,

下面将进行具体介绍:

1. 单一托管模式

最简单的实现方式,基本原理与单签名公证人相同。通过公证人实现侧链资产的锁定和验证释放。

2. 联盟模式

资产托管方是公证人联盟,基本原理与多签名公证人相同,利用多重签名减小上述方式中中心化的风险。

3. 驱动链模式

该模式中由交易处理节点作为公证人,负责资金的托管和解锁。具体过程为:交易处理节点提交其他链上的资产锁定信息到区块中并发起草案,在投票与确认后,在当前链上解锁指定的资产。

4.SPV(Simple Payment Verification)模式

主链和侧链通过 SPV 验证,确定资产是否被安全锁定。下面以 BTC-Relay 该模式的具体实现为例,进行介绍:

1)用户 A 向主链上包含了侧链信息的指定地址发送代币,锁定主链资产;

2)等待一段确认期,使得上述交易经过主链共识后被确认;

3)用户在侧链提交一笔铸币交易和对应的主链资产锁定交易的 SPV 证明,侧链区块根据 SPV 证明验证上述交易的有效性,验证通过后侧链会进行铸币但该资产此时处于锁定状态;

4)等待一段竞争期,目的是为了保证资产被完全锁定,从而防范双花攻击。如:等待 SPV 区块头的验证数大于 6 次;

5)侧链解锁铸币,使得其可以在侧链上自由流通。

五、跨链桥的挑战

区块链要摆脱可信第三方安全地交互,挑战性非常大。与单体区块链不同,跨链通信本质上需要在安全、信任和灵活性三个维度上做出权衡。这也意味着,必须要在安全、信任假设和配置灵活性上做出权衡,才能让智能合约跨不同区块链实现可组合性。而单体区块链上的智能合约无需做出这样的权衡就可以实现可组合性。

如果跨链消息传输存在如此多限制,为什么不能简单地将所有应用都部署到一条区块链上呢?回答分两层。首先,区块链如果将去中心化和可信的中立作为核心价值观,那么其吞吐量就存在理论极限,受到算力、带宽和存储能力的限制。其次,每条区块链和扩容方案都会有不同的侧重点,比如速度、安全性和去中心化水平。由于大家对于如何最好地权衡这三方面一直存在争议,因此不同的区块链和解决方案也都各有市场。

对于跨链桥来说,一个重要的问题就是到底采用包装资产还是原生资产。包装或跨链资产代表了起始链上的资产。由于要求一方或多方托管底层通证,因此安全和信任假设机制也会各有不同。可以通过Chainlink储备金证明开展去中心化验证,并消除这些瓶颈。如果采用原生通证,那么在跨链桥功能完成后也可以在目标链上使用同样的通证。不过需要考虑如何验证链上通证销毁情况,以触发在目标链上发布同样的通证。

跨链桥的另一个考虑因素就是终局性,即:一旦起始链上的通证被提交,必须保障目标链上通证的可用性。如果无法保障终局性,起始链一旦发生反向交易(reversed transaction),比如区块重组,那么就会对目标链造成不利影响,比如跨链通证在起始链上没有相应的抵押资产。

加密经济系统中最弱的一环决定了其稳健性。如果通证桥安全出问题,就会威胁到用户资金安全,即使底层区块链或L2网络是安全的也无济于事。要保障通证桥的安全,最关键的考虑因素就是攻击成本以及需要贿赂的节点数量。因此,要在最大程度上提升跨链桥的安全,就必须尽量将参与状态验证和交易传输的节点多元化,并增强通证桥的加密保障。

由于这些复杂因素的存在,通证桥成为了Web3领域主要的攻击对象。因此,我们在设计跨链消息传输协议时必须将安全放在第一位。