作者: Manta Network
標題: Manta Network:為什麼我們堅定不移地看好ZK 技術?
今年以來,ZK (Zero-Knowledge Proofs,零知識證明)無疑是我們看到最頻繁的行業詞彙之一。無論是Vitalik 關於ZK 將成為未來重大技術革命的言論,還是StarkWare、zkSync 等項目的最新進展都讓ZK 敘事在2022年備受期待。
關於零知識證明的研究最早由MIT 教授Shafi Goldwasser、Silvio Micali 和密碼學大師Charles Rackoff 在二十世紀八十年代的一篇學術論文——《交互性證明系統的知識複雜度》中提出。通過零知識證明,證明者可以在不披露信息本身的情況下向驗證者證實信息的真實性。在二三十年前,這個計算機理論學家的腦洞還被外界認為是“不靠譜的”。而最近十年,ZK 技術發展日新月異,當初論文中的設想也正成為現實。
從技術角度說,ZK 是證明者與驗證者兩方之間的一個協議,證明者可以在不透露證明本身之外任何信息的前提下,讓驗證者確認某項證明是有效的。這是證明的“零知識”部分——沒有知識或信息可以支持這條證明,除了證明本身。正是如此,這項技術才更加重要。
從應用角度來講,ZK 有兩個非常重要的方向:
隱私性——ZK 做到了信息的隱私性。在交易中,如果你需要證明擁有某種未花費的資產,但是又不想暴露資產的整個來源去向,ZK 可解決比特幣等區塊鏈平台中交易透明性帶來的信息洩露,如轉賬地址和金額;
可拓展性——若某個區塊直接驗證的時間很長,可改為由一人驗證並生成證明,而網絡中的其他人快速驗證該證明,而不再需要每個人都花很長時間來直接驗證;
ZK 主要有兩種類型:zkSNARK (簡潔非交互式零知識證明)和zkSTARK(簡潔全透明零知識證明)。 zkSNARK 的概念最早於2013年被學者提出,目前已比較成熟, Zcash 是首個應用zkSANRK 技術的區塊鏈項目。
ZK 技術目前已被用於各大Rollup 方案,來解決以太坊的可拓展性和高昂的手續費問題。 StarkWare、zkSync (出自Matters Lab)、Aztec、Loopring 是目前zk-rollup 領域的主要選手。
如何更好地理解這項密碼學技術的意義呢?我們需要從共識說起。以太坊上高交易成本背後的經濟學原因在於共識:共識一定是昂貴的,因為不貴的共識是不可信的。
假設有10,000個節點,每個節點做同樣的計算,這樣產生的結果就很可靠,不會因為少部分節點的不誠實而對共識結果產生影響。這也是為何區塊鏈可以去中心化——通過算法的手段建立信任。
然而共識的成本在於10,000台電腦重複計算,成本比在1台電腦上貴10,000倍。這是所有共識協議,不管是PoW 還是PoS 所存最大的問題。
而ZK 就是可以從本質上降低成本的一種方式——我們可以在1台電腦運行計算,其它電腦則用密碼學的方法驗證計算的可靠性,並不需要重複計算。在以太坊等比較昂貴的鏈上,驗證計算的正確性要比重複計算更便宜,更節省gas。
這也是大家紛紛看好zk-Rollup 的原因。 zk-Rollup 搭建在L1 主鏈之上,它將多筆交易打包成一筆提交給以太坊主鏈,通過零知識證明(SNARK 或STARK)而被主鏈快速驗證,而不是讓主鏈單獨處理每一筆交易,這樣每筆交易的大小會進行壓縮,同時零知識證明驗證的成本會分攤到每個交易上,於是可以節省Gas 費和提高TPS。
隱私也是ZK 的另外一個重要的應用領域。從信息論的角度來講,隱私是信息洩露的問題,想要保證鏈上隱私,必須通過密碼學的解決方案,將鏈上數據進行加密,讓鏈上的每筆交易記錄之間沒有關聯性。通過ZK 能夠驗證計算而不會洩露有關輸入和計算本身的任何信息,這也是當前唯一從密碼學手段保證鏈上隱私的工具。
在Web3.0 概念中非常重要的一點是,用戶真正掌握自己的身份和數據所有權。而目前區塊鏈上所有的信息(地址、轉賬記錄等)都是公開的,通過機器學習、大數據挖掘可以非常容易地獲得用戶的信息,相比於Web2.0 時代,隱私問題有過之而無不及。雖然目前區塊鏈用戶尚沒有廣泛且強烈的隱私意思,但如果想要實現Web3.0 的願景,人們必須要有權力擁有自己的鏈上隱私。它可以不是必選項,但一定是可選項。
為了改善區塊鍊網絡中存在的隱私洩露問題,2014年,幾位密碼學專家在比特幣的代碼基礎上,採用了zkSNARK 創造了首個可以實現完全匿名的區塊鏈項目Zcash。 zkSNARK 可以在不透露任何敏感數據(金額、地址等)的情況下來驗證交易的合法性,為用戶在使用加密資產進行交易時提供更高級別的隱私。
零知識證明首先是個密碼學協議,一方(證明者)可以在不公開解決辦法的情況下讓另一方(驗證者)相信他知道一個數學難題的解決辦法。
在隱私轉賬中,需要創建證明來驗證“一筆之前未被花費過的資產從一個用戶的地址發送到另一個用戶地址,他們被隱藏的賬戶地址都相應地更新了余額變化,且這筆資產不會被第一個用戶再花費。” Zcash 可以將用戶和交易的信息盡可能地匿名,而同時這筆交易依然可以被網絡共識有效地驗證。
匿名交易如果想要順利進行,必須滿足一定的條件。比如Zcash 需要用戶發布一個“commitment”,以及一個“nullifier”。
Commitment 是指Zcash 鏈上未花費的餘額。正如比特幣網絡一樣,Zcash 網絡上的節點也會保留各個賬戶餘額,以證明資金可以用來花費。如果用戶想要發送ZEC,需要發布一個commitment,來證明“看,我有這些錢”(但是不會公佈具體有多少錢)。而nullifier 則是用來說明同樣數量的資金已經被預留了。
如果Alice 想發給Bob一筆ZEC,她需要用commitment 來證明她擁有使用這筆資金的權力,同時她需要nullifier 來證明這些數量的錢已經為Bob預留了(當然是在不暴露Bob 身份的前提下)。交易發送方把這些私密信息加密後直接放到交易中上鍊,接收方再通過某種方式解密以獲得私密信息。
匿名轉賬和比特幣一樣依賴於哈希加密,但是zkSNARK 在其基礎上增加了一個隱私層。
zkSNARK 不僅可以用於加密資產間的匿名交易,同樣可以用於幫助越來越多的應用實現隱私化。 Web3 時代,我們已經看到了DeFi、NFT、GameFi 、SocialFi 等應用層的大爆發,鏈上行為越來越豐富,單純的匿名轉賬已經不能夠滿足人們對於隱私的需求。
想像一下,基於ZK 技術,許多大膽的創意都可以成為可能。比如完全去中心化的隱私的message board,讓用戶可以在不暴露具體身份的情況下證明自己的可信度:“我是一名美國官員”,“我是一個粉絲10萬的Twitter KOL”;我們還可以在鏈上MMO 遊戲中隱匿玩家地點,做到真正去中心化的「密碼學戰爭迷霧」,類似的事情Dark Forest 已經在做了。這樣的例子還有很多,大家可以盡情發揮想像力。但正如有人所預測的那樣,下一代的以太坊dapp 可能並不是在原有應用基礎上的改進,而是來自於前所未有的新事物。
當然ZK 技術目前仍處於早期,還有許多值得探索和改進的地方,但可以預見的是,未來將有越來越多的區塊鏈在鏈上運行ZK 驗證者。
由於ZK 技術的難度較高,目前使用ZK 技術來解決區塊鏈隱私問題的項目並不多,我們熟知的包括ZCash、TornadoCash、Aleo 等,而Manta 是波卡生態內首個基於zkSNARK 的Web3 隱私保護項目,Manta 的主要產品包括隱私支付MantaPay 和隱私AMM DEX MantaSwap。
借助於Polkadot 平行鏈之間的互操作性,MantaPay 可以將Polkadot 以及平行鏈資產兌換成隱私資產,這樣用戶可以在使用各種封裝穩定幣、BTC 等資產的同時享受隱私資產所帶來的匿名性。
MantaPay 的隱私支付產品和現在以太坊上基於智能合約的去中心化應用有很大不同,Manta Network 本身是網絡層,在速度、成本和功能等方面提供了更多的靈活性。 Manta 擁有自己的基於UTXO 的錢包地址體系,用戶可以進行隱私資產的存儲、轉賬和兌換,可以做到真正意義上的全面的隱私。舉個例子,一個用戶可以分別向不同的人發送10個和2個隱私DOT。而在Tornado Cash 上,一筆隱私交易只能提取為一筆公開轉賬,並不能被分散。
此外,Manta 的費用結構並不受ETH POW 共識的限制,而是作為專門為隱私交易而建立的網絡層,可以為用戶提供費用更低的轉賬體驗。
基於AMM 和zkSNARK 的隱私兌換協議MantaSwap 則可以完成隱私資產之間的類似於Uniswap, Curve 的去中心化交易同時滿足交易地址的隱私性。 (更多關於MantaSwap 的介紹請參考《為什麼我們需要一個隱私版Uniswap?》)
在上線Manta1.0 的MantaPay 及Manta2.0 的MantaSwap 後,Manta 3.0 將基於Manta 的基礎設施推出zkSNARK 智能合約平台,允許社區用戶和開發團隊在平台之上構建自己的各種隱私保護產品,如隱私DAO 工具、隱私NFT marketplace 等等。 Manta 的長期願景是成為區塊鏈應用的隱私保護平台,為整個區塊鏈世界提供更便捷的隱私保護服務。