编者按:本文来自以太坊爱好者,作者:PoojaRanjan,翻译:阿剑,Odaily星球日报经授权转载。什么是网络升级/硬分叉?
网络升级就是对以太坊协议的更改,为已有的以太坊协议加入新的规则来加强整个系统。这些新规则是预先用以太坊升级提案的形式公布出来的,而在提案中,提议者会用技术术语定义出需要在网络升级中实现的变更和功能。网络升级既有计划之内的,也有计划之外的。升级也叫做分叉,一般来说是加入用户和协议开发支持的新功能。有时候人们也会为了修复漏洞或制止攻击而使用分叉,这就是计划之外的分叉了。迄今为止,以太坊网络上已经实现了7次硬分叉。“硬分叉”的含义是,该次网络升级所包含的内容是不完全后向兼容的,并且有可能导致一些旧交易失效,以及/或者改变已部署合约的功能。公有链的去中心化特性使得网络升级较之普通的软件升级更难,因为这需要整个社区与多个以太坊客户端开发者的协作和沟通,惟其如此,升级才能顺利进行。为了升级能在主网上无缝激活,升级内容会先在以太坊测试网络比如Rinkeby、Ropsten、Goerli和Kovan上激活运行。Istanbul是什么?
伊斯坦布尔是以太坊的第8次网络升级。此前的网络升级还曾有过诸如“拜占庭”这样的代号。最近一次网络升级叫做“君士坦丁堡”。网络升级的过程是什么样的?
当整个社区对升级应当包含哪些变更达成共识之后,这些规则变更会被编入多个以太坊客户端,比如geth、Parity、Besu以及Nethermind。这些协议变更会在特定某个区块开始激活,激活之后,升级所引入的新功能就可以使用了。没有升级到新规则的节点也会自然组成一个使用旧规则的网络,但这个网络与使用新规则的网络之间是不能互通的。本次升级中包含了哪些内容?
伊斯坦布尔升级的内容是用以太坊升级提案的形式表述出来的。EIP的作用就是描述以太坊平台的标准,包括核心协议技术说明、客户端API以及合约标准。因为以太坊社区在过去一年中的成长,本次升级是历次升级中规模最大的,超过30个EIP被提议加入这次分叉中。经过详细的讨论,6个EIP最终被认为适合并已准备好加入这次升级。EIP1679:伊斯坦布尔计划
该EIP包含了将加入伊斯坦布尔分叉的协议变更列表。该EIP也列出了一开始被提议的所有EIP。包含在伊斯坦布尔升级中的EIP具有如下特点:根据计算开销以及提升拒绝服务攻击抗性的需要重新分配一些操作码的Gas耗用量;使基于SNARKs和STARKs的Layer-2方案性能更佳;使以太坊和Zcash能够互操作。让合约能够引入更有创造性的功能。EIP-152:增加BLAKE2压缩函数F预编译功能
增加在以太坊合约内验证EquihashPoW的功能。这就开启了Zcash和以太坊之间中继交易以及原子化互换交易的可能。EIP-1108:降低alt_bn128曲线的预编译Gas消耗量
让zk-SNARKs运算变得更便宜,让更便宜的扩展和隐私应用能开发出来。例如Matterlabs、AztecProtocol、Rollup以及Zether。EIP-1344:ChainID操作码
为合约增加一种跟踪自己所在以太坊链的方式,好让合约跟踪正确Layer-1链,尤其是在硬分叉期间。EIP-1884:给与默克尔树大小相关的操作码重新定价
改变了一些EVM操作码的Gas耗用量,以防止滥发交易攻击并更好地平衡每个区块的计算开销。在以太坊网络上,一个操作所需耗用的Gas数量往往跟这个操作所需付出的计算开销相匹配。该EIP提高了一些计算密集但当前的Gas耗用量较少的操作码的耗用量,即SLOAD、BALANCE以及EXTCODEHASH。EIP-2028:降低交易数据Gas消耗量
通过降低在交易内调用数据的Gas消耗量来让zk-SNARKs和zk-STARKs的应用更便宜。这样做还可以帮助Layer-2解决方案提高吞吐量。Starkware就是一个例子。EIP-2200:改变SSTORE操作的Gas净耗用量计量方式
改变EVM数据存储操作的Gas耗用量计量方式,让合约能够引入一些新的函数,比如重入锁以及same-contractmulti-send。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。