Why do we need SegWit (technical explanation) After reading a lot of articles, whitepapers and videos I am still confused why do we need SegWit an Lightning instead of just bigger blocks. I don‘t want to debate Bitcoin vs Bitcoin Cash but what are the technical arguments? For a non-involved Bitcoin developer the debate is just crazy and both sides have their pros and cons but there must be technical arguments or not..?

DISCLAIMER: I do not have Bitcoin Cash but Bitcoin
After reading a lot of articles, whitepapers and videos I am still confused why do we need SegWit and Lightning instead of just bigger blocks.


It's not a question of one or another. They are all approaches to capacity increases, and I expect that in the long term, all of them will happen. However, due to the risks and tradeoffs involved some were far easier to deploy and get agreement across the ecosystem on.

SegWit is a solution to the transaction malleability problem, introduced in a way that also provided a moderate capacity increase. By design, SegWit is backward compatible - meaning that it did not require the entire ecosystem to migrate to different software.

Lightning is one proposal for a layer on top of Bitcoin that makes much more efficient use of transaction capacity, as well as giving instant transactions. Implementing Lightning became much simpler with SegWit. It only affects those who use it.

Just a block size increase is a bit underspecified, as SegWit for example was technically a block size increase too. If you mean increasing the capacity without any other changes, that is something that I expect will happen in the long term, but has multiple issues. One is that it is a hard fork, which means the degree of consensus needed for it happen without incidents across the network is much greater.

The biggest issue - and this is certainly subjective - is that it is not a solution at all to scaling. It offers a way to double the capacity of the system while making everything twice as costly (in terms of resources) for participants to validate the system's security. If we want to make Bitcoin accessible to the world, no such approach will help. Blocks could be made 2x bigger or 10x bigger, but the result is only 2x or 10x more transactions. Who cares? That does not fundamentally enable use cases that weren't otherwise possible. In my view, the part of the ecosystem that views capacity increases in this way as a necessity do so from an expectation that all transactions need to happen on the blockchain. That's just not what the technology is good for. Building layers on top is harder, and will require time, research, and money. But it may bring us a world where billions have access to a currency without third party control. In contrast, larger blocks risk setting the ecosystem on a path where its only way forward is ever increasing blocks size.

Lastly, there is the issue of immutability. Bitcoin is hard to change if people believe it is hard to change. And this on itself is an incredibly valuable property. This means people can rely on it retaining the properties they signed up for, even if potentially powerful entities would like it to change. If controversy is a reason to step away from this, it's an avenue to outside influence. This does not mean change cannot happen at all, but it must happen in a way that is cooperative, and without rush. We're in it for the long term…