天天看點

區塊鍊知識系列 - 系統學習EVM(四)-zkEVM

區塊鍊知識系列 - 系統學習EVM(一)

區塊鍊知識系列 - 系統學習EVM(二)

區塊鍊知識系列 - 系統學習EVM(三)

今天我們來聊聊 zkEVM、EVM 相容性 和 Rollup 是什麼?

1. 什麼是 Rollup

rollup顧名思義,就是把一堆交易卷(rollup)起來變成一個rollup交易,所有節點接收到這個rollup交易之後,不去執行被卷起來的邏輯,而隻去接受這些邏輯的執行結果。是以這個rollup交易所需要的gas會遠小于執行這些交易的gas。

2. EVM (以太坊虛拟機)

區塊鍊知識系列 - 系統學習EVM(四)-zkEVM

虛拟機的一些示例操作碼:

  • 堆棧操作 —— PUSH1(向堆棧添加一些内容)
  • 算術運算 —— ADD(加數字),SUBTRACT
  • 狀态操作——SSTORE(存儲資料),SLOAD(加載資料)
  • 事務操作——CALLDATA、BLOCKNUMBER(傳回有關目前執行事務的資訊)

獨特的需求

以太坊使用自定義虛拟機,而不是調整現有的 VM,因為它有獨特的需求:

  • 每一個操作都必須有“成本”來防止濫用(因為所有節點都運作所有的交易)
  • 每一個操作必須确定(因為所有節點都将同意更改後的狀态)
  • 我們需要專門針對區塊鍊的概念(如智能合約,交易)
  • 一些複雜操作需要成為原語(如密碼學)
  • 交易必須是沙盒的,沒有I/O或者外部狀态通路

3. 以太坊相容性

然而,人們所說的“EVM 鍊”通常不僅僅隻是鏡像這個運作時環境。有幾個主要規範始于以太坊并已成為事實上的全球标準:

  • Solidity(一種編譯成 EVM 位元組碼的進階語言)
  • 以太坊的 JSON-RPC 用戶端 API(與以太坊節點互動的規範)
  • ERC20/ERC721(以太坊代币标準)
  • ethers.js(一個與以太坊接口的網絡庫)
  • 以太坊的密碼學(例如 keccak256 作為散列函數,ECDSA 簽名在 secp256k1 上)
區塊鍊知識系列 - 系統學習EVM(四)-zkEVM

4. ZK-EVM

keccak256,它的電路形式比STARK友好的哈希函數(如Poseidon,Pedersen)大1000倍

選擇一:證明 EVM 執行軌迹

選擇二:自定義虛拟機 + 操作碼支援

選項三:自定義虛拟機+轉譯器

StarkNet

這是 StarkWare 對 StarkNet 采用的方法,這是目前最先進的通用 Rollup。

zkSync

每個團隊遵循的不同政策:

區塊鍊知識系列 - 系統學習EVM(四)-zkEVM

5. Vitalik 的 zkEVM 類型

區塊鍊知識系列 - 系統學習EVM(四)-zkEVM

最早要到 2022 年底,以太坊上才會有“生産級”智能合約 Rollup

區塊鍊知識系列 - 系統學習EVM(四)-zkEVM

由于這種不成熟的狀态,對于需要在不影響以太坊安全性的情況下進行擴充的開發人員來說,特定于應用程式的Rollups仍然是最強大的選擇。

參考: https://mp.weixin.qq.com/s/cFNNTAtrDwLZ35yzxDlLsA
往期精彩回顧:
區塊鍊知識系列
密碼學系列
零知識證明系列
共識系列
公鍊調研系列
BTC系列
以太坊系列
EOS系列
Filecoin系列
聯盟鍊系列
Fabric系列
智能合約系列
Token系列

繼續閱讀