一文讀懂零知識證明(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以外,什么都不知道。
總而言之,要創建零知識證明,驗證者需要讓證明者執行一系列操作,而證明者只有在得知底層信息的情況下才能正確執行。如果證明者亂蒙一個結果,那么驗證者極有可能在驗證中發現並證明他的錯誤。
零知識證明概念演示,如何在不透露數據內容的情況下向對方證明擁有數據
如果要用一個概念直觀地解釋零知識證明如何證明用戶擁有數據,可以想象一個山洞只有一個入口,洞裏面有兩條路(路徑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,不僅可以保護協議中輸入的數據隱私,還可以保護協議中的條款隱私。
企業和機構可以有機結合區塊鏈網絡的透明性以及零知識證明的隱私性,在最大程度上實現價值,既保護內部數據隱私,又將數據用於智能合約應用中。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。