The long-lasting block size dispute has catapulted into the center of attention again. One of the most talked about developments is Segregated Witness, of which a public testnet iteration – SegNet – was launched in January. The innovation as recently proposed by Blockstream co-founder and Bitcoin Core developer Dr. Pieter Wuille is a centerpiece of a scalability “roadmap” set out by Bitcoin Core.
To find out where the broader development community stands on Segregated Witness, Bitcoin Magazine reached out to library and wallet developers, those who will need to do the heavy lifting in order to utilize the innovation once rolled out.
In part 8 of this series: NBitcoin developer Nicolas Dorier.
Nicolas Dorier is the CTO of Metaco, an open asset (colored coin) company that helps financial institutions emit fiat currency on the blockchain. Dorier is also lead developer of NBitcoin, the main .NET library for Bitcoin development, and he wrote a free ebook on Blockchain Programming: Blockchain Programming in C#.
Dorier already implemented full Segregated Witness support into NBitcoin, and launched a basic block explorer and transaction parser and checker on Segnet. He also briefly contributed to Segregated Witness development itself.
“Segregated Witness is a net win, there is not any downside to adopt it at all,” Dorier said. “It is one of the two pieces of the puzzle – the other being OP_CSV – to make Bitcoin scale to millions of users, by making the Lightning Network highly effective. I am also very excited by the new method to sign transactions, which now includes the value of outputs being spent. This is huge from a security perspective for webwallets and hardware wallets, as it prevents [the] user from adding too much fees by mistake. And last but not least, it increases the capacity of Bitcoin. I expect Segregated Witness adoption to follow an ‘S-curve’; wallets will jump on it very quickly.”
While Segregated Witness has been criticized as being a complicated solution, Dorier’s experience suggests otherwise. According to Dorier:
“From an implementation perspective it was relatively easy. I would say it took a little more than two or three days for NBitcoin support. I had to re-factor internal stuff to make it easier for NBitcoin’s users. Once implemented in NBitcoin, adding Segregated Witness to my block explorer was just a matter of updating the relevant package and redeploying it. Smartbit, another block explorer, has already done this as well, and can attest to the simplicity.”
Roll-out of Segregated Witness on the Bitcoin network is currently scheduled for April. Once a super-majority of miners agrees on the solution, Segregated Witness will be activated, and it can be used by wallet and app software.
Among other benefits, this means that anyone using the new possibilities will use only about two-thirds to half the space in the available 1 megabyte blocks. These transactions get to pay a lower fee, and more transactions can be processed on the Bitcoin network.
But this strategy is being contended by the recently launched Bitcoin Core fork Bitcoin Classic. Bitcoin Classic most likely plans to deploy a block size increase to 2 megabyte blocks through a hard fork once 75 percent of hash power agrees, and a four-week “grace period” for all full nodes on the network to switch to the new rules.
Bitcoin Classic’s strategy has not gathered much support among library and wallet developers, however.
“Let’s be clear: Segragated Witness is the fatest way to bump the block size,” Dorier explained. “The migration to Segregated Witness does not need to be synchronized between service and wallet providers. In other words, anyone can receive Segregated Witness transactions even if their wallet did not upgrade – though in that case you’d have to trust on miners for validation.”
Dorier does believe the block size limit will need to be increased through a hard fork a bit further down the road.
“Even with 1 megabyte blocks, Segregated Witness, and the Lightning Network deployed, Bitcoin will only be able to cater some 14 million users,” Dorier said. “Thanks to Segregated Witness, such an increase is not strictly needed for another year. But if there is consensus about raising the block size limit – and it’s clear it won’t hurt the network – it should be done nevertheless.”
But Dorier does hope this change will eventually come from the Bitcoin Core development team, rather than Bitcoin Classic, explaining:
“Core has proven to be reliable over the past years. All of their contributions to Bitcoin reached the highest standard of software development. Their commits speak for themselves. So I don’t support any ‘change of governance.’ In my opinion, Bitcoin Classic was pushed for political reasons; to try to get the power out of Bitcoin Core’s hands by some unproven team for unknown purposes. I will personally only support a 2 megabyte hard fork with 90 percent hash power vote, and a grace period of a year. This would make it clear the goal is not to raise a war against Bitcoin’s best contributors.
Even if Bitcoin Core doesn’t commit to a specific date, saying something like, ‘We will propose to do it sometime next year’ would fix a lot of the drama. It would also prevent a disastrous hard fork which could result into a split. What Bitcoin Classic proposes is the most dangerous thing that can happen to Bitcoin right now.”