SmartContracts

Trying to clarify what it is, could be and should be

Sam Liban
4 min readOct 30, 2017

What is a contract?

From Wikipedia: A contract is a voluntary arrangement between two or more parties that is enforceable by law as a binding legal agreement.

What is a SmartContract?

The term seems to have been coined by Nick Szabo as early as in 1996. I am not sure, if there is a really common understanding or even definition of the term, though. Which is the reason for this reasoining ;-)

To me, a SmartContract seems to be at least two different things at the moment:

1. It can be a payment or programmable action with simple or complex conditions attached to that payment, a construct of conditions for multiple actions from payment to any imaginable programmable and automated action (e.g. access management as for smart keys/locks).

2. It can also be defined as a “truly digitized contract” including the execution of the contract based consequences such as penalties or rewards. And this truly digitized contract is what seems to get peoples heads dizzy and excites the most — while the use cases at this moment mostly refer to point 1.

Conditional payments and programmable actions:

”If-Then-Else-diagram” from
P. Kemp attained at https://en.wikipedia.org/wiki/File:If-Then-Else-diagram.svg; CC0 1.0

At this moment most “SmartContracts” seem to be that: A payment (or (set of) programmable actions) connected with conditions. A condition being a combination of one or more status definition (IF) and one or more resulting actions (THEN & ELSE).
The easiest I can think of is the payment at a specific date (if it is the first of a month, pay Medium.com 0.025 ETH for their awesome platform, else keep the money).
ICO (Initial Coin Offering) SmartContracts, possibly the most known/talked about implementation this year, are also such constructs — just a bit more complex as they add to the date other conditions such as the amount of tokens/coins you get for a specific amount of currencies such as ETH or BTC (or others) and how you can access these new tokens/coins.

Many use cases in industries like finance or supply chain management also involve a sometimes even more complex conditional payments scheme or “resulting action” (for non financial actions such as in IoT) structures.

So the main advantage of a SmartContract as a simple or complex conditional payment seems to be the transparency of the contract for all parties and the automation of the resulting actions of/for certain conditions without the interference of anyone?
(That is the theory — in reality, we have seen (White, Grey or Black Hat) hackers proving how severe the interference can be if for example the coding of the SmartContracts is handled too easily or done too early (as the underlying Blockchain may also have its vulnerabilities)).

Looking at this definition in a more abstract way: what people call a SmartContract often simply describes a more or less complex conditional statement (if-then-else constructs in a programming language) on a blockchain ;-)

Truly digitized contracts

Bill of sale of a male slave and a building in Shuruppak, Sumerian tablet, circa 2600 BC; Photo by Marie-Lan Nguyen (2009); (CC BY 2.5)

Humans share agreements. All the time. But with civilization they started to document them. Thus creating contracts on stones as above, mostly on paper…now we are looking at creating contracts as code.

To me — as neither a developer nor a lawyer — this seems a moonshot. And like many moonshots, we will finally reach it, after failing and learning from trying to achieve it. And there are challenges:

Because true contracts always need to reflect and interact with the given jurisdiction (that is the laws of a specific political area) they are placed in.
At this moment, our network, the Internet, is mostly a global infrastructure — Thanks to the Cold War for that! And most of us want to keep it that way, right?

So one issue with this definition for me is, we would want to create a jurisdiction bound “product”, that we set on a global infrastructure.

But lets imagine, a jurisdiction like Germany or the EU would create a framework to allow it.

In which cases would a digitized contract make sense?

For automated processes or such that can be automated, now or soon, as the automation connected with a legal framework for its execution makes sense in some cases (between 2 or more parties and/or inside one organization between 2 or more parties)?

A decentralized energy grid surely could work well with a set or a complex SmartContract.

Still open issues/questions (for me)

If SmartContracs are to be truly digitized contracts — how do we ensure, not only coders can read them? Or will we have a new breed of law-coders?

If we really wanted to create truly digitized contracts, would we not need an infrastructure, that allows to interpret the underlying code in at least two dimensions specification (what it does — readable for all) and implementation (how it does it — readable for inspectors)?
Would this not mean it needs to be a very simple programming language with as few functions/operations as possible? Because using more complex languages or infrastructures may hold the possibility of unforeseeable yet exploitable vulnerabilities?

And last — if a contract is a documented agreement of two or more parties — would we not need to also incorporate the road to the agreement in code? The intended goal of the agreement, offers, change requests & considerations, acceptances & rejections and the final agreement?

Happy if you leave links to more insights in SmartContracts in the comments — here is my short list ;-)

Olivier Rikken on Coindesk
Nick Szabo Wikipedia page (amazing thoughts & work)
Vitalik Buterin (Ethereum White Paper)
Bitcoin Wiki on “distributed contracts”

--

--

Sam Liban

Technology & innovation manager at R+V, ScrumMaster & PO, former digital marketing & advertising expert. 1st startup 1999. Servant leader & lean biz developer.