区块链知识系列 - 系统学习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系列