Research Day 2023:Succinct ZKP最新进展

news2024/11/30 8:58:50

1. 引言

主要见Ying Tong在Research Day 2023上视频分享:

  • Advances in the Efficiency of Succinct Proofs - Ying Tong

ZKP技术可用于:

  • 1)Verifiable virtual machine:如各种zkEVM和zkVM。
  • 2)verifiable cloud computing:
    2015年论文《Cluster Computing in Zero Knowledge》[CTV15]中使用了recursive proof composition和Proof-Carrying Data ZKP技术,专注于实现zkMapReduce(a distributed SNARK for MapReduce),从而未来可实现zkML(zero-knowledge Machine Learning)。
    在这里插入图片描述
    在这里插入图片描述

2. ZKP系统栈及分类

ZKP系统栈主要层次为:

  • 1)correctness of computation:待证明的某计算的正确性。
  • 2)constraint satisfaction problem:将计算正确性问题,经算术化,转换为,约束满足性问题。
  • 3)information-theoretic model:借助information-theoretic model,可高效对constraint satisfaction problem做probabilistic algebraic checks。
  • 4)proof system:选择某种cryptographic compiler(如DLG或抗碰撞哈希函数密码学安全假设等),高效安全地实例化为,某ZKP证明系统。

在这里插入图片描述

2.1 算术化表示

算术化表示用于将待证明的某计算的正确性,转换为,约束满足性问题。

算术化方案应具有的主要特性为:

  • 1)支持高效的lookup argument:以实现将某些昂贵的计算 转移给 预计算 或 offline phase。如位移、电路中的哈希函数等昂贵计算,可在电路外对其进行预计算,而在证明生成期间进行查找即可。lookup argument是 当今zkEVM具备可行性的关键。
  • 2)支持high-degree约束:如Plonky2的Poseidon gate。Plonky2具有当今已知的最快的Poseidon哈希实现,原因在于其可将整个Poseidon函数 squeeze进单个约束——该约束具有很高的degree。
  • 3)与folding scheme兼容

当前流行的算术化方案主要有:

  • R1CS
  • AIR
  • Plonkish

算术化表示,统一 VS 异构:

  • CCS的统一表示:[STW23] Customizable constraint systems for succinct arguments论文中,在不增加开销的情况下,所实现的Customizable constraint systems(CCS)统一兼容了以上三种算术化方案。
    同时在[STW23]论文中,其声称具有比STARK Prover更快的 Prover for AIR。
  • 乐高组合式的异构表示:不同于CCS[STW23]中的统一化思路,[CFQ19] LegoSNARK: Modular Design and Composition of Succinct Zero-Knowledge Proofs 论文中采用乐高组合式思路,LegoSNARK认为某类计算适合以某种算术化方案表示。针对heterogenous异构计算,可多个组件分别以不同算术化表示,再分别以不同的ZKP方式证明然后再组合,即所谓的commit-and-prove proof composition。所谓组合是指证明各ZKP系统中的这些组件都采用了相同的witness。
    在这里插入图片描述

2.1.1 lookup argument研究进展

Plonkish算术化表示的lookup argument研究情况为:
在这里插入图片描述

  • [BCG+18]:2018年Bootle等人《Nearly lineartime zero-knowledge proofs for correct program execution》论文中首次提出使用lookup argument来改进proving time。
  • plookup:2020年论文[GW20]
  • halo2:2021年ZCash ECC提出
  • Caulk:2022年论文[ZBK22]
  • Caulk+:2022年论文[PK22]。在此之前的lookup argument算法中,Prover的工作量与lookup table size是相关的,只是相比于处理整个table,工作量要少一些。而自Caulk+ lookup argument算法之后,Prover工作量与lookup table size是无关的。
  • Flookup:2022年论文[GK22]
  • MVLookup:2022年论文[Hab22]
  • baloo:2022年论文[ZGK+22]
  • cq:2022年论文[EFG22]
  • ProtoStar:2023年论文[BC23]。其针对CCS统一算术表示,提出了兼容folding scheme的lookup argument。

这些lookup argument方案对比情况为:

  • baloo论文中对比情况为:
    在这里插入图片描述

  • cq论文中对比情况为:
    在这里插入图片描述

需指出,自Caulk+之后的lookup argument中Prover的开销与lookup table size无关,仅与witness size(或 待open的set size,也即需查找的数量)有关。这对范围约束等应用场景来说是足够的。因范围约束中,可能的合法取值数量 要远远多于 实际所需查找的数量。

2.2 约束满足性问题、信息理论模型、cryptographic compiler以及ZKP

针对不同的算术化表示方案,对应有不同的约束满足性问题以及信息理论模型,分别需采用不同的cryptographic compiler来 实例化为不同的ZKP证明系统:

  • 1)R1CS,对应的模型有:
    • sumcheck:对应的cryptographic compiler有Hyrax。对应的ZKP证明系统有:Spartan。
    • PIOP:对应的cryptographic compiler有KZG。对应的ZKP证明系统有:Marlin。
  • 2)AIR,对应的模型有:
    • IOPP:对应的cryptographic compiler有FRI。对应的ZKP证明系统有:STARK。
  • 3)Plonkish,对应的模型有:
    • PIOP:对应的cryptographic compiler有IPA和KZG。对应的ZKP证明系统有:Halo2和PlonK。
    • sumcheck:对应的cryptographic compiler有multi-linear KZG。对应的ZKP证明系统有:HyperPlonK。

在这里插入图片描述

sumcheck [LFKN92]的最大亮点在于,其将vector commitment看成是multi-linear poly commitment,sumcheck的主要特点为:

  • 避免计算quotient多项式(即避免大型FFT运算)等昂贵运算
  • 与folding scheme兼容:可folded with no error terms in the group
  • 可用于batch源自多个sumchecks的多个multi-linear polynomials 为 一个multi-linear多项式

3. 递归证明

所谓递归证明,是指不互信的各参与方协作证明整条链路上计算的有效性。

在这里插入图片描述
可在ZKP系统栈的不同层次上实现递归,对应的递归证明技术有不同的分支:
在这里插入图片描述

  • 1)full recursion分支:包括:
    • atomic accumulation分支:见[BCMS20]、[BCH19]
    • split accumulation分支:见[BCLMS21]
      • folding scheme分支:见[KST21]
  • 2)incrementally verifiable computation(IVC)分支:见[Val08],包括:
    • non-uniform IVC分支:如[KS22]
    • PCD(Proof-Carrying Data)分支:如[Chi10]、[CTV15]

3.1 IVC from full recursion

所谓IVC from full recursion,是指在“cryptographic compiler”层进行递归。
如Plonky2为full recursion IVC方案,其cryptographic compiler对应为FRI,在cryptographic compiler层进行递归表示为:
在这里插入图片描述
其中每个recursive step会fully verify previous step所生成的proof。因此在每个step嵌入full verifier。

Plonky2性能卓越的原因在于,其具有succinct verifier,其verifier为sublinear in the circuit size。 不过这种方案也有局限性,因为并不是所有系统都适于这种full recursion IVC实现。

3.2 IVC from atomic accumulation

所谓IVC from atomic accumulation,也是指“在cryptographic compiler”层进行递归。但是其弱化了要求底层ZKP证明系统具有succinct Verifier的需求。

如Halo2,对应cryptographic compiler为IPA(Inner Product Argument),对应的底层ZKP系统不具有succinct Verifier,在做递归实现时,仅需要由succinct accumulation verifier,即意味着在每个recursive step,将昂贵的验证部分推迟给accumulator,在每个recursive step,仅简单地对所有这些昂贵计算进行累加,仅在最后进行验证,从而对cost进行了amortization(摊销):
在这里插入图片描述
IPA(Inner Product Argument)对应的ZKP不具有succinct Verifier,为linear time verifier,是昂贵的。但是借助IVC from atomic accumulation所实现的Halo2,可实现无需trusted setup的IVC,可跨巨大recursive step计算进行摊销,仅需在最后一步做一次linear time check。

3.3 IVC from split accumulation

所谓split accumulation,又名folding scheme。
所谓IVC from split accumulation,是指在“约束满足性问题+信息理论模型”层进行递归。其将递归开销由3.2再降低了某constant size。
IVC from split accumulation,不仅不要求succinct verifier,还不要求succinct accumulation verifier,其仅需要a succinct representation of the accumulator witness。如witness为某R1CS assignment,只要可 以constant size group element来表示该witness的commitment——如Pederson commitment承诺方案,就适于split accumulation场景。

IVC from split accumulation 与 IVC from atomic accumulation的不同之处在于:

  • split accumulation不对整个proof进行累加,而仅对instance以及witness的commitment值进行累加
  • split accumulation verifier是tiny的,其仅需要关心constant size witness的commitments
  • split accumulation机制的Prover效率更高

[BCLMS21]对应2020年论文Proof-Carrying Data without Succinct Arguments:其牺牲了succinctness。
在这里插入图片描述

3.4 IVC from folding scheme

所谓IVC from folding scheme,与IVC from split accumulation类似,但在更高的“算术化表示”层进行递归。
在更高的"算术化表示"层进行递归,意味着在每个recursive step,Prover:

  • 无需计算和commit quotient多项式:可节约昂贵的如FFT计算
  • 无需做任何形式的proof计算
  • 直接接收relation(R1CS relation或Plonkish relation)
  • 仅需累加instance
  • 仅需对witness进行commit

如针对Plonkish算术化表示的Sangria和ProtoStar。在“算术化表示”层进行递归,存在的问题:

  • 无zero-knowledge属性:在每个recursive step,Prover仅需接收整个witness。而在atomic accumulation的Halo2中,每个recursive step中Prover仅需要previous step的proof。
    • folding scheme适于单个Prover计算大量recursive steps的场景。
  • 缺乏灵活性:folding scheme必须fold相同的电路。
    而IVC from split accumulation中,是对evaluation claims进行累加,所以任何commitment evaluation point和value均可累加——即均可fold。因此IVC from split accumulation的灵活性更强。
    在这里插入图片描述

根据在ZKP栈中不同的层进行fold:

  • 在越高的层进行fold,具有的Prover越快,但也会有一定的牺牲(如牺牲灵活性、zero-knowledge属性等)
  • 在越低的层进行fold,Prover在每个recursive step需做一些昂贵的运算(如FFT等)。不过对于FFT和MSM等运算,可借助GPU加速并行计算,当速度足够快时,可以向ZKP栈的更低层进行fold,这样就还可保持一些迷人的属性(如zero-knowledge属性等),这样有助于协作prover证明场景。

具体的方案有:
在这里插入图片描述

3.5 non-uniform IVC

在之前的IVC中,每个recursive step具有相同的computation,而non-uniform IVC,支持每个recursive step从 L L L个预定义的circuit中选择一个。
non-uniform IVC适于virtual machine应用场景,可将 L L L个电路 看成是 虚拟机的 L L L个opcode,这就意味着无需在每个step 用same huge circuit来表示整个虚拟机的逻辑,而可以在每个step选择特定的opcode,从而可节约大量的递归开销。

在这里插入图片描述
需注意的是,在non-uniform IVC中:

  • 需维护 L L L个累加器,每个累加器都具有constant size,对应的是very succinct commitments值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/619778.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

领跑云原生安全赛道!安全狗云甲获信通院多项荣誉认可

6月6日,ICT 中国2023高层论坛-云原生产业发展论坛在北京成功举办。 作为国内云原生安全领导厂商,安全狗受邀出席此次活动。 据悉,此次论坛主要包含论坛开幕式、成果发布、产业发展等三大部分。云原生领域领军智库、院士专家、企业高层等多位…

企业培训直播场景下嘉宾连线到底是如何实现的?

企业培训直播场景下,进行音视频连线的嘉宾,都拥有面向学员教学的权限,支持多位老师/专家异地同堂授课,那么,这种嘉宾连线到底是如何实现的? 企业培训,如何做到不受时间和地点限制,实…

数据单一触发数据库锁

【引言】 作为一名数据库开发人员或者管理员,那么你一定知道数据库锁在维护数据一致性中的作用。但是,你有没有想过,什么情况下会触发数据库锁呢? 本文将讲述一种常见的情况——数据单一触发数据库锁,并且分享如何避…

KDZD绝缘油介质损耗电阻率测试仪特点

一、概述 测试仪依据GB/T5654-2007《液体绝缘材料相对电容率、介质损耗因数和直流电阻率的测量》设计制造。用于绝缘油等液体绝缘介质的介质损耗因数和直流电阻率的测量。 一体化结构。内部集成了介损油杯、温控仪、温度传感器、介损测试电桥、交流试验电源、标准电容器、高阻计…

我用ChatGPT写2023高考语文作文(一):全国甲卷

2023高考全国甲卷语文作文题目: 人们因技术发展得以更好地掌控时间,但也有人因此成了时间的仆人。 这句话引发了你怎样的联想与思考?请写一篇文章。 要求:选准角度,确定立意,明确文体,自拟标题&…

Linux系统下SQLite创建数据库, 建表, 插入数据保姆级教程

1,创建数据库: sqlite test.db 我这边是sqlite2版本, 直接使用命令sqlite test.db创建一个名称为test的数据库; test是你自定义是数据库名, 创建好数据库后, 接下来开始创建表格 2.创建表格, 就是常规的sql建表语句 CREATE TABLE ids_logs ( english_details TEXT, chines…

LeetCode_数据结构设计_中等_173.二叉搜索树迭代器

目录 1.题目2.思路3.代码实现(Java) 1.题目 实现一个二叉搜索树迭代器类BSTIterator ,表示一个按中序遍历二叉搜索树(BST)的迭代器: BSTIterator(TreeNode root):初始化 BSTIterator 类的一个…

便捷工具箱(更新中)

遇到问题怎么办?不慌,我可以帮你解决 1.浏览器视频播放速度一般只有0.5x,1.0x,1.5x,2.0x四种选项,对于我们来说是不够用的,那该怎么办呢?别慌,有代码。 解决办法&#x…

Python3+Selenium2完整的自动化测试实现之旅(一):自动化测试环境搭建

引言 大多数人可能认为自动化测试很难,但是在我的实践中,我发现只要有正确的工具和环境,自动化测试其实并不困难。 本文将带领大家了解如何使用Python3和Selenium2搭建自动化测试环境,让你在未来的测试工作中事半功倍。作为一名…

安卓逆向 -- SO文件逆向分析

接上节课内容 安卓逆向 -- Frida环境搭建(HOOK实例) 安卓逆向 -- FridaHook某车udid的加密值 安卓逆向 -- FridaHook分析3DES加密值 一、上节课我们找到了get3deskey函数来自原生函数 二、解压apk文件,去lib文件里找到libnative-lib.so文件 三、将so文件拖入ida…

企业通常会采用什么方式与媒体建立关系?

传媒如春雨,润物细无声,大家好,我是51媒体网 胡老师。 媒体机构包括电视台、广播电台、报纸、杂志、网络媒体,视频媒体等。企业与媒体建立联系,可以提升品牌曝光度、塑造公众形象、传递企业信息、增加市场认知和促进业…

阿里云丁宇:云上开发成为主流,Serverless 定义新范式

今天,阿里云峰会粤港澳大湾区在广州开幕,阿里巴巴研究员、阿里云智能云原生应用平台总经理丁宇在论坛发言,他表示: Serverless 引领云上开发新范式,通过丰富的原子化服务,全托管、高弹性、免运维的优势&am…

【libdatachannel】俩client本机基于juice与QtSignalServer的ICE交互2

打印日志太多,【libdatachannel】俩client本机基于juice与QtSignalServer的ICE交互 1 死活发不出来。 客户端一系列的状态切换。 kY3k alloc: (location: 04259598) freed alloc: (location: 042629E0) allocated alloc: (location: 04262A50) allocated alloc: …

这才是打开Java面试的正确方式,秋招互联网大厂Java面试八股来袭

金三银四过后招聘旺季就到了,不知道大家是否准备好了,面对金九银十的招聘旺季,如果没有精心准备那笔者认为那是对自己不负责任;就我们 Java 程序员来说,多数的公司总体上面试都是以自我介绍项目介绍项目细节/难点提问基…

跳跳鱼视频处理大师Mac版,使用方法介绍

现在是短视频的时代,每个人都想通过视频来实现自己的营销目的,因此对于视频的使用非常的频繁,这也要求这方面的从业者需要掌握一些基础的视频处理技巧,这对我们在工作上会有很大的帮助。但是专门用于苹果电脑上的音频处理软件非常…

狂野java-MongoDB基本使用

NoSQL(非关系型数据库) 为什么使用NoSQL 扩容,操作简单分布式计算易扩展,因为 数据之间无关系无需建立字段,自定义数据格式支持大数据量,高性能(细粒度Cache) 缺点 有限的查询是…

Python3+Selenium2完整的自动化测试实现之旅(二):IE和Chrome浏览器驱动配置

引言 如果你正在进行自动化测试,那么你一定知道浏览器驱动是必不可少的。但是,不同的浏览器驱动配置可能会让你感到头疼。 在我前一篇文章中,我们已经学习了如何搭建自动化测试环境。今天,我将为大家分享如何配置IE和Chrome浏览…

一个合格的测试员需要注意些什么,测试总结

目录 前言: 沟通 用例设计 仔细检查你的文档 积累你的技术 发现问题之后 测试应该学些什么 职责决定价值 敏捷测试 敏捷测试人员的定义 结尾: 前言: 测试计划是软件测试流程中的一个重要步骤,它涉及到对软件产品进行全面的测试…

网络安全自学规划

01 什么是网络安全 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面…

集成运算放大器的线性应用

目录 1、运算电路基本认识 2、反向比例、同相比例运算电路 3、电压跟随器(同相比例的特例) 4、差分比例运算电路(减法运算电路) 5、积分、微分运算电路 1、运算电路基本认识 (集成运放工作在线性区) 两…