The ‘Code-as-Law’ Debate – Should Software Codes in Smart Legal Contracts Replace the Law? (Part 2 of 2)

The term ‘Code-as-Law’ has been used to denote that the underlying software code becomes a regulator of the architecture of the cyberspace. It has become a libertarian ideal upheld by some smart contracts proponents, arguing that technology alone is able to provide sufficient regulatory parameters to govern smart contracts. 


Technologists often have a simplified view of the role of the law in transactions and assume that all dimensions of law can be automated. One of which is contract interpretation. While smart contracts can be helpful in advancing the consistency of interpretation and eliminate the gap-filling role of the courts, the major obstacle to automated interpretation lies within the coding process, and whether parties and their counsels possess the technical capacity to code their own interpretative rules. 


Further, prominent subjective terms like ‘reasonableness’ would be complicated to code, at least in the current state of technology. While smart contracts could facilitate a formalist interpretation of contracts based purely on the terms in the agreements instead of the substantive events occurred and the broader intention of the parties involved, it fails to achieve a more comprehensive, contextual interpretation. Difficulties also arise when a smart contract would judge whether these terms were being complied with. Omission of such is impossible as they are used to give a particular meaning to a transaction between sophisticated commercial relationships. Traditionally, these could only be identified by resorting to the correct judicial exposition. It is unclear how smart contracts are going to tackle such a problem. 


Some programmers may propound the idea that smart contracts solve bad legal drafting and that ambiguity is inherently flawed. However, as Mik put it, ‘ambiguity is a feature, not a bug’. Many contractual provisions are purposively broad to ensure a certain degree of leeway. Traditionally, contracts work perfectly without providing all the eventualities. This robustness given by software code destroys the necessary adaptability and flexibility of the current law, especially in long-term contractual relationships where the circumstances are likely to change post-contract. 


Another challenge for ‘Code-as-Law’ is how disputes are resolved when events or circumstances unforeseen by the software code occur. For example, there may be frauds and the other party may wish to void the contract, or unforeseen circumstances occurred outside the control of the parties, which normally triggers a force majeure clause in a traditional contract. However, due to the automated and immutable character of smart contracts, parties are unable to revert or adjust their positions. 


It could be conclusive here that the inherent nature of software codes makes it unsuitable to be utilised as a regulatory mechanism. It is therefore a matter of urgency for the law to keep up with the development of web 3.0.


By Hendry Wong