阿賈克斯財經網>區塊鏈>一文讀懂零知識證明(ZKP)
点差低至0.1点点差低至0.1点,市场上最低的手续费。
0.25秒执行交易平均0.25秒执行订单及每秒执行高达5,000订单
双重牌照监管澳洲ASIC监管及毛里求斯FSC监管
5級深度ECN流动性机构经纪商提供多达5级深度ECN流动性

一文讀懂零知識證明(ZKP)

一文讀懂零知識證明(ZKP)

區塊鏈本身的一個關鍵優勢就是透明性,然而在許多情況下,智能合約應用卻出于各種商業或法律原因需要保障數據隱私,比如傳入專有數據觸發智能合約執行。現在,越來越多項目都采用零知識證明(ZKP)技術在公鏈上保護隱私。(注:零知識證明指一方向另一方發送加密證明,在不透露數據內容的情況下證明自己擁有某個數據)在區塊鏈網絡中,零知識證明只披露某條隱藏信息是有效且為證明者所擁有的。

本文將詳細探討零知識證明如何保障隱私,而隱私保護是零知識證明對用戶的核心價值。另外文中還會列舉零知識證明在區塊鏈上的各種用例,以及如何利用 Chainlink 的 DECO 技術建立保護隱私的預言機網絡,證明數據來自某一 web 服務器的同時保護數據隱私,并實現向后兼容。

零知識證明的運行機制

零知識證明最早由 MIT 的 Shafi Goldwasser 和 Silvio Micali 在 1985 年一篇名為《互動式證明系統的知識復雜性》的論文中提出。作者在論文中提到,證明者(prover)有可能在不透露具體數據的情況下讓驗證者(verifier)相信數據的真實性。零知識證明可以是交互式的,即證明者面對每個驗證者都要證明一次數據的真實性;也可以是非交互式的,即證明者創建一份證明,任何使用這份證明的人都可以進行驗證。零知識證明目前有多種實現方式,如 zk-SNARKS、zk-STARKS、PLONK 以及 Bulletproofs+。每種方式在證明大小、證明者時間以及驗證時間上都有自己的優缺點。

零知識證明有三個基本特征,即:

完整性:如果 statement 為 true,則誠實的驗證者可以相信誠實的證明者確實擁有正確的信息。

可靠性:如果 statement 為 false,則任何不誠實的證明者都無法說服誠實的驗證者相信他擁有正確的信息。

零知識性:如果 statement 為 true,則驗證者除了從證明者那里得知 statement 為 true 以外,什么都不知道。

總而言之,要創建零知識證明,驗證者需要讓證明者執行一系列操作,而證明者只有在得知底層信息的情況下才能正確執行。如果證明者亂蒙一個結果,那么驗證者極有可能在驗證中發現并證明他的錯誤。

一文讀懂零知識證明(ZKP)

零知識證明概念演示,如何在不透露數據內容的情況下向對方證明擁有數據

如果要用一個概念直觀地解釋零知識證明如何證明用戶擁有數據,可以想象一個山洞只有一個入口,洞里面有兩條路(路徑 A 和路徑 B),這兩條路由一扇門連接,要說出密碼才能通過這扇門。Alice 希望向 Bob 證明她知道開門的密碼,但不想將密碼透露給 Bob。因此,Bob 需要站在山洞外,Alice 從其中一條路走進山洞,而 Bob 并不知道她選了哪條路。接著,Bob 指定 Alice 從其中一條路回到山洞入口(注:這是隨機選擇的)。如果 Alice 最初選擇從路徑 A 走到門口,但 Bob 讓她從路徑 B 回來,唯一的方法就是穿過那扇門,而穿過門必須知道密碼。為了充分證明 Alice 真的知道門的密碼,而不是運氣好剛好選到了同一條路,這個過程可以反復重復好幾次。

這一步操作完成后,Bob 就可以非常確信 Alice 知道門的密碼,與此同時 Alice 也不用向 Bob 透露密碼是什么。雖然以上只是零知識證明機制簡單的概念演示,但真正的零知識證明運用的是密碼學,在不透露數據的情況下證明數據的存在。在這個山洞的示例中有一個輸入數據,一條路徑和一個輸出數據。在計算機中也存在類似的系統和電路,傳入數據,數據通過某些電路門之后再輸出。零知識證明利用了類似這種電路機制來創建證明。

想象有這么一種計算機電路,傳入數據,并輸出某一拋物線上的值。如果用戶能夠對拋物線上的某一點連續給出正確答案,那么就可以確信他知道這條拋物線函數是什么,因為每一輪成功猜出正確答案的概率會越來越低。你可以把電路理解成 Alice 在山洞里走的路徑。如果她能夠順利通過電路,那么就說明她極有可能知道穿過電路的“密碼”。在不透露任何具體信息的情況下證明自己擁有數據,將帶來許多關鍵價值,特別是對區塊鏈領域而言尤為如此。

零知識證明的價值

零知識證明的主要價值是可以在以太坊等透明的公鏈上利用隱私數據集。區塊鏈本質上透明度非常高,任何在區塊鏈網絡中運行的節點都可以查看并下載所有儲存在賬本中的數據,而區塊鏈結合了零知識證明技術,可以讓用戶和企業用隱私數據來執行智能合約,并且不透露具體的數據內容。

供應鏈公司、企業和銀行等傳統實體希望創建并執行智能合約,但又為了在競爭中保持優勢需要保護商業機密,因此在區塊鏈網絡中保障數據隱私就顯得至關重要。另外,這些實體通常受到法律監管約束,必須保護客戶個人身份數據隱私,并要遵守歐盟通用數據保護條例和美國健康保險便攜性和責任法案(HIPAA)等各項法律法規。

聯盟鏈的出現可以有效保護機構交易數據隱私,但聯盟鏈在網絡規模上卻遜色于公鏈,公鏈可以覆蓋全世界各地的用戶,并形成巨大的網絡效應。而零知識證明可以使這些機構安全地與公鏈網絡交互,并同時保護內部敏感數據隱私。因此,零知識證明成功為傳統企業激活了一些列公鏈的應用場景,推動創新,并建立更高效的全球經濟體系。

零知識證明應用

Zcash 等區塊鏈已經開始采用零知識證明,用戶可以創建隱私交易,隱藏交易金額以及發送者和接收者的地址。去中心化預言機網絡可以將智能合約接入鏈下數據和計算資源,也可以應用零知識證明來證明某一鏈下數據,并同時在鏈上隱藏數據內容。

DECO 是目前 Chainlink 正在開發的基于零知識證明技術的預言機解決方案,也是 Chainlink 網絡的安全鏈下計算套件中的一個隱私保護預言機協議。DECO 在 HTTPS/TLS 協議基礎上進行了擴展(注:HTTPS/TLS 是互聯網最常用的數據傳輸協議),保障數據從各個隱私和付費數據源傳輸過程中的隱私性和防篡改性。DECO 可以與現代 TLS 版本兼容,無需使用可信硬件,并且可向后兼容,服務器端無需修改。因此,使用 DECO 的 Chainlink 預言機節點可以證明數據來自可信服務器,并在鏈上隱藏數據內容。另外,由于維護了 TLS 托管鏈,因此還可以證明數據源。

DECO 等零知識證明方案可以實現一系列智能合約應用場景,其中包括低抵押貸款(undercollateralized loans)。在低抵押貸款中,貸款人既可以證明自己的信貸資質,又可以保護自己的隱私。具體而言,貸款人可以基于權威網站上的記錄生成信貸資質,并隱藏姓名、地址或信用分數等敏感信息(注:只顯示信用分數是否超過某一閾值)。

DECO 還可以用來創建去中心化身份認證(DID)協議,比如 CanDID 用戶可以擁有并保管自己的身份認證信息,而不是讓中心化的第三方托管這些信息。這些身份認證信息由名為“issuer”的機構簽名,這些權威機構可以將用戶與公民身份、職業和教育背景等身份信息掛鉤。DECO 可以讓現有 web 服務器成為 issuer,為賬戶提供秘鑰共享管理功能,并基于社保卡號等確定性的獨特身份認證實現隱私版的抗女巫攻擊功能。

最后,DECO 等零知識證明方案不僅可以為用戶帶來價值,還能讓傳統機構和數據提供商將其專有的敏感數據變現,并充分保障數據隱私。最終只在鏈上公布零知識證明的證明結果,而數據內容不會直接公布在鏈上。這為數據提供商打開了新的市場。數據提供商可以變現數據并提高收入,并同時充分保障數據隱私。另外再加上 Chainlink Mixicles,不僅可以保護協議中輸入的數據隱私,還可以保護協議中的條款隱私。

企業和機構可以有機結合區塊鏈網絡的透明性以及零知識證明的隱私性,在最大程度上實現價值,既保護內部數據隱私,又將數據用于智能合約應用中。

請閱讀 Chainlink 2.0 白皮書,更深入地了解去中心化預言機網絡在保護隱私的智能合約系統中的意義和作用。請訂閱 Chainlink 新聞,第一時間了解 Chainlink 網絡的最新消息

相关内容