
A simple reason against Turing-complete scripting in Smart Contracting Platforms
In this short but concise article, I would like to give food for thought on
smart contracting platforms that come with a Turing-complete scripting
language.
It all breaks down to one thing: trust.
The origin: Bitcoin
Let's begin at the origins of the blockchains space - Bitcoin. The core value
proposition of bitcoin - among others - is that it replaces the middleman and can
be easily verifiable.
So we got that covered. How about the trust thing? Isn't Bitcoin
trust-less? Of course it is not. The requirement for trust doesn't just
disappear, but in this case, it moves over from the middleman to a piece of
software, a contract written in code.
Why is this a thing? Bitcoin enables two parties to transact with each other
direct. They do not need to trust a middleman. This is important and
middlemen are technically capable of changing their mind, while a contract
on Bitcoin cannot.
So, in short, we trust a contract written in code and we know that it cannot
change it's mind. But how am I supposed to trust a piece of code? Obviously, I
can trust it if:
- I can read the code, and
- I can understand what it does.
To make things simple: There are people that can tick 1.) and there are plenty
of people (the rest) that cannot tick either of both. Technically, we cannot
easily reach 100% certainty about 2) - and I am not going into the technical
details here - as the behavior of code isn't trivially verified.
So, in case of Bitcoin, who do I trust then? In my opinion, the entire trust
lies into the foundation of the code basis and the understanding and
expectations of this code base being properly reviewed and tested. Apparently,
this is the case with bitcoin-core as there are hundreds of active developers and
thousands of people reviewing changes proposed to the code.
To conclude, we trust Bitcoin's code basis to do as we expect it to do and know
for sure that it doesn't change its behavior.
Trust with Smart Contracting Platforms
So, from where we got - middlemen moving funds from left to right - we got to
experience improved trust by putting something in between that doesn't change
its mind and that behaves.
With Turing-complete Scripting and Smart contract platforms that allow anyone
to deploy code onto a blockchain, things look differently. Now, there is not
one major development community that supervises and reviews the code and
its behavior. Instead, we often see contracts being deployed by
script-kiddies that don't have the necessary skills or funds to have these
contracts properly reviewed by experts. And even then, the reviewing resources
are less than compared to a contract that is part of layer-1 (like in bitcoin).
What makes matter worse is that the behavior of the code might differ from the
expectations as we have seen from the great blow of "The DAO".
In short, we've been at a stage where we needed to trust a huge community of
developers and am moving slowly towards trusting a smaller set of contract
developers.
Room for Innovations
If there was a way to bring both worlds together by combining the flexibility
of Turing-complete scripting with quality assurance due to hundreds of
developers reviewing your code, that would be wonderful.
Leave A simple reason against Turing-complete scripting in Smart Contracting Platforms to:
Read more #scriptable posts
Best Posts From ChainSquad GmbH
We have not curated any of chainsquad's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.
More Posts From ChainSquad GmbH
- DevOps: Dealing with local secrets, environment variables and GPG
- How to launch a DAC
- If I was asked to do a "fair launch"
- A simple reason against Turing-complete scripting in Smart Contracting Platforms
- How to use semversioner in your release flow
- Atomic Swaps vs. Sidechain - Don't get fooled
- How to deal with fees on a blockchain
- What are Smart Contracts and why they have nothing to do with Turing Completeness and Scriptability
- Blockchains and the need for a token
- ChainSquad Articles - The beginning