On blockchains and scalability - bitcoin vs bitcoin cash vs ethereum

in #cryptocurrency7 years ago (edited)

Critics were pointing out already in the very early days of Bitcoin that blockchains won't scale, as every transaction is broadcast to all other participants in the network and stored for all eternity. This wasn't a problem back in the early days with few participants, but has become a notorious problems in the recent time. Here is a quick overview of how the top crypto currencies and how they compare wrg of capacity problems and scaling.

scalability according to wikimedia commons

Premises

I've made two premises above, they may not necessarily be true:

  • Every transaction is broadcast to every other participant in the network
  • Every transaction is stored for all eternity, by all participants in the network

In Satoshi's white paper, the participants or nodes were implicitly assumed to be miners - people just needing to transact could eventually use simpler wallets (SPV-wallets) that would not verify the whole blockchain - hence every transaction does not need to be broadcast to all participants using bitcoin.

There is the common argument that as many people as possible should run full nodes or and becoming a proper part of the network, or else the miners could do all kind of bad things - although it can also be argued that only mining nodes actually contribute to the network security and that Bitcoin is already broken if the miners cannot be trusted. The scalability issue is not that bad if all the transactions only needs to be shared between some hundreds or some thousands of miners, particularly if the transactions are small.

Satoshi did mention ways to prune old transactions. though AFAIK it hasn't been implemented by anyone. Apparently ethereum has a way to prune and compact the blockchain.

Storage space is cheap; that's not the bottleneck here, it's mostly bandwidth that is the bottle neck. Particularly, the (time) cost of setting up a new node can become unacceptable big if the block chain covers many terrabytes with data; some people are worried that we'll get into a situation where nodes can disappear for a variety of reasons, but where no new nodes are booted up. Of course, there is always sneakernets, "Never underestimate the bandwidth of a station wagon full of tapes hurtling down the highway", as Tannenbaum said.

Bitcoin

bitcoin logo, found through random google search

Bitcoin was the first crypto currency to experience capacity problems.

Satoshi implemented a hard coded capacity limit in the very early days; back then this limit was very much higher than the actual usage. The rationale for the limit was most likely to prevent malicious miners from making havoc by generating a crazy big block. Most likely, the limit was arbitrarily chosen, without much consideration on how much traffic the network actually could handle. Most likely, the limit was meant to be lifted at some point in the future.

As the transaction flow got close to the capacity limit, some signs of troubles were noted; it could take some 10-30 seconds for a miner to download the last blocks and validate it, this latency caused the so-called orphan rate to increase, and it also was a significant extra cost - giving an edge to big Chinese mining pools. Research has shown that the maximum "safe" block size limit ought to be 4 MB due to this effect. However, lots of improvements have gone into the Bitcoin code base since then, nowadays the miners can start mining on the next block few seconds after the previous block was mined, even for very big blocks.

However, moving the capacity limit has proved to be difficult if not impossible, as lots of actors in the Bitcoin community seems to believe that the current capacity limit is a fundamental constant that should not be touched. As a result we've seen lots of congestions causing high transaction fees and unreliable transactions.

The hope is currently pinned on Lightning, which may allow for an indefinite amount of small transactions to be backed up by only some few on-chain transactions. (Personally I have serious doubts that it really will work out as a silver bullet to the capacity problems we're currently observing).

Bitcoin Cash

Bitcoin cash logo from bitcoin.com

As said above, lots of improvements have gone into the Bitcoin code base during the last two years, improving scalability by a bunch. Bitcoin has been tested with gigabyte big blocks. Personally I think gigabyte-sized blocks may be a bad idea, but at least the testing proves that it's possible.

Bitcoin Cash has an 8 MB soft block size limit and a 32 MB hard block size limit.

Lightning is difficult on Bitcoin Cash as it's missing a so-called mallability fix. Due to the rather toxic schism, there seems to be quite much negativity against Lightning in the Bitcoin Cash community, to the point where some people even think mallability is a feature, stopping people from even trying to create Lightning for Bitcoin Cash.

Bitcoin Cash has sharding on the long-term road map.

Ethereum

Ethereum logo, from www.ethereum.org

Ethereum is currently the block chain with the highest transaction volume - and just like Bitcoin it's facing a capacity limit now, causing transactions to be expensive or unreliable.

Ethereum also has a hard capacity limit ("block fuel limit"), but the community is rather pragmatic, it has been lifted several times - but now it can't be lifted without serious optimizations.

While Bitcoin has a 10 minute average block interval, Ethereum has 15 seconds. 15 seconds is not a lot for broadcasting a big block to all the world. In an attempt to counter a mining centralization effect caused by the latency cost, in ethereum miners also gets some compensation for mining orphaned blocks, so-called "uncles". On the flip-side, uncles does not contribute with anything but costs to the network, as the uncles also has to be broadcast and recorded. Currently the uncle rate is 30%, far too high. The "fuel limit" cannot be increased more without either software optimizations or an increase in the average block interval.

In the future, there is Kacper (moving to a proof-of-stake protocol may eliminate the uncle protocol), software optimizations (As far as I've understood, the "thin block"-concept hasn't been implemented in Ethereum yet), sharding (not all nodes have to process all transactions).

What about lightning-style solutions? It should be trivial to implement in Ethereum, and people are working on that. There is the µRaiden protocol, which is production-ready, it's for unidirectional payment channels, on top of that there will be the Raiden network - working comparably with Lightning - which is development in process. A side thought, the payment hubs needs to have quite much capital locked up in payment channels - wrg of Bitcoin, this should be no problem for the biggest exchanges - they should hold tons of customer-owned bitcoins in cold storage, some of those can probably safely be used to fund payment channels. However, as Ethereum will be moving from proof-of-work to proof-of-stake, probably "free capital" will be harder to find, as capital will be locked up in staking. Hence, expect higher fees for Raiden than Lightning.

Others

There are many crypto currencies that claims to have solved scaling. I believe the IOTA concept is basically just sharding. Other works by by foregoing Proof-of-Work, the orphan cost is a pretty unique problem for Proof-of-Work-based protocols. Steem, BitShares and quite some others work through delegated-proof-of-stake, where participants in the network are voting for a limited amount of witnesses to produce blocks and run the show; that's much more controlled than proof-of-work, and it can allow for a high throughput with insignificant "orphan risk". On the flipside, critics would say that it's a lot more centralized than PoW.

On the top-five on coinmarketcap there is also Ripple - which is based on trust-networks rather than proof-of-work, and there is Cardano - I don't know much about that one, though rumors have it it's more like a proof-of-concept than a production-ready cryptocurrency.

Conclusion

From the top-four cryptos, probably Ripple is the one that can currently handle scalability best - but critics would argue that it's not a real crypto currency.

On second place there is Bitcoin Cash, which through software optimizations and other work done during the last two years can handle quite a huge traffic volume without problems.

Ethereum has reached a capacity limit now, and will probably be congested for quite a while - but at least there are plans in the pipeline to deal with those problems.

Bitcoin is the worst of the worst. We started hitting the capacity limit already two years ago, and motions to increase the capacity limit has been firmly rejected. The only hope now seems to be the Lightning network, widely believed to become a "silver bullet" among the supporters, but in reality it's unlikely to gain traction fast enough to catch up with the competition.

Further down on the list are things like Steem, BitShares and EOS - projects that can handle a lot more traffic, arguably with a cost of more centralization.

Sort:  

And how do you think bitcoin cash can displace classical bitcoin?

"Bitcoin Cash is the real Bitcoin" seems to be the value proposition of Bitcoin Cash. If Bitcoin Cash ever should get more valuable than Bitcoin (and hence get more miner support and hence become the longest chain measured by proof-of-work), then I believe it will replace Bitcoin. On the branding, there won't be any "Bitcoin" for a while, only "Bitcoin Core" and "Bitcoin Cash".

The way Bitcoin Cash can succeed is by replacing Bitcoin as the "lingua franca" of cryptos. Today it's super-easy to convert Bitcoin to/from fiat, and anyone accepting crypto will also accept Bitcoin. If Bitcoin Cash gets sufficient amounts of merchant support and gets as much coverage as btc in trading pairs on the major exchanges, then demand will grow - if people can choose between paying a significant transaction fee and paying an insignificant transaction fee, then why not choose the latter. Demand for Bitcoin Cash could grow a lot, while the demand for Bitcoin is going the opposite way.

Is it likely to happen? I don't know.

The biggest difference between Bitcoin and Bcash was choice: Btc was adopted by community who believes deep in heart while Bch was forced to surpass original chain. I do not get well why Btc was forked to create Bch while it was better than original as they said. If it was so, creating new altcoin may be a solution if you really trust your software...

Great post @tobixen but I am very curious to see how the developer team will work with the business community

A solid breakdown of the challenges and how they are being addressed. I'm very curious to see how the development teams will be working with the business community to make a product that they trust, driving adoption and higher volumes.

According to idea of blockchain, decentralization will be the solution for most of the issues. Nowadays, hard forks are far away from that spirit, they are keen on making easy money (airdrops) Success may come if community pay attention on quality rather than quantity.

Congratulations @tobixen! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of comments

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!

Informative post

thank you for the imformation, good luck and success always @tobixen

Wow thanks for the update

very important informations...thank for us sharing.

Coin Marketplace

STEEM 0.18
TRX 0.16
JST 0.030
BTC 67724.53
ETH 2606.51
USDT 1.00
SBD 2.72