What's the deal with witness data?

6 replies 327 views
SwiftMinerSenior Member
Posts: 259 · Reputation: 1036
#1Dec 28, 2019, 08:57 AM
So, in SEGWIT transactions, the witness data doesn't count toward the block size, which is cool because it means the transaction takes up less space. But with legacy addresses, you gotta include that witness and script data, which makes the blocks bigger and ends up raising the transaction fees. I'm curious, though how crucial is this witness data? I mean, do you think leaving it out with SEGWIT really doesn’t matter that much for transactions?
5 Reply Quote Share
SwiftMatr1xFull Member
Posts: 59 · Reputation: 474
#2Dec 28, 2019, 12:19 PM
In segwit, witness data is not excluded. Segwit stands for Segregated Witness, which by definition means that the witness data is segregated into parts. A legacy address which has no witness data weighs more cause the non witness data takes up 4 times the amount of weight units that witness data takes up per byte. - Jay -
4 Reply Quote Share
leo.wolfHero Member
Posts: 540 · Reputation: 2813
#3Dec 28, 2019, 04:24 PM
The witness data is more like the data holding the signature required to unlock the bitcoin. But to correct your statement it is not removed totally from transaction but rather it is separated from it and moved separately with the transaction. Is importance is it is needed to unlock the transaction. The bitcoin block was actually 1MB which it is still the size but what the segwit soft fork changes was the way unit used to store this transactions which was byte and it migrated it to virtual byte. The regular byte is weighs 4 weight unit and the vbyte weigh just 1 weight unit. Now the the transaction fee is calculated base on sats/vbytes and this is where the reduction in the fees comes from. Not that the block size is increased in MB
1 Reply Quote Share
laser420Full Member
Posts: 67 · Reputation: 296
#4Dec 28, 2019, 06:02 PM
Simply put' the witness data is important for the purpose of the security of the transaction made. However people uses SegWit because; - It's important in reducing block size. - And the importance of the segregation also is for efficient use of the block space . And, - Faster  transaction and cost effective.
3 Reply Quote Share
leo.wolfHero Member
Posts: 540 · Reputation: 2813
#5Dec 28, 2019, 11:30 PM
This isn’t all, in fact the biggest upgrade done by a Segwit is the elimination of transaction malleability which has caused developers problems since a single transaction can have two different valid TXID. But the separation of this witness data has helped solved that, paving way for upgrades like taproot. So Malleability is regarded the biggest thing Segwit solved
0 Reply Quote Share
gr3g.0rbitHero Member
Posts: 1025 · Reputation: 2646
#6Dec 29, 2019, 01:31 AM
It's only excluded by nodes that don't support the soft-fork, Bitcoin nodes that upgraded has it in their blockchain, just "Segregated". So the answer to your question is: it's not important to pre-SegWit nodes since they read SegWit outputs as something else which doesn't require the witness data. Read "Backward Compatibility": BIP-0141 It seems like you know meant "non-witness" and "witness" data. Because you've used the term "vbyte" for "witness", the sentence became incorrect since a transaction with 200 vByte would've been 200 Weight Units if it's true.
2 Reply Quote Share
im_apeHero Member
Posts: 629 · Reputation: 3824
#7Dec 29, 2019, 02:04 AM
Witness is not "separated" at all, it is still part of the transaction and like any other field (like version, locktime, etc.) it is stored and transferred as part of the transaction. Max block size hasn't been 1 MB ever since the SegWit soft fork in 2017.
3 Reply Quote Share

Related topics