Zero-Knowledge-Proofs

談零知識時,“見證”和“證明”是一回事嗎?“論據”呢?和“聲明”?

  • November 3, 2021

我看到人們在閱讀有關零知識的論文時做出了很多區分。

我見過似乎被用作較弱的“知識證明”的術語“知識論證”:我的理解是,如果您談論正常的健全性屬性,您就會談論“論據”,而如果您談論有效性屬性(來自知識證明)然後您談論“證明”。這是對的嗎?

但最讓我困惑的是,我看到“證人”和“證明”這兩個詞的用法不同,表達的概念相同。我知道證人是什麼(基本上,證明者的秘密),但我也聽過這樣的話:

“P 不認識證人,但他知道證明

“在 Zk-SNARKS 中,簡潔:證明的大小遠小於證人的大小”。

“驗證證據比直接檢查陳述要快得多,即使有證人也是如此。”

這最後一句話對我來說真的很混亂。

那麼它們有區別嗎?如果是這樣,“證明”和“陳述”有什麼區別?

英語不是我的母語,這可能是問題所在,但是請您為我澄清所有這些術語嗎?

首先,重要的是要了解並非每個人都正確或以相同的方式使用術語。因此,您不會在任何地方找到完全一致的。話雖如此,我相信在這種情況下是很清楚的。證人是一種非常特殊的證明類型。具體來說,就是我們所說的 NP 證明 $ x\in L $ . ( $ \mathcal NP $ 作為一個複雜性類別,可以通過多種方式來看待。在我看來,從概念上講,“最好”的方式是作為一類語言,其陳述具有有效的書面證明。也就是說,存在一個(確定性的)多項式時間驗證機 $ V $ 這樣 $ x\in L $ 當且僅當存在一個 $ w $ 這樣 $ V(x,w)=1 $ . 但是,還有許多其他方法可以證明陳述。首先,有一些我們證明的陳述不在 $ \mathcal NP $ . 其次,我們可能正在證明一個 NP 語句,但我們想要其他屬性——比如零知識。在這種情況下,我們使用互動式證明。證明者可以使用見證,但不發送。最後,在某些情況下(例如在 SNARK 中),證明可能比原始 NP 見證人短,我們可能需要驗證證明所需時間短於執行時間的證明 $ V(x,w) $ 並以經典的 NP 方式進行驗證,以此類推。我希望這可以說清楚。

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