链资讯 链资讯
Ctrl+D收藏链资讯
首页 > 火必APP > 正文

WAS:技术 | 解构ETH2.0:以太坊如何从EVM过渡到eWASM?_NCE

作者:

时间:

来源|?IvanonTech,翻译:以太坊中文网

以太坊2.0之eWASM

eWASM是以太坊迈向2.0时代的又一创新之举。主流看法是,eWASM能够促进网络的速度、可扩展性和灵活性,也使得开发者能够基于以太坊2.0的协议构建更为复杂的智能合约。除此之外,我们之前的文章还对Eth2.0的许多不同方面进行了解释,如

Staking、

Sharding、

以太坊Layer-2、

zk-snark等。在探讨eWASM之前,我们再过一遍以太坊2.0的基本路线。

什么是以太坊2.0?

以太坊2.0包含一系列升级,将对协议进行颠覆性的改进,扩容以太坊网络,使其更加高效。其中的升级包括:使用Casper协议的ProofofStake(权益证明)机制、分片、Raiden(雷电网络)、Plasma以及Rollups等等。这些升级将会在

以太坊不同的阶段中实现,以确保合理地部署和执行。

阶段0:启动信标链,转向PoS权益证明机制

阶段1:加入分片

阶段2:使用以太坊0eWASM替代现有的以太坊虚拟机(EVM)

本文将主要探讨阶段2,如果读者对以太坊2.0有一些了解,那么应该知道从EVM到eWASM的转变是非常宏大的工作。在我们进入eWASM之前,先来看看EVM到底是什么。

以太坊虚拟机是什么?

每条去中心化的区块链都需要一个虚拟机来处理并执行操作。比特币的虚拟机相对简单,因为它只需要处理交易。然而,由于以太坊支持图灵完备的智能合约,其复杂度也就更高。因此,我们需要思考另一个重要问题。

既然智能合约要满足不可篡改性,并且即使历经多个节点也能无损运行,那么以太坊虚拟机(EVM)需要拥有哪些主要特性?

董希淼:央行数字货币使用双离线技术 没有手机信号也可使用:近日,国家金融与发展实验室特聘研究员董希淼表示,可以不开立银行账户或者支付账户,只要你装有数字货币钱包,你就可以使用央行数字货币。央行的数字货币使用最新的双离线技术,即使在没有手机信号的情况下,依然可以使用。只要装有数字货币钱包的手机,拿在一起碰一碰,就可以方便地完成转账或者支付。北京大学数字金融研究中心高级研究员徐远表示,新的数字货币和我们以前的纸币是一比一兑换的,现在商业银行要获得数字货币,必须拿以前的货币来换,并不增加总量,这是第一步,试点的时候并不增加总量。(央视财经)[2020/4/29]

确定性

可终止性

独立性

确定性

如果针对相同的一组输入,无论其执行了多少次代码,程序都给出相同的输出,那么就可以说是该程序具有确定性。确定性函数的一个完美示例就是数学运算。例如,假定所有数字都以10为底,则无论重复运算多少次,1+4始终等于5。

DApps往往需要同时处理大量金额,所以用户需要清楚知道代码在每个执行阶段如何响应。

可终止性

我们需要谨记一点,以太坊智能合约是图灵完备的。如果有充足的时间和资源,那么理论上来说智能合约可以解决任何问题。然而,我们无法判断合约是否能在给定的时间限制内完成所有操作。这就是为什么智能合约需要有终止机制。以太坊智能合约借助“gas”来定义其使用期限。当合约达到gas上限,则无法继续进行操作。

独立性

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

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

以太坊虚拟机:如何运作?

金色晨讯 | 人民日报:区块链不只是下一代互联网技术 更是下一代合作机制和组织形式;BitMEX泄漏的用户邮箱至少有23000个:1.上周8只区块链概念股接交易所监管函 “炒作股价配合股东减持”成问询重点;

2.爱沙尼亚加密交易所DX.Exchange暂时关闭交易所,寻求合并或出售;

3.上海市人民政府参事:区块链第一重要的是落地 要为实体经济服务;

4.人民日报:区块链不只是下一代互联网技术 更是下一代合作机制和组织形式;

5.全球化智库副主席:区块链会对诚信、信任带来一次革命性的变化;

6.Ripple创始人:美国制定明确的指导方针以支持区块链等金融科技解决方案至关重要;

7.雄安新区4大水利防洪项目将于近期实施 建设内容要求以区块链等为基础

8.济南市副市长:基于区块链技术和大数据的新系统助力政府审批流程;;

9.报告:全球Top10的加密基金主要集中在美国;

10.Calibra产品副总裁:无法决定Libra何时发布,这是Libra协会的事;

11.数据:Bakkt比特币月度期货合约交易量近期增长明显;

12.报告:64%的数字证券投资者来自传统风投公司,仅28%来自区块链风投公司;

13.云南省委:积极应用区块链技术,大力发展云南中医药事业;

14.The Block研究总监:BitMEX泄漏的用户邮箱至少有23000个。[2019/11/4]

当我们说到“虚拟机”?(virtualmachine)的时候,到底是什么意思?

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

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

声音 | 光明日报:充分运用区块链等新技术 创新党建工作载体和方式方法:《光明日报》今天发表题为“将党的优势转化为城市精细化治理优势”的评论文章。文中提到,要运用网络信息技术手段,提升智慧党建引领社会治理水平。充分运用大数据、区块链、人工智能等新技术,创新党建工作载体和方式方法,构建全天候、全覆盖、立体化的智慧党建工作体系。统筹推进智慧党建和智慧城市建设,设立大数据中心归集分散于各部门的基础信息和数字资源,共建共享技术支撑平台、大数据应用平台。[2019/10/23]

堆栈和状态机

相较于普通的虚拟机,EVM还具备两个额外特性。首先,作为状态机的EVM可以读取输入然后相应地更新其状态。其次,EVM还是堆栈式,其内存结构能够以堆栈形式进行组织和访问。

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

下面举个例子:

在上图的堆栈中,第一条插入的数据是Orange,最后一条数据是Apple。根据LIFO的逻辑,我们取出的第一条数据应该是Apple,最后才是Orange。

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

Push:向堆栈中加入数据

Pop:使用LIFO逻辑将数据从堆栈中移除

EVM中的堆栈操作

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

首先移除数据和操作数

相应操作被执行

执行结果被加入堆栈

参考以下图表:

我们首先移除两个数字:20和7

将这两个数字相加,我们得到27

最后,结果被重新加入堆栈

动态 | 禅城将借力区块链等信息技术 对人才服务再升级:据广州日报大洋网报道,禅城将借力区块链等信息技术,对人才服务再升级。区人社部门相关负责人介绍,禅城将重构人才服务办理流程,力争人才公寓、技能人才子女入学、毕业生就业报到、人才资格认定等37项业务实现“零跑腿”办理。[2019/1/18]

EVM堆栈式系统的优势

堆栈结构可确保EVM不需要获取操作数的确切地址。堆栈结构会始终且必然将VM指向下一个操作数。降低大量操作开销的同时提高了整体效率。

EVM拥有:世界状态(worldstate)、机器状态?(machinestate)和虚拟ROM。世界状态将所有帐户存储在网络中,机器状态包括程序计数器、可用gas、堆栈和内存等数据。最后,虚拟ROM读取名为“EVM字节码”的机器级代码。这是只有EVM才能理解的独特语言。

EVM–读取字节码?

编程语言分为高级和低级语言。低级语言(如字节码)能够轻松被机器读取,但人类却难以理解。这也是为什么大多数编程语言都是高级形式的原因。那么,在智能合约中程序是如何运作的呢?

Solidity/Vyper语言的智能合约被编译为字节码,使用到的编译器叫做“solc”

字节码由网络读取并处理

字节码是Solidity操作码的二进制形式。从EVM转向eWASM的过程中,编译器是非常重要的一个部分,因为EVM无法理解除了字节码之外的任何语言。

每个操作码在规范中都被赋予了易于理解的名称,并由数字代码表示。例如,数字0X01代表ADD操作码。

动态 | TransferGo使用Ripple的技术 实现跨洲支付:据cryptoglobe消息,支付服务提供商TransferGo通过Finextra宣布,他们使用Ripple的技术可以在30分钟内从欧洲支付到印度。[2018/9/6]

EVM的功能性

EVM是以太坊网络中的去中心化处理单元。每笔交易、交互和智能合约执行只能通过EVM进行。

负责所有不同的数据结构,包括指令、操作数以及已经处理的数据。

EVM通过指令分配器获取并执行指令,对操作码进行解码。

EVM还会跟踪多个网络组件,例如世界状态、存储状态以及区块信息。

在以太坊网络中为智能合约创建一个运行时环境。该环境包含需要用以执行具体交易的信息,例如gas价格(最新gas价格)、代码大小、Caller(交易接收方地址)以及Origin(交易发送方地址)。

EVM的缺点

虽然EVM具备许多优势,但也存在四个主要问题,导致网络的整体吞吐量受限:

由于EVM需要处理大量各种各样的操作,其速度便不尽人意。EVM的操作码规范没有进行更新,也没有针对不同的硬件平台做出优化。

第一点提到由于EVM需要处理大量不同操作,就会容易成为运转瓶颈。其结果就是严重损害整个网络的效率。

自从发布初始规范以来,EVM并没有进行太多优化,导致编写合约所需的工具和语言极大受限。

假如底层工作环境本身存在巨大缺陷,那么引入一系列新颖机制(分片/rollups/Casper)的意义何在?以太坊之所以寻求从EVM转向使用eWASM,也出于对以上缺陷的衡量。

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

什么是WebAssembly(WASM)?

WebAssembly最近获得了许多关注。WebAssembly是由WorldWideWebConsortium(W3C,万维网联盟)?创造并定义的新代码类型,能够在现代浏览器中高效执行。

WebAssembly凭什么独树一帜?

由于WASM具备基于堆栈的低级二进制格式,且在默认情况下很小,从而可以实现快速加载和执行。浏览器下载WASM代码后,便可以快速将其转换为任何计算机的程序集。

WebAssembly的优势

受多个JavaScript引擎和运行时环境的支持,可以在大多数现代浏览器中执行。

Go/Rust/C/C++语言可以直接编译为WASM

能够快速适应所有机器级架构,具备极高性能

附带与大多数现代硬件架构兼容的指令集

在大多数平台上趋近于本地运行速度

以太坊2.0eWASM?

读到这里大家可能已经发现了,eWASM(EthereumWebAssembly)就是以太坊2.0版的WebAssembly。

根据相关团队的说法:

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

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

构建EVM转译器,并且以eWASM合约形式添加计量注入器

发布明确详细的规范:以太坊接口、eWASM合约语义以及细节

为solc编译器构建一个eWASM后端

提供C语言和Rust语言的相应指令和库,以支持智能合约编写

诸如EOS、Tron以及Cardano等项目已经或者准备采用WASM,实现eWASM之后,以太坊也将成为其中之一。

eWASMvsEVM

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

现在有了大概的认识,我将进一步对比eWASM和EVM。

eWASMvsEVM#1:?速度

简单来说,EVM可以看作是“万精油”,但没有达到理想效果。就拿代码编译来说吧。

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

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

eWASM可以直接转换为编译代码,从而提高加载速度,并且大幅提升每个区块能够处理的交易量。除此之外,有了分片和layer2解决方案的加持,以太坊2.0的速度会显著提升。

eWASMvsEVM#2:?预编译

eWASM还能消除以太坊对预编译的依赖。预编译是EVM字节码的特殊位,好处在于能够节省gas成本,进行高效的密码运算。大多数情况下,如果不进行预编译,那么几乎不可能将创建合约所需的gas控制在上限范围内。而eWASM的gas效率非常之高,以至于能够省去大部分甚至全部的预编译。

然而,预编译也有不足之处。引入新的预编译往往需要网络进行系统范围的硬分叉。根据历史经验,因为可能导致社区分裂,硬分叉多少具有争议性。

而这些意味着什么?

eWASM能够帮助开发者又快又省地创建智能合约,并且没有硬分叉的顾虑。

eWASMvsEVM#3:?灵活性

最后,相较于标准的EVM,eWASM最显著的优势就是代码灵活性。要编写智能合约,以太坊开发者必须特地学习Solidity语言,而这就成为了开发者的知识瓶颈。

eWASM能够与多种语言进行交互,并且拥有更为广泛的开发者工具集。eWASM将支持C/C++/Rust语言。

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

Microsoft的Chakra引擎(MicrosoftEdge)

Google的V8engine(Node.js及基于Chromium的浏览器)

Mozilla的Spidermonkey引擎(Firefox及Thunderbird)

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

ml-proto(OCaml引用解释器)

wasm-jit-prototype(使用LLVM后端的独立虚拟机)

wabt(基于堆栈的解释器)

EWASM还具有以下的开创性优势,这些优势是之前的EVM不可能拥有的:

对于以太坊轻客户端,得到浏览器支持会更简单,因为eWASM是根据W3C标准架构的

eWASM有更多编译器和更多种类的开发者工具

由于大量的项目已经在使用eWASM了,它已聚集了一个健康、多元的开发者社区

结语:eWASM能否助Eth2.0更上一层楼?

关于eWASM,以太坊社区感到非常兴奋。然而,相关讨论也总是伴随着天花乱坠的说法,我们还需要听到不同的声音。一位资深以太坊开发者GregColvin就对eWASM智能合约持疑,其主要观点是:

eWASM无法消除预编译

eWASM过渡依赖编译器,可能会导致单点故障

其实绝大多数以太坊开发者都相信eWASM将对协议的整体性能和吞吐量造成巨大影响。

结果究竟会如何呢?让我们拭目以待吧!

?

标签:WASCOINCEKEXWasderSpace Pig CoinImpossible Financeokex币价格

火必APP热门资讯
VERS:推特遭大规模攻击后续:四名黑客浮出水面,有用户数据被下载_ANX

北京时间周四凌晨社交媒体巨头推特遭遇了迄今为止最大的黑客事件,全球众多知名人士和公司的账户受到影响.

区块链:隐私项目的标配:TEE会成为区块链数据安全的第二重保险吗?_SCARDust

很多涉及隐私保护的项目在介绍自己的时候,都会提到自己使用了TEE技术。TEE到底是何方神圣呢?今天的万向区块链小课堂就带大家了解一下这个知识点.

GRAM:“加密妈妈”Hester Peirce抨击美国监管机构针对Telegram采取的行动_gram币最新价格

在7月21日新加坡区块链周的演讲中,在业内被称为“?加密妈妈”的美国证券交易委员会专员HesterPeirce公开表达了她对SEC最近针对Telegram结束的诉讼持反对意见.

TAB:一文了解稳定币聚合协议mStable的运作及治理模式_ETA

稳定币聚合协议mStable即将于北京时间7月15日22点左右在Balancer上分发其协议代币Meta.

数字资产:PeckShield:今年以来流入交易所的高风险资产达14.7万BTC_Hepa Finance

0.概要 2020?年以来,在全球新冠肺炎疫情的影响下,全球经济开启了数字化转型的步伐。互联网科技巨头Facebook牵头发起的Libra项目试图做新一代的全球数字货币,而全球各国央行则纷纷推出.

BTC:巴比特专栏 | 蚂蚁链来了意味着什么?_区块链

作者:张烽 蚂蚁链来了! 蚂蚁集团董事长井贤栋在杭州宣布,蚂蚁区块链正式升级为“蚂蚁链”。井贤栋在发布会上分享了蚂蚁链已取得的三个关键成绩:在技术上,蚂蚁链连续四年每年全球专利申请数始终保持在第.