Fred Wilson of Union Square Ventures caught my attention yesterday with this post, in which he suggested that banks and other financial institutions might want to begin mining Bitcoin in order to contribute to the security of the network.
I agree with Mr. Wilson that banks should do their own blockchain data processing - blockchains are a great way to set up, secure, and automate a distributed data infrastructure without the need for dedicated hardware. I’m not so sure that doing it with Bitcoin alone makes a great deal of sense.
Using Bitcoin in conjunction with a private chain, on the other hand, might make a great deal of sense for commercial transactions, particularly among challenger institutions which need to improve the verifiability of their data without incurring too much expense.
A. Clarifications on mining and validation.
1. Is mining necessary to run a blockchain?
Contrary to popular belief: no.
There’s a bit of nuance involved here, so bear with me.
Bitcoin mining isn’t “transaction processing” or “transaction validation” - this is done on an ongoing basis through its networking protocol (or in the case of the Tendermint-base code we at Eris Industries use, gossip) where nodes propagate valid transactions to each other. With Bitcoin, every transaction broadcast to the network is validated by every node on the network - no matter what.
What most people call “mining” is solely the participation of individual computers “in a schelling game where participation is motivated by value at stake” (i.e. the Bitcoins) with a view to choosing which transaction history of the blockchain is valid (i.e. ensuring that only valid blocks are added).
The problem isn’t in validating itself - it’s in making sure that valid transactions wind up in a block. There are many ways to skin this cat; in the case of Tendermint-base chains, a PBFT-like algorithm suffices.
That said, if you’re using a blockchain where other people are calling the shots on consensus, getting your transactions into a block is by no means guaranteed. This is as true of Bitcoin as it is of any “decentralised” system where (ostensibly) nobody is in control. The problem being that, in order for the network to satisfy standards most commercial banks would require, the bank (or its collaborators) would need to find every single block!
In Bitcoin, this is nigh-impossible to do.
Which means the banks will need their own blockchains. There’s no avoiding it.
2. Wait, so mining is just about fork choice, and has nothing to do with transaction validation?
Correct. Getting information back and forth to validate is as simple as sending packets.
With decentralised systems where nobody is in charge, you need to set up a game-theoretic security structure as permission to add blocks is granted to the entire world.
With a private blockchain (we prefer the term “permissioned blockchain”), you don’t need to do this: you simply specify which key pairs have permission to add blocks. If you control those nodes or know who runs them, you can use the same cryptography that secures a Bitcoin balance (a write permission to spend bitcoin) to secure the chain (qua a write permission to add a block to the end of the chain).
All this is doable today.
Trust is an extremely efficient way of doing business. The logical solution for a bank is to just use a permissioned chain, which can give greater transactional throughput and more controllability than Bitcoin allows - providing the same functionality, with a design specific to the business’ specific needs, at effectively nil cost.
B. Can I use Eris and Bitcoin together?
“But I’m a Bitcoin business, not a bank,” I hear you say. “Can I use your system to accomplish my commercial aims?”
Yes, you can. Easily, and free of charge, too. But how you do so needs a little thought ahead of time:
1. Use Bitcoin where context-appropriate…
You don’t have to use Bitcoin to use a blockchain. Permissioned blockchains do what you tell them to do, and can be set to accomplish very specific tasks with a high degree of efficiency. Deploying this infrastructure, at a fraction of the cost of legacy, is where startups are going to be able to do a lot of damage.
If you don’t want to wait for the Lightning Network, you can get your cheapo distributed infrastructure with a permissioned blockchain - today - to test things out and acquire new users while you wait. As to security, you can probably get most of the way there with your security through key management alone.
However, Bitcoin and Permissioned blockchains are not mutually exclusive propositions. There are definitely circumstances where Bitcoin can add value to your permissioned blockchain, so you’ll want to use both.
2. …and you can (and should) if you want to increase verifiability and trust for your users
Under the right circumstances, Bitcoin can be useful in almost any application - but not as a payment system.
The best use I can think of for it relates to the fact that it’s arguably the most persistent and resilient distributed data store on the planet - in my opinion, it’s probably the only network on the planet that would survive a nuclear war. The downside to this is that there is a heavy cost imposed (a) to add blocks, to protect the network from attack and (b) to the Bitcoins themselves (in the form of scarcity), in order to prevent spam.
If what you’re after is
- a high-capacity blockchain to manage your transactions, while
- leveraging a high-uptime, low-capacity bitcoin as the persistent data store,
checkpointing by taking a hash of the state of your chain and dropping the hash into Bitcoin is very easy to do.
This means you can objectively verify the data on an ErisDB, and use Bitcoin’s persistent data store to act as a public record that anyone can inspect and refer to if need be.
It’s a great hack: you
- leverage the verifiability that Bitcoin miners create,
- can guarantee your transactions are processed all of the time on your permissioned chain, and
- do it more cheaply than buying a bunch of mining hardware.
Awesome use-case for Bitcoin (probably the only thing it can do that no other blockchain can). Everybody wins.
3. …or don’t use Bitcoin at all.
If you’re a bank, using the Bitcoin blockchain for your transactional platforms means you have to square off your commercial aims against those constraints. This is a huge commercial problem because (a) you can’t ensure your transactions get added into blocks by miners (driving up your costs in transaction fees, but also introducing substantial execution and settlement risk) and (b) you have to pay every time you transact with the network (which means a private blockchain-based service or SQL server can undercut you).
That said, if you can get comfortable that checkpointing your private transactional database into Bitcoin doesn’t contravene any data protection obligations you have, you don’t lose anything by having a custom-built Ferrari of a transactional system at your back-end which periodically checkpoints itself into Bitcoin. And you gain a publicly verifiable reference point, if having one of these makes sense.
C. What to do? It’s up to you.
Instead of using Bitcoin as the single transactional system for all the world’s transactions, we can use Bitcoin as a common reference point for many hundreds of thousands of standalone transaction systems - or any other kind of interactive blockchain application, e.g. content distribution, for that matter.
A permissioned blockchain gets you most of the way to Bitcoin-style distributed functionality in terms of security through key management alone. However, there are circumstances where Bitcoin can add value.
If you choose to adopt a hybrid structure, though, what you get is:
- a transactional architecture that is purpose-built for your use-case,
- which is entirely in your control,
- which leaves Bitcoin alone to do what it does best,
- which allows your users to verify that you’re not misbehaving with their data,
- and lets you build an application for yourself that does exactly what you need it to do.
Today. Now. With Eris.
Critically, it provides verification of data integrity more cheaply than a data centre. When you’re a startup and you want to be able to prove something has or has not happened without running a lot of metal to do so, Bitcoin’s your guy.
And that, in our view, is pretty cool (we actually know one startup that’s leveraging both Eris and Bitcoin in the same application like this - they’re coming out of stealth in the very near future so I don’t want to blow their cover before they emerge).
So watch this space!