What is a blockchain “Smart Contract”?
ActionCyberLaw™ simple definition: A “smart contract” is computer code that is dependent upon the distributed ledger blockchain code protocol to activate its instructions autonomously and thereby perform some additional function required by the basic blockchain programming.
“Smart Contract” Basics
To start, not only is use of the term ‘smart contract’ confusing in this business context with the blockchain technology, but there is more than one definition in use and no universal agreement at this time. For this discussion, we will utilize the generally accepted definition stated above.
Second, a “smart contract” in blockchain terms has nothing to do with a “smart” contract thought up by humans to complete a transaction in goods or services. In that sense, it is an unfortunate choice of words producing endless argument and confusion.
To explain ‘smart contract’ blockchain functionality, an analogy to the normal written business legal ‘contract’ is that the blockchain ‘smart contract’ computer code contains a separate set of instructions that when completed provide the agreed upon result (in that sense just like a written business legal ‘contract’). Second, it is ‘smart’ because the instructions execute automatically when initiated by the blockchain code, usually without further human input.
We note that the Hyperledger blockchain protocol eschews the term ‘smart contract’ and uses the term ‘chaincode’ instead. For example, the Hyperledger blockchain code may contain an additional ‘chaincode’ transaction processor function that initiates a subsequent program as part of the original blockchain protocol. This subsequent program may then include actions required by a dependent legal contract. See the Hyperledger Composer and Cicero initiatives for a more in-depth explanation.
However, a better term would be ‘depcode’ (dependent-code) instead of ‘smart contract’, as it is a subset of code dependent upon blockchain instructions to execute, and the term ‘chaincode’ is descriptive of the original blockchain instructions, and thus the term does not differentiate. On the other hand, ‘depcode’ sounds like esoteric computer speak, is not as interesting as ‘chaincode’ or ‘smart contract’, and thus would never be adopted. Besides, investors like to think they are smart because their investments have ‘smart contracts’! What could go possibly wrong with a ‘smart contract’?
Blockchain and ‘smart contracts’ could also be characterized as a master-servant code relationship, but that then sounds too much like lawyer-speak and would never be adopted either.
Let Confusion reign and rain!
In conclusion, ‘smart contract’ dependent code in the blockchain protocol contains instructions to initiate a subsequent action. In a more robust design, one or more fully functional computer programs could be activated autonomously from a preprogrammed time or event. One significant advantage is that these dependent protocols may be triggered automatically, or with minimal human involvement, such as the need for a digital signature prior to transaction completion. In the Hyperledger Cicero example, a sophisticated set of dependent chaincode instructions could activate a subsequent set of instructions required to initiate, support and/or conclude a legal contract.