And, What does this mean for me?
High-level summary of this post:
- Constantinople, Ethereum’s latest network hard fork system upgrade, was planned to take place on Wednesday, January 16 2019, block 7,080,000.
- EIP-1234, the fifth upgrade will reduce block rewards for miners by 33% also known as the Thirdening.
- The fork was delayed due to a vulnerability in Ethereum Improvement Proposal (EIP) 1283 that allows for a reentrancy attack.
- The core Ethereum devs had a meeting on the 18th of Jan to discuss next steps and decided to postpone the Constantinople network upgrade until (approximately) Feb 27th 2019 (block number 7,280,000).
- The hard fork will now be released in two parts at the same time. This first hard fork upgrade will include all five EIPs (including the buggy EIP 1283). On the second upgrade, EIP 1283 will be removed.
- If you own Ether (ETH) or a smart contract — you don’t have to do anything.
- If you’re a Miner, Node Operator or run an Exchange, you’ll have to update your Geth and/or Parity clients when they are released.
What is Constantinople?
You may have heard the word Constantinople being thrown around and if you’re wondering what the hell this is or more importantly what it means for the Ethereum network… this article is for you.
Constantinople is one of the latest forks for the Ethereum network, it contains 5 EIPs (Ethereum Improvement Proposals).
Definition — Ethereum Improvement Proposals — Ethereum is an open source network owned by its community. There is no one single entity that decides how to upgrade the network. This means anyone within the community can make suggestions to improve the network and these suggestions take the form of EIPs (Ethereum Improvement Proposals).Example if an EIP (Ethereum Improvement Proposal)
- EIP 1014 — Enabling State Channels [Scalability]
- EIP 1052 — Lowering the amount of computing power needed to verify smart contracts [Speed & Energy]
- EIP 145 — Lowering gas needed to send transactions [Efficiency & Speed]
- EIP 1234 — Block reward adjustment for Ethereum miners, miners will now be rewarded 2 ETH, instead of 3 ETH for verifying a block [Protocol Economics change]
- EIP 1283 — Reduces cost of transactions [cost]
To learn more about the update check out this post.
Why is Ethereum having a network upgrade?
All of the EIPs above are part of a wider vision of ETH 2.0 in which the Ethereum protocol will undergo many fundamental changes to improve its functionality in the long term. Some of those changes include:
- Proof of Stake
- Improved scalability via sharding
- EVM(Ethereum Virtual Machine) improvements
- Improvements to cross-contract logic (e.g. abstraction)
- Improvements to protocol economics
We have some bumps on the road to ETH 2.0…
On the 15th of Jan (a day before Constantinople was due to come into effect), ChainSecurity, a smart contract auditing firm, highlighted a very important vulnerability in EIP-1283 that would make existing contracts susceptible to a reentrancy attack.
In the ChainSecurity medium article, they mention that the Ethereum Improvement Proposal (EIP) 1283, if implemented, could create a loophole in the Ethereum network through which attackers could enter the network and steal users’ funds. This attack was named a “reentrancy attack,” as it would give hackers a chance to enter into specific functions on the network on more than one occasion without notifying users. Essentially, an attacker could use this attack to steal funds from the network forever without ever being discovered.
ChainSecurity also outlined that exploitation of this vulnerability would be highly unlikely as they were unable to find any pre-existing contracts that would be at risk. Nevertheless, the core developers, client developers and the community at large decided to postpone the network upgrade upon further testing.
The Core Ethereum Devs held a meeting two days after the intended network upgrade to discuss how to move forward and when to reintroduce the Constantinople upgrade. On the call, the developers came to consensus on pushing the update for another 6 weeks in order to give a reasonable amount of time to test clients. The Constantinople Ethereum network upgrade will now occur at block number 7,280,000, approximately Feb 27th.
During the developer call, the group also decided that EIP 1283 would be omitted from the Constantinople release. Instead, EIP 1283 will be postponed and released once additional tests are conducted to ensure the proposal is no longer faulty.
The Constantinople network upgrade will now be released as two simultaneous updates.
This first network upgrade will include all five EIPs (including the buggy EIP 1283) and the second upgrade will subsequently remove EIP 1283.
Péter Szilágyi (Core Developer at Ethereum), who suggested this upgrade strategy during the dev call, recommended that this process will further ensure that any networks which have already implemented the complete Constantinople hard fork upgrade(with EIP 1283) will still be able to fix the buggy EIP without having to roll back any blocks.
What does this mean going forward?
Your next steps will depend on how you interact with the Ethereum network.
If you own Ether (ETH), own a smart contract or simply interact with the network at a high level (you don’t run a node in the network), sit back and relax as you don’t have to do anything.
If you’re a Miner, Node Operator or run an Exchange, you’ll have to update your Geth and/or Parity clients when they are released.
Check out this link from the Ethereum Foundation to download the updates when they’re available — https://blog.ethereum.org/2019/01/15/security-alert-ethereum-constantinople-postponement/
What is going on with the Ethereum hard fork update Constantinople? was originally published in Hacker Noon on Medium, where people are continuing the conversation by highlighting and responding to this story.