Segregated Witness, a scaling and far-reaching improvement for Bitcoin, could start being implemented across the network as early as November 15th. The technology will have a lot of implications for users of Bitcoin, including potentially lower fees, slightly higher transaction capacity, elimination of the malleability problem, and increased security for multi-signature transactions.
The date of launch for SegWit, as it is called for short, is not yet set in stone. While many developers on the mailing list seemed fine with an activation date of November 15th, at least one developer, Tom Zander, who has created an alternative solution called Flexible Transactions, took issue with the nearness of that date. Zander suggested a two-month timeline as the earliest time to implement SegWit, and also said that for his personal preference, that would be too fast.
Gavin Andresen weighed in on the issue, saying:
I asked a lot of businesses and individuals how long it would take them to upgrade to a new release over the last year or two. […] Nobody said it would take them more than two weeks. […] If somebody is running their own validation code… then we should assume they’re sophisticated enough to figure out how to mitigate any risks associated with segwit activation on their own.
Core developer Matt Corallo also took Zander to task for failing to note the fact that security issues have been found in his Flexible Transactions code:
You keep calling flexible transactions “safer”, and yet you haven’t mentioned that the current codebase is riddled with blatant and massive security holes. For example, you seem to have misunderstood C++’s memory model – you would have no less than three out-of-bound, probably exploitable memory accesses in your 80-LoC deserialize method at [link] if you were to turn on flexible transactions (and I only reviewed that method for 2 minutes). If you want to propose an alternative to a community which has been in desperate need of fixes to many problems for several years, please do so with something which would not take at least a year to complete given a large team of qualified developers.
Zander continued to defend Flexible Transactions as a better solution for the same problem, saying, “Its safer because its simpler.”
There was much back and forth regarding the technical implications of implementing SegWit on November 15th, but the overwhelming majority of posters seemed in favor of that as an activation date, most noting that it wouldn’t be an issue since no one would actually be forced to use the new methods. The discussion veered off-topic and was continued elsewhere.
As a BitcoinCore page on the subject notes, SegWit is a relatively simple to implement but hard to explain proposition. One benefit for regular users will be lower transaction fees. The reason transaction fees will be lower is that they are based on size, and the way SegWit works, the size of the part of transactions that are charged for will be reduced by 75%. This means that while some wallets may continue to use the original method for calculating transaction size because they are not using SegWit, wallets which do implement it will be able to offer their users a 75% discount. Even if blocks are not much larger than they previously were, and the technical limit on transactions is still much the same, the cost of getting including in a block will be forced to drop.
At present, it seems like the Bitcoin Core team will definitely move forward with the suggested integration date of November 15th. Actual activation on the network for SegWit will require 2016 blocks to pass in which 95% have “signaled the versionbit,” meaning their miners are using the software. This equates to an absolute minimum of about 14 days [((2016⋅10)/60)/24]. From here, it seems that sometime in December, or perhaps as late as January, depending on the swiftness with which the miners upgrade their software, Segregated Witness will become the norm and its benefits will begin to permeate the network.
How do you feel about the enhancements that SegWit offers the Bitcoin network? Share and comment below!