4
If transactions in a block are valid, in order to add that block in the block chain, a proof of work needs to be found. I have read the bitcoin paper by Satoshi.
If the difficulty of the proof of work requires say 2^52 computations (13 hex zeros) on an average, and since every node on the network is working independently, why can't the powerful adversary surpass the length of current block chain and present his version of block chain to the network? Specifically, why does the attacker have to control 1 percent or x percent of the network's computational power, when honest nodes on the network are not working in collaboration to find the proof of work?
If the adversary can find a proof of work quicker than the most powerful honest peer, he can compute a longer block chain and broadcast it to the network.
Let us assume that there are 2^20 nodes on the network, each computing 2^40 hashes per second on an average. Each node would then require 68 minutes to find a proof of work (trying 2^52 hashes). The total computing power of the network is number of nodes * computing power of each node = 2^20*2^40 = 2^60.
If the adversary operates at the speed of 2^45 hashes per second, he requires just 2^7 = 2 min to find a proof of work (2^52 hashes).
Now, the computing power of the network is 2^60, however each node is trying to find a proof of work independently. The computing power of adversary compared to the network is 32,000 times smaller. The amount of computing power controlled by the adversary is 1/32000 = 0.00001%, but still he can compute the longer block chain.
Please help, if I am assuming something wrong here. The honest nodes on the network do not work in collaboration. So attacker need not control 50% of computing power on the network and has to expend computing power just more than average computing power of the honest nodes.
2^12 is 4096, so each computer with 2^40 hashes per second would require 68 minutes, not 16. – Murch – 2015-02-16T07:36:31.510
agreed, can you answer the question? – Curious – 2015-02-16T08:16:59.700
Got a bit sidelined in between, but I just did. :) – Murch – 2015-02-16T08:25:07.240
1
Also see: How is it that concurrent miners do not subvert each other's work?, How can we be sure that a new block will be found?
– Murch – 2015-02-16T08:47:44.4971Misconception: "If the adversary can find a proof of work quicker than the most powerful honest peer, he can compute a longer block chain and broadcast it to the network." should be: "quicker than ALL honest peers combined." – Jannes – 2015-02-16T09:33:04.693
Probably already answered below, but "The honest nodes on the network do not work in collaboration." yes they actually do. That's the beauty of PoW. :) – Jannes – 2015-02-16T09:35:50.573
@Jannes: Yes, I've addressed both points in my answer. :) – Murch – 2015-02-16T11:34:32.927
@Murch Yeah should have read the answer first. Great one (again). Already upvoted. Thx. – Jannes – 2015-02-16T14:44:13.980
Every node on the network is working with different inputs to a hash function but trying to achieve the same target. So in a way all nodes are working together. – Curious – 2015-02-17T04:26:29.333