Sunday 21 February 2016

Bigger blocks are not a scaling strategy


The biggest fallacy that I very frequently read about is: Visa can do 20000[1] transactions-per-second, Bitcoin can do 3! [2]The problem is that such a comparison is completely inadequate. To truly understand why it is so requires some understanding of distributed systems and databases, so I can't really blame most people.Bitcoin is a system that has no trusted third party. The arbiter for deciding what transactions made it, and in what order is elected every 10 minutes. This is the solution to the double spend problem: an arbiter. An arbiter will say: fuck you Bob, you're trying to pay two different e-commerce websites with the same 10 Bitcoin.Now, it turns out that when you have a system that has to elect arbiters based on proof of work, you have to sacrifice time (latency). That your transaction made it to a single valid mined block is not actual evidence that it's actually likely to stay that way. Miners can mine blocks at the same time. Miners can out-speed other miners.This is a concern surfaced to Satoshi only a few days after the initial announcement. This is what he had to say for the situation where two "sides" of the truth are mined:The nodes working on each side will be trying to add the transactions that are missing from their side. When the next proof-of-work is found, whichever previous block that node was working on, that branch becomes longer and the tie is broken. It's not a problem if transactions have to wait one or a few extra cycles to get into a block. http://bit.ly/216ewZ4 you know about distributed systems, the property we're vaguely referring to here is "consistency". What we want is all members of the system to share a single view of what happened, a single chain. In the case of Bitcoin, the consistency is probabilistic. A zero-confirmation transaction has VERY low probability of being "true" because it can be double spent. After 5 or 6 blocks (50 or 60 minutes), it's strongly consistent.Back to Visa. Visa has a single arbiter: Visa. No computer in Visa is positioned adversarially to other computers (like miners are against potential attackers). There are no disputes, no branching, no multiple versions of the chain floating around with different transactions in it.Visa itself is probably a distributed system made up of many computers, obviously, but those computers have a simple consensus protocol: they talk to each other in the same network, probably in the same room of the same datacenter. The transaction velocity is thus whatever it takes for Visa to receive your transaction, communicate it to all their computers in their own private network(s), and then confirm it back to you. This is called strong consistency. After Visa tells a merchant your money went through, it's a fact.How fast can this be? If we look at the latency numbers that every engineer has to know (http://bit.ly/1QRYxDd), sending a packet from The Netherlands to California and back takes 150 miliseconds. If you're paying for something in The Netherlands, you might get a strongly confirmed transaction in their system in under a second.Even if Bitcoin increases the block size to A PETABYTE, it CAN'T POSSIBLY COMPETE!So why do we like Bitcoin? Because Visa can be shut down by a government. Because a government can order Visa to block you. To seize your money. To not allow the type of good you're trying to sell. They can change the rules or fees on you. They can modify their own database. Wipe your balance. Edit it. Increase their own.The price of getting all those things is latency. It's people spending electricity as a proof of their worthiness as a temporary arbiter of the system. It's that even after a block contains your transaction, it's not for sure it's settled.Let's say you want to buy a coffee with Bitcoin. Do you really need the amount of truth Bitcoin provides? Do you really need it to be mined, with the cost it incurs in to do so? Probably not. It makes sense to pay a higher fee for something so costly. Eventually, I'm sure Bitcoin will handle a lot of transactions per second while remaining highly decentralized.Block sizes will increase. But most of this "anxiety" over increasing it is misguided, specially when Bitcoin is compared with a system completely unlike it, with different priorities.[1] or some very high number[2] or some very low number via /r/Bitcoin http://bit.ly/1Qt0FXH

No comments :

Post a Comment