以太坊联合创始人兼ConsenSys创始人Joseph Lubin近期接受采访时表示,他将新的加密项目分为好的营销项目和好的竞争对手两类。而波场属于前者。他补充说:“目前市场上有一些优秀的营销项目同时也是非常高质量的技术项目,比如Polkadot和Dfinity, Tezos和NEAR, Algorand和Avalanche。这些项目在技术上都令人印象深刻。”Lubin表示,项目很难成为基于第一层的信任层。然而比特币和以太坊作为去中心化网络,已经足以作为现有的基础信任层。Lubin还指出,比特币和以太坊并不是非得与监管机构打交道,这与该行业的新项目不同。对于技术强大的项目而言,要与以太坊的网络效应竞争也不是不可能,尽管这“非常非常困难”。Lubin有此信心也不是无缘无故的,其中以太坊有着其他项目完全没有就九个核心优势。
以太坊(图片来源于网络)
一、以太坊虚拟机EVM,EVM是以太坊中智能合约的运行环境。它是以太坊项目中的另一个主要创新。它是由许多互相连接的计算机组成的。任何人都可以上传程序,并让这些程序自动执行,同时保证现在和所有以前的每个程序的状态总是公共可见的。
二、以太坊账户,以太坊中有两类账户,它们共用同一个地址空间:外部账户:该类账户被公钥-私钥相对控制;合约账户:该类账户被存储在账户中的代码控制。外部账户的地址是由公钥决定的,合约账户的地址是在创建合约时由合约创建者的地址和该 地址发出过的交易数量计算得到。两类账户的唯一区别是:外部账户没有代码,人们可以通过创建和签名一笔交易从一个外部账户发送消息。每当合约账户收到一条消息,合约内部的代码就会被激活,允许它对内部存储进行读取、写入、发送其它消息和创建合约。
三、以太坊消息以太坊的消息在某种程度上类似于比特币的交易,但是两者之间存在3点重要的不同。一是以太坊的消息可以由外部实体或合约创建,然而比特币的交易只能从外部创建;二是以太坊消息可以选择包含数据;三如果以太坊消息的接收者是合约账户,可以选择进行回应,这意味着以太坊消息也包含函数概念。
四、以太坊交易,以太坊中“交易”是指存在从外部账户发出的消息的签名数据包。交易包含消息的接收者、用于确认发送者的签名、以太坊账户余额、要发送的数据和被称为STARTGAS和GASPRICE的两个数值。为了防止代码出现指数型爆炸和无限循环,每笔交易需要对执行代码所引发的计算步骤做出限制。STARTGAS就是通过需要支付的燃料来对计算步骤进行限制,GASPRICE是每一计算步骤需要支付矿工的燃料价格。
以太坊交易(图片来源于网络)
五、燃料Gas,以太坊上的每笔交易都会被收取一定数量的燃料Gas,设置Gas的目的是限制交易执行所需的工作量,同时为交易的执行支付费用。当EVM执行交易时,Gas将按照特定规则被逐渐消耗。Gas价格由交易创建者设置,发送账户需要预付的交易费用=GASPRICE*Gas amount。如果执行结束还有Gas剩余,这些Gas将被返还给发送账户。无论执行到什么位置,一旦Gas被耗尽就会触发一个out-of-gas异常。同时,当前调用帧所做的所有状态修改都将被回滚。
六、存储、主存和栈,每一个账户都有一块永久的内存区域,被称为储存,其形式为Key-value,key和value的长度均为256位。相对于主存和栈,存储的读操作开销较大,一个合约只能对它自己的储存进行读写。第二个内存区被称为主存。合约执行每次消息调用时都有一块新的被清除过的主存,主存可以按字节寻址,但是读写的最小单位为32字节。操作主存的开销随着主存的增长而变大。EVM不是基于寄存器的,而是基于栈的虚拟机。所有的计算都是在一个被称为栈的区域内执行。可以把栈里的元素放到存储或者主存中。
七、指令集,EVM的指令集被房间保持在最小规模,以尽可能避免可能导致共识问题的错误。所有的指令都是针对256位这个基本的数据单位进行操作,具备常用的算术、位、逻辑和比较操作,也可以进行条件和无条件跳转。可约可以访问当前的相关属性,比如它的编号和时间戳。
八、消息调用,合约可以通过消息调用的方式来调用其它合约,或者发送以太币到非合约账户,消息调用 和交易非常类似,它们都有一个源,一个目标,数据负载,以太币,Gas和返回数据。事实上每个交易都可以被认为是一个顶层消息调用,这个消息调用会依次产生更多的消息调用。一个合约可以决定剩余Gas的分配,如果在内部消息调用时发生了out-of-gas异常或者其它异常,合约将得到通知。被调用的合约会拥有崭新的主存,并能够访问调用的负载。
以太坊EVM(图片来源于网络)
九、代码调用和库,以太坊中存在一种特殊类型的消息调用 ,被称为callcode。它跟消息调用几乎完全一样,只是加载来自目标地址的代码将在发起调用的合约上下文中运行,这意味着一个合约可以在运行时从另外一个地址动态加载代码。存储、当前地址、余额都指向发起调用的合约,只有代码是从被调用地址获取的。这使得Solidity可以实现“库”。可复用的库代码可以应用在一个合约的存储上,可以用来实现复杂的数据结构,从而使智能合约更加的强大。
何况以太坊还有v神加持,以及先发优势和生态优势,还有以太坊上线四年来积累的用户与应用,可谓是名副其实的公链三强之一。







