从 LayerZero 和 Google Cloud 谈起 跨链应依靠预言机还是 ZK

作者:Joey 吴说区块链

LayerZero 和 Google Cloud 已宣布将 Google Cloud 集成为 LayerZero 上的新跨链预言机选项。在 LayerZero 的跨链实施中,预言机的角色是验证消息是否已经由源链处理了跨链消息请求。现在,在 LayerZero 上构建的应用程序可以从四个不同的预言机选项中进行选择,包括 Chainlink、Polyhedra 的 zkLightClient 以及由 Polygon 和 Sequoia 管理的预言机。

最新的变化是,Google Cloud 将替代 Polygon/Sequoia 管理的预言机,成为 LayerZero 跨链解决方案的应用程序的默认配置。这是自 2022 年 3 月以来 LayerZero 首次更改默认配置,因此对 LayerZero 而言是一次重大变革。此举也可能对 Solana 产生影响,考虑到 Google Cloud 仅在几个月前加入 Solana 生态系统,成为验证者和核心基础设施提供商。这也引发了有趣的思考,即区块链的跨链安全性最终可能需要依赖中心化的互联网巨头,这是一个值得深思的话题。

与此同时,ZK 跨链互操作协议 Polyhedra 最近刚刚完成与 BNB 二层网络 opBNB 的集成。该协议与 LayerZero 成为 BNB Chain 生态系统催化剂奖(BNB Chain Ecosystem Catalyst Awards)榜单上仅有的两个跨链桥协议。考虑到 Multichain 的失败,目前似乎只有两种主流跨链路线可供选择:预言机(Oracle)跨链和零知识证明(ZK)跨链。而 LayerZero 和 Polyhedra 分别代表了这两种路线的领先者。

LayerZero 本质上利用了轻节点技术原理,设计了超轻节点机制,通过中继器和预言机将中间的信任环节分成两部分,从而以更低的成本换取更高的安全性。

轻节点仅保存历史所有区块头,不存储区块内的具体交易信息。多个 Merkle Root 的区块头足以使用默克尔树验证交易是否真实存在于该区块中。通过在轻节点上运行验证,完全排除了公证人等外部角色的干扰,实现了更高度的去中心化,从而提高了安全性。然而,这也意味着跨链成本将分摊给跨链需求的用户,可能会变得较高。

超轻节点(Ultra-Light Node,ULN)相对于轻节点,执行与链上轻节点相同的验证,但不会按顺序保留所有块头,而是由分散的预言机根据需要流式传输。它的优点是不需要依赖轻节点来获取区块头数据流。然而,它的代价是缺乏历史顺序数据流,这意味着如果预言机和中继者同时作恶,就可能通过验证导致执行恶意信息,从而降低了一定程度的安全性,但降低了成本。

在这个过程中,中继器的作用是将跨链消息中的 Receipt 和 Merkle Proof 所需的路径信息传递给目标链上的智能合约以进行验证。Receipt 包含了交易执行结果、交易哈希和交易事件日志等信息。而 Oracle 在 LayerZero 跨链中扮演公证人的角色,它将源链上的跨链请求所在的 Blockhash 和 Block Receiptsroot 传递到目标链上。Blockhash 用于告知目标链上的智能合约哪个区块包含了用户的跨链请求,而 Block Receiptsroot 用于验证中继器传递的消息。因此,出于利益考虑,预言机必须极其可信,因为它的可信度决定了资产的安全性。

如果只有一个预言机,存在极大的风险。为了防范这种情况,LayerZero 实施了任何应用都可以自定义预言机来支持其系统的策略。即使一些预言机宕机或作恶,跨链工作仍然可以继续进行。市场竞争逐渐演化出多种选择,形成了多对多的选择格局,各方之间将建立去中心化的相互监督体系。即使某一预言机和某一中继器合谋,也只会对使用了这两者的特定应用产生一定影响。

除了安全性因素之外,LayerZero 还具有更强的通用性和极低的协议接入成本,这是一个隐形的优势。

通用性更强。在当前的跨链协议中,包括 Cosmos 生态的 IBC 协议和 Polkadot 生态的 XCMP 跨链协议,要验证其他公链上的交易,必须在以太坊上部署相应的轻节点。高昂的 Gas 成本使得许多 EVM 兼容链(如 ETH/BSC/Polygon/L2 等)难以支持 IBC 协议,从而限制了 IBC 协议的通用性,目前它仅能在相对小众的 Cosmos 生态链之间运行。

更低的开发者接入复杂度。从一开始,LayerZero 协议的工作重心就放在了极简的合约接入设计上,而跨链消息的需求潜力巨大,涵盖跨链借贷、收益聚合和交易等方面。由于易于使用和开发,该协议已经在 30 多个链上传递了数百万条消息。

至于 ZK 跨链技术,它应对了预言机跨链的信任问题。通过引入零知识证明技术,ZK 跨链不是消除中继器,而是将中继器的证明过程交由密码学来处理,从信任第三方转变为信任密码学。这使得可以在链下验证新区块头,并将新区块头及其有效性证明(Zk Proof)提交到链上,链上可以直接验证ZK Proof,等效于验证新区块头。ZKBridge 采用模块化设计,将验证智能合约的程序与核心桥分开。核心桥包括中继器和更新合约,中继器接收上一个区块的区块头并验证其正确性,由更新合约检查并接受这些证明。应用程序合约由发送方和接收方合约组成,分别部署在两条链上,这些合约与 ZKBridge 交互,执行跨链操作。

在跨链时,区块头中继节点生成零知识证明,证明中继的区块头正确,并将其发送给更新合约。更新合约维护发送方区块链的状态,并允许接收方合约查询区块头。应用程序合约定义要桥接的信息。

为此,PolyHedra 开发了名为 deVirgo 的证明系统,它是 Virgo 协议的分布式版本,旨在通过将计算分散在多台机器上来并行化 GKR 协议。虽然与 Starkware 和 Polygon Zero 使用的密码假设相同,即ZK-SNARK,但其创新之处在于使用分布式方法生成 SNARK 证明,即链下生成 ZK-SNARK 证明的工作分拆成多台机器的并行计算。根据 Polyhedra 公布的测试数据,使用两个 AMD EPYC ™ 7763 CPU 生成以太坊全节点证明并递归验证的时间不到 12 秒,远低于以太坊的区块时间。

然而,这并不意味着 ZKbridge 在性能方面一定优于中继器跨链。即使不考虑 Polyhedra 的测试数据,验证成本仍然是一个值得担忧的问题。以 EVM 为例,验证一个 ZK 证明需要超过 500k 的 Gas 费,而中继器验证一个签名的 Gas 费不到 30k,这意味着最终的跨链费用可能会非常高。目前,Polyhedra只推出了NFT的跨链功能,费用仍然在可接受范围内,但 NFT 跨链与 FT 跨链的本质逻辑有所不同,因此 Polyhedra 的实际跨链成本仍需进一步测试。

此外,Polyhedra 还设计了一种名为 paraPlonk 的证明系统,据称可以加速现有的 zkRollup 系统。它通过让分布式节点之间传递极少量的数据以实现协同验证工作。然而,我们还未在产品上体验到这一功能。

在 ZK 技术的发展过程中,可能的实现路径之一是让 ZK 证明成为其中一个预言机选项。用户可以根据需求选择不同的预言机,如果涉及较大金额,可以选择 ZK 验证,如果金额较小,可以选择像 Google Cloud、Chainlink 这样的预言机。

从行业发展的角度来看,这对于 LayerZero 和 Polyhedra 等 ZK 跨链协议以及整个行业都是一种双赢的路线。流动性割裂问题已经蔓延到跨链领域,如果 ZK 证明能够充当预言机,有望实现现在分散的流动性的大整合。

参考:

https://m.freebuf.com/articles/blockchain-articles/363739.html

https://foresightnews.pro/article/detail/38691

https://www.binance.com/zh-CN/feed/post/889904