There’s a lot of talk these days about blockchain. What is it? Hype? FUD? The future? Can it be used for BPM? What does it have to do with Bitcoin? Is it only for digital currency? Despite all of the uncertainty about Blockchain technology, at a very high level it’s not too hard to understand. I will explain it without going into technical details and by taking some large liberties in order to get the general concepts across.
A blockchain starts with the very first block, known as the Genesis Block and other blocks are “stacked” onto preceding blocks. Take a look at this image:
Conceptually, a “Block” in the blockchain is a set of transactions and something akin to a puzzle that is created by encrypting the data. To add a new block to the blockchain, you must essentially have the right piece to fit into the puzzle of the top block in the blockchain. Finding a piece that fits the puzzle is where what’s known as the “proof of work” happens. It takes a lot of CPU power – and luck – to be the first person in the blockchain network to find the puzzle piece that fits so that you can fit your block to the chain. This is where “Bitcoin Miners” make their money. Whoever adds a block of transactions to the blockchain gets paid in Bitcoin and transaction fees. The blockchain is just all of the blocks fit/stacked together. Currently there are over 500,000 blocks in Bitcoin’s blockchain.
That’s an admittedly very high-level description, but it conveys the crux of the technology. Now, what’s so cool about Blockchain and why is everybody talking about it? I don’t have room to discuss all of the neat things, so let me just talk about some of the more important ones:
Distributed Ledger” – everybody who’s mining or running a node essentially has a copy of the blockchain. There is no single source of truth. The truth is decided by quorum of control. Whatever chain is longest that the most machines agree on is the truth (explaining this is left for a different blog post!). The only way to commit fraud would be to try to stack on a bogus block and try to convince all the other nodes that your copy is the right copy. Many companies are offering to provide a Blockchain service. This essentially breaks one of the most important features of the blockchain: nobody controls it. It’s neutral. One company trying to provide a blockchain service does not a true blockchain make.
People are willing to run Bitcoin nodes because they have the chance of “finding gold” i.e. getting a block added to the blockchain. The size of the Bitcoin network and its total distributed CPU power is what sets it apart from others. A blockchain’s relevance in some ways is directly related to the number of independent nodes working together on it.
Immutability – you cannot change a block on the Blockchain without re-doing all of the work for that block and all blocks after it. This quickly becomes algorithmically impossible.
Transparency – all blocks in the blockchain are open to inspection and auditing. One is able to see every transaction: who paid whom and how much. The trick is that the “who” and the “whom” are essentially long, random numbers – and a person can have as many of these numbers as they like. Knowing the right number allows one to spend their Bitcoin. Since the ledger is transparent and everybody has access, the system knows whether that number has the Bitcoin to spend or not. Because a node knows all of the transactions and blocks, it can also ensure somebody doesn’t “double spend” their Bitcoin. Play around at https://blockchain.info/blocks to see some transparency!
There is no “middle man” in the transactions. Transactions typically consist of a transfer from one entity to another and the transfer of Bitcoin happens in near real-time. The goal for transactions to clear is approximately 10 minutes. Compare that with banks, which can take 24 hours or more to clear a transaction.
The specification for Bitcoin and blockchain allow for a simplified programming language that, among other things, allows for “smart” contracts. The transaction in the blockchain controls when and if Bitcoin is transferred from one account to another based on rules set up in the transaction. A simple rule might be “transfer the money on this date.”
It’s that last point about smart contracts that is most interesting to BPM. In my next blog article, I’ll explain how Blockchain and BPM might play together.