借助zk-SNARKs的靈活性,可讓DeFi隱私交易更便宜更簡(jiǎn)單。
創(chuàng)新互聯(lián)長(zhǎng)期為1000多家客戶(hù)提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為山陰企業(yè)提供專(zhuān)業(yè)的成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè),山陰網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。Aztec團(tuán)隊(duì)致力于讓通用零知識(shí)交易盡可能簡(jiǎn)單的同時(shí),對(duì)zk密碼學(xué)進(jìn)行大幅改進(jìn),使這些交易簡(jiǎn)單的同時(shí)還足夠便宜。
2. 設(shè)計(jì)證明系統(tǒng)的取舍在零知識(shí)證明系統(tǒng)中,Prover致力于讓Verifier信服某statement是正確的,同時(shí)Prover給Verifier分享的statement信息盡可能少。
零知識(shí)證明系統(tǒng)主要分為2個(gè)階段:
理想情況下,這2個(gè)階段應(yīng)都足夠快且計(jì)算高效,但是,現(xiàn)實(shí)情況是通常需要在二者之間進(jìn)行取舍權(quán)衡。從計(jì)算角度來(lái)說(shuō),構(gòu)建證明的計(jì)算量要遠(yuǎn)大于驗(yàn)證證明的計(jì)算量,當(dāng)提到某“fast” 構(gòu)建證明算法時(shí),“fast”是相對(duì)于某基準(zhǔn)線(xiàn),而不是相對(duì)于verification的。
在Aztec的zk-rollup中,有3個(gè)不同的角色參與創(chuàng)建和驗(yàn)證SNARK proofs,每個(gè)角色具有不同的計(jì)算能力和限制:
為了給Aztec的用戶(hù)帶來(lái)實(shí)惠的、真正的零知識(shí)交易,我們跨遞歸邊界將不同的證明系統(tǒng)(特別是PlonK的不同、美味口味)融合在一起。對(duì)于用戶(hù)來(lái)說(shuō),這意味著在客戶(hù)端證明生成期間降低了計(jì)算成本,同時(shí)通過(guò)最小化EVM上的計(jì)算降低了貨幣成本。
3. Recursion由于驗(yàn)證某proof
p
p
p本身也是某種計(jì)算,因此可引入另一個(gè)零知識(shí)證明
p
?
p^*
p?來(lái)證實(shí)“驗(yàn)證某proof
p
p
p 成功”,從而實(shí)現(xiàn)遞歸證明。同時(shí)
p
?
p^*
p?本身也必須被驗(yàn)證。
接下來(lái)看如何將2個(gè)不同的證明系統(tǒng)進(jìn)行結(jié)合或組合?
將證明系統(tǒng)看成是
(
P
,
V
)
(\mathbf{P},\mathbf{V})
(P,V)算法組,存在2個(gè)參與者Prover和Verifier。
假設(shè):
需對(duì)以上2種證明系統(tǒng)進(jìn)行組合,以使利益大化:
最終可由具有不同計(jì)算能力的參與者來(lái)執(zhí)行以上3個(gè)步驟。正是這種思想,使得Aztec Connect可為用戶(hù)提供便宜隱私的交易。
以Plonk和TurboPlonk這2種證明系統(tǒng)組合使用為例:
注意:為了進(jìn)一步優(yōu)化壓縮流程,Aztec rollup provider實(shí)際包含了3步recursion:
假設(shè)你為協(xié)議制定者,要求所設(shè)計(jì)的零知識(shí)證明系統(tǒng)可證明包含了類(lèi)似
a
+
b
=
c
,
(
a
+
b
)
?
c
=
d
,
a
?
b
?
c
=
d
a+b=c,(a+b)\cdot c=d,a\cdot b\cdot c=d
a+b=c,(a+b)?c=d,a?b?c=d等加法和乘法組合的statement,但你的證明系統(tǒng)中僅包含一類(lèi)gate,形如:
q
m
u
l
t
×
(
w
l
w
r
)
+
(
1
?
q
m
u
l
t
)
×
(
w
l
+
w
r
)
?
w
o
=
0
q_{mult}\times (w_lw_r)+(1-q_{mult})\times (w_l+w_r)-w_o=0
qmult?×(wl?wr?)+(1?qmult?)×(wl?+wr?)?wo?=0【待證明的identity degree為3】
其中
w
w
w表示“wires” with
l
=
l
e
f
t
,
r
=
r
i
g
h
t
,
o
=
o
u
t
p
u
t
l=left, r=right, o=output
l=left,r=right,o=output,
q
q
q為"selector"用于在乘法和加法之間切換。
當(dāng)要證明存在數(shù)字
a
,
b
,
c
,
d
a,b,c,d
a,b,c,d滿(mǎn)足
(
a
+
b
)
×
c
=
d
(a+b)\times c=d
(a+b)×c=d時(shí),相應(yīng)的電路設(shè)計(jì)模板為:
相應(yīng)的電路類(lèi)似為:
將
a
,
b
,
c
,
d
,
z
a,b,c,d,z
a,b,c,d,z值填入電路設(shè)計(jì)模板中:
用戶(hù)可證明相應(yīng)的值滿(mǎn)足該claim。(此處,必須在2個(gè)
z
z
z之間進(jìn)行約束,即使用copy constraints。)
當(dāng)用戶(hù)還想要證明形如
x
5
=
y
x^5=y
x5=y這樣的statements時(shí)(如Poseidon hash中包含了這樣fifth powers計(jì)算),若采用上面的思路,需將其分解為一系列乘法和一個(gè)加法:
x
5
?
y
=
[
(
(
x
×
x
)
×
(
x
×
x
)
)
×
x
]
?
y
=
0
x^5-y=[((x\times x)\times (x\times x))\times x]-y=0
x5?y=[((x×x)×(x×x))×x]?y=0
將相應(yīng)的值填入模板,獲得execution trace形如:
不同于以上方案,可引入新的custom selector,形如:
q
c
u
s
t
o
m
×
w
l
5
+
(
1
?
q
c
u
s
t
o
m
)
×
(
q
m
u
l
t
×
(
w
l
w
r
)
+
(
1
?
q
m
u
l
t
)
×
(
w
l
+
w
r
)
)
?
w
o
=
0
q_{custom}\times w_l^5 + (1-q_{custom})\times(q_{mult}\times (w_lw_r)+(1-q_{mult})\times (w_l+w_r))-w_o=0
qcustom?×wl5?+(1?qcustom?)×(qmult?×(wl?wr?)+(1?qmult?)×(wl?+wr?))?wo?=0【待證明的identity degree為6】
此時(shí)
x
5
=
y
x^5=y
x5=y的電路僅需要一個(gè)gate,形如:
相應(yīng)的execution trace為:
通過(guò)引入定制門(mén),將整個(gè)電路由6個(gè)門(mén)減少到了3個(gè)門(mén),從而減少了50% 的circuit size。
不過(guò),引入定制門(mén)將增加待證明的identity degree,從而意味著增加Prover的計(jì)算量,可能會(huì)抵消掉部分circuit size reduction的好處。如上例引入定制門(mén)后,待證明的identity degree由3變成了6,而circuit size減半了(由6變成了3)。若程序中僅包含少量這樣的定制門(mén)計(jì)算,則需要重新考慮引入定制門(mén)的意義,實(shí)際上,需要考慮這種情況。
同時(shí),另一個(gè)思路是:構(gòu)建不會(huì)增加identity degree的定制門(mén),或者不會(huì)增加prover太多計(jì)算量的定制門(mén)。詳細(xì)將TurboPlonk證明系統(tǒng),其關(guān)鍵創(chuàng)新在于在計(jì)算Pedersen哈希時(shí),引入了充分利用橢圓曲線(xiàn)高效scalar multiplication計(jì)算的定制門(mén)。
5. Prover和Verifier開(kāi)銷(xiāo)在證明系統(tǒng)設(shè)計(jì)時(shí):
仍以上例為例,引入定制門(mén)后,有circuit size減少,相應(yīng)的proof構(gòu)建將更便宜;而Verifier的驗(yàn)證將相對(duì)昂貴,因其無(wú)法受益于circuit size 減少,而同時(shí)必須面對(duì)引入定制門(mén)后identity復(fù)雜度的增加。
對(duì)于Prover和Verifier來(lái)說(shuō),大量的計(jì)算開(kāi)銷(xiāo)在于需計(jì)算昂貴的橢圓曲線(xiàn)scalar multiplication。
對(duì)于Verifier來(lái)說(shuō),在identity中引入額外的selector意味著在驗(yàn)證時(shí)需增加額外的scalar multiplication運(yùn)算。
以Standard Plonk中Verifier的第9步計(jì)算為例:
其中
q
q
q 為selector,
?
\cdot
?表示scalar multiplication。更多的selector,該公式將更復(fù)雜。
Aztec將TurboPlonk進(jìn)一步升級(jí)為UltraPlonk,UltraPlonk為T(mén)urboPlonk+Plookup:
同時(shí),Aztec還設(shè)計(jì)了名為fflonk協(xié)議:
fflonk為SHPlonk承諾機(jī)制的變種,具有潛力可降低約35%的EVM執(zhí)行開(kāi)銷(xiāo)。
參考資料[1] Aztec團(tuán)隊(duì)2022年9月博客 Proof Compression
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧