區塊鍊知識系列 - 系統學習EVM(一)
區塊鍊知識系列 - 系統學習EVM(二)
區塊鍊知識系列 - 系統學習EVM(三)
今天我們來聊聊 zkEVM、EVM 相容性 和 Rollup 是什麼?
1. 什麼是 Rollup
rollup顧名思義,就是把一堆交易卷(rollup)起來變成一個rollup交易,所有節點接收到這個rollup交易之後,不去執行被卷起來的邏輯,而隻去接受這些邏輯的執行結果。是以這個rollup交易所需要的gas會遠小于執行這些交易的gas。
2. EVM (以太坊虛拟機)

虛拟機的一些示例操作碼:
- 堆棧操作 —— PUSH1(向堆棧添加一些内容)
- 算術運算 —— ADD(加數字),SUBTRACT
- 狀态操作——SSTORE(存儲資料),SLOAD(加載資料)
- 事務操作——CALLDATA、BLOCKNUMBER(傳回有關目前執行事務的資訊)
獨特的需求
以太坊使用自定義虛拟機,而不是調整現有的 VM,因為它有獨特的需求:
- 每一個操作都必須有“成本”來防止濫用(因為所有節點都運作所有的交易)
- 每一個操作必須确定(因為所有節點都将同意更改後的狀态)
- 我們需要專門針對區塊鍊的概念(如智能合約,交易)
- 一些複雜操作需要成為原語(如密碼學)
- 交易必須是沙盒的,沒有I/O或者外部狀态通路
3. 以太坊相容性
然而,人們所說的“EVM 鍊”通常不僅僅隻是鏡像這個運作時環境。有幾個主要規範始于以太坊并已成為事實上的全球标準:
- Solidity(一種編譯成 EVM 位元組碼的進階語言)
- 以太坊的 JSON-RPC 用戶端 API(與以太坊節點互動的規範)
- ERC20/ERC721(以太坊代币标準)
- ethers.js(一個與以太坊接口的網絡庫)
- 以太坊的密碼學(例如 keccak256 作為散列函數,ECDSA 簽名在 secp256k1 上)
4. ZK-EVM
keccak256,它的電路形式比STARK友好的哈希函數(如Poseidon,Pedersen)大1000倍
選擇一:證明 EVM 執行軌迹
選擇二:自定義虛拟機 + 操作碼支援
選項三:自定義虛拟機+轉譯器
StarkNet
這是 StarkWare 對 StarkNet 采用的方法,這是目前最先進的通用 Rollup。
zkSync
每個團隊遵循的不同政策:
5. Vitalik 的 zkEVM 類型
最早要到 2022 年底,以太坊上才會有“生産級”智能合約 Rollup
由于這種不成熟的狀态,對于需要在不影響以太坊安全性的情況下進行擴充的開發人員來說,特定于應用程式的Rollups仍然是最強大的選擇。
參考: https://mp.weixin.qq.com/s/cFNNTAtrDwLZ35yzxDlLsA
- 往期精彩回顧:
- 區塊鍊知識系列
- 密碼學系列
- 零知識證明系列
- 共識系列
- 公鍊調研系列
- BTC系列
- 以太坊系列
- EOS系列
- Filecoin系列
- 聯盟鍊系列
- Fabric系列
- 智能合約系列
- Token系列