面对以太坊君士坦丁堡升级,ETH 持有者该做什么?

互联网 2019-02-01 10:04:13

以太坊君士坦丁堡升级即将到来,这次更新主要涉及五个提案:EIP145、EIP1014、EIP1052、EIP1283、EIP1234。这些改进利于让链上的特定操作更便宜更容易,同时也推迟了难度炸弹和调整了区块奖励。

原文标题:《读懂以太坊君士坦丁堡升级:到底是什么》
作者:Mycrypto
翻译:Leo

以太坊君士坦丁堡分叉即将到来,很多人都想了解这意味着什么,以及是否应该做些什么准备。(如果你只是 ETH 长期持有者,则无需为此更新做准备。)

什么是分叉?

简单来说,分叉是对网络的更新。它跟你更新你的计算机或应用类似,升级后可以变得更安全或拥有新功能。

你有没有遇到过这样的情况:打开一个 Word 文档或其他文件时,它看上去很怪异?因为它是在新版中创建的文档,可能会导致评论丢失,也可能显示出怪异字体。硬分叉也类似。如果人们同时运行新版和旧版软件,当它们尝试沟通时,事情就会变得不稳定,且可能导致信息丢失。

由于区块链是去中心化的,且同时在无数的计算机上运行。每个人都可以同时运行最新版本,而不是像 Word 文档一样,从一个人发送到另外一个人。

因此,为了确保事情顺利,每个区块链的软件(节点)必须升级更新。这样,每个参与者都有相同的新功能和安全,遵循相同的规则。

面对以太坊君士坦丁堡升级,ETH 持有者该做什么?来源:https://cryptographics.info/cryptographics/blockchain/hard-soft-forks/

为什么叫分叉?

它之所为被称为分叉,是因为跟道路上的分叉类似,单条链的区块分裂成为两条链的独立区块。一条链上还是按旧规则运行,第二条链按新规则运行。

如果是没有争议的硬分叉,大多数人都停止运行旧版软件。没有人会在这条旧链上添加新区块。这样,该链条自然减速然后死亡。旧链上的代币也就没有价值。

然而,如果升级分叉是有争议的,这意味着有些人不赞同要更新的内容。这样,分叉后的两条「路」可能会继续存在,价值也会持续。正如 ETC 从 ETH 分叉出来,BCH 从 BTC 中分叉出来一样。

什么是君士坦丁堡?

君士坦丁堡只是这次以太坊网络更新的名称。这次升级没有争议,预计每人都同意采用新版本。

由此,就像之前以太坊的无争议升级一样(2016 年的 Homestead 和 2017 的 Byzantium),这次硬分叉产生两条链,旧链死掉,而新链持续。此外,跟之前的更新一样,普通人不会注意到任何变化或不同路径的分叉。

这次新的 ETH 区块链包括一些新以太坊改进提案(EIP)的实施,目的是优化以太坊。

面对以太坊君士坦丁堡升级,ETH 持有者该做什么?

我是否必须对这个新的以太坊区块链做点什么,或者移走我的 ETH?

不用。你的 ETH 将会同时存在于新的 ETH 区块链和旧的 ETH 区块链上。所有的交易所、服务钱包或节点提供商都会升级它们的节点,因此,你只需使用更新的节点 / 软件,而不会有什么影响。

如果你运行节点(例如,你为 Infura 工作,或用家用计算机运行 Geth 或 Parity),则需要升级到最新最好的软件。而对于普通用户来说,你无需做什么事情,这会是平稳的过渡。

如果硬分叉有争议,那么,这会是不同的故事。

君士坦丁堡包括哪些 EIP?

EIP145:EVM 中的按位移位指令

提供原生的按位移位,其成本与其他算术运算相当。

l EVM 缺少按位移位运算符,但支持其他逻辑和算术运算符。移位操作可以通过算术运算符实现,但是它成本更高,且需要更多来自主机的处理时间。

l 使用算术运算实施 SHL 和 SHR,每个花费 35gas,而所提议的指令仅花费 3gas。

l TL;DR:向协议添加本地功能,以便在链上执行某些操作更便宜且更简单。

EIP1014: Skinny CREATE2

l 在 0xf5 中添加新的操作码,它需要 4 个堆栈参数:endowment,memory_start,memory_length,salt。行为与 CREATE 相同,除了使用 keccak256(0xff ++ address ++ salt ++ keccak256(init_code)))[12:],而不是通常的 sender-and-nonce-hash 作为初始化合约的地址。

l 允许与链上还不存在但可依赖的地址进行交互,但最终可能只包含由特定 init 代码创建的代码。

l 对涉及与合约反事实交互的状态通道的用例很重要。

l TL;DR:可让你与由于状态通道而尚未创建的地址交互。

EIP 1052:EXTCODEHASH 操作码

l EIP 1052 指定一个新的操作码,它返回合约代码的 keccak256 哈希值。

l 很多合约需要对合约的字节码执行检查,但不一定需要字节码本身。例如,合约可能想要检查另外一个合约的字节码是否是一组允许的实现之一,或者它可对代码执行分析,并且如果分析通过,它可将与字节码相匹配的任何合约列入白名单。

l 合约目前通过使用 EXTCODECOPY 操作码来执行此操作,但这很贵,特别是对于大型合约,这种情况下只需哈希值。由此,提出一个新操作码 EXTCODEHASH,它返回合约字节码的 keccak256 哈希值。

l TL;DR:使得链上执行某些操作更便宜(需要更少 gas)。

EIP 1283: SSTORE 的净 gas 计量(无 dirty maps)

l EIP 1283 提议对 SSTORE 操作码进行净 gas 计量变更,这样可以为合约存储提供新的用途,同时在它不符合大多数实施工作时减少过多的 gas 成本。

l TL;DR:使得在链上执行某些操作更便宜(需要更少的 gas),特别是对于目前费用「太贵」的操作。

EIP1234: 君士坦丁堡难度炸弹延迟和区块奖励调整

l 由于难度炸弹(也称为「冰河时代」)缓慢加速,平均出块时间在增加。EIP1234 提议将难度炸弹推迟大约 12 个月,并在君士坦丁堡分叉时减少区块回报(Metropolis 分叉第二部分)。

l TL;DR:确保在 PoS 准备好并实施之前不冻结区块链。

这会影响交易 / 确认时间吗?

出块时间会保持在 15 秒左右。未来的全 PoS 可能会有所改变,但有 PoW 时会存在一些延迟,且更快的交易速度可能会产生不可靠交易的区块。ETH 目前使用叔父区块来解决这个问题。

这会影响交易费用吗?

费用取决于交易数量。一些 EIP 会优化智能合约交互,因此,智能合约的交易费用可能会降低。但是,我们不清楚如果有类似于加密猫这样的 DApp 出现,这会让堵塞网络并增加费用。

这会影响每秒的交易次数吗?

会有相同的平均每秒交易次数,但考虑 EIP1024_(译注:应该是 EIP1014,这里估计是作者笔误)_将如何优化状态通道,我们可以看到一些 layer 2 解决方案开始走向舞台(想想 OmiseGo、LoomNetwork、Raiden 等)。

这是 PoS 的更新吗?

还不是。在这之前还有很多测试需要进行。EIP-1234 的理由之一减少区块奖励以延迟难度炸弹。最终来说,未来会有 beacon 链和分片链。

这里是君士坦丁堡的进度跟踪(https://github.com/ethereum/pm/wiki/Constantinople-Progress-Tracker)。如果你希望从技术层面了解 EIP,这还不错。

附录:

面对以太坊君士坦丁堡升级,ETH 持有者该做什么?以太坊 EIP 部分进度图,截止到 2019.1.14

相关资讯Relevent