Bitcoin core developer Pieter Wuille recently completed a long-awaited upgrade to the bitcoin protocol. Segregated Witness, or ‘SegWit’ for short has now been published, and miners will soon be able to upgrade their software to include it.
Having become an overnight sensation during the Hong Kong Scaling Bitcoin conference, in December of last year, SegWit redesigns the core process of the bitcoin protocol itself, making it more efficient.
The protocol change, which has also been referred to as ‘Separated Signatures,’ removes the part of each bitcoin transaction that carries the digital signature, putting them alongside the blockchain instead.
By decreasing a transaction’s size, more transactions fit inside each block, increasing the number of transactions that the Bitcoin network can process per second. This significantly alleviates, but doesn’t fully solve, the biggest problem with Bitcoin’s ability to scale.
The separate signature files can eventually be discarded, to save hard drive storage space, as they are only useful in block verification. The older the block, the less likely the need to verify it again for any reason.
As a bonus, SegWit automatically solves transaction malleability, a small weakness in the bitcoin core code where a determined hacker could modify someone else’s transaction to make sure it isn’t accepted in a block.
While very rare, this problem was made famous by Mark Karpeles in early 2014, when he falsely blamed the problem for an incredibly large amount of missing funds at MtGox. Since SegWit removes the target of the attack, transaction malleability will be completely fixed as soon as the upgrade is complete.
Deploying the SegWit code won’t be instant, but there is pretty strong consensus behind doing so already. At least three different projects have been testing the preliminary SegWit code, and a large number of Bitcoin wallets, libraries, blockchain explorers, and other bitcoin services have declared their intention to run the final SegWit code as soon as they are technically able to, giving adoption of the upgrade a strong head start. The vast majority of popular bitcoin wallets are already on the list, both software and hardware.
The only thing standing in the way of SegWit becoming a part of bitcoin is the supermajority of miners that must upgrade to a version of the bitcoin core client code that recognizes the upgrade. Only miners, not nodes, need to upgrade, but it will take 95% of the mining power of the network to switch over before it is considered complete, and the efficiency gains will be seen across the whole network.
There doesn’t appear to be any reason for large mining operators to object to SegWit, as the patch is a “soft-fork” upgrade. It carries absolutely no risk of harming Bitcoin, or causing anyone to lose money.
Old bitcoin software clients that are not yet upgraded will see the new, SegWit-enhanced, transactions as valid. Meanwhile, the new software clients have been designed to read the old version of bitcoin transactions just fine.
“As a soft fork, older software will continue to operate without modification. Non-upgraded nodes, however, will not see nor validate the witness data”
– SegWit Bitcoin Improvement Project
Chief Bitcoin Classic developer Gavin Andresen gave his wholehearted backing to Seg Wit as soon as it was announced. “It’s a great idea,” he said on his blog, “and should be rolled into Bitcoin as soon as safely possible. It is the kind of fundamental idea that will have huge benefits in the future.”
Estimates on exactly how much space will be save in each block vary, with claims of 75% to 400% increased capacity. Andresen predicted a 200% to 300% improvement, “Once everybody has moved their coins to segregated witness-locked outputs and all transactions are using segregated witness, two or three times as many transactions would squeeze into the one megabyte block limit.”
SegWit’s author, Pieter Wuille Ph.D., often known by his handle “sipa,” is a co-founder and Core Tech Engineer at Blockstream, which has been a member of the Bitcoin core development team since May 2011.
A Belgian by birth, Wuille is currently working in Blockstream’s Swiss office in Zurich. After receiving his Ph.D. in Computer Science at the University of Leuven, Wuille worked as a Site Reliability Engineer at Google. Since discovering Bitcoin in late 2010, the core developer has rewritten significant parts of Satoshi’s code, with the unenviable job of improving performance and organization. SegWit is the best example of doing exactly that.
Wuille is also the author of Bitcoin Improvement Proposals 30, 32, 42, and 62, including the invention of Bitcoin’s Hierarchical Deterministic (HD) wallets. Just about every coder who makes improvements to bitcoin uses his code directly, since Wuille is also the primary coder behind libsecp256k1, a code library that made using Bitcoin’s elliptic curve cryptography more efficient.