Bitcoin had the spotlight in 2017, but it appears smart contracts owns the spotlight for 2018.
Smart Contracts are essentially contracts which have been converted into code. They are deemed self-executing because if the conditions in the contracts are met, then the obligations would be automatically fulfilled. Smart Contracts are used to code Decentralized Apps (DApps) and the latest economics models now being built on blockchain. Since the launch of Ethereum, the most popular smart contracts platform, over 100,000 smart contracts have been deployed.
Industry experts are of the opinion that in the nearest future, our internet would become decentralized, thereby needing DApps and the underlying smart contracts.
As we've said earlier, smart contracts turn traditional contracts into codes which automatically executes once the conditions in the contract are met. Just like traditional contracts, smart contracts need to be free of all errors and transparent.
Seeing that smart contracts can help automate monotonous and hectic administrative tasks, the fast building excitement around it is quite understandable. Well, I got into the blockchain space after first coming across smart contracts. However, we are yet to reach the desired state where smart contracts is involved in our daily dealings.
Perhaps before then, the negative reactions to smart contracts, due to a blockchain startup, Bancor, being able to raise millions with just 40 lines of code, needs to be addressed. In fairness to Bancor, while its smart contracts code was just 40 lines, its project's full stack code is well over 60,000 lines.
The 40-line smart contract was just a simple code to govern and automate peer-to-peer (P2P) transactions. Thus, if more complex functions are needed, then longer codes would be written.
For a smart contract to work, relevant data have to be stored on the chain housing the smart contract. Chronicled and Qtum have developed solutions that allow smart contracts access off-chain data. That means, IoT gadgets will be able to trigger smart contracts using their sensors.
While the principles of transparency are awesome to have on the blockchain, there are instances where privacy matters. This can be solved by adding more code to the smart contract. Also, adding 'editability' features to smart contracts will require longer codes.
The longer the lines of codes, the higher the risk involved. Risks of money loss, of misinterpretation, of non-execution as intended and other unforeseeable risks. The longer the lines of code, the longer the processing power. Isn't that an irony on a platform which is purported to be faster than you can blink?
The above raises serious concern on adoption of smart contracts on a large scale. Crypto fans lately experienced clogging on the network due to the cryptokitties launch. The more load, the weaker the chain gets. Good thing, numerous projects are ongoing, aiming to eliminate these issues.
To address the problems we have highlighted above, here are some options.
In Antono Atonopolous' latest interview at the C4 conference, he touched on the fact that skills and expertise in the blockchain industry are lacking.
This is causing a stall in progress as finding programmers versed in Solidity (Ethereum's smart contracts programming language) is like finding a pin in an hay stack. There is a lot of work to do. That's why the new Simplicity (a Bitcoin smart contracts programming language) is being gradually introduced.
Nevertheless, there are some smart contracts platforms like NEO that support popular C# and Java, with plans to add Python sometimes soon.
As numerous languages get supported, the issue of standardization comes to the fore, which has to be addressed if smart contracts will be smart.
Agile development may have worked in traditional App development, however, adopting that in DApps development is fatal. Developers, lawyers and all stakeholders, each have to play their roles and devote their time and energy to making smart contracts smarter.