1. 背景知识

Groth 2010年论文《Short Pairing-based Non-interactive Zero-Knowledge Arguments》

  • 使用了common reference string,需要trusted setup,且common reference string很大【可优化,见论文第九章】;
  • Sub-linear size non-interactive zero-knowledge arguments,若common reference string足够大的化,proof可为a constant number of group elements;
  • Public verification;
  • 基于pairing-based cryptography;
  • 没有使用Fiat-Shamir假设or random oracles,而使用了q-CPDH(q-power knowledge of exponent assumption)和q-PKE(q-computational power Diffie-Hellman assumption)。


    Zero-knowledge proofs有三个主要特性:
  • Completeness: The prover can convince the verifier if the prover knows a witness testifying to the truth of the statement.
  • Soundness: A malicious prover cannot convince the verifier if the statement is false. Soundness可分为computational soundness(protect against polynomial time cheating provers,computationally sound proofs又可称为arguments)和statistical or perfect soundness(此时,even an unbounded prover cannot convince the verifier of a false statement)。
  • Zero-knowledge: A malicious verifier learns nothing except that the statement is true. 也可分为computational zero-knowledge和statistical or perfect zero-knowledge。

基于标准密码学假设的NIZK proofs在实际使用是效率低下并不实用,为了解决效率问题:
1)应用密码学专家引入了Fiat-Shamir heuristic for transforming public-coin interactive zero-knowledge proofs into NIZK arguments by using a cryptographic hash-function to compute the verifier’s challenges. 但是Groth认为实际中,random oracle model安全并不意味着有相应的hash function能实际达到安全。所以在该论文中,Groth介绍了一种新的不基于random oracle model但仍然可以实现sub-linear size NIZK arguments的方法,尽管其效率不如基于Fiat-Shamir heuristic的NIZK argument。
[The Fiat-Shamir heuristic can give very efficient NIZK arguments that are secure in the random oracle model [BR93], where the cryptographic hash-function is modeled as a random function. It is for instance possible to use the Fiat-Shamir heuristic to transform sub-linear size interactive public-coin zero-knowledge arguments [Kil92] into sub-linear size non-interactive zero-knowledge arguments [Mic00]. Unfortunately, there are several examples of protocols that are secure in the random oracle model, but do not have any secure standard model instantiation no matter which hash-function is used [CGH98,CGH04,MRH04,BBP04,Nie02]. Particularly relevant here is Goldwasser and Kalai’s [GK03] demonstration of a signature scheme built from a public-coin identification scheme that is secure in the random oracle model but insecure in real life. While it is possible that the Fiat-Shamir heuristic is secure for “natural” protocols, it is worthwhile to investigate alternative approaches.]
2)为了解决传统NIZK proof的效率问题,可采用non-interactive designated verifier proofs,而不是public verifiable。但是在需要环签名、群签名等场景的应用中,designated verifer设计并不适用。

有一个二进制circuit C,其内部均为与非门组成 a = ~(a ^ b),存在某个输入,使得最终Circuit C的输出为1。

在有限域内,对n个值进行commit成a constant number of group elements来实现length-reducing。同时所采用的commitment scheme应具有同态性,可对committed values证明如下属性:

该论文中,采用的commitment scheme为Pedersen commitment scheme,其中commitment key为(g,gx,gx2,…,gxq)(g,g^x,g^{x^2},…,g^{x^q})(g,gx,gx2,…,gxq),对(a1,a2,…,aq)(a_1,a_2,…,a_q)(a1​,a2​,…,aq​)commit a single group element为gr∏i=1q(gxi)aig^r\prod_{i=1}^{q}(g^{x^i})^{a_i}gr∏i=1q​(gxi)ai​。采用这种commitment scheme的优点是,其discrete logarithm是一个简单的多项式r+∑i=1qaixir+\sum_{i=1}^{q}a_ix^ir+∑i=1q​ai​xi,当pair two commitments with each other时,得到的是a product of two polynomials in exponent(可通过合理组合表达多项式的系数,使得乘积后的一些系数可cancel掉,来达到简洁表达entry-wise product和permutation non-interactive argument的目的)。By taking appropriate linear combinations over products of polynomials, we can express entry-wise products and permutations as equations over the coefficients of these polynomials. The q-CPDH assumption then allows us to conclude that these coefficients are identical and therefore the committed values satisfy an entry-wise multiplication relationship or a permutation relationship to each other.

对(a1,a2,…,aq)(a_1,a_2,…,a_q)(a1​,a2​,…,aq​)commit为 c=gr∏i=1q(gi)aic=g^r\prod_{i=1}^{q}(g_i)^{a_i}c=gr∏i=1q​(gi​)ai​【其中,gi=gxig_i=g^{x^i}gi​=gxi】,同时,考虑到在3SAT证明时,需要能够extract the committed values a1,a2,…,aqa_1,a_2,…,a_qa1​,a2​,…,aq​,对此,额外增加一个关联的commitment c^=g^r∏i=1q(gi^)ai\hat{c}= \hat{g}^r\prod_{i=1}^{q}(\hat{g_i})^{a_i}c^=g^​r∏i=1q​(gi​^​)ai​【其中,g^=gα,gi^=(gi)α\hat{g}=g^{\alpha},\hat{g_i}=(g_i)^{\alpha}g^​=gα,gi​^​=(gi​)α】,整个(c,c^)(c,\hat{c})(c,c^)即称为knowledge commitment.

Restriction Argument:

2. Hadamard Product argument


注意:for i∈[n],gxi(n+2)i \in [n], g^{x^{i(n+2)}}i∈[n],gxi(n+2)应不包含在CRS中 ,否则dishonest prover可以作弊。具体可看Lipmaa 2012年论文《Progression-Free Sets and Sublinear Pairing-Based Non-Interactive Zero-Knowledge Arguments 》





  • 其中π^\hat{\pi}π^【knowledge commitment】和π˙\dot{\pi}π˙【restriction argument】用于辅助证明prover确实知道π\piπ对应的opening (z,{zl}l∈S˙)(z,\{z_l\}_{l\in \dot{S}})(z,{zl​}l∈S˙​) restricted in S˙\dot{S}S˙。
  • 其中2个commitment c和vc和vc和v 对应S~\tilde{S}S~,1个commitment ddd 对应Sˉ\bar{S}Sˉ。S~\tilde{S}S~和Sˉ\bar{S}Sˉ之间的commitment可以直接相互转换。若已知vvv【对应S~\tilde{S}S~】和ddd【对应Sˉ\bar{S}Sˉ】,可认为vvv为ddd和c=∏i∈[n]gic=\prod_{i\in [n]}g_ic=∏i∈[n]​gi​【此处,ccc可认为是(1,...,1)(1,...,1)(1,...,1)的commitment】的product commitment。

3. product argument作为bits证明

上述的product argument可用于证明ccc为bits (a1,a2,...,an)(a_1,a_2,...,a_n)(a1​,a2​,...,an​) 的commitment,方法为:
构建commitment ddd具有与ccc相同的元素,证明ccc和ddd的product commitment仍为ccc,则有ai=ai2a_i=a_i^2ai​=ai2​,从而可证明ai∈{0,1}a_i\in\{0,1\}ai​∈{0,1}。

4. Permutation Argument

证明b⃗\vec{b}b为a⃗\vec{a}a的排列组合,具体可表述为:

进一步可转换为证明:


5. CIRCUITSAT argument——Circuit Satisfiability Constant Size NIZK Argument



6. vector完全相同证明

证明两组向量a⃗\vec{a}a和b⃗\vec{b}b完全相同,可表述为:

Short Pairing-based Non-interactive Zero-Knowledge Arguments相关推荐

  1. Electric device abnormal detection based on IoT and knowledge graph-学习笔记

    Electric device abnormal detection based on IoT and knowledge graph In this paper, we propose an ele ...

  2. Subvector Commitments with Application to Succinct Arguments学习笔记

    1. 背景知识 Russell W. F. Lai 和 Giulio Malavolta 在Crypto 2019上发表的论文<Subvector Commitments with Applic ...

  3. qesa Efficient zero-knowledge arguments in the discrete log setting 学习笔记

    1. 引言 Hoffmann等人 2019年论文 <Efficient zero-knowledge arguments in the discrete log setting >. 相应 ...

  4. 【论文整理】Interactive Segmentation

    文章目录 1. click & scribble <Interactive graph cuts for optimal boundary & region segmentati ...

  5. Compact Multi-Signatures for Smaller Blockchains学习笔记

    1. 引言 Boneh等人2018年论文<Compact Multi-Signatures for Smaller Blockchains> 在<Simple Schnorr Mul ...

  6. 云中「秘密」:构建非交互式零知识证明---探索零知识证明系列(五)

    本文作者:郭宇 Once exposed, a secret loses all its power. 一旦泄露,秘密就失去了全部威力 ― Ann Aguirre 这已经是本系列的第五篇文章了,这一篇 ...

  7. 用YACC/LEX 设计计算机语言

    用YACC/LEX 设计计算机语言 前言: YACC (Yet Another Compiler Compiler) 是1974年在 Unix 下设计出来的一个优秀的计算机语法分析工具.LEX 是相应 ...

  8. 单击屏幕亮屏流程分析

    一. kernel部分 1.看TP驱动有没有事件上报  cat /dev/input/evnet1  或者看kernel log [ 4036.282237] bt541_ts_device 5-00 ...

  9. 自适应学习系统_如何建立适应性学习系统

    自适应学习系统 Have you ever started a course, but thought it was too slow? Or too difficult? Wish you coul ...

  10. 双变量polynomial commitment

    1. 引言 本博文主要研究的是 Benedikt Bünz 等人(standford,ethereum,berkeley) 2019年论文<Proofs for Inner Pairing Pr ...

最新文章

  1. 满12万送Mate 30 Pro?华为云“双十一”20+款明星产品齐上线
  2. IT项目管理总结:第二章 项目管理和IT背景
  3. .Net Core小技巧 - Hosted Services + Quartz实现定时任务调度
  4. php内置的数组函数大全,php数组的内置函数大全
  5. 对象流 ObjectInputStream java
  6. a1 抛光等级spi_抛光等级对照表
  7. error LNK2019: unresolved external symbol __imp__JNI_CreateJavaVM@12 referenced in function _wmaim
  8. 计算机的网络测速,电脑怎么网络测速
  9. STM32L4系列二、STM32CubeMX 图形配置工具基本操作过程
  10. Windows电脑端有什么好用的便签工具?
  11. 代码与国家地区对照表
  12. Cocos2d-x 中文标题设置
  13. 机器学习算法_Quora上的大牛们最喜欢哪种机器学习算法?
  14. HTML入门学习线路图
  15. NLP领域表达退化各向异性理解及对应策略总结
  16. Qt 之 打开exe程序
  17. UVC(USB Video Class)协议讲解
  18. LTE Paging
  19. 阿里云天池超级码力在线编程大赛初赛 第2场 ABCD(A.计算几何 判断点在三角形内 D.大施罗德数/超级卡特兰数)
  20. 常用oracle数据库查询命令

热门文章

  1. Windows中Redis的下载安装与修改密码并启动
  2. Wow~70G上市公司定期报告数据集!
  3. 如何将接近开关作为限位开关连接?
  4. CSS进阶 如何实现圆形半圆
  5. RPG游戏制作-03-人物行走及A*寻路算法
  6. openstack常用命令
  7. 继电器在交流应用时的zero-crossing
  8. Mac下用android studio创建安卓模拟器
  9. 强化学习——Modle-free DRL算法
  10. 前端架构师的YY定义