我們可以從硬件需求的角度來觀察技術的進步。伴隨新需求和用例的出現,芯片製造商設計了專門用途的GPU、FPGA 和ASIC,以對特定的功能和軟件進行了優化。科技領域的所有主要行業——從雲計算到計算機圖形,再到人工智能和機器學習,都已發展到需要硬件來加速計算的速度和效率。通常情況下,在確定一個硬件的可通用模式和特殊用途之前,製作具有初始功能(存儲內存、渲染圖形、運行大規模模擬)的芯片都相當簡單。理想情況下,隨著時間的推移這些硬件會更加便宜,更容易被消費者接受。
數碼相機的演變很好的說明了這種趨勢。 1960s 半導體被集成到膠片相機中,以自動化一些簡單的功能,如測量快門速度或根據一個人試圖捕捉的光線質量來調整光圈的大小,但當時還不能實現在內存中捕捉圖像。到1970s 人們意識到可以採用磁泡(一種在內存中存儲單比特數據的原始形式)的概念來解決在內存中捕捉圖像的問題,於是使用數碼相機進行第一次實驗,並設計了一個電荷耦合器件( charge coupled device:CCD)以實現通過電子形式在矽上吸收和存儲光線。基於當時半導體的限制,相機的分辨率相當差,更不必說其速度和存儲,所以對數碼相機技術的最初描述並沒有引用百萬像素的概念。當時第一台相機的分辨率約為0.01 萬像素,且一幅圖像從緩衝器傳入內存需要23 秒,一種緊張的權衡一直存在於百萬像素的數量和相機的內存之間,直到1990s 一種新的傳感器——互補金屬氧化物半導體(the complementary metal oxide semiconductor :CMOS)——的製造成本被降低並獲得廣泛使用,百萬像素數量和內存之間的平衡才獲得了實質改善。 (現代iPhone 使用CMOS,提供約1200 萬像素的相機質量)。
在幾十年的時間裡,數碼相機從一個使用了昂貴半導體的精巧裝置,發展到價值數万美元的專業設備,再發展到存在於只需幾百上千美元即可買到的日常手機中的基礎裝置。
其它領域的發展也遵循著類似的軌跡:從通用型硬件到爭對特定應用的硬件。具體到加密貨幣領域,硬件優化的一個例子即加密貨幣挖礦:當比特幣挖礦在2009 年推出時,任何人都可以在標準的多核CPU 上運行SHA256 哈希算法。隨著時間的推移,挖礦的競爭越來越激烈,區塊獎勵下降,以及隨著人們越來越接受和想要一個全球性的、抗審查的貨幣系統,一個爭對能更有效挖礦的行業生態發展開來。首先過渡到了GPU 挖礦,使得挖礦並行程度從個位數擴展到五位數,而如今一個用於開採比特幣的ASIC 設備的算力可達大約90-100 兆哈希/秒,比CPU 芯片強大約50 億倍。
也就是說,比特幣挖礦的發展證實了去中心化貨幣不僅是可能的,而且是令人嚮往的。雖然我們正處於使用ASIC 挖礦的高級階段,但我們也處於Web 3 硬件的初始階段。
隨著區塊鏈吸引了數以百萬計的用戶,以及其所承載的應用程序的複雜性繼續地增長,兩個關鍵需求已了然於目,即隱私和可擴展性。另外,有兩個趨勢是顯而易見的,一是前針對加密貨幣領域應用而開發的專用硬件正在蓬勃發展:二是適用於消費級硬件的、以努力維護去中心化和隱私的優化算法也在加速前進。零知識證明領域的發展非常好的解釋了後一種趨勢。
對零知識證明現狀的簡要概述
零知識證明提供了一種方法,在不透露一組信息或數據的具體細節內容的情況下,以加密方式證明對這組特定信息或數據的了解。通常構建零知識證明涉及一個’Prover’ 和一個’Verifier’ 。 Prover 從系統輸入的知識中創建一個證明,而Verifier 有能力確認Prover 是在不知道輸入內容或不是在重新計算自己的情況下真實地評估了一個計算。零知識證明在當下的區塊鏈中有多種用例——最常見的是在(1)隱私領域,比如IronFish、TornadoCash、Worldcoin、Zcash;和(2)通過計算驗證鏈外狀態轉換以擴展以太坊的實現中,比如Starknet 、 zkSyn、以及Polygon 的ZK-Rollup 系列。類似Aleo 和Aztec 這樣的項目則提議同時解決隱私和可擴展性問題。
令人興奮的是,在過去十年中加密技術的進步使所有這些應用變得可行且更快,以及也許更重要的是它使抗審查和去中心化成為可能。基於算法和硬件的進步,生成證明和驗證證明已經變得相對便宜和更少的計算需求。在許多方面,這些進步都映射了類似數碼相機發展的技術大眾化進程:從一個昂貴和低效的過程開始,然後逐漸讓事情變得更便宜、更快。也許更為關鍵的是,零知識算法的進步正開始為需要通過服務器和其它中心化環境中生成證明的計算提供替代方案。
證明設置涉及算術電路,即對一組代表程序的多項式計算進行門電路表達;當你試圖擴大這些多項式所代表的信息量時,這些門電路會變得越來越複雜。理想情況下,你希望Prover 的可能輸出範圍盡可能的大,以減少Prover 通過算力蠻力計算出Verifier 期望的數值的可能性,這是一種被稱為抗碰撞(Collision Resistance)的概念。通過增加這些輸出範圍,增加了證明的概率性安全,就像在POW 挖礦中一樣。然而,大量的輸出可能非常昂貴,並且計算速度很慢。這就是證明算法和硬件進步被需要的地方。
zkSNARKs 於2011 年首次推出,是帶來進步的一個關鍵因素。 zkSNARKs 可以有效地、可控地擴大多項式的數量,這為零知識證明解鎖了速度和更複雜的潛在應用。
zkSNARK的’SNARK ‘部分代表’簡潔非交互式知識論證Succinct Non-Interactive Arguments of Knowledge’,在Web3 的背景下,這裡最關鍵的詞是’簡潔’和’非交互式’。 zkSNARK 中的一個證明只有幾百個字節,這使得Verifier 很容易快速檢查一個證明是否正確(儘管證明本身可能需要很長的時間來生成)。非交互部分也很關鍵:非交互式證明使Verifier 無需挑戰Provers 提交的聲明;在區塊鏈背景下,這種挑戰要求客戶端與驗證器的來回切換,這非常耗時且難以構建。值得注意的是,當zkSNARKs 首次和區塊鏈結合時,並沒有提到將其用於可保護隱私的區塊鍊或用於擴展交易;原始論文建議的事情是,第三方在不需要下載或編譯數據集的情況下,對大量數據運行高效地計算。雖然這個例子在理論上與隱私和擴展性方面的用例類似,但該領域的人們花了幾年時間才將zkSNARKs 應用於加密貨幣。
當零知識證明與區塊鏈相遇
第一個實現zkSNARKs 的加密協議是Zcash,一個開發於2014 年的私人支付加密貨幣。 Zcash 是一個基於比特幣UTXO 模型的POW 網絡,它的改進很好的說明了密碼學的進步帶來了更多可擴展的隱私形式。 Sprout 協議是Zcash 實施的初始協議,使用SHA256 壓縮函數來創建橢圓曲線,雖然這在密碼學上是安全的,但它也是時間和內存密集型的:生成一個證明需要數分鐘的時間和大約3KB 的內存來完成。幾年後,Zcash 核心團隊開發了名為Bowe-Hopwood-Pedersen 的新哈希函數以取代SHA256,並在2018 年將Zcash 從Sprout 協議過渡到Sapling 協議。另外,該團隊還使用了Groth16 證明系統的電路,並重新構建了他們處理網絡中賬戶的方式,這使得一個證明的生成進步到只需大約2.6 秒和40MB 的內存。從此在手機上生成證明成為可能。
對Zcash 的升級說明了兩個在零知識證明系統的改進中一直存在的有趣概念。第一個是,你可以通過組合不同的配對和證明系統來提高效率。人們可以把證明電路、曲線、約束系統和承諾方案看作是可以互換的成分,以創造具有不同速度、效率和安全假設的’零知識食譜’。第二,隱私的需求促進了這些改進——如果一個證明不是在設備上生成的(例如電腦或手機),則需要由第三方來生成,這可能會洩露相關的私人信息,因為你的’私人輸入’是以明文形式發送。我們可以把Zcash 看作是一個零知識證明基於區塊鏈領域發展的早期例子,即通過對算法的改進,可以非常迅速地優化用戶友好性和去中心化。像保護隱私的加密貨幣IronFish 這樣的新項目進一步推動了這種去中心化的價值,它使任何人都有可能直接從他們的網絡瀏覽器中進行挖礦和運行一個節點。
PLONK 進入該領域
2019年,Ariel Gabizon、Zac Williamson 和Oana Ciobotaru 發表了一篇論文,提出了一個包含幾個關鍵進展的新證明系統PLONK。第一個重大突破是,PLONK 只需一個單一的、通用的可信設置——在初始化儀式中對給定的零知識證明系統的Provers 和Verifiers 使用的通用字符串。
正如Vitalik Buterin 在他的’Understanding PLONK’ 一文中所解釋的那樣,單一可信設置是可取的,因為’不是為每個你想證明的程序提供一個單獨的可信設置,而是為整個方案提供一個單一的可信設置,之後你可以將該方案用於任何程序。 ‘ 雖然Zcash 不得不為其證明系統的每個實例(包括Sprout 和Sapling)進行可信設置,但一個PLONK 設置僅需執行一次即可由任何數量的用例永久使用。 2019 年Aztec 網絡進行了一次有176 人參加的可信設置儀式,緊接著這種操作形式也被其它致力於零知識證明的團隊使用,包括Matter Labs/zkSync、Mina,以及即將到來的新版Zcash。
PLONK 帶來的另一個關鍵進展是,它提供了相對較快的證明時間。通過測試發現,一台消費級的計算機(一台擁有16GB 內存的SurfacePro 6)可以在23 秒內產生一個證明。不過這些只是基準測試,現今實際實施的PLONK 證明可能需要更長的時間來生成證明,因為有許多實施PLONK 證明的團隊正在將其應用於需要將成千上萬的鏈外交易匯總到一個單一證明中的ZK – Rollup。這些交易通常由擁有大量算力的Prover 處理,並將這些交易的記錄發送到一個排序器,以便在以太坊的主網上發布。
在研究Rollups 時,出現了諸如如何以及在何處定位去中心化。 Matter Labs 正在採取的一種方法是zkPorter,這是一個二類賬戶,用於鏈外數據可用性的Rollups,允許用戶人們選擇在zkSync 上進行交易或者在zkPorter 上進行交易,前者zkSync 提供了L1 以太坊的安全性和每秒2000 筆交易的吞吐量,後者zkPorter 則可達每秒20,000 筆以上的交易吞吐量。更重要的是,zkPorter 被設計成一個POS 網絡,它通過’Guardians’ 質押代幣以跟踪鏈外狀態,這實現了在將交易成本降低幾個數量級的同時仍提供強大的安全保證。雖然Matter Labs 還沒有集中精力去處理Prover 的去中心化,但網絡級別的去中心化是使得Rollup 可以優先考慮中立性的同時也解鎖速度的另一種關鍵方式。另外,Aztec 是一個允許在手機或電腦上生成證明的保護隱私的Rollup,提出了一種聯合Prover 網絡的方法。不過需要注意的是,所有這些提議都處於早期階段,各團隊仍在對其具體實施方案進行迭代。
其它基於硬件的區塊鏈隱私方案還包括Worldcoin,它正在使用Semaphore 零知識證明系統來創建一個去中心化的、抗女巫攻擊的貨幣。為了做到這一點,Worldcoin 的用戶需要使用Orb 來進行虹膜掃描,以驗證每個人只註冊了一次Worldcoin,但Worldcoin 不會儲存或洩露用戶的私人信息。在註冊Worldcoin 的時候,用戶需要在他們的手機上生成一個Semaphore 公鑰,並由Orb 掃描用戶的公鑰(以二維碼的形式) 以及用戶的虹膜,由此輸出哈希值。然後Worldoin 會驗證該哈希值是否與已生成過的哈希值相匹配,確保一個人只可註冊一次。通過使用哈希值而不是存儲生物識別數據,Worldcoin 能夠實現使用零知識證明來保護用戶隱私。
哪些東西可以以及將要被建造?
站在一場不可阻擋的技術革命的末端,宣稱它所帶來的巨大的經濟和社會變革是很容易的;如今一部iPhone 便擁有許多令人驚嘆的功能——攝影、存儲、互聯網接入、通信。但人們可能沒有意識到使這些技術成為可能所必需的努力有多麼巨大,這和站在一個還未被解決的巨大社會轉變和經濟轉變的開端是同樣是困難的,幾乎不清楚需要多長時間才能完全實現變革。
在零知識證明方案的一系列進步中,我們目前處於非常早期的階段,儘管在過去十年中,速度、效率、用戶友好性和去中心化都得到令人震驚的改進。在很短的時間內,零知識證明從被應用於極少數的面向消費者的應用,發展到被應用於為隱私和擴展性而誕生的大量應用程序和區塊鏈技術。
我們很難預測這些新興技術的另一面是什麼樣子,很難去想像當每個人都可以從手機端獲得完全的隱私交易保證,並成為眾多去中心化應用的主人時會發生什麼。是否會存在一個世界,它擁有每個人都有權使用的、無邊界的、去中心化的貨幣?當我們生活在時代的轉折點時,重要的是要牢記初心,牢記指導這個領域發展的的核心價值觀念:可訪問、去信任,以及最重要的去中心化。
ENDzCloak Network 是基於波卡生態的隱私計算服務平台,使用zk-STARK 虛擬機為通用計算進行零知識證明的生成與驗證。基於獨創的自主權數據和自證明計算技術,可以讓用戶在無需對外發送數據的情況下,實現對數據的分析和計算。通過波卡跨鏈消息傳遞機制,可以為波卡生態內的其它平行鏈以及其它公鏈提供數據隱私保護支持。項目會採用“零知識證明即服務”的商業模式,打造一站式的多鏈隱私計算基礎設施。原文出自a16z,原文鏈接:https://a16z.com/2022/04/15/zero-knowledge-proofs-hardware-decentralization-innovation/
轉載請註明原文與本文出處及翻譯團隊zCloak Network