Bitcoin Encrypted Communication (BIP151) Overhaul
On of the pros of Bitcoin since its birth is that it’s a public ledger, anyone is allowed to send and receive payments and data on the Blockchain. However, Bitcoin’s network does not provide a way of encrypting communication between nodes, which allows manipulation of data, mass surveillance and analysis of its users.
Although encrypted communication is currently a possibility with VPNs, TOR or other mechanisms, it is not easy for the average user to setup such a connection. There is BIP draft called BIP151 that aims to add encrypted communication to Bitcoin’s network and which currently seems implemented only by Armory.
- the encryption handshake no longer requires the v1 protocol, it’s a pure 32bytes-per-side „pseudorandom” key exchange that happens before anything else.
- the multi message envelope has been removed.
- a new NODE_ENCRYPTED service bit
- the key derivation and what communication direction uses what key is now more specific
- the length of a packet uses now a 3-byte integer with 23 available bits
- introduction of short-command-ID (ex.: uint8_t 13 == INV, etc.) which result in some v2 messages require less bandwidth then v1
- rekeying doesn’t require a message and can be signaled in the most significant bit in the packet-size field
While this BIP is backwards compatible, peers supporting encrypted
communication will have to signal
NODE_ENCRYPTED to use it.