零知识证明
維基百科,自由的 encyclopedia
密码学中,零知識證明(英語:zero-knowledge proof)或零知識協議(zero-knowledge protocol)是一方(證明者)向另一方(檢驗者)證明某命題的方法,特點是過程中除「該命題為真」之事外,不泄露任何資訊。因此,可理解成「零洩密證明」。[1]例如,欲向人證明自己擁有某情報,則直接公開該情報即可,但如此則會將該細節亦一併泄露;零知識證明的精粹在於,如何證明自己擁有該情報而不必透露情報內容。這也是零知識證明的難點。[2]
若該命題的證明,需要知悉某秘密方能作出,則檢驗者單憑目睹證明,而未獲悉該秘密,仍無法向第三方證明該命題(即單單轉述不足以證明)。待證的命題中,必定包含證明者宣稱自己知道該秘密,但過程中不能傳達該秘密本身。否則,協議完結時,已給予檢驗者有關命題的額外的資訊。此類「知識的零知識證明」是零知識證明的特例,其中待證命題僅有「證明者知道某事」。
交互式零知識證明中,需要各方互動,靠通訊過程證明某方具備某知識,而另一方檢驗該證明是否成立。[2]
也有某種非交互式零知識證明(英语:non-interactive zero-knowledge proof)[3][4],但證明之所以成立,依賴計算假設(典型假設是理想的密碼雜湊函數)。