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

    作者:Joey吴说区块链LayerZero和GoogleCloud已宣布将GoogleCloud集成为LayerZero上的新跨链预言机选项。在LayerZero的跨链实施中,预言机的角色是验证消息是否已经由源链处理了跨链消息请求。现在,在LayerZero上构建的应用程序可以从四个不同的预言机选项中进行选择,包括Chainlink、Polyhedra的zkLightClient以及由Polygon和Sequoia管理的预言机。最新的变化是,GoogleCloud将替代Polygon/Sequoia管理的预言机,成为LayerZero跨链解决方案的应用程序的默认配置。这是自2022年3月以来LayerZero首次更改默认配置,因此对LayerZero而言是一次重大变革。此举也可能对Solana产生影响,考虑到GoogleCloud仅在几个月前加入Solana生态系统,成为验证者和核心基础设施提供商。这也引发了有趣的思考,即区块链的跨链安全性最终可能需要依赖中心化的互联网巨头,这是一个值得深思的话题。与此同时,ZK跨链互操作协议Polyhedra最近刚刚完成与BNB二层网络opBNB的集成。该协议与LayerZero成为BNBChain生态系统催化剂奖(BNBChainEcosystemCatalystAwards)榜单上仅有的两个跨链桥协议。考虑到Multichain的失败,目前似乎只有两种主流跨链路线可供选择:预言机(Oracle)跨链和零知识证明(ZK)跨链。而LayerZero和Polyhedra分别代表了这两种路线的领先者。LayerZero本质上利用了轻节点技术原理,设计了超轻节点机制,通过中继器和预言机将中间的信任环节分成两部分,从而以更低的成本换取更高的安全性。

    轻节点仅保存历史所有区块头,不存储区块内的具体交易信息。多个MerkleRoot的区块头足以使用默克尔树验证交易是否真实存在于该区块中。通过在轻节点上运行验证,完全排除了公证人等外部角色的干扰,实现了更高度的去中心化,从而提高了安全性。然而,这也意味着跨链成本将分摊给跨链需求的用户,可能会变得较高。超轻节点(Ultra-LightNode,ULN)相对于轻节点,执行与链上轻节点相同的验证,但不会按顺序保留所有块头,而是由分散的预言机根据需要流式传输。它的优点是不需要依赖轻节点来获取区块头数据流。然而,它的代价是缺乏历史顺序数据流,这意味着如果预言机和中继者同时作恶,就可能通过验证导致执行恶意信息,从而降低了一定程度的安全性,但降低了成本。在这个过程中,中继器的作用是将跨链消息中的Receipt和MerkleProof所需的路径信息传递给目标链上的智能合约以进行验证。Receipt包含了交易执行结果、交易哈希和交易事件日志等信息。而Oracle在LayerZero跨链中扮演公证人的角色,它将源链上的跨链请求所在的Blockhash和BlockReceiptsroot传递到目标链上。Blockhash用于告知目标链上的智能合约哪个区块包含了用户的跨链请求,而BlockReceiptsroot用于验证中继器传递的消息。因此,出于利益考虑,预言机必须极其可信,因为它的可信度决定了资产的安全性。

    如果只有一个预言机,存在极大的风险。为了防范这种情况,LayerZero实施了任何应用都可以自定义预言机来支持其系统的策略。即使一些预言机宕机或作恶,跨链工作仍然可以继续进行。市场竞争逐渐演化出多种选择,形成了多对多的选择格局,各方之间将建立去中心化的相互监督体系。即使某一预言机和某一中继器合谋,也只会对使用了这两者的特定应用产生一定影响。除了安全性因素之外,LayerZero还具有更强的通用性和极低的协议接入成本,这是一个隐形的优势。通用性更强。在当前的跨链协议中,包括Cosmos生态的IBC协议和Polkadot生态的XCMP跨链协议,要验证其他公链上的交易,必须在以太坊上部署相应的轻节点。高昂的Gas成本使得许多EVM兼容链(如ETH/BSC/Polygon/L2等)难以支持IBC协议,从而限制了IBC协议的通用性,目前它仅能在相对小众的Cosmos生态链之间运行。更低的开发者接入复杂度。从一开始,LayerZero协议的工作重心就放在了极简的合约接入设计上,而跨链消息的需求潜力巨大,涵盖跨链借贷、收益聚合和交易等方面。由于易于使用和开发,该协议已经在30多个链上传递了数百万条消息。

    至于ZK跨链技术,它应对了预言机跨链的信任问题。通过引入零知识证明技术,ZK跨链不是消除中继器,而是将中继器的证明过程交由密码学来处理,从信任第三方转变为信任密码学。这使得可以在链下验证新区块头,并将新区块头及其有效性证明(ZkProof)提交到链上,链上可以直接验证ZKProof,等效于验证新区块头。ZKBridge采用模块化设计,将验证智能合约的程序与核心桥分开。核心桥包括中继器和更新合约,中继器接收上一个区块的区块头并验证其正确性,由更新合约检查并接受这些证明。应用程序合约由发送方和接收方合约组成,分别部署在两条链上,这些合约与ZKBridge交互,执行跨链操作。在跨链时,区块头中继节点生成零知识证明,证明中继的区块头正确,并将其发送给更新合约。更新合约维护发送方区块链的状态,并允许接收方合约查询区块头。应用程序合约定义要桥接的信息。为此,PolyHedra开发了名为deVirgo的证明系统,它是Virgo协议的分布式版本,旨在通过将计算分散在多台机器上来并行化GKR协议。虽然与Starkware和PolygonZero使用的密码假设相同,即ZK-SNARK,但其创新之处在于使用分布式方法生成SNARK证明,即链下生成ZK-SNARK证明的工作分拆成多台机器的并行计算。根据Polyhedra公布的测试数据,使用两个AMDEPYC™7763CPU生成以太坊全节点证明并递归验证的时间不到12秒,远低于以太坊的区块时间。

    然而,这并不意味着ZKbridge在性能方面一定优于中继器跨链。即使不考虑Polyhedra的测试数据,验证成本仍然是一个值得担忧的问题。以EVM为例,验证一个ZK证明需要超过500k的Gas费,而中继器验证一个签名的Gas费不到30k,这意味着最终的跨链费用可能会非常高。目前,Polyhedra只推出了NFT的跨链功能,费用仍然在可接受范围内,但NFT跨链与FT跨链的本质逻辑有所不同,因此Polyhedra的实际跨链成本仍需进一步测试。此外,Polyhedra还设计了一种名为paraPlonk的证明系统,据称可以加速现有的zkRollup系统。它通过让分布式节点之间传递极少量的数据以实现协同验证工作。然而,我们还未在产品上体验到这一功能。在ZK技术的发展过程中,可能的实现路径之一是让ZK证明成为其中一个预言机选项。用户可以根据需求选择不同的预言机,如果涉及较大金额,可以选择ZK验证,如果金额较小,可以选择像GoogleCloud、Chainlink这样的预言机。从行业发展的角度来看,这对于LayerZero和Polyhedra等ZK跨链协议以及整个行业都是一种双赢的路线。流动性割裂问题已经蔓延到跨链领域,如果ZK证明能够充当预言机,有望实现现在分散的流动性的大整合。参考:https://m.freebuf.com/articles/blockchain-articles/363739.htmlhttps://foresightnews.pro/article/detail/38691https://www.binance.com/zh-CN/feed/post/889904