【說明】什麼是 Zero-Knowledge Proof:如何運作的?是如何被使用的?

零知識證明技術,顧名思義,使用密碼算法允許多方驗證一段信息的真實性,而無需分享構成該信息的材料。但如何在沒有支持證據的情況下證明某件事情呢?在這篇文章中,我們將盡力將其簡單易懂地解釋給讀者。

為什麼?

我們每天都在問自己——人們為什麼會決定使用這麼複雜的概念。每天都有數百萬人使用互聯網,接受 Cookies 並分享個人信息以換取服務和數字產品的訪問。用戶逐漸變得更容易受到安全漏洞和未經授權訪問其數據的影響。此外,個人經常不得不放棄隱私以換取數字平台服務,如建議、諮詢、量身定制的支持等,而這些在私密瀏覽時是無法獲得的。基於上述原因,對於信息訪問存在一定的 不對稱性——用戶提供信息以換取服務。

在1985年,三位偉大的思想家注意到「力量中的巨大擾動」,並發佈了一篇名為《互動證明系統的知識複雜性》的論文,首次引入了零知識證明(ZKP)的概念。

那它到底是什麼?

ZKP 是一組工具,允許在不必揭露支持數據的情況下評估一項數據。這是通過一組密碼方法實現的,該方法允許「測試者」向「驗證者」數學性地證明一個計算聲明是有效的,而無需披露任何數據。

這樣可以在不必與第三方分享的情況下確定特定事實的正確性。例如,用戶可以證明他已達到法定年齡以訪問某產品或服務,而無需透露其具體年齡。或者,這就像向朋友展示駕駛執照,而不是通過開車到墨西哥來證明自己會開車。

這種技術通常用於數字世界中,以在不冒信息被竊取風險的情況下驗證系統。事實上,現在不再需要提供任何個人數據來確認一個人的身份。

聽起來不錯,但它是如何運作的?

證明者驗證者是零知識證明中最重要的兩個角色。證明者必須證明他們知道秘密,而驗證者則必須能夠判斷證明者是否在說謊。

它的運作方式是,驗證者要求證明者執行只有在證明者確信他或她知道秘密的情況下才能完成的行動。如果證明者在猜測,驗證者的測試將會揭穿他或她。如果秘密已知,證明者將每次都能輕鬆通過驗證者的考驗。這就像銀行或其他機構要求提供已知秘密詞的字母來驗證身份。證明者並不是告訴銀行他們賬戶中有多少錢;他們只是展示他們知道。

太棒了,但它實際上是如何運作的?

為了回答這個問題,我們來看看 Kamil Kulesza 的一項研究。

假設兩個角色,Alice 和 Bob,發現自己站在一個洞穴的入口處,該入口有兩個獨立的通道,通向兩條不同的路徑(A 和 B)。洞穴內有一扇門連接兩條路徑,但只能用一個秘密代碼解鎖。這個代碼屬於 Bob(「測試者」),而 Alice(「驗證者」)想購買它,但她首先想確保 Bob 沒有撒謊。

Bob 如何能在不透露其內容的情況下向 Alice 證明他擁有代碼?他們為此執行以下操作:Bob 隨機通過其中一個入口進入洞穴,而 Alice 在外面等待(A 或 B)。一旦進入,Alice 接近前門,召喚 Bob,並指示他使用兩個出口中的一個。Bob 將始終能夠通過 Alice 使用的路徑返回,因為他知道秘密代碼。

即使 Bob 最初選擇的路徑與 Alice 指示的路徑不一致,他也能夠通過 Alice 指示的路徑返回,因為他可以用秘密代碼解鎖門並從另一側離開。

但等一下,Alice 和 Bob 都選擇相同路徑的機會仍然是 50% 對吧?確實如此,然而,如果這個實驗重複多次,Bob 沿著 Alice 選擇的相同路徑逃脫而不擁有代碼的可能性將減少,直到幾乎不可能。結論?如果 Bob 足夠多次通過這條路徑,他就毫無疑問地向 Alice 證明了他擁有秘密代碼的主張。此外,在這種情況下,他不需要透露實際的代碼。

關於 Bob 和 Alice 的隱喻可以在這裡找到。

明白了,那它是如何被使用的?

目前,ZKP 正在與區塊鏈技術共同發展。

Zcash 是一個加密平台,使用一種獨特的零知識證明迭代(稱為 zk-SNARKs)。它允許本地交易保持完全加密,同時仍然在網絡的共識規則下得到確認。這是一個該技術在實踐中使用的絕佳例子。

儘管零知識證明有潛力改變當今數據系統驗證信息的方式,但該技術仍被認為處於初級階段——主要是因為研究人員仍在探索如何最好地利用這一概念,同時識別任何潛在的缺陷。然而,這並不妨礙我們在產品中使用這一協議!

要深入了解該協議的技術方面和歷史,建議觀看這段 YouTube 視頻。

日本電話卡推介 / 韓國電話卡推介
一㩒即做:香港網速測試 SpeedTest HK