As attacks against the group intensify, the volunteer community that develops the code for bitcoin's open-source software has entered a new phase of testing for Segregated Witness, its proposed scaling solution.
The merge, which took place last weekend, comes nearly seven months after the proposal was by Pieter Wuille, co-founder of bitcoin startup Blockstream and a major contributor to the Bitcoin Core open-source development community, during the Scaling Bitcoin conference in Hong Kong.
Since then, the upgrade, commonly known as SegWit, has seen broad testing by both the Core community as well as various companies operating in the bitcoin space. More recently, Core contributors met for a face-to-face meeting in Zürich for a hands-on review of the code.
To recap, SegWit has been proposed as a means of effectively increasing the capacity of bitcoin transaction blocks by changing how the space within them is used, rather than outright increasing the size of the data blocks on the blockchain. Further, the upgrade addresses issues like transaction malleability, or the ability for transaction IDs to be changed before they become confirmed by the network.
With the merging of the initial code for SegWit into the master branch of the bitcoin codebase, a new phase of testing can begin that developers say will provide more opportunities for stress-testing the upgrade and identifying any lingering bugs. Developers say it enables SegWit testing in conjunction with other features in bitcoin’s code.
A key caveat: SegWit still has a ways to go before it becomes a live part of the network.
For starters, the merged code doesn’t contain the necessary elements required to actually activate it. This, according to the Core team, will be written and added after more testing takes place.
Wuille told CoinDesk:
"The near-term steps are backporting and more testing of real world usage on testnet. After that, defining the activation parameters and doing releases with SegWit active in it, and hope it gets adopted by miners and the community."
The process of moving SegWit from the drawing board to the testing that hasn’t been without controversy.
Advocates for increasing the size of transaction blocks on the bitcoin network have said that SegWit is far too complex a way to scale the system, and some have gone as far as accusing the Core team of ignoring the interests of bitcoin users – a claim that contributors have pushed back on. It's resistance to the way in which Core functions that has given rise to alternative implementations like Bitcoin Classic.
Recent comments from members of China’s mining community, as well as rumors that some miners might adopt a network hard fork of their own, further illustrate the tension that has defined the scaling debate.
Question of timing
A question no doubt at top of mind for some bitcoin community members and stakeholders is when, exactly, SegWit will become an active part of the network, though it's currently live on the bitcoin testnet.
In conjunction with the testing that continues to take place, developers will backport SegWit into Bitcoin Core 0.12, the version released this past February. In layman’s terms, this means taking new elements of the code and applying them to older versions.
Bitcoin Core maintainer Wladimir van der Laan suggested that this process could take place as early as next month, though this decision is dependent on how the next phase of testing goes.
According to Wuille, "depending on timing, activation may end up in [Core] 0.13.0 or 0.13.1".
It’s also during this state that developers involved with the initiative hope to spot any bugs that exist in the code. Given bitcoin’s $10bn-plus market cap, there’s a built-in risk with any major change to how the system functions.
Wuille told CoinDesk that these risks are real but recognized by Core contributors and others who are testing SegWit.
"Segwit is undeniably one of the larger changes to bitcoin's consensus rules and implementation, so there are inherent risks," he said. "However, it's also the change which has the most attention, review and testing ever due to its impact. I'm confident that if bugs are left, they'll be minor and found during the testnet phase."
Step toward future development
In some ways, SegWit is a kind of stepping stone toward other proposed changes to bitcoin’s code.
Van der Laan, who called last weekend’s merge "a huge step forward", indicated that the roll-out of SegWit gives developers the opportunity to add further functionality to bitcoin.
The release of SegWit would dovetail into other aspects of bitcoin development, including a proposal by contributor Matt Corallo to reduce network block propagation times.
"It is especially needed as the witness discount results in a block size increase, which makes the question of propagation delay even more urgent," said Wuille.
Though the proposal is likely to still draw criticism from Core detractors, the merge signals that development is moving forward amid arguments that the team is resistant to change.
Blueprint image via Shutterstock