Just two days before Constantinople was to be deployed on the main Ethereum network, a vulnerability was discovered, which forced developers to postpone the hard fork.
Now, the long-awaited Constantinople update is expected to be live in late February or more specifically, whenever block number 7,280,000 is mined. Speaking to CoinDesk, Hudson Jameson from the Ethereum Foundation developer relations said:
I suspect it will go as planned. The block number has been set and [the upgrade] is hard coded in the clients now so it’s going along fine.
Jameson continued on to note that the first attempt at Constantinople in January taught them that they needed to have “better communication with miners”.
Smart contract security firm ChainSecurity, which discovered the vulnerability, told CoinDesk that the level of organization in the Ethereum developer foundation was quite impressive:
I was just impressed by how quickly everyone reacted and how well organized everyone reacted. Many people had to update so they had to know what to update to. On many different levels it became clear even though there is no central command, the [Ethereum] community collaborates very efficiently.Hubert Ritzdorf, CTO at ChainSecuirty
The Constantinople fork was initially supposed to include five Ethereum Improvement Proposals (EIPs), but it has been decided that only four of them will be activated on the mainnet.
For technical purposes, the upgrade will come in two parts as Constantinople will be deployed alongside Petersberg, which will negate one of the EIPs (EIP 1283) of Constantinople.
Petersberg has already been released on the Ropsten Ethereum test network since Constantinople was active there before the vulnerability was found.
For all practical means for any developer out there on the mainnet, there will not have been Constantinople really, just Petersberg. Technically in the code, you have two conditions. One says Constantinople gets active at block number [7,280,000] and at the same block number Petersberg gets activated, which takes precedence over Constantinople and immediate supersedes it.Matthias Egli, COO at ChainSecurity
As for what’s left for the Constantinople upgrade, Jameson said that all testing is already done and major Ethereum clients, including Geth and Parity, are ready to deploy on the specified block number.
Continuing on the topic, Martin Holst Swende, Ethereum security lead, noted that people need to be aware of the changes coming with the Constantinople upgrade.
For instance, after Constantinople is deployed, smart contracts’ code will be able to change under certain conditions over the course of multiple transactions.
This new feature is called Skinny CREATE2 and is intended to better is intended to better facilitate off-chain transactions on Ethereum by allowing what Ritzdorf describes as deterministic deployment.
When you deploy a new smart contract on Ethereum, what happens is that it computes the address to where the contract will be deployed. You know this ahead of time but it depends on a lot of variables. CREATE2 makes it easier to say “we will deploy in the future a contract to this particular address”.Hubert Ritzdorf, CTO at ChainSecuirty
As a result, developers will be able to deploy for a second time to the same contract address. Egli highlighted that this is “not a security bug” but rather “a corner case” that developers on Ethereum should be wary of once the changes are going live.
He added that continued education from auditors in advance of February’s hard fork is needed about the other four EIPs originally set for inclusion in Constantinople outside of EIP 1283.
People interested in watching the update go live can go to forkmon.ethdevops.io. It is estimated that Constantinople and Petersberg will be live on Thursday, February 28th.