EthereumVirtualMachine的缩写,中文直译全称为以太坊虚拟机。对于没有接触过软件开发的用户来说,EVM看似晦涩难懂。但是如果我们先类比什么是Java虚拟机,或许会更好理解。
一、简单的类比:EVM之于以太坊,正如Java虚拟机之于Java语言
在做开发前,程序员需要把Java代码编译成字节码,但计算机无法识别字节码,Java虚拟机的作用就是把字节码编译成计算机系统可以识别的机器码指令,然后在计算机上运行。那么同样的,EVM的存在是为了能让程序员用Solidity编写的合约代码,运行在以太坊的环境中。
可见,以太坊就相当于计算机环境,而EVM负责把合约代码编译成以太坊能识别的机器码运行。在网络较为繁荣,也就是开发者搭建应用需求比较旺盛的时候,每天甚至每小时都会有成千上万条新的代码写入以太坊网络。但是,这些合约代码,如果无法被编译成系统可以识别的语言信号,就无法转化成具体的指令和程序。所以,我们可以把EVM看成是以太坊生态中最重要的资源转换器。没有了他,以太坊上的代码就无法生效,即便是开发者孜孜不倦地编写程序语言,也等同于停更。须知,任何一款程序的代码停止更新,就意味着他走向终结。另外,如果没有EVM,任何人都无法在以太坊协议上执行程序软件,因为这样一来他们写入系统的代码,全是Bug。
数据:6月初以来比特币矿工的BTC储备已减少约5,000枚:金色财经报道,CryptoQuant数据显示,自6月初以来,比特币矿工的BTC储备已减少约5,000枚,表明资金已转移至交易所,矿工向交易所发送大量BTC的数量激增。报告指出:“我们认为这一活动表明矿商可能采取去风险或对冲策略,值得注意的是,随着机构对比特币兴趣的增加,比特币矿业股票最近飙升”。[2023/7/20 11:05:23]
为进一步强化读者对EVM的概念,大家不妨先明晰两个概念:虚拟机和图灵完备性。
二、读懂两个最关键概念:虚拟机和图灵完备性
首先,虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
也就是说在实体计算机中能够完成的工作,在虚拟机中都能够实现。虚拟机通过生成现有操作系统的全新虚拟镜像,具有和Windows系统完全一样的功能,但它又是独立运行的,不会对真正的系统产生影。
Upbit已开放基于以太坊的NFT存取款与交易功能:7月4日消息,加密交易所Upbit已开放基于以太坊网络的NFT存取款与交易功能。[2023/7/4 22:16:56]
因此,可以这么理解,以太坊的虚拟机就是以太坊智能合约的运行环境,系统中的节点可借助EVM来运行自己的DAPP。另外,由于以太坊虚拟机的运行环境完全与主链隔离,这自然而然地形成了一种测试环境。这种测试环境,给了许多没有区块链技术经验的开发者大胆试错的机会,因为他们的错误代码完全不会影响到以太坊智能合约。
其次,图灵完备是个技术术语,得名自英国数学家艾伦·图灵,发明了第一台图灵机器,它是当今计算机的先驱。后来,计算机业界用图灵完备代指可以处理任意复杂程度的计算。从理论上看,以太坊可以部署任何类型和功能的计算机程序,只是这些程序是分布式的,而非通常我们所看到的中心化的,而这一切,需要归功于EVM的底层设计。从这一角度来看,比特币并不是图灵完备的,因为他只是个分布式账本,无法执行任何应用程序。
最后,综合这两大概念,可知EVM是一个可以执行任何复杂度计算的、完全虚拟化的计算机系统,从这一点来看它又像以太坊的大脑。
BitMEX宣布上线RNDRUSD本位永续合约:金色财经报道,加密货币交易平台BitMEX宣布上线RNDRUSD本位永续合约,杠杆高达50倍。[2023/5/23 15:20:26]
三、EVM执行过程中的关键性模块
EVM的运转,紧紧地围绕着以太坊的生态。所以,很多让我们感到晦涩但又熟悉的以太坊术语,其实均与EVM有着莫大的关系。
首先是操作码。EVM就是通过操作码,来解释和转译Solidity编写的指令。目前EVM中有140多个不同的操作码,他们类似EVM直接发出的指令。例如,CREAT操作码对应着创建智能合约,STOP操作码意指暂停正在运行的合约;
区块链基础设施提供商Aura Network推出Xstaxy主网:金色财经报道,区块链基础设施提供商Aura Network宣布Xstaxy主网将于世界标准时间 3 月 20 日 13:00 正式启动。Aura Network通过将最新技术集成到 Xstaxy 主网中,旨在提供卓越的可扩展性、安全性和可靠性。[2023/3/21 13:15:54]
其次是Gas费。Gas费是在EVM环境中执行代码的资源,以“gwei”为单位。具体来看,执行任何一笔交易,都需要消耗算力资源和存储空间,就像我们在手机中任意下载一个应用,都需要占用电量和内存。这部分隐性的消耗,在链上就直观地转化成显性的Gas费成本。EVM和Gas费之间的关系,像是汽车和汽油,EVM每执行一项指令,都要消耗对应额度的Gas费;
最后是执行转账功能,这也是EVM和全体以太坊用户都能产生关联的地方。EVM在转账时的具体步骤如下:
1)核对是否有误差,包括转账数值和签名的有效性等;
2)计算转账所需要的Gas费,并执行收取Gas费指令;
Web3支付基础设施公司Twig收购法国新创银行Vybe:1月4日消息,Web3支付基础设施公司Twig宣布收购面向Z世代年轻人用户的法国新创银行Vybe,但具体收购金额暂未对外公开。Twig表示这笔收购交易将使其能够推出更全面的服务产品,并拓展青少年银行业务。
Twig声称是目前欧洲增长最快的金融科技公司,去年完成3500万美元A轮融资,Fasanara Capital领投。(AltFi)[2023/1/4 9:52:36]
3)将数字资产转账到指定的地址。
需要注意的是,EVM若检测出转账者未支付足够的手续费,那么转账会被回滚,且不退转账费,直接支付给矿工。另外,如果是收款人地址错误导致的交易失败,EVM会原封不动的把转账本金和手续费退回给付款人。
四、浅析EVM公链的概念和重要动向
以太坊在公链赛道,稳坐龙头地位,无论是生态应用数量和总锁仓量都占行业绝大多数。因此,市面上主流的公链,都选择兼容EVM,他们也因此得名EVM公链。
EVM兼容,指的是在其公链上搭建的智能合约,可以快速便捷而又低成本地在以太坊上来回迁移、无缝搬运。目前,很多公链在开发中,特意实现了EVM兼容的功能,以达到最大化承接以太坊外溢项目的功能,类似于移动互联网玩法中的引流。所以,许多公链项目方都将实现EVM兼容,作为其最大的卖点和看点。
当然,从目前的行情来看,EVM兼容链的最终优胜者,依然寥寥。
五、什么是eWASM?它和EVM的关系是什么?
熟悉以太坊生态的朋友都知道,以太坊2.0是以太坊的终极形态,它在实现了POW转POS机制后,能够高性能地处理一切计算任务,甚至媲美Web2的互联网产品。但是,按照目前EVM的底层设计和性能表现来看,EVM实在无法与以太坊2.0的理想状态适配。于是,eWASM成为EVM的接棒者、替代品。
交待一下,WebAssemly即Web上的汇编,作为近年来兴起的Web执行环境,是一种为基于栈的虚拟机设计的的二进制指令格式。相对JavaScript,拥有更好的性能、较低的存储成本、更安全的执行环境、更多的语言支持等优势。
按照设想,因为相比于EVM,eWASM具有更好的性能以及更好的扩展性,可以支持Solidity、C++、Rust、AssemblyScript等编程语言,开发合约会更容易。eWASM也与当前的Web标准兼容,因而更容易在普通浏览器中运行,用户无需扩展程序即可访问DApp。
此外,以太坊并不是唯一一个使用WASM作为其底层执行引擎的,EOS、Dfinity、Polkadot、Tron、Cardano、Spacemesh等都已经或正在采用WASM。
值得注意的是,以太坊2.0分为三个阶段:PoS、分片,以及排在最后的eWASM。目前大家最关心的转POS,也就是合并,还在准备过程当中。所以尚需时日的eWASM,其代码更新的频次并不多,但他的概念足够吸引人。eWASM能否真如其设想,撬动整个以太坊2.0,还将持续关注。
今天的分享就到这里,后期会给大家带来其他赛道的龙头项目分析。感兴趣的可以点个关注。我也会不定期整理一些前沿咨询和项目点评,欢迎各位志同道合的币圈人一起来探索。
大家看完记得点赞再看转发!
来源:金色财经
近日,中国移动通信联合会元宇宙产业委员会的部分委员得到胡润200强榜单的认可,元宇宙产业委员会的聚合作用和引领作用在全行业日益凸显.
1900/1/1 0:00:00昨日晚间给到先多后空的思路,整体还是比较准确的,以太到达多单入场点位不触及风控点位,到达目标点位的情况下有160点的利润空间,而比特币没有及时更新,只给到100点的风控可能存在有损的情况.
1900/1/1 0:00:00北京时间6月16日凌晨2点,美联储做出了1994年以来的最大胆决定,宣布加息75基点。这是1994年以来最大的加息的幅度。受此利空消息影响,大盘再次跌上加跌.
1900/1/1 0:00:00熊市正在破坏整个加密领域。价格严重下跌。主要的行业参与者正在祭坛上被焚烧祭天。加密推特上的市场情绪也感觉像是在葬礼上接受休克疗法。Terra和Celsius在几天内就被市场力量曝光并开膛破肚.
1900/1/1 0:00:00数字经济时代,算力是驱动经济发展的主引擎之一。如何为全社会提供更加稳定、高效、普惠的算力,关系到数字经济的核心发展.
1900/1/1 0:00:00加息75个基点,鲍威尔讲话加息75个基点将不会成为常态,随后币价在当走出了一波上涨行情,让大家以为低位行情后市会持续上涨的误导,但是之际上加息75个基点已经成为事实重大利空消息面.
1900/1/1 0:00:00