Limitations and risks of smart contracts

The smart contract is on the verge of being introduced into the usual economic circuit, occupying a place of interest with regard to legal regulation and with regard to informing the public. Being at an incipient stage, there are a number of shortcomings with regard to legal status, to the conditions and options for the development of the transaction, as well as to the effectiveness of its mode of operation, relative to the competence of users, as well as of its operating system itself.
In what follows, we will address the main points of general interest presenting the limitations of smart contracts, as well as the risks that we may find in them, but also the remedies for these shortcomings, which will become effective as contracts are consolidated.
Smart contracts and dependence on “off-chain” resources
Many smart contract-proposed use cases assume that the smart contract will receive information or parameters from resources that are not on the blockchain itself - the so-called off-chain resources. For example, let us assume that a smart crop insurance contract is programmed to transfer value to an insured party if the temperature drops below 32 degrees at any time. The smart contract will need to receive that temperature data from an agreed source. This presents two problems. Firstly, smart contracts do not have the capacity to pull data from off-chain resources; rather, that information must be “pushed” to the smart contract. Secondly, if the data in question is in constant flux and, because the code is replicated across multiple nodes in the network, different nodes may receive different information, even just seconds apart. In our example, Node-1 may receive information that the temperature is 31.9 degrees, while Node-2 may receive information that the temperature is actually 32 degrees. Given that consensus among nodes is required for a transaction to be validated, such fluctuations can cause the condition to be deemed “unsatisfied”.
Contracting parties will be able to solve this puzzle by using the so-called “oracle”. Oracles are trusted third parties who retrieve off-chain information and then push that information onto the blockchain at predetermined moments. In the example above, the oracle will monitor the daily temperature, determine whether the freeze event has occurred, and then send the information to the smart contract.
Although oracles present an elegant solution for accessing off-chain resources, this process adds another party with whom the parties would need to contract in order to carry out a smart contract, thereby somewhat diluting the decentralised benefits of smart contracts. It also introduces a potential “point of failure”. For example, an oracle could experience a system malfunction and fail to transmit the necessary information, provide erroneous data, or simply go offline. Smart contracts will need to account for these eventualities before their adoption becomes more widespread.
Objectivity and the limits of incorporating intentional ambiguity into smart contracts
The objectivity and automation required by smart contracts may run contrary to how business parties actually negotiate agreements. During negotiations, parties implicitly engage in a cost-benefit analysis, knowing that at some point there are diminishing returns in trying to think through and address every conceivable eventuality. These parties may no longer wish to spend management time or legal fees on negotiations, or they may conclude that commencing revenue-generating activity under an executed contract outweighs resolving unsettled issues. Instead, they may determine that, should an unforeseen event actually occur, they will find a solution at that time. Similarly, parties may deliberately choose to stipulate a somewhat ambiguous provision in an agreement in order to give themselves the flexibility to argue that the provision should be interpreted in their favour. This approach to contracting is more difficult with smart contracts, where computer code requires a precision not found in the negotiation of written contracts. A smart contract cannot include ambiguous terms, nor can certain potential scenarios be left unaddressed. As a result, parties to smart contracts may find that the transaction costs of negotiating complex smart contracts exceed those of a traditional written contract.
It will take some time for those adopting smart contracts in a given industry to determine which provisions are sufficiently objective to lend themselves to smart contract execution. As noted, to date, most smart contracts perform relatively simple tasks in which the parameters of “if/then” commands are clear. As smart contracts grow in complexity, parties may disagree as to whether a particular contractual provision can be stipulated with the objectivity that a smart contract requires.
Do smart contracts really guarantee payment?
A frequently highlighted benefit of smart contracts is that they can automate payment without the need for demand notices or other collection expenses, and without the need to apply to the courts to obtain a judgment ordering payment. Although this is indeed true for simpler use cases, it may be less accurate in complex commercial relationships. The reality is that parties are constantly moving funds throughout the organisation and do not "park" the total sums owed under a long-term contract in anticipation of future payment requirements. Similarly, a person obtaining a loan is unlikely to keep the full loan amount in a specified wallet linked to the smart contract. Rather, the borrower will use those funds, financing the required repayments on an ad-hoc basis.
If the party owing sums under the smart contract fails to fund the wallet in time, a smart contract seeking to transfer money from that wallet upon a triggering event may find that the required funds are not available. Introducing a further step into the process, such as having the smart contract seek to draw funds from other wallets, or having the wallet "self-fund" from other sources, would not solve the problem if those wallets or sources of funds also lack the necessary payment amounts. Parties might attempt to address this issue through a written requirement that a wallet connected to the smart contract must always hold a minimum amount, but this solution would merely give the party a stronger legal argument should the dispute be brought before the courts. It would not make the smart contract's payment operation fully automatic. Thus, although smart contracts will make payments far more efficient, they may not eliminate the need to bring payment disputes before the courts.
Allocation of risks for attacks and failures
Smart contracts introduce an additional risk that does not exist in most written contractual relationships - the possibility of the contract being hacked, or the possibility that the protocol or code simply contains an unintended programming error. Given the relative security of blockchains, these concepts are closely linked; that is, most "hacks" associated with blockchain technology are in fact exploitations of an unintended coding error. As with many computer code errors, these flaws are not obvious, but rather become apparent only after they have been exploited. For example, in 2017, an attacker managed to extract 31 million dollars' worth of ether from several multi-signature wallets offered by Parity. Multi-signature wallets add a layer of security because they require more than one private key to access the wallet. However, in the Parity attack, the attacker managed to exploit a flaw in Parity's code by reinitialising the smart contract and becoming the sole owner of the multi-signature wallets. Parties to a smart contract will need to consider how the risk and liability for unintended coding errors and resulting exploits are allocated between them and, potentially, with any third-party developers or insurers of the smart contract.
Conclusion
We are, of course, currently at an early stage of understanding and experimenting with the dynamics of smart contracts, and so a certain degree of imprecision is only natural. However, in a note of contrast to the present article, we will conclude by drawing attention to the greatest advantage of smart contracts, namely that these contracts are underpinned by a sustainable, developing system capable of ensuring protection and transparency for electronic agreements - a system that is contributing to a considerable transformation of legal, social and business ecosystems.