作者:Daniel Li
出品:CoinVoice
在經歷了Web2.0創新帶來的一系列期望和失望之後,現在的人們比以往任何時候都更加註重安全、隱私和數據所有權。而快速發展的Web3.0最大特徵之一就是讓參與者對其內容、數據和資產擁有完全所有權,切實保證了參與者的隱私安全,激發了人們內心對互聯網發展的新信心,那麼零知識證明在其中將扮演怎樣的角色,它是否真得能讓這一數字烏托邦成為現實?
Web1到Web3的演進
web(World Wide Web)即全球廣域網,也稱為萬維網,它是一種圖形信息系統,為瀏覽者在Internet上查找和瀏覽信息提供了圖形化的、易於訪問的直觀界面,其中的文檔及超級鏈接將Internet上的信息節點組織成一個互為關聯的網狀結構。
web1.0是一個點對面的信息傳播時代。一般由一家公司生產信息並存儲在本地服務器上,允許讀者進行單向交互,表現形式是各類網頁,如早期的各類門戶網站:新浪、網易、搜狐等。
Web2.0是相對於Web1.0的新的時代,用戶參與到了內容的製作當中,表面上是“點對點”的交互形式,但數據還是存儲在集中的服務器中,表現形式是各類APP,如目前國內佔據主導地位的社交媒體平台微博、微信和抖音。
Web3.0集成了1.0(數據所有權)和2.0(交互)等優勢,但最大的不同是用戶擁有了對數據的完全的控制權和所有權,數據不再存儲在中心化的服務器中,而是分佈式存儲在參與網絡管理的各個節點中,表現形式是區塊鏈行業的各類Dapp,如Metamask、Uniswap等。
從本質上講,Web3.0是去中心化的互聯網:
(1)任何人都可以參與其中(無許可和審查)
(2)沒有人能支配用戶的數據,除了用戶自己(分佈式存儲)
(3)不必去相信任何人(去信任)
Web3對安全和隱私的要求都需要新的技術來實現,幸運的是人們發現了零知識證明。零知識證明允許用戶私密地向去中心化網絡共享信息,並且保證用戶從網絡接收的數據是真實的,無需信任第三方,兼顧隱私和安全,成為突破Web3.0安全保密性屏障的核心技術。
什麼是零知識證明?
零知識證明並非新生事物,早在16世紀文藝復興時期就曾經出現過。它指的是證明者能夠在不向驗證者提供任何有用信息的情況下,使驗證者相信某個論斷是正確的。
零知識證明實質上是一種涉及兩方或更多方的協議,即兩方或更多方完成一項任務所需採取的一系列步驟。證明者向驗證者證明並使其相信自己知道或擁有某一消息,但證明過程不能向驗證者洩漏任何關於被證明消息的信息。簡而言之,零知識證明就是既能充分證明自己是某種權益的合法擁有者,又不把有關的信息洩露出去——即給外界的“知識”為“零”。
為了方便理解,我們簡單舉一個例子:
假設A需要向B證明自己擁有某個房間的鑰匙,並且房間只能通過鑰匙才可以打開,任何其他方式都無法打開,那麼以下兩種方案哪種屬於應用了零知識證明?
方案一: A把鑰匙出示給B,B用這把鑰匙打開該房間的鎖,從而證明A擁有該房間的正確的鑰匙。
方案二: B確定該房間內有某一物體,A用自己擁有的鑰匙打開該房間的門,然後把物體拿出來出示給B,從而證明自己確實擁有該房間的鑰匙。
通過兩種方式A都可以向B證明,自己擁有房間鑰匙,但方案一,在交易過程中,B看到了A的鑰匙信息,在零知識證明中要求,證明者需要在不向驗證者提供任何有用信息的情況下,使驗證者相信某個論斷是正確的,方案一泄露了信息,故方案一排除;而方案二,A在沒有洩露任何相關信息的情況下,讓B確信了自己擁有房間的鑰匙,所以答案是方案二。
上述的案列的成功,必須滿足一定的規則:
(1)A無法欺騙B,若A取出的東西不是來自房間裡的,則B可以分辨的出來,即A成功欺騙B的概率很低,我們將這一規則稱之為——正確性;
(2)B無法欺騙A,若A取出的東西是來源於房間裡,B無法欺騙A,A有絕對的優勢可以確保B相信他能證明。我們將這一規則稱之為——完備性;
(3)正確性和完備性,就是在最小洩露協議中零知識證明所必須具備的性質。二者不可或缺,否則會導致整個邏輯無法閉環,零知識證明也就不存在了。而在未洩露任何信息的情況下,完成零知識證明,我們稱之為——零知識性。
為什麼零知識證明很重要?
從應用角度來說,零知識證明有兩個非常重要的方向:
(1) 隱私計算
零知識證明可以滿足消息的隱私性,可以解決常見的區塊鍊網絡中因透明性所帶來的地址和資產額度等消息洩露。例如在區塊鏈交易中,如果你需要證明你擁有某種資產,但同時又不想暴露資產的任何信息,那麼就需要用到零知識證明。
隱私計算是零知識證明的一個重要的應用領域。若想保護隱私,則可以通過密碼學的解決方案對鏈上數據進行加密,讓鏈上的不同交易之間找不出關聯性。零知識證明可以驗證計算而不會暴露有關輸入和計算本身的任何信息,保證鏈上數據隱私和安全。
Web3.0 至關重要的一點是用戶自身真正掌握身份和數據所有權。但當前區塊鏈上所有的信息都是公開的,人們通過一些手段就可以輕易得獲取用戶的信息(當然這本身也是區塊鍊網絡共識的特性)。雖然目前區塊鏈用戶尚沒有廣泛且強烈的隱私意識,但隨著發展,這種需求在未來一定是更加迫切且長期存在的。所以要實現Web3.0 的願景,用戶必須要有權力擁有自己的鏈上隱私。因此可以說隱私未必是必選項,但一定是可選項。
(2) 拓展性
若常用的區塊鏈平台中產出新區塊的驗證時間很長,可直接更改為一人(節點)驗證並生成證明,網絡中的其他參與者都掌握快速驗證該證明的方法,而不需要每個參與者都花費大量的時間來直接進行驗證。
這涉及共識的成本問題,從經濟學角度來看,以太坊,比特幣等區塊鍊網絡交易成本高昂的原因在於:共識必須是昂貴的,廉價的共識一定程度上是不可信的。而其中的成本主要來自於區塊鏈需要若干台設備的重複計算才能達成一致的共識。例如POW共識機制中,1000台機器做重複的計算工作,效率不會大於一台計算機的效率,但其所需要的成本是一台計算機的1000倍。這是所有的主流共識協議,無論是POW還是POS,為確保去中心化的共識所必須付出的成本。也就是不可能三角的束縛。
將零知識證明和區塊鏈的一致共識結合起來,就可以達到僅用一台設備即可運行計算完成1000台設備重複計算的工作,從而極大降低了網絡成本。零知識證明,通過採用密碼學的方法,讓其他設備驗證一台設備計算的可靠性,而非直接參與重複計算。而且,在成本昂貴的區塊鍊網絡上,驗證計算的正確性要比重複計算便宜得多。
因此,區塊鏈依舊負責網絡的共識和安全,而一些計算的工作則可以交給零知識證明在區塊鍊網絡外部完成,提升了區塊鏈的拓展性。
零知識證明在Web3.0中的應用零知識證明可用於保護不同領域中的數據隱私權:
(1)金融:如抵押貸款申請人可以證明他們的收入在可接受的範圍內,而不透露他們的確切工資。
(2)在線投票:零知識證明允許選民匿名投票,並驗證他們的投票是否包含在最終計票中。
(3)身份驗證:零知識證明可用於對用戶進行身份驗證,而無需交換密碼等機密信息。以太坊上的Polygan ID就是採用了零知識證明的驗證方案,它既幫助了用戶在基於區塊鏈的Web3平台上保護他們的隱私,同時滿足監管要求的KYC驗證規範,用戶可以自由選擇何時以及共享哪些數據。
(4)機器學習:零知識證明可以讓機器學習算法的所有者說服其他人了解模型的結果,而無需透露關於模型本身的任何信息。
(5)區塊鏈:比特幣和以太坊等區塊鏈能保證鏈上數據的透明性使人人都可以驗證鏈上交易。這意味著參與者幾乎沒有了隱私,可能導致數據的非對稱性,而零知識證明可以幫助保護區塊鏈參與者的隱私權。
零知識證明在區塊鏈領域已經有了豐富的應用場景:
(1)Layer 2 擴容:零知識證明的可驗證計算,允許L1 將交易處理外包給鏈外高性能係統(也稱為Layer 2)。這使得區塊鏈可以在不損害安全性的情況下進行擴容。例如StarkWare 正在使用運行零知識證明友好代碼的專用虛擬機構建一個可擴展的智能合約平台StarkNet。 Aztec 還允許他們的Layer 2 程序私下運行,而且不會洩露有關用戶交易的任何信息。
(2)隱私L1: Aleo、Mina 和Zcash 等L1 公鏈允許交易者使用零知識證明隱藏發送者、接收者或金額(其中Aleo 是默認使用零知識證明,而Mina 和Zcash 是可選使用)。
(3)去中心化存儲: Filecoin 使用零知識證明(在GPU 上運行)來證明網絡中的節點在正確存儲數據。
(4)區塊鏈壓縮: Mina 和Celo使用零知識證明將同步到鏈上最新狀態所需的區塊鏈數據壓縮成一個小證明。
零知識證明的挑戰在哪裡?
零知識證明已被證實未來有巨大的潛力,但是當前離廣泛應用還有很多難題尚未得到解決。
從數學意義上來講,零知識證明並非真正的證明,因為證明者說謊而不被驗證者識別的概率,雖然可以無限趨近於零,但它永遠不會到達零。只要不是零,就非邏輯上的零知識證明,因此零知識證明並不能保證100 %有效。
硬件方面,市面上目前還沒有專門用作零知識證明相關的硬件和軟件。零知識證明需要證明者和驗證者之間不斷交互,因此需要大量的計算能力,這讓零知識證明不適合在速度慢或移動的設備上使用。
隨著Web3世界的不斷構建,用戶對性能、隱私以及新型應用程序和協議的需求將日益增長,零知識證明在其中的作用會越來越凸顯。雖然目前零知識證明還有不少局限性,但人們對零知識證明的探索將會越來越深入,零知識證明也將憑藉其在隱私計算、L2 可擴展性、安全保護等方面的卓越表現,成為Web3世界的護身符,對Web3 世界產生巨大的影響。