# 马上2023年，跨链还有哪些可能性？

By [web3turing](https://paragraph.com/@web3turing) · 2022-12-31

---

跨链技术似乎一直是一个争议不断，但又不断被人提及的技术。特别是每当有跨链桥被盗时，对跨链技术的争议就会随之而起。而另一方面随着 IBC、LayerZero 等技术不断成熟，社区似乎对跨链未来的期待也会止步于此。

那么，这就是跨链的 endgame 了？Well,

> This is not the end. It is not even the beginning of the end. But it is, perhaps, the end of the beginning.

跨链在 2022 年最近几个月就有不少新的进展值得关注。借着近期被邀请进行了几次跨链分享的机会，把自己对于跨链技术和动向的观察和思考记录下来。

一、跨链技术的分层概览
-----------

### 通过分层来理解跨链

在理解这些进展之前，有必要再回顾一下跨链的具体问题：当我们谈到跨链，其背后具体的本质是什么？用最近比较流行的话来说，怎么用“第一性原理”来理解跨链。

如果说区块链最核心或最不同于其他技术的特点是去信任化，即信息可以在链上不用去信任而是可被验证（Don’t trust, verify），那么跨链其实就是把原本一个链上的信息如何在链间被验证。传递的信息从广义上来讲包括交易以及对于该交易的有效性证明（一般为 merkle proof）。

与此对应的，基于链上可被验证的信息，区块链就可以构建出来资产转账交易等基本类型的应用。而基于验证后的跨链信息，一些跨链应用也可以构建出来，例如采用最常见的 lock & mint（源链锁定后在目标链上发行）方式来跨链转移 token。

因此，根据“跨链”技术或项目所解决的问题的不同，可以从通信层、应用层这两个方面进行分类。

### 跨链技术分类

![](https://storage.googleapis.com/papyrus_images/b6aa2278023e9e9326fe168075d8dc9c0e8575c6ec66bbd0f2f949e09620b76e.png)

### 通信层

首先看通信层。如何实现一个链上的信息可以被另一个链所验证？根据验证方的不同，主要可以分为：外部验证、本地验证、原生验证

*   外部验证：跨链的信息由外部的一些见证人（也被称为公证人、网关等）来验证其有效性。这种方式一般可以更快速的连接各种异构链，因为只需要见证人在各个链上可读写信息即可，但跨链的信息有效性，比如交易信息是否真的在源链被确认了，则需要依赖于见证人。即整个跨链的安全性需要依赖于见证人的诚实假设。
    
*   本地验证：如果不依赖于外部的见证人，用户自己可以直接去观察链上的交易情况，并和交易对手方通过 HTLC 等技术手段去保证互换的交易可以达成。这种方式避免了信任第三方的见证人，也可以快速在异构链上实现跨链转移，但缺点是比较难去实现更复杂的应用，例如通用信息传递、智能合约调用等。
    
*   原生验证：由区块链自己来独立校验跨链信息的合法性。一般会采用集成其他区块链的轻客户端的形式来实现，这样区块链可以去跟踪、获取、校验其他区块链上的信息，并对应的采取一些行为，例如跨链转移、释放 token 等。由于异构链的模型很多，因此也比较需要一类跨链标准来简化设计和实现，例如 IBC 跨链协议等。这种跨链技术的安全性最好，因为不需要增加额外的信任假设，但开发工作量也较大，因为需要在链上相互实现轻客户端，以及可能需要实现完整的跨链协议栈等。
    

### 应用层

只有底层的通信层还不够，还需要构建出面向用户的应用。基于底层验证好的跨链信息，理论上不要求强事务一致性的跨链应用都可以构建出来。不过最常见的应该仍然属于跨链的 token 转移等基本交易形式。因此，问题也就主要是如何解决跨链流动性的传递。而这类问题的解决方式可以借鉴交易类型进行划分：中央对手方、OTC/P2P、自动兑换（Swap）

*   中央对手方：一般“官方跨链桥”多采用这种方式，由官方指定的地址来承担换入换出的操作。即上文提到的 lock & mint 的形式。例如用户在源链上发起跨链时，将 token 锁定到某一地址中，并由该地址在目标链上铸造出 token；
    
*   OTC/P2P：除了官方承担兑换职责外，交易对手方还可以是第三方的做市商或其他用户等。例如用户发布跨链转账的流动性，跨链做市商可以接收这个报价并在目标链上为用户释放流动性。
    
*   自动兑换（Swap）：除了用户间的交易之外，交易的对手还可以是一个自动兑换协议，例如用户在源链的 AMM 上换入之后，由协议再在目标链上换出。
    
*   流动性聚合：和 1inch 等本链上的流动性聚合协议类似，有一些协议会通过聚合上述各种跨链流动性实现，提供链间的流动性聚合应用，以给用户提供流动性最好/报价最优/成本最低的跨链转移渠道。
    

二、跨链还有哪些可能性
-----------

![](https://storage.googleapis.com/papyrus_images/60d19b488a667a29ad954fa10d1b940b4bcbc9749e07ccc54a194fa20015d765.png)

### 底层更轻量化

虽然 IBC 协议被誉为跨链的黄金标准，但在异构链的实现上可能会遇到一些实际的困难，例如以太坊对于原生验证 Tendermint 的区块头时的签名等计算可能就会超出 gas 限制。

### 从中继器到预言机

IBC 协议的正常运行需要中继器这个角色。一个有些“反直觉”之处在于，这个中继器可以是中心化的但不需要被信任（trusted）。原因是传递的信息是可以由目标链独立的去验证，因此中继器无法像外部验证的方式一样篡改消息来实现盗取用户资金的作恶行为。中继器即类似于互联网协议中的物理层，起到了连接不同网络并传输信息的作用。

尽管 IBC 协议的安全性（security）不依赖于中继器，但 IBC 能够正常运行的确需要依赖于至少有一个在正常工作的中继器来保证整个协议的活性（liveness）。

不过因为中继器的主要任务是要将观测源链信息，并在目标链上提交，即完成信息传递的过程。那么，这一过程就可以通过预言机的方式来实现。也就是预言机从“链下到链上”变为链上到链上”的信息传输。

这可能也是很多预言机项目，例如 Chainlink CCIP\[1\]、SupraOracle 等都在朝着跨链的方向来实现的原因之一。

### 从预言机到 TEE

那么，具体哪些可以被预言机所传递？LayerZero 是一个很好的案例。它是将 IBC 协议中的共识状态的验证通过预言机的方式来进行，即不需要再不断的根据最新验证人等变化情况来更新和验证区块头的工作，而是当需要的时候通过预言机去查询和校验所需要的信息。

![](https://storage.googleapis.com/papyrus_images/2b5eceb5316a4f30648dcbf32f70d900b265a8b6878b6e56166468b120a80cfa.png)

这样可以极大降低链上验证成本，而原先在链间负责传递信息的中继器（relayer）只需要传递跨链的交易及其证明即可。因此 LayerZero 可以快速连接多个 EVM 链。不过因为引入了第三方预言机这一额外的安全假设（需要信任预言机不会串通作恶），降低了一定的系统安全性。其他可能的实现还包括利用 Substrate 的“原生预言机” off-chain workers 来传递。

因此，要降低对于预言机的信任依赖，还有一个办法是通过其他的技术手段来改进区块头同步的工作。例如 LCP Network 采用了使用 TEE（可信执行环境）来对跨链交易进行验证。

### 从 Merkle proof 到 ZK proof

除了如何解决信息的传递之外，对于信息（包括信息的证明）本身如何构造，最近也有一些利用零知识证明技术的探索。回顾本文开头对于跨链的定义，跨链核心要传递的信息之一是对于交易的有效性证明（validity proof）。当前的跨链实现一般利用的是 Merkle proof。

而另一大类有效性证明是当前大热的零知识证明技术对应的 ZK Proof。近期的零知识证明等技术的发展，也将基于零知识证明的跨链桥（ZK Bridge）从理论逐渐变为可能。

通过生成零知识证明，可以用来解决上述的以太坊上验证 Ed25519 等签名成本困难的问题。例如 Electron Labs 通过实现 ZK SNARKs 的证明来校验基于 Tendermint 链的签名合法性，以此来避免在智能合约里的来执行签名相关的高成本计算。

### 更好的开发支持（通用信息、智能合约调用）

上述底层跨链协议，可以更好的支持通用信息的传递，包括智能合约调用等等。因此不少项目已经在此基础上开始做进一步的封装，提供 SDK 等，支持应用开发方开发出多链、全链（omni chain）的应用。

这其中包括 IBC Interchain Account、Multichain anycall、Celer IM 等等；也可以基于这些底层跨链协议开发出封装更友好的一些中间件（例如 Spanning Labs 等），支持开发出来多链部署、跨链结算的应用。即把以往应用层需要关心的 token 如何跨链转移等工作下放到中间件或底层来实现。

### 应用层流动性

基于跨链底层、中间件等，在应用层流动性上面可以有更多创新的设计。例如近期提出的 slAMM\[11\]（共享流动性的 AMM），通过 Hub 链来协调各个“卫星链”上的流动性。其中，可以基于跨链协议来实现在各个链上的流动性移动、结算等等管理功能。

### “反作用”于协议层

跨链一般被认为是对区块链基础协议层的支持。不过随着跨链技术的发展，它可能也会反过来对区块链协议本身未来的设计产生一定的变化。

写在最后
----

尽管目前区块链行业内对于技术创新的主要关注点还在以太坊上的 ZK、AA、MEV 等等，但跨链协议近期的 BUIDL，在轻量化底层协议、更完善的开发支持、流动性应用创新、反作用于协议层方面，特别是 ZK bridge 方面都有不少值得期待的新进展。不过由于技术进展快、项目多，本文这一点维小的总结难免有疏漏和错误，欢迎联系讨论！

---

*Originally published on [web3turing](https://paragraph.com/@web3turing/2023)*
