Many companies jump on a bandwagon of blockchain and leverage opportunities of smart contracts development. According to 2017 Accenture research findings, investment banks alone could save up to $12 billion per year by adopting blockchain and smart contracts. According to Gartner estimate, more than 25% of global organizations will use smart contracts by 2022.
Companies like IBM and Microsoft offer blockchain solutions and smart contract development to enterprise clients. However, those solutions call for customization.
Blockchain and smart contract development require complex expertise which is hard to find since the competition for it is fierce.
What is a smart contract?
A blockchain-based smart contract is a piece of self-executing code on a blockchain platform that automatically enforces the terms of a multiparty agreement. To execute a smart contract, a computer network uses consensus protocols. Consensus may be achieved either on the ledger level (among all members of the blockchain) or on a transaction level (among participants of a specific transaction). These transactions are immutable and can be traced back.
Many companies adopt smart contracts as they are:
- Secure
- Cost-efficient
- Fast
- Automated
- Precise
- Irreversible
- Autonomous
- Decentralized
Smart contracts can be used across a variety of industries, from gambling to logistics, insurance, banking, healthcare, and more. Also, the technology has exceptional value for the development of financial technology solutions.
There are 3 key platforms for smart contracts development: Ethereum, Hyperledger Fabric, and R3 Corda.
Development for each platform requires different engineering expertise. Solidity – for Ethereum developers. Golang and Java – for Hyperledger Fabric, and Kotlin, Java- for R3 Corda. Also, programmers must have good knowledge of API development.
Smart contract developers are hard to find and expensive to hire. The resources for learning smart contracts are rather limited. On Linkedin, only 175,000 professionals across the world mention smart contract development expertise. What’s more, they are often involved in ICO development, and as a result, these experts demand huge salaries.
Key Platforms for Smart Contract Development
Hyperledger Fabric
Hyperledger Fabric is one of Hyperledger projects hosted by Linux Foundation. Its modular architecture allows components, such as consensus and membership services to be plug-and-play. What’s more, it allows Fabric to be customized to a multitude of applications across different industries, from financial services to supply chain, healthcare, education, and many more.
Hyperledger network is permissioned, and consensus has to be reached at a transaction level, not the ledger level. Thus, it is more scalable, fast, and efficient than public blockchains. Furthermore, Hyperledger Fabric allows for confidential agreement. That means only direct participants of the agreement are aware of it. Hyperledger Fabric leverages container technology to host smart contracts. The technology is called “chaincode”. Furthermore, it includes Byzantine fault-tolerant (BFT) algorithms to prevent system failures. Hyperledger nodes have different roles and tasks, such as endorser, committer, and consenter.
An example:
A client sends a transaction to connected endorsers to propose the ledger update. All endorsers have to reach a consensus on the proposed transaction. The client collects approval of all endorsers one by one. The agreed-upon transaction is sent to connected orderers, which again reach consensus. Subsequently, the transaction is forwarded to nodes responsible for committing the transaction.
Programming languages: Go, Java
R3 Corda
The solution is used only in the financial services industry. It is permissioned and provides good scalability and privacy. It uses Byzantine fault-tolerant (BFT) algorithms to exclude component failures. Consensus over uniqueness is reached among participants called notary nodes. Thus transactions are fast.
In Corda, smart contracts are allowed to contain legal prose, called smart legal contracts. It uses a Ricardian Contract (a method of recording a document as a contract at law).
Programming languages: Kotlin, Java.
Ethereum
Smart contracts on Ethereum are designed to be Turing-complete, which means the platform can compute anything computable if enough resources are provided. However, it creates the ground for criticism as it may be too flexible, unsafe, and unpredictable.
A consensus is reached through mining and Proof of Work, at the ledger level. Thus it is shared among all the participants in the ledger.
These contracts are enforced and validated by computers that are called miners. We pay these miners with something called gas. This is the unit by which the degree of difficulty of computational efforts is measured, and which defines the cost to run a contract. Different contract’s operations might require a different amount of gas which then is transferred in ether.
Programming language: Solidity
Wrap-up
Many companies take advantage of smart contracts development. However, it requires complex technological expertise and relevant experience. The talent pool of smart contract developers is quite limited, and the competition for it is fierce.
There are 3 rival platforms such as Ethereum, R3 Corda, and Hyperledger Fabric, which call for different tech stack and are applied to different business cases. Each of them has its strong and weak points.
Talk to experienced smart contract developers to validate your business idea.