Some dub it a “breakthrough,” others call it a “network attack.”
Those were the prevailing opinions leading up to Mark Friedenbach’s much-anticipated talk at Scaling Bitcoin Friday, where the Blockstream co-founder presented for the first time “Forward Blocks,” a proposal that claims to make future, contentious changes to Bitcoin – such as block size increase or proof-of-work change – easier to do.
It’s a big announcement, one that was shrouded in secrecy in the weeks leading up to the event as it challenges core perceptions that are widely held within Bitcoin‘s community. Chief among them is the assertion that massive changes can be made to Bitcoin in a backwards-compatible way, without asking every user to upgrade their software.
One issue – that many Bitcoin users use the protocol to achieve a kind of sovereignty over their money, and that mandatory software changes essentially undermine that control – has long loomed over protocol changes, surfacing as a major point of contention that ultimately led to the network’s infamous Bitcoin cash fork.
In this way, Friedenbach’s research addresses an issue cryptocurrency developers have been grappling with for ages: how, exactly, should bigger changes be made to a massive distributed system? Many would argue that more drastic Bitcoin changes are, and should be, difficult, contending that as Bitcoin is decentralized, and has no “king,” users should be able to choose to adopt or reject changes.
Further, it was thought that some of the biggest changes to Bitcoin could only be made with a “hard fork,” a change that isn’t backwards-compatible, requiring all the cryptocurrency’s users to upgrade to keep up with the change. Or, as Friedenbach argues, such was the case before “forward blocks.”
“Most of the scaling debate is wrapped up in the issue of how to do a hard fork safely, and when, if ever, we should do a hard fork for scaling purposes,” Friedenbach told CoinDesk. However, with his new work, he’s arguing this isn’t a problem anymore.
“‘Forward blocks makes that whole argument pointless. We don’t need a hard-fork to scale Bitcoin, if and when we decide to do so. It can be accomplished as a soft fork, like SegWit was.”
A developer working in the background, Friedenbach’s not particularly well-known in cryptocurrency circles.
He left a job developing space research apps at NASA to work on Bitcoin full-time, going on to work on the theory behind some possibly huge future changes to Bitcoin, like boosting its smart contracts functionality so that users can make more complex types of transactions and co-authoring the original Blockstream paper on sidechains.
With all this under his belt, perhaps it’s not surprising he took an interest in how to make changes to the cryptocurrency.
Actually, it wasn’t Bitcoin‘s block size, but a different code change entirely that prompted Friedenbach to look into the idea: Changing Bitcoin‘s proof-of-work algorithm, commonly seen as a check against those securing the network with powerful computing hardware (miners) from racking up too much power.
As ASICs have creeped onto a number of blockchains that have sought to resist them over the past year, many have been advocating for a formal change to be made to Bitcoin. For example, in the Sia community, users recently decided after months of debate that they will enact the “kill switch” hard fork to kick out the current ASICs in power.
Developers have generally thought a hard fork was the only way to make this change, making it a particularly contentious proposition. But as it turns out, Forward Blocks are helpful here as well, making it possible to execute a consensus change with a soft fork rather than a hard fork.
So, how do forward blocks work? In his new paper, Friedenbach describes the change as a sort of mash-up of a variety of types of forks.
“While each of these approaches individually have unacceptable trade-offs, it turns out, remarkably, that combining them all together ‘cancels out’ most of the bad tradeoffs while retaining the combined benefits,” the paper explains.
“The resulting scheme, held together by a novel new mechanism we call forward blocks, is actually less complicated than one might think of a ‘everything and the kitchen sink’ proposal,” the paper goes on.
Since it’s such a general upgrade – a way to make changes, it’s worth noting the two upgrades Friedenbach emphasizes – block sizes and proof-of-work – aren’t the only possible applications. Friedenbach even argues the method of change could be used for “sharding” Bitcoin to scale the protocol further, a term that evokes a technique being pursued on ethereum.
(The paper describes all these ideas as well as how forward blocks are accomplished in greater detail).
‘Just another tool’?
Still, while the paper…