July 2015 chain forks

From Bitcoin Wiki
Revision as of 18:39, 6 July 2015 by Darthandroid (talk | contribs) (Added additional safe electrum server)
Jump to navigation Jump to search

The July 2015 forks were two (so far) block chain forks with two or more invalid blocks. They were caused by miners who didn't properly validate blocks before mining on top of them.[1]

Wallet Advice

  • If you use Bitcoin Core, upgrade to 0.10.2 to ensure you don't see invalid confirmations.
  • If you use a peer-to-peer lightweight wallet (also called a P2P SPV wallet), you must wait for additional confirmations. See the Bitcoin.org alert for the currently recommended number of additional confirmations.
  • If you use Electrum, see the Electrum section below.
  • If you use web wallet or an exchange, you should wait for additional confirmations. See the Bitcoin.org alert for the currently recommended number of additional confirmations.

Electrum

Electrum gets data from a Bitcoin Core-backed server. If the server is running a recent version of Bitcoin Core, it may be safe---but you must take action to be sure.[2]

  1. Go to Tools → Network and unclick Auto-connect. This prevents Electrum from automatically changing to servers that have the longest block chain (which, during these invalid chain forks, may be the wrong chain). Note that Electrum will warn you when you're not on the longest chain—you must ignore these warnings until this fork event is over or use the plugin mentioned at the bottom of this section to determine whether you're on the valid chain.
  2. Go to the console tab
  3. It should display a message (called a banner) from the server operator.
  4. If the message includes a line that says "Bitcoin Core 0.10.2" or "bitcoind 0.10.2", then confirmations reported by the server are likely to be accurate. The only other safe versions are 0.9.5, 0.10.0, and 0.10.1.
  5. If the message does not indicate that the server is running Bitcoin Core 0.10.2, you can change servers by going to Tools → Network, unclicking Auto-connect, and choosing a server from the list. After connecting, a new message will be displayed; use the instructions in step #3 again.

Please note that this information is provided voluntarily by the server administrators. It is not validated.

The following Electrum servers have a safe Bitcoin Core version in their banner:

  • electrum.no-ip.org (version 0.10.0)
  • electrum.jdubya.info (version 0.10.2)
  • vps.hsmiths.com (version 0.10.2)
  • erbium1.sytes.net (version 0.10.0)
  • electrum.dragonzone.net (version 0.10.0)

During a fork, it is possible to use the Get Block Header custom plugin[3] to authoratatively determine which side of the fork an Electrum server is on. Bitcoin Core 0.10.x servers should always be on the valid side of the fork.

Invalid Block Hashes

From the July 4th fork:

  1. 0000000000000000009cc829aa25b40b2cd4eb83dd498c12ad0d26d90c439d99 mined by BTC Nuggets (98 non-coinbase transactions)
  2. 0000000000000000155f2519d35cd5d2869900bcc5093594b27763a0315390b4 mined by F2Pool (0 non-coinbase transactions)
  3. 00000000000000000cb7a20ee4e199e347ad7369936abae53a1518efa531ec61 mined by F2Pool (0 non-coinbase transactions)
  4. 00000000000000000966d65e0fd87d1d5a8f154a2c955816c28e2006e381aa18 mined by AntPool (0 non-coinbase transactions)
  5. 00000000000000001301bfd6f566a421c7eeba103d09b312032ca065cb185de7 mined by F2Pool (0 non-coinbase transactions)
  6. 000000000000000013fe26675faa8f7dccd55ce5485bb6d0373fa66345901436 mined by F2Pool (0 non-coinbase transactions)

From the July 5th fork:

  1. 000000000000000003ae1223f4926ec86100885cfe1484dc52fd67e042a19b12 mined by MegaBigPower (255 non-coinbase transactions)
  2. 00000000000000000063f97f292fb559773437fb3558c474efec6053a7b0d5a2 mined by an unknown miner (0 non-coinbase transactions)
  3. 000000000000000012dbd422d7bf1c4b55982c37b390d4613dcee00d31741c6a mined by an unknown miner (1,597 non-coinbase transactions)

References

  1. Some miners creating invalid blocks, Bitcoin.org, 4 July 2015
  2. Electrum servers run Bitcoin Core, /u/etmetm, 5 July 2015
  3. Get block header electrum plugin, Belcher, 6 July 2015