近日,以太坊Layer 2 項目方Matter Labs在zkSync 2.0測試網遷移了首個Solidity dApp,而其底層zkEVM,使得該ZK Rollup二層網絡完全兼容了EVM。
對於這個新生的Layer 2,Matter Labs官方在r/ethereum進行了一次AMA,以下是DeFi之道整理的活動內容精選:
Q1 :Alex G 曾在Twitter 上表示,他認為Starkware 和zkSync 是為不同的目標用戶群構建的,你們能詳細說明一下嗎?
Alex:
當然,我只能代表Matter Labs 發言,但這確實是我的強烈看法。
zkSync 的願景牢牢植根於早期加密運動的精神和哲學。它基於密碼朋克、主權個人、中本聰以及Vitalik 等思想。簡而言之,我們珍視自由以及由密碼學帶來的強大的新形式的恢復力。你看,密碼學是當今任何個人都可以使用的唯一一種技術,它能夠抵禦最強大的對手(比如強大的極權政權)。密碼學與去中心化相結合,賦予區塊鏈社區挑戰(並最終改變)現狀的能力。如果沒有去中心化和不可阻擋性,你今天所擁有的將是銀行。如果你認為這兩個屬性對區塊鏈而言不是必需的,請花點時間在谷歌上搜索“e-gold”和“liberty reserve”。
這給我們帶來了兩家公司之間的主要區別。 zkSync 正在構建一個針對「去中心化」和「彈性優化」的開放協議。我們渴望成為可替代的:即使Matter Labs 消失或受到損害,網絡也應該蓬勃發展。我們的主要目標受眾是1) 使用區塊鏈實現金融主權的人,以及2) 為這些人構建的去中心化協議。
而StarkWare 正在構建的,或多或少是專有的擴展解決方案,這些解決方案針對其IP的性能和防禦能力進行了優化,但具有企業級支持和SLA。作為一個技術和服務提供商,他們正在採取行動保持不可或缺的地位。他們的主要目標受眾似乎是建立在區塊鏈上的中心化公司(dydx、Immutable、Sorre、TikTok)。
這種區別直接導致了設計決策的重大差異:
1、軟件許可:
zkSync是寬容許可的(Apache/MIT),因此如果Matter Labs 未能做正確的事情,任何人都可以自由地分叉網絡。
StarkWare 提出了Polaris,這將阻止StarkWare 附屬公司以外的任何人運行STARK 證明器。
2、開發者堆棧:
zkSync 專注於完整的EVM 兼容性——我們希望網絡在各個方面都歸社區所有,並且不想充當服務機構以新語言重新編寫和重新審核協議。
StarkWare 正在推廣Cairo(一種用於編寫智能合約的全新領域特定語言),它有利於性能而不是向後兼容性。
3、可升級性:
zkSync 1.0 從發布的第一天起就有了一個帶有強制時間鎖定的升級機制(後來擴展了一個安全委員會的機制)。我們承認無法修復漏洞的風險,我們更喜歡這種方式,而不是被傳票破壞的風險。而zkSync 2.0 將遵循這種方法。
StarkEx 有一種機制,可以在執行升級之前凍結操作,以作為沒有時間鎖的升級機制,至少在最初階段是這樣。他們的重點顯然是針對外部攻擊者的安全性,而不是減少對StarkWare 本身的依賴。
4、鏈外數據可用性:
ZKSync 2.0附帶了zkPorter:一種針對去中心化優化的鏈下數據可用性解決方案。它的設計方式將使完整節點比任何現有的以太坊殺手多兩個數量級,並為活躍度提供加密經濟學激勵。
StarkWare則在這裡押注於數據可用性委員會(Data Availability Committee),這是由一小部分數據存儲者組成的,他們依靠自己的的聲譽,而不是去中心化的激勵。
如你們所見,這些差異都源於我們價值觀和理念的分歧。隨著監管壓力越來越大,我認為我們會看到更多問題的發生(最明顯的是在KYC、AML、隱私以及加密社區與國家之間的其他緊張領域)。
Q2: 如果zkPorter 被凍結,智能合約中的資金會怎樣?它們是自動退出的嗎?如果沒有,這將如何影響rollup用戶?考慮一個例子,Uniswap 上有ETH/DAI,其中rollup賬戶貢獻了700萬美元,zkPorter賬戶貢獻了300萬美元。如果zkPorter 被凍結會發生什麼,尤其是從rollup用戶的角度來看?
Stan:
通常,這對rollup用戶來說不會有什麼變化,流動性將保留在合約中,並將繼續照常運作。
追問:如果zkPorter被凍結,zkPorter賬戶提供的流動性如何繼續正常運作?這對我來說似乎不安全。
Stan:
zkPorter 凍結意味著在最壞的情況下,zkPorter 賬戶無法從智能合約中提取其流動性。為什麼你認為這可能不安全?請注意,合約的全局存儲,如其ERC-20 餘額仍然存儲在rollup中。
追問:可以說,這比凍結資金更糟糕。我一直認為凍結zkPorter 狀態就是它字面上的意思——但你實際上並沒有在這裡凍結zkPorter。只是資金不在智能合約中——這違背了智能合約平台的初衷。
除非我誤解了一切——如果用戶在zkPorter 被凍結時遭到清算,並且他們完全無能為力,那將是一個糟糕的用戶體驗。更大的問題是它打開了一個攻擊向量,其中排序器和zkPorter 驗證器可以串通以強制清算和其他MEV 場景——這使其與側鏈一樣不安全,並且對於某些MEV 案例來說可能更糟。我知道zkSync 2.0 有一個機制,即使在rollup被凍結的情況下,用戶也可以從智能合約中提取資金,而StarkWare 也有類似的保護性提款解決方案。那麼,為什麼沒有為zkPorter 實現類似的東西來保護用戶呢?
Stan:
謝謝你這麼全面的回答!我們的團隊意識到了這些潛在問題,不幸的是,我不能提供所有的細節,但我們確實致力於最大限度地減少凍結對系統的影響。
關於凍結資金,更取決於合約,當前的Uniswap以太坊合約支持單個分片,因此,如果其代碼被移植到zkSync而沒有任何更改,它將僅在rollup時存儲餘額。因此,每當來自Porter 的用戶向合約提供流動性時,他們就會將資金發送到合約的rollup餘額中。這些資金,就像所有rollup資金一樣,應該像在L1 上一樣安全。正如我已經說過的,我們致力於優雅地處理此類情況。測試網版本將提供更多的詳細信息:)
Q3: 將以太坊主網上運行的合約部署到zkSync的過程有多複雜?部署的代碼是否完全相同?
Angela:
是的,對於Solidity智能合約:大多數DeFi和NFT項目將在不更改代碼的情況下工作。但是,在第一個版本中,編譯器會自動將對SHA256和Keccak256的調用替換為對電路友好的哈希函數。目前還不支持其他一些密碼學原語,例如ecrecover和密碼學預編譯。
對於UI: 你可以通過我們的Web3 API 和Ethers SDK 與智能合約和zkSync 網絡完全交互,對於讀取請求,任何語言的任何符合web3 的框架都可以開箱即用,並具有額外的可選zkSync L2特定功能。對於寫請求(發送交易):由於L1 和L2 之間的根本差異,你將不得不編寫一些額外的代碼(例如,zkSync 支持以任何token支付費用,因此發送交易將涉及選擇token支付費用)。
所以,是的!你只需進行最少的更改即可重用當前的前端(除了發送交易是不同的)。
Q4: zkEVM 架構中最緊迫的中心化點是什麼(例如排序器或等效物),在這些領域實現去中心化的計劃是什麼?
Angela:
zkSync 2.0實現去中心化需要注意3 點:
1、協議的逐步去中心化
與大多數rollup項目一樣,我們選擇了逐步去中心化以進行創新、快速迭代以及更快地修復漏洞。 zkSync 將保持可升級,直到功能範圍穩定,然後它將變得不可變。但是,有兩種機制可以在去中心化/安全性和反應性/可升級性之間取得理想的平衡。
A) 信任最小化的可升級性:
zkSync 智能合約的升級可以由zkSync 治理髮起,並有4 週的時間鎖定期。如果治理被破壞,時間鎖將讓用戶有時間通過我們的優先隊列/緊急退出機制選擇退出。
B) 安全理事會:
為了應對漏洞/黑客事件,我們成立了一個由15 位受人尊敬的以太坊社區成員組成的安全委員會,它的權力僅限於縮短4 週時間鎖通知期。 (注:這15位委員會成員包括Aave創始團隊、Itamar Lesuisse (Argent)、Mike McDonald (Balancer)、James Prestwich (cLabs)、Michael Egorov (Curve)、Jack Baumruk (Dekrypt)、Haseeb Qureshi (Dragonfly)、Justin Drake(以太坊基金會)、Stefan George (Gnosis)、Baek Kim (Hashed)、Chris Burniske (Placeholder)、Nick Grossman (USV)、Will Harborne (ZK Validator)、Sergej Kunz (1inch)以及Lasse Clausen (1kx) )
這個理事會由智能合約執行,規則如下:
1、8/15 簽名可將時間鎖縮短至2 週;
2、10/15 簽名可將時間鎖縮短至1 週;
3、12/15 簽名可將時間鎖縮短至3天;
最低3天的時間鎖時間,可防止出現最壞的情況。
2、排序器(Sequencer)
最初,只有經授權的排序器提交的區塊,才能向zkSync L1 智能合約提交狀態轉換。我們可能有一些選擇/轉換排序器的機制。但最終,我們將切換到由多驗證者與PoS 共識保護的集體排序器。用戶不依賴排序器來保證安全。我們的zkRollup 有一個優先隊列/緊急退出機制來保護用戶免受排序器的審查:無論排序器是否存在惡意/故障,你始終可以退出zkSync。
3.zkPorter
zkPorter 用戶可以1-3 美分的固定費用進行交易。這是通過將數據可用性(重建狀態所需的基本交易數據)放在鏈下而不是放在以太坊上來實現的。而數據可用性是通過zkSync 代幣質押者使用權益證明(PoS)來保護的。 zkPorter 的安全性嚴格優於任何其他L1 或側鏈,但在最壞的情況下,惡意行為者控制著質押的排序器和總權益的2/3以上,他們可以簽署有效的狀態轉換,但保留數據,這會凍結狀態,因此可凍結質押的zkPorter 用戶和攻擊者。
為了盡可能地去中心化zkPorter,2/3的zkSync代幣供應是保留給社區的。
Q5: 市場上有這麼多擴容解決方案,除了通常聲稱的“更快、更便宜和更安全”之外,還有什麼讓你們與眾不同?
Lyova :
zkSync 2.0 將擁有zkPorter - 一個無縫可互操作的,具有鏈下數據可用性的超便宜分片。你可以在此處閱讀所有相關信息:https://link.medium.com/wB8cSQQjqfb
此外,在zkSync 上,你可以使用任何流動token支付費用——而無需購買ETH 或像MATIC 這樣的自定義token。
PS 關於“我們更快,更便宜以及更安全”,可以參考https://l2beat.com和https://l2fees.info :)
Q6: zkSync 的下一步是什麼?你們是否計劃提高跨不同L2 以及與其他區塊鏈環境的互操作性?
Angela:
關於zkSync的下一步,我們還有很多東西需要構建!
開發者工具:如你所知,我們選擇採用長期方法並為我們的編譯器使用LLVM,這已迫使我們考慮調試器、鏈接器、彙編器、反彙編器和二進制實用程序。
此外,任何編寫過x86 或arm 程序集的人都可以輕鬆地為我們的VM 編寫代碼。
更多的智能合約語言:LLVM還允許我們和任何其他團隊輕鬆構建語言前端,例如Rust。
功能更完整、更高效的zkEVM:在第一個版本中,對SHA256 和Keccak256 的調用將被編譯器自動替換為電路友好的哈希函數,並且不支持ecrecover 和密碼學預編譯。當然,我們的下一步是有效地支持這些!我們還計劃實施寫時拷貝(copy-on-write)擴展。
UX/DevX 改進:我們已實現了ETH 以外的其他token的手續費方式,並且正在實現帳戶抽象,更多的支持會到來!
最後,密碼學被證明是區塊鏈世界中令人難以置信的工具。零知識證明已經在推動擴容和隱私,這是公共無許可區塊鏈中最重要的兩個問題。 Matter Labs 是一個熱衷於使用密碼學和數學解決問題的工程團隊,我們將繼續這樣做!有趣的應用之一是實施時間鎖加密以消除MEV。
關於跨不同L2以及與其他區塊鏈環境的互操作性問題,我們主要專注於構建zkSync,而在zkSync 和其他網絡之間來回移動的問題,主要由Optics、Connext、Hop 等橋解決方案來解決。
Q7: 你們為什麼會選擇SNARKs,而不是STARKs? 將來遷移到STARKs會不會太難?合約規模會有限制嗎?
Lyova:
選擇SNARKs的原因之一是數據更小,因此證明更便宜,它只佔用O(1)空間。 SNARKs也可以很容易地進行遞歸,這節省了驗證器更多的計算量。此外,zkSync使用的是PLONK方案,與其他SNARKs不同的是,它只需要一個通用的可信設置,這意味著我們不必每次更新電路時都產生“有毒廢棄物”。如果你好奇的話,去看看https://github.com/matter-labs/awesome-zero-knowledge-proofs! 我們沒有任何計劃在將來遷移到STARKs。
L2上部署的合約必須以某種方式發佈到L1(至少我們現在是這樣),以確保在“優先模式”期間正確執行和提取資金,這在不太可能的審查情況下發生。這就是為什麼L1區塊gas限制會施加某種大小限制。
Q8: 主網上線之後,Matter Labs如何實現盈利?
Angela:和以太坊相同的方式,最初token供應的1/3留給了團隊和投資者,2/3屬於社區,zkSync token是zkSync網絡的費用token(儘管我們支持以其他token支付交易費用,但它們將在後台換成zkSync token)。