什么是零知識證明(Zero Knowledge Proof, ZKP)?ZKP意味著A可以向B證明,他知道特定的信息,而不必告訴對方自己具體知道些什么。在這個例子中,A是證明者,B是驗證者。在密碼學中,這尤為有用,因為這將為證明者提供一層額外的隱私保護。
運行一個ZKP,要滿足以下這些參數:
完整性:如果陳述屬實,那么誠實的驗證者能被誠實的證明者說服。
可靠性:如果證明者不誠實,他們無法通過說謊來說服驗證者相信陳述是可靠的。
零知識:如果陳述屬實,那么驗證者無法得知陳述的內容是什么。
舉一個零知識證明的例子。讓我們觀察一下阿里巴巴洞穴是如何運作的。在這個例子中,證明者(P)對驗證者(V)說,他知道洞穴后面暗門的密碼,并提出在不向驗證者透露密碼的情況下證明此事。那么,其驗證過程如下圖所示:
什么是零知識證明
-Image courtesy: Scott Twombly (YouTube channel)-
證明者可以走路徑A或者路徑B,假設他們一開始決定通過路徑A到達暗門。同時,驗證者V來到入口,他對證明者選擇哪條路徑并不知情,并宣稱他們希望見到證明者在路徑B出現。
如圖所示,證明者確實出現在路徑B上,但萬一這僅是巧合呢?也有可能是證明者憑運氣在出發時選擇了路徑B,卻因不知道密碼被困在了門口。
所以,我們需要通過多次試驗來確定測試的有效性。如果證明者每次都能出現在正確的路徑上,那么證明者的確可以在不向驗證者透露密碼的情況下,證明自己知道密碼。
許多基于區塊鏈的技術都在使用Zk-Snarks。事實上,
以太坊在大都會階段就計劃引入Zk-Snarks,并且將其加入以太坊的功能庫。Zk-Snarks是“零知識簡潔無交互知識認證”的簡稱,是一種在無需泄露數據本身情況下證明某些數據運算的一種零知識證明。
以上內容可用來生成一個證明,通過對每筆交易創建一個簡單的快照來驗證其有效性。這足以向信息接收方證明交易的有效性,而無需泄露交易的實質內容。
這就實現了以下兩種情況:
實現了交易的完整性和隱私性。
實現了系統的抽象性。由于無需展示整個交易內部的工作方式,因此系統非常易用。 因此,以上就是區塊鏈使用的一些重要的加密函數。現在,讓我們觀察其第二個支柱,經濟學。
版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。