Smart Contracting is perhaps, one of the most commercially sought after application of blockchain infrastructure. Automated Smart Contracts are self-executing agreements, which remove human agency and ergo, error from the process of execution of contracts. In simpler terms, a smart contract is a computer code resting on blockchain infrastructure, containing a set of rules. The parties to the contract pre-program when & how the contract is to be executed and the computer code, upon relevant stimuli, automatically executes this command. For example, in a smart contract for sale of real estate, the code would automatically deduct money from the buyers’ account once the seller’s logged the title documents.
Smart Contracts promise efficiency, mandate compliance, and ensure transparency. These promises are based on the beauty of the underlying blockchain infrastructure. Thus, before delving into the commercial viability of smart contracting, it is imperative to decode blockchain.
Any blockchain is composed of multiple, individual nodes with each node simultaneously acting as a command-executor and a decentralized ledger. Every ledger is a discrete unit. Any movement of capital/ data on the blockchain is simultaneously reflected in all the discrete ledgers. This decentralization is what makes blockchain unique and its data authentic. This is not to say that the data on the blockchain cannot be altered – rather, any alteration is reflected in all ledgers with a time-stamp and meta-data, ensuring transparency and any alteration requires validation by multiple nodes on the blockchain, acting as a check on unilateral manipulation. The number of nodes required to manipulate data depends on the kind of underlying blockchain infrastructure – public or private.
In a public/ permission-less blockchain, any actor may create a node on the blockchain and all nodes on the blockchain are equal. Since there is no central authority, there is no single point of entry into the system. Any manipulation of data on any node of the chain, has to be validated by all the nodes on the blockchain. This guards against unilateral termination.
In contrast, in a private/ permissioned blockchain, there is a quasi-central authority/ administrator node which runs the blockchain and whose permission is necessary to create a node & enter the blockchain. The administrator node may prescribe the percentage of validation required to alter data on the blockchain, based on commercial considerations. So, if the prescribed percentage is 70%, then validation by 70% of all the nodes on the blockchain would be sufficient to pass any alteration. While implementing smart contracts, private blockchains may be adopted by proprietors to restrict access for confidence and security. It makes commercial sense for proprietors to adopt higher validation percentage to inspire confidence amongst participants over transparency. This guarantee of transparency would offer better contractual security, enabling mistrusting actors to enter into commercial arrangements.
While there may be great promise in private blockchains, current technology has its limitations. I shall focus on two in particular – first, decentralization makes it harder for courts & tribunals to intervene; and second, the flow of information into the blockchain is a potential choke-point which may be used to compromise the integrity of the smart contract.
Too Much Decentralization?
Most commercial contracts prescribe arbitration as the preferred mode for dispute settlement. Tribunals’ jurisdiction is limited to the two parties. Any direction of the Tribunal that has more than an ancillary effect on the rights of third parties, is unenforceable. A single proprietor may have several smart contracts running simultaneously on one general purpose Ethereum blockchain. Any alteration of the code to terminate one contract would affect the code behind the whole block chain. Localized alteration & rescission mechanisms are in the pipeline but as of now, do not exist. Thus, under current technology, altering the blockchain’s code may damage the integrity of the blockchain, resulting in either termination or modification of all the smart contracts. The relief of suspension for one party would thus, prejudice the rights & relationships of all the other third parties on the blockchain. No Tribunal has the requisite jurisdiction.
Additionally, the blockchain complicates enforcement of contractual remedies. Take the case of restitution. Transactions executed by smart contracts cannot be reversed without validation by a specified majority of other nodes on the blockchain. An interfering tribunal would find itself in a curious bind. Any reversal would require directions to third parties to validate that directive. Since the Tribunal lacks the competence to ensure third-party compliance, it would have to recommend the dispute to the courts.
Parties would thus, have to submit themselves to the slow Courts. They may pass this relief but this limitation makes it much harder to enforce it. Enforcement requires changing the code, which is contingent on validation by the prescribed percentage of nodes. Courts may find it hard to force compliance, especially when the nodes in the blockchain are diffuse and present in different jurisdictions.
Complicated smart contracts need a steady stream of relevant information, in order to trigger the code and execute the agreement. This presents an interesting problem, for reliance on any one source on the Internet will hitch the success of that transaction to that particular source. For instance, a smart contract for flight insurance requires precise information of flight timings in order to be accurate. The imprecision of the source may undermine the accuracy of the code and also offer a singular point of entry – malevolent actors may manipulate the flow of information to undermine the code. So, if someone hacks the source and manipulates the flight timings on the website, the entire network of flight insurance smart contracts will be vulnerable.
The solution to this security concern is in the pipeline, though. Town Crier, a software under development, collects information from a diverse range of sources and synthesizes it. This decentralizes the flow of information so even if one source is compromised, the integrity of the flow of information would remain intact. This would erase the vulnerability highlighted above, but the technology is neither perfect, nor yet available. Thus, ensuring the integrity of information coming into the blockchain remains a curious problem.
Smart Contracts have the potential to completely overhaul contracting as we know it, and open avenues for relationships that would not be possible. However, it is imperative to take into account the limitations of this technology. The decentralization, central to the blockchain may oust the jurisdiction of Tribunals, and hinder Courts from administering justice. The bar to unilateral termination may prevent actors from disrupting fruitless relationships & force them to stay on and seek the intervention of courts. The flow of information into the blockchain from a centralized source offers a potential chokepoint, which may compromise the integrity of the contract.
In my opinion, it would serve parties well to enter into a contract prior to entering into a smart contract. Amongst other things, this meta-contract should provide for indemnification guarantees, along with mandating a particular source of information so that parties may evaluate the security status of individual sources to satisfy themselves. This so to speak would go a long way in preventing parties from getting caught out by the tech. and effectively allocate risk within the transaction.