Bitcoin Workings Explained, for Real
michal.spaceI wonder about a vulnerability: what happens if an organization buys so many computers to create so many nodes they will be about 25-50% of the entire network?
Can this organization exploit the network by mining the majority of blocks to invalidate some transactions or in some other way?
I describe this in the "Security in numbers" paragraph in the last part (Part Three):
"As pointed out before, giving rewards for creating blocks creates an arms race in computing power. Transaction fees only magnify the effect. This is very healthy for the security of our system — anyone can add blocks, so anyone can do it according to their own agenda, but to have any kind of significant effect on the whole thing they would have to invest a tremendous amount of resources.
Remember, the only way to determine which version of the transaction history is the commonly accepted one to look for the longest one. In theory, someone possessing 51% of the computing power of the network is able to completely control the system, as they can just start their own branch of the blockchain and create new blocks faster than anyone else. The resulting branch will become the longest and therefore accepted one, invalidating any blocks mined on other branches. Performing the 51% attack is however uneconomical even for actors the size of a government or a multinational corporation — it would simply cost too much for the trouble."
To give you some numbers, an Antminer S9 costs $3k and provides 14 TH/s. Current Bitcoin network hashrate is around 7,700,000 TH/s. Assuming a 51% attack is not underway already, an attacker needs to have at least the same hashrate as the rest of the network. This would cost over 1,5 billion dollars in non-reusable single purpose hardware alone. Add to this the ginormous power costs and additional costs of housing, maintenance, cabling etc. and you start to get the idea.
A sizeable entity who doesn't have complete majority can still make life harder for users by censoring specific transactions (simply deliberately choosing not to include them in their blocks), but this is more akin to a DDoS attack than a security breach.
Another possibility is computing pools. If I remember correctly, something like this started happening (pools becoming too large) and they split.
So besides bugs in the code, theoretically speaking the 51% computing power is the only real "vulnerability"?
Correct, as far as I know. Breaking the cryptography with quantum computers is often raised as well, but Bitcoin can transition to a quantum-resistant algorithm if that proves to be a real danger.
Great introduction to the math/comp sci behind it, and I'm not sure if I missed it but I am wondering how nodes get in contact with each other.
As it is decentralized, it isn't obvious how the network knows about itself.
Theres a number of DNS seed servers that are hard coded into the Bitcoin core codebase. A Bitcoin client does a nslookup on these seeds to find intial peers to connect to and bootstraps this way.
For a bit more detail and if you're interested in this sort of thing, have a read of my blog article I wrote about the technical side of Bitcoin: http://www.samlewis.me/2017/06/a-peek-under-bitcoins-hood/
The original post and yours complement each other very well, thanks for the information!
Hi! Author here. Thanks for the appreciation!
You're right, I didn't describe the details of networking. My main goal was to keep it as short as possible while still explaining the main "pillars" of Bitcoin in detail, and networking did not make the cut. As far as my understanding goes, there isn't anything inherent to Bitcoin in the way its network works (it could apply to most other distributed networks), so I thought including this would stretch things too much and stray too far off topic in a way.