Like every revolutionary new system, bitcoin had its share of unforeseen technical shortcomings when it was launched. Chief among them, is the size of the blocks on the blockchain. These blocks are relatively small given the volume of transactions being handled now, and the expected volume of transactions in the future. Since changes in the Bitcoin network have to be done by consensus, a complex organizational problem emerged on top of the technical issues. Debates raged, Mike Hearn quit, and the price of bitcoin took a hit. However despite the turmoil, a developer called Pieter Wuille devised a short term temporary solution.
Postponing the Need for a Hard Fork
The discussion raging within the Bitcoin community revolved around the imminent need for a hard fork, a solution that would see an alternative blockchain built, with bigger blocks. Wuille instead thought of a way to reduce the size of the coins. This solution is called segregated witness (SegWit), and what it does is that it separates validation signatures from coins so that the information about the validation will not have to be recorded in the block itself. Instead there is a parallel merkle tree that will go alongside the blocks in which the signature of bitcoin will be recorded, reducing the amount of space needed in a block to record a transaction.
How Does SegWit Work?
According to Eric Lombrozo, CEO of Ciphrex and one of the most well-known Bitcoin entrepreneurs, SegWit works by separating the script and signatures of the coins once the transaction is validated. According to Lombrozo, bitcoin transactions have 2 parts: One moves the coins from one part of the blockchain to the other, and the second part authorizes the transaction through the validation of signatures.
Once the transfer is validated, the coins move from one part to the other on the blockchain. This means that the network only cares about where the coins are now, and how many coins there are. Once the chain has recorded that transaction on a distributive ledger, the validation signature that bitcoin carries is no longer essential, because the network already knows that the transaction was legitimate and has recorded it as such.
This lets Wuille’s software upgrade, strip the coins from the signature and save that information on a parallel merkle tree outside of the block, for future validation/auditing if needed. Once software activates, every miner will put the new merkle root in the block when they mine it.
Advantages and Disadvantages
Lombrozo also points to the following additional advantages with this software upgrade:
- Solves malleability: you can have a set of transactions that depend on each other without signing them, and have them ready. You can have one address sending money to another, and that one sending money to another, and that one sending money to another, but they are not signed yet, so the transaction is pending. This can be done without changing the transaction ID thanks to SegWit.
- Since the script data is also moving into the witness that means that the script can be replaced with a new one without a hard fork. You can add new functionality by replacing the scripting language.
- Script is stored in the input right now but it is being moved into the witness, so the new nodes can validate the transaction looking at the new script and the old nodes will ignore it.
The caveat is that there is a tradeoff: Bitcoin is giving up a bit of security in order to make transactions run faster given current and expected transaction volume.
Will Bitcoin Avoid the Hard Fork?
SegWit is not expected to be a long term solution for the Bitcoin network. The developers now have some more time to come up with a more permanent solution. The Bitcoin community has also gotten a much needed time extension to hash out its differences before Bitcoin has to undergo a more drastic change. In the meantime bitcoin price seems to be responding positively, and the network seems to be satisfied with the solution. Hopefully all the parties involved will bridge the gaps between them and come up with a long term solution for bitcoin’s technical issues.
Watch Eric Lombrozo’s SegWit explanation.