Live prices are currently unavailable — the exchange feed could not be reached and no recent cached reading is held.

Security & Resilience

Bitcoin eclipse attacks

An eclipse attack does not attack the chain. It attacks a single node's view of the chain, by surrounding that node with peers the attacker controls so that every message it receives comes from the adversary. The victim is not fooled about the rules; it is cut off from everyone who could tell it the truth.

Protocol referenceSource: Bitcoin Core, addrman and eclipse-attack documentationCountermeasures are described as deployed in Bitcoin Core; the underlying research is Heilman et al., 2015.

Isolating a node from its peers

A node learns about the network through the peers it connects to. It keeps a store of addresses it has heard about, opens a small number of outbound connections, and accepts inbound connections from others. If an adversary can fill that address store with addresses it controls, and then arrange for the victim to connect only to those addresses, the victim's entire view of the network is supplied by the adversary. The victim still validates every block it receives, so it cannot be tricked into accepting an invalid block. What it can be tricked into is not hearing about the valid block that the rest of the network has already accepted.

The consequence is a stale or false chain view. A merchant node that has been eclipsed can be shown a chain that omits a recent transaction, which is the setup for a double spend against that merchant. A mining node that has been eclipsed can waste hash power on a chain the rest of the network has abandoned. A node that supports a layer-two system can be fed a view that causes it to misjudge the state of a channel. In each case the damage comes from the victim acting on information that is incomplete rather than incorrect.

The attack is a peer-connection attack, not a consensus attack. It requires no hash power and no invalid blocks. It requires only the ability to occupy the victim's connections, which is why the mitigations are all about how a node chooses and keeps its peers.

The restart-based variant

The most studied form of the attack exploits a node restart. An adversary floods the victim's address manager with addresses it controls, then waits for the victim to restart — through a software upgrade, a power loss, or any other cause. On restart the node discards its live connections and selects new peers from its address store, and if the store has been saturated with adversarial addresses, the new connections are likely to be adversarial too. The research paper that named the attack, by Heilman, Kendler, Zohar and Goldberg, described this mechanism and proposed a set of countermeasures.

The reason the restart matters is that a running node has already established connections to peers it chose, and those connections are not easily displaced. A restart throws that away. This is why several of the deployed mitigations are specifically about what survives a restart.

Mitigations in Bitcoin Core

Bitcoin Core's address manager divides the address space into buckets and groups, so that an attacker must control addresses spread across many network groups rather than many addresses in one group. Addresses are selected at random from the new and tried tables rather than by recency, which removes the bias the original attack relied on. Test-before-evict checks whether an address about to be displaced is still reachable before displacing it, and feeler connections periodically test addresses so that the tried table stays populated with addresses that are actually online. Together these raise the number of addresses an attacker must control to occupy a useful share of the victim's address store.

Two further measures address the restart case directly. Block-relay-only connections, introduced in Bitcoin Core 0.19, are outbound connections that relay blocks but do not participate in transaction or address relay; a node opens two of them by default. Anchor connections, introduced in 0.21, persist a small number of these block-relay-only peers across restarts, so a restarted node reconnects to peers it already trusted rather than selecting entirely from its address store. The choice to scope anchors to block-relay-only connections is deliberate: those connections leak less information about the node's activity than full-relay connections would.

These are deployed mitigations, not a proof of immunity. The research literature lists further countermeasures that are only partially deployed or still under discussion, including additional outbound connections, restrictions on unsolicited address messages, and anomaly detection for the traffic patterns an eclipse attempt produces. A reader should treat the deployed set as raising the cost of the attack rather than eliminating it, and should treat the undeployed set as proposals rather than features.

Sources

  • Ethan Heilman, Alison Kendler, Aviv Zohar, Sharon Goldberg, Eclipse Attacks on Bitcoin's Peer-to-Peer Network — the original analysis and the countermeasures it proposed.
  • Bitcoin Core, documentation — the address manager and peer-connection design, including block-relay-only and anchor connections.
  • Bitcoin Core, anchor connections — the change that persists block-relay-only peers across restarts.