Blockchain is the underlying technology of cryptocurrency, the estimated-to-be $1 trillion market value by the end of 2018. Core elements of Cryptography and Distributed Algorithms are combined to provide useful characteristics such as immutability, confidentiality, integrity, and fault/crash tolerance.
If you’d like an entertaining introduction to cryptocurrencies and blockchain, John Oliver has you covered (https://www.youtube.com/watch?v=g6iDZspbRMg).
We are beginning to discover that applying this technology in a permission way can be very effective, such as eliminating blood diamonds or tracing the authenticity of ethically sourced fish. It is very important to emphasize that blockchain is not a silver bullet and is not appropriate to be applied to every business case. The hotspots for use-cases known currently are Finance, Healthcare, and Logistics.
Trust. Bitcoin and Ethereum both run on a trustless model. Every ‘player’ in the network is a potential attacker. This mode of operation requires caution at every turn, leading to very expensive methods of approving transactions (every 10 minutes for Bitcoin).
Permissioned blockchains require at least some trust in the participants. This could be through thorough vetting-processes before granting access to the network or could be a business contract between two organisations. This allows Software Engineers to create/implement more efficient techniques to achieve consensus than Bitcoin’s proof-of-work.
Consensus Algorithms. Within permissioned Blockchains, this is broken into two categories. Neither of these requires calculating expensive hash values, so you can forget about the concept of miners.
1. Lottery-based Consensus – some randomness is used to determine who is the validator of a transaction. An example of this is proof-of-elapsed-time in Hyperledger Sawtooth, all nodes run in a Trust Execution Environment to be fairly given a wait time that cannot be manipulated. Whoever gets the shortest wait time becomes the winner.
2. Voting-based Consensus – endorsers are established that simulate the proposed transaction on their machine, if they agree with the new view of the world then they will approve the transaction. This can be highly configurable, such as requiring a certain percentage of participants to endorse or getting regulator X, Y or Z to sign-off (endorse) on the transaction.
Practical Byzantine Fault Tolerance is an example of this, utilizing Kafka to provide crash tolerance inside of Hyperledger Fabric.
There are many proposed consensus algorithms, the Hyperledger Foundation (belonging to the Linux Foundation) has released this useful breakdown:
The speed of permissioned blockchains trumps permission-less in almost every scenario. We can also see that there is a trade-off between lottery and voting consensus, these are useful resources to help you choose your consensus algorithm and blockchain framework, depending on your projects/business requirements.
Permissioned Blockchain frameworks are usually highly interoperable – Hyperledger Fabric for example uses REST API’s for most of the communication. This means that you can talk to your own non-blockchain systems easily. You may also consider taking one small feature/micro-service that could be a potential use case for blockchain and trial it.
If you would like to get involved in developing permissioned blockchains, there are many resources and great frameworks out there to help you do so. In fact, Hyperledger Composer is such a well- engineered modern framework that it would still be great even if you exclude its blockchain capabilities.
The Linux Foundation offer a free course to help you learn about the 5 frameworks under the Hyperledger umbrella (https://www.edx.org/course/blockchain-business-introduction- linuxfoundationx-lfs171x-0) and IBM have a large amount of content on their blog.
If you have any interest, I really recommend jumping in and getting your hands dirty! Feel free to reach out to me if you have any questions.
By Chris McQueen – Distributed Systems Software Engineer
We are a leading niche digital & tech recruitment specialist for the North East of England. We Specialise in the acquisition of high-performing technology talent across a variety of IT sectors including Digital & Technology Software Development.
Our ultimate goal is to make a positive impact on every client and candidate we serve - from the initial call and introduction, right up to the final delivery, we want our clients and candidates to feel they have had a beneficial and productive experience.
If you’re looking to start your journey in sourcing talent or find your dream job, you’ll need a passionate, motivated team of experts to guide you. Check out our Jobs page for open vacancies. If interested, contact us or call 0191 300 6501 for a quick chat with our team.
Back to Blog