為什么說zkRollup的可行性起源於零知識證明的計算代理思想前言計算代理是什么為什么需要計算代理Code SwitchingFOAKS當中的計算代理結語參考文獻

2023-04-08 15:04:10

撰文:Fox Tech CTO 林彥熹,Fox Tech 首席科學家 孟鉉濟

前言

Prover和Verifier之間的計算代理思想是零知識證明的核心內容之一,是調節證明者和驗證者工作量於復雜度之間取舍(trade-off)的工具。不同的零知識證明算法本質的不同在於不同程度的計算代理;高度的代理雖然會使驗證的計算容易,但是卻可能使得證明的復雜度高,從而導致證明耗時長,或是生成的證明大小較大;反之,低程度的代理會使得驗證者的开銷較大。


      為什么說zkRollup的可行性起源於零知識證明的計算代理思想前言計算代理是什么為什么需要計算代理Code SwitchingFOAKS當中的計算代理結語參考文獻

圖1: 零知識證明的計算代理程度影響

計算代理是什么

隨着以太坊上應用和用戶的擴展,以太主網上的擁堵程度不斷提升,使用zkRollup進行Layer2的擴容成為一個很有吸引力的方案,FOX就是專注於使用FOAKS算法進行zkRollup的項目。而zkRollup的可行性,本質上在於使用的零知識證明算法的原理可行性。簡單來說,零知識證明算法實現的功能是使得證明者向驗證者證明某件事,但又不透露任何關於這件事的信息。zkRollup的構造就是利用了這個性質,使得Layer2的節點可以執行原本在Layer1進行的計算,同時向Layer1節點提供計算正確性的證明。

從更廣義的角度來說,上述的過程我們可以理解為,由於驗證者(Layer1節點)計算能力有限,所以將這部分的計算代理給了證明者(Layer2節點)來執行,證明者完成了這個任務,需要返回結果給驗證者。從這個角度來說,我們可以說,零知識證明算法使得保障正確性的“計算代理”得以實現。從宏觀上這種計算代理的例子可以表現為zkRollup這種形式的應用,具體到零知識算法當中,這種計算代理的思想也有各種應用。

本文主要介紹FOAKS使用的在Orion當中提到的Code-Switching所做的令證明者幫助驗證者執行的驗證計算過程,以及FOAKS如何應用這種技巧進行遞歸。從而減少了證明的大小以及驗證者的开銷。

為什么需要計算代理

從系統的實用性角度來說,很多情況下計算節點的算力是有限的,或者說計算資源是很寶貴的。例如在Layer1鏈上的所有計算(包括轉账以及合約調用)都需要經過所有節點的共識,並且用戶需要為此支付高昂的手續費。所以,在這種情況下,將本來由共識節點來處理的計算“代理出去”交給鏈下節點來完成,就是一種自然的想法,避免消耗鏈上資源。而這也正是FOX所專注的鏈下計算服務。

從密碼學理論角度來講,在GMR模型當中限定了證明者擁有無限計算能力,驗證者擁有多項式計算能力。如果驗證者也有無限能力,則零知識證明的基本性質無法滿足。所以自然地,將計算向證明者一方傾斜,讓證明者承擔更多的計算就是很多零知識證明算法設計都會考慮的問題。

當然,為了實現這一點,我們需要特別的技巧。

Code Switching

這一節介紹Orion當中使用的Code Switching技巧。Orion和FOAKS都使用了Brakedown作為多項式承諾方案,而Code Switching是在Orion當中命名的有證明者代替驗證者執行驗證計算的過程。

在《一文了解FOAKS當中的多項式承諾協議Brakedown》一文當中我們曾經介紹過,驗證者的驗證計算為以下的過程:


      為什么說zkRollup的可行性起源於零知識證明的計算代理思想前言計算代理是什么為什么需要計算代理Code SwitchingFOAKS當中的計算代理結語參考文獻

現在如果令證明者承擔這部分計算,則證明者除了執行這些計算,還要附上證明值來證明自己的計算是正確的。

做法是將上述等式同樣寫成R1CS電路:


      為什么說zkRollup的可行性起源於零知識證明的計算代理思想前言計算代理是什么為什么需要計算代理Code SwitchingFOAKS當中的計算代理結語參考文獻

之後使用Virgo算法進行驗證。

FOAKS當中的計算代理

在FOAKS當中同樣使用類似的技巧完成計算代理,值得一提的是,FOAKS由於使用了Fiat-Shamir heuristic技巧實現了非交互式證明。想要了解更多,讀者可以參考《如何將交互式證明改造為非交互式?Fiat-Shamir Heuristic!》。所以FOAKS的挑战生成和Orion所使用的Code Switching方法不同,電路當中也需要加入新的等式:


      為什么說zkRollup的可行性起源於零知識證明的計算代理思想前言計算代理是什么為什么需要計算代理Code SwitchingFOAKS當中的計算代理結語參考文獻

這樣之後FOAKS當中的證明者同樣生成了代理驗證者進行驗證的計算證明。而對於驗證證明的過程,FOAKS利用算法自身進行迭代,這也是FOAKS實現遞歸的關鍵內容。具體內容見《如何設計出一種精妙絕倫的證明遞歸方案》。

通過一定次數的迭代可以使得證明的大小被壓縮,從而極大降低驗證者的計算負擔以及通信復雜度。這就是FOAKS這個零知識證明方案對FOX這條zkRollup的重大意義。

結語

zkRollup中使用的零知識證明算法的計算代理程度需要被精心設計,必須恰到好處才能使其整體達到最佳效率。而FOAKS算法通過自身迭代的遞歸實現了可以調節的計算代理,是為專門為zkRollup所設計的零知識證明算法。

參考文獻

1.Orion: Xie, Tiancheng, Yupeng Zhang, and Dawn Song. "Orion: Zero knowledge proof with linear prover time." Advances in Cryptology–CRYPTO 2022: 42nd Annual International Cryptology Conference, CRYPTO 2022, Santa Barbara, CA, USA, August 15–18, 2022, Proceedings, Part IV. Cham: Springer Nature Switzerland, 2022.

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

推薦文章

btc日內再次下跌 短线應當如何處理?

盡管以太坊現貨ETF獲批是個好消息,但市場反應卻不如預期。在消息公布後,以太坊價格出現了小幅下跌,...

加密蓮
107 3個月前

7月23日、BTC(合約)ETH(合約)行情分析及操作策略

昨日收益還是不錯的,日內給出的現價空單分別止盈我們目標點位,恭喜跟上的朋友喫肉。時間一晃到月底了,...

倪老師
107 3個月前

幣圈院士:血與淚的教訓!交易者為何總是撞死在同一棵樹上?

幣圈院士談。交易市場中的幾種“死法” 在幣圈市場鱗次櫛比的海洋,風起雲湧,時常讓人感到驚手不及。在...

幣圈院士
111 3個月前

7月23:Mt. Gox 比特幣錢包在市場緊縮的情況下轉移了價值 28.2 億美元的 BTC

7月23:Mt. Gox 比特幣錢包在市場緊縮的情況下轉移了價值 28.2 億美元的 BTC一個引...

168超神
106 3個月前

悅盈:比特幣68000的空完美落地反彈繼續看跌 以太坊破前高看回撤

一個人的自律中,藏着無限的可能性,你自律的程度,決定着你人生的高度。 人生沒有近路可走,但你走的每...

我是周悅盈
88 3個月前

btc完美盈利 晚間波動較大注意

昨日btc空單完美給到,最大化走出一千七百點空間~ btc: 日內开盤下跌繼續測試66000一线,...

加密蓮
95 3個月前