Zero-Knowledge-Proofs

zkSnark 電路

  • September 29, 2020

在實踐中,需要證明的電路總是有一個很大的尺寸,可能有近十億個門,當把這種電路轉為 QAP 時,會產生一個很大的多項式,使用 zkSNARK 的成本很高。那麼,是否可以將電路分解為不同的子電路以減小電路規模和多項式規模?

大電路絕對是證明系統的瓶頸。將它們分成子電路(通常稱為“小工具”)主要是一種程式結構:小工具相當於電路中的函式、方法或類。

為了說明,想像一下(非正式的)聲明“我發送給你的數據解密為圖片的東西”。證明該陳述涉及多個步驟,您可以將其分解為

  1. 解密數據(證明你知道解密密鑰)
  2. 對數據進行typecheck(證明解密後的數據其實是圖片)

第一步涉及與解密和驗證等效的電路(證明知道密鑰),該子電路的輸出可以饋送到第二個子電路,該子電路檢查輸出是否在其實一張圖。


回到你的問題:不,這不允許更緊湊的電路(至少在我知道的證明系統中不允許),因為它只是一個程式結構,是程序員的抽象。但是,它確實允許單獨研究小工具的性能,並可能優化它們。

根據手頭的問題,您可能對遞歸證明組合感興趣(例如

$$ 1 $$),它允許您遞歸地嵌套電路。如果您正在考慮增量可驗證計算 (IVC) 或證明攜帶數據 (PCD),這將特別有用。 $$ 1 $$鮑、肖恩、傑克格里格和戴拉霍普伍德。“光環:沒有可信設置的遞歸證明組合。” IACR 加密。電子列印拱門。2019(2019):1021。

引用自:https://crypto.stackexchange.com/questions/84165