作者:Yiping,IOSGVentures
ZK为跨链通信提供了一种
安全,低成本的方式
跨链通信协议仍处于早期阶段,但有望允许DApp访问不同链上的数据
DeFi,全链DApp将从跨链DApp的发展中受益
跨链DApp的影响预计在未来几年内会非常大,就像全球化的影响一样。
开发人员正在努力探索构建跨链DApp的最佳模式
延迟,安全和成本是ZK跨链信息协议的主要指标
ZK跨链协议四个主要的组件是:生成存储证明,结合存储证明和ZKP,中继ZKP,展开承诺
文末还提供了由本文训练的
AI
,你可以提出与本文有关的任何问题。
前言
以前只有以太坊和比特币。他们拥有最多的流动性,最多的用户,最多的应用和最多的交易。2020年后,出现了许多新的区块链,如Avalanche,Polygon和BSC。
在这些链的主网推出后,我们看到了从以太坊和比特币到ALTChain的范式转变。用户从以太坊转移到ALTChain来寻找新的机会。开发者从以太坊转移到ALTChain来分叉现有项目。这些开发者为寻求高回报的用户创造了新的机会。
以太坊曾经拥有加密货币世界中除比特币之外的所有流动性。在2020年底,以太坊TVL占比急剧下降到60%左右。以下是165个链的TVL数据。
今天,各大链TVL饼图看起来是这样的。以太坊占据了大部分的流动性。Tron和BSC占据第二和第三的位置。
在将资产和流动性分散到不同的链上后,用户开始考虑如何在不同的链上管理和移动资产。资产发行者也考虑如何通过扩展到不同的链来扩展他们的用户。
跨链资产桥在2022年开始流行。用户不再使用CEX作为跨链桥,而是尝试转向去中心化的跨链桥。资产跨链桥有时会卡住,并容易受到攻击,但它更容易使用和用来转移大量资金。
然而,
资产跨链桥还处于早期阶段,并且不能满足DApp开发者的需求。资产跨链桥只能让相同的资产在不同的网络之间流动。这对于开发者来说用处过于局限。开发者正在寻找一种更加通用的跨链方式。
跨链通信拥有强大的自定义性。开发者完全可以基于跨链通信开发全链DApp。DApp构建者希望在不同链之间传递消息并获取必要的区块信息。有了这些的特性,全链DApp的构建范式从互不通信,转向分布式的设计。在互不通信,相互独立的模型中,不同链上的Dapp实例无法彼此共享数据。在分布式设计中,Dapp实例可以相互通信,并可以定期将数据同步到一个实例。该实例获取所有数据并可以修改其他实例上的参数。
Zeko Labs与O(1) Labs、dcSpark合作推出L2 ZK Rollup生态系统Zeko:7月27日消息,Zeko Labs 与 Mina 开发团队 O(1) Labs 和 dcSpark 合作,推出专门为零知识应用程序(zkApps)设计的 L2 ZK Rollup 生态系统 Zeko,由 Mina Protocol 进行结算,Zeko 将允许开发人员大规模构建具有可编程隐私性的去中心化应用程序。[2023/7/27 16:01:25]
借助ZK驱动的跨链通信,因为ZKP可以提供简洁的证明,它可以消耗更少的存储,将源链状态中继到目标链。此外,在目标链上验证SNARK证明相对便宜。ZKP的这两个重要特性可以实现低成本的跨链消息和状态传递。在目标链上的验证源链状态可以实现IBC风格的跨链桥接。这大大增加了跨链的安全性。
当下
大多数区块链网络相互隔离,无法直接交换资产或代币。跨链资产桥允许用户在不同的区块链网络之间转移资产或代币。
随着Wormwhole、cbridge和Stargate等项目的推出,跨链资产桥的概念在过去几年开始受到关注。这些项目旨在创建可互操作的区块链桥,用户可以无缝地交换资产和代币。
跨链资产桥无法满足开发者的需求。开发人员正在寻找一种更通用的跨链方法,即跨链消息协议。
为了满足开发者的需求,这些跨链桥大多都有自己的跨链消息协议,例如CelerIM、LayerZero、Multichain的anyCall、Connext的xcall。他们提供了类似这样的API
跨链消息通信协议是基于其跨链资产协议实现的。通过一些修改,这些跨链资产协议现在可以在链之间传递消息。这使得他们很难为跨链消息协议实现定制功能,因为整体设计需要兼容跨链资产转移。它们缺乏构建跨链应用程序的一些关键功能,例如将消息从一条链广播到不同链上的所有其他部署合约。这使得开发人员很难构建实用的全链DApp。
跨链消息通信协议仍处于早期阶段。没有大型全链DApp完全建立在这些跨链通信协议之上。
Layer2 ZK Rollup的NFT市场Mint Square上线.stark域名:9月17日消息,基于以太坊Layer2 ZK Rollup的NFT市场Mint Square上线由Starknet.id提供支持的.stark域名。.stark个人资料URL现已支持Mint Square测试网,主网即将推出,目前可按长度过滤或按类别进行搜索浏览。[2022/9/17 7:02:48]
为什么需要ZK?
虽然这些跨链桥带来了很多便利好,例如提高资金利用率和改善用户体验,但它们也带来了安全风险。针对跨链桥的攻击给用户造成了巨大的经济损失。这使得安全性成为跨链桥开发的重中之重。这些攻击使用户损失了超过15亿美元。
一年内,跨链桥在黑客事件中的总损失约为13亿美元。跨链桥的使用手续费用在5?左右。Multichain是跨链桥中的头部项目。Multichain的30天交易量为$1.7B,手续费收入为$635K。那么一年的交易量约为204亿美元,手续费收入为760万美元。按照这样预估,跨链桥市场的手续费总收益远小于被黑客盗走的资金。
通过验证源链区块头,ZKP跨链消息协议可以缓解部分安全问题。用户可以直接在目标链上访问源链证明并自行验证证明。如果没有ZKP,这将很难做到。在传统项目中,这种验证成本太高,用户无法承受。
设计
在这一部分,我们将讨论ZKP是如何实现低成本,安全的跨链信息通信。
将ZKP用来中继消息的想法很直观,但详细设计可能很复杂。整个工作流程可以分解为以下步骤:
决定将哪些数据传递给目标链
获取存储证明
根据存储证明生成ZK证明
将ZK证明从起始链传递到目标链
在目标链上展开ZK证明
在目标链读取跨链信息
生成存储证明
大多数EVM兼容链都提供了这个功能。一旦用户明确了存储槽位,他们就可以使用RPC调用此方法来生成存储证明。
EVM兼容链使用MerkleTree来存储账户和数据。这使得创建MerkleProof来验证这些数据变得相对简单。
MerkleTree是计算机科学中使用的一种数据结构。在密码学和区块链中的使用较多。它以其发明者RalphMerkle的名字命名,也被称为二叉哈希树。MerkleTree背后的基本思想是将大量数据分成较小的部分,对每个部分进行哈希处理,然后组合哈希值以形成单个根哈希值。此根哈希充当整个数据集的指纹,允许对数据的完整性进行高效和安全的验证。
ZK Rollup 订单簿 DEX ZigZag 已在 GitHub 上提交代币源代码:6月14日消息,以太坊二层 ZK Rollup 订单簿 DEX ZigZag Exchange 已在 GitHub 上提交代币源代码。[2022/6/14 4:24:25]
在区块链中,MerkleTree用于汇总和验证区块中的交易。每笔交易都经过哈希处理并添加到树中,哈希值以特定方式组合形成单个根哈希值,然后添加到区块头中。这允许以一种高效且安全的方式来验证区块中大量交易的有效性,而无需单独验证每个交易。如果交易中的任何数据发生变化,根哈希也会发生变化,表明数据已被篡改。
Merkle证明,也称为Merklepath,是一种密码学证明,证明特定数据包含在MerkleTree中。MerkleTree证明提供了一种验证交易或其他数据真实性的方法,而无需下载和验证整个MerkleTree。
在Merkle证明中,用户提供了从MerkleTree底部到根哈希的一系列哈希,以及要验证的具体数据。通过从特定数据开始并沿着树向上,接收者可以计算根哈希并将其与存储在块头中的根哈希进行比较。如果计算出的根哈希值与存储的根哈希值匹配,则接收者可以确信特定数据包含在块中并且未被更改。
Merkle证明是确保区块链网络的效率和可扩展性的重要组成部分。通过允许在无需下载和验证整个MerkleTree的情况下验证特定数据。MerkleProof减少了需要传输和处理的数据量,从而提高了网络的整体性能。
结合存储证明和ZKP
将整个存储证明发布到目标链上是不切实际的,因为它太大了,大约4kb。对于证明进行验证也很昂贵。在以太坊上进行验证需要600kgas。如果gas价格为30gwei,则总费用为0.018ETH。
在这种情况下,ZKP可以提供压缩和可组合性。开发者可以基于MerkleTreeProof创建ZKP。这可以大大减少证明的大小,并且使证明更容易验证。验证Plonk大约需要290kgas。如果gas价格为30gwei,则总费用为0.009ETH。一次Groth16验证使用了大约210kgas。如果gas价格为30gwei,则总费用为0.006ETH。
借助可组合性,开发人员甚至可以将不同的存储证明组合到一个ZKP中以节省资源。
中继ZKP
为了安全地将相关承诺,如状态根或相关的ZKP传递到目标链,我们需要设计一个共识机制。
中继ZKP有3种常见的方式:
消息传递:使用一些消息传递协议传递ZKP,并通过OPCODE获得相关承诺
共识验证:通过运行共识算法来验证相关承诺
OptimisticMPCrelayer:部分思路与我们在很多跨链资产桥和OPRU设计中看到的类似。初始链和目标链之间有一个委员会。委员会的参与者决定中继承诺的有效性。任何人都可以挑战有效性。但是当挑战发生时,桥不能像Rollup那样回滚。需要一组单独的挑战者真正阻止恶意消息的传递。在这种情境下,挑战成本高,且延迟高,因为这涉及不断将根哈希和所有CALLDATA上传到初始链。并且它也只能以点对点的方式工作。
StarkWare推出ZK Rollup扩容解决方案StarkNet:1月27日消息,零知识证明研发机构StarkWare表示,其二层扩容解决方案ZK Rollup“StarkNet”目前已经完成基础构建(阶段0),即图灵完备框架Cairo、STARK 软件堆栈和二层扩容引擎StarkEx,之后将进行构建阶段一至阶段三,其中,阶段一将支持单一应用Rollup“Single-App Rollup”,将使开发人员能够在StarkNet上构建和部署自己的可扩展性应用程序;阶段二将支持多应用Rollup“Multi-App Rollup”,支持在同一StarkNet实例上运行并访问多个应用程序,这将实现不同应用程序之间的互操作性,以及降低 Gas 成本;阶段三将支持去中心化Rollup“Decentralized Rollup”。
StarkWare预计将在近几个月内部署阶段一,并在2021年底之前顺利进入阶段二和阶段三。StarkWare构建的StarkNet是一种由STARK驱动的去中心化二层ZK Rollup,可支持以太坊的通用计算。[2021/1/27 13:37:48]
中继ZKP最为重要的是以下因素:
延迟
成本
信任
链下计算
消息传递的延迟相当高,因为消息传递需要时间来确认。在区块产生后,用户才能确认传递成功。在成本方面,消息传递需要与两个链进行交互,因此比较高。这种方式需要的信任较少,因为安全性等同于链的安全性。这种方式没有进行任何的链下计算。
共识验证是一种可行的方法。它与信息传递具有类似的延迟,信任假设和成本。然而,它必须在链外验证签名。这引入了大量链外计算的开销。但共识验证今天也可以通过ZKP完成。
OptimisticMPCrelayer牺牲了一些信任,但获得了更低的延迟。用户只需要将交易发布到中继器网络。具体的延迟取决于具体的optimisticMPCrelayer机制。挑战期可能会导致更大的延迟。用户需要对中继网络有最小的信任。这种方式没有大量的链外计算,但需要在中继网络中进行通信和欺诈证明。
展开承诺
在得到承诺后,目标链上的用户可以展开承诺,访问初始链过去的状态。
三种常见的展开方式是:
链上积累
链上压缩
链下压缩
链上积累是一种在区块链网络中展开承诺的方法。在这种方法中,从承诺中重新创建区块头的整个过程直接在区块链上执行。正确编码的区块头作为交易中CALLDATA,由区块链来执行计算。这种方法的好处是在证明时间方面没有额外开销。并且延迟很低,因为证明不需要在区块链之外进行验证。然而缺点是成本可能很高,因为计算可能是消耗很多资源。
V神:使用zk rollups可以最有效的减少gas费用:V神在推特表示,在ETH和ERC20 代币转帐中使用zk rollups可以最有效的减少gas费用。[2020/8/4]
链上压缩是一种减少需要存储在区块链上数据量的方法。它用于最小化在区块链上存储大量数据的成本。链上压缩背后的想法是使用压缩算法来减小数据的大小,从而减少它在区块链上占用的空间。这可以通过从数据中删除冗余或不必要的信息,或使用针对空间效率优化的数据结构来完成。然后将压缩后的数据存储在区块链上,需要使用时可以解压。
链上压缩具有降低存储成本和提高区块链可扩展性的优势。但是,它也有一些缺点。例如,压缩和解压缩数据的过程在计算上可能很昂贵,这会增加区块链的延迟。此外,所使用的压缩算法可能会对数据的安全性产生负面影响,因为它可能容
易受到篡改或攻击。
链下压缩和链上压缩类似。
下面是这三种方法的对照表:
相关项目
很多ZK桥项目希望能提高不同链的互操作性,降低潜在的黑客风险。
这一领域有很多项目,例如:
SuccinctLabs
Lagrange
zkBridge
Herodotous
=nil;Foundation
SuccinctLabs使用轻客户端方法。它使用轻客户端在目标链验证起始链共识层的共识。ZKP用于生成共识证明。
LagrangeLabs构建非交互式跨链状态证明。LagrangeAttestationNetwork负责创建状态根。每个LagrangeNode都包含一部分分片私钥,用于证明特定链的状态。每个状态根都是一个阈值签名的VerkleRoot,可用于证明特定链在特定时间的状态。状态根是完全通用的,可以在状态证明中使用,以证明链中任何合约或钱包的当前状态。
Herodotus使用ZKP的存储证明来为智能合约提供对来自以太坊的链上数据的访问。它有一个MPCOptimisticRelayer来中继承诺。它采用链下压缩,在链下展开中继的区块链标头并创建证明。
zkBridge使用MPC中继网络生成区块头的ZKP并将其中继到目标链。它使用deVrigo和递归证明来实现非常快的证明时间,但MPC部分有较高的复杂度。
第一个用户发起跨链消息请求。初始链中的发送者接着将区块头转发到中继网络。中继网络中的验证者生成区块头的证明,并将其传递给更新合约。更新合约验证证明后,接受证明。更新合约将证明转发给接收者,接收者将其转发给目标链中的应用程序和用户。
=n
il;Foundation
?也致力于ZK跨链消息协议。它使开发人员能够在以太坊上访问Mina的状态。他们在2021年底推出了一个演示,可以在以太坊上验证Mina状态。该基础设施允许以太坊上的智能合约验证Mina状态的有效性。有了这个基础设施,智能合约就有能力识别无效的跨链交易。
Mina有自己的状态证明,但在以太坊上验证它们的成本很高。
=nil;Foundation
使用自己的Placeholder证明系统来生成辅助状态证明,这种证明在以太坊上验证起来很便宜。该基础设施使以太坊智能合约能够完全在链上验证Mina状态证明。未来跨链应用可以直接通过这个基础设施来验证跨链交易的合法性。
一个基于此的资产跨链桥将包含以下几个步骤:
跨链桥在Mina上锁定$Mina
此基础设施生成Mina状态证明
此基础设施将Mina状态证明提交至以太坊上
以太坊链上合约验证状态证明的有效性
以太坊链上合约接收并存储Mina状态证明,如果证明有效
跨链桥在以太坊链上检验Mina和交易状态,释放$WMINA
后来
=nil;Foundation
正在努力解决单向性问题。之前的demo中只支持单向的跨链通信。现在他们理论上支持双向桥接。初始链上的状态证明将在Placeholder证明系统中生成,并再次用Kimichi证明系统生成一个证明。然后再将证明提交给Mina验证者。验证者会将起始链状态证明视为Mina原生zkApp生成的证明。
=nil;Foundation还发布了ProofMarket。用户/项目方在其中购买/出售大部分SNARK证明。目前有两种交易对,ARITHMETIC-EXAMPLE和MINA-STATE。
这是这些项目的详细比较:
应用场景
借助基于ZK的跨链消息中继协议,开发者可以轻松地将应用扩展到不同的区块链。
过去,合约部署主要集中在一条链上。当扩展到另一个链时,必须重新部署应用程序。
使用基于ZK的跨链消息中继协议,将实现从单链应用到跨链应用的范式转变。大型项目可以轻松扩展到不同的链。这将产生与全球化类似的效果。我们希望看到更多的国际公司或大型跨链DApps。
低延迟/实时和低成本的跨链消息中继协议将打开具有多种可能性的市场。DeFi、DID,治理和开发将从中受益
DeFi
DeFi可以从中获益良多。
跨链消息中继协议可以帮助DeFi产品整合来自不同链的流动性。
DEX、跨链交易和聚合器可以提供更好的用户体验、更低的滑点和更高的交易对流动性。不同链上的同一个交易对将有一个统一的流动性池。不同链DEX之间的价格差异会更小。
DEX显然可以聚集更多的流动性并提供堪比CEX的用户体验。
Farming可以有更灵活的策略。他们现在可以在不同的链上寻找更多的获利机会。
借贷协议可以与不同链上的更多DeFi协议合作,并接受更多不同链上不同代币的存款。
链上衍生品将在流动性方面受到很大益处。通过安全的跨链通信,衍生品市场可以接触到更多不同链上的潜在客户,并且聚集更多的流动性。这可以提供更好的交易体验。
资金管理应用可以访问更多来自不同链上的资产。他们还可以访问来自不同链上的衍生品。这使理财经理可以使用更多的投资策略。
应用链
应用链或自定义Rollup为Dapps提供了更多的自由。Dapp开发人员可以自定义应用链以满足他们自己的需求,例如性能或一些技术特性。Dapp开发人员还可以自定义手续费结构以激励用户。Cosmos上有很多应用链,因为Cosmos具有更好的互操作性。ZK支持的跨链协议将是连接非Cosmos应用链与EVM或layer2生态系统的更好工具。许多正在开发的RollupSDK可以受益于ZK支持的跨链协议。
Cosmos生态在APP链上领先于其他所有主要生态。Cosmos在跨应用链共享安全方面取得了良好进展。ZKP可能会促进Cosmos生态系统的扩展。Composablefinance正在努力将Cosmos扩展到Polkadot和NEAR。ElectronLabs和zkBridge正在将Cosmos带到以太坊。
利用不同链的特性
没有一条区块链是完美的。它们以牺牲其他功能为代价为一个目的而优化。借助跨链消息传递协议,开发人员可以利用每个区块链的优势并避免其缺点。
DApp开发人员可以在不同的链中部署他们的DApp组件。例如,由于计算费用低,某些链可能是计算的不错选择。一些链可能针对隐私进行了优化,这将作为Dapp的隐私功能。有些链可以托管文件,有些则适合提供前端。跨链消息传递协议可以将这些组件粘合在一起,并允许开发人员充分利用每个区块链。
总结
ZKP为跨链通信提供了一种全新的方式。它虽然
不能完全解决传统跨链桥的安全问题,但借助ZKP的力量,安全的跨链消息通信现在大大降低了成本。证明的大小比以前小得多。链上验证成本也降低了很多。能够在目标链上验证源链状态,可以实现类似IBC式的共享安全性。在过去是不可能低成本的实现的。
ZK跨链通信协议赋予不同链上协议互相交流的能力。开发者能够基于ZK跨链协议开发全链DApp。DeFi,应用链将从中受益。
跨链通信协议仍处于起步阶段。开发人员正在努力开发这些协议,诸如如何在不同链之间实时同步状态等问题仍然没有解决。调试跨链DApp也可能很痛苦。开发者在探索构建跨链Dapp的最佳模式,我们将在未来几年看到跨链Dapp的影响。作为连接不同区块链的跨链通信协议,它将与全球化一样具有影响力。
戳这里调戏AI?
https://glazec-zkbridge-streamlit-app-ord6v2.streamlit.app/
参考
https://medium.com/@ingonyama/bridging-the-multichain-universe-with-zero-knowledge-proofs-6157464fbc86
https://www.youtube.com/watch?v=8mE_0qZNVjo
https://www.ingonyama.com/blogs/bridging-the-multichain-universe-with-zero-knowledge-proofs
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。