Bitcoin’s Segregated Witness: More Than Just Malleability Fixes and Scaling
If you’re in the Bitcoin community, you probably know of Segregated Witness as (1) a fix to transaction malleability (2) a boost to the number of transactions that can be included in each block.
If you’re not in the Bitcoin community, you probably have no idea what I’m talking about and this article probably isn’t for you. Sorry :/
Anyway, “Segregated Witness” or “SegWit” is a Swiss Army knife in terms of benefits. It leads to improvements on so many levels it’s actually surprising. It’s really, really good. So good that it’s worth listing out all of the benefits.
Here’s why SegWit is awesome:
- It fixes the substantial transaction malleability problem once and for all, enabling second-layer scaling solutions like Lightning.
- It 1.7x’s the # of single-signature transactions per block and up to 3.7x’s the # of multi-signature transactions per block.
- It improves the efficiency of signature-hashing so it scales linearly rather than quadratically.
- It makes it safer for hardware wallets to sign transactions by explicitly hashing and signing input values.
- It upgrades pay-to-script-hash transactions from 160-bit hashes to 256-bit hashes.
- It introduces versioning for the scripting language to allow for easier upgradeability.
- It reduces the growth of the system’s most burdensome resource: unspent transaction outputs, which are ideally kept in memory.
- It allows for bandwidth and disk space reductions for lightweight nodes by allowing them to ignore historical signatures.
Note to the reader: the original version of this article was posted on Medium here.