Blockchains are fascinating- a platform for robust, immutable, and trustless data storage and computation. But they’re also cumbersome- slow, inefficient, and expensive. So when are blockchains the right solution for a problem? Blockchains are not a magical new type of computing. They don’t perform computations which are impossible with conventional computing; they can’t store data which is intractable to conventional databases.
After three decades spent optimizing databases and computation for speed, efficiency, and ease-of-use it seems silly to start adopting a new technology which wipes those advances. But as we’ll see, there are examples where blockchains are the right solution- and can create business models which have never seen before.
For a background on blockchain technology and structure, check out my blog post and BitsOnBlocks’ excellent ‘gentle introduction to blockchains‘. If you’re hands-on and want to get into the technical details behind blockchains, you can walk through my Python tutorial on building your own blockchain from scratch.
If blockchains aren’t magic, what are they good at? Let’s look at the pros and cons of each technology:
Blockchain System | Centralized Computation |
---|---|
|
|
Several of these attributes are debatable, and each system can be engineered to build up its strengths and weaknesses:
- Centralized databases can be made transparent (and often are, through customer portals), and blockchains can be made private.
- The speed and efficiency of a blockchain can be improved (to a certain extent), though a blockchain that has a large number of nodes will never be as fast as a centralized system.
- Blockchains don’t have gatekeepers collecting rents (like Visa charging for access to its payment network), but the costs of their additional hardware and computation are socialized across the network, and supported through currency inflation. Estimates of transaction costs on the Bitcoin network range from $1-8 per transaction– that’s 3-20x the cost of a Visa transaction!
This leaves two attributes which are truly unique to blockchains: Truslessness and Immutability. So when are these attributes worth the additional cost and computation overhead incurred by a blockchain?
I’ll borrow some ideas from utility theory, a branch of economics which posits that customers seek to maximize their utility, U(·) which is a function of different product attributes. A consumer will prefer product x when it has higher utility than competing product y, i.e. when U(x) > U(y). This can be used either to predict consumer choices when we have a good model of their utility function, or to infer their utility function when we have a large set of consumer decisions.
Given that we’re comparing two systems which have a number of attributes each, we’d expect utility to be a function of several attributes, i.e.
\(U(\cdot) =U(x_{transparency},x_{immutability},x_{trustlessness},\ldots)\)Given the above discussion, we really view this as a battle between the utility of trustlessness and immutability on a blockchain, and the speed and efficiency of a centralized system. In terms of utility, the blockchain will be the preferred option when:
\(U(\cdot) =U(x_{immutability},x_{trustlessness})\geq U(y_{speed},y_{efficiency})\)Note that there isn’t a magic way of deriving the utility function U(·) and this must be inferred from good understanding of the market. Even without being able to specify a utility function, this is a helpful framework for identifying good and bad blockchain applications: identifying where immutability is important (typically in digital payments) and where trustlessness is important (typically in areas where parties have incentives to cheat).