Bitcoin Wallet Developers Prepare for Segregated Witness
Bitcoin Core 0.13.1 was released last week, which means miner signaling on the proposed Segregated Witness (SegWit) soft fork will start soon. If activated, SegWit offers a number of benefits, one of which is an effective block size limit increase to about 1.6 to 2 megabytes, depending on the types of transactions included in blocks.
If and when Segregated Witness is activated on the Bitcoin network, users will be able to take advantage of the added network capacity immediately — if their wallets are “SegWit-ready.” For users to enjoy this added block space, therefore, much will depend on Bitcoin wallet providers.
State of Readiness
Depending on miner signaling, Segregated Witness may, at the very soonest, be “live” on the Bitcoin network halfway through December. This somewhat unlikely best-case scenario leaves about six weeks for Bitcoin wallets to update their software.
The wallet providers that Bitcoin Magazine reached out to generally expected this should be sufficient time. Several of them are even ready to go already, or are in the final stages of development.
GreenAddress, the wallet provider that was recently acquired by infrastructure development company Blockstream, was among the first wallets to have completed Segregated Witness support, as early as February this year.
Speaking to Bitcoin Magazine, developer Lawrence Nahum said that GreenAddress users will be able to receive and send SegWit transactions as soon as the soft fork is deployed on the Bitcoin network. After that, he plans to improve the wallet, further utilizing the possibilities offered by Segregated Witness, such as MAST, Schnorr signatures, and the Lightning Network.
“I am very eager to make use of all good things in SegWit,” Nahum said. “I see it as a great stepping stone towards better fungibility and privacy, which I think are as important as — if not more important than — capacity increases.”
Regarding SegWit readiness itself, Nahum added:
“Integration was quite easy. Desktop, iOS, and Android: All our wallets’ GitHub master branches support SegWit already, and recently we finalised some integration testing with hardware wallets such as Ledger to make sure it all works.”
Most of the other wallet providers contacted by Bitcoin Magazine also indicated they should be SegWit-ready if and when the soft fork activates, or not too long after. Ciphrex's mSigna wallet and the Ledger hardware wallet have fully integrated Segregated Witness. BTC.com — formerly known as Blocktrail — has been experiencing some delays due to the recent acquisition by ASIC-manufacturor Bitmain, but said that integration shouldn’t take much longer than several weeks. Electrum, the popular desktop and Android wallet, will include Segregated Witness support in the next major release, planned before the end of the year. BreadWallet, a wallet app available on Android and iOS, is in the testing stage, and will offer SegWit to users once it’s activated and deemed absolutely secure. And Mycelium, also available on iOS and Android, said it wrapped up the complicated part of integration, with only some user interface questions remaining.
Payment processor BitPay confirmed its intention to integrate SegWit as well for its Copay wallet and the new BitPay wallet, but the company is taking a slightly more conservative approach. Speaking to Bitcoin Magazine, BitPay CEO Stephen Pair explained that they will only start integration once it is more certain that the soft fork will actually activate.
“We do plan to support SegWit. The timeline for that support will be driven by the activation of the required soft fork,” Pair said, “but we don't know exactly when the activation will occur, so we don't want to spend time now only to have it take another six months or a year before activation happens.”
In order to be able to deploy Segregated Witness as a soft fork, the Bitcoin Core developers opted to place a reference to signature data in a somewhat odd part of Bitcoin blocks. Although this does not make the solution insecure, it does add some complexity to Bitcoin’s code-base, but the added effort for the wallet providers is not extreme.
Most of the complexity is “hidden inside” the open-source software libraries many wallets rely on. Several of these libraries have already integrated Segregated Witness support, and others should be able to include it within a few weeks.
“Bitcoin-php has been ready for months. Bitcoinjs is pending review and some discussion because there are some backwards compatibility breaks. We could have it ready as soon as next week, though. For wallets, the change is very minor, technically. Looking purely at transaction building and signing, SegWit adds a bit of complexity, but not that much. Really, only full-node developers and projects have to bear with the full complexity.”
As a general sentiment, wallet developers seemed to agree that the Segregated Witness solution is somewhat “hacky” — but worth it. “I consider SegWit to be ‘Bitcoin 1.0;’ it's fixing a couple of issues that are like ‘beta bugs,’” de Vries said.
For Mycelium, Daniel Weigl has done most of the SegWit integration:
“When — in a SegWit world — a new developer learns about Bitcoin and how things work, he or she will stumble over a lot of strange things that will not be self-explanatory without knowing what transactions and blocks looked like before SegWit,” Weigl said. “That adds barriers to entry in an already complicated topic. But I’m no friend of hard forks either, so I also would not know how we could solve that without those quirks.”