# 跨链简史：从资产桥到互操作

By [DK](https://paragraph.com/@iamdk) · 2022-05-11

---

跨链技术被认为是区块链领域发展的圣杯，是实现万链互通的关键技术。现在的跨链技术形态，有些是在实现资产互通，有些是提出了一套通信协议，实现区块链间的通信，还有些是提出了新的系统架构和运行模式，支持更多区块链的接入。

跨链一开始的目标在于让资产能从一条链转移到另一条链，又可以安全的返回，后来扩展到解决两个或多个不同链上资产及状态的互相传递、转移、交换的问题。随着现在跨链基础设施的日趋成熟，对于跨链概念的炒作已经冷却。在这样一个时刻，我们来对现有的跨链技术形态，做一个冷峻的观察。

根据跨链技术的演进和实现方式，以太坊的创始人 Vitalik 曾经总结了 3 类跨链技术，分别是哈希时间锁（HTLC），公证人，侧链/中继。我们将把公证人，和侧链/中继进一步分类，各自分成两个小类，这样，我们将分别介绍五种跨链方案。

哈希时间锁合约
-------

哈希时间锁合约是通过一套密码学方法，来实现跨链的去信任资产交易，比如我的 BTC 和你的 ETH 交易，就可以通过哈希锁来实现交易的原子性。

其原理大致如下：用户 A 生成随机数 s，并计算出该随机数的哈希值 h=hash(s) 发送给用户 B，A 和 B 通过智能合约先后锁定各自的资产。A 公开出示 s 可获得 B 锁定的资产，同时 B 也获得了 s，可获得 A 的锁定资产，若超过设定的时间，A 没有出示 s，智能合约中锁定的资产会自动回退给双方。

公证人
---

公证人机制是指由公证人建立一个中间账户，用户将资产转入中间账户，由公证人跨链发行一种映射原 Token 的影子 Token 给到用户。当用户需要赎回的时候，将影子 Token 销毁，并向公证人提供证明，公证人将中间账户中的原始 Token 转到该用户的地址。

公证人必须是可信的。公证人可以凭借自身信用，也可以通过智能合约做超额抵押来获得信任。公证人可以是单个主体，也可以是多个主体通过某种规则组合形成的联盟。

根据公证人的单主体还是多主体，以及公证人的信誉来源是超额抵押还是自身信用，我们可以把公证人方案划分为 4 个子类：

其中，HBTC，BTTC，imBTC 均属于 ② 方案，tBTC 属于 ③ 方案，X-BTC，WBTC 属于 ④ 方案，采用方案 ① 的项目暂未发现。你可能发现，全是[比特币](https://www.panewslab.com/zh/search/index.html?key=%E6%AF%94%E7%89%B9%E5%B8%81)跨链项目，为什么如此，我们后文在对比分析中会有详述。

我们并不需要关注公证人的数量，因此，我们将公证人方案，仅按信任来源，分为两个子类。

超额抵押
----

公证人通过超额抵押建立信用，这意味着，公证人抵押的资产 v2，必须大于中间账户中的资产价值 v1。当公证人出现作恶行为或者过失行为，导致中间账户里的资产遭受损失，那么抵押的资产将可以用来赔付给受损失的用户。然而，超额抵押会给公证人带来资金成本，这些成本，会转化为高额的跨链的手续费，而高额的跨链手续费会让用户望而却步。

自身信用
----

公证人也可以通过自身信用来背书，让用户信任。但这种信任是中心化的，和区块链的基本精神是背离的。但由于这种方式手续费低廉，甚至免费，因此还是吸引了大批用户。这种由中心化机构担保的跨链方式，对于跨链资金体量小，安全诉求低的用户而言，也是很好的选择。

侧链/中继
-----

第三种是侧链/中继的方案。侧链和中继其实是同一个概念，中继链就相当于多条链共同的侧链，为了简化表述，我们后文统一称为桥接链方案。

桥接链方案我们分两类来说，分别是通用方案和同构跨链专用方案。

通用方案
----

桥接链通用方案和公证人方案一样，仍然存在一个中间账户，但中间账户的安全，不靠公证人来保护，而是靠智能合约来规范，这意味着中间账户将是一个合约账户，其资产管理规则被智能合约的代码约束，而不是由公证人约束。如果代码本身没有问题，只要部署该合约的链是安全的，那么合约中的资产就是安全的。

当然，如果桥接链本身有问题，也会影响合约账户里的资产安全。因此，验证人们必须 Stake 一定价值的 Work Token 来保障桥接链的安全运行。假设这个价值是 v3，那么这个 v3 是可以远远小于合约账户里的资产价值 v1 的。

为什么 v3 可以小于 v1 呢？因为现在较为通行的 BFT-PoS 类共识，几乎杜绝了能够篡改账本的“双花”攻击(如果桥接链账本被篡改，则有可能间接威胁到合约账户中的资产安全)，实现了更强的共识安全。BFT-PoS 可以做到即时确定性，而非概率确定性，攻击者即便掌握了半数以上的 Staking Work Token，最多只能做到拒绝签名区块，让封块速度减慢，让网络无法处理交易，已经形成最终确定性的区块中的交易是无法被逆转的。我们可以认为，只要 BFT-PoS 链没有代码故障，无论 Token 市值多小，都是安全的。

虽然恶意的验证人，无法动摇中间账户内的资产安全，但网络瘫痪，停止验证新交易，也不是我们希望看到的状况。因此，v3 最好也不要太小，我们还是希望桥接链的 Token 市值越大，Staking 比例越高，去中心化程度越高越好。

v3 可以小于 v1，因此不会有超额抵押带来的高额跨链手续费，使用跨链桥将可以做到很廉价。那么有没有方法进一步降低跨链成本呢？可能有的朋友会想到让多条链复用同一座桥，这便是 Poly Network 的思路。

同构跨链专用方案
--------

桥接链通用方案，看起来已经很完美了！但我们对于跨链，还有更高的追求。其一，多链复用的资产桥，可以尽可能多的兼容现有的链，但新的链不断涌现，要再去扩充兼容太麻烦了，能否有一个通用的链框架，让新链遵循框架，能够一劳永逸的实现跨链呢？其二，我们对于跨链的追求，并不只是想实现资产桥，我们还希望链间能传递更丰富的信息，有强大的互操作性，例如可以跨链调用合约，让多个链真正连接起来，形成有机整体。

基于对以上两者的追求，区块链世界里有了波卡和 Cosmos 这样的同构跨链项目。两者都采用了“1 母链 + N 子链”的架构，其中母链是所有子链的公共桥接链，任何开发者都可以按照规定的框架开发子链，并申请接入母链。

Cosmos 母链名为 Hub，子链名为 Zone，通过内置的 IBC 协议，Zone 之间可以实现跨链通讯，既能传递资产，也能传递其他格式的信息，实现跨链互操作性。波卡母链名为中继链，子链名为平行链，平行链之间通过 XCMP 协议来通讯，以实现跨链互操作。事实上，波卡的中继链不光起到桥接作用，还可以让接入的平行链共享其共识层的安全性，而对于 Cosmos 的 Zone 而言，链的安全是需要自己负责的。

对比分析
----

哈希时间锁虽然能实现跨链交易的原子性，但无法实现资产的跨链流通。这意味着，通过哈希时间锁，我的 BTC 和你的 ETH 进行安全的交易，但并不能让 BTC 流通到 ETH 上，也无法让 ETH 流通到比特币链上。但哈希时间锁的通用性最强，对链的属性没有任何限制。

公证人方案，可以在一条图灵完备的链和一条非图灵完备的链之间实现资产跨链。当然，这种资产跨链是单向的，只能由非图灵完备的链上跨到图灵完备的链上。例如把 BTC 引入 ETH，反之把 ETH 引入比特币链则不行。这并不是公证人方案的限制。事实上，公证人方案也可以实现两条图灵完备的链间的资产双向跨链流通，但由于其要么费率较高（超额抵押方案），要么倾向于中心化（自身信誉方案），人们更多的会采用桥接链方案。

前文提到一个问题，为什么比特币的跨链更多采用了公证人方案，而非桥接链方案呢？这是因为比特币链不是图灵完备的。在这里解释一下，为什么桥接链只能在双图灵完备的链间跨链呢，是因为桥接链不是一个独立的存在，而需要部署在两端链上的合约配合，就像一座桥不能悬空存在，必须在两岸有桥墩作为依托。

在双图灵完备链间跨链，桥接链方案更有优势，主要体现在无需超额抵押，且可以多链复用，可以更低的成本实现资产跨链。像波卡，Cosmos 这样的跨链项目则直接搭建了一个全新的多链架构，超越了资产桥，在同构链之间实现了丰富的互操作性。

我们阐述了三大类（五小类）的跨链方案，我们将各方案的特性对比做成表格。

以上我们对各跨链方案的阐述顺序，其实有一条清晰的时间脉络。最早的主流链有比特币和以太坊，人们想要实现 BTC 和 ETH 之间的交易，最先能想到的便是哈希时间锁这样的，不需要借助任何外力的纯密码学方法。2013年5月, Nolan 在 BitcoinTalk 论坛提出了原子转移（atomic transfers）思路。后来，人们开始建设基础设施，建立资产桥，让链间的资产能够互通，在这当中，比特币作为市值最大的加密资产，吸引了很多人想把比特币资产导入到其他链，但由于比特币不支持智能合约，人们只好使用公证人机制。

由于理念的不同，有的项目采用了去中心化的，成本较大的超额抵押方案，有的项目则采用了简单直接的中心化托管方案。为了降低跨链成本，人们想到了，让多链共用一座链桥的方式。为了一劳永逸，实现对新链的兼容性，人们制定了新链开发的框架和标准，如 Substrate 和 Tendermint，为了实现更多维度的互操作性，人们创造了同构多链架构，如 Polkadot，Cosmos。现如今，区块链跨链基础设施日趋成熟，以至于人们已经不再常常讨论跨链，就像我们看到灯亮起时，不再谈论“电”的原理一样。

区块链的从业者们从未停止思考，从未停止追求更优方案，在他们的推动下，区块链世界像生物一样向着更复杂，也更简单的方向不断演化着。

---

*Originally published on [DK](https://paragraph.com/@iamdk/huqjqkm3inicSSndshRz)*
