Friday, September 29, 2017

The Bitcoin apocalypse is coming in mid-November to a block chain near you

[UPDATE: This post was originally said that the SegWit2X fork will happen on November 1.  In fact it is scheduled to occur on block 494,764 .  It is impossible to predict exactly when this will happen, but at current hash rates it will probably be some time in mid-to-late November.  The post has been edited to reflect this.]

[UPDATE2: Chaos has been averted.  The Segwit2x faction blinked.]

Back in 2004 someone launched a web site called FuckedGoogle.com dedicated entirely to predicting the imminent demise of what is now the world's second biggest company by market capitalization.  Needless to say, that site is no longer around (though the URL is still in use by a Japanese site) but you can go back and revel in the schadenfreude of one of the worst predictions ever made courtesy of the Internet Archive.

I mention this because I want you to know, dear reader, that I am fully cognizant of the perils of making bearish predictions about new technology.  But, to quote another well-worn and wholly unreliable aphorism, this time it's different.  It really is.

Some time in mid-November, barring some truly miraculous reconciliation, a group of Bitcoin companies are going to launch a new version of the Bitcoin protocol that will split the block chain into two parts.  This has been a topic of much debate and hand-wringing within the Bitcoin community for the last several months, but has been largely ignored by the rest of the tech world because this is not the first time this has happened.  The bitcoin chain has been hard-forked at least five times, most recently last August when Bitcoin Cash (BCC) launched, an event that was preceded by a great deal of wailing and gnashing of teeth.  Like FuckedGoogle (and, I might add at this point, the apocalyptic prognostications prior to December 31, 1999) the naysayers were proven resoundingly wrong.  Since BCC launched, the value of both chains has risen dramatically, at least when measured in US dollars.

But, as they say, this time it's different.

The new split, scheduled to take place in mid-November, is called SegWit2X.  The SegWit part, which stands for Segregated Witness, refers to a new way of specifying transactions within a Bitcoin block to allow more transactions to fit within a single block, thus increasing the capacity of the network.  SegWit is already up and running, having launched on August 24.  The launch was so smooth that no one outside the Bitcoin community even noticed.

But the 2X part will almost certainly not be so smooth.  To understand why requires getting a bit into the weeds of both the technology and the politics of Bitcoin.  But the TL;DR is that the 2X fork is going to launch with an intentionally omitted feature that all previous forks have had, called replay protection.  Without replay protection, the blockchain will not divide itself cleanly into two chains the way all previous hard-forks have.  Instead, it will be a fight to the death between the 2X chain and the original chain, from which only one victor can emerge.  So there are three possibilities: either 2X will win, or the original blockchain will win, or Bitcoin will descend into chaos from which it will likely not recover.  The chances of the third outcome are high enough that if you own Bitcoin in any significant amounts it would behoove you to take it very seriously.

So I'm now going to try to explain some of the details, but I want to preface this with some very strong disclaimers.  First, I am not an expert in Bitcoin.  I have a pretty good grasp on the underlying technology, but there's a lot more to Bitcoin than just technology.  Bitcoin is a new way of conducting human affairs, fundamentally different in deep and interesting ways from anything that humanity has ever tried before.  As such, it involves politics and psychology as much as it does technology.  I am an interested observer of Bitcoin, and I'm rooting for it to succeed (because I think the world will be a better place if it does) but I am not an active participant.  I don't own any Bitcoin.  I am not invested in any Bitcoin companies.  This is partly out of general laziness and risk aversion, but partly because I believe that the Bitcoin experiment has some fundamental structural flaws, and the present situation is one of them.  I wanted to be up-front about all that because some of what I am about to say is necessarily biased, and I believe that the best countermeasure to bias is full disclosure.  Some of what I am about to say is fact and some is my opinion, and I myself am not quite sure where the boundary is.  To wit:

One of the reasons that the SegWit2X issue is both seemingly intractable and difficult to explain is that it is rooted in a fundamental difference of opinion about what Bitcoin is, or at least what it should be.  On one side are those who believe that Bitcoin is (or should be) money, currency, a medium of exchange, a competitor to the U.S. dollar and the Euro.  On the other side are those who believe that it is a commodity, a store of value, more similar to gold (or oil or pork bellies) than to shekels.

The reason this is not just an academic debate is that the design requirements on currencies and commodities are different.  Currencies provide liquidity and short-term price stability.  The reason people agree to accept salaries of more-or-less fixed amounts paid in U.S. dollars is because they have confidence that in the time that passes between when they agree to work for $X and when they go to spend that money it will be reliably and conveniently exchangeable for a particular number of gallons of milk or gasoline, and that the exchange rate between dollars and milk won't change very much, at least in the short term (weeks to months).  Commodities, on the other hand, have some intrinsic value against with the value of currencies are measured.  A gallon of milk has value not only because you can sell it for money, but also because you can drink it or make cheese out of it.  In general, the value of commodities is closely tied to their intrinsic value coupled to the law of supply and demand, but there are some exceptions.  Gold, for example, is priced far above its intrinsic value.  There are vast stores of gold in the world sitting in vaults for which people are willing to pay very good money despite -- indeed because of -- the absolute certainty that nothing useful will ever be done with it.

Why are people willing to overpay so much for gold?  It's because gold is reliably scarce.  The world's supply of gold is limited by physics, and so the price of gold can be relied on not to drop in response to a suddenly overabundant supply.  Because of this, gold serves as a reliable hedge against currency inflation, and that provides value over and above the fact that you can use gold to make jewelry and microchips.  The vast majority of the value of gold can be ascribed to the fact that its supply is limited and (mostly) not subject to the vagaries of government fiat or the weather.  There are other commodities with this property (platinum, silver, land).  Gold is not special in this regard.  It just happens to be the thing that is used for this purpose more than the alternatives because of history and social fashion.

One of Bitcoin's central value propositions is that it is reliably scarce just like gold is.  The total number of Bitcoins is capped at 21 million, an arbitrary number that Satoshi Nakamoto pulled out of his hat.  This limit is enforced not by physics, but by mathematics.  The Bitcoin algorithm has this number hard-coded into it, and that is what is supposed to guarantee that the supply is limited, or at least not subject to the whims of a small cabal.

As a competitor to gold, then, Bitcoin has a number of attractive features.  The problem with gold as a store of value is that it's actually physical stuff.  It's heavy, so it's difficult to move around, and it can be stolen.  Bitcoin is "pure scarcity", almost completely divorced from the physical world.  The control of a Bitcoin wallet boils down to the knowledge of a few hundred bits of data, the secret key, which you can write down on a piece of paper and put in your pocket (or, more commonly, store in a specialized electronic device, which also fits in your pocket).  You don't need an armored truck to move Bitcoins, all you need is an internet connection.  As a value proposition, Bitcoin-as-commodity is quite compelling, and it is the reason that the Bitcoin market cap is approaching 100 billion dollars.

But there is another school of thought, which is that Bitcoin is (or should be) a currency rather than a commodity, primarily a medium of exchange rather than a store of value.  These are the folks who want you to be able to buy a cup of coffee at Starbucks with Bitcoins.

The technical demands on a currency are very different from those of a commodity.  Currencies have to be a lot more efficient than commodities.  This is the reason that civilization switched from barter to currency in the first place: settling transactions is a lot faster and cheaper with a currency.  Small retail transactions in particular have to be very fast and efficient in order to be competitive.  You don't want to have to pay a $10 transaction fee on a $5 purchase, and you don't want to have to wait hours for transactions to settle.

Unfortunately the design of Bitcoin has some limitations that mitigate its usefulness as a currency.  In particular, the rate at which transactions can be processed is limited.  A new block can be mined only about every ten minutes or so, and the size of the block is also limited.  Thus Bitcoin has a hard limit not only on its supply, but also on the rate at which transactions can be processed.  And that limit is currently much, much too low for Bitcoin to be a practical alternative to fiat currency.

This problem has been recognized by the Bitcoin community for a very long time.  The problem is that making any changes to Bitcoin is really, really hard, and this too is by design.  At root, Bitcoin is a process for achieving distributed consensus, in particular, a consensus about who owns what.  But before you can use this process you have to achieve consensus about the process itself.  And you can't use the blockchain to achieve that consensus.  The whole thing can only be bootstrapped by the messy process of politics and human interaction.  That is one of the reasons that it is remarkable that Bitcoin has gotten as far as it has.

Note that it is not actually necessary for everyone to agree in order to make progress.  The myriad alt-coins out there are a result of groups of people disagreeing with some aspect of Bitcoin's design and launching alternatives.  All of this is the free market operating as it should.  It works because the lines between Bitcoin and alt-coins are clear.  There is a Bitcoin blockchain and there is an Ethereum blockchain and there is a Litecoin blockchain, each with its own community of miners, and they don't interfere with each other.  And the reason that they don't interfere with each other is that they are designed in such a way that a transaction on one chain is only valid on that chain and cannot be replayed into any other chain.  That is what "replay protection" does: it cleanly separates one chain from another by formatting all transactions in such a way that they are only valid on one chain or the other.

All that is going to change in November.

The seeds of the impending crisis were planted last August when some members of the Bitcoin community endorsed a plan called the New York Agreement (NYA) for increasing the capacity of the Bitcoin blockchain.  The NYA was a two-step plan.  The first step was to rearrange how data inside a block was represented so that more transactions could fit in a block (this is the "segregated witness" or SegWit scheme mentioned earlier).  The second step was to double the size of a block.  That is the 2X part of SegWit2X.

All this sounds perfectly reasonable and innocuous, and the first step -- adopting SegWit -- went off without a hitch in August.  One of the reasons it went off without a hitch is that SegWit is a backwards-compatible change so it didn't require updates to Bitcoin wallets.  Retail Bitcoin users were therefore mostly unaware that this change was even happening.

But 2X is different.  It is not a backwards-compatible change.  A block that is too large is invalid under the current rules, and so current code will reject such blocks.  In order to maintain consensus after the adoption of 2X, everyone has to update their code, otherwise consensus will diverge.  There will be one chain that includes 2X blocks, and another chain with doesn't, and no obvious way to tell which is the One True Chain.

In the past month or two there have been frantic attempts by prominent members of the Bitcoin community to convince 2X advocates to add replay protection, thus making a clean break between the 2X chain and the original chain, the same way that the Bitcoin Cash fork did.  The 2X advocates have refused, citing the NYA, and secure (at least apparently) in their belief that enough people will update their code that there will be no doubt that 2X is the One True Chain.  The anti-2Xers (or, if you prefer, the pro-replay-protectioners) counter that if the 2Xers are wrong it could completely destroy faith in Bitcoin.  It's a game of chicken with literally billions of dollars on the line.

The irony here is that everyone agrees that the capacity of the Blockchain needs to be increased.  The disagreement is over when and how.  The 2Xers argue that Bitcoin is already straining under the current demand, something needs to be done sooner rather than later, and reneging on the NYA would be a betrayal that would cause more problems than it solves.  The anti-2Xers argue that the NYA should not be binding because it was negotiated behind closed doors, and that a change of this magnitude needs to be more carefully considered before it is adopted.

The elephant in the room is what many see as Bitcoin's core value proposition, the supply limit of 21 million coins.  This limit is often advertised as being inviolable because it is mathematically enforced, but that is only true as long as everyone is running the code that enforces that limit.  The 21-million coin limit is enforced by exactly the same mechanism that currently enforces the block size limit.  If the one can change, so can the other.  So far that argument has not seemed to dissuade the 2X advocates from proceeding.

As I said, I don't have a dog in this fight so I don't have a personal preference which side wins.  I do hope that one side or the other wins because the only other alternative is chaos, and probably the end of the whole Bitcoin experiment.  I think that would be a tragedy.

All this is going to play out one way or another some time in mid-November.  Just thought you'd like to know.

Monday, September 04, 2017

Supporting Robert E. Lee is no longer an acceptable position

I am a German Jew, a descendant of holocaust survivors.  I am also a Southern boy, having spent my formative years from age 5 through 24 in Kentucky, Tennessee, and Virginia.  I tell you this to provide some perspective on what I am about to say: Robert E. Lee had many fine qualities.  So did Adolf Hitler.

Bear with me.

In the aftermath of World War I, the Allies were determined that Germany should never rise again.  So they forced her to disarm, and to accept a harsh regimen of reparations which she didn't have the means to pay.  The result was historic hyperinflation in the early 1920s.  (To this day Germany has a mortal fear of inflation, which is one of the reasons that Euro monetary policy is as tight as it is.)

The value of the Mark had stabilized by the mid-1920s, but not before it wiped out the savings of ordinary Germans and decimated her economy.  Then in 1929 the Great Depression hit.  By 1933 Germany had been hurting badly for nearly 20 years.  Hitler rose to power on a simple, straightforward promise: I will fix this.  (All we have to do is expel the Muslims Jews!)  And Hitler did fix it, in no small measure because he had the brass to tell the allies to take their disarmament treaty and stuff it.  In ten short years, Germany once again became not only prosperous, but the pre-eminent economic and military power in Europe.

But none of that matters, because all of Hitlers achievements and positive qualities are rightly overshadowed by two overarching facts: first, he presided over the holocaust, and second, he decided to invade Russia.  Had he not made that second mistake, Hitler would be remembered very differently today.  Germany likely would have won WWII, and Hitler's history would have been written by happy, prosperous, victorious Germans rather than Jews and Americans.

And all this is as it should be.  It is good and right that Hitler is remembered as the very embodiment of evil, notwithstanding that he rescued the German economy and  loved animals.

For Robert E. Lee things went rather differently.  Like Hitler, he too lost his war, but unlike Hitler his was a civil war, and he was the beneficiary of an extraordinary stroke of luck: just days before the American civil war ended, Abraham Lincoln was assassinated.  He was succeeded by Andrew Johnson, a Democrat (Lincoln founded the Republican party) and a southerner from Tennessee who was sympathetic to the South.  Johnson oversaw the first four years of the reconstruction process, and helped lay the foundations for 100 years of Jim Crow laws.

Time and the vagaries of politics have blunted the memory of what Robert E. Lee and the Confederates really fought for: Slavery.  You will hear people rationalize secession as being about honorable causes like freedom and states rights, but the truth is it was about slavery.  Don't take my word for it: read what the seceding states had to say about it:
The people of Georgia having dissolved their political connection with the Government of the United States of America, present to their confederates and the world the causes which have led to the separation. For the last ten years we have had numerous and serious causes of complaint against our non-slave-holding confederate States with reference to the subject of African slavery.
...
With these principles on their banners and these utterances on their lips the majority of the people of the North demand that we shall receive them as our rulers. The prohibition of slavery in the Territories is the cardinal principle of this organization. ... We refuse to submit to that judgment...
...
Our position is thoroughly identified with the institution of slavery -- the greatest material interest of the world. Its labor supplies the product which constitutes by far the largest and most important portions of commerce of the earth. These products are peculiar to the climate verging on the tropical regions, and by an imperious law of nature, none but the black race can bear exposure to the tropical sun.
It goes on and on.  Really, you should follow the link and read the whole thing.  It's quite an eye-opener, and it leaves no room for doubt: Robert E. Lee and the Confederate states were fighting to preserve chattel "negro slavery", to use the phrase that the Confederate constitution used to enshrine it as a fundamental right.  The right of white people to own black people as property, to buy and sell and bind and rape and whip and even kill as they pleased.  (Well, you could kill your own slaves.  Killing someone else's slaves was punished as destruction of property!)  There are more laws on the books today protecting animals from cruelty than there were in the antebellum South protecting slaves.

This is the Southern heritage that Robert E. Lee and the confederate battle flag stand for.  There is nothing the least bit honorable about it.  It is every bit as thoroughly and irredeemably shameful as the heritage of Nazi Germany, and the only reason one is remembered fondly and the other is not is two accidents of history, one fortunate, one not so much.

After 152 years it is time to wake up.  No more excuses.  The Declaration of Causes, along with the rest of the South's sordid history is available on line for anyone to read.  The South fought to preserve slavery.  Robert E. Lee fought to preserve slavery.  Not mint juleps.  Not hoop skirts.  Slavery.  Chattel slavery of black people by white people.

I say this to you as a Southerner, because I am a Southerner.  I love the South.  I grew up in Tennessee.  I know all the words to Rocky Top.  Firefox was a book to me long before it was a web browser.  The South is full of natural beauty and cultural richness and good-hearted people.

But there is no honor in the Confederacy.  And there never was.

---

Postscript: I want to give a shout-out to Doug Baldwin who wrote his own essay on the same topic two years ago.  Unfortunately, the original essay seems to be gone, but the excerpts in the CBS Sports story were a big factor in motivating me to write this piece.

BTW, Doug Baldwin is a really impressive dude.  Not only is he a professional football player, he has a B.S. from Stanford.  And he is apparently an exceptionally talented writer.  Props to you, Doug.