1. 引言
Thomas Attema等人2020年论文《Compressed sigma-Protocol Theory and Practical Application to Plug & Play Secure Algorithmics》发表于CRYPTO 2020。
主要关注3种类型的assumption:
- Discrete Logarithm assumption:Bulletproofs中是基于Discrete Logarithm assumption构建的。
- Strong-RSA assumption:《Transparent snarks from DARK compilers》可看成是基于Strong-RSA assumption下对Bulletproofs进行改进实现的polynomial commitment。
- Knowledgeof-Exponent assumption,known to be unfalsifiable,目前仍有争议的安全假设。
本文主要介绍基于Discrete Logarithm assumption的∑\sum∑-protocol,Strong-RSA assumption可采用类似方式构建。
1.1 核心的∑\sum∑-Protocol
basic ∑\sum∑-Protocol Π0\Pi_0Π0?:
- public info: commitment PPP,arbitrary public linear form LLL。
- private info:secret vector x?∈Zqn\vec{x}\in\mathbb{Z}_q^nx∈Zqn?,yyy。
- relation:P=Com(x?)∧y=L(x?)P=Com(\vec{x})\wedge y=L(\vec{x})P=Com(x)∧y=L(x)
basic ∑\sum∑-Protocol Π0\Pi_0Π0? 证明过程为:
- Prover:选择secret random vector r?\vec{r}r,计算commitment A=Com(r?)A=Com(\vec{r})A=Com(r)和y′=L(r?)y'=L(\vec{r})y′=L(r)。
将A,y′A,y'A,y′发送给Verifier。 - Verifier:发送random challenge c∈Zqc\in\mathbb{Z}_qc∈Zq? 给Prover。
- Prover:计算z?=cx?+r?\vec{z}=c\vec{x}+\vec{r}z=cx+r。
将vector z?\vec{z}z 发送给Verifier。 - Verifier:验证Com(z?)=APcCom(\vec{z})=AP^cCom(z)=APc以及L(z?)=cy+y′L(\vec{z})=cy+y'L(z)=cy+y′是否成立即可。
以上basic ∑\sum∑-Protocol Π0\Pi_0Π0?的communication cost主要为z?\vec{z}z——the opening of APcAP^cAPc,其communication complexity为O(n)O(n)O(n),其中nnn为vector length。
本文在basic ∑\sum∑-Protocol Π0\Pi_0Π0? 的基础上实现了amortized版本Π0Am\Pi_0^{Am}Π0Am?,针对的场景为:
- public info: commitments P1,?,PsP_1,\cdots, P_sP1?,?,Ps?,arbitrary public linear form LLL。
- private info:secret vector x?1,?,x?s∈Zqn\vec{x}_1,\cdots,\vec{x}_s\in\mathbb{Z}_q^nx1?,?,xs?∈Zqn?,y1,?,ysy_1,\cdots,y_sy1?,?,ys?。
- relation:P1=Com(x?1)∧?∧Ps=Com(x?s)∧y1=L(x?1)∧?∧ys=L(x?s)P_1=Com(\vec{x}_1)\wedge \cdots\wedge P_s=Com(\vec{x}_s) \wedge y_1=L(\vec{x}_1)\wedge \cdots \wedge y_s=L(\vec{x}_s)P1?=Com(x1?)∧?∧Ps?=Com(xs?)∧y1?=L(x1?)∧?∧ys?=L(xs?)
amortized版本Π0Am\Pi_0^{Am}Π0Am?的communication cost应只比basic版本多s?1s-1s?1个elements——实际即为 the evaluations at the s?1s-1s?1 additional input vectors。
借助Bulletproofs算法,可将basic ∑\sum∑-Protocol Π0\Pi_0Π0? 的communication cost压缩为O(log?n)O(\log n)O(logn),Prover与Verifier之间的交互次数也增加为了O(log?n)O(\log n)O(logn)。技术上来说,这种压缩将degrade the soundness from unconditional to computational, and protocols with computational soundness成为argument of knowledge。(注意Bulletproofs方案不具有zero knowledge,最终prover会reveal zzz。)
本文考虑的是针对amortized版本Π0Am\Pi_0^{Am}Π0Am?的压缩。与Bulletproofs方案不同,不再发送整个vector z?\vec{z}z,改为要求Prover知道相应的z?\vec{z}z,使得Com(z?)=APcCom(\vec{z})=AP^cCom(z)=APc成立。