This article had to be read for lecture 6 "Smart Contracts and DApps" of the 2018 MIT lecture on blockchain. The article is written by the Chamber of Digital Commerce, an organization with the aim of promoting the acceptance and use of digital assets and blockchain-based technologies.
Nick Szabo’s foreword:
A smart contract in its purest form functions like an if-statement; if a debtor who agreed to a collateral smart contract pays in time, the consequence for him or her will be different than when he does not. In smart contracts, there are many possibilities; between big enterprises, peer-to-peer (his favorite) and even between machines (for example in AI and the Internet of Things). Blockchain technology is necessary for smart contracts to become commonplace in business transactions etc.
What are Smart Contracts? Nick Szabo’s definition: “Smart contracts are a set of promises (contractual / noncontractual; contractual terms / rules), specified in digital form (electronically, code and software, contractual clauses and functional outcomes), including protocols (an algorithm with rules for how parties process data in relation to smart contracts, technology-enabled, rules-based actions) , within which the parties perform (automated performance, irrevocable smart contracts, encoded outcomes) on these promises” (Szabo 1996).
What are the different models for smart contracts? (1 to 3 are encoding natural language, 4 is only automation) - 1) Contract entirely in code 2) Contract in code with separate natural language version 3) “Split” natural language contract with encoded performance 4) Natural language contract with encoded payment mechanism (4 is challenging from a legal perspective, because it gives us the question”has a legally binding contract been formed?”)
What makes up a smart contract? A blockchain, with blocks (block = software-generated container that bundles together the messages relating to a particular smart contract). The messages can be the in- or output of smart contract programming logic or they can point to other software.
How do Smart Contracts work? First you have to understand the different types of blockchains: 1) permissioned (only certain people are allowed on the blockchained, allowed by an administrator) 2) permissionless (for example Bitcoin blockchain: everyone is free to submit messages for processing and/or be involved it he process of reaching consensus) 3) consensus protocol (an algorithm that achieves consensus between participants to decide what a blockchain should contain at a given time).
Secondly, be sure to understand the anatomy of a smart contract: 1) identifying agreement (agreements between parties) 2) set conditions (smart contracts can be initiated by parties or by meeting certain conditions) 3) code the business logic (arrangement will automatically perform when conditions are met) 4) encryption & blockchain technology (encryption secures authentication and verification between parties) 5) execution & processing (when consensus is reached, the smart contract is written on a block, the code gets executed; the nodes have to reach an approval of more than 50%) 6) network updates (after performance of the smart contract, the ledgers on the network are updated and because it’s the blockchain it can’t be altered; the blockchain is append only).
Thirdly, you need to understand how to initiate a smart contract: blockchains use PKI (public key encryption infrastructure; a public and a private key are generated.). On a permissionless blockchain, an initiating participant can download the software, use an alphanumeric address to generate a public key and publish the public keys. A private key is generated and held secure by the software. The initiator sends its public address to send a message to the other party, which message is picked up by the other party’s node (his/her computer). The message is signed off by the initiator’s private key. When a message is sent, the message is encrypted to unreadable cipher text. Only the private key of the recipient can make the message readable again in plain text.
(To understand the 12 possible uses cases for smart contracts, it is necessary to understand what the internet of Things is, so I took this Wikipedia definition:
Internet of things = The Internet of things describes physical objects with sensors, processing ability, software, and other technologies that connect and exchange data with other devices and systems over the Internet or other communications networks. )
The 12 possible Use cases for Smart Contracts:
1) Digital Identity
Smart contracts allow individuals to decide which personal information (for example reputation, data and digital assets) gets to be seen by which party,
2) Records
Smart contracts can digitize, renew and release UCC (Uniform Commercial Code, laws of commerce) and perfect a lender’s security interest (security interest = when a debtor doesn’t pay his loan in time, the creditor gets to take a collateral) when a loan is created
3) Securities
Smart contracts can diminish intermediaries because of an automatization of the payment of dividends, stock splits and liability management and reduce counterparty risk.
4) Trade Finance
A higher liquidity of financial assets, because through smart contracts international transfers can get a Letter of Credit faster and trade payment initiation can occur faster.
5) Derivatives
A trade won’t be duplicated because trades are verified and lifecycle events (order, receipt, execution through to settlement of the trade in a systematic manner) can be executed with the use of smart contracts.
6) Financial Data Recording
Smart contracts enable uniform financial data across organizations, which simplifies and diminishes the costs of financial reporting, auditing and assurance (assurance = (according to this google definition: ) a positive declaration intended to give confidence; a promise.)
7) Mortgages
A mortgage can be taken out with more ease (because less complicated) and is less prone to errors through the use of smart contracts.
8) Land Title Recording
Property transfers can occur through smart contracts, so that fraud and costs are diminished.
9) Supply Chain
Smart contracts make every step of a supply chain visible. Internet of things devices can write to a smart contract as a product moves from the factory to the store.
10) Auto insurance
In case of a car accident, smart contracts can record the policy, driving record and reports of all drivers, use the internet of things, and automatically execute initial claims.
11) Clinical Trials
Data can be shared between institutions and computations can be used on that data, while at the same time maintaining the patients’ privacy.
12) Cancer Research
Cancer data can be shared to form a big database with which researchers can work, while at the same time maintaining the privacy of cancer patients.