for newbies, here's the more hard core SW math post i made a while back:
https://bitco.in/forum/threads/gold-collapsing-bitcoin-up.16/page-308#post-11291
[doublepost=1458148261,1458147430][/doublepost]
https://bitco.in/forum/threads/gold-collapsing-bitcoin-up.16/page-308#post-11291
[doublepost=1458148261,1458147430][/doublepost]
the big picture way to look at this is that Blockstream core dev is attempting to unshackle their ability to change Bitcoin. they don't think it works. or more likely, they are surprised it does work and carry the regret of a missed opportunity to the point where they now are willing to even criticize Satoshi to try and get what they want. which ignores the tremendous success which has got us to where it is today as a SOV but by limiting it's full potential as a p2p cash. they don't like that it is meant to be primarily a hands off technology that is hard to change and they've obfuscated this discussion with fear about HF vs SF. like i said, this is not about HF vs SF anymore; it's about the meat and potatoes of what in toto both parties are trying to change. and SW is trying to change the very fundamentals of Bitcoin consensus rules in a huge way so that core devs can make "all sorts of changes" that just happen to facilitate their fiat business opportunities and satisfy their investors.I think it is useful to think of segregated witness as consisting of at least three parts that can be considered separately:
1) Separation of signatures. SegWit is fundamentally just a reorganization of how transaction data is stored in blocks. It stores transactions in two parts, separated into two merkle trees. This makes pruning of signatures easier. It also helps with maleability, since the non-signature part of the transaction is not malleable (I guess you could still malleate the signature portion, which would only affect the witness merkle tree).
2) Scaling/witness discount/accounting tricks. This characteristic arises because of the block size limit combined with how they chose to implement Segwit as a soft fork. Since the witness portion of the merkle tree is not seen by old nodes, it is not constrained by the block size limit. They could have left the witness portion unbounded, made it fit within the 1MB limit, or added a static limit (eg. 4MB). Instead they chose to apply a formula with a 1/4 discount counting witness data towards the 1MB block size limit.
3) Changes to “witness” portion of transactions. This is where they include things like script versioning, non-quadradic scaling of sighashes, input signing, and various other changes. Again, none of these changes are intrinsic to SegWit, but the way it is introduced as a soft fork gives them an opportunity to include this set of changes they want. Some of these changes are nice, but they could just as easily be introduced separately in bite-sized portions, rather than shoved down everyone’s throats in one large clump.
Last edited: