Bitcoins Stagnation
I first discovered Bitcoin back in mid 2012. Around 2014 I lost interest primarily because of the block size debate that was on-going at the time (it had begun years before 2014). I could see the community fracturing so decided to leave it alone and let it all play out. 18–24 months later I decided to revisit Bitcoin as there had been an increase of articles in the news mentioning its recent price rises. To my wonder the block size debate had barely moved on and the hard coded 1MB block limit was still in place. I believe many still involved with Bitcoin are thinking with their heart rather than their head. They like to say everything is still rosy as they have dedicated their lives to the technology. This article is from the head which I think many in the community need to hear. Not all is doom and later I discuss why I am still optimistic about the technology and how a few individuals are trying to reverse the current stagnation.
I’ve decided to write this as to me Bitcoin has not progressed as it should have. Back in 2013 I used to tell all sorts of people about it, show them it, tell them how it was going to be used by everyone and change the world. Now in 2017 I wouldn’t bother. Rather then telling them to buy some (with the caveat “only put in what you can afford to loose”) I would now tell them to stay clear. Why this sudden change? For me the current block size is holding Bitcoin back.
There are reasons for keeping the block size at 1MB and there are reasons for increasing it. What I think is that on chain and off chain scaling should be occurring simultaneously. However many are capping the 1MB block size in my opinion for an artificial period of time. Some say Bitcoins best feature is its decentralisation, the common argument used for taking no action. If we raise the block size it may reduce miners profitability is another. Security may be compromised. All are usual talking points, however I will try to tackle many of these objections. In reality all take second place to the most important goal of Bitcoin, going mainstream. The whole point of Bitcoin is to be a global currency that everyone can use. I will explain why users are the most important goal of bitcoin and on chain transactions, the blockchain, is what will get more people involved in the ecosystem. By not allowing the block size to increase in line with technological advancements Bitcoin has become a stagnant technology.
Bitcoins Recent Price
The first thing I have noticed since re-entering the space is the community raving about the recent price rises. I would argue what price rises? Back in late 2013 the price was over $1,000. Its only just hit that price recently more than 3 years later and only for period of a few days. For a technology that should be growing at an exponential rate its price should have risen rapidly however the price shows how far Bitcoin has fallen. The fact that people live, breath and sleep Bitcoin and think the current price is good shows how disconnected they have become from reality and let me explain. There’s been a halving in 2016, India and China have had currency meltdowns with combined populations of around 2.5 Billion people and people think Bitcoins price of $1,000 is a success? Back in early 2012-13 the price rocketed from around $15 to well over $200 when the last halving occurred (halving was the backend of 2012) and when a small island called Cyprus had banking issues. Later that year it continued rising after mild interest from China and others to over $1,000. Some think getting back to that level after 3 years is a sign that Bitcoin is strong. I think people have lost sight of Bitcoins price potential, 3 years on it should have been at the very least hovering around the $5,000 mark, albeit it with lots of volatility. The fact that its struggling to stay at $1,000 confirms the fact that Bitcoin has not picked up any new users (in fact its been driving them away). Now Bitcoin may well gain some more value, it may rise in a linear fashion, possibly more with a financial crisis however in comparison if on chain transactions were allowed to scale this will be far short of its true exponential potential.
Why is price important? Bitcoin is a currency and its price signals its utility. Nothing did more to promote Bitcoin then when its price went from pennies to over $1,000 in the space of a few years. It brought in entrepreneurs and venture capital that made it easier to use, new wallet services which in turn brought in new users. All these factors are vital to grow an ecosystem which is needed in order to bootstrap Bitcoin. Once the majority of people use Bitcoin then everyone has a vested interest in making it succeed. 2016 saw a slow down in venture capital and businesses like Circle have turned their backs. Since revisiting Bitcoin I’ve seen no new innovations to make Bitcoin easier to use targeting to reach the average consumer. I remember when Circle came out with their wallet and thought it was brilliant; I could sell this to my parents. I know what the hardcore among us will say. Bitcoin is all about owning your own keys. In reality some people will use Bitcoin like this but to go mainstream most users are not going to want to handle their own keys they will want services like Circle making it easy to use. I’m a software developer, I store my funds with my own keys. But I completely get it that most people will not want to do that. The fact that people in Bitcoin are saying good riddance to Circle or saying Bitcoin is more resilient than one company are missing the point, indeed have become highly isolated in their gated community. People have lost the goal that Satoshi had of Bitcoin, that EVERYONE should be a user in the ecosystem. By driving such companies away they are moving back in time to 2011–2012.
Centralisation vs Decentralisation
One of the central arguments against increasing the Block Size is that it will lead to greater centralisation. Again I think people have lost sight of the overall picture and as someone that is more detached perhaps I can shed more light on this area. For years now mining has been centralised in a select number of pools long before we even hit the current 1MB block ceiling. Ever since the evolution from CPU, GPU then to ASIC mining, it has become more centralised and specialised and so it should. This romantic notion that miners should run on peoples laptops and be completely decentralised is nonsense. The current pool quasi-centralisation is not a bad thing (and by that I mean new pools can form and open as required if others are shut down). People mine with specific hardware whose sole purpose is to mine Bitcoin. All this equipment is not cheap and is practically useless for anything else. This means miners are even more incentivised to be honest on the network and ensure Bitcoin remains sound for as long as possible. For anyone to make an attack means spending millions of dollars on equipment for the right to change only the most recent transactions on the network while simultaneously risking crashing the price as Bitcoins trust model is compromised, thus they get no ROI for the initial outlay of all their equipment. Contrast this with the early days of CPU mining which is actually far more insecure, for example someone could mount an attack using general purpose computers. I could co-ordinate with a number of malicious users over the internet all with our own laptops to attack the network in tandem. In this situation the initial outlay is nothing except a bit of electricity. My point is the recent centralisation into a few pools has actually made the network more secure and robust to attack and all these alt-coins focusing on CPU mining algorithms are missing this key point. So how would increasing the block size centralise Bitcoin any more then what it already is? It wouldn’t, a few large pools would continue to operate, pools would come and go based on market forces. As Bitcoin Unlimited has proposed, if miners could set the block size then this would change in line with hardware limits.
What about Government censorship, with the current centralised pools its easier to shut down bitcoin? First of all this problem already exists with the current cap. Second Bitcoin is global and it would require some form of global government action which wouldn’t happen. Three, and this is the key point, if specialised ASIC mining pools were all shut down simultaneously then we would just revert back to home GPU mining. Using a model like Bitcoin Unlimited the block size would self adjust to home broadband levels.
The decentralised debate also misses the key point in Bitcoin. Just like how it operates now, it doesn’t need to be hugely decentralised. In fact it’s in Bitcoins interest to keep centralised mining in the hands of a few in order to scale the network and reach more people. Bitcoins strength is the fact it has the capability of decentralisation baked in from the start. If centralised mining pools can be compromised (just like now) then people boot up their laptops behind tor and Governments can’t do squat. Governments can’t shut down a single company because there is none. They can’t arrest a CEO because there isn’t one. Nodes can enter the network as needed in the most extreme case of censorship. Again we miss the larger picture. Bitcoins decentralised design is there in order to bootstrap the currency otherwise Governments would shut it down as they have in the past with prior centralised currencies. Once you get the user base and everyone is using it then you don’t need decentralisation as much, all you need is all actors working to the original protocol. Once everyone is using it then Governments will not be able to shut it down as people will derive so much utility from it that even Government officials will have their wealth tied up in it. Its the mere threat and the in-built feature of decentralisation that keeps the system robust from attack. Censorship is in fact easier now when no one is using Bitcoin. The best way to secure Bitcoin is to go mainstream, once jobs and everyone’s money is tied to it then it becomes politically a lot harder to get rid of.
Transaction Fees
There appears to be a worry that we need to already start thinking about how Bitcoin will run when the Block reward dies out. For one that isn’t going to happen in any of our lifetimes so we don’t have to worry about it for decades. Two, if Bitcoin is gaining in value then the money just from the block reward alone is more than enough to run a large scale network. The current theory is that because the blocks are full and people have to compete for space, thus driving up transaction fees, that this is giving extra money to the miners and is healthy. I would argue the opposite. As Bitcoin has stagnated this in turn has meant the price for a Bitcoin is far less then what it should be, as mentioned user adoption has stagnated even gone backwards for the past 3 years. This in turn has meant mining has not been able to grow as much as an industry. Smaller blocks are stopping Bitcoin from growing thus depriving miners from more funds as Bitcoins price is far below its true potential.
The more crucial point that is missed in the transaction fee debate is what if they are never needed or only need to be paid by premium users? I remember getting my first email account back in the 90’s. Back then you had to pay for email even though there was a cap of 1MB storage (for extra you could have 10MB, I remember thinking at the time who would need 10MB for their emails?). You could only use it on a single home computer and had to use specific software and everyone I knew except for one friend, didn’t have it. Now many of us don’t pay for email accounts and get GB’s of storage, never having to delete any of our emails. Back in the 90’s this would have been inconceivable at the time but somehow the market did the impossible and gave most us a free lunch (as markets do on a regular basis). The point I’m trying to make is once you have half the world using Bitcoin, including all the big banks and existing financial infrastructure then everyone has a vested interest in keeping the network going. Banks may run nodes just to keep their own business models going. Just like Google who give emails away for free, businesses may opt to do this with blockchain transactions making money on their premium services layered on top of the Blockchain. As for Bitcoins early adopter phase, transactions should be as close to zero as possible and miners will be able to earn lots of money from block rewards alone. By having zero fees, I can sell this to the skeptical 98% of people, the mainstream. Having dollar fees for trivial amounts, I can’t. Whilst we have scarce block space and for a more detailed discussion of why increasing the block size does not remove the transaction fee market see the following whitepaper by Peter Rizun.
An argument for the current direction of Bitcoin in avoiding increases to the block size and focusing on off chain transactions is if we just scale on chain then we don’t see innovation for off chain technologies. However the same could be said with the current direction. By preventing Bitcoin from gaining mainstream adoption and scaling on chain we are missing out on all the extra venture capital and entrepreneurs entering the space and coming up with novel ways to run the Blockchain for next to no costs. The blockchain is just a large file and is only GB’s in size. Companies are already scaling filesystems in not just terrabytes or petabytes but now to exabytes (they are even talking about zetabytes in the near future). We miss out on innovations to scale on chain transactions, Bitcoins true selling point. People could work on novel ways to prune the blockchain, compress it over time, ways to copy it, even distribute it more efficiently; indeed hardware and software would be improved to scale it. We miss a lot of innovation as on chain transactions are not been allowed to increase (later I will mention a group of people in Bitcoin Unlimited and other projects who are doing a lot of good work to scale on chain transactions).
The Blockchain is the Disruption
I’m completely puzzled by the current direction of development in Bitcoin Core. Their plan is to cap on chain transactions (as mentioned the very selling feature of Bitcoin) in favour for off chain transactions. This is before we have even tried to scale on chain and before Bitcoin has hit any form of adoption curve. Off chain transactions are exactly what the existing banking infrastructure does today. Many state that they don’t want Bitcoin to become a payment processor like paypal or visa, yet ironically by stopping on chain transactions and by opting first for off chain is exactly what they are doing to Bitcoin. The Blockchain is Bitcoins true innovation and attraction, instead we are leaving it to stagnate.
Some argue we need to come up with off scale solutions now as the Blockchain will have a limit. I absolutely agree but we don’t know what that limit is. Again if the Blockchain can go to to 4MB or 8MB then thats 4x — 8x growth. That’s more users, more venture capital, more businesses all discovering Bitcoin, driving the price up, creating more buzz, creating faster innovation and further improving the scaling of the network. Once we hit a block limit as dictated by current hardware capacity then we can use transactions fees to limit transactions and think about off chain transactions. Then we continue to innovate to fit more on chain.
Even before the current 1MB limit was hit, exchanges and wallets were already doing off chain transactions. If two customers of Coinbase transferred money to one another then Coinbase would ledger that on their own internal systems. Likewise if Bitcoin went mainstream then traditional banks could use their own ledgers. Users could then still have their own private Blockchain address that they would manage and ask the bank once a month to settle a percentage of their account back on chain, therefore using off chain transactions for day to day items. As we can’t scale Bitcoin on chain then how can I or others sell this to a normal person? If from the early adopter stage I mention this thing called a Blockchain when the direction is to move transaction off chain, how exactly is this different to what they do with their pay pal account today? Most people could not see the benefit.
Segwit and Lighting
To top it off and to add to the puzzlement two solutions are touted as the alternative to raising the block size but in my opinion are just classic over engineering. Segwit has been delayed for months, is a series of complicated changes that has effected pretty much the whole code base introducing complexity that in my view is not needed. The result is in effect a block size increase of 1.6 - 2MB (to add to it all it may not even get activated as quite a few people rightly have concerns over it). As a software developer I understand that complexity of software can add up very quickly. The whole point of Bitcoin is to handle monetary transactions and do that one job very well and as simple as possible so as to not risk bugs or cause extra costs in maintenance. Yet Segwit goes against that, it reminds me of software developers that I have worked with in the past. Instead of doing a simple change i.e. raising the block size limit they come up with an exotic, elaborate change that in fact causes more issues in the long run and ultimately doesn’t fix anything. Once we scaled to 100MB blocks and had hundreds of millions of users on the system something like segwit would have been worth pursuing but not at this stage in Bitcoins evolution. It doesn’t even solve the current scaling issues.
The other theoretical solution is the lightening network to carry out the off chain transactions. Two years ago it was an idea and by the looks of it, it still is (despite recent alpha announcements). The proposal is to have transactions in off chain transactions that will somehow be trusted. Again we go back to off chains being just like the old banking infrastructure today. These off chain payment channels still rely on broadcasting back to the Blockchain. If we already have congested blocks then how is Lightening even going to work? The transaction fees and intermittent nature will still be present as these channels will only scale so far and we would still need to figure out how to scale on chain. Lightening just seems like a complex theoretical model when in fact off chain should be simple. If we go back to my Coinbase example it can just be on a central database. Various payment providers keep track of their own ledgers, in fact this is what banks do today the technology is already there. Users could choose to have a Bitcoin account with say a mainstream bank like Barclays. Most of their transactions occur off chain on ledgers just like today. Then the user may demand once their balance reaches a certain point to automatically post a set amount to a private bitcoin address they own. They may choose just to use a bank to handle their bitcoin. Remember Bitcoin can meet everyone’s need. People can still use their paper wallets (I have a couple) but for 99.9% of people they will want a bank to manage their Bitcoin.
So not only is all the above both in my opinion unnecessary and complex but how the heck am I going to explain Bitcoin to others? It was hard enough when there was just the Blockchain with terms such as distributed consensus and miners and digital wallets (and I had to pray they didn’t ask what wallets were and if there were coins). Now I’ve got to explain these exotic off chain solutions on top of all that. To me its almost like people are working on ways to make Bitcoin more complicated and in the long run make it more unpopular.
P2P Payment Scaling Limitations
Some may accuse me of not covering the scaling limitations or that running a peer to peer computer system where all nodes in the architecture are essentially duplicating the work of one another is hard to scale. In traditional data centers requests are divided between a number of nodes all executing concurrently on different servers that are co-located. To scale you just add more nodes and ideally they scale in a linear fashion. Bitcoins P2P nature puts it at a disadvantage as all nodes must validate, process and broadcast their work to one another. The big problem Bitcoin faces is to broadcast blocks when they are confirmed by miners. However some in the community appear to have decided that due to this architecture that we can’t scale it at all without even trying first.
When someone says we can’t increase the block size from 1MB then ask them what size it should be? Is 1MB currently too large and puts at risk decentralisation? Maybe we should have had the limit set at 500KB (as we know Bitcoin was fine going past that limit and we would have lost out on gaining more users and acceptance). What about 2MB? Where is the mathematical proof for an optimum value? The block size should not be some hard coded arbitrary value it should be given to the miners in order to determine what the optimum value is they can tolerate and still be profitable.
There are developers and researchers who have set out to improve and scale the Blockchain using engineering and rigor. One such innovation proposed is Xthin block propagation. Rather than once a block has been discovered and broadcasting the whole block contents to all the nodes, it instead relies on the fact that many nodes already have many of the current latest transactions in their mem pool. Nodes in the network take this into account and broadcast only a subset of the block thus propagating messages far quicker in order to get the reward. When tested against the Great Firewall of China, the results are very impressive. Once a block has been discovered the miner then needs to validate it which can take a lot of processing time in which the node can no longer propagate further transactions. Xpress Validation is an attempt to solve this problem. Again it works on the premise that the node will have already validated existing transactions in its mem pool. So it re-uses this cached knowledge to only re-validate any new transactions that come in on the newly discovered block. Both of these are actually under test and contained in a forked Bitcoin client called Bitcoin Ultimate. There is also an interesting whitepaper proposal called sub-chains. Again the idea is to speed up the transaction verification process by essentially breaking blocks down into smaller sub-chains, it’s purpose is to increase block propagation to ensure quicker confirmations and reduce orphan blocks. The point is there are ways to scale Bitcoin we just need to use engineering to fix them.
Can we store all financial transactions?
There is a rationale that the Blockchain will never be able to scale to meet all transactions that people want to perform therefore we shouldn’t bother to scale it at all. Its quite the straw-man argument for a number of reasons. One, if we accept this premise then why didn’t we just stick to a limit of 500KB or 250KB? If it will never scale then why did we bother raising it in the past. And the answer is even if we could only scale it to 2MB or 3MB then why would we not do it? This helps bring more users onto the system, more interest and investment and so on. Can you imagine if pay pal had this attitude? In their early days they may have had a maximum limit of 5 transactions per second and decided that their product would be so widely used that there was no point in scaling it as they would never be able to keep up with future demand. Of course this didn’t happen at some point saturation hits in and with pay pal I don’t have the exact figures but I believe its around 45–50 tps today and they were able to scale to meet this point. Even with Bitcoin if it does reach full market saturation one day, for the 7 billion people around the world there will be a drop off point. We can only make so many transactions, we have to sleep, eat, we do other things in our lives then just make financial transactions. Lets say for example that Bitcoin only ever gets 100,000 tps and after that never gains any more due to market saturation and people using other platforms (for example off chain transaction may be far more cheaper thus take the micro-transaction market). We may not hit those figures for 20 years and over this period there would be a gradual increase in transactions.
Currently with 1MB blocks Bitcoin can deal with 3 tps so every 10 minutes on average it can process 1,800 transactions. Very basic calculations would mean that 100,000 transactions would require 55 MB/s connection, actually faster in order to keep up with lag, multiple nodes and so on. That may seem like an unattainable number however already on domestic connections here in the UK they can handle 200Mbs which is 25MB/s (for £40 a month). Commercial connections exceed that. 20 years ago the fastest domestic connection you could get was around 128Kbs. Today its over 1000 times faster. In another 20 years domestic connections could be 200Gbs, 25GB/s far more than required for the 100,000 tps. If that seems unbelievable than 20 years ago 200Mbs was not being dreamed of. I remember hearing about commercial lines running at 1Mbs which I thought you would never need faster than that. With more data streaming through the internet all the time, speeds will keep getting faster. The global population is not increasing at exponential rates meanwhile as the years go on technology continues advancing at exponential rates. If people can only ever make so many financial transactions in their day to day lives but technology keeps advancing at exponential rates then won’t those lines cross and technology will surpass our Blockchain transaction requirements? In 50 or 100 years time can we imagine how much bandwidth will be available? Over time the only real technological limiting factor is the speed of light. Along with further investigation in how to make Blockchains more efficient who knows how far we can scale it? We will only know when we start trying. As mentioned mining will become more and more professional so scaling will get ever more attainable. Allowing scaling on chain is a critical path to take in order for these innovations to take place.
Bitcoin Codebase
The current core developers have their own reasons for making their current decisions. However I find if quite odd that they have become more conservative then the current banking system in terms of innovation as the block size limit is holding this back. With my bricks and mortar bank I’ve since got a contact-less bank card and more internet banking services making it easier to use yet Bitcoin has progressed very little in terms of usability, if at all (thus widening the gulf). I am a Java Software developer by trade (I also use a wide variety of other languages and technologies) however I’m not a C++ developer or a cryptographic expert so can’t fully comment on Bitcoins code but similar principles apply. After having a quick glance over the Bitcoin code I think core are being quite manipulative by giving the impression that no one else can read or maintain it. I work for a commercial company and have to work with millions of lines of Java, Python, Nodejs, Ansible, Javascript and Groovy lines of code (to name just a few languages). I decided to pull the Bitcoin code from github into my Intellij IDE and did a statistical analysis of it. As of writing there was around 393,000 lines, of which some files were README’s etc. I then went to some of the projects I deal with in my day job. A recent AWS microservices project that a few of us started on the side last year already contains over 100,000 lines. Our legacy microservices has over 2.5 million lines of code. One of our tomcat applications (of which we have several) has over 500,000 lines of code, that one alone beats Bitcoin. Our team consists of around 12 full time members. Now I’m not saying lines of code is the be all, Bitcoins peer to peer network is very complex and I can imagine very hard to write reliable code for, nor am I saying that I’m a rock star developer however there are thousands of talented software developers out there who have to work with code bases that are millions of lines in total and quite often they didn’t write the original code. As Andrew Stone one of Bitcoin Unlimited developers put it in a recent post, Bitcoin developers are not Gods. Core at the end of the day did not even write the original code base and inherited it from Satoshi. Many in the Bitcoin community have had the wool pulled over their eyes as they are not Software Developers thus blindly believed Core in everything they have said regarding the block size debate and have even praised them, blindly following them like some sort of deity. At the end of the day Bitcoin is just a code base.
Blockstream Controversy
There have been a number of theories and even conspiracy theories linked to the Bitcoin company Blockstream where a number of its developers are involved in Bitcoin core. All I will say is there is quite clearly a conflict of interest. Blockstream have received millions of dollars in investment where their business model is to make money from off chain transactions. This is quite clearly a conflict of interest and have avoided scaling on chain. It’s odd that many early adopters of Bitcoin ignore this conflict and quite readily submit to their authority. These are the same people who bemoan the Federal Reserve or other privileged financial institutions yet can not see the contradiction in their current views towards Bitcoin Core, who have become the Federal Reserve in Crypto Currencies.
Why I got into Bitcoin
I like many others got into Bitcoin because of the Blockchain. I didn’t go out and buy some back in 2012 because I thought it was safe. I put skin in the game to take risks and like many others because I want to help change the world. I told people about it, gave them wallets, showed them what it did and how it was going to evolve. Back then I didn’t sign up for a tiny Blockchain where it will become so expensive to use that only large corporations will be able to afford to use it and the rest of us would work off chain. Why, because that’s called the existing banking system, the very system Satoshi wanted to disrupt, not replicate. If we scale blocks and break bitcoin then so be it. I like many others would loose money but at least we tried something different, we tried to change the world rather than copy existing systems. We would then at least know that Bitcoin was a nice experiment that’s probably not going to supplant gold and the traditional banking system instead remain as a niche service.
Multiple Options is Bitcoins Destiny
Bitcoins very design is decentralised in nature yet the community can’t agree on the block size to use and the decision of this is currently centralised in the hands of a few developers. That is not right and needs to change. To adhere to Bitcoins philosophy there needs to be a fork or an alt-coin or an alternative Bitcoin Client in order to resolve the current dispute. I believe an alternative client will either force core to scale the block size or another client will take market share. Bitcoin Unlimited may do that. It certainly makes sense to allow the miners i.e. market forces to determine what block size can be supported based on hardware constraints. I hope they succeed but even if they don’t there will be other attempts to challenge the current direction of Bitcoins development.
Despite all that I have written I still remain optimistic about Bitcoin. I believe that there is a growing discontent over the current artificial block size limit and that more and more people are going to realise this over time. Bitcoin was started by one person so all it takes is one person to start another movement and the market will choose what best serves consumers. Eventually market forces will play out and the block size will increase and we will see all the magic come back into the community once more. The price will go parabolic, billions of venture capital money will pour in and some of the brightest minds will once again enter the space. I really like what the Bitcoin Unlimited developers/community are doing and I think they are doing invaluable work for the ecosystem. Its good to know there are other people out there who understand where Bitcoin needs to go and it has kept me optimistic about the future of the technology.
I remember when Mike Hearn said “Bitcoin is Dead” many dismissed it as another one of those doomsday predictions we are all so familiar with. However I could understand the sentiment at the time and from such a prominent member of the community I don’t think Mike Hearn really thought it was dead per se he was probably like me, frustrated at the direction and knew if Bitcoin was not allowed to scale it would never enter the mainstream thus would either be a failure or stay as a niche product. It was more like a parting shot to indicate until the block size is raised Bitcoin is going no where. Like me, I bet he still believes in Bitcoin. Only time will tell when other people start to realise that on chain transactions must be scaled.
If you have managed to get to this point you may be interested that I also have blog here