舉個實例。Tony要向Bob證明自己擁有某個房間的鑰匙,假設該房間只能用鑰匙打開鎖,而其他任何方法都打不開。這時有2個方法:
①Tony把鑰匙出示給Bob,Bob用這把鑰匙打開該房間的鎖,從而證明Tony擁有該房間的正確的鑰匙。
②Tony確定該房間內有某一物體,Tony用自己擁有的鑰匙打開該房間的門,然后把物體拿出來出示給Bob,從而證明自己確實擁有該房間的鑰匙。
②方法屬于零知識證明。它的好處在于,在整個證明的過程中,Bob始終不能看到鑰匙的樣子,從而避免了鑰匙的泄露。
什么是零知識證明?
零知識證明是當今應用密碼學中最抽象、最吸引人的概念之一。從可能用于核裁軍到為公共
區塊鏈網絡提供匿名和安全的交易,零知識證明是密碼技術創新的一個深刻例子。
在密碼學中,零知識證明或零知識協議是一個方法,一個政黨(驗證)可以向另一方(校驗)證明他們知道一個值x。一個零知識證明的本質在于它可以揭示某些信息。挑戰在于如何在不披露信息本身或任何額外信息的情況下證明擁有這些信息是合理的。
零知識證明必須滿足以下三個參數:
· 完整性。如果這個陳述是真的,誠實的驗證者——正確地遵循協議的驗證者——將被誠實的驗證者說服。
· 可靠性。如果陳述是假的,沒有任何作弊證明可以說服誠實的驗證者它是真的。
· 零知識性。如果該語句為真,則除了該語句為真之外,驗證者不會學到任何東西。換句話說,僅僅知道語句(而不是秘密)就足以想象一個場景,表明驗證者知道秘密。這是通過每個驗證者都有一個模擬器來實現的,模擬器可以生成一個“看起來”是誠實的驗證者和普通驗證者之間交互的記錄。模擬器應該能夠生成文本,但只能訪問要證明的語句,而不能訪問驗證者本身。
完整性是更一般的交互式證明系統的性質。零知識的加法使驗證過程變成零知識的證明。
零知識證明不是數學意義上的證明,因為有很小的概率,即可靠誤差,一個作弊證明者能夠說服一個虛假陳述的驗證者。換句話說,零知識證明是概率證明而不是確定性證明。然而,有一些技術可以將可靠性錯誤降低到可以忽略的值。
零知識證明的一般結構包括參與者a和參與者b之間的三個連續動作。這些動作被稱為目擊、挑戰和回應。
版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。