Hard vs soft fork: is there a third way to increase the Bitcoin block size?

The “blocksize debate” is currently a hugely contentious issue within the Bitcoin community.

Simply put, the blocksize limit is a cap on how many transactions can take place every 10 minutes and is currently limited to as many as will squeeze in a 1MB block.

There is an entirely different debate about how much or even whether this limit needs raising, but here I will solely be doing my best to explain one of the ways a future block size increase could be achieved.

To begin with, I need to explain the difference between a hard and soft fork.

It relates to backwards compatibility. Imagine you and many others are playing an online game where you all roam around a virtual world together collecting flowers to score points. You’re all trying to achieve a high score.

Mushrooms. Photo Copyright RoyaltyFreeImages.netOne day, the game releases an update, and adds mushrooms to this world. Just like flowers, the mushrooms can also be collected to score points.

How this upgrade is implemented can be compared to a soft fork and a hard fork.


If the upgraded version of the software is not compatible with the old version, you have a hard fork. In this situation, anybody who updates their software will be in a new world, we’ll call it mushroom land, and anybody who has the old software will be in flower land. The people in mushroom land know they arrived there through an update. Back in flower land, people may wonder where all the other players disappeared to, but will continue to continue playing amongst themselves, not realising that everybody else is playing an updated version of the game, and that the high scores they’ve worked so hard to achieve will be lost when they eventually realise that they need to upgrade to mushroom land.

If the upgraded software has backwards compatibility with the old version, you have yourself a soft fork. In this situation, maybe people with the upgrade can see mushrooms, but to those who haven’t, the new mushrooms just look like more flowers. Crucially, people with the old software can still play with those who have upgraded, and even though the world looks a little different – ultimately everybody is still playing the same game.

So is there a third way?

Maybe there is. Let’s imagine that for technical reasons there is no way mushrooms can be introduced, even as flowers, without a software upgrade. Perhaps though, all players can participate in the same virtual world, except that those with the upgrade can also see mushrooms, while those without cannot. Crucially, people are not playing a completely different game, and when someone in flower land does upgrade they can take their score with them, and start collecting mushrooms without losing out.

How can this be achieved in Bitcoin?

Instead of just losing points, a worst case scenario for a Bitcoin hard fork would be people losing money. Whatever happens, there must always be a block produced with 1MB or fewer transactions, otherwise Bitcoin will hard fork as old software will not recognise the new block.

So how do we prevent anybody losing money? We create a mushroom block. This mushroom block can be larger than 1MB. The existing 1MB block remains in place as a legacy block. Transactions that make it into the legacy block can be viewed by everybody on the network, those in the mushroom block can only be seen by those who have upgraded.

Once any Bitcoin has made its way into a mushroom block, it can not be viewed or spent again by software that has not been upgraded. This isn’t quite a hard fork though as people on the old software will still be participating in the same network, they just won’t be able to see all the transactions that are actually taking place. If they try and spend Bitcoin that appears to be theirs on the old software, but actually has been spent on a mushroom block and belongs to someone else, all that will happen is that the miners will reject the transaction and they will not be able to spend it.

Ultimately, this is not ideal, and while it would no doubt create confusion, it would not create a complete hard fork and should not lead to anybody losing Bitcoin.

The only people who would actually need to upgrade for this to take place would be the miners. Technically speaking, they could have already done this and none of us would know. Since mining is far more centralised and dominated by a smaller group with a huge financial stakes, it is likely that such an upgrade could be achieved rapidly, once the software is ready of course. For everyone who hasn’t upgraded, Bitcoin would just become increasingly less useful until they did so.

There are a few ways this type of upgrade could be implemented. In its harshest form, the 1MB block could be mined empty with all transactions occurring on the mushroom block. You would think people would start to upgrade pretty quickly as this would basically be a forced upgrade as their software would be useless to them. More reasonably, transactions generated by older software, and with the highest fees should be included in the smaller block, while those who have upgraded could be rewarded with lower fees having their transaction included in the upgraded network where there is more capacity.

When or how a block size limit will increase remains to be seen, but here is a very simplistic explanation of one way it could be achieved. There are no doubt many technical obstacles and reasons why this concept may not be viable, but I wanted to at least try and explain the principle, I hope you’ve found it helpful.

For a far more technical explanation, credit to ZoomT, head over to BitcoinTalk.

I’ve recently started blogging about Bitcoin. If you liked this article please check out my others. Any questions or suggestions, let me know in the comments. Tips welcome: 1H2zNWjxkaVeeE3yX6uVqng5Qoi6gGvYTE

How things change! A look at modern hardware on early Bitcoin

On 3rd January 2009, the first Bitcoins were mined.

Mining is the process where computer hardware searches for a solution to a mathematical problem. This helps to secure the network and the first miner to solve each problem is rewarded with Bitcoins.

A difficulty level is set which should result in one problem being solved (a block being mined) every 10 minutes on average.

Back in the early days, mining took place on CPUs, and the first miner was Satoshi Nakamoto who likely had a a number of computers dedicated to the task.

While currently at 103,880,340,815, the mining difficulty began at 1. Without the vast infrastructure that now supports the network, things were a lot more unpredictable. Despite starting so low, this was still too challenging for the hardware on the new network to achieve its 10 minute target and a problem was solved roughly every 17 minutes.

In November, I bought an Antminer U3 for $29 which can perform 63GHs. This uses a specialised ASIC chip instead of a more general use CPU and means it can attempt to solve the problem 63,000,000,000 times per second.

That sounds like a lot, but is actually pathetically small. Currently there is 786,979,397GHs of total processing power on the network. Multiplying this by 600 tells us how many times the lottery must be entered on average before a winner is found. If your brain can handle this many numbers, every 10 minutes there are 472,187,638,200,000,000,000 attempts to solve the problem and only one is successful. For perspective, if the network didn’t get any more difficult, it would take me on average 224 years to solve this problem alone with my device.

So what would have happened if I had been able to harness this $29 worth of power on the network in 2009, with a difficulty of 1? The reward back then was 50 Bitcoins.

  • Instead of taking 224 years to solve a block, it would take 0.07 seconds.
  • It would have taken just over 2 minutes (137 seconds) to solve the first 2016 blocks instead of the targeted 2 weeks.
  • After those 2016 blocks the difficulty would recalibrate itself and take an average of 10 minutes to solve each block, but I would win every single block for the foreseeable future.

Of course, if this happened, the Bitcoins would be completely worthless, but at their current value of $430 how much would I have mined?

In January 2009, my $29 (in 2015) device would have mined $41.6 million dollars of Bitcoin in little over 2 minutes. Not bad.

To mine the same quantity of Bitcoins starting now, if difficulty stayed the same, would take 903,168 years. Ouch.

I’ve recently started blogging about Bitcoin. If you liked this article please check out my others! Any questions or suggestions, let me know in the comments. Tips welcome: 1H2zNWjxkaVeeE3yX6uVqng5Qoi6gGvYTE

Explain Bitcoin in 100 words challenge. Here’s my effort

Bitcoin is a complex beast, and if you’re like me, you’ll often tie yourself up in knots trying to explain it.

So I decided to set myself a challenge, to best explain the basics of Bitcoin in 100 words or fewer. Here’s my effort:

Alan has $1000 and wants to pay Barbara $500.

Currently the bank updates Alan’s balance in their database to $500, and Barbara’s to $500. We must trust the bank to be honest.

In Bitcoin, Alan writes a note saying he wants to pay Barbara $500 and sends it to everyone.

Everybody also keeps a copy of every single valid note that has ever been written (the blockchain).

Everybody checks through their old notes to make sure Alan has $500 to send, and if he does they add his note to their collection.

For privacy and uniqueness, Alan calls himself 1H2zNWjxkaVeeE3yX6uVqng5Qoi6gGvYTE.

What do you think? Feel free to have a go yourself in the comments, maybe we can crowd source an elegant way to effectively explain Bitcoin. I may try and explain a few other concepts around Bitcoin in 100 words or fewer, so look out for those.

I’ve recently started blogging about Bitcoin. If you liked this article please check out my others! Tips welcome: 1H2zNWjxkaVeeE3yX6uVqng5Qoi6gGvYTE



How to trade Bitcoin for beginners (Hint: you’re probably doing it wrong)

Bitcoin chartSo, you’re thinking about or recently bought your first Bitcoins? One thing is for certain, there is no other investment quite like it.

To get you started, here are a few tips I have picked up over the last 4 years:

1) DO NOT buy more Bitcoins than you can afford to lose.
2) DO NOT get too excited when the price jumps up.
3) DO NOT worry when the price drops down.
4) DO NOT keep waiting for the ‘perfect’ time to trade – it will never arrive.
5) DO NOT think of Bitcoin as ‘pretend’ money – if you wouldn’t gamble away all your local currency, don’t do it with your Bitcoin.

By now, I’ve gotten a feel for how the Bitcoin price works. An important thing to know is that compared to most other markets there is a LOT of volatility.

One of the reasons for this is the nature of Bitcoin. It is exciting and people want to participate. It is far more accessible to the beginner than forex or stocks, and there are a lot of people for whom this is their first trading experience.

If you have little previous trading experience, it’s important you recognise that you are a little fish. Be very careful, as there are also a lot of very big fish ready to eat you up!

As you follow the Bitcoin price, you’ll sometimes bang your head against a brick wall trying to understand it, especially in the short term. Positive media attention can be greeted with a drop in price, negative attention can correlate with strong performance. If you think you understand the Bitcoin market, you do not understand the Bitcoin market.

While short term price is too hard to predict, you can pick up on trends. Over the months, the price will generally trend up (bullish) or down (bearish). It can seem obvious to buy at any time while its bullish, and wait for it to hit the bottom when its bearish… if only it was that easy. If it was, everyone would make money trading (which is obviously impossible). The problem is, when it hits the bottom, it will rapidly jump back up, and when it reaches the top of a peak, it will rapidly plummet. These are known as corrections, and are what make trading like playing with fire. If you’re inexperienced (or experienced!) you can easily get your fingers burned.

Ask those who bought at $1000 at the height of a bull market, only to see it fall to under $250. If you don’t think this would happen to you… you’re probably the sort of person it will happen to.

If you are confident in Bitcoin’s long term prospects, as you should be (it’s more like buying shares in a revolutionary tech startup), just make your investment and wait. When the price rises and rises, as it has before and will again, get excited, sure, but PLEASE keep your seatbelt on and accept you’re about to witness one hell of a correction.

As long as humans are making trades, we’re going to get excited, impulsive and carried away. Why? Because we’re humans.

So, you’ve made your investment, you’re not going to worry about the price going up or down and you’re going to wait patiently for the infrastructure around Bitcoin to grow. When should you cash out?

You shouldn’t. Unless you need the money for a family emergency, do not cash out. If you believe in the technology (which should be your reason for investing, not because you see it as a way to get rich quick), wait until the infrastructure has developed, scalability issues have been solved and you can spend your Bitcoin in day to day life.

These are my reflections, I hope you’ve found them helpful. Here’s my final bit of advice:

6) DO sit back and enjoy the rollercoaster. It’s going to be one hell of a ride!

I’ve recently started blogging about Bitcoin. If you liked this article please check out my others! Tips welcome: 1H2zNWjxkaVeeE3yX6uVqng5Qoi6gGvYTE

My balanced(ish) view on the Bitcoin block size debate

There has been an uneasy tension simmering in the Bitcoin community over the blocksize – the limit on how many transactions can take place every 10 minutes, which is increasingly being reached.

Initially I was attracted to the idea of increasing Bitcoin block sizes. My frustration at the core team was palpable; it seemed such an obvious thing to do, Moore’s law superficially makes 1MB blocks in 2015 sound pathetically small.

Then I took the time to wrap my head around the technological arguments against increasing the block size (centralisation, scalability) and my view was transformed.

I am now completely on board with the core team vision: elegant solutions such as segregated witness (SW) and lightning network (LN). I realise ingenuity and innovation is going to save the day versus the comparatively clumsy solution of a block size increase.

I use an SSD in my laptop and haven’t run a node on it for over a year, since space is at a premium and in order to continue participating I’d have to pay for an upgrade. This exact same scenario is about to play out for Bitcoin transactions.

I have concerns… on one hand I have been convinced of the technical argument for avoiding increasing block sizes, and am incredibly excited about LN. I am prepared to patiently wait for these solutions to be implemented and solve Bitcoin’s long term challenges.

On the other hand, we are heading into unchartered territory. Bitcoin is being advanced on two fronts, we are building a revolutionary technology, and we are building a public vision of what that technology can do.

These two battles require very different skills, and triumph in both is essential for Bitcoin to succeed. If you have the technology but fail on persuading the public, you’ve got yourself a Betamax.

Bitcoin has a problem in that the community hasn’t been persuaded, let alone the public.

The core team state that anybody who disagrees with them is free to build their own competing solution. While technically true, this is disingenuous. The barriers to and reasons against a split are vast, the momentum and status quo is with core. However, even more importantly, the core team HAS WON the technological debate. Their solutions aren’t just the best for Bitcoin, they are a necessity for Bitcoin to succeed and scale.

I’ve been evangelising Bitcoin for the last 4 years. Our winning line is that you can send money very quickly and very cheaply. In a recent discussion with someone who works in ‘the city’ and had clearly done some Bitcoin homework, the technology was dismissed and I was told “Last week it took around 6-10 hours for a 40c fee or $2 for something quicker”. The fact this is incorrect is irrelevant, in the battleground of ideas, people switch off easily.

In Bitcoin we need to switch on as many people as possible. A fee market can create the very real possibility of slower transactions and higher fees. Anyone with an anti-Bitcoin agenda can use it as a stick to beat Bitcoin with for long after the issue has been resolved. Once someone has seen a headline and been turned off to an idea, it’s a lot more difficult to re-engage them.

So, what’s the solution?

Increasing the block size is not an option. Even if the code was released today, it would still require a lengthy wait before the increase could be activated to give as many nodes as possible the opportunity to upgrade – a hard fork should never be undertaken lightly. By that time, we should already be seeing the benefit from other the solutions the core team are pursuing and block size issues should be solved.

In the short term, like it or not, we’re about to enter a period where the utility of Bitcoin is going to be negatively affected. As a community we need to shape the public narrative, we need to sell the exciting developments that are around the corner. This should be easy… truly revolutionary developments really are coming. Let’s get behind and give our support to the core developers, they are going to deliver on their vision, now all we can do is rally behind them.
I feel bad for the core developers. These are technology people who have undoubtedly have Bitcoin’s best interests at heart. They have also had politics thrust upon them when they are not politicians.

They can also learn from this experience though. I recently saw a comment from a core dev which said he didn’t care about Bitcoin in the short term. If you believe the long term of health of something depends on the short term, as I do, this language is troubling no matter which side of the debate you are on.
The community and developers need to understand each other better. The community has been worrying about block limits creating a fee market for years. A fee market also requires a political/economic consideration, not just a technical one.

Perhaps the current dynamic, ‘developers’ and ‘users’, cannot be sustained in its current form. I think we need a level of mediation, a political layer which can represent the interests of all Bitcoin stakeholders and articulate to both sides why their approach and opinions are important and stand a better chance of reaching consensus and sooner.

In the current climate, I feel a compromise of 2MB blocks to keep the metaphorical wolves from the fee market door while SW and LN are introduced would bring the community together – the problem is, the time we would have needed to reach that consensus in order to get the wheels in motion, the community was suggesting wild block size increases and would never have compromised on 2MB, but will now also feel they are having a fee market imposed upon them.

Let’s embrace what we’ve got. Yes, we’re going to have a fee market and no doubt other bumps along the way, but we also have a core team whose hard work and ingenuity are laying the foundations for Bitcoin to become truly scalable and world changing. On our two battlefronts we can be certain we are winning on the technology side. We just need to make sure the whole community is singing from the same hymn sheet so that together we can generate a tidal wave of positivity and surf our way to the… future (and moon).


This is my first article on Bitcoin, I’m probably going to start talking a lot more about it and attempting to explain some of the basics. Tips welcome: 1H2zNWjxkaVeeE3yX6uVqng5Qoi6gGvYTE