1. 背景知识

Russell W. F. Lai 和 Giulio Malavolta 在Crypto 2019上发表的论文《Subvector Commitments with Application to Succinct Arguments》中主要关注的是subvector commitment (SVC):

  • SVC允许open a committed vector at a set of positions,且opening size与vector的size以及要open的位置数均无关。
  • subvector commitment based on root assumption (RSA assumption),同时将其推广到work over modules over Euclidean rings。
  • subvector commitment based on CubeDH assumption。
  • Linear map commitment (LMC):allow to open a committed vector to its images under linear maps with a single short message, and propose a construction over pairing groups。
  • CS proof:使用Fiat-Shamir transform in the random oracle model 来构建non-interactive argument。
  • 本文提出使用SVC来实现将PCP转换为non-interactive argument。
  • 在该文第8章提出了一些可供被选定module families。

SVC可看成是支持batch opening和batch updating的VC。

Dario Catalano 和 Dario Fiore 2013年论文《Vector Commitments and their Applications》(参见博客 Vector Commitments and their Applications学习笔记)的算法无法实现reveal multiple locations of the committed vector(除非repeat the protocol in parallel,但是相应opening size会grow linearly with the amount of revealed locations。)。

Benoˆıt Libert, Somindu C. Ramanna 和 Moti Yung 2016年论文 《Functional Commitment Schemes: From Polynomial Commitments to Pairing-Based Accumulators from Simple Assumptions》(参见博客 Functional Commitment Schemes: From Polynomial Commitments to Pairing-Based Accumulators学习笔记)的算法无法实现reveal multiple function outputs (除非repeat the protocol in parallel,但是相应opening size会grow linearly with the amount of revealed function outputs。)。
从中可观察其open 单独位置时,其verification equation e(C,Un−i+1)=e(G1,Un)mi⋅e(g,Wi)e(C,U_{n-i+1})=e(G_1,U_n)^{m_i}\cdot e(g,W_i)e(C,Un−i+1​)=e(G1​,Un​)mi​⋅e(g,Wi​) 为mim_imi​的线性方程式,a natural way to support batching openings is to define the new verification equation as a random linear combination of previous ones。从而要求,在public parameters中嵌入a secret linear combination,and show that the resulting construction is function binding in the generic bilinear group model。

现有各方案对比(vector length为 lll ,open位置数为 qqq )

其中:

  • public-coin setup 是指:Prover和Verifier之间不共享任何信息,除了the statement xxx to be proven。(如基于CRH assumption和Root assumption的情况。)
  • private-coin setup即pre-processing model:Prover和Verifier需共享由可信第三方生成的common reference string(该common reference string可能与language LLL 和statement xxx相关。)。

目前的SNARK (succinct non-interactive argument of knowledge )方案,基于pre-processing model的方案,无论在communication还是在computation效率上,都要优于基于public-coin-setup 的方案。相当于,将verifier的一些工作转移给了offline preprocessing 阶段,从而减少整个online phase的工作量。
但在cryptocurrency等应用场景,则需要public-coin setup,可借助random oracle来实现public initialize。

1.1 public-coin-setup SNARK (Bulletproof)

在standard model下不存在public-coin-setup的non-interactive argument for NP,但是在random oracle model情况下可以存在。

通过“CS proof”(computationally sound proof) paradigm based on probabilistically checkable proof (PCP) 来构建public-coin-setup SNARK,分两步来实现:【通常,该argument system有public-coin verifier,且可利用Fiat-Shamir transform来实现non-interactive。】

  • 将PCP转换为interactive argument system:Prover commit to the PCP string(通常使用Merkle-tree commitment);Verifier 发送 the indices of the entries to be inspected;Prover open the commitment at these entries。【若为qqq-query PCP,对应的inspect entries的个数最多为qqq。】
  • By inspecting the revealed entries, the verifier can decide whether the statement is valid。

根据Micali 1994年论文《CS proofs (extended abstracts)》可知,在CS proof paradigm中,a proof 的组成有:

  • λ\lambdaλ-bit Merkle-tree commitment of a lll-bit PCP string;
  • qqq bits of the PCP string;
  • qqq openings of the commitment,each of size λlog⁡l\lambda\log lλlogl bits。

对于qqq-query 2−σ2^{-\sigma}2−σ-soundness PCP scheme, allows the prover to efficiently compute a PCP strign which encodes the witness of the sttement to be proven, the verifier can then decide wheteher the statement is true with probability close to 1−2−σ1-2^{-\sigma}1−2−σ by inspecting qqq entries of the PCP string。
具体地,对于333-query PCP and l=230l=2^{30}l=230, for 2−802^{-80}2−80-soundness against a 21282^{128}2128-time adversary, the proof size is around 113KB。

截止目前为止,Bulletproof 【主要论文为Jonathan Bootle等人2016年论文《Efficient zero-knowledge arguments for arithmetic circuits in the discrete log setting》和Benedikt Bunz、Jonathan Bootle等人2018年论文《Bulletproofs: Short proofs for confidential transactions and more》】为目前为止最使用的non-interactive argument,尽管Bulletproof具有linear verification time问题(因此不能称为SNARK)。Bulletproof中的proof有 2log⁡n+132\log n+132logn+13 (group and field) elements, where nnn is the number of multiplication gates in the arithmetic circuit representation of the verification algorithm of LLL。基于secp256k1实现的Bulletproof中,每个group element和integer可由 ∼256\sim 256∼256 bits,所以整个proof 大约有512log⁡n+3328512\log n+3328512logn+3328 bits。

1.2 Pre-Processing SNARK

自Gennaro等人2013年论文《Quadratic span programs and succinct NIZKs without PCPs》起,有大量SNARK出现 based on pairings and linear interactive proofs (LIP) in pre-processing model。其中linear interactive proofs (LIP)可从linear PCPs中获得。
Linear PCP=传统PCP + encode PCP string in a linear form。在qqq-query linear PCP中,Verifier可oracle access to the linear form,然后仅需qqq queries就可以以overwhelming probability来确定statement 的真实性。这种类型的SNARK存在的一个典型的问题为:需要有昂贵的pre-processing phase,且该pre-processing为statement-dependent的,意味着每证明一种statement,就需要建立相应的public parameters。
基于Danezis等人2014年论文《Square span programs with applications to succinct NIZK arguments》可构建standard model下具有最短proof(4 group elements)的SNARK。
而在generic bilinear group model情况下,Groth 2016年论文《On the size of pairing-based non-interactive arguments》中指出,基于LIP的SNARK proof至少具有2个group elements,同时proposed a scheme with only 3 group elements。该scheme可基于pairing-friendly elliptic curve来实现,比较流行的曲线有256-bit Barreto-Naehrig curve(每个group element 由256bit表示)等。

1.3 public-coin-setup SVC based on Cl(Δ)Cl(\Delta)Cl(Δ)

Cl(Δ)Cl(\Delta)Cl(Δ)表示:class group of imaginary quadratic order with discriminant Δ\DeltaΔ。

Prover的computation压力和proof的长度之间需要平衡:
若可接受expensive prover computation,追求extremely short proof,则可将333-query 2−12^{-1}2−1-soundness PCP 放大为 3σ3\sigma3σ-query 2−σ2^{-\sigma}2−σ-soundness PCP,实现shortest SNARK。Hamdy 2000年论文《Security of cryptosystems based on class groups of imaginary quadratic orders》中指出,based on the best known attacks on the root problem in class groups, for a soundness error of 2−802^{-80}2−80 against a 21282^{128}2128-time adversary, 可获得的proof size为5360 bits。【当n>16n>16n>16时,其proof长度要短于Bulletproof。】

1.4 pairing-based public-coin-setup SVC


如Bitansky等人2013年论文《Succinct non-interactive arguments via linear interactive proofs》中基于pairing group over 256-bit Barreto-Naehrig curve可实现5 elements(1280 bits)的proof。
与Groth 2016年论文《On the size of pairing-based non-interactive arguments》相比,本论文构建的compiler可支持任意linear PCPs,且不要求verifier仅能evaluate quadratic polynomials。
现有各方案的对比:

而且本论文的setup phase与待证明的statement无关,所以相同的public parameters可重复用于证明不同的statement。
通过a higher prover complexity和使用密码学public-key技术,本问可实现更短的proof,同时支持更广类型的PCP(与schemes under the CS proofs paradigm和pairing-based schemes相比)。

SVC为当前社区关注的热点,Boneh等人2018年论文《Batching techniques for accumulators with applications to iops and stateless blockchains》展示的是how SVCs can be used as a drop-in replacement for Merkle-trees in SNARKs based on interactive oracle proofs(IOPs) which generalizes PCPs,利用class group-based SVCs 结构reduce the proof size to (r+1)(r+1)(r+1) group elements and rrr integers,其中 rrr 表示 the number of iterations of the underlying IOP。Boneh还提出了可用于提高verification algorithm效率的方法,预计可将verification time下降约8080%80,并指出可使用SVC来改进the current design of blockchain-based transaction ledger in such a way that no user has to store the entire state of the ledger in memory。

Benoˆıt Libert, Somindu C. Ramanna 和 Moti Yung 2016年论文《Functional Commitment Schemes: From Polynomial Commitments to Pairing-Based Accumulators from Simple Assumptions》中实现了accumulator for subset query(参见博客 Functional Commitment Schemes: From Polynomial Commitments to Pairing-Based Accumulators学习笔记 5.3节内容“Functional commitment构建支持subset query的accumulator”),与SVC最大的不同是不具有position binding属性。

1.5 一些定义

  • subvector 定义:

  • argument of knowledge定义:

  • probabilistic checkable proof (PCP) 定义:

  • proof of knowledge 定义:

  • linear PCP 定义:

  • 数学背景知识:

  • (Public-Coin) Adaptive Root 定义:

    即(Public-Coin) Adaptive Root可概括为:已知eee和XXX值,求相应的YYY值使得e∘Y=Xe\circ Y=Xe∘Y=X成立的概率可忽略。

  • (Public-Coin) Strong Distinct-Prime-Product (Divisible) Root 定义:

    即Strong Distinct-Prime-Product (Divisible) Root可概括为:不存在co-prime (e1,⋯,el)(e_1,\cdots,e_l)(e1​,⋯,el​)和YYY,使得AAA可分解表示为(∏i∈Sei)∘Y(\prod_{i\in S}e_i)\circ Y(∏i∈S​ei​)∘Y。

  • subvector commitment 定义:

  • Linear Map Commitments (LMC) 定义:

2. subvector commitment (SVC)

subvector commitment (SVC) 定义为:
commit to a vector x⃗\vec{x}x of length lll,然后允许open to a subvector of an arbitrary length ≤l\leq l≤l。
Given an ordered index set I⊆[l]I\subseteq [l]I⊆[l], define the III-subvector of x⃗\vec{x}x as the vector formed by collecting the iii-th component of x⃗\vec{x}x for all i∈Ii\in Ii∈I。

2.1 SVC succinct

SVC应succinct:

  • commitment size与vector length lll 无关;
  • opening proof size与vector length lll 无关;
  • opening proof应具有compactness,其size应与要open的位置数 qqq 无关。

本文将SVC的概念归纳为 linear map commitments (LMC),即:
允许prover reveal arbitrary linear maps f:Fl→Fqf:\mathbb{F}^l\rightarrow\mathbb{F}^qf:Fl→Fq computed over the committed vector。

为满足SVC的succinct特性,相应地要求LMC为be compact,其commitment size和proof size与 lll 和 qqq 均无关。SVC看做LMC的话,要求linear map 可以矩阵表示,该矩阵内每行只有一个111,其它均为000。

2.2 SVC function binding

function binding为position binding的加强版。
直观的,对于position binding,以LMC表示时,Prover cannot open a commitment to (f,y⃗)(f,\vec{y})(f,y​) and (f,y⃗′)(f,\vec{y}^{'})(f,y​′) with y⃗≠y⃗′\vec{y}\neq\vec{y}^{'}y​​=y​′,其中 fff 为linear map,y⃗,y⃗′∈Fk\vec{y},\vec{y}^{'}\in{\mathbb{F}^k}y​,y​′∈Fk 为vectors。
仅如上一条约束仍然不够,Prover 通过form an inconsistent system of linear equations的方式,可能存在open to (f,y⃗)(f,\vec{y})(f,y​) and (f′,y⃗′)(f^{'},\vec{y}^{'})(f′,y​′) with f≠f′f\neq f^{'}f​=f′ and y⃗≠y⃗′\vec{y}\neq\vec{y}^{'}y​​=y​′。

从而要求SVC应具有function binding 属性:
no efficient algorithm can produce openings for QQQ function-value tuples {(fk,y⃗k)}k∈[Q]\{(f_k,\vec{y}_k)\}_{k\in[Q]}{(fk​,y​k​)}k∈[Q]​ for any Q∈poly(λ)Q\in poly(\lambda)Q∈poly(λ), such that there does not exist x⃗\vec{x}x with fk(x⃗)=y⃗kf_k(\vec{x})=\vec{y}_kfk​(x)=y​k​ for all k∈[Q]k\in [Q]k∈[Q]。【即要求open QQQ组信息时,不存在统一的x⃗\vec{x}x满足所有open linear function fkf_kfk​。】

3. subvector commitment based on root assumption over Euclidean ring


具体实现如上图所示。
其中:

  • (e1,⋯,el)(e_1,\cdots,e_l)(e1​,⋯,el​)为 lll 个不同的co-prime素数。
  • setup阶段的SiS_iSi​构建方式为:Si=(∏j∈[l]∖{i}ej)∘X=(∏j∈Iej∏j∈[l]∖(I∪{i})ej)∘XS_i=(\prod_{j\in [l] \setminus \{i\}}e_j) \circ X=(\prod_{j\in I}e_j \prod_{j\in [l] \setminus (I\cup \{i\})}e_j) \circ XSi​=(∏j∈[l]∖{i}​ej​)∘X=(∏j∈I​ej​∏j∈[l]∖(I∪{i})​ej​)∘X。【由于(e1,⋯,el)(e_1,\cdots,e_l)(e1​,⋯,el​)为distinct co-prime,从而使得计算的SiS_iSi​具有position binding属性。】
  • setup阶段的HHH可为:
    1)non-cryptographic hash:secure if the strong distinct-prime-product root assumption hold over the module family RDR_DRD​。
    2)random oracle:secure if the adaptive root problem is hard over the module family。
  • open阶段的proof:ΛI=(∏i∈Iei)−1∘<x⃗[l]∖I,S⃗[l]∖I>\Lambda_I=(\prod_{i\in I}e_i)^{-1}\circ <\vec{x}_{[l]\setminus I}, \vec{S}_{[l]\setminus I}>ΛI​=(∏i∈I​ei​)−1∘<x[l]∖I​,S[l]∖I​>
  • Verify阶段,基于adaptive root assumption,除非Prover真的知道相应的witness x⃗\vec{x}x 从而提供正确的ΛI\Lambda_IΛI​值,否则等式C=<x⃗I‘,S⃗I>+(∏i∈Iei)∘ΛIC=<\vec{x}_I^{‘},\vec{S}_I>+(\prod_{i\in I} e_i)\circ \Lambda_IC=<xI‘​,SI​>+(∏i∈I​ei​)∘ΛI​成立的概率可忽略。

4. subvector commitment based on CubeDH assumption over pairing group


为便于描述,采用的是对称pairing group来示例,如上图所示。
其基本实现思路与Dario Catalano 和 Dario Fiore 2013年论文《Vector Commitments and their Applications》中的“基于CDH的Vector Commitment实现”类似——基于的是Square-CDH assumption:已知g,ga∈Gg,g^{a}\in\mathbb{G}g,ga∈G,要计算ga2g^{a^2}ga2的值为computationally infeasible。(参见博客 Vector Commitments and their Applications学习笔记 第2.1节内容)

不同之处在于:

  • 为了支持batch open和batch verify,相应的计算由“Λi=∏j∈[l],j≠iHi,jxj\Lambda_i=\prod_{j\in [l], j\neq i}H_{i,j}^{x_j}Λi​=∏j∈[l],j​=i​Hi,jxj​​,验证e(C/Gixi,Gi)=e(Λi,G)e(C/G_i^{x_i},G_i)=e(\Lambda_i,G)e(C/Gixi​​,Gi​)=e(Λi​,G)成立”,改为,“对集合III的batch open ΛI=∏i∈I∏j∈[l],j∉IHi,jxj\Lambda_I=\prod_{i\in I}\prod_{j\in [l],j\notin I}H_{i,j}^{x_j}ΛI​=∏i∈I​∏j∈[l],j∈/​I​Hi,jxj​​,batch verifiy e(C∏i∈IGixi,∏iGi)=e(ΛI,G)e(\frac{C}{\prod_{i\in I}G_i^{x_i}},\prod_{i}G_i)=e(\Lambda_I,G)e(∏i∈I​Gixi​​C​,∏i​Gi​)=e(ΛI​,G)”。
  • 为了实现多个位置的position binding属性(即batch open & batch verify), 本论文基于的为cube Diffie-Hellman (CubeDH) assumption:已知g,ga∈Gg,g^{a}\in\mathbb{G}g,ga∈G,要计算ga3g^{a^3}ga3的值为computationally infeasible。在该论文中的Theorem 3中采用了归谬法的方式来证明,若对交集位置可open为不同的值,则需要知道相应的ga3和ga2g^{a^3}和g^{a^2}ga3和ga2。

5. linear map commitment (LMC) 的构建

本文LMC的构建方式受到Benoˆıt Libert, Somindu C. Ramanna 和 Moti Yung 2016年论文 《Functional Commitment Schemes: From Polynomial Commitments to Pairing-Based Accumulators from Simple Assumptions》启发,并基于以下观察:

  • 当vectors x⃗,f⃗∈Fl\vec{x},\vec{f}\in\mathbb{F}^lx,f​∈Fl 分别采用多项式px⃗(α)=∑j∈[l]xjαjp_{\vec{x}}(\alpha)=\sum_{j\in [l]x_j\alpha^j}px​(α)=∑j∈[l]xj​αj​和pf⃗(α)=∑j∈[l]fjαl+1−jp_{\vec{f}}(\alpha)=\sum_{j\in [l]}f_j\alpha^{l+1-j}pf​​(α)=∑j∈[l]​fj​αl+1−j来编码,则多项式乘积px⃗(α)pf⃗(α)p_{\vec{x}}(\alpha) p_{\vec{f}}(\alpha)px​(α)pf​​(α) 生成的多项式中αl+1\alpha^{l+1}αl+1 项的系数为<x⃗,f⃗><\vec{x}, \vec{f}><x,f​>(inner product)。
  • 因多项式乘积具有linearity,对矩阵F∈Fq×lF\in\mathbb{F}^{q\times l}F∈Fq×l可用多项式pF(α)=∑i∈q,j∈[l]fi,jziαl+1−jp_F(\alpha)=\sum_{i\in q,j\in [l]}f_{i,j}z_i\alpha^{l+1-j}pF​(α)=∑i∈q,j∈[l]​fi,j​zi​αl+1−j(参数为(α,z1,⋯,zq)(\alpha,z_1,\cdots,z_q)(α,z1​,⋯,zq​))编码,则多项式乘积pFαpx⃗(α)p_F{\alpha}p_{\vec{x}}(\alpha)pF​αpx​(α)生成的多项式中ziαl+1,fori∈[q]z_i\alpha^{l+1},\ for\ i\in [q]zi​αl+1, for i∈[q]项的系数即为相应的矩阵与vector乘积 Fx⃗F\vec{x}Fx。
    利用commitment的加法同态性,可利用public parameters GαjG^{\alpha^j}Gαj来commit to x⃗\vec{x}x be Gpx⃗(α)G^{p_{\vec{x}}(\alpha)}Gpx​(α),矩阵FFF 为public info(对Prover和Verifier均已知),则batch open的过程可基于Fx⃗=y⃗F\vec{x}=\vec{y}Fx=y​来生成proof【即the coefficients of y⃗\vec{y}y​ must be encoded as the coefficients as the (lifted) monomials Gziαl+1G^{z_i\alpha^{l+1}}Gzi​αl+1】。详细的流程为:

6. 构建succinct arguments of knowledge from SVC/LMC

可通过“traditional PCP + SVC“ 或 ”linear PCP + LMC“ 来构建4-move interactive arguments of knowledge:

其中的Record、Reconstruct和Decide算法含义为:

Subvector Commitments with Application to Succinct Arguments学习笔记相关推荐

  1. Customizable constraint systems for succinct arguments学习笔记(2)

    微软研究中心Srinath Setty.a16z crypto research 和 Georgetown University Justin Thaler.Carnegie Mellon Unive ...

  2. Customizable constraint systems for succinct arguments学习笔记(1)

    1. 引言 微软研究中心Srinath Setty.a16z crypto research 和 Georgetown University Justin Thaler.Carnegie Mellon ...

  3. Linear Algebra with Sub-linear Zero-Knowledge Arguments学习笔记

    1. 引言 Groth 2009年论文<Linear Algebra with Sub-linear Zero-Knowledge Arguments>. 已知2个matrices A,B ...

  4. Unity Application Block 1.2 学习笔记 [转]

    昨天花了一天时间,把IOC/DI的相关文章以及Unity相关的一些文章基本在园子里搜了个遍 先给出几篇不错的文章链接: Unity Application Block官方网址 http://www.c ...

  5. Unity Application Block 1.2 学习笔记(zhuan)

    昨天花了一天时间,把IOC/DI的相关文章以及Unity相关的一些文章基本在园子里搜了个遍 先给出几篇不错的文章链接: Unity Application Block官方网址 http://www.c ...

  6. Unity Application Block 1.2 学习笔记

    昨天花了一天时间,把IOC/DI的相关文章以及Unity相关的一些文章基本在园子里搜了个遍 先给出几篇不错的文章链接: Unity Application Block官方网址 http://www.c ...

  7. Vector Commitment Techniques and Applications to Verifiable Decentralized Storage学习笔记

    1. 引言 Campanelli等人 2020年论文<Vector Commitment Techniques and Applications to Verifiable Decentrali ...

  8. Practical Zero-Knowledge Protocols Based on the Discrete Logarithm Assumption 学习笔记 1

    1. 引言 Stephanie Bayer 2013年博士论文 <Practical Zero-Knowledge Protocols Based on the Discrete Logarit ...

  9. Linear-time zero-knowledge proofs for arithmetic circuit satisfiability 学习笔记

    1. 引言 Bootle等人2017年论文<Linear-time zero-knowledge proofs for arithmetic circuit satisfiability> ...

最新文章

  1. 互斥信号量的原理与创建
  2. 程序员面试题精选100题(32)-不能被继承的类[C/C++/C#]
  3. finite state machine drawer online
  4. 9.控制流语句_for循环
  5. ansys命令流_ANSYS命令流建模3之划分单元+施加弹簧
  6. JDBC连接本地sqlserver2005的方法
  7. css bug 集2
  8. Oracle RAC 11R2配置归档、删除策略,闪回配置完整版
  9. itext7中文开发文档(二)
  10. MapGuide应用开发系列(11)----创建自己的第一个MapGuide应用程序
  11. 使用C语言写入word文档 C语言编程基础
  12. 参数化曲线-微分几何
  13. 计算机学院三行情书,【计算机·头条】“当你老了”三行情书颁奖晚会
  14. PyCharm2017破解步骤
  15. 表示自己从头开始的句子_从头开始励志的句子
  16. 四川文科高考300分可以上什么专科
  17. 深入探索编译插桩技术(二、AspectJ)
  18. 快速搭建自己的直播服务器,完成属于你的直播服务。(以windows 下虚拟机centos为例,对安装步骤进行详细说明)
  19. 相对地址,绝对地址,本地地址
  20. PC服务器硬盘故障处理

热门文章

  1. c语言学籍信息录入,c语言学籍信息管理系统设计
  2. String截取方法
  3. 为什么CMMI认证如此重要
  4. Windows Server 2019 新功能概述
  5. SWC与SWF的区别
  6. 微软AI秀肌肉:Windows之后,用Azure收割市场
  7. 我的未来规划及工作目标
  8. 版本号semver标准
  9. 计算机的任务管理器不显示不出来,电脑启动后不能显示桌面图标和任务
  10. 中彩体彩22选5彩票软件 襄樊石开软件公司