Security Warning: Ethereum Constantinople Delay

0
16

The Ethereum Core Developers and the Ethereum Security Community have become aware of the potential issues related to Constantinople identified by ChainSecurity on January 15, 2019. We are investigating any potential vulnerabilities and will follow up with updates in this blog post and across social media.

Out of an abundance of caution, key stakeholders around the Ethereum community have determined that the best course of action will be to delay the planned Constantinople fork, which would have occurred at block 7,080,000 on January 16, 2019.

This will require anyone running a node (node ​​operators, exchanges, miners, wallet services, etc…) to upgrade to a new version of Geth or Parity before block 7,080,000. Block 7,080,000 will occur in approximately 32 hours from the time of this publication or at approximately January 16, 8:00 PM PT / January 16, 11:00 PM ET / January 17, 4: 00 am GMT.

What You Must Do

If you are a person who simply interacts with Ethereum (you don’t run a node), you don’t need to do anything.

Miners, Exchanges, Node Operators:

  • Update your Geth and/or Parity instances when they are released.

  • These editions are not yet published. We will update this post as they become available.

  • Links and version numbers and instructions will be provided here as they become available.

  • We expect to have updated releases within 3-4 hours of the time this blog is published.

Geth

  • Update to 1.8.21 OR

  • Downgrade to Geth 1.8.19OR

  • Stay in 1.8.20, but use the ‘–override.constantinople=9999999’ switch to delay the Constantinople fork indefinitely.

Parity


All Others:

Ledger, Trezor, Safe-T, Parity Signer, WallEth, Paper Wallets, MyCrypto, MyEtherWallet and other users or token holders who do not participate in the network by synchronizing and running a node.

  • You don’t have to do anything.

Contract owners

  • You don’t have to do anything.

  • You can choose to examine the analysis of the potential vulnerability and verify your contracts.

  • However, you should not do anything, because the change that would introduce this potential vulnerability will not be enabled.

background

The article of ChainSecurity dives deep into the potential vulnerability and how smart contracts can be checked for the vulnerability. Very briefly:

  • EIP-1283 introduces cheaper gas cost for SSTORE operations

  • Some smart contracts (which are already chained) may employ code patterns that would make them vulnerable to a re-entry attack after the Constantinople update has occurred.

  • These smart contracts would not be vulnerable before the Constantinople update

Contracts that increase their probability of being vulnerable are contracts that use a transfer() or send() function followed by a state change operation. An example of such a contract would be one where two parties jointly receive funds, decide on how to split those funds, and initiate disbursement of those funds.

As was the decision to postpone the Constantinople fork was made

Security researchers like ChainSecurity and TrailOfBits ran (and still run) analysis across the entire blockchain. They have not found any cases of this vulnerability in the wild. However, there is still a non-zero risk that some contracts could be affected.

Since the risk is non-zero and the amount of time required to determine the risk with confidence is longer the amount of time available before the planned Constantinople update, a decision was reached to delay the fork out of an abundance of caution.

Parties involved in the discussions included, but were not limited to:


Response time

3:09 am PT

  • ChainSecurity responsibly discloses potential vulnerabilities through the Ethereum Foundation’s bug bounty program

8:09 am PT

  • Ethereum Foundation asks ChainSecurity to publicly disclose

8:11 a.m. PT

  • An original article by ChainSecurity is published

8:52 am PT


8:52 AM PT – 10:15 AM PT

  • A discussion takes place through various channels about potential risks, on-chain analysis and what steps need to be taken.

10:15 a.m. PT – 12:40 p.m. PT

  • Discussion via Zoom audio call with key stakeholders. Discussion continues on gitter and other channels as well

12:08 PM PT

  • Decision made to delay Constantinople update

1:30pm PT

  • A public blog post published across various channels and social media

This article was put together in a collaborative effort by EvanVanNess, Infura, MyCrypto, Parity, Status, The Ethereum Foundation and the Ethereum Cat Herders.

Source

LEAVE A REPLY

Please enter your comment!
Please enter your name here