演講:Haichen Shen,Scroll 聯合創始人
在ETHDenver 的Devtopia 舞台上,Scroll 的聯合創始人Haichen Shen 發表了主題為Scroll 構建zkEVM 和zk Rollup 的挑戰的演講,並同步了最新Alpha 測試網的情況。
Scroll 介紹
Scroll 是一個EVM 等效的zk-Rollup 以太坊擴容方案
在演講最開始,Haichen 強調了Scroll 一直以來的原則,一是以社區驅動的方式同社區開放構建,二是確保安全性和穩定的版本發布,三是強調證明者和排序器去中心化的重要性
以下是zkEVM 開發的社區貢獻者,其中大多數來自於Scroll 團隊和PSE 團隊,還有一些其他的社區成員。
測試網最新進展
2 月27 日,Scroll 在Goerli 上線了Alpha 測試網。 Alpha 測試網目前已經是EVM 等效的,證明已經可以在Goerli 測試網上得到驗證。
而Alpha 測試網的發布,意味著Scroll 已經達到了路線圖的第三階段。
下一步就是第四階段:zkEVM 的主網上線。
對於社區關心的距離主網上線的進度,Haichen 公佈了目前仍需要完成的任務,首先是要構建完整的zkEVM 電路,目前還缺少一些不常見的錯誤約束,也還需要添加一些預編譯合約。隨後會進行zkEVM 電路和跨鏈橋合約的審計,然後進行最後的優化。
構建zkEVM 和zkRollup 的挑戰
演講的後半部分,Haichen 分享了Scroll 在構建zkEVM 和zkRollup 過程中遇到的挑戰。主要從三個方面來說,第一是編寫zk 電路,第二是編寫zkEVM,第三是構建zk-Rollup。
編寫zk 電路
在編寫zk 電路中,主要有兩個難點。其一是開發的邏輯,正常程序中根據輸入x,y,函數foo 得到輸出z,而在zk 電路中,則是根據輸入x,y,foo(x,y),輸出是否有效的判斷,因此在zk 電路中需要考慮到有效和無效的所有情況,確保電路的約束成立。
其二是有限域的操作,有限域是包含有限個元素的域,這些元素通常是素數。在所用的BN-254 曲線中為254 位的值,因此要表示EVM 的256 位,則需要拆解成兩部分處理。
編寫zkEVM
在編寫zkEVM 中,Haichen 拆解了zk 和EVM 兩個部分。 EVM 中有三個組成部分,Executor, Stack, Memory。
zk 部分則需要對EVM 的執行過程中進行一一的約束。 EVM 電路將約束Executor 正確執行;RAM 電路將約束Stack,Memory 的讀寫正確;Bytecode 電路將約束EVM 讀取的bytecode 的正確性;MPT 電路將約束存儲的讀寫正確;TX 電路將約束交易的有效性;ECDSA 電路將約束交易中籤名的正確性;Keccak 電路則將約束Keccak 哈希函數的正確計算;還有其他的一些約束等等。所有這些約束組合在一起,就組成了zkEVM。
構建zk-Rollup
在構建zk-Rollup 方面,去中心化證明者網絡需要對證明者進行激勵。
當後續去中心化排序器後,情況會變得更複雜,需要協調證明者網絡和排序器網絡,目前Scroll 正在進行開放研究,歡迎有想法的開發者加入研究探討。