详解零知识 (ZK) 技术

 2024-02-27 22:02:34发布 2024-02-28 07:31:57更新

零知识 (Zero-Knowledge,ZK) 为 ZK rollups 提供动力,已成为区块链扩展领域的关键技术。但是人们经常忽视 ZK 在应用层解决方案中所拥有的巨大潜力。在这些领域中,ZK 可以保护数据隐私,也可以确保链下数据的真实性。

零知识的出现

中本聪为存在已久的拜占庭将军问题精心设计了一个巧妙的解决方案,该问题本质上是解决去中心化实体如何达成相互协议或认同同一事实。这个突破就是工作量证明(PoW)共识算法。

通过该算法,世界各地的矿工现在可以调整他们的经济利益,催生了全球共识体系。比特币赋予用户控制自己的私钥并独立验证交易的全力,引入了真正去中心化的托管生态系统。

以太坊通过权益证明 (PoS) 共识机制带来了一些变化,该机制依靠验证者激励和惩罚来维持网络安全与和谐。

去中心化账本在每个网络节点上重新执行计算来,以此来实现正确性。这就像阅读整本书来验证一个单词一样。使用这种方法的架构计算效率很低,其中每个节点都必须下载最新的区块并执行整组交易以验证与区块的一致性。

开放计算不仅占用资源,而且还暴露出一个软肋:缺乏隐私。MEV 攻击者会利用此漏洞,操纵交易序列以获取个人利益。

这种情况下,区块链社区转而研究增强可扩展性和隐私保护,由此掀起了探索 ZK 密码学的,特别是探索 zk-SNARKs(零知识简洁非交互式知识论证)和 zk-STARKs(零知识可扩展透明知识论证)等技术的浪潮。

零知识是什么

从本质上讲,ZK 证明让某人(证明者)能够向不信任方(验证者)证明他们拥有特定知识,而无需透露有关该知识的任何细节。

零知识证明 (ZKP) 具有两个基本属性:

  1. 简洁省力:使用验证证明,这比直接检查原始数据更高效。
  2. 隐私性:被证明的任何数据内容都不会透露给验证者。

尽管该技术诞生于 20 世纪 90 年代,但其最初的应用大多局限于隐私解决方案。2010年,IBM 利用 ZK 创建了其身份混合器 Bluemix,而 Microsoft 的 Election Guard 使用 ZKP 进行可验证的私人选举。

ZKP 能紧凑地验证链外计算,这种能力激发人们研究扩展以太坊等平台。

虽然 ZKP 的数学知识十分复杂、难以理解,但开发人员能将 ZK 加密技术引入应用程序中,就像使用公钥加密技术一样。正在进行的研究目标是开发最高水准的证明者和验证者,重点是有效生成证明并快速对其验证。

区块链需要关键的链下数据,例如资产价格或来自替代区块链的信息。传统上,像 Chainlink 这样的预言机利用受经济激励的验证者网络来确保数据的准确性和完整性,一直是可信的数据传递者。

ZKP 为加密经济领域带来了新的信任轴心。借助零知识证明技术,这些应用程序是区块链之外警惕的“眼睛”,能够证明链下数据和计算的合法性。

ZK技术领域

通用汇总

随着以太坊的快速增长,ERC-20 代币和 ERC-721 NFT 的交易常飙升徘徊在 5 至 15 美元的范围。这促使人们要在不影响去中心化的情况下重新考虑可扩展性。

进入汇总时代:以太坊的战略支点转向模块化、以汇总为中心的框架,该框架有三个不同的层:数据可用性(DA)层、执行层和结算层。

目前有Optimistic Rollups 和 ZK Rollups 这两种类型的汇总正在开发中。它们能提供在以太坊链上执行交易及结算且继承其安全性的第2层扩展解决方案。

这两种类型都依靠排序器来接收用户交易,将交易组织成批次交易,并生成对以太坊主网的承诺证明。

Optimistic Rollups 使用观察者在争议解决窗口内发现欺诈交易,而 ZK Rollups 使用有效性证明来确保交易有效性,无需链上验证。

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

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

存储层:说到存储,大多数汇总,包括 Polygon 的 zkEVM、Scroll、zkSync Era 和 Linea,更喜欢将压缩格式的数据推送到以太坊calldata。这种方法不失活跃性,并让用户能够从以太坊重新创建状态,并在需要时绕过汇总。

然而,一些 zk-rollups,例如 Starknet 的 Validium、Matter Lab 的 zkPorter 和 Polygon 的 Miden 将数据存储在由数据可用性委员会 (DAC) 保护的不同数据可用性(DA)层上。

结算层:ZK Rollups 将新的汇总状态以及“有效性证明”提交给以太坊上的验证者智能合约。这些验证者检查有效性证明以保证链下虚拟机中状态转换的正确性并记录新的状态转换。

验证过程可能会占用大量资源,单个证明所需的Gas成本为30万到500万不等。验证时间也可能很长,大约10秒。汇总通常会定期向第1层发布证明,通过批量交易来降低每笔交易的成本。

ZK 证明不能用于汇总中的共识或交易排序。排序者通常根据各自的规则集做出共识决策,其中许多遵循先见原则。在发展中,人们一直在努力使排序者去中心化,其中一些项目实施了共享排序者。

基于VM的汇总

使用 Layer2 EVM 时存在一些挑战,这可能会限制计算效率。以太坊的原生函数(例如哈希函数)由于其资源密集型特性,通常与 ZK 技术不兼容。

在意识到其中一些操作码的大部分成本来自这些需要高费用的操作后,ZKSync 不再支持其中一些操作码。

与专注于以太坊指令集的 EVM 不同,基于 zkVM 的汇总更灵活,能运行与不同计算机架构兼容的各种软件。这些虚拟机作为超级集可以实现不同的指令集,例如 RISC-V 和 WebAssembly,并生成用于计算的 ZKP。

在基于 zkVM 的汇总领域中,Starknet 是一个开创性的项目。它开发了 Cairo,一种专门的低级编程语言,其操作更接近汇编语言。

Polygon 的 Miden 使用自己的汇编语言,与 Move 更接近,而 Delphinus 和 Fluent 则致力于基于 WASM 语言的汇总。

Fluent 和 ZKM 允许开发人员使用 Rust、TypeScript、C/C++、Go 等通用编程语言构建应用程序。

在基于帐户的系统范围内构建的应用程序难以开发,甚至是不切实际的。基于 zkVM 的汇总为中构建提供了便利,从而重新定义了以太坊的功能。

例如,Miden 采用基于客户端的证明模型,其中每个帐户都充当智能合约,用户负责在其客户端设备上创建 ZKP。然后将这些 zk 证明提交到 Miden rollup 以更新全局状态。

这种方法支持并行执行交易并增强了隐私保护,因为代币转移和 NFT 交换等操作能在不影响公共状态的情况下进行。

汇总框架

目前,多个团队已开始开发简化零知识(ZK)汇总,为更广泛的构建者打开大门。这些创新框架为构建者提供了一组全面的组件,包括排序者、证明者、数据可用性(DA)层和共识层。

利用这些框架的构建者继承了以太坊强大的安全性同时保留做出选择的自由,以此来获得至关重要的优势。他们可以选择部署原生代币或使用以太币 (ETH),并能灵活地参与外部验证者或为其验证者实施定制规则。

Sovereign Labs 和 Polygon 正在积极开发软件开发套件 (SDK),这些套件让任何人都能使用预定义的规则集和可互操作的桥接来创建 ZK Layer 2 (L2) 汇总,从而实现强大的流动性。

Lumoz 采用综合方法,通过专门的工作量证明 (PoW) 共识、专用证明网络以及与其他汇总的沟通渠道,授予开发团队对其汇总的完全主权。

LayerN 为混合 zk-OP(零知识操作员)架构提供便利,并承诺提供比以太坊便宜一千倍的交易费用。

汇总即服务(RaaS)

Rollups-as-a-Service (RaaS)简化了汇总框架和软件开发工具包 (SDK) 的架构,提供了一个抽象层,有助于轻松部署、维护和创建自定义的、生产级的特定于应用程序的 汇总。

RaaS 将开发人员不再需要面对基础设施管理和网络性能监控的复杂性,而让他们能够专注于构建应用程序层。过去十分耗费时间的工作现在转变无代码部署过程,简单且仅需10分钟。

它们简化了汇总的部署和开发过程,可视为汇总中的 AWS(Amazon Web Services)。

借助 Vistara 和 Gateway 等平台,用户能够混合并匹配模块化组件,在短短几秒钟内根据自己的需求快速启动个性化汇总。

有了这种模块化方法,开发人员能够制作与其独特目标精确一致的 ZK 汇总。从执行虚拟机 (VM) 和数据可用性 (DA) 层到定排序者、桥接者和证明者,开发人员能够灵活地选择适合其要求的组件。

特殊用途汇总

尽管通用汇总取得了进步,但由于 Layer2 区块空间存在竞争且第1层批量发布的成本上升了,因此扩展仍受到限制。

特定的 dApp 需要定制功能,例如 DeFi 的快速终局性、游戏的低延迟以及企业区块链的隐私保护,从而需要特定于应用程序的汇总。

Starknet 是处于领先地位的生态系统,能够处理包括 dYdX、Sorare 和 Immutable 等应用程序利用基于 Starkware 的 Starkex 技术构建的特定于应用程序的汇总。Starknet 的运营商对交易进行聚合、批量处理,并向以太坊主链提供 ZK 证明,以低成本保障安全和隐私。

Loopring 是 ZK 的汇总,专门研究 DeFi 用例,可提供用于即使执行具有 CEX 级别的流动性的大宗交易等功能; Myria 是另一个 ZK 汇总,迎合游戏应用,注重低交易成本。

隐私

Web3 技术迅速扩展,吸引了数百万用户,但随之而来的是仍然潜伏着的紧迫隐私问题,特别是对于机构、银行和企业来说,根据法律要求的义务,他们常陷入保护其金融交易的困境之中。

ZK 证明添加了防止窥探的元素,这是 zCash 最初普及的用例。Zcash 使用 zk-SNARK 来证明交易的有效性,而不会泄露有关发送者、接收者或交易金额的任何信息。钱包余额不是以明文而是以“承诺说明”的形式存储。

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

  • 价值守恒:确认进入交易(输入)的币总量等于离开交易(输出)的币总量,但不透露实际数量。
  • 支出权限:它证明发送者拥有与他们正在使用的输入相关的正确私人支出密钥,从而确认他们支出代币的权限。
  • 防止双花:它证明代币以前未被花过,防止双花。

注重隐私的Layer1协议

Aleo、Aleph Zero、Ironfish 和 Mina 等一系列协议正在进一步突破界限,专门提供优先考虑隐私的第1层解决方案。与以太坊基于账户的框架不同,这些协议采用了比特币 UTXO 模型的修改版本。

共识模型:每个以隐私为中心的协议都采用不同的共识模型。

例如,Aleo 利用可持续工作量证明(SPoW)机制,其中“工作量”是指生成 zk 证明而不是高耗能的挖矿行为。Ironfish 遵循类似于比特币的工作量证明 (PoW) 模型,仅通过挖矿生成代币,而无需进行首次代币发行 (ICO)。Aztec 最初设计为第1层 (L1) 解决方案,现已过渡到第2层 (L2) 框架,并停留在以太坊网络上。

重新定义网络层:除了达成共识外,这些协议还重新构想了网络层,支持点对点数据交换以最大限度地保护隐私。

例如,Ironfish 使用 WebRTC 和 WebSocket 的组合来建立与节点的连接。用户可以建立直接连接、进行交易、创建 ZKP,以验证对规则的遵守情况,然后在区块链上结算交易,同时保护他们的隐私。

注重隐私的Layer2协议

Aztec 和 Ola 等项目致力于通过私人账户和加密交易实现 ZK 汇总来加强对以太坊网络隐私性的保护。这两个项目都在开发自己的 zkVM,同时高度重视私人账户管理。

ZK Apps

应用程序利用 ZKP 的隐私保护功能为链下数据和计算带来了信任,主要有以下四类用例:

  1. 安全共享秘密:ZK 技术使用户能够通过不信任的结算层私密地共享秘密。zkMail 和 zkVoting 协议等知名应用程序为i端到端加密数据共享创造条件,确保强大的隐私保护。
  2. 保密的链上身份:ZK Apps 使用户能够以可组合的方式创建谨慎的链上身份,超越了混合等传统数据混淆方法的局限性。
  3. 链下安全保证:利用 ZK 技术提供强大的链下安全保证,确保大量链下数据和计算的完整性和预期状态。
  4. 可互操作的信任:当将链下数据桥接到区块链网络时,ZK 驱动的预言机和桥接器在维护加密完整性方面发挥着重要作用。

隐私中间件

隐私中间件(Privacy Middleware)协议不创建具有本机隐私的全新区块链,而是将隐私机制引入现有的区块链网络中。这些平台引入了隐私层,充当用户地址和匿名或“隐形”地址之间的中介,提供了增强隐私的实用方法。

受到 Zcash 隐私模型的启发,Tornado Cash 部署了基于以太坊的智能合约,用于管理存储在隐形地址中的用户余额。该协议使用零知识证明技术来验证每笔交易的完整性,确保用户在混合资金后提取的资金不能超过其账户余额。

然而,Tornado Cash 遇到了监管挑战,因为恶意行为者利用其隐私功能进行非法活动。

认识到合规性的必要性,Vitalik Buterin 和 Ameen Soleimani 等行业领导者正在开创下一代模型,以在稳健的隐私与法规遵守之间取得平衡。这些模型探索了各种方法:

  • 黑名单筛选:该方法能禁止从 FATF 黑名单上列出的地址进行存款,确保协议合法地用于增强隐私的活动。
  • 受用户控制的密钥查看:用户维护着可以有选择地与监管机构共享的只读密钥。这些密钥验证资金来源和纳税义务,同时确认资金并非来自黑名单地址。
  • 受服务器控制的密钥查看:在此设置中,协议可向监管机构提供选择性披露以增强合规性,保留了查看所有用户资金和交易的能力。

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

Nocturne 利用多方计算 (MPC) 和帐户聚合器 (AA) 创建隐形地址层。这些地址不铸造 zk 资产,而是用于与协议交互。

用户将资金存入存款管理器,该管理器混合所有用户资金并为每个应用程序交互提供隐形地址。DApp 永远不会访问这些地址的来源,从而增强了隐私保护。

DEX

为了满足机构空间内对安全和私密资产交换日益增长的需求,开发团队正在积极探索基于 ZK 技术的去中心化交易所(DEX)领域。与自动做市商(AMM)不同,由 ZK 技术提供支持的 DEX 使用的是订单簿,这带来了一系列好处,包括增强的流动性、无 Gas 交易、无限的交易对、多样化的委托类型和人性化的界面等。

以 Brine 为例,Brine 采用混合模型,有效地将其操作划分为链下和链上组件:

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

由于 Brine 的订单是链下存储的,因此该平台可容纳多种订单类型,包括限价委托和止损委托。做市商可以介入提供流动性,赚取与中心化交易所(CEX)类似的费用。

Brine 的匹配引擎拥有绝佳的可扩展性,能够处理高达 600,000 TPS。这超越了通常与 AMM 相关的限制。重要的是,由于只有加密证明发布在链上,交易者的头寸是100%隐私的。

互操作性

在两个链之间桥接数据和资产通常需要受信任的验证者组或受信任的多重签名托管人,他们负责确保数据的准确传输。这种对外部验证的依赖造成了严重的安全漏洞,Nomad、Wormhol 和 Ronin 等链桥的漏洞就是这类典型的案例。

在这些传统的链桥中,在目标链上铸造相应的资产之前将资产锁定在原始链上,这通常由外部委员会决定。

基于零知识 (ZK) 技术的轻客户端得以推出,这带来了开创性的进步。这些轻客户端使用 ZK 证明来验证源链上的共识更改。

运行整个区块链的轻客户端在计算上会费用昂贵,因此 ZK 链桥将共识更改的 zkSNARK 证明发送到目标链的执行层。目的链通过验证ZK证明来验证共识变更​​的正确性。

这种方法大大降低了运行节点的计算成本,进而在不依赖信任假设的情况下增强了互操作性。

预言机和协处理器

预言机可分为两种主要类型:

  • 输入预言机:将链下数据引入链上环境,例如 Chainlink Price Feeds;
  • 输出预言机:将链上数据传送到链下环境以进行高级计算,例如 Graph。

智能合约具有固有的局限性,特别是在处理浮点运算、密集计算或统计分析等复杂计算时更是如此。这就是输出预言机发挥作用的地方,它将这些计算任务卸载到外部系统以解决这些挑战。

Chainlink 和 Graph 等基于质押的预言机运行一组验证者,这些验证者从现实世界导入数据(例如 CEX 价格或天气数据)并对这些数据执行计算,并因此而获得奖励。

然而,当质押总金额低于可能被盗的潜在价值时,就会出现安全问题。黑客会利用这种不平衡来操纵预言机数据,从而导致频繁的攻击和套利机会漏洞。

这就是 ZK 预言机能起作用的地方,特别是在输出预言机领域更是如此。他们通过提供 zk 证明来验证计算是否按预期进行,从而确保链下执行的计算的准确性。由此催生了一个称为协处理器的新类别。

HyperOracle 利用专门的预言机节点来生成零知识 (zk) 证明并使用验证者合约将数据传输到以太坊区块链上,从而开创了“去信任”的预言机。

这种方法将安全模型转变为“1 of N”模型。在这种模型下,即使一个节点提交了正确的数据,验证者合约也可以检测到任何差异。

这种设置保证了链下计算100%的计算完整性,同时将终局性确定时间缩短至仅 12 秒,与以太坊的出块时间保持一致。

为了解决另一个挑战,Axiom 提供了一种去信任的机制,用于访问以太坊上的历史状态数据。由于以太坊的状态机性质,智能合约只能访问当前状态,并依靠中心化的链下预言机来访问历史状态数据。

Axiom 提供零知识证明,用于验证任何过往以太坊区块的区块头、状态、交易和收据的真实性,从而解决了这个问题。

身份/身份证明

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

Sismo 是该领域使用 ZKP 技术的范例。该项目的团队正在开发 ZK 徽章,使用户能够有选择地与 web3 应用程序和用户共享其个人数据。 ZK徽章是一种灵魂绑定的代币(SBT),根据用户的个人数据将用户分为特定的组。

例如,用户可以通过生成验证条件的 ZK 证明来证明自己是以太坊的长期用户、特定 GitHub 存储库的贡献者或美国公民。验证证明后,Sismo 向用户授予与其个人数据相对应的徽章。徽章标代表用户的身份,但实际上并没有透露任何敏感细节。

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

要证明自己的身份,用户需要提供其World ID,该 ID 会根据整个列表进行检查以验证会员身份,从而授予对有用功能的访问权限,例如投票和一次性空投。

ZK工具

验证系统

证明系统是一个两方协议,涉及一组规则和程序,使证明者能够说服验证者声明的真实性。开发人员可使用多个 ZKP 系统,每个系统都有其独特的优势和挑战:

zk-SNARKs

  • 优势:紧凑的证明大小;快速验证。
  • 挑战:需要“可信设置”:一种一次性初始化,如果处理不当,可能会导致虚假证明。

zk-STARKs

  • 优势:无需可信设置;可防范量子威胁。
  • 挑战:较大的证明大小;计算需求提高。

Bulletproofs

  • 优势:无需可信设置;相当小的证明大小。
  • 挑战:验证和创建比 zk-SNARK 更耗时。

PLONK

  • 优势:拥有高效的算法和简化的设置。
  • 挑战:一个正在进行的研究主题;不如现有的技术。

软件

领域特定语言将抽象逻辑转换为可由证明系统使用的电路表示。DSL 以非常接近汇编语言的形式表达高级逻辑。有些(例如 Aztec 的 Noir)与多种验证系统兼容,它们因此而成为开发人员的绝佳选择。

然而,这些语言是复杂的,这成为一大障碍,让电路设计对大多数开发人员而言具有挑战性。目前许多团队都在打造高级语言,抽象出汇编语言的复杂性。

总的来说,ZK 工具有三大核心目标,即多功能性、人性化和性能。Solidity 对于生成 ZK 表示并不友好,因此 Starknet 团队创建了 Cairo,它是为创建基于 STARK 的智能合约而量身定制的。

以太坊的愿望之一是通过 0 型 zkEVM 将 ZK-EVM 集成到其核心协议中。然而,这一远大目标也伴随着一系列挑战,因为以太坊并不是为使 zk 易用而设计的,而且为以太坊区块生成证明的计算成本很高。

硬件

游戏行业的兴起激发了软件和硬件开发取得重大进步,改变了个人电脑和游戏机。1993年,Nvidia 进入该领域,专注于为 3D 加速量身定制 GPU,以满足强劲发展的游戏市场的需求。

随着人工智能和机器学习 (ML) 热潮的兴起,Nvidia 认识到其 GPU 在加速这些领域的复杂计算方面尚未开发的潜力。

因此,他们转向重新利用 GPU,以提高 AI 和 ML 任务的效率,最终获得了 95% AI 芯片市场份额。

预计零知识 (ZK) 技术将迎来专用硅硬件的新时代,这些硬件(GPU、FPGA 和 ASIC)将加速证明的生成和验证,同时保持成本效益。

用户硬件上的生成 ZK 证明确实很慢,但对于维护隐私来说是必要的。在移动设备上使用 SHA2 对 10kb 数据进行哈希处理需要几毫秒,但生成 ZK 证明至少需要2分钟。

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

需要大量 ZK 计算的协议还能与专业硬件提供商合作,确保最佳性能和有竞争力的价格。例如, 运行着专为 ZKP 汇总计算而构建的 FPGA 集群。

证明市场

对于需要 ZK 证明的新兴开发人员来说,与专业硬件提供商签订合约并寻找具有成本效益的解决方案可能会带来重大挑战。

RiscZero 的 Bonsai、Nil 的 Proof Market 和 Marlin 的 Kalypso 等证明市场作为桥梁,将需要 ZKP 生成器的初创公司与提供证明生成服务的初创公司连接起来。

这些市场非常重视证明生成的两个重要方面:相关成本和生成证明所需的时间。

总的来说,有注重隐私的消费者和注重效率的初创公司这两个用户群。

客户端证明

个人希望生成 ZKP 来保护隐私,以保护他们的敏感信息免受中心化实体的影响。他们最好的选择是在移动设备或笔记本电脑上生成 ZKP,但由于这非常耗时,因此他们希望将其卸载到专用加速器上。

研究人员正在积极探索使用 DIZK 等协议的私人委托方法,目的是确保没有任何一个工作人员能够访问全部秘密,从而最大限度地提高隐私保护和安全性。

服务器端证明

初创公司需要巨大的证明能力,例如为流经其系统的所有交易生成证明的 DEX,并需要快速的处理能力以消除应用程序性能的延迟。

推荐阅读