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

密码学系列 - 零知识证明(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.xdnf.cn/news/17990.html

相关文章:

  • docker常用命令详解
  • Rust Async 异步编程(一):入门
  • BEVFormer论文速读
  • Day07 缓存商品 购物车
  • 编程算法实例-求一个整数的所有因数
  • 【Jenkins】01 - Jenkins安装
  • 【远程桌面】从RustDesk服务器看UDP对比WebRTC
  • 文本邮箱提取工具
  • gin结合minio来做文件存储
  • 3.逻辑回归:从分类到正则化
  • 快速了解均值滤波处理
  • 基础IO_系统文件IO | 重定向【Linux】
  • 一周学会Matplotlib3 Python 数据可视化-多子图及布局实现
  • 弱类型语言(Strong Typing)与强类型语言(Weak Typing)(描述语言对变量类型处理的严格程度)
  • 7.Ansible自动化之-实施任务控制
  • 工具测试 - marker (Convert PDF to markdown + JSON quickly with high accuracy)
  • 本地处理不上传!隐私安全的PDF转换解决方案
  • 【Netty核心解密】Channel与ChannelHandlerContext:网络编程的双子星
  • 最优化:建模、算法与理论|02 Optimization Modeling and Typical Examples(1)
  • ReID/OSNet 算法模型量化转换实践
  • 芋道RBAC实现介绍
  • 基于Node.js+Express的电商管理平台的设计与实现/基于vue的网上购物商城的设计与实现/基于Node.js+Express的在线销售系统
  • css: word pacing属性
  • 【原理】C#构造函数可以标记为Static吗
  • Oracle Undo Tablespace 使用率暴涨案例分析
  • Java 方法引用详解
  • Vue.js 路由/redirect重定向刷新机制详解
  • 新的“MadeYouReset”方法利用 HTTP/2 进行隐秘的 DoS 攻击
  • linux-高级IO(上)
  • 数据结构4线性表——顺序栈