零知识证明技术40年进化史:从基础到ZK Rollup的全面解析

零知识证明技术综述与未来展望

摘要

零知识证明(ZKP)作为一项重要的密码学技术,在区块链领域被广泛认为是继分布式账本技术之后最具革命性的创新之一。本文对ZKP技术近四十年的发展历程和最新研究进行了系统性综述。

首先介绍了ZKP的基本概念和历史背景,重点分析了基于电路的ZKP技术,包括zkSNARK、Pinocchio、Bulletproofs等模型的设计、应用和优化方法。在计算环境方面,本文介绍了ZKVM和ZKEVM,探讨了它们如何提升交易处理能力、保护隐私和提高验证效率。文章还阐述了ZK Rollup作为Layer 2扩展方案的工作机制和优化方法,以及硬件加速、混合解决方案和专用ZK EVM的最新进展。

最后,本文展望了ZKCoprocessor、ZKML、ZKThreads、ZK Sharding和ZK StateChannels等新兴概念,并探讨了它们在区块链扩展性、互操作性和隐私保护方面的潜力。

通过分析这些最新技术和发展趋势,本文为理解和应用ZKP技术提供了全面视角,展示了其在提升区块链系统效率和安全性方面的巨大潜力,为未来的投资决策提供了重要参考。

目录

前言

一、零知识证明基础知识

  1. 概述
  2. 零知识证明示例

二、非交互零知识证明

  1. 背景
  2. NIZK的提出
  3. Fiat-Shamir变换
  4. Jens Groth及其研究
  5. 其他研究

三、基于电路的零知识证明

  1. 背景
  2. 电路模型的基本概念与特点
  3. 零知识证明中的电路设计与应用
  4. 潜在的缺陷和挑战

四、零知识证明模型

  1. 背景
  2. 常见算法模型
  3. 基于线性PCP和离散对数问题的方案
  4. 基于普通人证明的方案
  5. 基于概率可检验证明的零知识
  6. 基于CPC的设置阶段分类

五、零知识虚拟机的概述和发展

  1. 背景
  2. 现有ZKVM的分类
  3. 前端与后端范式
  4. ZKVM范式的优缺点

六、零知识以太坊虚拟机的概述和发展

  1. 背景
  2. ZKEVM的工作原理
  3. ZKEVM的实现流程
  4. ZKEVM的特点

七、零知识二层网络方案概述与发展

  1. 背景
  2. ZK Rollup的工作机制
  3. ZK Rollup的缺点与优化

八、零知识证明的未来发展方向

  1. 加速计算环境的发展
  2. ZKML的提出和发展
  3. ZKP扩容技术相关发展
  4. ZKP互操作性的发展

九、结论

前言

随着Web3时代的到来,区块链应用(DApps)呈现爆发式增长,每天都有新应用涌现。近年来,区块链平台每天承载着数百万用户的活动,处理数十亿笔交易。这些交易产生的大量数据通常包含敏感的个人信息,如用户身份、交易金额、账户地址和余额等。鉴于区块链的开放性和透明性,这些存储的数据对所有人都是公开的,因此引发了多种安全与隐私问题。

目前,有几种加密技术可以应对这些挑战,包括同态加密、环签名、安全多方计算和零知识证明。同态加密允许在不解密密文的情况下执行运算,有助于保护账户余额和交易金额的安全,但无法保护账户地址。环签名提供了一种特殊的数字签名形式,能够隐藏签名者的身份,从而保护账户地址,但对账户余额和交易金额的保护则无能为力。安全多方计算允许在多个参与者之间分配计算任务,而无需任何参与者知晓其他参与者的数据,有效保护了账户余额和交易金额,但同样不能保护账户地址。此外,这些技术无法在不泄露交易金额、账户地址和账户余额的情况下验证区块链环境中证明者是否拥有足够的交易金额。

零知识证明(ZKP)是一种更全面的解决方案,这种验证协议允许在不透露任何中介数据的情况下验证某些命题的正确性。该协议不需要复杂的公钥设施,其重复实施也不会为恶意用户提供获取额外有用信息的机会。通过ZKP,验证者能够在不泄露任何私人交易数据的情况下,验证证明者是否具有足够的交易金额。验证过程包括生成包含证明者声称的交易金额的证明,然后将该证明传递给验证者,验证者对证明进行预定义的计算,并产出最终的计算结果,从而得出是否接受证明者声明的结论。如果证明者的声明被接受,意味着他们拥有足够的交易金额。上述验证过程可以记录在区块链上,没有任何伪造。

ZKP这一特性使其在区块链交易和加密货币应用中扮演核心角色,特别是在隐私保护和网络扩容方面,使得其不仅成为了学术研究的焦点,被广泛认为是自分布式账本技术(特别是比特币)成功实施以来最重要的技术创新之一。同时也是行业应用和风险投资的重点赛道。

由此,诸多基于ZKP的网络项目相继涌现,如ZkSync、StarkNet、Mina、Filecoin和Aleo等。随着这些项目的发展,关于ZKP的算法创新层出不穷,据报道几乎每周都有新算法问世。此外,与ZKP技术相关的硬件开发也在迅速进展,包括专为ZKP优化的芯片。例如,Ingonyama、Irreducible和Cysic等项目已经完成了大规模的资金募集,这些发展不仅展示了ZKP技术的快速进步,也反映了从通用硬件向专用硬件如GPU、FPGA和ASIC的转变。

这些进展表明,零知识证明技术不仅是密码学领域的一个重要突破,也是实现更广泛区块链技术应用(尤其是在提高隐私保护和处理能力方面)的关键推动力。

因此,我们决定系统地整理零知识证明(ZKP)的相关知识,以更好地辅助我们做出未来的投资决策。为此,我们综合审阅了关于ZKP相关的核心学术论文(依据相关性和引用次数进行排序);同时,我们也详细分析了该领域内领先的项目的资料和白皮书(根据其融资规模进行排序)。这些综合性的资料搜集和分析为本文的撰写提供了坚实的基础。

一、零知识证明基础知识

1.概述

1985年,学者Goldwasser、Micali和Rackoff在论文《The Knowledge Complexity of Interactive Proof-Systems》中首次提出了零知识证明(Zero-Knowledge Proof,ZKP)和交互式知识证(Interactive Zero-Knowledge,IZK)。该论文是零知识证明的奠基之作,定义了许多影响后续学术研究的概念。例如,知识的定义是"不可行计算的输出",即知识必须是一个输出,且是一个不可行计算,意味着它不能是简单的函数,而需是复杂的函数。不可行计算通常可以理解为是一个NP问题,即可以在多项式时间内验证其解正确性的问题,多项式时间指的是算法运行时间可以用输入大小的多项式函数来表示。这是计算机科学中衡量算法效率和可行性的重要标准。由于NP问题的求解过程复杂,因此被认为是不可行计算;但其验证过程相对简单,所以非常适合用于零知识证明验证。

NP问题的一个经典例子是旅行商问题,其中要找到访问一系列城市并返回起点的最短路径。虽然找到最短路径可能很困难,但给定一个路径,验证这条路径是否是最短的相对容易。因为验证一个具体路径的总距离可以在多项式时间内完成。

Goldwasser等人在其论文中引入了"知识复杂度"这一概念,用以量化在交互式证明系统中,证明者向验证者泄露的知识量。他们还提出了交互式证明系统(Interactive Proof Systems,IPS),其中证明者(Prover)和验证者(Verifier)通过多轮互动来证明某个语句的真实性。

综上,Goldwasser等人总结的零知识证明的定义,是一种特殊的交互式证明,其中验证者在验证过程中不会获得除语句真值外的任何额外信息;并且提出了三个基本特性包括:

1.完备性:如果论证是真实的,诚实的证明者可以说服诚实的验证者这一事实;

2.可靠性:如果证明者不知道声明内容,他只能以微不足道的概率欺骗验证者;

3.零知识性:在证明过程完成后,验证者只获得"证明者拥有此知识"的信息,而无法获得任何额外内容。

2.零知识证明示例

为更好理解零知识证明及其属性,以下是一个验证证明者是否拥有某些私密信息的示例,该示例分为三个阶段:设置、挑战和响应。

第一步:设置

在这一步,证明者的目标是创建一个证据,证明他知道某个秘密数字s,但又不直接显示s。设秘密数字s;

选择两个大的质数p和q,计算它们的乘积n。设质数p和q,计算得到的n;

计算v=s^2 mod n,这里,v作为证明的一部分被发送给验证者,但它不足以让验证者或任何旁观者推断出s。;

随机选择一个整数r,计算x=r^2 mod n并发送给验证者。这个值x用于后续的验证过程,但同样不暴露s。设随机整数r,计算得到的x。

第二步:挑战

验证者随机选择一个位a(可以是0或1),然后发送给证明者。这个"挑战"决定了证明者接下来需要采取的步骤。

第三步:响应

根据验证者发出的a值,证明者进行响应:

如果a=0,证明者发送g=r(这里r是他之前随机选择的数)。

如果a=1,证明者计算g=rs mod n并发送。设验证者发送的随机位a,根据a的值,证明者计算g;

最后,验证者根据收到的g来验证x是否等于g^2 mod n。如果等式成立,验证者接受这个证明。当a=0时,验证者计算g^2 mod n,右侧验证x; 当a=1时,验证者计算g^2 mod n,右侧验证xv。

这里,我们看到验证者计算得到的x=g^2 mod n说明证明者成功地通过了验证过程,同时没有泄露他的秘密数字s。在这里,由于a只可以取0或1,仅有两种可能性,证明者依靠运气通过验证的概率为50%(当a取0时)。但验证者随后再挑战证明者n次,证明者不断更换相关数字,提交给验证者,且总能成功地通过验证过程,这样一来证明者依靠运气通过验证的概率为(1/2)^n(无限趋近于0),证明者确实知道某个秘密数字s的结论便得到证明。这一例子证明了零知识证明系统的完整性、可靠性和零知识性。

二、非交互零知识证明

1.背景

零知识证明(ZKP)在传统概念中通常是交互式和在线的协议形式;例如,Sigma协议通常需要三到五轮交互才能完成认证。然而,在诸如即时交易或投票等场景中,往往没有机会进行多轮交互,特别是在区块链技术应用中,线下验证功能显得尤为重要。

2.NIZK的提出

1988年,Blum、Feldman和Micali首次提出了非交互式零知识(NIZK)证明的概念,证明了在无需多轮交互的情况下,证明者(Prover)与验证者(Verifier)仍可完成认证过程的可能性。这一突破使得即时交易、投票以及区块链应用的实现变得可行。

此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 7
  • 分享
评论
0/400
BlockDetectivevip
· 07-15 23:55
zksnark真香
回复0
FunGibleTomvip
· 07-15 04:16
这谁看得懂啊...都快魔怔了
回复0
闪电佬vip
· 07-14 05:09
读不进去 狗都看不懂
回复0
wagmi_eventuallyvip
· 07-14 05:05
zk我只用过stark,其他都不懂
回复0
Just Here for Memesvip
· 07-14 04:55
zk这技术属实牛逼
回复0
无常损失资深哲学家vip
· 07-14 04:55
狗狗币哪里不行了 zkp不早用了么
回复0
DAO治理专员vip
· 07-14 04:53
*唉* 又一份调查缺少Vitalik在他2022年zk论文中的重要见解...
查看原文回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)