I am studying the algorithm of Bitcoin and I don't understand one thing. If all miners are mining the next block at the same time, and there are thousands of nodes, how could it be that there are no collisions (two blocks found at the same time)? I wonder how effective this process is? As I understood the algorithm, the mining must be sequential (with order), and this can only be done if all miners mine the next block at the same time, because hash of the previous block must go within the next block. But if they mine it at the same time, there must be a lot of collisions. However I can't find anything about collisions or low effectiveness of this blockchain algorithm.
6 Answers
how could it be that there are no collisions ?
There are.
I wonder how effective this process is ?
Very ineffective. ~$10 natural cost for securing one transaction :)
-
so why everybody uses blockchain. Isn't it possible to use paxos + proof of work + verification of the work ? Efficiency would be much better. Why blockchain is so massively used, it is the worst algorithm I have seen.– NulikCommented Sep 27, 2017 at 8:46
-
-
Two main factors are scalability and presence byzantine faults. Much effort has been put into making Paxos and its many variants scale, but the truth is it could never scale to the size of a blockchain based consensus, not in the Internet, at least. As for byzantine failures, the Paxos versions that supports it scale even less.– NulikCommented Sep 27, 2017 at 8:53
-
>>> Why blockchain is so massively used <<< People do strange things. Blockchain is not "used" today. Everything bitcoin-related is pyramid-scheme bubbles– amaclinCommented Sep 27, 2017 at 9:07
-
while it has speculative money in the price it is not a pyramid-scheme because some useful work is done. The problem of course is with the true value of this work, but don't worry, markets are rational and will correct themselves, and they usually do it with a lag.– NulikCommented Sep 27, 2017 at 9:15
Every miner tries to mine a different block. One reason is that the reward payment address (which pays the miner for their work) is naturally different for each miner. Therefore, no two miners are competing to mine the same block.
Similarly, each individual miner changes other things in blocks to make sure that each of their mining rigs is not duplicating work too.
-
I am sorry, my last sentence was unclear, I was referring to the fact that all of them are trying to produce the next block all at once. But you are making a good point.– NulikCommented Sep 28, 2017 at 5:57
I found a study about inefficiency of blockchain here
https://www.p2pfisy.com/wp-content/uploads/2017/05/Pappalardo_p.pdf
Blockchain Inefficiency The Bitcoin Peers Network Giuseppe Pappalardo 1 , 2 Guido Caldarelli 2 Tomaso Aste1 1University College London
The blockchain algorithm is not intended to be efficient. It's intended to be secure and immutable.
Bitcoin blocks average one per 10 minutes. A block takes a few (let's say 10) seconds to propagate in the network, and then miners are working on the new block. So this leaves you with about 1/60 chance each time that a miner will find a block that gets orphaned.
This also means that 1.7% of the hashrate gets wasted, but that's pretty insignificant.
The way these orphan blocks are handled are the heart of Bitcoin's innovation. The "Longest Chain" rule is its defining feature - it seems from your question that you are not aware of it, which suggests you do not understand the protocol.
Anyway, if we try to shorten the time between blocks, orphaning becomes a more significant problem. That's why Aviv Zohar et al have been working on alternative protocols which are immune to this problem, GHOST and now SPECTRE.
Your understanding of the way blocks are assigned is incorrect. There is no guarantee (initially) that all nodes will unilaterally agree on the same next block to be added to the chain. Dispute situations are relatively common, and stem from multiple miners solving the next block close enough to simultaneously in order for some nodes to receive one candidate for the next block from one of the miners, and other nodes to receive a different suggestion.
The longest chain solution solves this dilemma by reverting the entire chain to the suggested block + any further blocks added, once one of the disputing chains has been mined at a faster rate than the other and so becomes longer.
So there are “collisions”, however the system inherently deals with these situations algorithmically.
How effective this system is.. well in 9 years there hasn’t been an instance of system failure, because of this potential threat, or any other. The mathematical security built into blockchain as a whole is far superior to any previous digital currency conceptions, which all had issues with one or more of these potential threats which they could not solve. Blockchain is a highly complete solution, not just to trustless decentralised value transfer, but to many other applications which are only really possible because of a few key securing features, such as the longest chain concept, digital signing etc