The False Dichotomy of Blockchain Usage (How Bruce Schneier Got It Wrong)
In a recent article in Wired, Bruce Schneier argued that “there’s no good reason to trust blockchain technology”, even linking a cheeky flowchart that makes his opinion of the technology abundantly clear. “Do I need a Blockchain? > No.”
While I agree with many of Mr. Schneier’s specific points, I believe he has fallen into an extremely common false dichotomy about blockchain usage. It is one that I have heard over and over from executives and technologists within businesses who have looked at blockchain and concluded that it offers them no benefit. It’s hard to fault either Mr. Schneier or these business leaders because this dichotomy has been created by the two blockchain factions that overwhelmingly dominate the conversation about blockchain.
Unfortunately neither of these factions has it right and as a result useful adoption and development of the technology has been held back. If you’ve researched blockchain and concluded that it’s either wide-eyed crypto idealism or an over-complicated append-only database, let me explain what you might be missing.
Decentralizers versus Dataloggers
Researching blockchain technology, you’ll quickly find that the world of solutions seems largely split into “public” blockchains and “private” (or “permissioned”) blockchains. Public blockchains such as Bitcoin or Ethereum operate on the open internet; anybody can participate and anyone can use them by paying for their usage in cryptocurrency. Private blockchains are set up behind firewalls for specific company usage, running their own instances of blockchain technologies like Hyperledger or Corda.
There are some good reasons why a company would choose one or the other type for their application. However there is an additional ideological divide separating the majority of supporters of public and private blockchain technologies.
On one side you have what I will call Decentralizers supporting public blockchains. Decentralizers believe blockchain’s raison d’etre is to create applications that require no trust in any individual entity — whether digital cash, or more complex applications. These “decentralized” applications, running on self-incentivizing public networks on the open internet, are then fully transparent and (at least in theory) free from manipulation, malfeasance, and rent-seeking. This was certainly Satoshi Nakamoto’s vision for Bitcoin, created in response to the thoroughly un-transparent big bank machinations that led to the 2008 market crash.
On the other side you have what I will call Dataloggers supporting private blockchain technologies. The primary supporters here are the big consulting firms who are selling blockchain reports and development services to enterprise. They see blockchain as the next big enterprise IT transition, like the cloud movement before it. To them, blockchain’s value is simply as a tamper-resistant ledger of transactions to be run within a company — a new kind of database where data can be logged.
These two viewpoints on blockchain technology almost couldn’t be more different and opposed.
The Decentralizers look at the corporate private chain Dataloggers and say: “Just use a database if all you care about is logging data! What’s the point if you aren’t decentralizing the entire application?”
The Dataloggers look at the wide-eyed public chain Decentralizers and say: “You’re crazy if you think that companies can be replaced by decentralized applications! And real companies need private IT systems to control their data.”
The False Dichotomy
Bruce Schneier, and many of the business leaders I talk to, have reasonably concluded that neither position makes sense: The ethos of absolute decentralization is based on a naive belief that the tech can be trusted to handle all problems currently solved by companies and legal processes. And the push for use of blockchain as a simple transactional log seems more rooted in blockchain-as-buzzword than real technological advantage. Ethereum development looks complex, risky, and immature; Hyperledger development looks pointless compared with existing purpose-built databases. So what’s the point of blockchain?
I believe both ideological positions make differently incorrect assumptions about the right way to use blockchain. The Decentralizers fail to understand (or perhaps care about) the needs and complexities of real-world business and application development. The Dataloggers fail to comprehend what blockchain is capable of when its unique features are used to their fullest.
The majority of high-impact uses for blockchain fall in the middle ground of their mutual blindspots, unseen. This is why we see little real-world deployment of blockchain solutions and much confusion about the future direction of blockchain technology itself. So what’s the alternative?
Using Blockchain as a “Source of Truth”
To define that valuable middle ground, let’s look at the major components of a mature application or business system and see what problems blockchain can solve. But first we have to define “what should we put on blockchain”?
Blockchain’s uniqueness comes in its ability to enforce rules and securely store records of those rules being followed — using consensus between diverse participating nodes. This is what you need to create an open digital cash system like Bitcoin. Bitcoin is simple: the rules define the behavior of digital cash (fixed supply, nobody can spend it twice, etc.) and the records are a ledger of digital cash transactions between users.
Notice that Bitcoin doesn’t simply ledger the result data of a transaction that happened somewhere else. Before a transaction is recorded, the consensus itself ensures that the rules of digital cash are followed. The blockchain protocol itself enforces business logic for a native digital asset. This is a critical point and defines the pattern of what we should be putting on blockchain.
For most applications, I call these BOAs — Business-critical Objects and Actions. I describe in more depth what I mean by these in a previous article that I highly encourage you to read before proceeding. But here’s a short summary:
BOAs are the Business-critical Objects and Actions that must be managed correctly at all costs. The business’s customers (whether internal or external) trust that the company will manage these objects and actions absolutely correctly — with real capital, time, resources, and reputation at stake.
Note that I don’t use the generic term “data”, which is the typical purview of database technologies. BOAs are much more specific than just data; they are the highly visible — maybe even tangible — nouns and verbs that describe the business itself. It’s the stuff that gets discussed in the boardroom, not just the IT break room.
BOAs are a great match for blockchain.
With that in mind, I break a business application (which could use blockchain) into three layers:
- Server Logic — This is all of the necessary infrastructure of the application or business. It defines how users connect, where data is stored, and generally how the system operates. It could be as simple as a web server or as complex as a multi-national enterprise IT backend system.
- BOA Transactions — This is the part of the system that handles the BOAs and ensures correctness. For a small, simple business this could be very lightweight. For companies with many BOAs and/or extremely high-value BOAs, this part of the system frequently grows into an IT behemoth of layers of software and dedicated resources to prevent errors or malfeasance, as well as provide sufficient auditability.
- Transaction Log — This is the ultimate data layer that stores the result of the BOA Transactions. It is the state of the company which should be correct if all above is done correctly. It must be designed to prevent tampering or data loss.
Here is how the Decentralizers and Dataloggers envision this system being broken down using blockchain.
We can see the shortcomings of both of these approaches clearly. Attempting to load all three layers into a decentralized public blockchain application is highly risky, and extremely difficult given the immature development stacks available compared to what developers are typically used to. Only very simple applications can possibly be deployed in this manner. Keeping things as simple and familiar as possible by using blockchain only for the bottom-most Transaction Log layer is far more practical, but also has little value compared with non-blockchain database approaches.
There is a better way.
Let’s imagine that we are one of the thousands of companies with absolutely critical BOAs, but only interested in blockchain if it gives us a practical advantage. The only reason to load our server logic into the blockchain is to fully decentralize, which we don’t need. So let’s move that “off chain” and keep it simple. However what if we could leverage blockchain’s inherent ability to enforce business logic for digital assets? What if we encoded our BOAs in native blockchain terms so that the blockchain enforces the correctness of our own BOAs, just as Bitcoin enforces the rules of digital cash? Now our blockchain solution isn’t a one-way data log, it’s a two-way “source of truth” for our business.
In addition, we shouldn’t completely dismiss the value of public blockchains. Selective use of public blockchain, in concert with our private blockchain use, can provide additional transparency, P2P capability, or more open exchange of very specific BOAs. Widespread representation of currencies, commodities, certifications, properties, and more as tokens on public blockchains is coming and our business may well want to interact with (or even create) these assets.
Our system might look more like this:
If we design our system from scratch with this approach in mind, blockchain becomes an incredibly powerful tool. The layers of complex IT software and large IT teams we might typically need can be largely replaced with a system that makes errors, malfeasance, or tampering impossible — and the results easily auditable. Accomplishing this means looking beyond blockchain as a database, and taking the time to make more structured and deeply integrated use of blockchain. It will take more effort out of the gate, but it will really pay off when our BOAs get really numerous and complex.
Looking Past Premature Conventional Wisdom
Taking the “source of truth” approach isn’t what you’ll hear from those who wish to decentralize at all costs, or those who would rather sell an easy IT buzzword. It may even drive your selection of blockchain technology away from the big names that are championed by those factions.
To create a “source of truth”, you will want a blockchain technology that is designed to let you encode your BOAs as directly and securely as possible, rather than get hung up on turing-complete on-chain virtual machines. You will want a blockchain technology that includes both dedicated private blockchain network capability as well as a robust and performant public chain network so you can deploy your BOAs flexibly with a single development. You may even discover that you want a flavor of distributed ledger technology that isn’t blockchain at all; the technology is moving rapidly and building on first-generation tech is a bad move.
Ten years on from the creation of Bitcoin, blockchain technology is only in its adolescence. But don’t be lulled into thinking that it is a passing fad with no real value. We’re still in for many rounds of hype, backlash, confusion, and skepticism — but those who can navigate through it all with a clear view of the value of the technology will emerge far ahead of their competition.