零知識證明 (ZKP) 和零知識匯總 (ZK-Rollups) 如何幫助解決可擴展性問題

中級4/8/2024, 3:54:44 AM
在本文中,我們將解釋什麼是零知識證明技術,並談論一個流行的區塊鏈項目 — zkSync:zkSync中的交易如何運作以及與以太坊虛擬機(EVM)的主要區別。

轉發原文標題《ZKP和ZK-Rollups 如何幫助解決可擴展性問題》

在這篇文章中,我們將解釋什麼是零知識證明技術,並討論一個流行的區塊鏈項目 — zkSync:zkSync中的交易如何運作以及與以太坊虛擬機(EVM)的主要區別。同時討論這個區塊鏈的優點和缺點,我們認爲它可能有一個充滿希望的未來。

ZkSync是以太坊的第二層區塊鏈(Layer — L2),旨在解決以太坊網路的高費用和有限吞吐量(每秒交易數 — TPS)等問題。該平台採用ZK-Rollup技術,利用零知識證明(ZKP)批量處理主網絡(L1)之外的多個交易。只有交易正確性的加密證明和它們的壓縮數據被發送到L1,大大提高了效率並降低了成本。

Matter Labs開發,zkSync被宣稱爲完全開源(100%開源)的產品,由社區管理。據Cryptorank稱,該項目已經引起關注,籌集了4.58億美元的投資。從長遠來看,Matter Labs旨在創建一個全面的生態系統。目前,有兩個區塊鏈正在運作:zkSync Lite,用於處理以太幣和ERC20代幣的支付,以及zkSync Era,支持完整的智能合約。未來計劃包括推出一個超級鏈系統(L3),確保高安全性。Matter Labs的目標是將這項技術擴展到一個吸引下一個十億區塊鏈用戶的水平。

背景

zkSync代表了一種解決被稱爲區塊鏈三難題的可擴展性問題的新方法。這個項目,像其他第二層(L2)解決方案一樣,旨在在區塊鏈網路中找到安全性、可擴展性和去中心化之間的平衡。

  1. 可擴展性:系統有效處理增長的交易量或數據的能力,而不損失性能和安全性。
  2. 區塊鏈安全性:確保數據可靠性和保護免受未經授權的訪問、篡改或修改。
  3. 去中心化:缺乏集中控制結構。在去中心化系統中,管理和決策權被民主地分配給所有網路參與者。

以太坊專注於安全性和去中心化,強調其作爲一個點對點協議,在全球範圍內分布節點。有關節點分布的最新信息,請參考NodeWatch

爲了保持網路的去中心化,每個節點必須驗證所有交易。這本質上會拖慢網路速度。此外,在網路負載高的情況下,交易可能會變得非常昂貴,並且需要大量時間來處理。

第2層

提高以太坊網路TPS而不增加節點負載的主要任務是引入分片技術,結合過渡到PoS(股權證明)共識機制。這涉及將驗證者分成子組,處理網路的不同部分,從而減少總體負載並增加吞吐量。然而,社區已經將注意力集中在第二層解決方案上,考慮到它們的快速發展。

除了在以太坊中實施分片技術的想法之外,還出現了其他的可擴展性解決方案,比如:

  • 支付和狀態通道
  • 側鏈
  • Plasma
  • Optimistic Rollup

以及基於零知識證明(ZKP)的技術,包括:

  • Validium
  • zkRollup
  • Volition

更詳細的信息可以找到這裏

盡管分片技術仍在開發中,但Dencun硬分叉計劃於2024年初實施Proto-danksharding。這個中間步驟旨在改進第二層解決方案,使L1上的數據存儲更經濟。因此,Proto-danksharding承諾降低L2上的交易成本,作爲向全面分片解決方案邁出的一步。

乍看之下,第二層區塊鏈可能看起來相似,因爲它們的主要任務是在L1之外增加交易數量,同時將安全保障的角色委托給L1。這類區塊鏈的開發者通常聲稱他們的解決方案是最快、最可靠和最簡單的。但實際上,擴展的每種方法都有其細微差別,以及關於交易速度、安全級別或去中心化程度的不可避免的妥協。完全中心化的解決方案也很常見。所有這些方面都將我們帶回到區塊鏈三難題的根本問題。

本文,提出了評估第 2 層解決方案中使用的協議的關鍵標準。他們包括:

  • 安全,
  • 性能和經濟效益,
  • 使用便捷性,
  • 額外方面包括智能合約支持、EVM字節碼兼容性和隱私選項。

重要提示!這篇文章是由Matter Labs撰寫的,據我看來,某些內容“拉伸”了對zkRollup的支持(因爲存在明顯的利益衝突),但這並不那麼重要,主要是要看到第二層協議之間存在哪些區別。下面我將提供一個表格,並簡要描述其內容。

安全性

  • 第二層協議的“活躍性”或“可行性”假設。假設爲了維持第二層功能,總會有一些參與者始終在第一層鏈上,以應對潛在的欺詐案例。這些參與者可能是在L1上抵押了一定數量資金的驗證者(在表格中標記爲“已抵押”),也可能是爲了獎勵而確保協議安全的第三方。從表格中可以看出,使用ZKP(Validium和zkRollup)的解決方案不需要這種必要性。
  • 大規模退出問題。出於安全原因,如果需要啓動所有用戶從L2到L1的資金提取,則會出現的問題。從表格中可以看出,這個問題僅存在於Plasma協議中,更多相關信息可以在這裏閱讀。
  • 托管。L2驗證者是否可以暫時阻止或沒收用戶的資金。
  • 經濟脆弱性。包括對L2驗證者的各種攻擊,包括賄賂L1礦工、創建“影子”DAO等經濟動機驅動的攻擊。
  • 密碼學。標準和新密碼原語之間的區別。標準密碼原語更受研究,但潛在脆弱,而新密碼原語(如SNARK和STARK)提供更高的可靠性,但需要開發者額外的知識和審核。

性能和經濟性

性能方面很直接。每秒交易數(TPS)表示網路的吞吐量,在擴展的背景下,它是最關鍵的參數。

經濟方面:

  • 資本效率:這一方面對於支付通道尤爲重要。它們需要凍結等於通道中操作的平均量的資金,使得它們在資本投資方面效率較低。
  • 在L1上創建L2帳戶的交易:這也是支付通道的一個缺點,因爲在所有其他解決方案中,在L1上創建的帳戶默認在L2中運作。
  • 交易成本:與TPS一樣,這是可擴展性的最關鍵因素之一,決定了解決方案的經濟吸引力。

使用便捷性

  • 從L2到L1的提款時間:這段時間可以從幾分鍾到幾周不等。在這方面,Optimistic Rollups和Plasma尤其不方便,因爲它們需要更長的時間來提取資金。
  • 交易主觀最終性的時間:確定了交易從外部觀察者的角度在L1上變得不可撤銷的速度。例如,在Optimistic Rollups中,只需要在以太坊上確認一次,就可以實現在L1上的最終性,但完全的交易最終性大約需要一周的時間。
  • 通過客戶端代碼驗證主觀最終性:確定了輕客戶端(瀏覽器/移動錢包)是否可以檢查主觀最終性的時間。以Optimistic Rollups爲例,要確認交易的最終性,用戶必須下載並驗證過去一周的整個狀態Rollup。
  • 即時交易確認:協議是否可以提供具有完全保證的即時交易確認?還是只在L2共識層面提供此保證。
  • 即時可見最終性:可以在大多數L2協議之上實現,這意味着交易在用戶界面中會立即得到確認。只有支付通道(狀態通道)爲這些確認提供了完全的安全保證,而在其他協議中,這些交易在在L1中得到確認之前的一段時間內仍然可以被撤銷。

其他方面

  • 智能合約:考慮L2解決方案是否支持完全可編程的智能合約,或者僅通過謂詞支持一組有限的功能。
  • 與EVM字節碼兼容性:評估將現有的以太坊EVM字節碼智能合約轉移到L2的可行性,而無需進行重大更改。
  • 內置隱私支持:考慮隱私保護在L2解決方案中的效率,特別是在機密交易的可用性和成本效益方面。

下面是基於ZKP的主要解決方案的對比表:

爲了更詳細地了解零知識證明(ZKP),我建議參考我們的區塊鏈百科中的這篇文章,該百科由開發人員爲開發人員創建,對證明和深入細節進行了深入探討。

zkSync 中的交易生命週期

ZK-Rollups的操作可以在高層次上表示如下:

  1. Rollup組成:交易被打包成一個Rollup。
  2. ZKP的創建:形成一個零知識證明。
  3. 在以太坊中驗證:證明被發送到一個以太坊智能合約進行驗證。

在zkSync架構的背景下,該過程如下:

  1. 內部塊的收集:zkSync驗證者每隔幾秒鍾收集來自交易的內部塊。
  2. 區塊包的形成:每30-90秒,從內部塊創建一個區塊包。
  3. 區塊鏈狀態承諾:驗證者記錄區塊鏈的當前狀態,並將修改後的數據作爲calldata傳輸到L1,以便進行可能的恢復。
  4. SNARK的計算和提交:驗證者計算該包的SNARK(ZKP)並將其發送到以太坊智能合約進行驗證。驗證完成後,新的網路狀態變爲最終狀態。

在ZK-Rollups中,驗證者扮演着關鍵角色,將交易打包成區塊並爲其生成零知識證明。該系統的一個特點是,驗證者在物理上無法竊取資金。他們可能造成的最重大潛在損害是暫時停止網路的運行。

注意:在zkSync Era中,驗證者的角色由運營者來執行。

zkSync的開發人員強調他們架構的以下保證:

  1. 資金安全:運營者永遠不會損害網路狀態或竊取資金,這與側鏈相比是一個優勢。
  2. 資金恢復的可能性:即使運營者停止運營,用戶仍然可以提取他們的資金。這得益於數據的可用性,與Plasma系統不同。
  3. 獨立於監控:由於ZKP的存在,用戶或可信第三方不需要持續監控Rollup區塊以防止欺詐行爲,這與基於欺詐證明的系統(如支付通道或樂觀Rollup)相比是一個優勢。

在zkSync Era中,交易經歷了幾個關鍵狀態,與L1中的常規Rollup確認不同:

  • 待處理:交易已被運營者接收,但尚未被處理。
  • 處理中:交易正在由運營者處理,並準備好包含在下一個區塊中。
  • 已提交:交易數據已發布在以太坊上,確保數據可用性,但並未確認其正確執行。
  • 已執行:最終階段,交易的有效性證明(SNARK)由以太坊智能合約進行驗證,使交易最終確定。

除了區塊編號外,zkSync中的交易還顯示了包編號。最初,參數如block.number、block.timestamp和blockhash都是從L1獲取的。然而,在更新後,這些值現在將從L2獲取。盡管如此,開發人員計劃提供訪問來自L1的數據的方法。

zkEVM 和 EVM 之間的差異

基於ZKP的L2解決方案與以太坊的兼容性是一個復雜的任務。這是因爲以太坊最初並不是爲與ZKP的最佳交互而設計的。因此,在開發這樣的系統時,必須在性能和可擴展性潛力之間找到一種折衷,同時與以太坊和EVM保持兼容性。Vitalik Buterin的文章“不同類型的ZK-EVMs”詳細討論了這些方面,並突出了不同級別的兼容性。

zkSync選擇了其中一條最具挑戰性的道路,旨在實現高性能,但與以太坊和EVM的兼容性有限。爲了獲得與zkEVM兼容的字節碼,使用了LLVM項目以及一套專有的編譯器和優化器。對於Solidity和Yul,經過標準的solc編譯器之後,代碼還必須經過幾個更多的階段,才能變成zkEVM字節碼。下面的圖示展示了這個過程的所有階段(在這裏描述得更詳細):

重要提示!zksolc中支持優化。

專門爲EVM編譯的字節碼與zkEVM不兼容。這意味着以太坊和zkSync中相同智能合約的地址將不同。然而,開發人員計劃在未來解決這個問題。

這種方法的一個重要優勢是不依賴於特定的編程語言。未來,zkSync的開發人員承諾添加對諸如Rust和C++之類的語言的支持。重要的是,高級編譯器(例如solc)和平台編譯器(例如zksolc)之間的更新和創新集成的延遲是最小的。最初,有一個想法是創建他們自己的編程語言Zinc,但目前團隊的重點是支持更流行的編程語言。

zk-編譯器與現有的Solidity和Vyper智能合約開發和調試工具的兼容性問題非常重要。目前的開發平台,如Remix、Hardhat和Foundry,在開箱即用時不支持zk-編譯器,這給使用它們帶來了困難。然而,正在開發的解決方案承諾簡化項目遷移和適應新技術的過程。

Vitalik Buterin的文章提到,以太坊可能會努力隨着時間的推移,在協議級別改善與ZKP的兼容性。同樣,基於ZKP的L2解決方案將調整以更好地與以太坊兼容。因此,將來,這些系統之間的差異可能會變得幾乎不可察覺,爲開發人員提供更順暢的集成和過渡。

zkEVM的特點

重要提示!該協議正在積極開發中;請始終參考最新版本的文檔!

zkEVM與EVM不同,盡管開發人員努力在“底層”隱藏這些差異,但在編寫智能合約時需要考慮一些重要特性:

  1. 與EVM的差異:爲zkEVM編寫的Solidity代碼的行爲可能會有所不同,特別是在諸如block.timestamp和block.number等方面。定期檢查文檔以了解更改是很重要的。
  2. 系統合約:在zkSync中,有用於各種功能的系統智能合約,比如ContractDeployer用於部署智能合約,MsgValueSimulator用於處理ETH。更多關於系統智能合約的信息可以在文檔中找到。
  3. 部署時的代理模式:建議在部署後的前幾個月使用代理模式,以防止潛在的編譯器錯誤。
  4. Gas計算:zkEVM中的Gas計算模型與以太坊不同,包括一組不同的操作碼和Gas價格依賴於L1。詳情請參閱這裏
  5. 本地測試:標準工具,如Hardhat Node或Anvil,並不適用於zkEVM的本地測試。而是使用特殊選項,包括fork模式測試。
  6. 籤名驗證:建議使用內置的帳戶抽象支持,而不是ecrecover。
  7. 跟蹤與Gas相關的錯誤:在zkSync中,由於在DefaultAccount系統智能合約內執行的特性,無法跟蹤與Gas短缺相關的錯誤。

爲了深入了解如何使用zkEVM,建議研究文檔,包括“安全性和最佳實踐”部分。

帳戶抽象

在zkSync中,帳戶抽象相對於ERC-4337具有幾個關鍵優勢:

  1. 實現層面:在zkSync中,帳戶抽象是內置在協議層面的,使得所有帳戶,包括外部擁有的帳戶(EOA),在功能上類似於智能合約。
  2. 交易處理:盡管ERC-4337爲捆綁器使用單獨的內存池,從而創建了兩種不同的交易流,但zkSync Era只有一個內存池。這意味着來自EOA和智能合約的交易在一個流中處理,確保了更順暢的集成和處理。
  3. 支持支付主體:zkSync支持所有類型的帳戶的支付主體,允許以ERC20代幣配置gas費用。

zkSync 基礎設施

zkSync Era的基礎設施正在迅速發展,並已包括數十種協議:橋接協議、DeFi、基礎設施協議等等。 (當前列表可以在此處查看)。

另一個優點是與以太坊錢包的兼容性,例如MetaMask或TrustWallet。

超級鏈

zkSync協議的發展始於zkSync Lite的推出,該版本僅針對以太幣和ERC-20代幣的轉帳,無法部署完整的協議。這一階段是發展的重要步驟,但只是zkSync Era的到來之前的前奏——zkSync Era是以太坊的一個完整的L2解決方案,理論上也可以適應其他L1區塊鏈。然而,zkSync的雄心並不止於此,因爲開發計劃還包括推出所謂的超級鏈。

超級鏈,或稱“分形擴展”,由ZKP網路組成,每個網路形成自己的區塊和證明。然後,這些證明被收集在一起並發布在主要的L1網路上。這些網路中的每一個都是整個系統的完整副本,可以被視爲其“分形”。

超級鏈的獨特之處在於它們可以獨立創建和部署。爲了保持一致性和兼容性,每個超級鏈必須使用一個共同的zkEVM引擎,作爲ZK棧的一部分(其中zkSync Era充當第一個超級鏈)。這使得超級鏈能夠從L1繼承其安全性,確保其可靠性,並消除對額外信任和安全措施的需求。

超級鏈代表了擴展區塊鏈網路的創新方法,減輕了主要網路的負載並提高了交易處理速度。該方法的關鍵方面包括:

  • 超級鏈之間的證明傳輸:超級鏈將相互傳輸區塊證明,增加了交易到達主要L1網路前所需的距離。這有助於分散負載,避免瓶頸問題的發生。

  • 對用戶的透明度:用戶不會注意到任何差異——他們的交易在超級鏈中處理,並且在到達主網絡之前可能會經過幾個級別,從而在處理中創建了異步性。
  • 優於現有解決方案:與當前的L2解決方案不同,這些解決方案雖然速度更快,但在交易量上仍然存在限制,有時會在安全性上做出妥協,而超級鏈承諾具有顯著更高的可擴展性。
  • 創建自定義區塊鏈的靈活性:超級鏈允許創建具有不同安全性和隱私級別的自定義區塊鏈和帳戶。即使安全級別較低,在最壞的情況下,也只會出現資金的臨時凍結。

有關這一切的更多信息可以找到這裏

zkSync 的優點和缺點

優點

  1. 安全性:接近L1級別的安全性,未來具備去中心化的潛力。
  2. EVM兼容性:支持與EVM兼容的智能合約。
  3. Web3 API和錢包:標準的Web3 API和對諸如MetaMask等以太坊錢包的支持。
  4. 帳戶抽象:原生支持帳戶抽象。
  5. 交易速度:在L2上進行快速交易處理,隨後在L1上確認。
  6. 低費用:與L1相比,降低了Gas費用。
  7. ERC20 Gas支付:能夠使用ERC20代幣支付Gas費用。
  8. 不斷發展的基礎設施:非常活躍的基礎設施發展。
  9. 可擴展性潛力:具有顯著擴展性改進的機會。

缺點

  1. 有限的EVM兼容性:與競爭對手(如Polygon zkEVM、Scroll等)相比,其EVM兼容性較低。
  2. 智能合約中的錯誤風險:錯誤風險增加,需要進行徹底的測試和審計。
  3. 特定的開發棧需求:需要將開發棧適應協議的具體要求。
  4. 落後於核心技術:在編譯器和庫更新方面採用創新的速度有所延遲。
  5. 網路集中化:目前,網路由有限數量的運營商管理。
  6. 需要可升級的智能合約:由於以上原因,有必要在項目開始時始終制定可升級的合約,以便及時糾正缺陷和漏洞。

結論

zkSync協議看起來非常有前景,具有巨大的潛力,盡管目前,在這個區塊鏈上啓動仍然涉及一些需要考慮的風險。目前,爲zkSync開發相對於與EVM和EVM開發棧更兼容的區塊鏈來說可能更具挑戰性。然而,也許在未來,這種差異將變得微不足道,甚至完全消失。

聲明:

  1. 本文轉載自[MetaLamp],原文標題《How ZKP and ZK-Rollups help solve the scalability problem: a review of the zkSync blockchain》,著作權歸屬原作者[ MetaLamp ],如對轉載有異議,請聯系Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所表達的觀點和意見僅代表作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得復制、傳播或抄襲經翻譯文章。

零知識證明 (ZKP) 和零知識匯總 (ZK-Rollups) 如何幫助解決可擴展性問題

中級4/8/2024, 3:54:44 AM
在本文中,我們將解釋什麼是零知識證明技術,並談論一個流行的區塊鏈項目 — zkSync:zkSync中的交易如何運作以及與以太坊虛擬機(EVM)的主要區別。

轉發原文標題《ZKP和ZK-Rollups 如何幫助解決可擴展性問題》

在這篇文章中,我們將解釋什麼是零知識證明技術,並討論一個流行的區塊鏈項目 — zkSync:zkSync中的交易如何運作以及與以太坊虛擬機(EVM)的主要區別。同時討論這個區塊鏈的優點和缺點,我們認爲它可能有一個充滿希望的未來。

ZkSync是以太坊的第二層區塊鏈(Layer — L2),旨在解決以太坊網路的高費用和有限吞吐量(每秒交易數 — TPS)等問題。該平台採用ZK-Rollup技術,利用零知識證明(ZKP)批量處理主網絡(L1)之外的多個交易。只有交易正確性的加密證明和它們的壓縮數據被發送到L1,大大提高了效率並降低了成本。

Matter Labs開發,zkSync被宣稱爲完全開源(100%開源)的產品,由社區管理。據Cryptorank稱,該項目已經引起關注,籌集了4.58億美元的投資。從長遠來看,Matter Labs旨在創建一個全面的生態系統。目前,有兩個區塊鏈正在運作:zkSync Lite,用於處理以太幣和ERC20代幣的支付,以及zkSync Era,支持完整的智能合約。未來計劃包括推出一個超級鏈系統(L3),確保高安全性。Matter Labs的目標是將這項技術擴展到一個吸引下一個十億區塊鏈用戶的水平。

背景

zkSync代表了一種解決被稱爲區塊鏈三難題的可擴展性問題的新方法。這個項目,像其他第二層(L2)解決方案一樣,旨在在區塊鏈網路中找到安全性、可擴展性和去中心化之間的平衡。

  1. 可擴展性:系統有效處理增長的交易量或數據的能力,而不損失性能和安全性。
  2. 區塊鏈安全性:確保數據可靠性和保護免受未經授權的訪問、篡改或修改。
  3. 去中心化:缺乏集中控制結構。在去中心化系統中,管理和決策權被民主地分配給所有網路參與者。

以太坊專注於安全性和去中心化,強調其作爲一個點對點協議,在全球範圍內分布節點。有關節點分布的最新信息,請參考NodeWatch

爲了保持網路的去中心化,每個節點必須驗證所有交易。這本質上會拖慢網路速度。此外,在網路負載高的情況下,交易可能會變得非常昂貴,並且需要大量時間來處理。

第2層

提高以太坊網路TPS而不增加節點負載的主要任務是引入分片技術,結合過渡到PoS(股權證明)共識機制。這涉及將驗證者分成子組,處理網路的不同部分,從而減少總體負載並增加吞吐量。然而,社區已經將注意力集中在第二層解決方案上,考慮到它們的快速發展。

除了在以太坊中實施分片技術的想法之外,還出現了其他的可擴展性解決方案,比如:

  • 支付和狀態通道
  • 側鏈
  • Plasma
  • Optimistic Rollup

以及基於零知識證明(ZKP)的技術,包括:

  • Validium
  • zkRollup
  • Volition

更詳細的信息可以找到這裏

盡管分片技術仍在開發中,但Dencun硬分叉計劃於2024年初實施Proto-danksharding。這個中間步驟旨在改進第二層解決方案,使L1上的數據存儲更經濟。因此,Proto-danksharding承諾降低L2上的交易成本,作爲向全面分片解決方案邁出的一步。

乍看之下,第二層區塊鏈可能看起來相似,因爲它們的主要任務是在L1之外增加交易數量,同時將安全保障的角色委托給L1。這類區塊鏈的開發者通常聲稱他們的解決方案是最快、最可靠和最簡單的。但實際上,擴展的每種方法都有其細微差別,以及關於交易速度、安全級別或去中心化程度的不可避免的妥協。完全中心化的解決方案也很常見。所有這些方面都將我們帶回到區塊鏈三難題的根本問題。

本文,提出了評估第 2 層解決方案中使用的協議的關鍵標準。他們包括:

  • 安全,
  • 性能和經濟效益,
  • 使用便捷性,
  • 額外方面包括智能合約支持、EVM字節碼兼容性和隱私選項。

重要提示!這篇文章是由Matter Labs撰寫的,據我看來,某些內容“拉伸”了對zkRollup的支持(因爲存在明顯的利益衝突),但這並不那麼重要,主要是要看到第二層協議之間存在哪些區別。下面我將提供一個表格,並簡要描述其內容。

安全性

  • 第二層協議的“活躍性”或“可行性”假設。假設爲了維持第二層功能,總會有一些參與者始終在第一層鏈上,以應對潛在的欺詐案例。這些參與者可能是在L1上抵押了一定數量資金的驗證者(在表格中標記爲“已抵押”),也可能是爲了獎勵而確保協議安全的第三方。從表格中可以看出,使用ZKP(Validium和zkRollup)的解決方案不需要這種必要性。
  • 大規模退出問題。出於安全原因,如果需要啓動所有用戶從L2到L1的資金提取,則會出現的問題。從表格中可以看出,這個問題僅存在於Plasma協議中,更多相關信息可以在這裏閱讀。
  • 托管。L2驗證者是否可以暫時阻止或沒收用戶的資金。
  • 經濟脆弱性。包括對L2驗證者的各種攻擊,包括賄賂L1礦工、創建“影子”DAO等經濟動機驅動的攻擊。
  • 密碼學。標準和新密碼原語之間的區別。標準密碼原語更受研究,但潛在脆弱,而新密碼原語(如SNARK和STARK)提供更高的可靠性,但需要開發者額外的知識和審核。

性能和經濟性

性能方面很直接。每秒交易數(TPS)表示網路的吞吐量,在擴展的背景下,它是最關鍵的參數。

經濟方面:

  • 資本效率:這一方面對於支付通道尤爲重要。它們需要凍結等於通道中操作的平均量的資金,使得它們在資本投資方面效率較低。
  • 在L1上創建L2帳戶的交易:這也是支付通道的一個缺點,因爲在所有其他解決方案中,在L1上創建的帳戶默認在L2中運作。
  • 交易成本:與TPS一樣,這是可擴展性的最關鍵因素之一,決定了解決方案的經濟吸引力。

使用便捷性

  • 從L2到L1的提款時間:這段時間可以從幾分鍾到幾周不等。在這方面,Optimistic Rollups和Plasma尤其不方便,因爲它們需要更長的時間來提取資金。
  • 交易主觀最終性的時間:確定了交易從外部觀察者的角度在L1上變得不可撤銷的速度。例如,在Optimistic Rollups中,只需要在以太坊上確認一次,就可以實現在L1上的最終性,但完全的交易最終性大約需要一周的時間。
  • 通過客戶端代碼驗證主觀最終性:確定了輕客戶端(瀏覽器/移動錢包)是否可以檢查主觀最終性的時間。以Optimistic Rollups爲例,要確認交易的最終性,用戶必須下載並驗證過去一周的整個狀態Rollup。
  • 即時交易確認:協議是否可以提供具有完全保證的即時交易確認?還是只在L2共識層面提供此保證。
  • 即時可見最終性:可以在大多數L2協議之上實現,這意味着交易在用戶界面中會立即得到確認。只有支付通道(狀態通道)爲這些確認提供了完全的安全保證,而在其他協議中,這些交易在在L1中得到確認之前的一段時間內仍然可以被撤銷。

其他方面

  • 智能合約:考慮L2解決方案是否支持完全可編程的智能合約,或者僅通過謂詞支持一組有限的功能。
  • 與EVM字節碼兼容性:評估將現有的以太坊EVM字節碼智能合約轉移到L2的可行性,而無需進行重大更改。
  • 內置隱私支持:考慮隱私保護在L2解決方案中的效率,特別是在機密交易的可用性和成本效益方面。

下面是基於ZKP的主要解決方案的對比表:

爲了更詳細地了解零知識證明(ZKP),我建議參考我們的區塊鏈百科中的這篇文章,該百科由開發人員爲開發人員創建,對證明和深入細節進行了深入探討。

zkSync 中的交易生命週期

ZK-Rollups的操作可以在高層次上表示如下:

  1. Rollup組成:交易被打包成一個Rollup。
  2. ZKP的創建:形成一個零知識證明。
  3. 在以太坊中驗證:證明被發送到一個以太坊智能合約進行驗證。

在zkSync架構的背景下,該過程如下:

  1. 內部塊的收集:zkSync驗證者每隔幾秒鍾收集來自交易的內部塊。
  2. 區塊包的形成:每30-90秒,從內部塊創建一個區塊包。
  3. 區塊鏈狀態承諾:驗證者記錄區塊鏈的當前狀態,並將修改後的數據作爲calldata傳輸到L1,以便進行可能的恢復。
  4. SNARK的計算和提交:驗證者計算該包的SNARK(ZKP)並將其發送到以太坊智能合約進行驗證。驗證完成後,新的網路狀態變爲最終狀態。

在ZK-Rollups中,驗證者扮演着關鍵角色,將交易打包成區塊並爲其生成零知識證明。該系統的一個特點是,驗證者在物理上無法竊取資金。他們可能造成的最重大潛在損害是暫時停止網路的運行。

注意:在zkSync Era中,驗證者的角色由運營者來執行。

zkSync的開發人員強調他們架構的以下保證:

  1. 資金安全:運營者永遠不會損害網路狀態或竊取資金,這與側鏈相比是一個優勢。
  2. 資金恢復的可能性:即使運營者停止運營,用戶仍然可以提取他們的資金。這得益於數據的可用性,與Plasma系統不同。
  3. 獨立於監控:由於ZKP的存在,用戶或可信第三方不需要持續監控Rollup區塊以防止欺詐行爲,這與基於欺詐證明的系統(如支付通道或樂觀Rollup)相比是一個優勢。

在zkSync Era中,交易經歷了幾個關鍵狀態,與L1中的常規Rollup確認不同:

  • 待處理:交易已被運營者接收,但尚未被處理。
  • 處理中:交易正在由運營者處理,並準備好包含在下一個區塊中。
  • 已提交:交易數據已發布在以太坊上,確保數據可用性,但並未確認其正確執行。
  • 已執行:最終階段,交易的有效性證明(SNARK)由以太坊智能合約進行驗證,使交易最終確定。

除了區塊編號外,zkSync中的交易還顯示了包編號。最初,參數如block.number、block.timestamp和blockhash都是從L1獲取的。然而,在更新後,這些值現在將從L2獲取。盡管如此,開發人員計劃提供訪問來自L1的數據的方法。

zkEVM 和 EVM 之間的差異

基於ZKP的L2解決方案與以太坊的兼容性是一個復雜的任務。這是因爲以太坊最初並不是爲與ZKP的最佳交互而設計的。因此,在開發這樣的系統時,必須在性能和可擴展性潛力之間找到一種折衷,同時與以太坊和EVM保持兼容性。Vitalik Buterin的文章“不同類型的ZK-EVMs”詳細討論了這些方面,並突出了不同級別的兼容性。

zkSync選擇了其中一條最具挑戰性的道路,旨在實現高性能,但與以太坊和EVM的兼容性有限。爲了獲得與zkEVM兼容的字節碼,使用了LLVM項目以及一套專有的編譯器和優化器。對於Solidity和Yul,經過標準的solc編譯器之後,代碼還必須經過幾個更多的階段,才能變成zkEVM字節碼。下面的圖示展示了這個過程的所有階段(在這裏描述得更詳細):

重要提示!zksolc中支持優化。

專門爲EVM編譯的字節碼與zkEVM不兼容。這意味着以太坊和zkSync中相同智能合約的地址將不同。然而,開發人員計劃在未來解決這個問題。

這種方法的一個重要優勢是不依賴於特定的編程語言。未來,zkSync的開發人員承諾添加對諸如Rust和C++之類的語言的支持。重要的是,高級編譯器(例如solc)和平台編譯器(例如zksolc)之間的更新和創新集成的延遲是最小的。最初,有一個想法是創建他們自己的編程語言Zinc,但目前團隊的重點是支持更流行的編程語言。

zk-編譯器與現有的Solidity和Vyper智能合約開發和調試工具的兼容性問題非常重要。目前的開發平台,如Remix、Hardhat和Foundry,在開箱即用時不支持zk-編譯器,這給使用它們帶來了困難。然而,正在開發的解決方案承諾簡化項目遷移和適應新技術的過程。

Vitalik Buterin的文章提到,以太坊可能會努力隨着時間的推移,在協議級別改善與ZKP的兼容性。同樣,基於ZKP的L2解決方案將調整以更好地與以太坊兼容。因此,將來,這些系統之間的差異可能會變得幾乎不可察覺,爲開發人員提供更順暢的集成和過渡。

zkEVM的特點

重要提示!該協議正在積極開發中;請始終參考最新版本的文檔!

zkEVM與EVM不同,盡管開發人員努力在“底層”隱藏這些差異,但在編寫智能合約時需要考慮一些重要特性:

  1. 與EVM的差異:爲zkEVM編寫的Solidity代碼的行爲可能會有所不同,特別是在諸如block.timestamp和block.number等方面。定期檢查文檔以了解更改是很重要的。
  2. 系統合約:在zkSync中,有用於各種功能的系統智能合約,比如ContractDeployer用於部署智能合約,MsgValueSimulator用於處理ETH。更多關於系統智能合約的信息可以在文檔中找到。
  3. 部署時的代理模式:建議在部署後的前幾個月使用代理模式,以防止潛在的編譯器錯誤。
  4. Gas計算:zkEVM中的Gas計算模型與以太坊不同,包括一組不同的操作碼和Gas價格依賴於L1。詳情請參閱這裏
  5. 本地測試:標準工具,如Hardhat Node或Anvil,並不適用於zkEVM的本地測試。而是使用特殊選項,包括fork模式測試。
  6. 籤名驗證:建議使用內置的帳戶抽象支持,而不是ecrecover。
  7. 跟蹤與Gas相關的錯誤:在zkSync中,由於在DefaultAccount系統智能合約內執行的特性,無法跟蹤與Gas短缺相關的錯誤。

爲了深入了解如何使用zkEVM,建議研究文檔,包括“安全性和最佳實踐”部分。

帳戶抽象

在zkSync中,帳戶抽象相對於ERC-4337具有幾個關鍵優勢:

  1. 實現層面:在zkSync中,帳戶抽象是內置在協議層面的,使得所有帳戶,包括外部擁有的帳戶(EOA),在功能上類似於智能合約。
  2. 交易處理:盡管ERC-4337爲捆綁器使用單獨的內存池,從而創建了兩種不同的交易流,但zkSync Era只有一個內存池。這意味着來自EOA和智能合約的交易在一個流中處理,確保了更順暢的集成和處理。
  3. 支持支付主體:zkSync支持所有類型的帳戶的支付主體,允許以ERC20代幣配置gas費用。

zkSync 基礎設施

zkSync Era的基礎設施正在迅速發展,並已包括數十種協議:橋接協議、DeFi、基礎設施協議等等。 (當前列表可以在此處查看)。

另一個優點是與以太坊錢包的兼容性,例如MetaMask或TrustWallet。

超級鏈

zkSync協議的發展始於zkSync Lite的推出,該版本僅針對以太幣和ERC-20代幣的轉帳,無法部署完整的協議。這一階段是發展的重要步驟,但只是zkSync Era的到來之前的前奏——zkSync Era是以太坊的一個完整的L2解決方案,理論上也可以適應其他L1區塊鏈。然而,zkSync的雄心並不止於此,因爲開發計劃還包括推出所謂的超級鏈。

超級鏈,或稱“分形擴展”,由ZKP網路組成,每個網路形成自己的區塊和證明。然後,這些證明被收集在一起並發布在主要的L1網路上。這些網路中的每一個都是整個系統的完整副本,可以被視爲其“分形”。

超級鏈的獨特之處在於它們可以獨立創建和部署。爲了保持一致性和兼容性,每個超級鏈必須使用一個共同的zkEVM引擎,作爲ZK棧的一部分(其中zkSync Era充當第一個超級鏈)。這使得超級鏈能夠從L1繼承其安全性,確保其可靠性,並消除對額外信任和安全措施的需求。

超級鏈代表了擴展區塊鏈網路的創新方法,減輕了主要網路的負載並提高了交易處理速度。該方法的關鍵方面包括:

  • 超級鏈之間的證明傳輸:超級鏈將相互傳輸區塊證明,增加了交易到達主要L1網路前所需的距離。這有助於分散負載,避免瓶頸問題的發生。

  • 對用戶的透明度:用戶不會注意到任何差異——他們的交易在超級鏈中處理,並且在到達主網絡之前可能會經過幾個級別,從而在處理中創建了異步性。
  • 優於現有解決方案:與當前的L2解決方案不同,這些解決方案雖然速度更快,但在交易量上仍然存在限制,有時會在安全性上做出妥協,而超級鏈承諾具有顯著更高的可擴展性。
  • 創建自定義區塊鏈的靈活性:超級鏈允許創建具有不同安全性和隱私級別的自定義區塊鏈和帳戶。即使安全級別較低,在最壞的情況下,也只會出現資金的臨時凍結。

有關這一切的更多信息可以找到這裏

zkSync 的優點和缺點

優點

  1. 安全性:接近L1級別的安全性,未來具備去中心化的潛力。
  2. EVM兼容性:支持與EVM兼容的智能合約。
  3. Web3 API和錢包:標準的Web3 API和對諸如MetaMask等以太坊錢包的支持。
  4. 帳戶抽象:原生支持帳戶抽象。
  5. 交易速度:在L2上進行快速交易處理,隨後在L1上確認。
  6. 低費用:與L1相比,降低了Gas費用。
  7. ERC20 Gas支付:能夠使用ERC20代幣支付Gas費用。
  8. 不斷發展的基礎設施:非常活躍的基礎設施發展。
  9. 可擴展性潛力:具有顯著擴展性改進的機會。

缺點

  1. 有限的EVM兼容性:與競爭對手(如Polygon zkEVM、Scroll等)相比,其EVM兼容性較低。
  2. 智能合約中的錯誤風險:錯誤風險增加,需要進行徹底的測試和審計。
  3. 特定的開發棧需求:需要將開發棧適應協議的具體要求。
  4. 落後於核心技術:在編譯器和庫更新方面採用創新的速度有所延遲。
  5. 網路集中化:目前,網路由有限數量的運營商管理。
  6. 需要可升級的智能合約:由於以上原因,有必要在項目開始時始終制定可升級的合約,以便及時糾正缺陷和漏洞。

結論

zkSync協議看起來非常有前景,具有巨大的潛力,盡管目前,在這個區塊鏈上啓動仍然涉及一些需要考慮的風險。目前,爲zkSync開發相對於與EVM和EVM開發棧更兼容的區塊鏈來說可能更具挑戰性。然而,也許在未來,這種差異將變得微不足道,甚至完全消失。

聲明:

  1. 本文轉載自[MetaLamp],原文標題《How ZKP and ZK-Rollups help solve the scalability problem: a review of the zkSync blockchain》,著作權歸屬原作者[ MetaLamp ],如對轉載有異議,請聯系Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所表達的觀點和意見僅代表作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得復制、傳播或抄襲經翻譯文章。
Lancez-vous
Inscrivez-vous et obtenez un bon de
100$
!