零知識證明如何解決以太坊性能問題
二級標題
二級標題
二級標題
當我們談論區塊鏈性能時,我們談些什麼?
尤其是以太坊,作為擁有最多開發者和應用的區塊鏈平台,越來越多的人在上面嘗試開發好玩有用的應用,但平台能提供的性能支撐極其有限,因此大家長期以來都在高喊「以太坊需要擴容」! ! !
二級標題
二級標題
二級標題
但可能大部分人還是覺得「安全」和「去中心化」是不能放棄的,選擇繼續留在以太坊。這導致「以太坊殺手們」冷冷清清淒淒慘慘無人問津,能開飛機的公路上卻沒有車,性能「優勢」完全沒有空間展現。
二級標題
二級標題
二級標題
以太坊性能到底怎麼樣?
並且,造成以太坊網絡擁堵的成本非常低。
二級標題
二級標題
以太坊令人尷尬的性能現狀讓其核心開發團隊和社區一直在探索各類擴容方案。於是大家經常聽到一系列花哨的名詞:分片(Sharding)、支付通道、狀態通道、Plasma、Truebit、ZK-Rollup、Optimistic Rollup 等等,以及一個概念Layer-2。
二級標題
二級標題
二級標題
零知識證明為什麼有用?
零知識證明,可能是目前最具應用前景和想像力的密碼學黑科技,可以在不洩露任何其他信息的前提下證明一個命題的正確性。兩個關鍵詞——「不洩漏」和「證明」,一結合可以說威力無窮,可以實現很多反直覺的炫酷特性。
在擴容方向上,我們並不需要太關注零知識證明技術的「不洩露」特性,這個往往跟隱私保護相關,我們重點關注其「證明」的能力。簡而言之,鏈上資源或者說帶寬是有限的,我們需要把大量計算遷移到鏈下進行,因此需要技術能夠「證明」這些計算在區塊鍊鍊下真正發生過。》。真正要理解零知識證明可能會有些燒腦,但真心很有趣,大家感興趣不妨試試。
二級標題
二級標題
二級標題
為什麼說基於零知識證明擴容方案可能是更好的方向?
我們不妨回顧一下開始的第一個問題,當我們談論區塊鏈性能時,我們還是希望區塊鏈的兩大根基——「安全」和「去中心化」盡量少受影響。如果有擴容方案能做到這個,就是真的是非常難能可貴的。
基於零知識證明的二層擴容方案ZK-Rollup,就居然真的可以在不犧牲「安全」和「去中心化」這兩點的前提下,很好地解決區塊鏈性能問題!
不熟悉的同學可能會問:零知識證明擴容代表方案ZK-Rollup 到底是什麼?
首先我們最好來理解下什麼是Rollup。
Rollup 顧名思義,有「捲起」和「匯總」的意思,可認為是一大類Layer-2 擴容方案的統稱。
Rollup 特指先在鏈下進行複雜的計算和狀態維護,再將與狀態更改相關的數據通過合約調用的方式,利用更便宜的CALLDATA 在鏈上保存數據,將大量交易「捲起/匯總」打包成一個交易,最終在保證了「數據可用性」的前提下提高TPS。
Rollup 方案的共同點是強調鏈上「數據可用性」,即任何人都能根據鏈上保存的數據,復原出全局的狀態,從而消除數據可用性問題帶來的安全風險。
這一特點讓Rollup 方案(data onchain)相對於Plasma 這類data offchain 的方案設計更簡潔且更易實現。
Layer-2 這個概念其實特別好,因為這類方案的設計思路就是以太坊的底層幾乎不需要任何改動,底層還是嚮往常一樣處理交易,所以不會影響底層的安全性,讓各種各樣的海量交易在二層來處理,從而減輕底層鏈的壓力。
Plasma 是前兩年最火的以太坊二層擴容概念,整個社區花費了非常多的精力來討論和實現,過程中演變出來一系列方案,比如Plasma MVP、Plasma Cash、Plasma Debit、Plasma Prime.. ....
Plasma 家族的中間方案非常多,理論上都可行,但是就是遲遲不能落地。這裡面的核心原因就在於Plasma 各類方案都沒有保證「數據可用性」,從而使協議變得比較複雜,實現難度很大,顯得很不實用。
而ZK-Rollup 方案起源於18 年下半年,由Barry Whitehat 和Vitalik 先後提出。
其關鍵就在於ZK(Zero Knowledge),每一次的狀態轉變都需要提供零知識證明,由主鏈上的合約進行驗證,只有驗證通過才能更改狀態。即每一次狀態轉變都嚴格依賴密碼學證明。
ZK-Rollup 方案利用了目前最流行的零知識證明技術zkSNARK 在壓縮鏈上計算量的同時保障了數據正確性。
利用一棵Merkle Tree 存儲賬戶狀態,合約只保存Merkle Root。 Operator(運營者)收集用戶的交易,批量打包這些交易,並生成zkSNARK 證明,具體會證明交易的合法性(比如驗證簽名),以及前後狀態下的Merkle Root。
Operator 把Merkle Root 連同各交易數據和zkSNARK 證明提交至合約,合約驗證通過才將新的狀態寫入。
由於所有交易的計算過程不用在合約中執行,無需將大量狀態寫入合約storage,並且zkSNARK 證明大小(很小)與驗證時間(很快)是常數,不跟隨交易數量增長,因此ZK-Rollup 可以極大地提高交易TPS。
ZK-Rollup 的鏈上性能限制僅依賴於CALLDATA 存儲數據的成本。隨著以太坊Istanbul 升級,CALLDATA 使用成本降為原來的1/4,ZK-Rollup 的性能則獲得4 倍提升,TPS 可達到近2000!
TLDR,ZK-Rollup的原理其實可以用一句話講清:鏈下進行複雜的計算和證明的生成,鏈上進行證明的驗證和關鍵狀態的維護。
上面提到Rollup,可能有同學會問:ZK-Rollup 與其他Rollup 方案的核心區別是什麼?
的確還有其他多個Rollup 方案,比如Optimistic Rollup 就是當中較為熱門的一個,它與ZK-Rollup 的核心區別在於具體如何保證狀態更改的正確性。
Optimistic Rollup 方案形成於19 年下半年,由John Adler 首次提出,後面主要由Plasma Group 從Plasma、ZK-Rollup、shadow chain 等方案中藉鑑,進一步完善和擴展。
關注以太坊的同學對Plasma 一定不會陌生。
二級標題
二級標題
二級標題
ZK-Rollup的發展現狀究竟如何?
目前已有多個團隊基於ZK-Rollup 方案開發新一代產品,毫無疑問ZK-Rollup 是目前落地速度最快、最有前景的二層擴容方案,在眾多擴容方案中獨佔鰲頭。
例如Loopring 團隊已經率先上線了基於ZK-Rollup 的去中心化交易所(DEX),無需用戶抵押資產,在性能上卻能媲美中心化交易所(CEX),不再受底層鏈性能製約,訂單交易TPS 達到了驚人的2025!
零知識證明在以太坊擴容方向上具體有哪些發展趨勢?
零知識證明在以太坊擴容方向上具體有哪些發展趨勢?
零知識證明在以太坊擴容方向上具體有哪些發展趨勢?
二級標題
零知識證明在以太坊擴容方向上具體有哪些發展趨勢?
我們再次回顧一下,零知識證明二層擴容方案最大的優勢在於不犧牲「安全」和「去中心化」,也不需要對以太坊底層做任何改動,卻能獲得巨大的性能提升。
這一切源於零知識證明技術近年來的快速發展,以及以太坊團隊大概在四五年前就在底層鏈層面為這一切做好了技術準備,提供了必要的密碼學運算支持。
零知識證明技術真正讓以太坊擴容從理論走向了實際,我相信未來這個方向還會有更多新的突破。
而以太坊社區很可能會從解決智能合約通用性問題、降低零知識證明應用開發難度、嘗試更多類型的應用等方面來進一步探索擴容。
二層擴容概念下,各類普通的或者追求性能的交易可以在高效地跑在二層,享受更快的響應速度和低廉的使用成本,而一層也就是主鏈則專門負責承載更高價值的交易,並為此付出更高的成本。
另外,零知識證明還是解決區塊鏈隱私問題的唯一解決方案。這一方面以太坊社區也有著很棒的進展。


