ZKPoK 中知識提取器與穩健性的關係
閱讀如果存在知識提取器,為什麼 Zk-SNARK 是知識論證?我對 OP 的第一句話感到困惑:
據我所知,證明知識提取器的存在意味著完美的可靠性。
答案側重於健全性,不一定是完美的,但它似乎隱含地確認了提取器的健全性暗示。
首先讓我聲明,當我讀到“健全性”時,我認為 IP 的屬性表明沒有任何證明者策略可以讓驗證者相信不屬於該語言的符號的機率超過可忽略不計……這似乎完全不同“對象”而不是提取器“溢出”證人,所以我很難對這種假設的含義有一個至少幼稚的想法。
但是我開始相信它,因為我發現了一些來源,例如:
- 在 Geoffroy Couteau 關於 ZKPoK 的博士論文 ( https://geoffroycouteau.github.io/assets/pdf/thesis.pdf ) 第 44 頁:
$$ … $$可靠性屬性被知識提取屬性替換$$ … $$
- 在部落格文章ZKPs An Illustrated Primer by Matthew Green ( https://blog.cryptographyengineering.com/2017/01/21/zero-knowledge-proofs-an-illustrated-primer-part-2/ ) 在“證明健全性”部分:
當談到證明知識證明的可靠性時,我們有一個非常好的正式方法。就像我們上面討論的模擬器一樣,我們需要證明一種特殊算法的存在。這個算法被稱為知識提取器,它完全按照它的要求做。知識提取器(或簡稱“提取器”)是一種特殊類型的驗證器,它與證明者互動,並且——如果證明者成功完成證明——提取器應該能夠提取證明者的原始秘密。這回答了我們上面的問題。為了證明知識證明的合理性,我們必須證明每個可能的 Prover 都存在一個 Extractor。
但是在第 4.5 節“健全性如何?” 在關於定義知識證明的地方,Bellare 和 Goldreich 處理了他們對 PoK 的表述與以前的表述(https://www.wisdom.weizmann.ac.il/~oded/PS/pok.ps)我發現了這些詞:
我們注意到我們的定義對案例沒有要求 $ x $ 不在 $ L_R $ . 特別是,健全性(即證明者引導驗證者接受的能力的界限) $ x $ 不在 $ L_R $ ) 不需要。因此,知識驗證器 $ R $ 不一定定義成員身份的互動式證明 $ L_R $ . 這與以前的定義相反;它們具有的“有效性”條件暗示了健全性條件,因此後者始終成立。我們認為,我們將健全性與有效性“脫鉤”在概念上和根據某些應用程序都是合理的。
順便說一句,這與著名的 Golderich 的“密碼學基礎”第 4.7 節的觀點相同。
所以我再次懷疑:知識提取器 $ => $ 健全性
有人能明確地陳述暗示證明,或者至少給我任何暗示嗎?
或者,知識提取器的存在本身以某種方式避免了驗證者相信證明者並不真正知道的“證人”,因此即使與通常的性質不同,它也可以被視為一種“健全性屬性”那些?(Geoffroy Couteau 在最初引用的問答交流中似乎證實了這一觀點,他寫道:
是的,健全性有幾個維度:你是否有“成員健全性”或“知識健全性”是其中之一(我通常在我的論文中說“知識可提取性”以區別於通常的健全性)
但是,如果是這種情況,我會希望他糾正 OP 的“暗示”)
對不起,羅嗦了,我希望以一種可以理解的方式描述我的疑問。
知識可提取性是比穩健性更強的屬性。下面,我將概述為什麼無條件的知識可提取性意味著統計穩健性。用非正式術語來說,統計合理性表明:
“如果陳述不正確,那麼任何惡意證明者產生可接受證明的可能性都可以忽略不計”
另一方面,KE指出:
(*) “採用任何(可能是惡意的)證明者算法,該算法會以不可忽略的機率產生一個接受證明。然後有一個(預期多項式時間)提取器與該證明者互動並恢復證人(即證明)聲明屬實"。
如上所述,KE 隱含合理性應該是比較清楚的:如果 KE 保證為陳述為真找到證人,則它特別暗示該陳述為真的。換句話說,(*) 意味著:
“如果有一個(可能是惡意的)證明者算法以不可忽略的機率產生一個接受證明,那麼該陳述必然是正確的”
取對置給出:“如果陳述不正確,則沒有證明者算法可以產生具有不可忽略機率的接受證明”,
這正是統計上的合理性。請注意,這並不能給您帶來完美的可靠性:為此,您需要一種“超強”的知識可提取性形式,以保證從任何(可能是惡意的)證明者中提取證人,該證明者以任何機率輸出接受證明 $ p>0 $ .
請注意,也存在我們只能證明 KE 的計算形式的情況,例如“我們可以從這個多項式有界的成功證明者中提取見證,或者我們可以使用證明者來解決這個難題”。在這種情況下,計算 KE 意味著計算健全性。