In my previous blog article, I explained Blockchain technology and several of its pros. I also promised to talk about how BPM and Blockchain could play together using “Smart Contracts.” Before getting into smart contracts, let me talk about an everyday item you’re familiar with that uses contracts that aren’t smart: a vending machine. You put in your money, you select what you want, and you get the item you wanted and maybe some change…except take a look at this process:
Have you ever had a machine “eat” your money? It turns out your contract with the vending machine isn’t really enforceable. That’s an example of a contract that isn’t smart.
People are willing to take a chance with a vending machine because the stakes are small. The vending machine process doesn’t work if you can’t afford to lose your investment. Nobody wants to put a large sum of money into a vending machine, press a button and get a car or a house, for example. This is why there are car dealers, stockbrokers, escrow services, etc. that operate in the middle of large transactions. When people purchase a high value item they expect to pay a trusted intermediate 3rd party to make the transaction work. This increases the cost and friction of the transaction and technically should be unnecessary.
This is where smart contracts come in. A smart contract is an automated program that runs in the Blockchain. Using a simple programming language (ethereum is one major implementer) one creates a “state machine. The state machine, very simply, represents the contract. Here’s how the vending machine process might look with a smart contract:
If you’re paying attention, you’ll see that there’s a small fly in the ointment. The customer can take the candy and never send the “candy received” event and the money won’t be transferred. In this case the human can finally “eat” the machine’s candy instead of the machine eating the human’s money. This is one of the drawbacks of smart contracts with physical goods. To work with physical goods, one has to think more along the lines of real contracts and car titles, etc. If I can encode a car title into a smart contract such that the evidence of car ownership is embedded in the transaction, then the delivery of the title in the transaction would cause the money to transfer automatically. Both parties would agree that the transaction was valid and it would complete. If either party was unsatisfied, the contract would not complete.
Here are some issues for using smart contracts:
In short, moving to smart contracts in the Blockchain for big ticket items isn’t going to be here soon, but it’s probably a bad bet to say it’ll never get here. Be advised and stay tuned for Essential Blockchain, part III.