主页 > imtoken官网下载2.0 > 以太坊2.0每秒交易速度 解构 ETH2.0:EVM 和 eWASM

以太坊2.0每秒交易速度 解构 ETH2.0:EVM 和 eWASM

imtoken官网下载2.0 2023-02-11 07:26:06

以太坊 2.0 的 eWASM

eWASM 是以太坊迈向 2.0 时代的又一创新举措。 主流观点认为,eWASM 可以促进网络的速度、可扩展性和灵活性,也使开发者能够基于以太坊 2.0 协议构建更复杂的智能合约。

除此之外,我们之前的文章也讲解了Eth 2.0的很多不同方面,比如Staking、Sharding、Ethereum Layer-2、zk-snark等。在讨论eWASM之前,我们先回顾一下Ethereum 2.0的基本路线。

什么是以太坊 2.0?

以太坊 2.0 包括一系列升级,将对协议进行颠覆性改进,扩展以太坊网络,并使其更加高效。 升级包括:使用Casper协议的Proof of Stake(权利证明)机制、分片、Raiden(闪电网络)、Plasma、Rollups等。这些升级将在以太坊的不同阶段实施,以确保正确部署和执行.

本文将主要讨论 Phase 2,如果读者对以太坊 2.0 有一定的了解,应该知道从 EVM 到 eWASM 的过渡是一项非常雄心勃勃的工作。 在我们进入 eWASM 之前,让我们先看看 EVM 到底是什么。

什么是以太坊虚拟机?

每个分散的区块链都需要一个虚拟机来处理和执行操作。 比特币的虚拟机比较简单,只需要处理交易即可。 但是,由于以太坊支持图灵完备的智能合约,其复杂度也更高。 因此,我们需要思考另一个重要的问题。

由于智能合约必须是不可变的,即使经过多个节点也不会丢失运行,那么以太坊虚拟机(EVM)需要具备的主要功能是什么?

以太坊币转账速度_siteethfans.org 以太坊到账速度_以太坊2.0每秒交易速度

▼确定性

如果一个程序无论对同一组输入执行多少次代码都给出相同的输出,则该程序被认为是确定性的。 确定性函数的一个完美示例是数学运算。 例如,假设所有数字都以 10 为底,无论重复多少次,1 + 4 总是等于 5。

DApp 往往需要同时处理大量资金,因此用户需要准确了解代码在每个执行阶段的响应情况。

▼终止

我们需要记住,以太坊智能合约是图灵完备的。 如果有足够的时间和资源,智能合约理论上可以解决任何问题。 但是,我们无法判断合约是否可以在给定的时限内完成所有操作。 这就是为什么智能合约需要有一个终止机制。 以太坊智能合约使用“gas”来定义它们的生命周期。 当合约达到 gas limit 时,就不能继续运行。

以太坊2.0每秒交易速度_以太坊币转账速度_siteethfans.org 以太坊到账速度

▼独立性

最后,智能合约应该在一个完全隔离的环境中运行。 如果合约发生意外情况(例如被攻击或出现漏洞),那么其影响不应影响其他底层协议。

为了满足以上三个特性,智能合约可以使用的系统有两种——虚拟机和Docker容器。 由于 Docker 的合约默认设计是不确定的,以太坊决定使用虚拟机。

以太坊虚拟机:它是如何工作的?

当我们说“虚拟机”时,我们究竟指的是什么?

传统操作系统(Windows/iOS)一次只需要在一个系统上运行。 另一方面,虚拟机 (VM) 是在本机操作系统之上创建的更高级别的抽象,可用于复制物理机的功能。

虚拟机使用户能够在不同的硬件架构和操作系统上同时运行同一个平台。 这就是为什么虚拟机非常适合像以太坊这样的去中心化网络。 以太坊的主要目标是成为全球超级计算机,使开发人员能够使用其计算资源来构建自己的智能合约和去中心化应用程序。 以太坊虚拟机 (EVM) 的功能就像一台世界计算机,全世界的节点都可以访问它。

siteethfans.org 以太坊到账速度_以太坊2.0每秒交易速度_以太坊币转账速度

▼栈和状态机

与普通虚拟机相比,EVM还有两个额外的特点。 首先,作为状态机的 EVM 可以读取输入并相应地更新其状态。 其次,EVM仍然是栈式的,其内存结构可以以栈的形式进行组织和访问。

如果读者熟悉数据结构,对栈应该不会陌生。 堆栈是一种线性数据结构,其中的操作通过 LIFO(后进先出)执行。

这是一个例子:

siteethfans.org 以太坊到账速度_以太坊币转账速度_以太坊2.0每秒交易速度

以太坊币转账速度_siteethfans.org 以太坊到账速度_以太坊2.0每秒交易速度

上面的栈中,最先插入的数据是Orange,最后插入的数据是Apple。 按照后进先出的逻辑,我们取出的第一条数据应该是Apple,最后一条数据应该是Orange。

现在让我们看看堆栈操作:Push 和 Pop。

Push:向栈中添加数据

Pop:使用后进先出逻辑从栈中移除数据

▼EVM中的堆栈操作

在堆叠虚拟机中,操作执行如下:

以太坊2.0每秒交易速度_siteethfans.org 以太坊到账速度_以太坊币转账速度

请参考下表:

EVM 堆叠系统的优势

▼EVM——读取字节码

siteethfans.org 以太坊到账速度_以太坊2.0每秒交易速度_以太坊币转账速度

编程语言分为高级语言和低级语言。 字节码等低级语言,机器很容易阅读,但人类很难理解。 这也是大多数编程语言都是高级形式的原因。 那么,程序在智能合约中是如何工作的呢?

▼EVM的功能

以太坊币转账速度_siteethfans.org 以太坊到账速度_以太坊2.0每秒交易速度

▼EVM的缺点

虽然 EVM 提供了许多优势,但有四个主要问题限制了网络的整体吞吐量:

如果底层工作环境本身存在巨大缺陷,那么引入一系列新机制(sharding/rollups/Casper)又有什么意义呢? 以太坊之所以寻求从 EVM 转向 eWASM,也是基于对上述缺陷的衡量。

那么什么是 eWASM? 在此之前,我们需要了解 WebAssembly 是什么。

什么是 WebAssembly(WASM)?

siteethfans.org 以太坊到账速度_以太坊币转账速度_以太坊2.0每秒交易速度

WebAssembly 最近获得了很多关注。 WebAssembly 是由万维网联盟(W3C,World Wide Web Consortium)创建和定义的一种新型代码,可以在现代浏览器中高效执行。

是什么让 WebAssembly 与众不同?

由于 WASM 具有基于堆栈的低级二进制格式,并且默认情况下很小,因此可以快速加载和执行。 一旦浏览器下载了 WASM 代码,它可以快速将其转换为适用于任何计算机的程序集。

WebAssembly 的优势

以太坊 2.0 eWASM

看完这里,你可能已经发现eWASM(Ethereum WebAssembly)就是以太坊2.0的WebAssembly。

据相关团队介绍:

以太坊2.0每秒交易速度_以太坊币转账速度_siteethfans.org 以太坊到账速度

eWASM = WASM - 非确定性(浮点数)+ 计量 + EEI 路径(与以太坊交互)

eWASM 团队给出了其具体的设计目标:

EOS、Tron 和 Cardano 等项目已经或即将采用 WASM。 eWASM实现后,以太坊也将成为其中之一。

eWASM 与 EVM

EVM 的主要设计目标是确保正确性,即使这可能会牺牲一些效率。 以太坊开发者 Lane Rettig 认为,EVM 是基于理论设计而非实际设计,因此可能无法完美支持现实世界的应用。 EVM中的每个节点都必须完整、正确地运行EVM,而WASM是为现实应用而生的,能够翻译简单实用的代码逻辑以太坊2.0每秒交易速度,因此在效率和速度上更具优势。

siteethfans.org 以太坊到账速度_以太坊2.0每秒交易速度_以太坊币转账速度

有了大致的了解之后,我将进一步比较eWASM和EVM。

▼eWASM 与 EVM #1:速度

简单来说,EVM可以算是“万能精油”,但并没有达到应有的效果。 以代码编译为例。

EVM 通常无法有效地编译大量代码。 而浏览器的原生 JS 引擎通常需要大量的工作来匹配执行某些操作的最佳路径,这会对 EVM 的整体吞吐量产生巨大的影响。 此外,EVM 只能处理 256 位字节码,因此小于 256 位的字节码必须转换为 256 位格式。

以太坊币转账速度_siteethfans.org 以太坊到账速度_以太坊2.0每秒交易速度

EVM 的设计极大地限制了以太坊的速度和可扩展性以太坊2.0每秒交易速度,使其每秒最多可以处理 25 笔交易。 这对于现实世界和现实需求来说是非常不切实际的。

eWASM 可以直接转换为编译代码,从而提高加载速度,大大增加每个区块可以处理的交易量。 此外,在分片和layer2解决方案的支持下,以太坊2.0的速度将得到显着提升。

以太坊2.0每秒交易速度_siteethfans.org 以太坊到账速度_以太坊币转账速度

▼eWASM vs EVM #2:预编译

eWASM 还消除了以太坊对预编译的依赖。 预编译是 EVM 字节码的一个特殊位。 优点是可以节省 gas 成本并执行高效的密码操作。 在大多数情况下,如果不进行预编译,几乎不可能将创建合约所需的 gas 控制在上限之内。 eWASM 的 gas 效率非常高,可以省略大部分甚至所有的预编译。

然而,预编译也有其缺点。 引入新的预编译通常需要在系统范围内对网络进行硬分叉。 根据历史经验,硬分叉存在一些争议,因为它可能会导致社区分裂。

这些是什么意思?

eWASM 可以帮助开发人员快速且经济高效地创建智能合约,而无需担心硬分叉。

▼eWASM 与 EVM #3:灵活性

最后,与标准 EVM 相比,eWASM 最显着的优势是代码灵活性。 以太坊开发者要编写智能合约,必须专门学习Solidity语言,这成为了开发者的知识瓶颈。

eWASM 可以与多种语言交互,并拥有更广泛的开发者工具集。 eWASM 将支持 C/C++/Rust 语言。

以太坊2.0每秒交易速度_以太坊币转账速度_siteethfans.org 以太坊到账速度

eWASM 将得到所有主要 JavaScript 引擎的支持,例如:

eWASM 还将获得对以下非浏览器实现的支持:

EWASM 还具有以下突破性优势,这是以前的 EVM 无法实现的:

结语:eWASM 能否助力 Eth 2.0 更上一层楼?

以太坊社区对 eWASM 感到非常兴奋。 然而,相关讨论总是伴随着炒作,我们需要听到不同的声音。 以太坊资深开发者 Greg Colvin 对 eWASM 智能合约持怀疑态度,他的主要观点是:

事实上,绝大多数以太坊开发人员认为 eWASM 将对协议的整体性能和吞吐量产生巨大影响。

会发生什么? 让我们拭目以待!