Updated as of early July. As a background briefing, the original post still stands.
For some time it seemed rather academic or nerdy to think about Bitcoin scaling. Who cares whether Bitcoin will scale if it is only used by a few people for nefarious activities?
Now that one can buy Bitcoin at over 1,000 railway ticket booths that are now also Bitcoin ATMs in Switzerland (launched a week ago) the prospect of Bitcoin going mainstream no longer seems so much like science fiction. More and more countries (such as Japan) are also now regulating Bitcoin in a positive way.
Now the scaling challenge has to be dealt with head on. This post shines a light on some different approaches to that challenge.
TL:DR. The scaling challenge is real but with all the tech brains and money committed to solving it, Bitcoin will meet the scaling challenge so that it can go mainstream if consumers want it.
Fortunately, during a year when Bitcoin fell deep into the slough of despond, a few developers remained committed to Bitcoin and worked hard on scaling solutions.
Note: I wrote that in November 2016, it is clearly not in slough of despond now.
This post shines a light on some of that work. Tech risk alert, some of this is still at the bleeding edge stage.
Translating Tech for Fin and Fin for Tech is part of our mission at Daily Fintech. This post is the former. We want Bankers and Fintech entrepreneurs to understand the key technical issues related to Bitcoin and other public cryptocurrencies. For the Tech among you, this will be overview level suitable for a non-technical audience, please tell me if I have got anything wrong.
The scaling challenge defined
The scaling challenge is easy to define in comparison with Visa.
VISA handles on average around 2,000 TPS (Transactions Per Second) and has a peak capacity of around 56,000 TPS. Bitcoin handles an average less than 2 TPS and has a peak capacity around 7 TPS.
Of course all these transaction also have to be done reliably. Nobody will thank you if you handle 2,000 TPS but leave a lot of those transactions open to fraud. That is where you need to understand transaction malleability (we will explain some key terms later).
It also has to be done fast. Consumers expect digital transactions to be “human real time” (the time it takes for digits to go back and forth ie few seconds).
Massively scalable, totally reliable, fast and cheap. Nobody said that this would be easy!
Loose or tight coupling
The Bitcoin core is open source code that was first developed by an anonymous person (or persons) using the pseudonym Satoshi Nakamoto. It is now developed by a small team that is funded by donations from commercial organizations.
Changes to the Bitcoin core create a lot of acrimonious heat in the tech community. This went to such extremes that it has been likened to a civil war. You would witness these intense debates at events; entrepreneurs just wanting to get on with business were alienated.
Note; that was true in November 2016, by June 2017 it is 10x more so. The public shouting matches between proponents of SegWit and SegWit2x is like watch Red State Blue State political slanging matches in America. I guess decentralized governance is a new experiment being tested right now.
The reason for the acrimonious heat is that making a mistake has disastrous consequences and it is very hard not to make a mistake in a tightly coupled system and the consequences of a mistake when Bitcoin goes mainstream are huge.
In contrast, loosely coupled systems are more tolerant to failure because dependencies are isolated through well defined interfaces. The trend in software architecture is therefore towards loosely coupled systems. There is an ecosystem around Bitcoin that in aggregate is a loosely coupled system. It is that ecosystem – wallets, exchanges, payment processors etc – that consumers interact with. It is like the Internet; 99.999% of us don’t care about Internet plumbing unless it goes wrong.
So we see a direction in which a few smart changes in the Bitcoin core enable more transactions to happen through the ecosystem through well defined interfaces. How those interfaces work is critical.
One Cryptocurrency or many?
We now have three types of Cryptocurrency:
1. Private tokens used in Permissioned Blockchain systems. These are enterprise IT B2B systems and have no need for a public Cryptocurrency. Enterprise scale is easy compared to Internet scale; so we don’t see any tough scalability issues here.
2. Public but issued by a Government. These are more at the White Paper stage, but there are many initiatives, These are legal and convertible to the traditional Fiat currency. National scale is easier than global scale; so we don’t see any tough scalability issues here.
3. Public. Bitcoin is the most famous public cryptocurrency, the others are referred to as Altcoins. Some are issued through a private venture or foundation (that acts like a Central Bank). Some like Z Cash have a specific value proposition (anonymity in case of Z Cash); a good loosely coupled Bitcoin architecture may allow these features to be replicated in Bitcoin. Others, like Ether, are tokens used within a specific Blockchain (Ethereum in the case of Ether). All are easily traded for Bitcoin and all have their fan base (an Altcoin owner makes a profit if the use of that Altcoin grows and that increases the price of each coin/token so we see a lot of what Wall Streeters call “talking your book”). However Bitcoin is far bigger than all the Altcoins and the only one with significant consumer mindshare, so I expect this divergence between the market leader and the long tail to continue; from a scaling point of view, the one that matters is Bitcoin.
Note: Ethereum almost caught up market cap in what was being called the “flipping”. Interestingly one reason Eth price declined IMHO is concern about Ethereum scaling. All those ICOs tested Ethereum scalability and it was found wanting.
Some key terms to understand
As you read the tech literature a few terms come up that you need to understand.
Transaction Malleability. In short, fraud. In Bitcoin terms, can somebody change a transaction to steal money?
Bitcoin Block Size. This was the issue that created the civil war. Should it stay at 1MB or grow to enable more complex functionality?
MultiSig. Multiple Signatures. This is critical to fraud prevention. It means that more than one person is need to release a transaction (payment or other value exchange).
Often called SegWit.
What is it: keep signatures outside the Bitcoin block. Think of this like keeping signatures on a check outside the core transactional system (which only records that a signature was received and points to the system where evidence of that signature is stored). This becomes more important now that MultiSig means more signatures. This will be launched before the end of this year.
Note: technically it is ready. Adoption is the issue. Many times we have seen declarations that the Bitcoin civil war is over, but as I write it seems more like ceasefire with some undeclared sniping going on.
Who is behind it: this is a change done in Bitcoin core.
Note: SegWit2X was created by the opposing camp, called Bitcoin Unlimited. They have given up on plans to increase Bitcoin to 2MB. Sounds like SegWit won, it is just SegWit but better. No. This would be a fork. It is hard enough explaining Bitcoin to mainstream. I cannot imagine explaining two different Bitcoins. In my opinion, a Bitcoin hard fork may kill Bitcoin and would certainly crash the price well below $1,000.
What is it: a method of establishing payment channels on top of Bitcoin, creating an off-blockchain transaction layer that leverages Bitcoin’s security. It needs Segregated Witness
Who is behind it: This is a bit unclear. Some say it was Blockstream (a VC funded company in Montreal). The Lightning Network site has a lot about how it works, but not who is behind it. The question maybe academic as it is an open system specification that allows for commercial implementations.
Note: Ethereum is also working on similar technology called Raiden.
What is it: a commercial implementation of a Lightning Network.
Who is behind it: Bitfury is a VC backed company with HQ in San Francisco and an office in Amsterdam. They are best known as the developers of custom ASIC chips, printed circuit boards (PCB), servers and data centers used in mining operations; they also run some of the largest Bitcoin mining operations in the world in data centers in Iceland and the Republic of Georgia.
The testing challenge
How do you test something that does not exist yet? Bitcoin is not yet mainstream, so you cannot just launch and see if it works.
Nor is Lightning Network quite ready to go live. Segregated Witness is needed first.
Performance testing of Enterprise scale systems is hard and has a few specialist companies.
Performance testing of Internet scale systems is a lot harder.
Fortunately a French company called ACINQ has done some work in this area by testing the Flare implementation of the Lightning Network.
There is constant talk about Internet scaling challenges. The Internet looks like one of those systems that should not work in theory but works well in practice – meaning that the theory is wrong. Decentralized, loosely coupled systems are hard to understand but seem to work well. The Bitcoin Blockchain maybe the same.