Page 13 - EngineerIT June 2022
P. 13
LEGAL OPINION
How “smart” is a smart contract really?
By Tebogo Motloutsi CA, and Danie Pienaar, partner, Spoor & Fisher
lthough smart contracts have
become a hot topic due to the
Ablockchain revolution, the term
“smart contract” was first actually used
back in the 1990’s by American computer
scientist Nick Szabo. The main purpose of
a smart contract is to enable two or more
parties to transact with each other based
on trust and without the need for an
intermediary. In essence, a smart contract
is a computer program that is cast onto
a blockchain network and that executes
certain instructions when certain pre-set
conditions are fulfilled. The computer Tebogo Motloutsi Danie Pienaar
program therefore includes a number
of “if/then” statements whereby if, for parties. The code should therefore reflect the actual terms agreed upon by the parties
example, a certain condition A is met, a and cater for all scenarios which can reasonably be expected. The reason for this is that
certain step B is executed automatically. once a smart contract has been implemented on a blockchain network, it is no longer
Since this process is automated on the possible to amend it. It is therefore important to make sure that the terms which the
blockchain network, no intermediary is parties have agreed on (e.g. orally or via email) are correctly reflected in the computer
therefore required. code. Furthermore, if the computer code does not cater for a specific situation, and
By way of background, there are that situation arises, then the smart contract can essentially ‘crash’, thereby making it
mainly two types of smart contracts inoperable. For example, a smart contract may be programmed to collect money at the
which parties may enter into, namely end of the month from a wallet of a party. However on the collection day, the user does
code-only smart contracts and ancillary not have any available funds in the wallet. If the smart contract is not programmed in a
smart contracts. Code-only smart way to circumvent this scenario, then it may end up ‘crashing’.
contracts refer to contracts where It is therefore essential that the person who is programming the smart contract be
there is no underlying signed, written presented with an exhaustive list of all the “if/then” functions which cater for all possible
agreement between the parties and scenarios. Once programmed, it is also important that the program code be validated in
where all the conditions are solely set order to ensure that the code actually implements all the functions in the correct manner.
out in the actual smart contract. Ancillary For the validation, an independent third party can be briefed in order to conduct the
smart contracts, on the other hand, investigation.
are dependent on a signed, written In some instances, smart contracts may need information from “off-chain” resources
agreement which has been entered (i.e. outside the blockchain) in order to perform certain functions. However, smart
into between the parties. An ancillary contracts are not able to “pull” information into the blockchain. The information
smart contract is therefore effectively an therefore needs to be introduced into the blockchain by another party, which is also
ancillary to the main written agreement referred to as an “oracle”. An oracle, in the context of smart contracts, is an independent
and would be used to implement certain/ third party that would feed information into the blockchain network, so that the smart
all parts of the agreement (e.g. to contract can execute the relevant instructions. The reliance on an oracle therefore does
perform certain payment actions which increase the level of risk, since failure by the oracle to introduce the correct information
are set out in the written agreement). in a timely manner could lead to various unwanted consequences. However, in many
At first glance, smart contracts instances it is unavoidable due to the nature of the contract.
seem to be a very effective solution From the above, it should be apparent that smart contracts can by a very effective
which can be applied in a variety of tool, but it is at present still a purely rule-based system and therefore does not include
different applications. However, it any artificial intelligence (AI) which allows the smart contract to learn over time and make
should be borne in mind that a smart certain judgement calls. However, with the rapid developments in AI, blockchain and
contract is only as “smart” as the smart contracts, the implementation of AI within smart contracts might not be too far
actual computer code which embodies away. If successfully implemented, AI could address many of the difficulties which current
the underlying agreement between rule-based smart contracts are faced with. n
EngineerIT | June 2022 | 11