<p>Really old versions of Bitcoin did not use checksums in network messages (Satoshi incorrectly assumed that the TCP checksum was sufficient). When Bitcoin was changed to start using its own checksums in network messages, <em>version</em> and <em>verack</em> messages could not be immediately updated to use checksums because old clients would be unable to understand checksum-protected messages from new clients and the network would split. Satoshi's solution was to keep using non-checksummed <em>version</em> and <em>verack</em> messages for two years and then have clients automatically start checksumming <em>version/verack</em> messages. At midnight UTC on February 20, this change will happen.</p>

<p>Versions of the official client later than 0.2.9 will apply the change automatically. Older versions will stop working. Existing connections will not be broken due to the change, so there should be very little disruption at the time of the change. It will probably only cause problems for alt clients and users with seriously-off clocks.</p>

CC BY-SA 3.0
2012-01-29T04:52:41.467Z
+1 So it was announced two years in advance, and has been in the mainline client forever. Thanks.
Thilo
CC BY-SA 3.0
2012-01-29T03:26:10.860Z
2012-01-29T03:26:10.860Z
theymos
<p>From the <a href="http://groups.google.com/group/bitcoinj/browse_thread/thread/69070ba94d72ea51">BitcoinJ mailing list</a>:</p>

<blockquote>
  <p>the Bitcoin protocol bizarrely changes itself on February 20th
  2012 in a backwards incompatible manner</p>
</blockquote>

<p>What are these changes, why are they necessary, when was this announced and are there any plans for this to happen again?</p>

<p>What version of the official client supports the new protocol?</p>

<development><protocol>
What are the February 20 changes to the Bitcoin protocol?
Thilo
# What are the February 20 changes to the Bitcoin protocol?

(Asked by: username_0 on 2012-01-29)

From the [BitcoinJ mailing list](http://groups.google.com/group/bitcoinj/browse_thread/thread/69070ba94d72ea51):

> the Bitcoin protocol bizarrely changes itself on February 20th
> 2012 in a backwards incompatible manner

What are these changes, why are they necessary, when was this announced and are there any plans for this to happen again?

What version of the official client supports the new protocol?

**Tags:** development, protocol


---

## 1 answers

### Answer by username_1 on 2012-01-29. Score: 14 | Accepted answer

Really old versions of Bitcoin did not use checksums in network messages (Satoshi incorrectly assumed that the TCP checksum was sufficient). When Bitcoin was changed to start using its own checksums in network messages, *version* and *verack* messages could not be immediately updated to use checksums because old clients would be unable to understand checksum-protected messages from new clients and the network would split. Satoshi's solution was to keep using non-checksummed *version* and *verack* messages for two years and then have clients automatically start checksumming *version/verack* messages. At midnight UTC on February 20, this change will happen.

Versions of the official client later than 0.2.9 will apply the change automatically. Older versions will stop working. Existing connections will not be broken due to the change, so there should be very little disruption at the time of the change. It will probably only cause problems for alt clients and users with seriously-off clocks.

> **Comments:**
> **username_0**: +1 So it was announced two years in advance, and has been in the mainline client forever. Thanks.  

---

