This is a short and sweet guide to smart contracts for those that have no idea what a smart contract is:
“One of the most important elements of any transaction, be it a trade for goods or services, is trust. Both parties need to trust that the other will fulfil their end of the bargain. One classic method of ensuring that has been contracts — but legal documents require expertise and oversight to enforce them. Smart contracts have the potential to change all that.
What are smart contracts? In many ways, they’re no different from a contract you might have signed to complete a job, or buy a house. Unlike those, however, they’re digital and automated. Smart contracts write the agreement of the contract directly into lines of code, doing away with the need for a central organization to approve that either party completes their end of the agreement. A smart contract can do that with the help of a distributed network.
Although most commonly spoken about in the same breath as cryptocurrencies like Ethereum, smart contracts have the potential to take blockchain technology beyond Bitcoin and its altcoins and enable a world where trust is digitally secured.”
The article then explains what a blockchain is before discussing the programming of a smart contract. If there is any area that might have benefit fro a deeper dive, this was likely it given the challenges of software accuracy and risks of a touring complete implementation in a distributed runtime environment:
“Where a Bitcoin smart contract is limited to the use of its own currency, smart contracts built on platforms like Ethereum can go much further. Ethereum offers a decentralized virtual machine that is “Turing Complete.” That is, its code base supports a broader use of instructions and can, therefore, be used for a wider variety of purposes beyond the transfer of Ethereum’s token, Ether.
Smart contracts are programmable and therefore read just like programmed applications. ‘If this happens, then do that.’”
The article does an admirable job of describing concerns:
“As powerful as smart contracts could be, they aren’t quite ready to replace every trust system we have in place already. As described in the examples above, a complicated transaction utilizing smart contracts would likely require multiple smart contracts linked together to cover all of the potential ‘if’ situations that would crop up as part of the transaction.
There’s also the “Oracle Problem,” to consider, whereby smart contracts themselves cannot interact directly with the real world. If smart contracts are involved in transactions involving real-world actions, such as professional to client services, they need an entity (an “oracle”) to tell them that that event has taken place.
That’s a real security risk. If you rely on a single oracle for a smart contract, then you have effectively eliminated the decentralizing benefit of a smart contract entirely and created a single point of failure. A decentralized oracle network makes it hard to trust anyone within that network.
Alongside the yet-to-be-fixed Oracle Problem, there also exists the security problem faced by smart contracts. Like any programmed code, smart contracts can have vulnerabilities, and that becomes even more likely as complexity increases. Following a recent research effort into Ethereum smart contracts, one company found tens of thousands of bugged contracts that could allow for the theft of tokens with ease. There is even debate as to whether such contract exploitation is illegal, since the flaws are built into the contracts themselves.”
Overview by Tim Sloane, VP, Payments Innovation at Mercator Advisory Group
Read the quoted story here