零知識證明將是 Web3 最基礎的技術之一,大多數專案將與零知識證明相關。也即是說零知識證明將影響深遠,滲入Web3的每個角落。
立此存照! (話說到這裡,過兩年回頭來看)
先說一下,什麼是Web3。簡單來說,Web3就是去中心化網路(Decentralized Web)。不談去中心化,就妄談Web3。
不可能三角的前提
說到去中心化,就離不開區塊鏈。說到區塊鏈,就逃脫不了區塊鏈不可能三角。也就是說,去中心化、可擴展性、安全性三者不可兼得。
但這是有個前提的,那就是在一定的技術條件下。在一定的技術條件下,如果要提升某一個面向或兩面,就必然犧牲其他面向。比如說,目前的許多項目號稱能夠做到TPS 到達數千上萬,升至幾十萬。沒有別的,犧牲安全性和去中心化而已。因此,這類項目,並沒有強大的安全底座,做得更離譜些,其實就是網路專案批了一個Web3 的羊皮。掛羊頭賣狗肉是也。
如果技術進步呢?
但是,三者兼得並非不可能,這就需要依靠技術進步來實現。當技術取得突破,就可能實現整體的提升。簡單舉個例子,如果運算能力和網路速度提升,就可以提升TPS 而不犧牲安全性和去中心化。
技術進步可能導致單方面的突破,或全方位的突破。例如,儲存證明的發展使得PoC 共識也能達成PoW 共識相似的安全性, 因此,區塊鏈有可能不用採用耗費能源的方式來提供去中心化的基礎信任。拜占庭共識的發展和廣泛應用使得一些安全性要求不是特別高的場景可以基於PoS 來提供退階的安全基礎。密碼學的發展和進步使得交易的安全性得到加強,安全和易用性可能得到兼顧。而零知識證明的發展,則可能提供全方位的突破,也就是說,可以為去中心化,安全性和可擴展性提供全方位的助力。
什麼是零知識證明?
簡單地說,零知識證明是一種密碼學方法,允許一方(證明者)向另一方(驗證者)證明某些資訊是真實的而不提供任何額外的資訊。
這麼說太抽象,簡單地說,這裡包含兩個面向:
1.證明:就是可以用一個證明串(一個固定長度的類隨機數)來證明一件事情,這個事情可以是一段儲存的數據,一個已經完成的計算等等;
2.零知識:也就是給你證明了相關資訊但不會洩漏相關資訊;給你證明已經做了計算,但不透露具體的計算資訊和輸入資料。
還是太抽象,我們具體一點講:例如你在百度網盤儲存了一段數據,你怎麼知道百度網盤沒有把你的數據搞丟了或者篡改了呢?你不知道,除非你下載下來再做個對比,這很麻煩,所以你簡單地選擇相信它,如果真的出了問題,就事後告它。
又比如,你在阿里雲租了一個虛機執行了一段程式。你怎麼知道這個程式的執行結果就是對的呢?你就是假設它是對的。你想的是,阿里雲費那勁騙我幹嘛?所以你就信它了。但是這裡沒有保證,也沒有證明。
但是,如果技術進步了,百度網盤或阿里雲端運算平台能夠在每次儲存或運算後都能夠給你一個你可以輕鬆驗證的證明,數學上嚴格的證明,你就不選擇簡單地相信,你就可以選擇驗證。這在去中心化網路中尤其重要,記得:Don’t Trust,Verify!
如果這些證明是公開可驗證的,就是包括你在內誰都可以驗證,同時又不暴露隱私,那就完美了。這就是零知識證明。
為啥零知識證明會無所不在
先來看看為啥百度網盤或阿里雲不提供這種證明呢?原因很簡單,零知識證明是一種新技術,儘管發展很快,但還不成熟。目前使用成本仍然非常高。簡單來說,就是產生證明比重新做一遍成本高非常多,是多個數量級的差別,因此不實用。
但是,在去中心化網路中,這種情況就稍有不同。其一,去中心化網路本身就很貴,例如以太坊的計算,你看一看Gas 費用就知道了。這麼貴是因為每個節點都要重複做同樣的計算,因此,成本是中心化計算的成千上萬倍。而如果我們能夠在鏈下計算,直接提交證明到鏈上,那麼計算就只需一次也能保證安全。這就是zkRollup 的理論基礎。大多數 zkRollup 的計算是中心化的,但是它的計算會提交到去中心化網路中去驗證,這就藉用了Layer 1 的安全性,網路透過分級就擴展了。也就是說網路擴展了,但安全性並沒有減弱,而且去中心化底座還是一樣的。
不僅可以有zkRollup 來透過零知識證明利用Ethereum Layer 1 的安全底座。我們也可以有直接革新Layer 1,有了零知識證明,我們似乎也不需要在Layer 1 做重複計算,只需要去中心化驗證就可以了。折舊衍生出zkVM,例如Aleo 就是一條新的採用零知識證明來做鏈下計算,鏈上驗證的新興區塊鏈網絡,其安全性有大量的驗證節點來保障。
那麼,既然zkRollup 可以透過零知識證明來擴展Layer 1,其他應用是也可以呢?當然可以。這就是現在很多應用直接跑一條Layer 2,直接提交證明到主鏈來借用安全性,實現去中心化的信任。如此一來,大量的Web2 的應用就可以嫁接到安全的區塊鏈網路中來,可以直接接BTC,Ethereum 或Filecoin等。
有了零知識證明為基礎,才有機會讓Web2 的應用轉移到Web3 來。一個可能的Web3 的架構就是:
-
有一些足夠去中心化的區塊鏈網絡,他們採用的共識主要是PoW 或者 PoC,或者已經有強大生態的PoS 網絡,他們建立去中心化的網絡信任,是Web3 的安全基礎;
-
零知識證明的服務層,用來提供零知識證明服務,連結應用和安全的區塊鏈網路;
-
去中心化儲存網絡,建構DA 層,利用零知識證明技術來確保隱私和保證資料的安全性;
-
各種應用,他們計算採用中心化,透過零知識證明服務層來建立證明,並透過區塊鏈網絡來進行驗證,保證正確性和完整性;資料儲存採用去中心化儲存網絡,同樣透過零知識證明來保證正確性和完整性。
還要等多久?
有人要問了,目前的Web3 應用程式好像不是這樣的啊?說的沒錯,確實不是這樣的,現在Web3 也還是一個幼苗,剛開始呢。
目前的Web3,從應用層來講,要嘛就是合約置於Layer 1,靠重複計算來提供安全性,要嘛就是只是把Token 放到合約裡來偽裝成Web3(沒有去中心化的安全保障)。一個可喜的趨勢是,許多Web3 專案可以放到Rollup 裡面運行,這樣可以透過OP 或者ZK 的方法來利用Layer 1 來提供安全性。但是,我們可以看到,目前Web3 還非常小眾,還是金融(DeFi)為主,說了幾年的GameFi,SocialFi 也是在不斷嘗試。
試想,如果沒有去中心化的儲存(足夠去中心化的DA 網路),資料就不能去中心化,大量資料互動的應用就沒法Web3。另外,零知識證明技術也才只是在理論上證明了可行性,其效率和性價比還有待從工程和方法上大大提升才行。這兩個部分,是未來Web3 發展的關鍵。當這兩方面都取得實質的突破,那麼整個網路的去中心化時代就來到了,Web3 時代也就來了。到那個時候,無論是百度雲還是阿里雲,也需要透過去中心的信任網路來證明自己的服務是可以驗證的,否則,自然有新的應用範式來適應這個需求。
具體還要等多久,不知道。但趨勢已明朗。不要對短期期望太高,也不要輕視長期漸進發展的威力,也許奇點就在下個週期。