Blockchain Agility, ASICBOOST & Building on the Strongest Chain


#1

The recent drama with ASICBOOST is heavily highlighting how hard it is to get a blockchain to work properly. There are just so many variables to get right and even when you think you’ve covered everything, a surprise vulnerability or bug in the game mechanics comes out and bites you.

They say there are programmers with vulnerabilities in their code and then there are non-programmers. And this rule applies equally well to blockchains. If you think your blockchain is safe you’re probably not worrying enough.

There are hundreds of core developers and hundreds of companies working on Bitcoin. If you’re worried about problems like (a) transaction fees and the block size (b) governance issues and fork risks © proof-of-work gaming and ASICBOOST… and you think you should switch to another blockchain because of one of these, just stop.

This decision is akin to leaving Fort Knox to start your own fortress because you saw some guy come within 200 feet of the building.

If you leave because of high transaction fees and block size issues, you’ll simply end up going to a blockchain that’s way less stable and secure and easily trashed with a few million dollars. Why not just use Stripe or PayPal? Why not use a centralized database?

If you leave because of governance issues and fork risks, you’ll simply end up going to a blockchain with either (a) a much more concentrated system of governance or (b) a system with exactly the same problems of governance and risks of forking. Why not just make your own centralized or federated system like Keybase?

In my opinion, one should leave the blockchain building and maintenance to the team/teams that have been doing it the best and the longest. The best strategy for surviving the ups and downs of an individual blockchain is to stop being tied to one blockchain. Support multiple chains and have systems running across each of them. If one is bumpy, you still have systems running smoothly on the other chains. The easiest way we at Blockstack have found to be able to do this is to work on a virtual layer above the underlying blockchain. This allows for easy porting of the logic across chains. The details below are not important to the virtual layer on top.

Oh and remember that Bitcoin has had 99.999% uptime over the past 4 years.

The state of Bitcoin is strong. Or at least it’s stronger than everything else.


#2

I think that as time goes on, we’ll see that successful blockchain-powered applications will outlive the blockchains they use today. This was the case for us; we migrated from Namecoin to Bitcoin in 2015. This is also the case for Storj, which is migrating from Counterparty to Ethereum. Our goal is to be on the most secure blockchain, and we are prepared to migrate again if Bitcoin’s security is jeopardized.

That said, I agree with Ryan that the state of Bitcoin is strong. Moreover, I think there are two kinds of blockchains today: the ones that have governance problems, and the ones that almost no one uses. And just like any form of government, I doubt that there will ever be a “perfect” blockchain. Things could definitely be better in Bitcoinland, but some things will be true for all blockchains:

  • Blocks will never be big enough. Show me a blockchain with arbitrarily large blocks, and I’ll show you my new decentralized backup system. Developers discovered long ago how to make data and apps grow to fill the space they’re given. If Bitcoin had 1GB blocks, you can bet people would figure out how to fill them.

  • Fees will never be low enough. Energy, storage, and lunch have one thing in common: they ain’t free.

  • Politicking will never cease to work. Anything and everything can be politicized once you have at least three people involved. Anything and everything will be politicized once power and money enter the equation. Blockchains have no shortage of either.

What this tells me is that the winning applications in this space won’t care about the blockchain du jour. Blockchains are like CPUs and hard drives: you replace them every few years, and everyone has their own favorites.

What’s a developer to do? It wouldn’t make sense to code to a specific blockchain anymore than it makes sense today to code to a specific hardware configuration. Instead, you’d code to the specifications and interfaces of an operating system, and let the operating system worry about the irrelevant details. Blockstack is the blockchain application operating system, providing a common interface and runtime that keeps applications portable to current and future blockchains.