Small blocks, big blocks, soft forks, hard forks, segregated witness — all of these terms have been mentioned in the ongoing debate around the future of Bitcoin. What the fork is going on? To outsiders, it seems Bitcoin is having an identity crisis, but the network is still strong despite some hurdles that must be overcome if it is to rival legacy payment systems.
Here’s the rundown: the block size right now is at 1MB which limits the number of transactions the network can handle per second. Proponents of larger block sizes argue that increasing the block size must be done sooner rather than later if we want to keep up with Bitcoin’s growing transaction volume.
Unfortunately, this 1MB rule is hard-coded into the core blockchain, so there is no way to change it without shutting down the current blockchain and starting a new, incompatible blockchain on top of it. This process is called a “hard fork”, and is a risky concept that has never been tested before. If you’re going to hard fork, you want to do it rarely and in a way that achieves near-total consensus.
The BitcoinXT hard-fork proposal by Bitcoin Core developers Mike Hearn and Gavin Andresen would have increased the block size, but the majority of users rejected it. The way it was rolled out also created much contention. Accusations of censorship about the discussion of XT on the Bitcoin subreddit rolled in as well since some of the moderators were known proponents of small block sizes.
Here at Airbitz, we don’t believe in short-term half-solutions. Any hard-fork should change the rules in a way that scales far into the future. We were not fans of BitcoinXT because it attempted to predict the future with hard-coded limits, and we don’t like the short-sighted Bitcoin Classic proposal for the same reason. Bitcoin Classic only increases the block size to 2MB, which will require yet another hard fork when we hit that limit soon. We were cautiously optimistic about BIP100, which allowed miners to vote for on-demand block-size changes, but most people agree that it would have shifted the balance of power too much.
Enter Segregated Witness, an idea proposed by Bitcoin Core developer Dr. Pieter Wuille of Blockstream. Segregated Witness seeks to alleviate the problem of blocks filling up by moving signatures from one area to another.
A “witness” is another name for a signature, which is a cryptographic proof that the owner of the funds authorizes the transaction. Anyone can verify that a signature is valid, but only the owner of the funds can create a signature. Mathematically, a signature scrambles together the owner’s private key and the contents of the transaction in a way that is easy to check but impossible to undo. Since the contents of the transaction are part of the signature, there is no way to modify the transaction’s destination addresses or amounts without breaking the signature.
Segregated Witness takes the signatures of the transactions and bundles them together in a different part of the block that does not count towards the existing 1MB limit. This allows more transactions to fit into each block, increasing the number of transactions that can occur per second. Upgraded nodes will see this new add-on section and can validate its contents, but old nodes will be unaware that this new section exists. This approach allows the Bitcoin network to introduce new features without breaking compatibility with the existing blockchain. That makes this a “soft fork” rather than a “hard fork”, and is the proven way to add new features to the Bitcoin network.
Although Segregated Witness effectively doubles the number of transactions that can happen per second, it does much more than that, and is actually the first piece of a much bigger upgrade to the Bitcoin network.
Segregated Witness fixes a long-standing vulnerability of the Bitcoin system called transaction malleability. In today’s Bitcoin network, malicious actors can tamper with transaction signatures in a way that changes the transaction ID without making the transaction invalid. Many innovative smart-contract and escrow-type systems involve chains of unconfirmed transactions, but malleability makes these chains easy to break. With Segregated Witnesses, the signatures are stored separately, so tampering with them has no effect on the transaction ID.
Smart contract systems offer a lot of exciting new possibilities for the Bitcoin network, including a way to do secure zero-confirmation transactions in a decentralized and trustless way. The uncertainty of waiting for a transaction to confirm is one of Bitcoin’s biggest pain-points today, and solving it would bring the network one step closer to speed and convenience consumers already expect from their payment systems. As an added benefit, these systems take many of the transactions off-chain, further reducing the pressure to increase the block size. While none of these systems are ready today, implementing Segregated Witness brings them one step closer to reality.
This isn’t about keeping Bitcoin hobbling along; this is about installing rocket boosters.
Besides these big-picture benefits, Segregated Witness also cleans a number of minor issues that are still important. It strengthens multi-signature transactions by adding more bits of security and by allowing an unlimited number of participants. It also provides a clean upgrade path for the scripting system. This might allow us to add advanced, Ethereum-like capabilities to Bitcoin some day. Finally, Segregated Witness provides a way to attach new sections to future blocks. These could eventually provide enhanced security, more data storage, or whatever else the Bitcoin network needs.
We’ll be implementing Segregated Witness into our platform soon, joining 30 other wallet companies who support the upgrade.
Despite all these benefits, Segregated Witness doesn’t create unlimited capacity. A day may come when blocks still fill up, even with Segregated Witness. By the time that happens, hopefully the community will have a practical, forward-thinking hard-fork proposal that Airbitz can stand behind. Who knows, perhaps there are more soft-fork techniques still waiting to be discovered? Although our preference is for future-proof solutions, Airbitz will ultimately go with whatever the network as a whole chooses.
For a more detailed explanation of Segregated Witness, see these sources: