介紹
克服了最困難的技術挑戰之后,我們進入了這項工作的沖刺階段:在兼容EVM的環境中部署智能合約。zkSync推出zkSync2.0首個測試網版本:用戶已經可以使用區塊瀏覽器查看zkSync2.0的交易活動。在本文中,我們將深入解釋每個關鍵組件,公布進度更新以及下一個版本的計劃。
ZKSYNC2.0測試網瀏覽器:
https://zksync2-alpha.zkscan.io/
關鍵成就
在密碼學方面,zkEVM的指令集已經確定下來,并且兩種實現都已經完成:在電路中和在執行環境中。
在編譯器方面,用Solidity和Zinc編寫的智能合約現在可以編譯到zkEVM字節碼中。
在核心基礎設施方面,全節點集成已完成,并且能夠成功地部署和執行已編譯的智能合約。
雖然zkEVM和2.0的核心基礎設施已經準備好向公眾公開,但是該版本的編譯器還需要更多工作進行完善,以應對所有極端情況。為了提供更加全面的開發者體驗,我們決定在該編譯器100%可靠之后,將同時開放對zkEVM、編譯器和核心SDK的訪問。
比較zkSync2.0和以太坊
兩者看起來大部分相同,以下幾點是比較重要的區別:
智能合約
zkSync2.0支持以太坊上的大部分操作碼。然而,有以下這些例外:
1.這次的測試網版本不支持ADDMOD、SMOD、MULMOD、EXP和CREATE2操作碼,但是未來的版本會支持。
數據:zkSync Era 鏈上獨立地址數突破 100 萬:6月30日消息,據 Dune 數據顯示,zkSync Era 鏈上獨立地址數已突破 100 萬,現為 1,086,771 個,鏈上橋接 TVL 總額達到 562,299 枚 ETH。據歐科云鏈 OKLink 多鏈瀏覽器數據顯示,當前 zkSync Era 鏈上地址總數為 2,846,469 個,總交易量約 423 萬筆。[2023/6/30 22:10:55]
2.我們將暫時不支持KECCAK256操作碼,而是通過自動調用另一個抗碰撞的哈希函數來替代它的所有調用。KECCAK256之后將作為預編譯引入。
3.我們決定不再包含SELFDESTRUCT操作碼,因為以太坊正計劃將其移除。
4.我們可以移除對完整256位XOR/AND/OR操作碼的支持,因為這些操作碼只存在于那些用于位屏蔽的已編譯的solidity代碼中。這可以由編譯器使用其他操作碼來完成。
Gas
在zkSync2.0中,有一個不同概念的gas。交易費價格將根據當前L1gas費和生成零知識證明(ZKP)的成本而波動。智能合約的調用將有一個最大的zkEVM步驟和存儲寫入參數。
Web3API
下一個版本將包含我們Web3API實現,它將與以太坊文檔所定義的Web3標準兼容。事件將開箱即用,并且所有服務都可以輕松整合。
zkSync包含L1沒有的特性,比如已驗證和已敲定區塊的概念。因此,還會有其他方法讓開發者更精確地控制數據。Web3客戶端代碼將接收與以太坊相同的數據,但可以通過zksync_名稱空間請求特定的信息。
以太坊質押提供商Rocket Pool已部署至zkSync Era網絡:金色財經報道,以太坊流動性質押協議Rocket Pool已部署在zkSync Era網絡上。通過在zkSync Era上運行,Rocket Pool用戶將能夠更快、更便宜地轉移其代幣rETH。Rocket Pool已經在以太坊第2層網絡Optimism和Arbitrum上線。[2023/6/2 11:53:22]
因為zkSync有多種交易類型,并且使用EIP712簽名,所以eth_sendRawTransaction數據的格式與L1不同。然而,編碼與以太坊ABI相對應,所以支持它并不困難。
對交易進行簽名
zkSync2.0中的交易可以通過兩種方式進行授權(除了優先級隊列機制):
1.用戶可以通過對一個EIP712信息簽名,從而用他們普通的以太坊錢包(如Metamask或者任意的WalletConnect錢包)對交易進行簽名。
2.任何賬戶都可以設置一個公鑰來創建我們的內部Schnorr簽名來對交易進行簽名。這允許基于智能合約的錢包與zkSync2.0進行交互,而無需額外的成本發送L1的信息。
存儲效率提升
每個區塊只能對存儲槽覆寫一次。這意味著,如果多個用戶與單個AMM合約交互,那么該AMM合約的存儲槽只會被覆寫一次。這允許排序者稍后向用戶退還單次寫入的共享成本。
預編譯
“預編譯”機制是在計劃中的,但將在稍后發布。我們計劃首先支持keccak256、sha256哈希和ECDSA恢復原語。此外,我們會根據需求和復雜性考慮包含其他預編譯,例如Blake2f輪函數(以當前形式在以太坊中幾乎無法使用)。
去中心化交易協議WOOFi已部署至zkSync Era主網:金色財經報道,據官方推特,去中心化交易協議WOOFi宣布已正式部署至zkSync Era主網上。WOOFi是由WOO Network構建的去中心化交易協議,提供兌換、Earn 和質押等服務。[2023/4/28 14:32:17]
進一步的限制
zkSync2.0的第一次迭代可能會增加一個額外的限制,即每筆交易只能調用32次智能合約,直到可以實現恰當的記賬機制。
執行跟蹤將有硬限制,但它將與以太坊區塊大小目前的限制相當,不應影響大多數。
可能會有更多的限制,但我們的目標是在最終版本中將這些限制盡可能減少到最低限度。
深入了解zkSync2.0的架構
你可能聽說過“區塊鏈的不可能三角”,但當談到擴容以太坊時,還有第4個因素:可編程性。所有當前的擴容解決方案都犧牲了一些安全性、去中心化和可編程性來實現可擴展性。zkSync2.0的設計結合了下列兩大技術突破,旨在最大化實現上面說到的四個特性:
1.zkEVM:為兼容EVM的zkRollup提供支持的引擎,這是同時提供L1安全性以及支持solidity智能合約的解決方案。
2.zkPorter:一個鏈下數據可用性系統,其可擴展性比rollups高出兩個數量級。
Aave V3部署至zkSync Era主網的提案已通過溫度檢查投票:4月17日消息,Snapshot投票頁面顯示,Aave社區關于“將Aave V3部署至zkSync Era主網”提案的溫度檢查投票以99.78%的支持率獲得通過。
此溫度檢查投票為Aave治理提供了在zkSync Era主網上部署Aave V3的機會,并有限部署了初始資產:USDC和ETH。下一步,該提案將進入ARFC階段,以進行進一步討論、風險參數評估網絡分析并最終確定。如果ARFC階段快照成功,則將該提案作為AIP提交以進行投票和鏈上治理批準。[2023/4/17 14:08:11]
由于zkEVM和zkPorter是可互操作以及可組合的,zkSync2.0顯著優于所有其他擴容解決方案。
目前的共識是:Eth2數據分片將在2022年底上線,在不犧牲去中心化的前提下提供更大的數據可用層。結合了Eth2數據分片的zkRollup技術是zkSync的最終目標,在不犧牲4個因素中任意一個的前提下達到10萬以上的TPS。
狀態樹
zkSync2.0狀態樹覆蓋了以太坊全部的160位地址空間。每個帳戶將存在于zkRollup部分或zkPorter部分的狀態中。zkRollup和zkPorter帳戶完全相同,除了一點不同:獲取數據可用性的地方不同。zkRollup交易數據通過數據調用發布到以太坊主網中;而zkPorter的交易數據發布到zkSyncGuardian網絡中,其中,zkSync代幣持有者能夠參與該網絡的PoS機制。
zkSync公布ETH Lisbon黑客松獲獎項目:11月14日消息,zkSync在其社交平臺公布ETHLisbon黑客松獲獎的三個項目,分別是:Testamint、zkSync Patron以及Session Wallet。據悉,這三個項目均創意性的采用了賬戶抽象(Account Abstraction)。
zkSync此前在6月份的V2升級添加了“賬戶抽象”,可以減少賬戶類型的數量,或者減少可以發送交易的ETH余額的實體的數量。[2022/11/14 13:01:42]
選擇在哪里發布數據,是在成本和安全性兩者間做出權衡。zkPorter的交易費比rollup的交易費要便宜很多,但是用戶的資金可能會被凍結。然而,zkRollup和zkPorter賬戶的有效性是由零知識證明和以太坊來提供保證的。換句話說,zkPorter中的資金只能被凍結,不能被竊取。
zkRollup和zkPorter帳戶的互操作性和可組合性給了每個用戶成為zkSync一流公民的機會。假設,Uniswap部署在zkRollup端,用戶可以通過zkPorter賬戶訪問,并以最低的手續費進行swap。zkSync2.0是一個專門為整個金融領域用戶設計的系統。
密碼學
我們的虛擬機,通常被稱為zkEVM,它并不是完成1:1復刻EVM的。但是,zkEVM旨在能夠運行99%用Solidity編寫的合約,并且在遇到回滾和異常時也能維持同樣的行為。同時,zkEVM能夠有效率地在一個電路中生成零知識證明。
zkEVM的實現不需要我們對此前的證明系統做出重大的變動;我們繼續使用帶有自定義門和查詢表的PLONK?(通常被稱為UltraPLONK)和以太坊的BN-254曲線。這是有利的,因為這個證明系統已經過實戰測試(自2020年6月以來,zkSync1.0和其他項目就開始使用這個證明系統)。
經過幾個月的努力,zkEVM的指令集已完成,并在電路和執行環境中實現。
這里有一個重要的區別:電路和執行環境中的實現是分開的,用于不同的目的。電路的工作是生成執行跟蹤的證明并提供證人,但這個過程十分緩慢。另一方面,執行環境是zkEVM在rust中的直接實現,效率高、速度快。如果我們在生成證明和執行的過程中都依賴于電路,那么敲定交易需要幾個小時。而生成證明和簡單執行的分離使得zkSync上的交易能夠即時結算。
接下來,我們的工作將專注于將zkEVM和編譯器結合在一起,并和遞歸結合在一起:區塊之間的遞歸允許我們為N個區塊發布一個證明;而區塊內的遞歸聚合了區塊不同邏輯部分的子證明。這是簡單的部分!自2020年6月以來,zkSync1.0主網上已經使用了區塊之間的遞歸聚合證明。更多關于區塊內遞歸和我們的zkEVM如何工作的信息,請觀看視頻解釋。
編譯器
我們同時研究兩種針對zkEVM的編譯器前端:Yul和Zinc。Yul是一種Solidity的中間表示,可以為不同的后端編譯成字節碼。Zinc是我們基于rust的語言,用于智能合約和通用零知識證明電路。
因為編譯器是使用LLVM框架構建的,所以可以認為它有一個前端、Yul→LLVMIR和后端、LLVMIR→zkEVM字節碼。LLVM的采用帶來了幾個主要的優點:
1.LLVM優化框架是不匹配的:它從LLVMIR中生成最有效的zkEVM字節碼。
2.有了新版的Solidity或Zinc,編譯器前端將處理所有更改,而LLVM將使我們無需更改編譯器后端。
3.在未來,如果開發者想基于原生的Rust或Javascript編寫智能合約,只需為該語言構建編譯器前端,智能合約就可以在zkSync中開箱即用。
編譯器的安全性對我們來說是至關重要的,并且已經經過了多個套件的測試:
1.Zinc和Yul編譯器中的詞法、語法和語義測試。
2.我們自己針對Zinc和Solidity的集成測試,它貫穿整個智能合約生命周期:從解析源代碼到合約部署,再到在zkSync上執行交易。
3.從Solidity存儲庫集成的廣泛測試套件,適合我們的集成測試工具。
每個套件已經包含了幾千個測試,我們將至少增加一個數量級。
我們的兩編譯器已經成功部署并用兩種語言執行了簡單的智能合約。但是仍然有更多的優化需要完成,一些復雜的LLVMIR語句需要轉換為zkEVM字節碼。因此,我們決定等到我們的編譯器運行狀態更強健再發布。
完成編譯器的工作之后,我們將集中精力完善Zinc的功能,然后構建Rust編譯器前端來允許使用原生Rust編寫智能合約。
核心基礎設施
zkSync2.0核心基礎設施由幾個關鍵部分組成:
全節點
1.利用虛擬機的zkEVM字節碼的預電路執行器環境
2.狀態在交易發送后的幾秒內可用
3.過濾掉明顯無效的交易(例如,沒有足夠的資金進行交易),這些交易可能會使區塊膨脹
4.在內存池中執行交易并生成區塊。
證明者
1.接收區塊的見證者并生成零知識證明,
2.用于并行證明生成的證明者接口
3.自定義的證明者自動縮放器,可根據需要創建和終止證明者機器。
交互器
1.用來監測以及與以太坊L1交互的工具,
2.基于代幣價格、ZKP生成成本以及L1gas費來計算交易費用。
Paranoid監視器
Prometheus、彈性、哨兵、正常運行時間,幾個單獨的事件通知系統以及自定義的安全運行檢查服務。
zkSync2.0的核心基礎設施功能齊全,已經集成了zkEVM執行器。
點擊“閱讀原文”獲取文章內部鏈接!
原文鏈接:
https://medium.com/matter-labs/zksync-2-0-hello-ethereum-ca48588de179
來源|?MatterLabs
關于Layer2的方案探討早在幾年前就開始,直到去年V神定調Rollup作為ETH當前的主要擴容手段.
1900/1/1 0:00:001.2021年哪里加密獨角獸最多?與2020年相比,2021年贏得“獨角獸”地位的歐洲初創公司數量翻了一番.
1900/1/1 0:00:00加密貨幣行業從業人士總在說,2020-2021年這一波比特幣大牛市是機構牛。比如灰度比特幣信托持有的比特幣從2020年初的10多萬持續增加到60多萬枚,MicroStrategy持續投入近30多.
1900/1/1 0:00:00本篇我們將繼續關注NFT的數最新熱點和應用,包括如何將數字資產發揮更大的作用。你見過年化收益率10800%的NFT嗎?在之前大火的Cryptopunks系列后,這個名為BoredApeYacht.
1900/1/1 0:00:00數字貨幣“死多頭”MicroStrategy又買比特幣了,這次的購買也讓該公司的比特幣總持有量超過了10萬枚.
1900/1/1 0:00:006月10日14:00,“元宇宙”系列主題AMA邀請到XCarnivalCMO?Vivi做客「金色百家談」直播間,探討了區塊鏈與合成資產如何在元宇宙中發揮價值,以及元宇宙應用的落地情況.
1900/1/1 0:00:00