# 链桥

## 对链桥的需求 <a href="#need-for-bridges" id="need-for-bridges"></a>

***

链桥的存在是为了连接区块链网络。 它们实现了区块链之间的连通性和互操作性。

区块链存在于孤立的环境中，这意味着区块链之间本来就无法进行交易和通信。 因此，虽然某个生态系统内可能存在大量的活动和创新，但它会由于缺乏与其他生态系统的连通性和互操作性而受到限制。

链桥提供了一种让孤立的区块链环境相互连通的途径。 它们在区块链之间建立了一条传输路线，让代币、信息、任意数据甚至智能合约调用都可以从一条区块链转移到另一条。

## 链桥的优点 <a href="#benefits-of-bridges" id="benefits-of-bridges"></a>

***

简而言之，链桥解锁了大量应用场景，它允许区块链网络之间交换数据和转移资产。

区块链具有独特的优势、缺点和应用程序构建方法（例如速度、吞吐量、高成本等）。 链桥有助于整个加密生态系统的发展，它能够让区块链利用彼此的创新。

对于开发者，链桥可以实现以下功能：

* 跨链传输任何数据、信息和资产。
* 解锁协议的新功能和应用场景，因为链桥扩展了协议可以提供的设计空间。&#x20;
* 可以利用不同区块链的优势的机会。 例如，开发者可以通过将去中心化应用程序部署在多个卷叠上来享受不同二层网络解决方案带来的较低费用，而侧链和用户可以在它们之间建立链桥。
* 不同区块链生态系统的开发者之间相互协作，构建新产品。
* 吸引来自不同生态系统的用户和社区使用他们的去中心化应用程序。

## 链桥是如何工作的？ <a href="#how-do-bridges-work" id="how-do-bridges-work"></a>

***

虽然[链桥设计](https://blog.li.fi/what-are-blockchain-bridges-and-how-can-we-classify-them-560dc6ec05fa)多种多样，但以下三种方便资产跨链转移的方法脱颖而出：

* **锁定并铸币 –** 锁定源链上的资产并在目标链上铸币。
* **销毁并铸币 –** 销毁源链上的资产并在目标链上铸币。
* **原子交换 –** 通过第三方将源链上的资产与目标链上的资产交换。

## 链桥类型 <a href="#bridge-types" id="bridge-types"></a>

***

链桥通常可以分为以下几类之一：

* **原生链桥 –** 这些链桥通常用于加强特定区块链上的流动性，使用户更容易将资金转移到生态系统。 例如，[Arbitrum 链桥](https://bridge.arbitrum.io/)的目的就是为了方便用户从KAD主网桥接到 Arbitrum。 其他此链类桥包括 Polygon PoS 链桥、[Optimism 网关](https://app.optimism.io/bridge)等。
* **基于验证者或预言机的链桥 –** 这些链桥依赖于外部验证者组或预言机来验证跨链转移。 例如：Multichain 与 Across。
* **通用信息传递链桥 –** 这些链桥可以跨链传输资产、信息和任意数据。 例如：Nomad 与 LayerZero。
* **流动性网络 –** 这些链桥主要是通过原子交换将资产从一条链转移到另一条链。 一般来讲，它们不支持跨链信息传递。 例如：Connext 与 Hop。

## 权衡利弊 <a href="#trade-offs" id="trade-offs"></a>

***

没有完美的链桥解决方案。 有的只是为了实现目的而进行的权衡利弊。 开发者和用户可以根据以下因素评估链桥：

* **安全性 –** 谁来验证系统？ 通常，由外部验证者保护的链桥不如由区块链验证者在本地保护的链桥安全。
* **便利性 –** 完成一笔交易需要多长时间，用户需要签署多少笔交易? 对于开发者来说，集成一个链桥需要多长时间，这个过程有多复杂?
* **连通性 –** 一个链桥可以连接哪些不同的目标链（卷叠、侧链、其他一层网络区块链等），集成一条新区块链有多难?
* **传递更复杂数据的能力 –** 链桥能够跨链传输信息和更复杂的任意数据，还是只支持跨链资产转移？
* **成本效益 –** 通过链桥跨链转移资产的成本是多少？ 通常情况下，链桥收取固定或变动的费用，具体取决于燃料成本和特定路线的流动性。 根据确保链桥安全所需的资本来评估链桥的成本效益也是至关重要的。

在较高层面上，链桥可以分为需信任链桥和免信任链桥。

* **需信任链桥 –** 需信任链桥由外部验证。 它们使用一组外部验证者（具有多重签名的联盟、多方计算系统、预言机网络）跨链发送数据。 因此，它们可以提供出色的连通性，并完全支持跨链通用信息传递。 在速度和成本效益方面它们通常也表现良好。 但这些是以安全性为代价的，因为用户必须依赖链桥的安全性。
* **免信任 –** 这类链桥依靠它们连接的区块链及其验证者来传输信息和代币。 它们是“免信任”的，因为它们没有增加新的信任假设（区块链除外）。 因此，我们认为免信任链桥比可信链桥更安全。

为了根据其他因素评估免信任链桥，我们须将其分为通用信息传递链桥和流动性网络。

* **通用信息传递链桥 –** 这些链桥在安全性和跨链传输更复杂数据的能力方面表现卓越。 通常，它们还具有良好的成本效益。 然而，这些优点通常以轻客户端链桥（例如 IBC）的连通性以及使用欺诈证明的乐观链桥（例如 Nomad）的速度劣势作为代价。
* **流动性网络 –** 这些链桥使用原子交换转移资产，并且是本地验证系统(即，它们使用底层区块链的验证者验证交易）。 因此，它们在安全性和速度方面表现出色。 此外，流动性网络具有不错的成本效益和良好的连通性。 然而，最大的折衷之处是它们无法传递更复杂的数据 — 因为它们不支持跨链信息传递。

## 链桥相关风险 <a href="#risk-with-bridges" id="risk-with-bridges"></a>

***

去中心化金融领域中[最大的三次黑客攻击](https://rekt.news/leaderboard/)都是链桥造成的，而且链桥目前仍处于开发阶段早期。 使用任何链桥都有以下风险：

* **智能合约风险 –** 虽然许多链桥已经成功通过了审计，但只需智能合约中的一个缺陷就会使资产暴露在黑客攻击中（例如：[Solana 的 Wormhole 链桥](https://rekt.news/wormhole-rekt/)）。
* **系统性金融风险** – 许多链桥使用包装资产在新的链上铸造规范化的原始资产。 这使生态系统面临系统性风险，正如我们所看到的那样，包装代币遭到利用。
* **交易对手风险 –** 一些链桥采用可信设计，这要求用户依靠一种假设，即验证者不会串通起来窃取用户的资金。 用户需要信任这些第三方参与者，这使他们面临一些风险，比如跑路、审查和其他恶意活动。
* **未解决的问题 –** 考虑到链桥处于发展阶段初期，还有许多关于链桥在不同市场条件下如何表现的问题都尚未解决，如网络拥塞期和在发生网络级攻击或状态回滚等不可预见的事件时。 这种不确定性带来了一定的风险，且风险程度目前仍然未知。

## 去中心化应用程序如何使用链桥？ <a href="#how-can-dapps-use-bridges" id="how-can-dapps-use-bridges"></a>

***

下面介绍一些实际应用，在这些应用中，开发者可以考虑链桥并让他们的去中心化应用程序跨链：

### 集成桥接 <a href="#integrating-bridges" id="integrating-bridges"></a>

对于开发者来说，有很多方法可以添加对链桥的支持：

1. **构建自己的链桥 –** 构建安全可靠的链桥并不容易，特别是在选择一种进一步将信任最小化的方式时。 此外，还需要与可伸缩性和互操作性研究相关的多年经验和技术专长。 另外，还需要一支亲力亲为的团队来维护链桥，并吸引足够的流动性使其可行。
2. **向用户展示多种链桥选项 –** 很多去中心化应用程序要求用户拥有原生代币才可与它们交互。 为了使用户能够访问他们的代币，去中心化应用程序在其网站上提供了不同的链桥选项。 然而，这种方法是权宜之计，因为它使用户离开去中心化应用程序界面但仍需要用户与其他去中心化应用程序和链桥交互。 这是一种繁琐的上手体验，会增加出错的范围。
3. **集成一个链桥 –**&#x8BE5;解决方案不需要去中心化应用程序将用户发送到外部链桥和去中心化交易所接口。 这让去中心化应用程序能够改善用户的上手体验。 然而，这种方法有其局限性：
   * 链桥的评估和维护既困难又耗时。
   * 选用一个链桥将造成单点故障和依赖性。
   * 去中心化应用程序受限于链桥的能力。
   * 光有链桥可能还不够。 去中心化应用程序可能需要去中心化交易所来提供更多功能，比如跨链交换。
4. **集成多个链桥 –** 该解决方案解决了许多与集成单个链桥相关的问题。 然而，它也有局限性，因为集成多个链桥会消耗资源，并给开发者带来技术和通信开销 — 这是加密货币领域最稀缺的资源。
5. **集成链桥聚合器 –** 去中心化应用程序另一个选择是集成链桥聚合解决方案，使它们能够访问多个链桥。 链桥聚合器继承了所有链桥的优点，因此不受任何单一链桥能力的限制。 值得注意的是，链桥聚合器通常维护链桥集成，这使去中心化应用程序避免了管控链桥集成技术和操作方面的麻烦。

尽管如此，链桥聚合器也有其局限性。 比如说，虽然它们可以提供较多的链桥选择，但除了聚合器平台上提供的链桥外，市场上通常还有更多的链桥。 此外，像链桥一样，链桥聚合器也面临智能合约和技术风险（更多的智能合约 = 更多的风险）。

如果去中心化应用程序计划集成链桥或聚合器，那么根据集成的深度会有不同的选择。 例如，如果只是进行前端集成以改善用户上手体验，去中心化应用程序将集成小组件。 然而，如果整合是为了探索更深层次的跨链策略，如质押、流动性矿池等，去中心化应用程序就集成软件开发工具包或应用程序接口。

### 在多条链上部署去中心化应用程序 <a href="#deploying-a-dapp-on-multiple-chains" id="deploying-a-dapp-on-multiple-chains"></a>

要在多条链上部署去中心化应用程序，开发者可以使用 [Alchemy](https://www.alchemy.com/)、[安全帽](https://hardhat.org/)、[Truffle](https://trufflesuite.com/)、[Moralis](https://moralis.io/)等开发平台。 这些平台通常提供可组合的插件，能够支持去中心化应用程序跨链。 例如，开发者可以使用[安全帽部署插件](https://github.com/wighawag/hardhat-deploy)提供的确定性部署代理。

### **例子：**

* [如何构建跨链去中心化应用程序](https://moralis.io/how-to-build-cross-chain-dapps/)
* [构建跨链非同质化代币市场](https://youtu.be/WZWCzsB1xUE)
* [Moralis：构建跨链非同质化代币去中心化应用程序](https://www.youtube.com/watch?v=ehv70kE1QYo)

### 监控跨链合约活

要监控跨链合约活动，开发者可以使用子图和 Tenderly 等开发者平台实时观察智能合约。 这类平台上还有一些工具，提供更强大的跨链活动数据监控功能，例如，检查有没有[合约触发的事件](https://docs.soliditylang.org/en/v0.8.14/contracts.html?highlight=events#events)等。
