History and attacks
The bugs, forks and attacks that actually happened, what fixed them, and what each one proved about the system.
- Genesis block
- 3 Jan 2009
- Value overflow
- Aug 2010
- Inflation bug found
- Sep 2018
The first block, with a headline about bank bailouts in its coinbase.
A bug minted 184 billion BTC in one block; patched and reorganised out within hours.
CVE-2018-17144 was disclosed and patched before anyone exploited it.
2010: the value overflow
In August 2010 someone created a transaction whose outputs summed to more than the maximum a signed integer could hold. The check that outputs must not exceed inputs passed, because the sum had wrapped around. A block containing it created roughly 184 billion BTC.
Within hours a patched client was released, nodes upgraded, and the honest chain overtook the bad one, the bad block was reorganised away. What this proved: the rules live in software written by people, and the recovery mechanism is people running the corrected software, fast.[27]
2013: two versions, two chains
In March 2013 a large block was accepted by newer nodes and rejected by older ones, because of a difference in the underlying database, not in the stated rules. The network split for a few hours.
The resolution was coordinated: miners were asked to return to the older behaviour temporarily so the chain reunified, and the upgrade was rescheduled. BIP 50 documents the whole episode, including what was learned about undocumented implementation limits being part of consensus in practice.[29]
2018: the bug that was not used
CVE-2018-17144 allowed a transaction spending the same input twice to crash nodes, and in some versions to inflate supply. It was reported privately, patched, and announced with an upgrade urgency notice. As far as the record shows, nobody exploited it.
This is the mundane, important part of Bitcoin's security: an open codebase, people who read it, disclosure that goes to maintainers first, and operators who upgrade. Not magic, maintenance.[28][2]
Attacks people worry about, and what they can actually do
51% of hashrate. A majority miner can reorder or censor recent transactions and double-spend its own coins. It cannot steal coins from an address, change the 21 million limit, or create invalid blocks that nodes will accept. Those limits are enforced by validation, not by hashrate.
Eclipse and network attacks. Isolating a node from honest peers can feed it a false view of the chain. Running your own node with multiple connections, and waiting for confirmations, is the practical answer.
Social and governance attacks. Historically the harder fights were about rule changes: the 2015–2017 block size dispute ended with users choosing which software to run, and the chain that most economic users validated remained Bitcoin. That is the real governance mechanism, voluntary validation, not a vote.
Quantum computing. Today's machines are far from breaking secp256k1 or SHA-256. It is a genuine long-term research question with proposed migration paths, not an imminent event. Anyone selling urgency about it is selling something.[1][2][4]
Open questions
There is no settled answer here. Think it through yourself.
- ?Which of these incidents was fixed by code, and which by people coordinating? Does that distinction matter to you?
- ?If a majority miner started censoring transactions, what would you personally be able to verify?
- ?How would you want a signature-scheme migration to be decided if quantum progress accelerated?
Quick check
Answer every question correctly (100%) to complete this lesson.
1.What can a miner with a majority of hashrate NOT do?
2.How was the August 2010 value overflow resolved?
3.What settled the 2015–2017 dispute about changing the rules?
Counts towards your streak in this browser.
Sources
- CVE-2010-5139, the value overflow incident (August 2010), Bitcoin Wiki / Bitcoin Core history
A block created 184 billion BTC through an integer overflow; it was fixed and reorganised out within hours.
- BIP 50, March 2013 chain fork post-mortem, Bitcoin Improvement Proposals
How a database difference between versions split the chain, and how the split was resolved.
- CVE-2018-17144, inflation/denial-of-service bug disclosure, Bitcoin Core project
A duplicate-input bug that could have crashed nodes or inflated supply; disclosed and patched before exploitation.
- Bitcoin Core documentation, Bitcoin Core project
Reference implementation documentation, including validation and release notes.
- Bitcoin Improvement Proposals, bitcoin/bips repository
How proposed rule changes are written, discussed and specified. A BIP is not an adopted rule.
- Bitcoin: A Peer-to-Peer Electronic Cash System (2008), Satoshi Nakamoto
The original nine-page proposal. Describes proof of work, timestamping and the incentive model.
