With the rise of distributed ledger technology and the corresponding ability to share and mutually agree on information, developers have begun to expand the scope of applications on and uses of blockchain technology. As a result, blockchain technology developers have moved beyond merely tracking the movement of cryptocurrencies, and newer networks (such as Ethereum and Ripple) permit network users to run stand-alone applications on top of the underlying blockchain. The most prominent of these applications are what are commonly referred to as “smart contracts,” and as smart contracts become more commonplace throughout the world, an understanding of how these contracts work and the issues associated with this technology will become crucial to successful business operations.
In essence, a “smart contract” is a self-executing contract with the terms of the contract converted into lines of code that exist on a blockchain network. To craft the necessary code, the parties to the contract must agree on the set parameters of the contract:
- Contractual obligations of the parties in the smart contract
- The contractual consequences once all parties have satisfied their obligations
- The contractual consequences if any party fails to satisfy their obligations
Once these parameters are finalized, the language is converted into code and written into the blockchain network. As a result, the outcomes are predefined in the contract and dependent on the actions of the parties to the smart contract. When both parties fulfill their obligations, the smart contract (acting in the role that would previously have been taken by a trusted intermediary, such as a bank, trustee or escrow agent) will automatically take action. For example, two parties may desire to create a contract whereby a seller will deliver a package to a buyer in exchange for a set delivery fee.
This contract could take the form of a smart contract running on a blockchain such that once notification of the package’s delivery is received by the blockchain, the smart contract would automatically trigger payment of the delivery fee to the seller by sending cryptocurrency from buyer to seller without any further human approvals or intermediary action. Unlike in traditional delivery contracts, payment is made via the blockchain, which automatically verifies the validity of the transaction during the transmission process, meaning no third-party payment verification is necessary and seller has instant access to the cryptocurrency once all obligations have been performed under the smart contract.
THE BENFITS OF SMART CONTRACTS
By utilizing this approach, the parties to the smart contract could receive significant benefits. First, smart contracts are shared on a distributed ledger (though party anonymity can be incorporated into the coding). The totality of the smart contract would be recorded on every network participant’s computer. The parties to the smart contract cannot claim the contract was altered or misplaced post-signing, as the immutability of the blockchain prevents any unauthorized edits to the smart contract.
Second, the cryptographic protections within the blockchain extend to any smart contracts on the blockchain. This cryptographic protection means smart contracts are better protected from hacking or other outside interference. Any change in the smart contract or its triggering provisions would require a simultaneous alteration of all coding contained on the blockchain, which would require hacking every network computer at the same time.
Third, smart contracts increase speed and efficiency of performance. The automatic triggers within smart contracts preclude the necessity for third-party intermediaries traditionally used to verify performance. Instead of moving funds between two parties via a wire transfer or other transmission between two financial institutions, a smart contract could send bitcoin or any other cryptocurrency directly between the parties, and the receiving party would have immediate access to the funds without the time needed to verify traditional money transfers.
Lastly, smart contracts may cut down on the potential for litigation. The parties to a smart contract are bound by the rules and determinations of the underlying coding, which is agreed to in advance by the parties, and parties are held to the resulting outcome generated by running this code without any human involvement or interpretation. By limiting human involvement in determining the outcome, the chances of a dispute regarding the smart contract’s outcome or the process of effectuating the rules and determinations of the contract can be minimized.
SOME INHERENT SNAGS
Despite all of these benefits, however, potential complications may arise from running the smart contract on a blockchain. Most importantly, the distributed and immutable nature of blockchain technology means the code that makes up a smart contract cannot change once that code is appended to a block in the blockchain. As a result, the results generated by running the code will occur automatically. When coupled together, these concepts mean that correcting any errors to the code or underlying contractual parameters can be time consuming or impossible (depending on the rules of the underlying blockchain network). If proper precautions are not taken to assure the codes validity or fully understand the functionality of the underlying network, any erroneous results generated by faulty coding or underlying contractual parameters could be permanent, and an agreement outside the “four corners” of the smart contract may be necessary to fully undo any erroneous results.
In the example of a package delivery contract discussed above, if the smart contract code contained an error in purchase price or delivery address, the smart contract would automatically make payment of the contract price upon delivery of the package to the contract address, regardless of any error. Smart contracts execute automatically upon the occurrence of a set of predetermined events without human oversight, and the smart contract will not correct any errors in the set of predetermined events or the coded results or account for any unforeseen events prior to execution. If the parties did not include a mechanism within the smart contracts code for correcting these errors or amending the smart contract, the parties will have to mutually agree on fixing any errors, which may not be feasible absent litigation – and rendered further complicated to the extent the parties are unaware of their actual counterparty given the potential for pseudo-anonymous interactions over a blockchain network.
Furthermore, a blockchain network does not automatically interact with the outside world but can only act on data within that network’s blockchain. Consequently, if a smart contract’s actions are triggered by some real-world event, the smart contract would rely on what is called an “oracle” to provide notice of the occurrence of that event to the blockchain. An “oracle” is a conventional piece of software running on an external server that writes data onto the blockchain. The oracle serves as the link between the blockchain and the outside world, with the smart contract provisions associated with the oracle taking effect once the oracle has provided notice of the occurrence of the underlying event at issue to the blockchain. Because these oracles exist outside the security of the blockchain, however, each oracle is subject to outside interference via a hack of the oracle coding or inputs of false information into the oracle. If such outside interference occurs, the triggers within the smart contract may take effect even if the triggering event has not occurred in the outside world.
Going back to the delivery example, an oracle connected to a package tracking app may serve as the trigger for delivery of payment to the seller, meaning the blockchain would transfer ownership of the cryptocurrency from buyer to seller once the oracle receives notice of delivery via the tracking number assigned to the package in the delivery app and writes the code confirming delivery to the blockchain. In this situation, a hack of the third-party package tracking app (which would most likely run on internal severs and not on the blockchain) to indicate the package has been delivered prior to actually delivery would trigger the transmission of the payment to seller automatically, even if the buyer never receives the package. Additionally, if the smart contracts coding does not allow for amendments by the parties post-execution, reversing any payments triggered by the smart contract may require the mutual agreement of the parties or litigation.
DO YOUR HOMEWORK FIRST
Thus, as the use of smart contracts and blockchains become increasingly common across all industries and markets, it is important to understand the core technology driving these innovations, as well as the benefits and risks associated with their use. Because smart contracts execute automatically and exist in immutable perpetuity on the blockchain network, careful preparation and experience is necessary to assure the proper outcome for all contracting parties. If you would like to learn more about how McDonald Hopkins can help your business properly institute smart contracts into your business practice and make the most of the opportunities created by this emerging technology, please contact one of our attorneys to discuss.
For a primer on the basics of blockchain technology, please see the authors’ previous blog post “Blockchain technology: It's not just about cryptocurrency."