zkSync 2.0:你好,以太坊
介紹
介紹
一級標題
主要成就
介紹
一級標題
介紹
一級標題
在密碼學方面,zkEVM 的指令集已經完成,並且兩個實現都完成了:在電路中和在執行環境中。
一級標題
在編譯器方面,用Solidity 和Zinc 編寫的智能合約現在可以編譯成zkEVM 字節碼。
在核心基礎設施方面,全節點集成完成,能夠成功部署和執行編譯後的智能合約。
雖然zkEVM 和核心2.0 基礎設施已準備好公開,但編譯器需要更多的工作來正確覆蓋所有邊緣情況。為了提供更全面的開發人員體驗,我們決定在編譯器100% 可靠後立即開放對zkEVM、編譯器和核心SDK 的訪問。
zkSync 2.0 與以太坊的比較
我們暫時不支持KECCAK256 操作碼,而是會自動將其所有調用替換為對另一個抗碰撞哈希函數的調用。 KECCAK256 稍後將作為預編譯引入。
費用
費用
一級標題
Web3 API
我們決定不包含SELFDESTRUCT 操作碼,因為以太坊計劃將其刪除。
費用
一級標題
一級標題
一級標題
一級標題
一級標題
一級標題
預編譯
預編譯
一級標題
存儲效率提升
預編譯
一級標題
預編譯
一級標題
一級標題
執行跟踪將有一個硬性限制,但它與以太坊區塊大小的當前限制相當,不應影響大多數協議。
圖片描述
可能還有更多限制,但我們的目標是在最終版本中將它們減少到絕對最小值。
zkEVM:為我們與EVM 兼容的zkRollup 提供動力的引擎,這是唯一具有L1 安全性和可靠性智能合約支持的解決方案。
一級標題
圖片描述
圖片描述
一級標題
密碼學
密碼學
狀態樹
zkSync 2.0 狀態樹覆蓋了以太坊的完整160 位地址空間。每個帳戶將駐留在狀態的zkRollup 部分或zkPorter 部分。 zkRollup 和zkPorter 帳戶完全相同,除了一個組件:保證數據可用性。 zkRollup 交易數據通過calldata 發佈到以太坊,zkPorter 交易數據發佈到zkSync Guardian 網絡,zkSync 代幣持有者參與權益證明。
數據發布的地方是成本和安全性之間的權衡。 zkPorter 交易比匯總交易便宜得多,但它有可能導致您的資金被凍結。但是,zkRollup 和zkPorter 帳戶的有效性都是通過零知識證明和以太坊來保證的。換句話說,zkPorter 中的資金只能被凍結,不能被盜。
這是在我們的證明系統沒有任何重大變化的情況下完成的;我們繼續將PLONK 與自定義門和查找表(通常稱為UltraPLONK)以及以太坊的BN-254 曲線一起使用。這是有利的,因為自2020 年6 月以來,該證明系統已經在zkSync 1.0 以及使用相同證明系統的其他項目中進行了實戰測試。
一級標題
圖片描述
再一次,我們很高興地宣布,經過幾個月的努力:zkEVM 的指令集已經完成並在電路和執行環境中實現。
這裡有一個重要的區別:電路和執行環境中的實現是分開的,用於不同的目的。電路的工作是生成執行跟踪的證明並提供證人,但這非常慢。另一方面,執行環境是zkEVM 在rust 中的直接實現,高效且快速。如果我們依靠電路來生成證明和執行,交易最終確定將需要幾個小時。證明生成和簡單執行的分離使zkSync 上的交易能夠即時結算。
一級標題
一級標題
圖片描述
圖片描述
(圖片來源於zkSync)
我們同時致力於兩個針對zkEVM 的編譯器前端:Yul 和Zinc。 Yul是一種中間Solidity 表示,可以為不同的後端編譯為字節碼。 Zinc是我們用於智能合約和通用零知識證明電路的基於Rust 的語言。
由於編譯器是使用LLVM框架構建的,因此可以將其視為具有前端Yul → LLVM IR 和後端LLVM IR → zkEVM 字節碼。 LLVM 的採用帶來了幾個主要優勢:
LLVM 優化框架無與倫比:它從LLVM IR 生成最高效的zkEVM 字節碼。
使用較新版本的Solidity 或Zinc,編譯器前端將處理所有更改,而LLVM 將使我們無需更改編譯器後端。
Zinc 和Yul 編譯器中的詞法、語法和語義測試。
一級標題
我們自己的Zinc 和Solidity集成測試,貫穿整個智能合約生命週期:從解析源代碼到合約部署和在zkSync 上執行交易。
從Solidity 存儲庫集成的廣泛的測試套件,適用於我們的集成測試工具。
每個套件已經包含數千個測試,我們將把這個數字至少增加一個數量級。
我們的2 個編譯器已經成功部署並執行了兩種語言的簡單智能合約。但是還有更多的優化需要完成,一些複雜的LLVM IR 語句需要轉換為zkEVM 字節碼。因此,我們決定在編譯器處於更健壯的狀態之前不發布它。
一級標題
一級標題
核心基礎設施
zkSync 2.0 核心由幾個關鍵角色組成:
完整節點
通過虛擬機的zkEVM 字節碼的預電路執行器環境
過濾掉可能導致區塊膨脹的明顯不正確的交易(例如,交易資金不足),
交互器
在內存池中執行交易並生成區塊。
證明者
接收區塊的見證人並生成零知識證明,
用於並行證明生成的證明者接口,


