Log in

No account? Create an account

Previous Entry | Next Entry

fundamental blockchain problems

I haven't tried reading the proof yet, but there's an alleged trilemma: correctness, cost-effective, decentralized, pick two. It's plausible, sound very similar to the CAP theorem in distributed computing and databases. (Correctness, Availability, Partition-free -- basically if your nodes are partitioned, you can either shut down and stay correct, or be available and risk conflict when the nodes are re-connected.)

There's a list of various paradoxes about cryptocurrency: more users make it worse (more congested), quadratic total storage costs, conflict between users and miners... https://bankunderground.co.uk/2018/11/13/the-seven-deadly-paradoxes-of-cryptocurrency/

I can suggest some math. Say a blockchain is reasonably successful and has 100 million users (Bitcoin aims at competing with the global financial system!) doing an average of one transaction a day[1]. That's 1e8 transactions in under 1e5 seconds, so over 1000 transactions a second. The top blockchains, bitcoin and Ethereum, can handle around 5 transactions a second. See a problem? And a really global system could plausibly need 100,000 transaction a second.

There are some blockchains -- bitshares, EOS -- that claim such capacity, though I've also seen people say that they're not really decentralized, and one study claimed they didn't even measure up to their claims. https://www.prnewswire.com/news-releases/whiteblock-completes-industrys-first-eos-benchmark-testing-and-blockchain-investigation-300742130.html

But let's say some system can handle that many transactions. What's the storage? 20 bytes each for the From and To addresses, say 10 bytes for the amount, 50 bytes per transaction. At the small scale, each node needs to add 50 kB a second to the distributed ledger (which is what a blockchain at heart is.) No big deal. 5 MB at the big scale... still doable.

But imagine bringing up a new node after three years of such activity. 1e8 seconds in three years, so 5e12 or 5e14 bytes -- 5 or 500 Terabytes to download so that you can be a miner too. Eep!

I can imagine a way around that: a blockchain that every N blocks produces an explicit balance sheet, so that you don't have to go through the entire blockchain history to figure out how much someone has. I don't know if that's viable, such balance sheet blocks would be extra-attractive to attack, but I can't say it's unviable either. OTOH, how big is such a sheet? 100 million users, 20 bytes address per user, 10 bytes balance per user, 3 GB. If 3 billion users, 90 GB. Which has to be shipped around and validated by the mining nodes in the time it takes to make a block -- 10 minutes for Bitcoin, 10 seconds for Ethereum, IIRC. So we cut down on the total storage cost but need some really fat bandwidth.

[1] 30 per month. My own records show an average of 2 expenditures a day, or 60 a month. An average worker's month might see 2 paychecks, 1 rent or mortgage payment, 2-3 phone + utility bills, 4 grocery payments, 1 gas or transit pass payment... we're up to 10 a month right there.

See the comment count unavailable DW comments at https://mindstalk.dreamwidth.org/511477.html#comments


Damien Sullivan

Latest Month

June 2019


Powered by LiveJournal.com
Designed by Lilia Ahner