ZK 项目汇总

ZK已经成为区块链领域首要的技术,并在应用层在巨大的潜力,实现数据隐私保护和链下数据真实性。

[图片上传失败...(image-4289e1-1743780087575)]

零知识证明允许某人(证明者)向一个不信任的方(验证者)证明他们拥有特定的知识,而不泄露有关这一知识的任何细节。

  • 简洁的数据和省时:验证证明的效率高于直接检查原始数据。

  • 隐私:没有把正在被验证的数据、内容,透露给验证者。

通用Rollups

随着以太坊的快速增长,这促使我们需要重新考虑在不影响去中心化的前提下如何实现可扩展性。进入Rollups时代:以太坊战略性地转向了一个模块化、以Rollup为中心的框架,包括三个不同的层次:1) 数据可用性(DA)层、2) 执行层、3) 结算层。

执行层:执行和状态存储发生在与Rollup特定的虚拟机(VM)中。每个ZK Rollup都有一个排序器,用于编排交易,以及证明者,用于制作验证中间计算的证明。这些“有效性证明”和使用最少的数据,然后被提交到以太坊主网上验证智能合约。

大多数ZK Rollup兼容以太坊虚拟机(EVM),以支持以太坊的智能合同。这种灵活性允许开发人员将基于以太坊的应用程序顺利迁移到第2层(L2)平台。然而,仍然存在挑战,包括证明效率、区块链性能和操作码兼容性。

存储层面:就存储而言,大多数Rollups,包括Polygon的zkEVM、Scroll、zkSync Era和Linea等,更倾向于将数据以压缩格式推送到以太坊calldata中。这种方法保证了活跃性,使用户能够从以太坊重新创建状态并在需要时绕过Rollup。

然而,一些zk-Rollups,如Starknet的Validium、Matter Lab的zkPorter和Polygon的Miden,将它们的数据存储在由数据可用性委员会(DAC)保护的不同DA层上。EigenDA和Avail等解决方案体现了这种方法,旨在提高吞吐量,同时仍然享受以太坊区块链的安全保障。

结算层:ZK Rollups将新的Rollup状态以及“有效性证明”提交到以太坊上的验证智能合同。这些验证器检查有效性证明,以确保离线虚拟机中的状态转换的正确性,并记录新的状态转换。

ZK证明无法用于Rollup内部的共识或交易排序。通常,根据它们的个人规则集,序列生成器会做出共识决策,其中许多遵循首次见到的原则。正在努力去中心化序列生成器,其中一些正在实施,像Espresso这样的共享排序生成器。

基于VM的Rollup

与专注于以太坊指令集的EVM不同,基于zkVM的Rollup(汇总)提供了运行广泛的与不同计算机架构兼容的软件的灵活性。这些虚拟机具有更广泛的能力,可以运行不同的计算机指令,比如RISC-V和WebAssembly,并生成用于计算的ZKP。

Starknet是zkVM-based rollup领域的先驱。它开发了Cairo,一种专门的低级编程语言,更接近汇编语言。Polygon的Miden使用自己的汇编语言,更接近Move,而Delphinus和Fluent则致力于基于WASM语言的rollups。Fluent和ZKM允许开发人员使用通用编程语言,如Rust、TypeScript、C/C++、Go等构建应用程序。

zkVM-based rollups通过促进构建应用程序,重新定义了Ethereum的能力,这些应用程序在传统账户系统(以太坊账户系统)中很难开发。使用zkVM-based rollup的解决方案,可以更加轻易的开发应用程序。

Rollup 框架

多个团队已经着手简化零知识(ZK)Rollup的开发,为更多的开发者敞开了大门。这些创新的框架为开发者提供了一套全面的组件,包括排序器、验证者、数据可用性(DA)层、共识层。

Sovereign Labs和Polygon正在积极开发软件开发工具包(SDK),使任何人都能创建具有预定义规则集和强大流动性互操作性的ZK第2层(L2)Rollup。

Lumoz采用全面的方法,通过专用的工作证明(PoW)共识、专用的证明网络和与其他Rollup的通信渠道,为开发团队赋予对其Rollup的完全主权。

LayerN采用混合的zk-OP(OP Rollup-ZK Rollup)架构,承诺交易费用比以太坊便宜一千倍。

Eclipse最近发布了一个通用的L2,作为一个示范,结合了不同的模块化元素——Solana的执行机器将DA发布到Celestia,并使用Risc0生成ZK证明以在以太坊上结算。这些实验推动了模块化论点的发展,旨在将Solana的高性能以太坊虚拟机(EVM)与以太坊的安全性相结合。

RaaS

Rollups-as-a-Service (RaaS)简化了Rollup框架和软件开发工具包(SDK)的情况,提供了一个抽象层,便于轻松部署、维护和创建定制的、适用于生产的应用特定的Rollup。

RaaS将开发人员从基础设施管理和监控网络性能的复杂性中解放出来,使他们能够专注于构建应用程序层。曾经需要大量工程时间的任务现在变成了一个简单的10分钟、无代码部署过程。

借助Vistara和Gateway等平台,用户可以自由组合各种模块化组件,仅需几秒钟即可创建符合其需求的个性化Rollup(Vistara和Gateway可以被作为创建Rollup公链的机会)。

这种模块化方法使开发人员能够精确地打造与其独特目标完全一致的ZK Rollup。从执行虚拟机(VM)和数据可用性(DA)层到排序器、桥接器和证明器,开发人员可以灵活选择适合其需求的组件。

专用Rollup

尽管通用Rollup技术有了很大发展,但由于竞争L2区块空间和不断上升的L1批量发布成本,扩展存在限制。特定的dApp需要定制功能,比如DeFi需要快速最终性,游戏需要低延迟,企业区块链需要隐私,这需要应用特定的Rollup技术。

在这方面,Starknet的生态系统走在前列,已处理了超过4.18亿笔交易,应用如dYdX、Sorare和Immutable利用了基于Starkware的Starkex技术构建的特定应用Rollup。Starknet的操作员聚合交易,将它们分批处理,并向以太坊主链提供ZK证明,以确保安全性和降低成本。

Loopring,一种ZK Rollup技术,专注于DeFi用例,提供了类似Block Trade的功能,可以实现CEX级别的流动性即时执行。Myria,另一种ZK Rollup技术,专注于游戏应用,强调低交易成本。最近,Canto宣布正在迁移到一个专注于使用Polygon的链开发工具包的L2,用于处理现实世界资产。

隐私

随着Web3技术迅速扩展,吸引了数百万用户,隐私问题仍然存在,特别是对于机构、银行和企业,它们经常发现自己受法律要求的约束,必须保护其金融交易。

ZK证明增加了一种保护机制,这是最早由zCash推广的初始用例。Zcash使用zk-SNARK来证明交易有效,而不揭示有关发送方、接收方或交易金额的任何信息。钱包余额不以明文形式存储,而是存储为“承诺注释”。

这种加密技术允许用户隐藏其交易的详细信息,同时仍然证明他们拥有足够的资金并遵循协议的规则:

价值隐私:它确认了进入交易(输入)的总硬币数量等于离开交易(输出)的总硬币数量,而不揭示实际数量。

支出权限:它通过一种密码学方法证明了发送方有权使用他们拥有的特定输入,这样就确认他们有权限花费这些代币,这有助于防止未经授权的人消费这些代币。

防止双重支付:它证明了代币以前没有被花费,从而防止双重支付。

L1 协议

许多协议,如Aleo、Aleph Zero、Ironfish和Mina,正在进一步拓展界限,专注于重视隐私的第一层解决方案。与以太坊的基于账户的框架不同,这些协议采用了比特币的未花费交易输出(UTXO)模型的修改版本。

共识模型:这些以隐私为中心的协议都采用不同的共识模型。例如,Aleo采用可持续的工作证明(SPoW)机制,其中“工作”涉及生成zk证明,而不是资源密集型的挖矿。Ironfish采用类似比特币的工作证明(PoW)模型,仅通过挖矿生成代币,没有首次代币发售(ICO)。最初设计为第一层(L1)解决方案的Aztec已过渡到第二层(L2)框架,定居在以太坊网络上。

重新定义网络层:除了共识,这些协议重新构想了网络层,倡导点对点数据交换以最大程度保护隐私。例如,Ironfish使用WebRTC和WebSockets的组合与节点建立连接。用户可以建立直接连接,进行交易,创建用于验证规则遵守的zk证明,然后在区块链上结算交易,同时保护他们的隐私。

L2 协议

与此同时,诸如Aztec和Ola等项目致力于通过启用具有私人账户和加密交易的ZK Rollups来增强以太坊网络的隐私保护。这两个项目都在开发自己的zkVM,非常注重管理私人账户,而不仅仅关注以太坊的兼容性。

应用程序利用ZKP的隐私能力,将信任引入到链下数据和计算中。我们可以将大多数用例总结为以下几类:

a. 保密的秘密分享:ZK技术赋予用户通过无需信任的结算层机密地分享秘密的能力。知名的应用程序,如zkMail和zkVoting协议,促进端到端的加密数据共享,确保强大的隐私。

b. 链上保密身份:ZK应用程序使用户能够以可组合的方式创建链上的保密身份,超越了传统数据混淆方法(如混合)的限制。

c. 链下安全保证:利用ZK技术提供了强大的链下安全保证,确保了大量链下数据和计算的完整性和预期状态。

d. 互操作性信任:由ZK技术支持的预言机和桥梁在将链下数据桥接到区块链网络时起着关键作用,维护了加密完整性。

隐私中间件

与创建具有本机隐私功能的全新区块链不同,隐私中间件协议将隐私机制引入现有的区块链网络中。这些平台引入了一个隐私层,充当用户地址和匿名或“隐身”地址之间的中介,提供了一种实际的隐私增强方法。

Tornado Cash受到Zcash隐私模型的启发,部署了一个基于以太坊的智能合同,用于管理存储在隐身地址中的用户余额。使用零知识证明,该协议验证每笔交易的完整性,确保用户不能在混合资金后提取超出其帐户余额的资金。然而,Tornado Cash面临了法规挑战,因为恶意行为者滥用其隐私功能进行非法活动。

为了遵守法规,行业领袖如Vitalik Buterin和Ameen Soleimani正在推动下一代隐私池模型,平衡了强大的隐私和法规遵从性。这些模型探索了各种方法:

  • 黑名单筛查:能够禁止来自FATF(金融行动特别工作组)黑名单上地址的存款,确保协议只用于增强隐私的合法活动。
  • 用户控制的查看密钥:用户保留只读密钥,可以选择性地与监管机构共享。这些密钥验证资金来源和税收义务,同时确认资金不来自黑名单地址。
  • 服务器控制的查看密钥:在这种设置中,协议保留查看所有用户资金和交易的能力,为了增强合规性,向监管机构提供选择性的披露。

像Panther和Railgun这样的平台提供了被保护的代币,这些代币是通过将资金存入这些平台来获得的,以获得可以在以太坊、BSC、Polygon、Solana等区块链上使用的被保护资产。

Nocturne利用多方计算(MPC)和账户聚合器(AA)来创建一个隐形地址层。与铸造zk资产不同,这些地址是用于与协议进行交互的。用户将资金存入存款管理器,该管理器混合所有用户资金并为每个应用程序交互提供隐形地址。DApp永远无法访问这些地址的来源,从而增强了隐私。

DEX

为了满足机构领域对安全和隐私资产交易日益增长的需求,开发团队正在积极探索基于零知识技术的去中心化交易所(DEX)。与自动做市商(AMM)不同,基于零知识技术的DEX采用订单簿,提供了一系列优势,包括增强的流动性、免费的交易、无限的交易对、多样的订单类型和用户友好的界面。

为了满足机构领域对安全和隐私资产交易日益增长的需求,开发团队正在积极探索基于零知识技术的去中心化交易所(DEX)。与自动做市商(AMM)不同,基于零知识技术的DEX采用订单簿,提供了一系列优势,包括增强的流动性、免费的交易、无限的交易对、多样的订单类型和用户友好的界面。

让我们以Brine为例,Brine采用了一种混合模型,有效地将其运营分为链下和链上两个部分:

  • 链下部分:在链下部分,Brine管理钱包数据和所有订单和交易的实时状态,这个链下组件在高效执行订单和维护最新订单簿方面发挥着关键作用。
  • 链上部分:链上部分处理状态承诺和系统资产。为确保交易的安全性和完整性,Brine利用STARK prover,并随后通过专用的StarkEx合同在以太坊网络上验证这些证明,以确保状态转换的准确性。

由于Brine的订单存储在链下,该平台可以容纳各种订单类型,包括限价单和止损单。做市商可以提供流动性,获得类似于中心化交易所(CEX)上看到的费用。

Brine的撮合引擎拥有出色的可扩展性,能够处理高达60万笔每秒的交易。这超越了通常与AMMs相关的限制。重要的是,由于只有加密证明被发布到链上,交易者在其头寸方面可以享受100%的隐私。

除了Brine之外,像Zkex和Satori这样的平台也通过使用类似的机制,使衍生品和永续合同的交易在市场中引起轰动。

互操作性

在两个区块链之间架设数据和资产的桥梁通常依赖于受信任的验证者组或受信任的多重签名保管人,以确保数据的准确传输。这种依赖于外部验证已经导致了重大的安全漏洞,就像Nomad、Wormhole和Ronin等桥梁的遭受的入侵一样,累计造成了超过15亿美元的损失。这些传统的桥梁通常依赖于外部委员会,在将资产锁定在原始链上后,在目标链上铸造相应的资产。

基于零知识(ZK)的轻量级客户端的引入提供了一个革命性的进展,这些轻客户端使用ZK证明来验证源链上的共识变化。运行整个区块链的轻客户端将需要大量计算,因此ZK桥梁将zkSNARK共识变化的证明发送到目标链的执行层,目标链通过验证ZK证明来验证共识变化的正确性。这种方法显著降低了运行节点的计算成本,实现了互操作性,而不依赖于信任假设。

例如,Succinct正在开发一款名为Telepathy的轻客户端,它可以在EVM链上以仅30万燃气的消耗验证以太坊的共识。这些轻客户端可以支持目标链上的各种功能,包括:

  • 使用Zero-Knowledge(ZK)技术允许在不同区块链之间发送任意消息,这些消息可以用于协调或管理不同区块链上的跨链部署。
  • 读取以太坊验证者的权益和余额,用于Layer 2解决方案和再质押协议。
  • 在不依赖锁定/铸币协议的情况下,在链之间提供流动性桥接。
  • 从以太坊跨越目标链访问Chainlink的预言机数据,供Layer 2自动做市商(AMM)和DeFi协议使用。

Polyhedra和zkLink专注于在多个区块链之间构建流动性桥接。与在每个连接的网络上维护自己的流动性池不同,zkLink的目标是汇总流动性并合并所有使用zkLink基础架构的dApp的代币。这有助于提高不同区块链上的流动性,使代币能够在各种应用程序之间自由流通。

Oracles 和协处理器

Oracles可以分为两种主要类型

  1. 输入Oracles- 将链下数据带到链上环境(例如:Chainlink价格数据源)

  2. 输出Oracles- 将链上数据传递到链下环境,用于高级计算(The Graph)

智能合同具有固有的局限性,特别是在处理复杂的计算方面,如浮点运算、密集计算或统计分析。这就是输出Oracle受到关注的地方,通过将这些计算任务卸载到外部系统来解决这些计算挑战。

像Chainlink和The Graph这样基于抵押的Oracle运行一组验证者,他们会获得奖励,以便导入来自现实世界(例如CEX上的价格或天气数据)的数据并对这些数据进行计算。然而,当抵押总额低于潜在的被盗价值时,会存在安全问题。黑客可以利用这种不平衡来操纵Oracle数据,从而导致频繁的攻击和套利机会的利用。

这就是ZK Oracle发挥作用的地方,特别是在输出Oracle领域。它们通过提供zk证明来验证在链下执行的计算是否按预期进行。这催生了一个新的类别,称之为:协处理器。

HyperOracle正在通过利用专门的Oracle节点,这些节点生成了与传输的数据一起发送到以太坊区块链上的验证器合同的零知识(zk)证明,从而推动“无信任”Oracles的发展。

这种方法将安全模型转变为“1对N”的模型,即使一个节点提交了正确的数据,验证器合同也可以检测到任何差异。这种设置保证了链下计算的100%计算完整性,同时将最终性降低到仅12秒,与以太坊的区块时间相匹配。

另一个挑战是Axiom提供了一种无信任的机制,用于访问以太坊上的历史状态数据。由于以太坊的状态机性质,智能合同只能访问当前状态,并依赖于中心化的链下Oracle来访问历史状态数据。

Axiom通过提供零知识证明来解决了这个问题,以验证来自以太坊过去区块的块头、状态、交易和收据的真实性。

Herodotus专门提供存储证明,这些证明本质上是ZK证明,用于确认数据包含在L1(一层)和L2(二层)的状态根中。开发人员可以构建跨链应用程序,例如通过在另一条链上提供抵押品来为另一条链上的贷款提供抵押品的借贷应用,以及可以利用另一条链上的NFT资产的游戏应用程序。

身份/个人身份证明

ZKP的隐私保证为设计身份各个方面的新加密原语创造了机会:位置证明、所有权证明、语音证明、教育、经验、医疗数据、KYC。

Sismo是这个领域ZKP的一个很好的例子。该团队正在开发ZK徽章,使用户能够有选择地与Web3应用程序和其他用户共享他们的个人数据。ZK徽章是一种与灵魂绑定的令牌,根据用户的个人数据将其分类到特定群组。例如,用户可以通过生成验证条件的ZK证明来证明他们是长期以太坊用户、某个GitHub仓库的贡献者或美国公民。在验证证明后,Sismo授予用户与其个人数据相对应的徽章。徽章标记了用户的身份,而不实际透露任何敏感信息。

Worldcoin代表了ZKP的另一个创新应用,建立了World ID作为一个开放和无需许可的身份验证协议。该协议利用虹膜生物识别技术进行精确的身份验证,通过卷积神经网络将高分辨率的虹膜扫描转换为压缩形式。这些数据被插入到它们的Semaphore ZKP实现中,以生成一个身份承诺,该承诺存储在World ID合同中。

可验证计算

计算证明是一种密码技术,允许一方向另一方证明特定的计算已正确进行,而不披露有关输入、输出或计算本身的任何敏感信息。

Risczero的虚拟机在其机器上运行代码时生成ZKP计算收据,这个“执行跟踪”使任何人都能验证计算每个时钟周期时机器状态的记录,同时保持数据隐私,这就像在RISC-V架构上进行计算时有一个数字公证员。

Reclaim、zkPass和Chainlink的DECO等协议绕过这些许可要求,将金融数据存储为可由任何Dapp使用的可组合的ZK证明。这些协议的工作原理是充当网站服务器和客户端设备之间的代理,生成TLS 收据以确保数据的准确性。它们允许无需信任地导入各种数据,例如Github存储库、Facebook帖子、银行余额、土地记录、税收文件和游戏成就,所有这些都记录为链上的ZK证明。这些协议将Web2数据从中心化的、经过许可的服务器中解放出来,并将它们转化为可组合的Web3凭据。

Giza、Space and Time 和 Modulus Labs 正在致力于可验证的算法完整性 - 重点关注零知识机器学习(ZKML)。

隐私计算

ZKP 本身非常强大,但当与其他加密技术如多方计算(MPC)、全同态加密(FHE)和可信执行环境(TEE)结合使用时,它们开启了新的安全和隐私设计领域。

Renegade 正在开发一个链上黑暗池,确保交易者在执行交易前后都能享有完全隐私。在传统的设置中,当两方希望交换信息和资产时,它们必须依赖中央服务器来解密和处理数据。然而,如果任何一方获悉输出并在代币交换之前中止连接,这可能导致信息泄漏和市场操纵。

为了解决这个问题,Renegade 引入了一个具有多个中继的点对点八卦网络。当交易者寻求进行交易时,中继会识别交易对手并建立多方计算连接,保护交易信息免受第三方曝光。

多方计算(MPC)是一种加密技术,它允许多方协作计算一个函数的输出,而不需要揭示他们的输入。交易者可以交换资产而不需要披露他们的全部余额,这一核心功能构成了一个完整的黑暗池的基础,消除了对受信任操作者的需求。然而,MPC 协议本身无法保证输入数据的有效性。Renegade 在MPC 计算中生成一个 zk-SNARK 证明,确保交易者的余额与其声称的一致。

MPC、FHE 和 ZKP的融合开辟了新应用的大门。zkHoldem 通过为每一次洗牌和发牌生成 ZK 证明,彻底改变了链上扑克游戏,确保了可证明的公平游戏。通过还实施 MPC 技术,即使对于他们的服务器来说,也能隐藏玩家的牌,zkHoldem 提高了链上游戏的诚信水平。

ZK工具

<img src="/Users/tron/Library/Application Support/typora-user-images/image-20231107154917502.png" alt="image-20231107154917502" style="zoom:33%;" />

软件

领域特定语言(DSL)将抽象逻辑转化为电路表示,这些电路表示可以被证明系统使用。DSL用一种非常接近汇编语言的形式来表达更高级的逻辑。例如,Aztec的Noir兼容多个证明系统,因此它对开发人员来说是一个很好的选择。然而,这些语言的复杂性也构成了一种障碍,使大多数开发人员难以进行电路设计。

一股创新浪潮席卷了ZKP领域,许多团队正在开发更高级的语言,以抽象掉汇编语言的复杂性。

其中两个示例是SnarkyJS,这是一种专为Mina区块链量身定制的TypeScript框架,以及Polylang,这是由Polybase Labs开发的另一种TypeScript框架,与Miden的虚拟机合作。

总的来说,ZK工具主要追求三个核心目标:多功能性、用户友好性和性能。Solidity不适合生成ZK表示,因此Starknet团队创建了Cairo,专门用于创建基于STARK的智能合同。

RiscZero最近宣布了他们的项目Zeth,它可以证明以太坊的各个方面,包括每个EVM操作码和EIP,以及区块构建,但在将ZK正式纳入以太坊之前还有很长的路要走。

硬件

在用户硬件上生成ZK证明速度非常慢但维护隐私是必要的。在移动设备上使用SHA2对10KB数据进行哈希运算只需几毫秒,但生成这个数据的ZK证明将需要至少2分钟。

硬件加速团队,如Ingoyama和Cysic,可以通过专用硬件在云端生成证明并将证明返回给用户。

需要大量zk计算的协议还可以与专用硬件提供商合作,以确保最佳性能和有竞争力的价格。例如,Ulvetenna运营FPGA集群,专为ZKP Rollup计算而构建。

证明市场

诸如RiscZero的Bonsai、Nil的Proof Market和Marlin的Kalypso等证明市场充当桥梁,连接需要ZKP生成器的初创企业与提供证明生成服务的企业。在这些市场中,重点关注证明生成的两个关键方面:相关成本和生成证明所需的时间。

参考

https://polygonventures.substack.com/p/navigating-the-zero-knowledge-landscape

https://news.marsshare.cc/20231106082222171833.html

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容