区块链怎么做_新手怎么玩区块链_数贝网

网站地图产业

区块链怎么做_新手怎么玩区块链_数贝网

当前位置: 数贝网 > 分析 >

手艺干货

时间:2021-08-27 08:48人气:来源: www.hnzzlkffm.com

V = grhv     (1)

<aL, 2n> = v    (2)

a o b:向量对应位相乘,{a1*b1……an*bn},结果属于一个向量

2. 证明 Alice愿意要证明 v ⸦ [0, 2n-1]

由于y,z都属于验证者供应,因此要是验证者要是能验证公式(9)成立,则相信等式(5)(6)(7)成立,则相信等式(2)(3)(4)成立,则相信v知足关系v ⸦ [0, 2n-1]。

但是属于,能够看到上述过程,泄露了v的信息,因此要求一个零常识证明协议。 6.  一个零常识证明协议 因为L,R包含了v的有关信息,因此,小编要求添加俩盲因子sLsR来暗藏aL,aR。如公式(10)(11)所示:

l(X) = (aL - z * 1n) + sL * X )   (10)

r(X) = (aR + z * 1n + sR * X) o yn + z2 * 2n    (11)

此时,概念公式(12)

t(X) = <l(X), r(X)> = t0 + t1*X + t2 * X2    (12)

能够看出系数t0属于l(x)和r(x)常数项的乘积,即知足:

t0 = <L, R> = z2*v + δ

因此,毛病由证明:

<L, R> = z2*v + δ

转化成了,在任意一点x,验证者验证多项式值l(x), r(x), t(x)知足关系:

<l(x), r(x)> = t(x)

多项式值l(x), r(x), t(x)由证明者供应,为了保证l(x),r(x) well-formed,即:

l(x) = (aL - z * 1n) + sL * x )

r(x) = (aR + z * 1n + sR * x) o yn + z2 * 2n

要求校验:

 

= hα+ρx * gaL+ sL * x – z * 1^n * (h`)y^n o (aR + sR * x + z * 1^n) + z^2*2^n

具体的协议步骤图如下图所示:

概要 从上述步骤能够看出,一次range proof,证明者要求发送总共{ l / r / t / τx / μ / T1 / T2/ A / S}个元素给验证者,总共2n+3个Zp元素,4个G元素。下一篇文章将细讲,Bulletproofs怎样将交互复杂度下降到对数级O(log(n)) 附录 1. Bulletproofs 论文:chrome-extension://cdonnmffkdaoajfknoeeecmchibpmkmg/assets/pdf/web/viewer.html?file=https%3A%2F%2Feprint.iacr.org%2F2017%2F1066.pdf

<a, b>:表示向量内积 ∑ ai*bi,结果属于一个值

即,对于公开信息x,Alice到底有隐私聊息w,使得关系R成立。

令 aL为金额v的在领域[0, 2n-1]内的二进制形式,则aL = {a1,a2……an}⸦{0,1}n,且知足<aL, 2n> = v。因此,证明者要求证明以下几个等式相等:

aL o aR = 0n   (3)

借助这个理论,小编把等式(2)/(3)/(4)做以下转换:

2. 验证者事先算良好 δ

3. 验证者依照L算出来aL,依照<aL, 2n> = v算出v

4. 验证者依照L,R,v,δ验证等式<L, R> = z2 * v +δ

aR = aL - 1n    (4)

等式(1)确保了承诺V和金额v的绑定关系,等式(2)确保了v的领域,等式(3)(4)确保了aL 元素只是{0,1}。等式(2)/(3)/(4)总共包含了2n+1个约束,其中公式(2)1个,公式(3)(4)各n个。下面,为了效率,小编要求把2n+1个约束转换成1个约束。 3. 2n+1个约束转换成1个约束  

=>预备:从Zp中任意选择一个数y,则b = 0n属于等式<b, yn> = 0成立的充分条件;由于当b != 0n,等式成立的概率仅到底有n/p,p属于到底有限域,远大于n。(理解:要是b != 0n ,把等式看作求n阶一次多项式的零点即可)因此,要是到底有<b, yn> = 0,那样验证者想相信b != 0n

=>  令

1. 验证者随机选取一个数z发送给证明者:

2. 证明者借助z对公式(5)(6)(7)进行线性组合,得到如下公式:

z2 * <aL, 2n> + z * <aL - 1n- aR, yn> + <aL , aR o yn> = z2 * v    (8)

至此,小编已经把2n+1个约束转换成1个约束。接下来小编对公式(8)做进一步的优化,把三个点积优化成1个点积 4. 三个点积优化成1个点积  

=> z2 * <aL, 2n> + z *  <aL - 1n- aR, yn> + <aL , aR o yn> = z2 * v

=> <aL, z2 * 2n> + <aL, z * yn> - <z * 1n, yn> - <z * aR, yn> + <aL , aR o yn> = z2 * v

=> <aL , aR o yn + z * yn + z2 * 2n> - <z * 1n , yn> + <z * 1n, yn o aR> = z2 * v

=> <aL , aR o yn + z * 1n o yn + z2 * 2n> - <z * 1n, yn + yn o aR> = z2 * v

=> <aL , (aR + z * 1n) o yn + z2 * 2n> -  <z * 1n, yn + yn o aR> = z2 * v

=> <aL , (aR + z * 1n) o yn + z2 * 2n> -  <z * 1n, (aR + z * 1n) o yn + z2 * 2n -z * 1n * yn + yn - z2*2n>  =  z2 * v

=>  <aL - z * 1n, (aR + z * 1n) o yn + z2 * 2n> - <z * 1n , -z * 1n * yn + yn - z2*2n> =  z2 * v

=>  <aL - z * 1n, (aR + z * 1n) o yn + z2 * 2n> = z2 * v + <z * 1n , -z * 1n * yn + yn - z2*2n>

=>  <aL - z * 1n, (aR + z * 1n) o yn + z2 * 2n> = z2 * v + <z * 1n , (-z * 1n + 1n) * yn > - <z * 1n ,  z2*2n>

=>  <aL - z * 1n, (aR + z * 1n) o yn + z2 * 2n> = z2 * v + (z – z2) * <1n, yn> - z3 * <1n, 2n>    (9)

= hαgaLhaR *  hρxgsL*xhsR*x * g(-z) * (h`)z*y^n+z^2*2^n

= hα+ρx * gaL+ sL * x – z * 1^n * haR + sR * x * (h`)z*y^n+z^2*2^n

= hα+ρx * gaL+ sL * x – z * 1^n * (h`)y^n o (aR + sR * x) * (h`)z*y^n+z^2*2^n

= hα+ρx * gaL+ sL * x – z * 1^n * (h`)y^n o (aR + sR * x) + z*y^n+z^2*2^n

=? hμgl(h`)r

=> 当且仅当l/r well-formed,等式成立

为了保证t(x) well-fromed,即:

t = t0 +t1x + t2x2

要求校验:

=> gthτx =? Vz^2 * gδ*T1x *T2x^2

=> gthτx =? (hrgv)z^2 *gδ *(gt1)x*(hτ1)x*(gt2)x^2*(hτ2)x^2

=> gthτx =? hz^2*r + τ1*x + τ2*x^2 * gz^2*v + δ + t1*x + t2*x^2

=> gthτx =? hz^2*r + τ1*x + τ2*x^2 * gt0 + t1*x + t2*x^2

=> t = ? t0 + t1*x + t2*x2 && τx = ? z2*r + τ1*x + τ2*x2

=> 当且仅当t和τx welle-formed,等式成立

2n:表示向量{20,21…2n-1}

前言 Bulletproofs,又一个到底有意思的零常识证明算法,相信读者已经很了解它了。和zk-snark相比,它不用可信设置;和zk-stark算法相比,它具备有较小的proof size。依照论文,它到底有俩方面的应用:1. 用于range proof;2. 用于寻常算术电路的零常识证明。接下来,让小编先看一下Bulletproofs属于怎样高效的达成首先点。 Range proof 1. 预备常识

1. 验证者随机选取一个数y发送给证明者;

2. 证明者要证明:

<aL, 2n> = v (5)

<aL , aR o yn> = 0        (6)

<aL - 1n- aR, yn> = 0    (7)

同理,等式(5)确保了v的领域,等式(6)(7)确保了aL 元素只是{0,1}。此时2n+1个约束转换成3个约束,下面,还要求做进一步的处置:

=>则,要求证明一个relation得成立,如下所示:

{(g、h ⸦ G,V,n;v,r ⸦ Zp):V = grhv ^ v ⸦ [0, 2n-1] }

public-x           witness-w relation-R

P = A * Sx * g(-z) *(h`)z*yn+z^2*2^n

= hαgaLhaR * (hρgsLhsR)x * g(-z) * (h`)z*y^n+z^2*2^n

aL:表示向量{a1,a2……an}

L =  aL - z * 1n

R =  (aR + z * 1n) o yn + z2 * 2n

δ =  (z – z2) * <1n, yn> - z3 * <1n, 2n> 5. 验证: 1. 证明者把L/R/V发送给验证者;

标签: bullet(83)

上一篇:交通银行湖南省省分行本次出行红包勾当将一连11天

网站首页

下一篇:CoinList将在Filecoin主网上线后分发代币FIL,现在全网到底有效存储达15.7PiB



网站导航

热门推荐

点击排行

热门标签