by Cindy Huynh
While the term “smart contract” piques a lot of interest, especially since they can remove intermediaries in the construction, execution, and enforcement of a contract, and enforce contracts automatically, trustlessly, and impartially, they may not be as smart as we believe them to be.
Jimmy Song, a bitcoin educator, developer, and entrepreneur, believes that smart contracts are unfortunately not very intelligent and come with a host of problems concerning security and truthfulness.
What is a Smart Contract
A smart contract is a software wherein conditions are evaluated and executed by computer code. The general public believes that smart contracts are clever because it has trustless execution.
Trustless execution provides many different perks. It removes the need to be dependent on a third party to execute the contract on certain conditions. Furthermore, it can also decrease the dependency on lawyers and the legal system if something goes wrong. A smart contract, therefore, executes on time objectively.
Song believes that the ability to execute according to agreed-to consequence make “smart contracts powerful,” but not necessarily innately intelligent.
A “Truly Intelligent” contract
A truly intelligent contract would factor into account a variety of circumstances. Instead of executing based on agreed-to consequences, the intelligent contract could assess the spirit of the contract and ensure that rulings are fair even when circumstances are not.
Song argued that smart contracts “follow the rules down to a T and can’t take secondary considerations or the spirit of the law into account.” His biggest concern when it comes to a trustless contract is that there’s very little room of ambiguity.
The problem with Ethereum’s smart contracts
There is a common misbelief that smart contracts only occur in Ethereum. Smart contracts have existed long before. Even Bitcoin in 2009 had a smart contract language. However, the primary difference between Bitcoin’s language and Ethereum’s is that the latter is Turing-complete. Solidity, Ethereum’s smart contract language allows developers to create significantly more complex contracts. However, since there is greater complexity, the contracts are much harder to analyze.
Complex contracts are also harder to secure which adds more uncertainty. “Securing a Turing-complete smart contract becomes the equivalent of proving that a computer program does not have bugs,” said Song. “We know this is very difficult as nearly every computer program in existence has bugs.
Ethereum’s solution is to place the responsibility on smart-contract developers who have significant centralizing consequences. An example of these consequences was the Decentralized Autonomous Organization (DAO) hack. The hack supposedly resulted due to a poorly secured code. While the incident was coined as a hack, the hacker simply found a way to take advantage of the loophole in the smart contract.