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.”
Here, Friedenbach is arguing that opt-in changes to the bitcoin network, such as the one used in bitcoin’s upgrade last year, could be used even for larger changes.
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 wasn’t presented in full until today, there’s been some chatter on social media ahead of the talk. Some bitcoin developers are much less excited by the idea.
“It’s a network attack being called an upgrade,” pseudonymous bitcoin enthusiast “Shinobimonkey” told CoinDesk. (In fact, he has harsh words for the Scaling Bitcoin conference where the paper was proposed in general. “This event needs to be eviscerated, ridiculed and drown in the bathtub,” he tweeted.)
Blockstream CEO Adam Back similarly painted it as interesting upgrade, but maybe not such a big deal.
But the proposal has also attracted eager supporters. Bitcoin Core contributor Karl-Johan Alm went as far as to call it a “breakthrough,” while still arguing it’s unclear whether it will be used in practice just yet.
“Regardless of what the outcome is, options are opening up to do things we didn’t think could be done previously. Whether we do them is a completely separate story,” Alm continued.
Friedenbach isn’t necessarily advocating for it to be used on bitcoin either. Rather, he’s just trying to point out that the option exists, opening a wider discussion.
“Tools aren’t moral objects, they don’t have ‘good’ or ‘bad’ moral weight. They just are. How you use a tool is the question, and with respect to bitcoin this is not something that I have an opinion on,” Friedenbach told CoinDesk.
Time will tell if the bitcoin community finds it’s worth a try.
In the meantime, Friedenbach is planning to test the change on “Freicoin,” a cryptocurrency project he co-launched years ago with a slightly different economic model than bitcoin. And, if the small community Freicoin decides to adopt it, the method of upgrading will be tested in the wild for the first time there.
Correction: Due to an editing error, an earlier version of this article called Shinobimonkey a bitcoin developer. This has now been corrected.
Mark Friedenbach presentation at Scaling Bitcoin image via CoinDesk