随着各大公链的蓬勃发展,越来越多的dApp开始部署在区块链上,加密生态日益繁荣。然而,目前大多数区块链形成了孤立的生态系统,导致数据和价值无法自由地在不同链之间流动。这迫使我们开始思考如何构建一个广泛而高效的“多链生态”。

这个多链生态不仅支持开发多链dApp,提升链与链之间的互操作性,还能促进多样化且丰富的使用场景和用户案例,创造一个安全且多样化的链上环境。互联网作为一个革命性的系统,之所以成功,部分原因在于其强大的互操作性。提升这种互操作性同样对于实现和推进Web3具有重要意义。

跨链桥如何运作?

跨链通讯协议,即跨链桥,在跨链互操作中扮演关键角色。我们可以将需要进行跨链通讯的源链和目标链比喻为交换“资金”的金库,而跨链桥则是运送资金的“运钞车”。这个“运钞车”需要具备足够强的防御能力,以抵御“不法分子”的攻击,确保在接收、押送、分发等各个环节的安全。然而,目前现行的跨链通讯框架普遍存在架构设计和代码漏洞问题,这使得在去中心化和安全性方面需要做出一定的妥协。

完成跨链交互必须具备两个重要动作:

1. 验证源区块链的状态。

2. 将后续交易中继到目标区块链。

跨链桥是一种软件,允许将代币或更通用的数据从一个区块链网络发送到另一个独立的链上。当将代币从一条链转移到另一条链时,比如将以太币从以太坊发送到 Solana 网络,投资者将代币存入智能合约中,智能合约是一种在区块链上执行协议的代码,可以实现自动执行的协议,无需人为干预。然后,该加密货币以所谓的包装代币形式在新的区块链上被“铸造”,代表对原始以太币的索权。接着可以在新的网络上交易该代币。这样的资产跨链不仅为使用以太坊的投资者提供了更多流动性机会,还能解决交易繁忙带来的延迟和高额手续费问题。

两种主流跨链解决方案:

1. 节点委员会/轻客户端: 目前主流的跨链通讯协议以IBC协议和CCIP协议为代表。这些协议提供了通用的框架和标准,使不同区块链可以互联互通,共享资产和数据,实现跨链应用和服务的互操作。

2. 区块链间通信(IBC)协议: 这是一种类似 TCP/IP 的协议,主要适用于基于Tendermint共识的区块链,如Cosmos网络。通过支持IBC的区块链,它们可以建立连接,通过这些连接,一个区块链可以通过轻客户端验证另一个区块链的共识状态的证明。然而,需要对不同类型的异构区块链进行适配和兼容性开发,以实现与IBC协议的互操作。

3. CCIP(Cross-Chain Interoperability Protocol): 该协议背靠Chainlink,可以将多种预言机服务集成至可编程通证桥框架中,实现复杂的跨链操作。协议的实施需要不同区块链项目之间达成一致,并遵循相应的技术标准和协议规范。然而,不同区块链项目可能采用不同的技术架构和设计原则,导致标准化和协作存在挑战。

传统跨链方案面临的挑战:

“安全性”是当前所有跨链通讯协议开发面临的最大威胁之一。现行的跨链桥依赖于中心化的资金托管和信任假设,因此锁定资产的智能合约和协议很容易成为黑客攻击的目标。

2022 年 2 月,以太坊和 Solana 两大区块链的Wormhole桥被黑客攻击,损失超过 3.2 亿美元。

2022 年 3 月,Axie Infinity 侧链 Ronin 的验证者节点和 Axie DAO 验证者节点被破坏,损失近 173600 ETH 和 2550 万美元。

截至2022年,估计过去一年损失的资金中有69%是由于对跨链桥的攻击造成的,这些攻击导致损失超过20亿美元。安全性无疑是目前所有主流跨链协议所面临的最大挑战。

另一个挑战是“最终性”,由于不同链的确认速度和共识机制的差异,可能会导致跨链交易在不同链上的确认时间存在差异。这使我们面临最终性的挑战,即如何确保一旦跨链交易在某条链上确认并被认可后,它将不会被撤销或篡改。

具体体现在以下两方面:

链的回滚:如果发生某条链的回滚,已经确认的跨链交易可能会受到影响。例如,如果发生了51%攻击或其他共识机制被攻破的情况,已经确认的交易可能会被撤销或改变,从而导致最终性问题。

跨链交易确认时间:不同链上的确认时间不同,有些链可能需要更长的时间来达成一致。在等待确认期间,跨链交易可能仍然存在风险,因为尚未达到最终性。

目前,多链部署智能合约,采用跨链协议进行通讯,仍面临较大的瓶颈:在不同区块链、侧链和Layer2上部署的智能合约之间几乎无法实现互操作性。如何安全地实现跨链间的数据传输需要我们用一种全新的思路设计跨链通讯协议的基础架构。ZKP让我们看到了一种全新的选择。

应用ZKP的跨链方案:

零知识证明(Zero Knowledge Proof,简称ZKP)本质上是一种对信息的降维和抽象,这种加密方式的优点在于用户不需要相信外部第三方,也不需要相信协议本身。只要数学和密码学的证明过程完备且正确,这套系统就可以被公众接受。通过ZKP,我们不需要信任某个人或组织,我们相信的只是数学公式代表的“真理”。中介化的个人和组织可能会欺骗我们,而真理则永远不会。

相较于现行的跨链通讯方案,应用ZK的跨链桥可以极大地促进安全性。

通过应用ZKP通讯的跨链协议,源链上的交易细节会被ZK-Snark算法验证并生成证明,过程由数学公式保证,无需信任第三方节点和外部委员会,摆脱了现行主流方案如Layerzero和Wormhole所依赖的信任假设。换句话说,应用ZKP的跨链通讯协议依赖源链和目标链自身的安全性,而不是对“桥”的安全性依赖。这可以大幅度降低跨链交互的风险,只要协议链接的两端公链网络不发生大规模的节点故障,应用ZKP的跨链桥就是安全的。

下面是目前应用ZK跨链的三种尝试:

1. 以太坊POS跨链:以太坊 <—> Gnosis

Succinct Labs推出了基于ZK-Snark的跨链桥,采用轻客户端验证的模式,在以太坊和其测试网Gnosis(即两个以太坊POS链)进行了互信操作。Succinct Labs通过在链上部署一个以Solidity智能合约形式的轻客户端,采用简洁的零知识证明(ZKP)实现,对源链的状态上生成有效性的证明。相较于传统的轻客户端模式,Succinct Labs所部署的轻客户端采取验证单个的Groth16系统生成的ZK-Snark,而非聚合的BLS签名。另外,Succinct Labs从电路的角度设计优化了同步委员会的签名,将SHA-256的SSZ签名映射为可简便生成的ZKP。

利用ZK-SNARK将昂贵的验证工作转移到链下

通过对有效性证明(Validity Proof)进行零知识化处理,我们不仅可以降低存储空间成本和验证时间,还能实现链间最小可信互操作,增强安全性。

【关于Groth16系统】Groth16是一种零知识证明(ZKP)系统,由Eli Ben-Sasson等人于2016年提出。它基于双线性配对的可信任设置,旨在实现高效的证明生成和验证,同时保持较小的证明大小。在Groth16系统中,证明者可以生成证明以证实某个断言为真,而验证者可以使用该证明验证该断言的真实性,而无需了解证明者的私密信息。该系统依赖双线性配对运算,生成的证明是零知识的,不泄露与证明者私密信息有关的任何额外信息。

2. 将IBC引入以太坊:EVM链 <—> Cosmos Tendermint链

Electron Labs计划通过应用IBC协议和ZK-Snark将以太坊和Cosmos生态连接起来。与前一种方案类似,他们采用在原始链上部署轻节点的方法。然而,与Tendermint轻节点兼容到以太坊链上相比,面临更大的挑战:验证来自Cosmos SDK中任何区块链的几百个ed25519签名,而这些签名在以太坊上不支持预编译,这是一项非常昂贵且耗时的任务。

Electron Labs的解决思路是:利用链下构建ZK-Snark有效性证明,并在以太坊公链上部署ZKP验证器而不是ed25519签名验证器,并通过ZK-中继器提交证明。此外,Electron Labs构建了一个circom语言库,用于为每批次的Ed25519签名生成zk-SNARK,使得在以太坊上验证变得更加便宜。

需要注意的是,与BLS签名不同,ed25519曲线签名不具备可聚合性,因此,ZK-Snark需要按照签名的批次生成,而不是一次性生成,相对于第一种方案,这在一定程度上增加了交易成本。

3. Zkbridge:通用的ZK跨链协议适用于多应用场景

相对于前两种方案,zkbridge是一种更通用的跨链协议,旨在适应更广泛的应用场景。任何节点都可以基于跨链网络对区块头进行中继,生成证明并声明奖励。

与前两种方案不同,zkbridge需要部署轻客户端和智能合约到源链和目标链上,以进行状态跟踪。不同之处在于,在进行跨链信息中继时,zkbridge通过一个“区块头中继网络”监听链上信息并生成状态更改的ZKP,然后中继给链上的“程序更新合约”。

跨链桥如灰色阴影所示

为了实现快速的证明生成和低成本的链上证明验证,zkBridge采用了两层递归证明系统。首先,在第一层,该桥接方案利用deVirgo,这是一种分布式版本的Virgo证明系统。deVirgo结合了分布式sumcheck和分布式多项式承诺,实现了最优的并行计算,能够在分布式计算机上运行,将证明生成速度提高数倍。然后,在第二层,zkBridge使用Groth16证明,用以验证先前由deVirgo生成的证明确实证明了相应的区块头。

总结

基于零知识证明(ZKP)的跨链通讯协议解决了去中心化和安全性的问题。然而,目前的ZKPd1开发方案对于验证有效证明存在着电路尺寸过大、计算瓶颈等问题。不过随着硬件加速技术的成熟,我们可以尝试通过硬件加速来改善计算开销的问题。此外,对于SNARKS的使用和公共数据的链下存储等方式也可以在相当程度上减少存储开销。我们相信随着技术的进一步成熟,构建低成本、高效的ZKP跨链通讯协议将为我们的多链生态带来更多发展机遇。

微信里点“发现”,扫一下二维码便可将本篇文章分享至朋友圈