当前位置: 首页 > news >正文

密码学系列 - 零知识证明(ZKP) - 多种承诺方案

在 ZKP 中使用的承诺方案的示例

  • 基于哈希的承诺:证明者生成他们希望承诺的值的加密哈希,并将该哈希发送给验证者。然后,证明者可以稍后显示该值,验证者可以验证显示的值是否与哈希匹配。
  • Pedersen 承诺:证明者通过将随机值与生成器相乘并添加他们希望承诺的值来生成承诺。证明者可以稍后通过显示随机值和生成器来显示该值,验证者可以验证显示的值是否与承诺匹配。
  • 多项式承诺:在多项式承诺中,证明者通过提供对多项式系数的承诺来对多项式做出承诺验证者稍后可以通过检查多项式在特定点的计算结果是否为特定值来验证承诺
    • 在 ZKP 中使用多项式承诺,可以通过向验证者隐藏多项式系数的值来提供隐私性,并通过确保只有知道系数值的人才能做出承诺来提供可验证性。多项式承诺是各种零知识证明系统(包括 zk-SNARK 和 zk-STARK)的重要组成部分,使它们能够实现简洁性。

多种 多项式承诺 方案

最常用的方法有FRI承诺、KZG10承诺、IPA承诺、DARKS承诺(基于格)等,其中,

  • FRI承诺是基于哈希函数实现的
  • KZG10承诺是基于配对组实现的
  • IPA承诺是基于离散日志组实现的
  • DARKS承诺是基于未知订单组实现的。

构造 SNARKs 的4种类型

有四种类型的假设被用来构造 SNARKs,或者更普遍地说,有四种类型的假设被用来构造初始化式承诺方案

  • 基于配对的,我们有(多项式承诺)KZG及其变体(KZG10)。(Halo 和 Halo 2 采用椭圆曲线配对和多项式承诺)
  • 基于离散对数的,我们有基于IPABulletproofs及其变体。
  • 基于哈希的方案,我们有FRI和许多其它的方案。使用Arc折叠
  • 基于格 (格哈希非常快,比普通哈希快), DARKS

FRI承诺

FRI即Fast Reed-Solomon IOPP,FRI承诺的核心是对要承诺的多项式进行“折叠”,通过“折叠”将一个计算次数很高的多项式逐步转化为计算次数较低、验证者可以接受的计算复杂度的多项式。

  • Reed-Solomon (一种纠删码, 基于离散傅里叶变换的系统 , 复制因子是 1/2)

KZG10承诺

KZG承诺[插图]基于配对组,其主要优点是承诺和打开仅由恒定数量的群元素组成,缺点是它需要一个结构化参数字符串,其长度与承诺的多项式系数的数量一样长

与FRI承诺相比,KZG10承诺有一些独特的功能,它不是对某个字节做出的承诺,而是对多项式的承诺。此外,由于KZG承诺是基于配对的,其证明规模恒定,为单个椭圆曲线组元素数量,验证时间恒定,所以仅需进行两次配对操作

image-20250202131503646

image-20250202131639879

IPA承诺

零知识证明BulletProofs、Halo2算法的核心是IPA承诺,也称内积证明。IPA承诺的安全假设较少,不需要配对,也不需要可信设置。

不同 多项式承诺方案 的对比

3.4.4 不同方案的对比不同的零知识证明算法的关键差别,是它们采用了不同的多项式承诺方案。

image-20250202132446907

image-20250202132530842

KZG承诺方案在简洁方面是最好的,因为它的证明规模和验证时间都是恒定的,这意味着电路规模的增加不会导致证明规模的增加。其他多项式承诺方案的证明规模与电路规模有关,这意味着证明规模会随着电路规模的增大而增大。但是在安全性方面,KZG承诺方案与其他方案相比较差,因为它需要第三方可信设置。


往期精彩回顾:
区块链知识系列
密码学系列
零知识证明系列
共识系列
公链调研系列
BTC系列
以太坊系列
EOS系列
Filecoin系列
联盟链系列
Fabric系列
智能合约系列
Token系列
http://www.lryc.cn/news/623927.html

相关文章:

  • Java ConcurrentHashMap 深度解析
  • 【LeetCode 热题 100】(八)二叉树
  • EC11编码器
  • 集成电路学习:什么是SIFT尺度不变特征变换
  • 43 C++ STL模板库12-容器4-容器适配器-堆栈(stack)
  • 基于DSP+ARM+FPGA架构的储能协调控制器解决方案,支持全国产化
  • 电子电气架构 --- 自动驾驶汽车的下一步发展是什么?
  • 下降路径最小和
  • 【网络通信】TCP/IP 协议全方位解析​
  • java如何把字符串数字转换成数字类型
  • OpenCV 图像处理核心技术:边界填充、算术运算与滤波处理实战
  • android aidl相关学习
  • 常用的SQL语句
  • java16学习笔记
  • topographic terrain
  • AMBA-AXI and ACE协议详解(七)
  • 计算机网络---跳板机与堡垒机
  • 如何理解事件循环和JS的异步?
  • Oracle查看历史会话信息视图介绍
  • 深入理解QFlags:Qt中的位标志管理工具
  • Springboot项目3种视图(JSP、Thymeleaf、Freemarker)演示
  • 【SpringBoot】SpringBoot的异步任务、邮件发送、定时任务
  • Spring Bean 的生命周期:从创建到销毁的完整旅程​
  • 好看的个人导航系统多模板带后台
  • React端到端测试
  • 通达信【牛股妖股埋伏】副图+选股指标
  • Shell脚本-while循环应用案例
  • nn.Module模块介绍
  • 计算机视觉(一):nvidia与cuda介绍
  • OpenMemory MCP发布!AI记忆本地共享,Claude、Cursor一键同步效率翻倍!