A smart contract is simply a computer protocol designed to automate the performance of a contract. While the concept is popularly tied to publicly traded cryptocurrencies such as bitcoin and eth, in the business context smart contracts and distributed ledgers are employed on a private, permissioned basis without the use of cryptocurrencies or tokens of any sort.
My company, Data Gumbo, provides a platform for the creation and execution of industrial smart contracts. Think of smart contracts as computer code that captures the business rules and logic of an existing natural language smart contract and uses data collected from the field to calculate payments. In most B2B situations, the smart contract does not replace the legal contract, rather it complements its execution. Whether smart contracts are legally binding as standalone constructs depends on both the situation and the jurisdiction[1], but from our experience, the intent is to use the smart contract to improve the execution of a traditionally conceived legal contract.
In addition to the commercial business case for utilizing smart contracts touched on in the first post, the use of smart contracts drives additional business benefits:
Smart contracts typically collect data from various systems utilized by buyers, sellers and third parties like trucking companies, drilling contractors or railways as inputs for business logic. The exact sources of data will vary by the use case but are generally digital. I’ll go into more detail about how to approach data acquisition in a subsequent post. In a Data Gumbo smart contract, the high level flow of information looks like this:
At a high level, a smart contract system itself looks like this:
The creation of a new smart contract starts with the contract analysis of the existing natural language contract.
While most companies believe that their contracts are unique and special, when looking at it from a coding perspective, contracts tend to be the same to the extent the goods and services they cover are similar, with variation around the edges such as performance payments or key performance indicators (KPIs). Even KPIs tend to be very similar (even if weighted or paid differently) within a given industry.
Here’s an example from a drilling services contract we analyzed, breaking different services down by the type of transactional metrics / triggers the contract’s language described:
In this case some of the products and services had multiple ways in which they might be charged depending a set of rules or the requirement for a combination of equipment, consumables and qualified personnel on site at the drilling location in order to trigger payments.
Once the initial analysis sorts out the different types of contract terms, business analysts can then group specific contract clauses together into blocks that calculated the same way – for example paying for services by the meter. Here is an example tracing the start/stop trigger for a meter rate transaction, the various potentially applicable modifications to the rate, and the rule to trigger an invoice:
The subject matter experts (SMEs) from buyer and seller will then agree on a black and white definition for each set of clauses tied to data collected at the point of service delivery. This is a critical step because the smart contract is in fact a collection of dumb scripts – completely deterministic and incapable of nuance. We find this is the aspect that audit teams value the most. At Data Gumbo, we find it useful to take the agreed logic that results and turn it into logical flow diagrams that are clear enough that the SMEs can read and agree upon, but also detailed and logical enough for a programmer to turn into code. Here is an example of a logical flow diagram for wireline logging showing inputs, calculations, and outputs:
The team then repeats this process for the rest of the contract, identifying the required data for each type of product or service. A simple example is a smart contract for the delivery of production chemicals to a remote location:
The team identified the inputs, the business logic including triggers, points of validation, calculations and invoicing rules. The smart contract then continuously on data provided both the parties:
Which produces transaction blocks and invoice blocks:
A key point here: The smart contract produces the invoice objects that the parties need on a configurable basis. Rather than checking a manually created invoice, in most cases the smart contract uses agreed data, logic and pricing to synthesize a pre-reconciled, pre-approved invoice ready to post in the buyer’s accounts payable and seller’s accounts receivable systems.
There are some key exceptions to the automation flow:
In conclusion, smart contracts are simply computer code that automates the execution of a legal contract between parties. Creating a smart contract requires interpretation of existing contract language, selection of source data, agreement on business rules, and integration to existing legacy financial systems. But that’s the easy part. In the next section, we’ll discuss what we’ve learned about the organizational change management necessary to embrace and implement the opportunity created by smart contracts.
[1] https://harrisbricken.com/blog/are-smart-contracts-legal-contracts/