以太幣交易所 以太幣交易所
Ctrl+D 以太幣交易所
ads

zkSync 2.0:首個兼容EVM的zkRollup_ZKS

Author:

Time:1900/1/1 0:00:00

我能否將你比作夏天?

你有著更強的可擴展性和安全性。

狂風摧殘著五月新萌芽的意志,

夏天總是倏忽而逝。

—— 聰· 莎士比亞,2021

解決了最大的技術挑戰后,我們開始在兼容 EVM 的環境中部署智能合約。測試網的第一個版本已上線:你可以通過區塊瀏覽器查看 zkSync 2.0 上的活動。在本文中,我們將深入講解每個關鍵的組件、提供進度更新和下個版本的計劃。

zkSync 2.0 測試網瀏覽器:https://zksync2-alpha.zkscan.io/

主要成果

在密碼學方面,zkEVM 的指令集已經得到最終確定,而且在電路和執行環境中都已實現。

在編譯器方面,無論是用 Solidity 還是 Zinc 編寫的智能合約都可以被編譯成 zkEVM 字節碼。

在核心基礎設施方面,全節點整合已經完成,能夠成功部署并執行編譯后的智能合約。

雖然 zkEVM 和核心 2.0 基礎設施已準備公開,但是我們還需要在編譯器上下更多功夫,才能正確覆蓋所有極端情況。為了提供更全方位的開發者體驗,我們已經決定等編譯器達到 100% 可靠時立即開放 zkEVM、編譯器和核心 SDK 的訪問權限。

二者之間在外觀和體驗感上都差不多。以下是幾個重要區別:

Solidity 智能合約

zkSync 2.0 支持絕大多數以太坊操作碼!但是也有一些例外:

本次發布的版本不支持 ADDMOD、SMOD、MULMOD、EXP 和 CREATE2 操作碼,但是后續版本會支持。

算法匯率協議Increment宣布將基于zkSync 2.0構建:2月24消息,算法匯率協議 Increment 宣布將基于 zkSync 2.0 構建。Increment 團隊表示 zkSync 2.0 是最適合該協議的基礎設施,同時未來也會考慮進行多鏈部署。目前 Increment 協議已進入測試網發布和審計準備階段。[2022/2/24 10:12:46]

我們暫時不支持 KECCAK256 操作碼,所有對 KECCAK256 操作碼的調用會被自動替換成另一個抗碰撞的哈希函數。之后,KECCAK256 操作碼將作為預編譯引入。

我們已經決定不包括 SELFDESTRUCT 操作碼,因為以太坊正在計劃移除該操作碼。

我們可能會對取消對完整的 256 位 XOR/AND/OR 操作碼的支持,因為這些操作碼僅存在于經過編譯且用于位掩碼的 solidity 代碼。這可以由編譯器使用其它操作碼來完成。

Gas

在 zkSync 2.0 中,有一個不同的 gas 概念。交易代價將根據當前 Layer 1 gas 價格(因為要將調用數據上鏈)和生成零知識證明的成本而波動。智能合約調用的 zkEVM 步驟和存儲寫入參數將有數量上限。

Web 3.0 API

下一個版本將包括我們的 Web 3.0 API 實現,該實現將兼容以太坊文檔所定義的 Web 3.0 標準。事件將變成開箱即用的,所有服務都可以輕松集成。

zkSync 包括 Layer 1 沒有的功能,例如已提交區塊和已敲定區塊的概念。因此,未來將會有其它方法可以讓開發者更精確地控制數據。Web 3.0 客戶端代碼接收的數據與你在以太坊上接收的數據相同,但是要請求專門的信息可以使用 zksync_ 命名空間。

Matter Labs推遲上線zkSync 2.0:8月31日消息,MatterLabs公布了以太坊二層解決方案zkSync2.0的最新進展,并解釋了推遲上線zkSync2.0的原因。近6個月時間中,MatterLabs已測試了執行節點、zkEVM、Solidity和Zinc編譯器。目前正在敲定的事項包括Web3+API、Ethers+SDK、L1至L2通信。目前正在進行的事項包括將線路或驗證器和數據可用性協議整合到執行節點、L2至L1通信、與Vyper團隊合作構建Vyper-to-LLVM前端。測試網將分3個階段逐步開放,第一階段將在幾周后發布一組協議的首個版本,第二階段將開放給愿意創建內容的人,第三階段將對所有人開放。

推遲原因方面,MatterLabs一開始選擇了編譯器框架LLVM,但zkSync的架構與LLVM之間產生的不兼容導致MatterLabs需要額外的時間來整合。MatterLabs承諾主網將公平上線,每個人都有時間來準備,并在同等條件下在zkSync上啟動項目。[2021/8/31 22:49:20]

由于 zkSync 有多種交易類型并使用 EIP712 簽名,eth_sendRawTransaction 數據的格式與 Layer 1 不同。但是,編碼對應的是 Ethereum ABI,因此要支持 Ethereum ABI 并不難。

簽署交易

(除了優先級隊列機制之外)zkSync 2.0 支持兩種交易授權方式:

用戶可以通過簽署 EIP 712 消息,使用普通的以太坊錢包(如 Metamask 或任何支持 WalletConnect 協議的錢包)來簽署交易。

任何賬戶都可以設置公鑰來創建我們的內部 Schnorr 簽名用以簽署交易。這樣一來,基于智能合約的錢包就可以與 zkSync 2.0 進行交互,無需發送 Layer 1 消息的額外成本。

ZKSwap開發負責人 Alex Lee:構建支持通用 EVM 的 rollup 擴容解決方案 ZKSwap在路上:據官方消息,2021年04月12日晚,由Gate.io主辦的直播專訪節目《酒局幣赴》邀請到ZKSwap開發負責人 Alex Lee直播分享近期最新發展。直播期間Alex與Gate.io合伙人酒兒就面對市場競爭格局產生變化后,ZKS將如何把握機遇與挑戰進行了探討與交流。

Alex 表示,目前,Layer2賽道已經是一片繁榮了,技術上不斷創新,各種產品也層出不窮。ZKSwap推出的 Zkspeed 擴容方案兼顧了 ZK-Rollup、Validium 和 Optimistic rollup 方案的特點。即實現所有與 Layer1 交互的交易數據全部上鏈(ZK-Rollup),把單純 Layer2 的交易數據存放在鏈下(Validium),交易 hash 數據上鏈,同時 ZKSpeed 也會提供一個完全上鏈的版本,這樣可以實現更高的安全性,并提供零知識證明保證狀態轉換的有效性。雖然目前 ZKSwap 的方案還不兼容 EVM,但ZKSwap 團隊的愿景正是構建一個支持通用 EVM 的 rollup 擴容解決方案,使得其他應用無需重新編寫智能合約就能實現快速遷移,目前 ZKSwap 團隊已經投入研究,并取得了一些進展。[2021/4/12 20:12:00]

存儲效率提高

每個區塊只應用一次存儲槽覆寫。也就是說,如果有多名用戶與同一個 AMM 合約交互,這個 AMM 合約的存儲槽只會被覆蓋一次。因此,定序器之后會向用戶退還平攤成本之后的結余。

預編譯

“預編譯” 機制是已經計劃好的,但是要等之后的版本發布。我們計劃先支持 keccak256、sha256 哈希和 ECDSA 恢復原語。根據需求和復雜性,我們可能會考慮引入 Blake2f 輪函數等其它預編譯(在當前形式的以太坊中幾乎不可用)。

ZKSwap 開啟 FEI 和TRIBE 流動性挖礦 流動性超1800萬美金:ZKSwap官方消息稱,ZKSwap已經上線Fei(FEI)和Tribe(TRIBE)代幣,并于北京時間2021年4月4日18時開啟了 TRIBE/FEI、FEI/ZKS、TRIBE/ZKS 3個交易對的流動性挖礦活動,總獎勵達90萬ZKS。

據ZKSwap.info數據顯示,活動開啟后, ZKSwap Layer2 資產迅速增加,截至北京時間2021年4月4日20時,上述活動幣對流動性已達1800+萬美金,平臺 Layer2 總資產也已超過 5 億美金。

另外,ZKSwap 目前正在進行第二期流動性挖礦及交易挖礦活動,更多活動詳情請查看原文。[2021/4/4 19:45:21]

額外限制

zkSync 2.0 的第一個迭代版本可能會強制要求每筆交易的智能合約調用不得超過 32 次,直到實現一個適當的記賬機制為止。

執行追蹤將有一個硬性上限,但是會與當前以太坊區塊大小上限相當,不會影響大多數協議。

可能還會有更多限制,但是我們的目標是在最終版本中將這些限制降至最低。

你或許聽說過區塊鏈的三難困境,但是實現以太坊的可擴展性還需要考慮第四個因素:可編程性。現有的可擴展性方案都要在一定程度范圍內犧牲安全性、去中心化和可編程性來實現可擴展性。zkSync 2.0 的設計通過結合以下兩種技術突破,將這四個特性同時發揮到了極致:

zkEVM:作為我們兼容 EVM 的 zkRollup 的引擎,是唯一具備 Layer 1 安全性且支持 Solidity 智能合約的解決方案。

zkPorter:可擴展性比 rollup 高出兩個數量級的鏈下數據可得性系統。

ZKSwap回應Matter Labs質疑:用戶資金安全,智能合約和電路代碼將開源:關于Matter Labs提到的一些疑問,ZKSwap作出如下回復:

1. ZKSwap在ZKSync Layer2轉賬的基礎上完整實現了Layer2 AMM Swap電路,并實現了數項改進;

2. ZKSwap上用戶的資金安全是得到保障的,智能合約和電路部分的代碼已經獲得了慢霧,Certik和ABDK三家權威安全審計機構的審計認證,審計報告已公開在項目github倉庫中接受社區監督;

3. ZKSwap所有智能合約和電路的代碼都將完全開源,其中,智能合約部分已經完全審計完成,將會在2021年3月1日開源;電路部分ABDK還在進行最后的審計報告編輯,將會在獲得報告并在系統穩定運行一段時間后逐步開源,請社區保持關注;

4. 關于Matter Labs提到的智能合約中關于合約作者的疑問,ZKSync和ZKSwap都嚴格遵守MIT開源協議,必須保留原作者的版權聲明和許可聲明。ZKSwap在ZKSync合約的基礎上進行的修改也將在合約開源時進行備注,并添加新的版權和許可聲明,請社區監督。

此前消息,Matter Labs質疑ZKSwap克隆zkSync代碼,擔心其用戶資金安全問題。[2021/2/24 17:47:58]

由于 zkEVM 和 zkPorter 具有互操作性和可組合性,zkSync 2.0 顯著優于其它可擴展方案。

目前的共識是,Eth 2.0 數據分片將在 2022 年底上線,在不犧牲去中心化的前提下提供大得多的數據可得性層。我們的終極目標是,將 zkSync 的 zkRollup 技術與 Eth 2.0 數據分片結合起來,無需犧牲任何 4 個特性中的任何一個,即可達到 10 萬+ TPS。

狀態樹

zkSync 2.0 狀態樹覆蓋了以太坊的整個 160 位地址空間。每個賬戶都有存儲在 zkRollup 部分或 zkPorter 部分的狀態。zkRollup 和 zkPorter 賬戶幾乎完全相同,除了保證數據可得性的組件之外。zkRollup 交易數據通過調用數據發布到以太坊上,zkPorter 交易數據則發布到 zkSync 的守衛網絡上(在這個網絡中,zkSync 代幣持有者參與權益證明機制)。

數據發布在哪里反映的是成本和安全性之間的權衡。zkPorter 交易比 rollup 交易便宜得多,但是你的資金有可能遭到凍結。不過,zkRollup 和 zkPorter 賬戶的有效性都是通過零知識證明保證的。換言之,zkPorter 里的資金只有可能被凍結,不會被盜。

zkRollup 和 zkPorter 賬戶的互操作性和可組合性讓每個用戶都有機會成為 zkSync 中的一等公民。用戶可以通過 zkPorter 賬戶訪問部署在 zkRollup 上的 Uniswap,從而享受最低交易費。zkSync 2.0 是一個系統,旨在讓整個金融領域的用戶都能參與。

密碼學

我們的虛擬機(常被稱為 zkEVM)并非以太坊虛擬機的復刻品,而是為了能夠運行 99% 的 Solidity 合約并確保它們能(在回滾和異常情況下)正常工作而設計。與此同時,zkEVM 可以用來高效地在電路中生成零知識證明。

我們并沒有因此對證明系統進行任何重大改變;我們依然使用帶有自定義門和查找表的 PLONK(通常被稱為 UltraPLONK)和以太坊的 BN-254 曲線。這么做是有好處的,因為這個證明系統自 2020 年 6 月以來已經在 zkSync 1.0 和其它項目中經過千錘百煉。

我們要再次宣布,經過數月以來的艱苦工作,zkEVM 的指令集已經得到最終確定,而且在電路和執行環境中都已實現。

這里有一個重要區別:電路和執行環境中的實現是分開的,二者的用途不同。電路的作用是生成追蹤執行的證明并提供見證消息,但是非常慢。相比之下,執行環境(用 rust 語言直接實現 zkEVM)既快速又高效。如果我們將生成證明和執行都交由電路完成,實現交易的最終確定還需要好幾個小時。只要我們將生成證明和執行分離,就可以在 zkSync 上實現即時交易結算。

接下來,我們的重點是將 zkEVM 和編譯器結合在一起,并加入遞歸:區塊間遞歸(每 N 個區塊發布一個證明)和區塊內遞歸(將一個區塊的不同邏輯部分的子證明聚合起來)。要實現這點并不難!自 2020 年 6 月以來,zkSync 1.0 就已經采用了區塊間遞歸聚合證明。如果你想要了解更多關于區塊內遞歸和 zkEVM 工作原理的信息,請觀看這個視頻講解。

編譯器

我們正在同時開發兩個針對 zkEVM 的編譯器前端:Yul 和 Zinc。Yul 是可以針對不同后端編譯成字節碼的中間 Solidity 表示。Zinc 是我們基于 Rust 為智能合約和通用零知識證明電路開發的語言。

由于編譯器是基于 LLVM 框架構建的,我們可以把它看作有一個前端 Yul → LLVM IR 和后端 LLVM IR → zkEVM 字節碼。LLVM 的應用帶來了幾個重要優勢:

LLVM 優化框架是無與倫比的:它從 LLVM IR 中生成最高效的 zkEVM 字節碼。

通過使用較新版本的 Solidity 或 Zinc,編譯器前端將處理所有更改,LLVM 使得我們無需更改編譯器后端。

將來,如果開發者想要使用原生 Rust 或 Javascript 語言來編寫智能合約,他們只需構建對應語言的編譯器前端,以便在 zkSync 中實現智能合約的開箱即用。

編譯器的安全性對我們來說至關重要,而且已經過多個測試套件的測試:

Zinc 和 Yul 編譯器的詞法、語法和語義測試。

我們自己的 Zinc 和 Solidity 整合測試。這些測試貫穿整個智能合約生命周期:從解析源代碼到合約部署和在 zkSync 上執行交易。

整合自 Solidity 庫并根據我們的測試工具進行調整的多個測試套件。

每個套件都包含數千個測試,我們至少會將這個數字增加一個數量級。

我們的兩個編譯器已經成功部署并執行了使用 Zinc 和 Solidity 語言編寫的簡單智能合約。然而,我們還有更多優化需要完成,以及一些復雜的 LLVM IR 語句需要翻譯成 zkEVM 字節碼。因此,我們決定等到我們的編譯器變得更健壯一點后再將它發布出來。

等到編譯器完成后,我們將專注于增強 Zinc 的表達力和功能性,然后通過構建 Rust 編譯器前端讓開發者可以使用原生 Rust 編寫智能合約。

核心基礎設施

zkSync 2.0 核心的幾個關鍵組成部分是:

全節點

通過虛擬機針對 zkEVM 字節碼實現的預電路執行器環境

狀態在交易發送后的幾秒內觸達

過濾掉可能會導致區塊膨脹的明顯不正確的交易(如交易資金不足的交易)

執行交易池中的交易并生成區塊

證明器

收到區塊的見證消息并生成零知識證明

提供用于并行證明生成的證明器界面

按需創建和終止證明器的自定義證明器自動擴縮器

交互器

用于查看并與以太坊 Layer 1 交互的工具

基于代幣價格、零知識證明生成成本和 Layer 1 的 gas 價格計算交易費用

多維監控器

Prometheus、elastic、sentry、uptime 等獨立事件通知系統和自定義健康檢查服務。

這個核心基礎設施不僅功能完備,而且已經整合了 zkEVM 執行器!

編譯器完成后,我們將開放所有組件的訪問權限!開發者將可以部署 Solidity/Zinc 智能合約,并通過 Web 3.0 API 進行交互。

歡迎關注我們的推特!并加入我們在 discord、telegram 和 gitter 上的討論。

如果你有興趣與我們一起構建首個兼容 EVM 的 zkRollup,我們正在火熱招聘中!

原文鏈接:

https://medium.com/matter-labs/zksync-2-0-hello-ethereum-ca48588de179

作者: Matter Labs

翻譯&校對: 閔敏 & 阿劍

以太坊愛好者

媒體專欄

閱讀更多

財經法學

金色早8點

鏈捕手

PANews

Bress

區塊律動BlockBeats

成都鏈安

Odaily星球日報

Tags:ZKSSYNKSYzkSynczks幣還有救沒zksync幣發行量zksync幣什么時候能買zksync幣imtoken

比特幣行情
深入Solidity數據存儲位置——Storage_BSP

這是深入 Solidity 數據存儲位置系列的另一篇。在今天的文章中,我們將更詳細地介紹 EVM 中的一個重要數據位置:存儲(Storage).

1900/1/1 0:00:00
金色Web3.0日報 | Coinbase將上線Aptos(APT)_NFT

DeFi數據 1、DeFi代幣總市值:444.95億美元 DeFi總市值及前十代幣 數據來源:coingecko2、過去24小時去中心化交易所的交易量23.

1900/1/1 0:00:00
FTX 遭受GAS竊取攻擊 黑客0成本鑄造XEN Token 17K次_FTX

我們知道最近有個火爆的token,叫做XEN,只需要付出gas費就能鑄造大量代幣,那有沒有辦法讓別人替我們支付gas費呢,最近就有一個黑客正在讓 FTX 幫他付錢.

1900/1/1 0:00:00
迪士尼藝術家全球獨家首發「Fairyspell精靈女孩」數字頭像_NFT

2020年被稱為“人類社會虛擬化的臨界點”,無數青年人在虛擬世界中進行開放式探索,通過創造性的游玩尋找與現實世界的連通.

1900/1/1 0:00:00
以太坊MEV黑暗森林發展史:從Gas戰爭到PBS_MEV

原文作者:pseudotheos 原文編譯:DeFi 之道Domothy 和我合著了這篇文章.

1900/1/1 0:00:00
黑客事件頻發 請收下這篇Crypto防盜指南_BSP

黑暗森林中的攻擊手法和防范措施。本文來自 Medium,原文作者:Kofi Kufuor,由 Odaily 星球日報譯者 Katie 辜編譯.

1900/1/1 0:00:00
ads