Why do we need SegWit (technical explanation)

1

1

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

0xjacobb

Posted 2017-12-28T08:45:56.733

Reputation: 11

this question has the risk of creating "opinion based" answers. On SegWit and LN: this is the scaling solution to really high throughput, whereas BitcoinCash is just pushing the can down the road. It does not solve anything at all. The limitations we see today still appear in the future, and as such prevents mass adoption. Just my view, now let's see the fantastic answers by all the experts!pebwindkraft 2017-12-28T09:41:16.840

Yes there are a lot opinion based answers but (maybe I am naive ) there should be some clear technical facts where the community should be able to talk about..Or maybe there is a paper/article where the technical arguments both sides are listed/described in a fair way... (fingers crossed)0xjacobb 2017-12-28T21:09:48.437

Answers

5

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…

Pieter Wuille

Posted 2017-12-28T08:45:56.733

Reputation: 54 032

I realize that this answer ended up being much more political than just technical reasons as OP asked. Perhaps another answer with just the technical benefits of SegWit and Lightning is useful?Pieter Wuille 2017-12-28T10:12:55.167

Thx for your answer! Yes a technical answer would be defenitly helpful. I agree that both sidechains and bigger blocksizes will be used on the longterm, but now I am struggeling a lot with the technical part. Especially when you find some proof-of-concepts for sidechains and for large blocksizes (1 GB), pros and cons etc. Then I am asking myself all the time: „There must be some hidden technical specifications where I should compare...“. Why should we implement SegWit and Sidechains if it is „so easy“ to implement „just bigger Blocksizes“ like Bitcoin Cash propagates...0xjacobb 2017-12-28T12:44:09.443

The short answer to that is that they do different things. SegWit is primarily a fix for the malleability problem (it just happened to also permit a small increase without a hardfork). Lightning primarily gives you fast payments (but also enables many more payments than any capacity increase can achieve).Pieter Wuille 2017-12-28T12:54:47.907

So you mean, LN will add additional features like cross payment channels (BTC to Crypto xy) what just a blocksize increase can not do... But LN offers a similar scaling like eg 1GB blocks..correct? If correct, why do you think these cross plattform payments are needed and not just a block size increase to solve the (Bitcoin) scalability issue?0xjacobb 2017-12-28T16:50:38.670

LN can do far more than that. It offers instant payments (while BTC transactions take minutes to hours to settle). It also increases capacity for some use cases by a factor that no blocksize increase can achieve (you mention 1 GB blocks, which may be theoretically possible for at a tremendous cost to anyone running a network node, while LN does it with no cost to anyone not involved in the payments).Pieter Wuille 2017-12-28T17:36:27.157

And that is what confuses me...Supporters of bigger Block sizes would say, that the costs will be low and instant payments will be possible too....But there most be some technical arguments... both could not be true and these technical arguments I am looking for...0xjacobb 2017-12-28T17:55:46.530

There may be disagreements about whether costs are high or low, or impacts are acceptable or not. But there is no dispute about this: block size increases result in higher costs for full nodes and centralization pressure (again, perhaps to an acceptable extent), but LN does not - it simply permits very fast and frequent payments that do not even get published to the rest of the world. It's just an additional dimension that gets added.Pieter Wuille 2017-12-28T17:58:42.097

The less technical reasoning here is that if increased demand for transactions is a sufficient reason to increase capacity, no block size limit will ever be enough - it'd just open more and less valuable use cases (if it's cheap enough, i'll store my backups on the blockchain). So as long as you accept that there are some costs to larger blocks (even acceptable ones), there must be some size for which these costs are not acceptable anymore. My perspective here is that this is not sustainable: the ecosystem will eventually need to deal with having some limit on capacity.Pieter Wuille 2017-12-28T18:06:33.083

Thanks for your time Pieter very appreciate that! I guess we could talk hours about this topic. For me ( and I guess for other) it is very hard find the correct and logical answers to this scalability issue when I am talking with oder people especially when the favor the bigger block size path. The answer is always: bigger blocks could do everything what LN could. The costs will be low as well for full nodes, bandwidth is not a problem, LN is centralized etc. I guess you know all these arguments:-) Do you know a good article which compares fairly both solutions on technical level?0xjacobb 2017-12-28T19:03:32.100

They're not two solutions to the same thing. Bigger blocks (including the blocksize increase that segwit effected) isn't a scalability solution at all - it increases capacity by also increasing the costs for everyone to validate. Scalability is about increasing capacity while minimizing the effects on costs. LN does this using a different security trade-off, without imposing costs on those who don't use it. As I said in my answer: segwit was a bugfix to the network rules; its capacity increase is a side effect.Pieter Wuille 2018-12-07T21:40:22.620