原文來源:R3PO
加密世界的焦點經歷了比特幣、以太坊、DeFi、NFT、元宇宙和Web3的多次變遷,唯獨缺少對加密技術本身的關注,除了比特幣的橢圓曲線加密算法(ECC)還算有一點大眾認知度,其他加密算法基本停留在研究員和開發者的自嗨中。
R3PO認為這不夠去中心化,會嚴重阻礙Web3的進一步擴展,密碼學是區塊鏈的基礎件,不應該被少數人掌握,而應走向更廣闊的領域。
R3PO希望能用新的書寫範式去闡述術語的含義,兼顧專業性和可讀性,致力於為機構投資者、項目方發現潛藏在發展中的投資機會、創業方向和切入點,尋找到未被發掘的α收益。
近期大熱的零知識證明技術仍是一個不斷發展、不斷革新的細分領域,但其技術本身又具備足夠廣闊的應用場景,因此對其進行全景梳理顯得十分重要。
零知識證明技術(Zero-Knowledge Proof)並非新概念,細細梳理可知,迄今已經經過40年的發展,誕生出多種模型和應用。
進入Web3時代,早在2017年,V神便已經註意到ZK技術在以太坊上的使用潛力,而最近Starkware獲得1億美元的融資使其總融資額度達2.25億,這代表機構是以公鏈級別的估值和潛力來看待ZK技術。這將是一個長期鏖戰的領域,會暴露出更多的投資機會。
二級標題
一級標題
二級標題
1982:財不外露,便分高低
對於財富的追求自古有之,項羽就說過:“富貴不還鄉,如衣錦夜行”,但太多的財富會引人覬覦,有沒有一種辦法,在既不暴露財富數量的同時又比較出財富的多寡呢?
1982年,後來的圖靈獎得主姚期智便設想過這個問題,這就是著名的百萬富翁問題,省略其數學過程,其大致運作模式如下:
Alice和Bob選擇代表自己財富數量的數字i和j,取值區間在1-10之間;
Alice對i進行單向加密,並將加密後的結果k發送給Bob,Bob得到一個與i相關的新值;
Bob對k進行運算後會得到一個新值m,並將其傳遞回Alice此時,Alice可以判斷m和i的關係。
這個過程可以繼續推演,雙方可在不完成信息暴露的前提下最終完成比較。
當然,以上過程並不全面,但足以說明一個問題,我們確實可以在兩方之間,並且在不暴露信息的前提下進行計算,如果將兩方擴展至多方,將區間擴展至更大範圍,那麼這就是典型的多方安全計算MPC (Secure Multi-party Computation) 問題。
百萬富翁問題是ZK討論的一個起點:
二級標題
二級標題
1985:零知識證明面世
1985年,Goldwasser、Micali和Rackoff首次提出Zero-Knowledge Proof模型,準確而言是“交互式零知識證明”模型,簡單而言就是允許在多次交互的前提下,通過ZK技術來驗證真假、大小。
此處的零知識並不完全準確,以Alice和Bob的互動為例,Alice和Bob可以互為驗證者和證明者,但是兩者間傳遞的信息不能和財富數量本身有關,這裡的零知識是指相關性為零,而並非不傳遞信息。
二級標題
二級標題
1991:非交互式零知識證明
當時間來到1991年,Manuel Blum、Alfredo Santis、Silvio Micali和Giuseppe Persiano提出非交互式零知識證明,聞名即可知,此次升級重點是進行非交互式的證明過程,也就是在雙方之間不進行交互的同時,驗證一個定理、假說的真偽性,這看似很反直覺,但是有一個絕妙的例子可以說明:
Alice和Bob財富自由後變身數學家。 Alice離開web2去環遊web3,期間Alice繼續ZK研究。
我們假設Alice能夠在發現一個新定理的證明時,給Bob寫一張明信片,證明她在研究中取得了新進展。
這是一個非交互式的過程,準確的說,它是一個單方向的互動:只從Alice到Bob。即使Bob想回答,他也不可能。因為Alice沒有穩定的(或可預測的)地址,在任何郵件能到達她之前就會搬走。
我們約定,只要Bob收到郵件,我們不需要查看郵件內容,就可以確定“Alice取得了研究上的新進展”這個命題為真。
非交互式零知識證明將交互次數減少到最多一次,可實現線下驗證和公開驗證,前者為Rollups奠定了有效性基礎,後者耦合區塊鏈的廣播機制,可避免多次計算帶來的資源浪費。
二級標題
一級標題
二級標題
2010-2014 Zcash: SNARKs (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) 實用化場景
在比特幣網絡出現後,安全和隱私成為人們對區塊鏈的最初認知。市場上出現了一系列基於隱私的公鍊和應用,如Zerocash/Zcash使用的SNARKs,以及在Monero中使用的子彈證明Bulletproofs(BP)等。
2010年,Groth實現了首個基於ECC算法的,O(1)常數級的ZK。也即ZK-SNARKs或者ZK-SNARGs。
SNARGs: Succinct Non-Interactive Arguments
SNARKs: Succinct Non-Interactive Arguments of Knowledge
從應用角度來說,此次改進在於“簡潔”Succinct功能上,具體而言,SNARK致力於壓縮信息本身的大小,在ZCash中,程序電路是固定的,因此多項式驗證也是固定的,這使得設置只需執行一次,交易後續只需改變輸入便可複用。
在2013年,Pinocchio協議提升效率至分鐘級別證明,以及毫秒級別的驗證時間,開銷控制在300字節以內,這也是ZK-SNARKs技術真正首次落地到區塊鏈領域。
二級標題
二級標題
Mina:遞歸ZK壓縮數據
Mina不同於以太坊L2,其是一條L1級別的高性能公鏈,其運行節點只有22KB,而之所以能做到如此之小,在於其大幅度利用遞歸來證明ZK確認的有效性,即每一條信息都帶有之前的確認結果。
Step1:zk-SNARKs證明節點有效性,只需要保存其證明結果;
Step2:通過遞歸調用,確保節點有效性的正確傳遞和檢索,不需要保留所有歷史數據,實現極致壓縮數據的效果;
傳遞結果的有效性,而非保存全節點數據,這是Mina證明行之有效的手段,而在以太坊L2,ZK-Rollup可以通過打包多次交易數據,結算一次的方式完成有效性證明,而進一步推演,L2之上可以迭加L3,或者Dapp應用,這些都是ZK可以發展的細分賽道,比如dYdX目前運行在Starkex之上,以及架構在Starkware之上的L2 ImmutableX,都證明ZK的使用潛力,這個賽道的價值目前仍未被全部挖掘,仍留有長期的投資價值。
至此,ZK-Rollup涉及所有的技術要件就已經基本齊備了,我們已經裝備好足夠的ZK基礎知識,並且可以總結ZK的以下特點:
非交互式:不需要多次驗證,只需一次驗證就可以廣播至全網;
零知識:不需要透露信息本身的特徵,可在全網進行公開傳播;
知識:知識不是公開、易得的信息,必須具備獨特的價值,比如經濟價值、隱私價值等;
二級標題
一級標題
二級標題
ZK-STARK:開發難度以10年計的種子選手
對比二者的差異,主要在於STARK中的S是Scalability之意,面向的是更加大型數據的複雜使用場景,但其整體上仍舊是一個正在發展中的技術路線。
本文不過多涉及具體L2之間的區別,但有一點很明顯,除StarkWare之外,其他的L2項目,包括zkSync、Aztec、Loopring、Scroll等都採用的是SNARKs技術路線。
究其原因,在於STARK的開發難度過大,目前只有StarkWare有能力進行自研,但其好處也十分明顯,相較於SNARK,其可承載的運算量也會更大,在運行大型數據時,其安全性會更高,比如游戲、社交、NFT等方向。
二級標題
二級標題
ZK-Rollup:數據的上探,信息的下鑽
總結
總結
總結
我們從百萬富翁問題出發,由MPC問題過渡到零知識證明領域,出於經濟原因,交互式的零知識證明不完全適用於鏈上活動,而非交互零知識證明逐漸成為主流。
隨著Zcash的發展,SNARKs技術日漸應用到其中,使ZK技術從單純的密碼學研究對像變身為區塊鏈領域中使用的工程手段,在隱私、安全、效率方面發揮自己的作用。
以太坊擴容場景,則使ZK成就了L2,Rollup技術路線戰勝其他競爭對手,zk-STARKs也逐漸發展起來,有望激活挖礦、GameFi、NFT等更為普遍的使用場景。
原文鏈接
原文鏈接