Smart contracts are contracts which are written in computer code on a blockchain according to the terms set out by the parties to such contract and which are self-executing in the manner pre-determined by said code. Nick Szabo, known for being the creator of smart contracts, famously described them as “A set of promises, specified in digital form, including protocols within which the parties perform on these promises”. He also used the “vending machine” analogy, hailing it as being the “primitive ancestor of smart contracts”, to further explain the way they work by noting that the machine takes in coins, and via a simple mechanism, dispenses both change and product fairly.
The most salient characteristics of smart contracts include:
- Autonomy: This implies that once the deal has been set and the smart contract has been set into motion, it will take place with no participation by the parties. This guarantees that the promised obligations would be executed as planned, e.g. in the case of a sale, provided that the contract is coded correctly, there cannot be any doubt that the funds would be transferred without a transfer of title or vice versa.
- Accuracy: Since the smart contract operates in a pre-set manner and without the need for human intervention, there is no room for human error. Said possibility for error is also reduced since the smart contract replaces heaps of paperwork that are normally required to execute a transaction. Once again, this benefit only exists provided that the code is written correctly.
- Immutability: Once a smart contract is deployed, the code cannot be changed by a party unilaterally.
The immutability feature is hailed by many being as a blessing since the performance of the contract is guaranteed to take place in exactly the same manner in which it is coded; the contract does not allow for any modifications and/or reversal. Furthermore, unless programmed to do otherwise, it will remain on the blockchain forever and cannot be misplaced or lost. The history of the transactions forming part of the contract is also recorded on the blockchain forever and thus this too makes for greater transparency and safekeeping.
However, the dark side of the immutability concept in smart contracts lies mainly in the fact that in the event of any errors made in the code, the immutability feature of a smart contract prevents it from being rectified. Should a weakness or error in said contract be detected following deployment of the contract, the latter would simply have to continue to run its course with potentially devastating consequences. Similarly, in the event that circumstances change, also requiring an amendment to this contract, this also cannot be done.
Apart from these being negative factors in themselves, they lead to further negatives in that they give rise to the need for extensive and possibly expensive reviews of the smart contract prior to its deployment since they would be impossible to alter should the need arise.