全方位解析零知識證明(ZKP),有什么值得關注的信息
區塊鏈本身的一個關鍵優勢就是透明性,然而在許多情況下,出於各種商業或法律原因需要保障數據隱私。現在,越來越多項目都採用零知識證明(ZKP)技術在公鏈上保護隱私。(注:零知識證明指一方向另一方發送加密證明,在不透露數據內容的情況下證明自己擁有某個數據。)在區塊鏈網絡中,零知識證明只披露某條隱藏信息是有效且為證明者所擁有的。
零知識證明的意義零知識證明(Zero-knowledge proofs)是一種在不暴露聲明本身的情況下證明聲明有效性的方法。“證明者”(prover)是試圖證明聲明的一方,而“驗證者”(verifier)負責驗證聲明。
零知識證明是一種加密協議,其允許一方(證明方)向另一方(驗證方)證明一個語句是否正確,而無需透露任何超出語句本身是否真實的額外信息。換句話說,證明者可以說服驗證者,讓後者相信證明者知道一些東西,而證明者無需實際透露他們知道什么。這是通過使用復雜的加密算法來創建可以在不泄露任何關於證明本身的信息的情況下進行驗證的證明來實現的。零知識證明在注重隱私性的場景中具有非常實用的應用性,例如在线交易、身份驗證以及其他需要保護敏感信息的應用程序。
隨着身份信息竊取成為一個越來越嚴峻的問題,人們呼籲採用更能保護隱私的方式來分享敏感信息。零知識證明更是一項應用密碼學的突破,它提高了個人信息的安全性。
零知識證明的運行機制
零知識證明最早由MIT的Shafi Goldwasser和Silvio Micali在1985年一篇名為《互動式證明系統的知識復雜性》的論文中提出。作者在論文中提到,證明者(prover)有可能在不透露具體數據的情況下讓驗證者(verifier)相信數據的真實性。零知識證明可以是交互式的,即證明者面對每個驗證者都要證明一次數據的真實性;也可以是非交互式的,即證明者創建一份證明,任何使用這份證明的人都可以進行驗證。
零知識證明目前有多種實現方式,如zk-SNARKS、zk-STARKS、PLONK以及Bulletproofs。每種方式在證明大小、證明者時間以及驗證時間上都有自己的優缺點。
零知識證明主要有三個基本特徵,即:
完整性:如果statement為true,則誠實的驗證者可以相信誠實的證明者確實擁有正確的信息。
可靠性:如果statement為false,則任何不誠實的證明者都無法說服誠實的驗證者相信他擁有正確的信息。
零知識性:如果statement為true,則驗證者除了從證明者那裏得知statement為true以外,什么都不知道。
總而言之,要創建零知識證明,驗證者需要讓證明者執行一系列操作,而證明者只有在得知底層信息的情況下才能正確執行。如果證明者亂蒙一個結果,那么驗證者極有可能在驗證中發現並證明他的錯誤。
零知識證明技術
零知識證明又分為交互式證明和非交互式證明。有兩個有趣的例子很好的解釋了這個概念。如上圖所示,男子向女子聲稱有CD處的鑰匙,女子不相信說“你拿出來給我看啊”,男子想“你讓我拿我就拿多沒面子啊”,男子說”這樣吧,按下面步驟玩個遊戲”
1. 女子站在A點
2. 男子從B點走到C點或者D點
3. 男子從B點消失後,女子從A點走到B點
4. 女子喊話“從左邊出來”,或者“從右邊出來”
5. 男子按照女子的要求從對應一側走出
女子說“你肯定作弊,剛才我喊左邊出來,你剛好就是從左邊進去的”,
男子說:“你回到A點,我們再來一遍”
如果每次都成功,說明B確實有CD處的鑰匙,該證明是需要A,B不停的交互。
非交互式零知識(NizK)證明方案由算法設置、證明和驗證定義,具體來說,我們有params=Setup(),其中輸入是安全參數,輸出是ZKP算法系統的參數。證明語法由證明=證明(x,w)給出。該算法接收某些NP語言L的實例x和見證w作為輸入,並輸出零知識證明。驗證算法接收證明作為輸入,並輸出位b,如果驗證者接受證明,則該位等於1。
通俗一點就比如說我有一個祕密,我不想告訴別人,但是我又得讓別人相信。我是知道這個祕密的,類似於這種,但是我們為什么需要有這種非交互式呢?因為交互式證明的其實只對原始的驗證者有效,其他的任何人都不能夠信任這個證明。這種場景下呢,就會導致這個驗證者可以和這個證明人串通,證明人可以僞造證明。驗證者也可以用這種方式做一些僞造。因此,驗證者必須保存一些數據,直到相關的證明被驗證完畢。這樣就會造成一些祕密參數泄露的這種風險。這種交互式證明也有它的用處,就比如說一個證明人只想讓一個特定的驗證者來去驗證,但是這個證證明人和驗證者必須保持在线,並且去對每一個驗證者執行同樣的計算。
零知識證明的價值零知識證明的主要價值是可以在透明的公鏈上利用隱私數據集。區塊鏈本質上透明度非常高,任何在區塊鏈網絡中運行的節點都可以查看並下載所有儲存在账本中的數據,而區塊鏈結合了零知識證明技術,可以讓用戶和企業用隱私數據來執行智能合約,並且不透露具體的數據內容。
供應鏈公司、企業和銀行等傳統實體希望在競爭中保持優勢需要保護商業機密,因此在區塊鏈網絡中保障數據隱私就顯得至關重要。另外,這些實體通常受到法律監管約束,必須保護客戶個人身份數據隱私,並要遵守歐盟通用數據保護條例和美國健康保險便攜性和責任法案(HIPAA)等各項法律法規。
零知識證明應用
ZKP的應用場景包括匿名可驗證投票、數字資產安全交換、安全遠程生物識別認證和安全拍賣,具體如下。
匿名可核查投票
投票是保障一個國家或控股公司民主的重要組成部分。然而,選民的隱私可能在投票過程中被泄露。此外,投票結果很難得到安全的核實。ZKP是實施匿名可核查投票的一種可用方法。根據ZKP的使用,符合條件的選民可以在不泄露身份的情況下投票表決顯示他們的權利。此外,ZKP允許符合條件的選民要求提供可核查的證據,證明他們的選票包含在負責報告投票結果的機構的最終計票中。
數字資產的安全交換
數字資產是二進制數據的集合,它們是唯一可識別和有價值的。如果兩個用戶希望交換其數字資產,則用戶的隱私,包括身份和交換數字資產的內容,可能會在交換過程中泄露。根據ZKP的使用,數字資產可以在不泄露用戶隱私的情況下交換。此外,ZKP生成了可驗證的證據,其中包含數字資產交換的過程。
安全遠程生物識別身份驗證
遠程生物識別身份驗證是一種可用於通過使用指紋、面部圖像、虹膜或血管模式等生物識別模式識別用戶訪問權限的方法。但是,在實施遠程生物識別認證時,用戶的生物識別模式可能會泄露給不受信任的第三方。使用ZKP可以解決這個問題。此外,ZKP生成還提供了可核查的證據,其中包括識別用戶訪問權限的過程。
安全拍賣
政府拍賣是政府從多個供應商中選擇最低出價的拍賣,這些供應商以競爭性方式銷售其商品和服務。本次拍賣包括兩個階段。在第一階段,多個供應商投標,但公衆不知道。在第二階段,這些投標是开放的。政府選擇中標供應商,後者出價最低。然而,中標供應商的選擇可能會泄露其他中標供應商的投標和身份。ZKP可以解決這個問題,ZKP為每個輸標供應商生成可核查的證據。該證明證實輸標供應商的投標與中標供應商的投標之間的差額是正的。
總結
零知識證明技術發展至今,已被廣泛應用於擴容、隱私等方面。在 Layer2 層,ZK rollup 項目衆多、趨於成熟;在Layer1、Layer2層,有 Filecoin、Aleo、Mina等熱門項目。
在交易隱私保護這塊的技術還是比較多的,而零知識證明技術是其中較為突出的一項,在安全領域中還有很多諸如同態,祕密分享,不經意傳輸,或者基於TEE硬件的一些隱私保護能力,可以去做一些隱私保護。但是零知識證明其優點也是很顯著,未來區塊鏈的隱私保護仍然任重而道遠,如何實現快速高效、可信的零知識證明算法都是需要進一步探索的方向。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
7月23:Mt. Gox 比特幣錢包在市場緊縮的情況下轉移了價值 28.2 億美元的 BTC
7月23:Mt. Gox 比特幣錢包在市場緊縮的情況下轉移了價值 28.2 億美元的 BTC一個引...
悅盈:比特幣68000的空完美落地反彈繼續看跌 以太坊破前高看回撤
一個人的自律中,藏着無限的可能性,你自律的程度,決定着你人生的高度。 人生沒有近路可走,但你走的每...