Posts

SegWit2X is Not Ready

Twitter Facebook Google+
22 Jul 2017

What is BTC1 / SegWit2X

BTC1 is an organization that has been set up on GitHub to house SegWit2X, which is a fork (a copy) of Bitcoin Core. It arose out of a Bitcoin Scaling Agreement at Consensus 2017 (also referred to as the “New York Agreement”).

The agreement was to:

The technical execution of this agreement resides with Jeff Garzik, a former employee at RedHat, who created the above GitHub organization and forked (copied) Bitcoin Core around May 28th, 2017 so that he could make changes to accommodate the above agreement. The current work in progress resides in the segwit2x branch of the repository. People now colloquially refer to this alternative software as SegWit2X.

Barry Silbert, a venture capitalist who spearheaded the above agreement claims to have the support of many companies who will run the software as their primary bitcoin client starting at the end of July.

It is the opinion of this author that SegWit2X is not ready for general use and poses a substantial risk to the stability of the Bitcoin network, especially to those who run the software.

Virtually No Specs

Within the BTC1 organization on GitHub, there is a specifications repository This appears to be a knock-off of the bips repository that Bitcoin Core uses where-in people can submit new specifications for review and potential inclusion into the reference client.

The bips repository from Bitcoin Core has approximately 150 contributors and well over a thousand commits. There are 32 pull requests pending and the last update to the repository was on July 16th.

The specifications repository for BTC1 has only 3 commits and 1 contributor. There are 0 pull requests pending and the last update was on May 29th.

This means that anyone who runs SegWit2X will be running software that has virtually no specifications.

Limited Technical Resources

There are only approximately 5 people who have contributed any code to SegWit2X. Almost all of the code contributions have come from one individual, Jeff Garzik.

Bitcoin Core, on the other hand, has been run by the majority of users and businesses for several years as the de facto reference client and has approximately 450 contributors.

Opaque Code Review, Testing Plans and Release Processes

Generally, code changes should be tested by somebody other than the developer who wrote the code. This is especially important for large or high-risk changes. the changes is not straightforward. Also, it is useful to add testing plans alongside code changes if testing the changes are not straightforward.

It is unclear if anyone is reviewing Jeff Garzik’s code or executing test plans, he merges his own pull requests.

The release process consists of a Gitian signature by Jeff Garzik and two BitPay employees. Garzik also used to be a BitPay employee.

There doesn’t seem to be any other developers from any other companies who support the New York Agreement who are part of the release process.

No Localization / International Support

Bitcoin Core is localized so that it can be run and understood by non-English speakers in their own languages. On Transifex, there are currently 173 languages listed as being worked on in association with the Core project.

At this time, SegWit2X has no ongoing localization efforts or international support for its users. This means that changes to SegWit2X will not be translated into any languages besides English. People who do not speak English that were previously using Bitcoin Core that switch to SegWit2X would be on their own.

Questionable Time Commitments

Despite a substantial number of companies being cited via the New York Agreement as intending to replace Bitcoin Core and run SegWit2X, there does not appear to be any developer on the SegWit2X or BTC1 teams with a full time commitment to maintaining the software.

Jeff Garzik is the full-time CEO of a completely separate company which provides blockchain consulting services. Of the few other contributors, none have a large code contribution footprint.

Limited Documentation and Support

The README for SegWit2X that everyone is supposed to reference before running the software is still an exact copy of the README for Bitcoin Core - it was never updated.

This means all the companies that are supporting this endeavor will see a message to go to Bitcoin Core’s website, along with a download link to get Bitcoin Core from Bitcoin.org - two websites that do not support SegWit2X nor the few developers behind it, when the interact with the repository for SegWit2X.

There’s also no website for BTC1, and only a basic website for SegWit2X. This means that any interested contributors or users do not have much support on what exactly BTC1 is or what SegWit2X does from an official standpoint. The SegWit2X website isn’t even linked to from the SegWit2X repository - the repository links to Bitcoin Core, as well as the Bitcoin Core mailing list.

Summary

SegWit2X is not ready for general use. The current market capitalization of Bitcoin as of July 2017 is approximately 45 billion dollars.

Should what has been accomplished with Bitcoin over the past several years be wagered on BTC1 / SegWit2X software that’s only been around for approximately a month?

If the majority of all of the code contributions to BTC1 / SegWit2X software are made by one person, is it worth the gamble to place the weight of a 45 billion dollar economy on one person’s back?


Twitter Facebook Google+