Ethereum Constantinople Update Announcement | Ethereum Foundation Blog

0
97

NOTE: DUE TO SECURITY VULNERABILITY WE PROGRAM CONSTANTINOPLE. PLEASE IGNORE THE INSTRUCTIONS IN THIS BLOG POST. CLICK HERE FOR MORE INFORMATION.

The Ethereum network will undergo a scheduled upgrade at block number 7,080,000which is predicted to occur on Wednesday, January 16, 2019. The exact date is changed depending on block times between now and then and could be activated 1-2 days before or after. A countdown timer can be seen at https://amberdata.io/blocks/7080000. You can check the online update in real time at http://forkmon.ethdevops.io/.

What is Constantinople?

Constantinople is the name given to this network update. Previous network updates were given other names such as False Dragon and Byzantium.

As an Ethereum user or ether owner, is there anything I need to do?

If you use an exchange (such as Coinbase, Kraken or Binance), an online wallet service (such as Metamask, MyCrypto or MyEtherWallet), a mobile wallet service (such as Coinbase Wallet, Status.im or Trust Wallet), or a hardware wallet (such as Ledger, Trezor or KeepKey) you don’t need to do anything unless you are told to take further steps by your exchange or wallet service.

As a node operator or miner, what should I do?

Download the latest version of your Ethereum client:


What happens if I’m a miner or node operator and I don’t participate in the update?

If you are using an Ethereum client that is not updated to the latest version (listed above), your client will sync to the pre-fork blockchain once the update occurs. You will be stuck on an incompatible chain following the old rules and you will not be able to send ether or operate on the post-update Ethereum network.

What is a network update in Ethereum country?

A network update is a change to the underlying Ethereum protocol, creating new rules to improve the system. The decentralized nature of blockchain systems makes network updating difficult. Blockchain network upgrades require collaboration and communication with the community, as well as with the developers of the various Ethereum clients to make the transition go smoothly.

What happens during a network upgrade?

Once the community comes to an agreement on which changes should be included in the update, changes to the protocol are written into the various Ethereum clients, such as geth, Parity and Harmony. The protocol changes are activated at a specific block number. All nodes that have not been updated to the new rules will be left on the old chain where the previous rules continue to exist.

What changes are taking place in Constantinople?

Changes that are implemented in Constantinople are defined using EIPs. Ethereum Improvement Proposals (EIPs) describe standards for the Ethereum platform, including core protocol specifications, client APIs, and contract standards. The following EIPs will be implemented in Constantinople.

EIP 145: Instructions on changing bits in EVM

  • Provides a native bidirectional shift with a cost equal to other arithmetic operations.

  • EVM lacks bit shift operators, but supports other logical and arithmetic operators. Shift operations can be implemented using arithmetic operators, but this has a higher cost and requires more processing time. Implementing SHL and SHR using arithmetic costs 35 gas each, while these proposed instructions take 3 gas.

  • In short: This EIP adds native functionality to a protocol to make it cheaper and easier to do some things on-chain.

EIP 1014: Lean CREATE2

  • Adds a new opcode at 0xf5 that takes 4 stack arguments: endowment, memory_start, memory_length, salt. Behaves identically to CREATE, except using keccak256( 0xff ++ sender_address ++ salt ++ keccak256(init_code)))[12:] instead of keccak256(RLP(sender_address, netche))[12:] such as the address where the contract is initialized.

  • This allows interactions to be made with addresses that do not yet exist on-chain but can be trusted to only contain code eventually that was created by a special piece of init code.

  • Important for state-channel use cases that involve counterfactual interactions with contracts.

  • In short: This EIP makes it so that you can interact with addresses that have not yet been created.

EIP 1052: EXTCODEHASH opcode

  • This EIP specifies a new opcode that returns the keccak256 hash of the contract code.

  • Many contracts need to perform checks on the bytecode of a contract, but don’t necessarily need the bytecode itself. For example, a contract may want to check whether another contract’s bytecode is one of a set of allowed implementations, or it may perform analyzes on code and whitelist any contract with a matching bytecode if the analysis passes.

  • Contracts can currently do this using the EXTCODECOPY opcode, but this is expensive, especially for large contracts, in cases where only the hash is required. As a result, a new opcode is implemented called EXTCODEHASH that returns the keccak256 hash of the byte code of a contract.

  • In short: This EIP makes it cheaper (less gas required) to do some things on a chain.

EIP 1283: Online gas measurement for SSTORE without dirty maps

  • This EIP offers online gas metering changes for SSTORE opcode, enabling new uses for contract storage, and reducing excess gas costs where it doesn’t match how most implementations work.

  • In short: This EIP makes it cheaper (less gas required) to do some things on chain, especially things that are currently “excessively” expensive.

EIP 1234: Constantinople Difficulty Bomb Delay and Block Reward Adjustment

  • The average block times increase due to the difficulty bomb (also known as the “ice age”) slowly accelerating. This EIP proposes to delay the difficulty bomb for about 12 months and reduce the block rewards to accommodate the ice age delay.

  • In short: This EIP will ensure that we don’t freeze the blockchain before proof of interest is ready and executed.

Thank you!

A big thank you to the Ethereum community, and to all Ethereum developers across all clients and platforms who have come together to provide input, thoughts and contribution. Special thanks to Reddit user cartercarlson for letting us use his Reddit post and the MyCrypto team that let us use their”Ethereum Constantinople: Everything You Need to Know” Medium post.

Disclaimer: This is an emerging and developing highly technical space. If you choose to implement the recommendations in this post and continue to participate, you need to make sure you understand how it affects you. You should understand that there are risks involved including but not limited to risks such as unexpected bugs. By choosing to implement these recommendations, you alone assume the risks of the consequences. This post and recommendations are not a sale of any kind and do not create any warranties including but not limited to any related to the Ethereum network or the Ethereum clients mentioned herein.

Source

LEAVE A REPLY

Please enter your comment!
Please enter your name here