Blockchain technology helps not only financial transactions but can impact on entire supply chain management. What does it mean though?
In business terms what does blockchain mean to your business and how can you use it?
This article attempts to make the components understandable and piece the solution together.
[read more=”Read more” less=”Read less”]
Basics
Your business and contracts
Your business runs fine today without blockchain. Why do you need it? How can it help?
We need to look at some challenges to see where it can be useful.
Contracts are really important to business. I agree to do this for you (seller) and you agree to pay me (buyer).
Businesses add terms and conditions to contracts for competitive and legal reasons.
If someone breaks a contract, or there is a dispute over the contract then third parties are required usually lawyers and a court.
Sometimes the stakes are high so 3rd parties are involved from the start to manage escrows.
Yet what if you could have a system that enforced a contract, checked and delivered it in real time without needing lawyers. Would that help?
Sense checking contracts
I will have some goods from you and then pay you money for those goods. An easy contract.
There’s a bit missing. Time. So, let’s modify this a bit.
I will have some goods from you, but I must receive them within 10 days of my order, then I will pay you money.
So now there is a trigger and some sense checks. Triggering events or triggers are important as they kick off a process.
The clock is also important. So now we have a contract!
Working some contracts
Microsoft give a good simple example to get started.
You sell ice cream.
- Firstly you need a farmer to produce diary (milking). Condition: Organic milk
- Also you need a creamery to make the ice cream (manufacturing). Condition: Quality specifications
- Finally you need a shipping company to get you the ice cream (transport). Condition: Keep the temperature cold
This is three separate contracts you have with different suppliers.
The conditions of these contracts involving time are called Service Level Agreements or SLAs.
In those contracts you can add rules about time and about conditions of operation.
How blockchain helps
- Take the conditions.
- Using a metric, measure if the condition of the contract is met
- Write the metric into a ledger
As simple as that.
Yet processes already can write to central systems, why not just use an ERP solution?
That is how it is done currently but there are technological challenges and human challenges.
However the biggest challenge is dishonesty.
If the ice cream shop owns the system, they could change numbers, values or perform “skulduggery”.
Consequently there needs to be a way that everyone trusts that the system and data is fair and reflective. Enter blockchain.
The pros and the cons
The absolute pro about blockchain is transparent honesty. The con is absolute transparent honesty.
As the World Economic Forum highlight and explain, not everyone is happy about blockchain as an option.
If you can get your terms and conditions right and work them into your contract then you have total transparency and self checking / self-quality assuring process.
Furthermore you will need to invest in technology to provide data and you will need to “codify” your contracts.
Also the data can be injected using Application Programming Interface calls (APIs) but this needs setting up.
Codifying means putting rules together, like computer programming, when this event is triggered perform this action.
Consequently for your business you are building “more accountability into your multi-party processes” without relying on 3rd party checks, “look back audits”, lawyers or even banks!
The Elements
Smart Contract
The parties
The first bit you need is a smart contract.
Someone is offering a product or service (seller). The other party is paying (buyer).
There needs to be a mechanism to ensure both sides get their desired and agreed outcome.
As a result there are three parties: the buyer, the seller and the smart contract.
The smart contract is a third party.
- Firstly the buyer sends money to the smart contract.
- Subsequently the seller works towards their agreed delivery.
- If the smart contract is satisfied the money goes to the seller.
- Yet if the delivery fails for any reason the money returns automatically to the buyer.
The ledger
A ledger is a a book or other collection of financial accounts. The smart contract has the rules of the ledger.
Triggers add data to the ledger. The ledger can be likened to a spreadsheet.
You don’t delete old data, you can only add updates. So a “fix” is an update only.
As a result of the ledger being a shared piece of information there needs to be some privacy.
The ledger is anonymised, removing names. As a result for the need for some identification a long string of numbers and letters called a hash is used.
As a result your hash needs another system outside blockchain to link a name and email address to this id.
Smart contract technology
A smart contract is in a blockchain and not controlled by any one individual. As a result at its core, it is immutable and distributed.
- Immutable. The contract is unalterable after it starts / is added to the blockchain
- Distributed. Meaning no one person can change the rules, everyone must agree
Ethereum is a blockchain technology, for encryption (immutability) and distribution.
Furthermore Ethereum uses a programming language called Solidity to codify the smart contract which looks a lot like JavaScript.
There are also Corda and Hyperledger as alternatives to Ethereum.
Bitcoin can support smart contracts but is more limited.
What is a blockchain?
As wikipedia explains, a blockchain, originally block chain, is a growing list of records, called blocks, which are linked using cryptography.
Each block contains a cryptographic representation of the previous block, a timestamp, and transaction data.
Furthermore, by design, a blockchain is resistant to modification of historic data.
Infrastructure
Ok, so we accept we have a smart contract to write and we elect to use Ethereum and Solidity. Now where does that live?
We need a distributed network to meet the “no one server” part. Also we need some sort of network supporting Ethereum.
A very easy approach is to engage with Microsoft Azure and the Blockchain Workbench.
Point and click and you get an infrastructure solution up and running.
This Azure approach allows you to have a private blockchain for just the businesses you want to work with.
There are public blockchains but given that all your transactions go into the ledger you may not want want the world seeing this.
Hybrid blockchain approaches are also available and in development.
Azures workbench offers a number of tools to massively speed up the solution.
- Blockchain ledger : The actual ledger / data.
- Key Vault : Which helps with naming
- DLT Services (API, Hashing, Signing) : A mechanism to more easily get information into the blockchain
- Off-Chain Db : A storage mechanism for doing queries to the ledger in traditional SQL
- Off-Chain Storage : For attaching files and extra informaiton such as documents that won’t make it into the ledger.
- Azure Active Directory : For AD integration
- IOT Hub : An API to allow data in from a variety of sources
Wrap up
Azure offers “Blockchain as a Service” (BaaS) meaning a very quick setup. Furthermore other major players have BaaS solutions such as Amazon.
Also an Internet of Things (IoT) and applications which can send data to the BaaS solution mean information and triggers are easy to implement.
Furthermore codifying smart contracts is a bit of work which is going to need experts available and integrated systems.
Consequently the legal, geo-political and financial changes globally make this emerging technology a very interesting tool for global business change.
[/read]