本文探讨的是以太坊虚拟机(EVM)和以太坊WebAssembly(Ewasm),Ewasm将取代EVM成为以太坊2.0网络的状态执行引擎,这种转换将为以太坊带来一系列令人兴奋的新性能升级和其他优势,这包括速度和效率上的提升、卓越的互操作性以及减少或消除预编译。
原文作者是Chainsafe项目经理ColinSchwarz。
一、什么是以太坊虚拟机(EVM)?
为了理解Ewasm及其对以太坊网络的影响,我们必须首先熟悉其将替代的以太坊虚拟机。EVM是一个轻量级的虚拟机,其设计是用于在以太坊网络上运行智能合约。作为虚拟机,EVM的功能与传统的操作系统稍有不同。一般来说,虚拟机(VM)是建立在本机操作系统上模拟物理机的高级抽象。它们允许同一平台,在许多不同的硬件体系结构和操作系统上运行,这使得虚拟机(VM)非常适合像以太坊这样的分布式网络。EVM的构建是为了模拟可由物理CPU执行的操作,其还负责以太坊的许多关键功能。
而EVM除了作为一个虚拟机,它也是一个“堆栈机”和一个“状态机”。状态机只是一台可以读取输入并基于这些输入转换为新状态的机器。而基于堆栈的虚拟机是将内存结构组织为堆栈并作为堆栈访问的虚拟机。这与基于寄存器的虚拟机相反,其内存结构存储在CPU的寄存器中。为了在基于堆栈的虚拟机上执行操作,称为“操作数”的数据从堆栈中“弹出”,通过接受操作进行处理,然后根据后进先出的原则“推送”回堆栈。使用基于堆栈的机器进行添加的工作方式如下:
POP20
POP7
ADD20,7,result
PUSHresult
前Blockstream CSO:以太坊向PoS过渡将使监管机构更容易控制网络:8月21日消息,前 Blockstream 首席战略官 Samson Mow 近日在社交媒体上发表对以太坊合并相关看法,他认为以太坊的问题在于其往往优先考虑 Token 经济学,而不是去中心化,因此随着向权益证明(PoS)网络过渡,监管机构将更容易控制网络继而加剧监管捕获(regulatory capture)风险。
Samson Mow 表示,将验证者的最低门槛设置为 32 ETH 会限制验证者的数量,此外,66% 的验证者需要遵守 OFAC 规定,他们存入质押的 ETH 无法提取(因为提取功能未被编码),所以与工作量证明(PoW)共识机制相比,PoS 网络其实更加中心化。[2022/8/21 12:38:47]
https://markfaction.wordpress.com/2012/07/15/stack-based-vs-register-based-virtual-machine-architecture-and-the-dalvik-vm
使用堆栈系统的一个主要优点是,EVM不需要显式地知道它正在处理的操作数的地址,因为调用堆栈指针总是会提供下一个操作数,这有助于EVM提高效率并降低存储需求。
除了堆栈之外,EVM还可以将数据存储到内存和磁盘存储。将数据发送到磁盘存储器需要的gas最多,而发送到堆栈需要的gas最少。EVM根据其预期用途和预期的gas成本决定将某些数据发送到何处。在宏观层面上,EVM由世界状态、机器状态和虚拟ROM组成。世界状态是网络上所有帐户的存储,而机器状态包括程序计数器、可用gas、堆栈和内存。虚拟只读存储器是不可变的“EVM字节码”,这是一种只有EVM才能理解的特殊语言。理解字节码及其与诸如solidity等高级语言的关系是非常重要的,以便充分掌握EVM的功能。从网络创世开始,以太坊开发者就用Solidity编程语言编写了代码,Solidity是一种“高级”编程语言,这意味着尽管开发者可以理解Solidity,但机器却不能理解。为了让计算机理解Solidity代码,它必须使用名为solc的solidity编译器编译。编译器会将solidity转换为字节码,字节码是solidity操作码的二进制表示形式。EVM将所有值视为二进制,而无法理解其他任何值,因此编译器的存在是非常重要的,其允许开发人员的表达能够被EVM理解。
以太坊L2网络总锁仓量为59.9亿美元:金色财经消息,L2BEAT数据显示,截至5月4日,以太坊Layer2总锁仓量为59.9亿美元,7天减少5.37%。其中锁仓量最高的为Arbitrum,约34亿美元,占比56.8%;其次是dYdX,锁仓量为9.95亿美元,占比16.61%;第三为Optimism,锁仓量为6.2亿美元,占比10.36%。[2022/5/4 2:48:40]
二、以太坊虚拟机是做什么的?
EVM负责促进以太坊网络上的大多数交易和操作,包括执行智能合约。它负责包含指令和操作数的各种数据结构,以及由指令处理的数据。EVM还包括一个指令调度程序或“虚拟GPU”,用于获取和执行指令并对操作数进行解码。换个说法,EVM负责跟踪网络组件,如世界状态、存储状态和区块信息。EVM还为以太坊网络上的智能合约创建Runtime环境。Runtime环境中的信息用于执行特定交易。这些信息包括:
Gas价格:“交易发起人规定的当前Gas价格”;
代码大小:“交易代码库的大小”;
调用方:“正在执行交易的账户地址”;
来源方:“交易原始发送者的地址”;
最后,除了以上这些职责外,EVM还处理与区块编号、Gas价格、地址和余额有关的账户信息。因为EVM负责以太坊网络上的很多重要功能,因此其能够处理操作及交易的速度,会影响到整个网络的整体速度和性能。同样,EVM能够执行代码的效率会直接影响网络的效率。
因此,近年来以太坊网络负荷的增加,使得EVM本身成为了一个瓶颈,常常会降低网络吞吐量,增加交易时间。而效率低下问题,正是以太坊从EVM过渡到Ewasm的主要原因之一。
三、什么是Ewasm?
以太坊2.0更新的一个重要核心,就是从EVM过渡到Ewasm。
WASM代表Webassembly,这是一个由W3C社区小组开发的开放标准指令集。WASM是为Web而构建的,包括Mozilla、Google、Microsoft和Apple的工程师都在积极开发它,而Ewasm,是专门为以太坊网络而修改的“受限WASM子集”,WASM的设计考虑到了一系列特定的目标。基本上,WASM的设计目的是快速、高效和便携。这意味着它可以利用常见的硬件功能以“接近本机速度”执行。该软件还设计为易于阅读和调试,这是通过一种可以被人阅读的文本格式来实现的,允许开发者手工查看、编写和调试代码。最后,通过强制主机浏览器的权限策略,通过保持向后兼容性,WASM被设计为安全,且是高度兼容的。而创建Ewasm的团队,还制定了几个更具体的项目目标,其中一个主要目标是提供一个EVM转译器和一个计量注入器,最好是作为一个Ewasm合约。另一个目标是以太坊接口和Ewasm合约语义的明确规范。最后,该团队的目标是为solidity编译器实现一个Ewasm后端,并提供用C和Rust语言编写合约的指令和库。而Ewasm和wasm之间的区别,可通过以下方式来考虑:
以太坊开发人员修复一个EIP-1559重大漏洞:来自瑞典的以太坊核心开发人员Martin Holst Swende发现EIP-1559中的一个重大漏洞,由于EIP-1559没有限制用户用于加快交易速度而支付的最大金额,因此,攻击者可以插入一个高得离谱的数字来压倒网络,即使他们没有资金支付小费,最终大量虚假的交易可能使网络不堪重负。开发人员已经向EIP-1559添加四项检查,并修复了该漏洞。(decrypt)[2021/5/30 22:57:01]
Ewasm=Wasm—不确定性+计量+EEI方法。
以太坊将加入诸如波卡、Cardano、EOS、Tron、Spacemesh和NEAR协议等项目的队列,而这些项目已经或正在采用Wasm。
四、EwasmvsEVM
从一开始,EVM就是为了强调正确性而非效率而设计的。这反映在网络上的所有节点必须完全准确地运行EVM这一事实上。Wasm虽然与EVM相似,但它是为web而发明的。与正确性不同的是,Wasm强调的是效率和快速加载。以太坊开发者LaneRettig表示,EVM的创建不具备“大量的设计思想”,他认为EVM是从理论角度上而非实际角度设计的,因此,虽然它内部健全,但在现实世界中无法发挥最佳的作用。NickJohnson同意这种看法,相比之下,Wasm的编写更接近于实际的硬件指令,这使得它在翻译实际的编码逻辑时更加有效。事实上,Wasm指令可直接将一对一映射到机器使用的指令,这将使性能大大提高。
4、1速度和效率上的大幅提升
从EVM到Ewasm的过渡,最为重要的结果之一就是速度和效率上的大幅提高。Ewasm将通过显著增加每秒可处理和添加到每个区块的交易数来增加交易吞吐量。目前尚不清楚Ewasm将为以太坊带来多大速度提升,但执行与交易吞吐量之间将存在直接的相关性:如果Ewasm的执行速度是EVM的两倍,那么它将允许向每个区块添加两倍多的交易。这并不意味着实际的区块大小将增加,而是指向每个区块添加数据的过程将变得更为有效。随着分片和第二层解决方案的推出,Ewasm将有助于提高以太坊网络的可扩展性。
动态 | 以太坊未确认交易4770笔:据Etherchain.io数据显示,以太坊未确认交易4770笔。当前挖矿难度2048TH,交易处理能力6.1TPS。截至目前以太坊全球均价为134.90美元,最近24小时涨幅为-1.69%。[2020/1/6]
LaneRettig将EVM比作一把瑞士军刀:“…它做了很多事情,但效果并不好。”相比之下,Wasm的设计是将实用化作为首要任务,并且专门针对像以太坊这样的Web应用程序。EVM不能总是有效地编译大量代码,浏览器的javascript引擎通常需要做大量的猜测来为某些操作找出优化的“热路径”,这些操作可降低EVM的速度并降低吞吐量。相比之下,Wasm可直接从其公共表示转换为编译代码,而无需做任何猜测工作。这是允许Ewasm加载和运行速度超过EVM的许多特征之一。另一个例子与EVM使用的字节码类型有关,因为EVM使用256位字节码,所以小于256位的计算必须转换为256位格式,然后EVM才能处理它们。许多开发人员认为,这个功能现在是多余的,这将是另一个使Ewasm比EVM更快的特性。Rettig在接受Coinwire采访时,其隐喻性地总结道:
“以太坊正从我们在农场周围骑行的笨重自制工具,过渡到一辆真正的赛车,我们将可以在公路上行驶…”
而Mozilla发表的一篇文章,也认同了这种看法,即以太坊这样的框架将能使用Wasm来提供巨大的性能优势和新功能,同时仍然使Web开发人员能够轻松地使用功能。
4、2预编译
而Ewasm的另一个主要好处是,它可以减少甚至消除对预编译的需求。所谓预编译是EVM字节码的特殊位。如果对预编译合约发出调用,EVM将执行预先定义的本机代码并返回结果。预编译是特定于某些协议的通用操作,并帮助用户节省gas成本,如果没有这些协议,成本会更高。与常规code不同,EVM只需评估预编译,而不是合约地址处的整个代码。由于以太坊网络上的各种复杂密码学计算在没有它们的情况下会导致无偿的高gas成本,因此需要预编译。在某些情况下,这种gas成本甚至可能超过区块限制,这意味着在不使用预编译的情况下,某些操作无法通过EVM进行处理。预编译的一个严重缺点是,在网络中引入新的预编译,通常需要一个协商一致的硬分叉,而硬分叉通常是有争议的,因此较难实现。NickJohnson认为,Ewasm在计算方面的效率足够高,可以消除大多数当前的预编译,并用Ewasm合约替换。这些智能合约可简单地重写和重新部署,而无需使用硬分叉,这使Ewasm比EVM更具优势。这意味着开发人员可以利用Ewasm提高的效率来简化网络、简化开发过程,并在新的合作模式下避免硬分叉。
基于以太坊的数字小猫收藏游戏CryptoKitties发声明称其游戏费用下降约一半:据了解,CryptoKitties发布推特称,其游戏费用由原先的0.015ETH下降至0.008ETH,而网络拥堵交易也由原先的20000笔下降至14000笔左右。[2017/12/12]
但和任何新的系统一样,Ewasm并非没有批评者,以太坊开发者GregColvin就对Ewasm智能合约消除预编译的能力持怀疑态度。他还警告说,Ewasm依赖编译器来支持多种语言可能会成为单一失败点。然而,我所接触过的绝大多数专家和开发人员并不认为这些是主要关注点,他们对Ewasm将为以太坊网络带来的显著性能改进感到兴奋。
4、3互操作性
Ewasm在性能上超过EVM的第三个领域是互操作性,Ewasm将支持更多的语言,并将受益于比EVM更广泛的工具集。一些Ewasm支持的附加语言的突出例子包括C、C++和Rust。Ewasm还将获得许多著名的JavaScript引擎的本地支持,包括但不限于:微软的Chakra引擎、谷歌的V8引擎以及Mozilla的Spidermonkey引擎。Ewasm还将得到多个非浏览器实现的支持,如ml-proto、wasm-jit-prototype或wabt。尽管Wasm有自己的独立于JavaScript的本地语言,但它并不是用于替代目的。相反,它的目的是与JavaScript一起工作,允许开发人员利用两种语言的优势,并避免它们的弱点。除了兼容更多的语言和引擎外,Ewasm是根据万维网标准构建的,这意味着它很容易在浏览器中支持以太坊轻客户端。与EVM相比,Ewasm还将受益于更广泛的工具和编译器。由于Wasm已经被以太坊以外的大量项目使用,因此它拥有比EVM更大、更活跃的开发者社区,这就会带来更好的工具选择。因此,Wasm包含各种工具链,可以从几个不同的编译器发出操作码。他们可以编译C代码和Rust代码等。来自ethdev红迪子板论坛的贡献者认为,转换为Ewasm的主要目标之一是“利用现有的工具,而不是试图说服人们建立针对EVM的工具。”因此,工具是以太坊向更成熟和广泛使用的Wasm的过渡中获益的另一种方式。
总的来说,以太坊从EVM到Ewasm的预期转换,将带来一系列令人兴奋的新性能升级和其他优势。这包括速度和效率上的提升、卓越的互操作性以及减少或消除预编译。
特别感谢LaneRettig对本文进行了事实检查,并提出了一些很好的建议!
相关文章:
1、“SolidityBytecodeandOpcodeBasics.”https://medium.com/@blockchain101/solidity-bytecode-and-opcode-basics-672e9b1a88c2
2、“StackbasedvsRegisterbasedVirtualMachineArchitecture,andtheDalvikVM.”https://markfaction.wordpress.com/2012/07/15/stack-based-vs-register-based-virtual-machine-architecture-and-the-dalvik-vm
3、“EthereumVirtualMachineExplained.”https://www.mycryptopedia.com/ethereum-virtual-machine-explained/
4、“EthereumEVMIllustrated:exploringsomementalmodelsandimplementations.”https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf
5、“Ethereum2.0.”https://medium.com/rocket-pool/ethereum-2-0-76d0c8a76605
6、“ewasmDesignOverviewandSpecification.”https://github.com/ewasm/design.
7、“WebAssemblyConcepts.”https://developer.mozilla.org/en-US/docs/WebAssembly/Concepts
8、LaneRettig,corecontributortoEth2.0.
9、“eWASMReplacestheHeartofEthereum.”https://www.coinwire.com/ewasm-replaces-the-heart-of-ethereum
10、“TryingtounderstandtheEVMandeWASM.”https://www.reddit.com/r/ethdev/comments/87rrt6/trying_to_understand_the_evm_and_ewasm/
11、“EthereumVirtualMachine(EVM)ToBeReplacedByEWASMMakingTheEthereumNetworkSmarterAndStronger.”https://xbt.net/blog/ethereum-blog/ethereum-virtual-machine-evm-to-be-replaced-by-ewasm-making-the-ethereum-network-smarter-and-stronger/
12、“OnAddingPrecompiledContractswithoutHardForks.”https://that.world/~classic/2017/09/14/nonfork-precompiled/
13、“APrehistoryoftheEthereumProtocol.”https://vitalik.ca/general/2017/09/14/prehistory.html
今年的丰水期矿工们可谓是喜忧参半,喜的是二级市场的行情回暖正好赶上四川的丰水期,不管是哪个型号的矿机只要能开机就有利可图.
1900/1/1 0:00:00在电子数据存证、供应链金融等领域做深做透——区块链拓展实体经济应用场景自去年8月在深圳首度开出区块链电子发票,至今已累计开出超600万张,金额达40亿元,接入企业超5300家.
1900/1/1 0:00:00找个朋友聊聊天,然后你就可以获得报酬,这确实是真的。恒星发展基金会(StellarDevelopmentFoundation)和信息服务公司Keybase周一宣布,将联合空投20亿个恒星币——恒.
1900/1/1 0:00:001functionget()publicviewreturns(uint){returnstoredData;}}国网新疆电力探索区块链技术开展数据上链存证应用:国网新疆电力正积极探索区块链技术.
1900/1/1 0:00:008月26日,在Kleiman与澳本聪案件的庭审上,澳本聪证词被驳回。据知情人士称,法官BruceReinhart建议原告获得澳本聪在2013年12月31日之前持有的50%比特币,以及50%与比特.
1900/1/1 0:00:00地址这里要说的地址并不是通常的编程语言中的内存地址,而是交易地址。我们知道区块链进行价值传递的时候必须是通过一个地址传递到另一个地址,无论交易或者合约都离不开地址.
1900/1/1 0:00:00