
Vitalik:通过调整 calldata 和增加分片进一步扩容 rollup 的渐进路线图
来源 | notes.ethereum.org 作者 | Vitalik Buterin 在中短期、甚至长期来说,rollup 是以太坊唯一的去信任扩容解决方案。数月以来,L1 上的交易费变得如此高,以至于我们迫切需要做些什么来促进整个生态系统向 rollup 迁移。Rollup 已经为许多以太坊用户极大地降低了交易费: 根据 L2 交易费监测网站 l2fees.info 显示,Optimism 和 Arbitrum 的交易费比以太坊基础层的交易费要低大约 3-8 倍;而 ZK-rollup 拥有更好的数据压缩并且不需要打包签名,费用与基础层相比要低 40-100 倍。 然而,即便有所扩容,这样的费用对于用户来说也还是太昂贵了。关于该问题早就已经写过文章,解决目前形式 rollup 不足的长期解决方案为添加数据分片,这将为 rollup 增加约 1-2 MB/秒的专用数据空间。本文档描述了对该方案的实用操作方法,从而尽快为 rollup 释放充足的数据空间,并逐渐增加额外的空间和提高安全性。第一步:调整交易 calldata 以实现扩容目前现有的 rollup 需要使用交易 ca...

社区新春活动:虎年NFT赏金计划
「天地风霜尽,乾坤气象和; 历添新岁月,春满旧山河。」 转眼我们又来到了辞旧迎新的节点。回望 2021 牛年,我们在虚拟世界 Decentraland 与 Dragon City 联合举办新春活动,并携知名加密艺术家送出实物 NFT,而今虎年将至, ECN 依然将与以太坊社区共度佳节。去年 Vitalik 和以太坊吉祥物 NPC 在 Metaverse 给大家拜年,今年我们将邀请 Vitalik Buterin 于 2 月 4 日 (大年初四) 跟中文社区聊聊天。 此外,今年春节活动的另一个重要环节是——**ECN 正式发起虎年 NFT 赏金计划!**我们希望由社区成员来创作一个纪念虎年春节的 NFT,由其他成员投票选出获胜作品,我们会将其铸造为 NFT 赠与社区。 2021 牛年 NFT (由知名加密艺术家 Ting Song 创作的扎染及蜡染作品,实物随 NFT 赠出)今年的...... ✏️给你,你行你就上。春节活动介绍ECN 邀请了以太坊联合创始人 Vitalik Buterin 来中文社区过年,通过线上访谈和 AMA 的形式与大家互动,主题将聚焦以太坊过去一年的发展以及...

以太七日谈 • 2022/6/28
合并 (The Merge)Gray Glacier 升级即将来临 以太坊网络将在区块高度 15,050,000 进行计划中的推迟难度炸弹升级,时间预计 2022 年 6 月 29 日,周三。由于区块时间和时区是变化的,所以确切日期可能会改变。如果你有运行以太坊节点,记得升级哦! 详情:《Gray Glacier 升级公告》 #7 主网影子分叉测试进行不顺利 于上周五进行的第 141 次以太坊核心开发者会议 (ACD) 上,开发者首先对在上周三进行的第 7 次主网影子分叉测试进行复盘:不顺利。有 20% 的节点在激活合并时掉线,合并后有更多的节点掉线。部分的原因是 Erigon 的节点在影子分叉网络上无法与其他对等点连接。开发者 Alex Sharp@realLedgerwatch 在会上强调问题与影子分叉的工作原理相关,而不在于合并本身。开发者@parithosh_j 补充道,Erigon 节点的简单修复很快就实现了,因此后面的影子分叉不会再出现这个问题。 另一个更重要的问题是 Besu 客户端有一个特殊数据存储格式,他们把它称作“bonsai tries"。Besu 的开发者...

Vitalik:通过调整 calldata 和增加分片进一步扩容 rollup 的渐进路线图
来源 | notes.ethereum.org 作者 | Vitalik Buterin 在中短期、甚至长期来说,rollup 是以太坊唯一的去信任扩容解决方案。数月以来,L1 上的交易费变得如此高,以至于我们迫切需要做些什么来促进整个生态系统向 rollup 迁移。Rollup 已经为许多以太坊用户极大地降低了交易费: 根据 L2 交易费监测网站 l2fees.info 显示,Optimism 和 Arbitrum 的交易费比以太坊基础层的交易费要低大约 3-8 倍;而 ZK-rollup 拥有更好的数据压缩并且不需要打包签名,费用与基础层相比要低 40-100 倍。 然而,即便有所扩容,这样的费用对于用户来说也还是太昂贵了。关于该问题早就已经写过文章,解决目前形式 rollup 不足的长期解决方案为添加数据分片,这将为 rollup 增加约 1-2 MB/秒的专用数据空间。本文档描述了对该方案的实用操作方法,从而尽快为 rollup 释放充足的数据空间,并逐渐增加额外的空间和提高安全性。第一步:调整交易 calldata 以实现扩容目前现有的 rollup 需要使用交易 ca...

社区新春活动:虎年NFT赏金计划
「天地风霜尽,乾坤气象和; 历添新岁月,春满旧山河。」 转眼我们又来到了辞旧迎新的节点。回望 2021 牛年,我们在虚拟世界 Decentraland 与 Dragon City 联合举办新春活动,并携知名加密艺术家送出实物 NFT,而今虎年将至, ECN 依然将与以太坊社区共度佳节。去年 Vitalik 和以太坊吉祥物 NPC 在 Metaverse 给大家拜年,今年我们将邀请 Vitalik Buterin 于 2 月 4 日 (大年初四) 跟中文社区聊聊天。 此外,今年春节活动的另一个重要环节是——**ECN 正式发起虎年 NFT 赏金计划!**我们希望由社区成员来创作一个纪念虎年春节的 NFT,由其他成员投票选出获胜作品,我们会将其铸造为 NFT 赠与社区。 2021 牛年 NFT (由知名加密艺术家 Ting Song 创作的扎染及蜡染作品,实物随 NFT 赠出)今年的...... ✏️给你,你行你就上。春节活动介绍ECN 邀请了以太坊联合创始人 Vitalik Buterin 来中文社区过年,通过线上访谈和 AMA 的形式与大家互动,主题将聚焦以太坊过去一年的发展以及...

以太七日谈 • 2022/6/28
合并 (The Merge)Gray Glacier 升级即将来临 以太坊网络将在区块高度 15,050,000 进行计划中的推迟难度炸弹升级,时间预计 2022 年 6 月 29 日,周三。由于区块时间和时区是变化的,所以确切日期可能会改变。如果你有运行以太坊节点,记得升级哦! 详情:《Gray Glacier 升级公告》 #7 主网影子分叉测试进行不顺利 于上周五进行的第 141 次以太坊核心开发者会议 (ACD) 上,开发者首先对在上周三进行的第 7 次主网影子分叉测试进行复盘:不顺利。有 20% 的节点在激活合并时掉线,合并后有更多的节点掉线。部分的原因是 Erigon 的节点在影子分叉网络上无法与其他对等点连接。开发者 Alex Sharp@realLedgerwatch 在会上强调问题与影子分叉的工作原理相关,而不在于合并本身。开发者@parithosh_j 补充道,Erigon 节点的简单修复很快就实现了,因此后面的影子分叉不会再出现这个问题。 另一个更重要的问题是 Besu 客户端有一个特殊数据存储格式,他们把它称作“bonsai tries"。Besu 的开发者...

Subscribe to EthereumCN

Subscribe to EthereumCN
Share Dialog
Share Dialog


<100 subscribers
<100 subscribers
来源 | medium.com/@somubhargava97
作者 | Somu Bhargava

EVM 对于以太坊状态机就好比处理器对于计算机般至关重要。它主要是用于执行智能合约的逻辑和进行相应的状态转换。在我们深入 EVM 时,现在先简单看看以太坊吧。
以太坊是开源、去中心化的区块链,具有智能合约的额外功能。它意味着,在网络上发生的交易种类大致是 ETH 转账 (或) 智能合约部署 (或) 智能合约调用——所有这些都会改变以太坊区块链的状态。一堆这些交易按照特定顺序组合成一个区块,执行该区块里交易合起来所需的 gas 应小于或等于区块 gas 上限 (译者注:EIP-1559 后 gas 上限是 30 m) 。
一笔交易大概如下:
Transaction -
nonce - 由交易发件人发送的交易号
gas price - 这笔交易的 gas 价格 (单位为 wei)
gas limit - 这笔交易可以使用的最高 gas 量
to - 这笔交易的受款人
value - 转给受款人的 wei 数值
data - 信息调用的输入数据
v, r, s - 可恢复的发件人 Secp256K1 签名
以太坊的世界状态就是地址和其对应的账户状态之间的映射。账户状态大概如下:
Account -
nonce - 到现在从该相应账户发送的交易数量的值
balance - 这个账户持有的 wei 数量
storageRoot - 256 位键值对之间的映射
codeHash- 属于这个账户的的 EVM 代码的不可变哈希值。当有人与这个账户进行交易时,此代码将被执行。
矿工通过汇集一些交易来形成一个区块,并获取打包该区块的工作量证明。这个区块随后会在网络被广播到其他参与以太坊区块链的节点。现在,其他接收到此区块的节点必须验证其有效性,因为矿工可能是恶意的,可能会出现传输错误,中间人攻击 (man-in-the-middle attack)。每个节点 (大致) 从以下方面验证区块:
它们按照以太坊协议验证区块特性 (如区块高度、父块哈希值、时间戳、gas 上限、使用的 gas 量等)
然后这个区块里的交易会被逐一执行。执行每笔交易都会消耗一些 gas 并改变区块链的状态。因此,在区块执行的最后,我们会得到一个结果状态,它由状态树根来表示,这个根是唯一的。如果矿工和验证节点对协议和交易都达成共识,那么状态根应该是唯一的。矿工添加在区块头获得的状态根,随后其他节点根据区块头提到的状态根对其进行验证。
以太坊虚拟机 (Ethereum Virtual Machine, EVM) 负责执行交易和更新区块链状态。让我们在下文了解更多 EVM 的细节。
智能合约可以被编译成 EVM 字节码。作为类比,把 Solidity 代码 (编写智能合约的通用语言) 想象成 C++代码。把 EVM 字节码看作是机器代码,它是可以被处理器理解和执行的。因此,EVM 可以被认为是以太坊的一个处理器。EVM 字节代码是操作码和数据序列,可以被 EVM 处理,形成状态转换。
因此,EVM 在执行交易中的作用:
使一个账户转账 WEI (1 ETH = 10¹⁸ WEI) 到另一个账户变得可能
如果交易的受款人账户有一些字节码与 EVM 相关,EVM 必须执行相应的字节码 (可能使用从 transaction.data 栏位获取的输入数据)。
现在,任何账户都可以有与 EVM 相关的字节码吗?答案是否定的。以太坊有两种类型的账户——外部所有账户 (EOA) 和合约账户 (CA)。EOA 是具有私人密钥关联的账户,由像个人、组织等的外部实体操作。另一方面,合约账户是通过部署智能合约创建的。它们没有相关私钥,并由外部实体对其进行的代码调用 (通过区块链上的交易) 控制。
基本上,每个节点上都会启动一个 EVM 实例来执行每笔交易。但是,只有当交易的受款方 (或目标) 是一个合约账户时,EVM 实例才会执行字节码。
现在,让我们来看看 EVM 的架构。

启动的每个 EVM 实例都是为运行一个特定的字节码 (由于交易的目标是一个合约账户)。因此,字节码就像是 EVM 实例的 ROM,是不能修改的。类似于图灵机),EVM 由一个程序计数器 (Program Counter)、堆栈 (Stack)、内存 (Memory) 和外部存储器。这个外部存储器对所有交易进行永久存储,但其余组件的存储是易失的,并会对 EVM 的每个实例进行重新实例化。
让我们来逐个了解这些组件——
程序计数器 (PC) 只是一个指向字节码中下一个操作码的指针,由 EVM 执行。它是一个非负整数,范围是 [0, number_of_bytes(bytecode)-1]
EVM 里的堆栈可以有最多 1024 个条目,每个条目都是 256 位 (32 字节) 的无符号整数。
EVM 里的内存是可以无限扩充的 (尽管你必须为内存扩充本身支付额外的费用) 且每个条目都有一个 8 位 (1字节) 的无符号整数。
这里的外部存储就是所有账户存储的集合。( EVM 的字节码可以写到目标账户或外部账户的存储空间 )
与计算机处理器如何根据每个指令集理解特定的操作码类似,EVM 也需要理解操作码。每个 EVM 操作码都是一个字节,因此根据理论,最多可以有 256 个操作码,但这里就不列出全部 256 个操作码了。EVM 操作码主要可分为以下几类——
控制像 PC、堆栈、内存和存储状态的操作码
算数运算和按位运算
环境信息——关于区块、当前交易或某特定账户的属性的信息
日志操作——添加日志记录
系统操作——创建新的合约账户、对另一个账户进行信息调用、销毁已创建的合约账户等
很快会出下一篇更详细的关于操作码的文章。敬请关注!
ECN的翻译工作旨在为中国以太坊社区传递优质资讯和学习资源,文章版权归原作者所有,转载须注明原文出处以及ethereum.cn,若需长期转载,请联系eth@ecn.co进行授权。
来源 | medium.com/@somubhargava97
作者 | Somu Bhargava

EVM 对于以太坊状态机就好比处理器对于计算机般至关重要。它主要是用于执行智能合约的逻辑和进行相应的状态转换。在我们深入 EVM 时,现在先简单看看以太坊吧。
以太坊是开源、去中心化的区块链,具有智能合约的额外功能。它意味着,在网络上发生的交易种类大致是 ETH 转账 (或) 智能合约部署 (或) 智能合约调用——所有这些都会改变以太坊区块链的状态。一堆这些交易按照特定顺序组合成一个区块,执行该区块里交易合起来所需的 gas 应小于或等于区块 gas 上限 (译者注:EIP-1559 后 gas 上限是 30 m) 。
一笔交易大概如下:
Transaction -
nonce - 由交易发件人发送的交易号
gas price - 这笔交易的 gas 价格 (单位为 wei)
gas limit - 这笔交易可以使用的最高 gas 量
to - 这笔交易的受款人
value - 转给受款人的 wei 数值
data - 信息调用的输入数据
v, r, s - 可恢复的发件人 Secp256K1 签名
以太坊的世界状态就是地址和其对应的账户状态之间的映射。账户状态大概如下:
Account -
nonce - 到现在从该相应账户发送的交易数量的值
balance - 这个账户持有的 wei 数量
storageRoot - 256 位键值对之间的映射
codeHash- 属于这个账户的的 EVM 代码的不可变哈希值。当有人与这个账户进行交易时,此代码将被执行。
矿工通过汇集一些交易来形成一个区块,并获取打包该区块的工作量证明。这个区块随后会在网络被广播到其他参与以太坊区块链的节点。现在,其他接收到此区块的节点必须验证其有效性,因为矿工可能是恶意的,可能会出现传输错误,中间人攻击 (man-in-the-middle attack)。每个节点 (大致) 从以下方面验证区块:
它们按照以太坊协议验证区块特性 (如区块高度、父块哈希值、时间戳、gas 上限、使用的 gas 量等)
然后这个区块里的交易会被逐一执行。执行每笔交易都会消耗一些 gas 并改变区块链的状态。因此,在区块执行的最后,我们会得到一个结果状态,它由状态树根来表示,这个根是唯一的。如果矿工和验证节点对协议和交易都达成共识,那么状态根应该是唯一的。矿工添加在区块头获得的状态根,随后其他节点根据区块头提到的状态根对其进行验证。
以太坊虚拟机 (Ethereum Virtual Machine, EVM) 负责执行交易和更新区块链状态。让我们在下文了解更多 EVM 的细节。
智能合约可以被编译成 EVM 字节码。作为类比,把 Solidity 代码 (编写智能合约的通用语言) 想象成 C++代码。把 EVM 字节码看作是机器代码,它是可以被处理器理解和执行的。因此,EVM 可以被认为是以太坊的一个处理器。EVM 字节代码是操作码和数据序列,可以被 EVM 处理,形成状态转换。
因此,EVM 在执行交易中的作用:
使一个账户转账 WEI (1 ETH = 10¹⁸ WEI) 到另一个账户变得可能
如果交易的受款人账户有一些字节码与 EVM 相关,EVM 必须执行相应的字节码 (可能使用从 transaction.data 栏位获取的输入数据)。
现在,任何账户都可以有与 EVM 相关的字节码吗?答案是否定的。以太坊有两种类型的账户——外部所有账户 (EOA) 和合约账户 (CA)。EOA 是具有私人密钥关联的账户,由像个人、组织等的外部实体操作。另一方面,合约账户是通过部署智能合约创建的。它们没有相关私钥,并由外部实体对其进行的代码调用 (通过区块链上的交易) 控制。
基本上,每个节点上都会启动一个 EVM 实例来执行每笔交易。但是,只有当交易的受款方 (或目标) 是一个合约账户时,EVM 实例才会执行字节码。
现在,让我们来看看 EVM 的架构。

启动的每个 EVM 实例都是为运行一个特定的字节码 (由于交易的目标是一个合约账户)。因此,字节码就像是 EVM 实例的 ROM,是不能修改的。类似于图灵机),EVM 由一个程序计数器 (Program Counter)、堆栈 (Stack)、内存 (Memory) 和外部存储器。这个外部存储器对所有交易进行永久存储,但其余组件的存储是易失的,并会对 EVM 的每个实例进行重新实例化。
让我们来逐个了解这些组件——
程序计数器 (PC) 只是一个指向字节码中下一个操作码的指针,由 EVM 执行。它是一个非负整数,范围是 [0, number_of_bytes(bytecode)-1]
EVM 里的堆栈可以有最多 1024 个条目,每个条目都是 256 位 (32 字节) 的无符号整数。
EVM 里的内存是可以无限扩充的 (尽管你必须为内存扩充本身支付额外的费用) 且每个条目都有一个 8 位 (1字节) 的无符号整数。
这里的外部存储就是所有账户存储的集合。( EVM 的字节码可以写到目标账户或外部账户的存储空间 )
与计算机处理器如何根据每个指令集理解特定的操作码类似,EVM 也需要理解操作码。每个 EVM 操作码都是一个字节,因此根据理论,最多可以有 256 个操作码,但这里就不列出全部 256 个操作码了。EVM 操作码主要可分为以下几类——
控制像 PC、堆栈、内存和存储状态的操作码
算数运算和按位运算
环境信息——关于区块、当前交易或某特定账户的属性的信息
日志操作——添加日志记录
系统操作——创建新的合约账户、对另一个账户进行信息调用、销毁已创建的合约账户等
很快会出下一篇更详细的关于操作码的文章。敬请关注!
ECN的翻译工作旨在为中国以太坊社区传递优质资讯和学习资源,文章版权归原作者所有,转载须注明原文出处以及ethereum.cn,若需长期转载,请联系eth@ecn.co进行授权。
No activity yet