Olivier Rikken ist Manager, Redner und Vordenker bei Digital Disruption, Blockchain und Geschäftsprozessmanagement bei Axveco, einer Boutique-Beratungsfirma mit Hauptsitz in Amsterdam.

In diesem All4bitcoin-Artikel beschreibt Rikken drei häufige Fehler, die Neulinge bei der Blockchain-basierten Smart-Contract-Technologie machen.

Eine der vielversprechendsten Entwicklungen in Blockchain ist die Idee von Smart Contracts.

Zunächst von Kryptograph Nick Szabo in seinem 1994 erschienenen Dokument "Smart Contracts" beschrieben, beschreibt Szabo das Konzept als "ein computerisiertes Transaktionsprotokoll, das die Bedingungen eines Vertrags ausführt". Heute ermöglicht der Aufstieg der Ethereum-Blockchain die einfache Entwicklung und Implementierung dieses Konzepts in einer öffentlichen Umgebung.

Dennoch hat dies zu einer Wolke der Verwirrung um intelligente Verträge geführt. (Für diejenigen, die weniger mit intelligenten Verträgen vertraut sind, bietet dieser Artikel eine nette Einführung).

Aber bevor wir eintauchen, möchte ich sagen, dass ich glaube, dass die Anzahl der Möglichkeiten und Anwendungsfälle für intelligente Verträge riesig ist und echte Spielwechsler in verschiedenen Branchen schaffen kann. In Zusammenarbeit mit verschiedenen Unternehmen habe ich jedoch festgestellt, dass viele immer noch Schwierigkeiten haben zu verstehen, was intelligente Verträge wirklich sind, wie sie funktionieren und was sie können.

Hier sind die drei Probleme, denen ich am meisten begegne:

1. "Intelligente Verträge sind nur Code, keine Verträge"

Ein häufiger Satz, der oft zitiert wird, lautet: "Intelligente Verträge sind weder intelligent noch vertraglich nur dummer Code ".

Dies kann in verschiedenen Fällen der Fall sein, wenn Sie eine dezentrale Anwendung erstellen, die keine Wertübertragung beinhaltet. In anderen Fällen können intelligente Verträge jedoch mehr Merkmale herkömmlicher Verträge aufweisen.

Wenn wir konventionelle Verträge betrachten, besteht die Semantik eines Vertrags aus zwei Hauptelementen:

  1. Operative Semantik, die die operationale Interpretation eines Vertrags darstellt. Es beschreibt die Berücksichtigung der konkreten Maßnahmen, wie sie von den Beteiligten vereinbart und zu treffen sind. Dies ist typischerweise, was in einen Smart-Vertrag programmiert werden kann.
  2. Denotationale Semantik, die nicht operative rechtliche Auslegung des gesamten Vertrags, einschließlich, aber nicht beschränkt auf Verweise auf andere Dokumente, Gerichtsbarkeit usw. Dies ist die Interpretation, die dem Vertrag gegeben würde, wie ein Anwalt es lesen würde . Dieses Element ist in den meisten Fällen nicht im Smart-Vertrag enthalten, obwohl Referenzen als Kommentare im Code hinzugefügt werden könnten.

Warum gründen Menschen überhaupt Verträge? Vor allem, weil sie sich (trotz mündlicher Vereinbarung) nicht gegenseitig für die Durchführung einer Vereinbarung vertrauen oder als Beweis für Dritte, dass eine Übertragung von Waren legitim war.

Unter Berücksichtigung dieses und des operationellen Elements der Vertragssemantik könnte ein intelligenter Vertrag, der das Ergebnis einer Vereinbarung zwischen zwei oder mehr Parteien ist und von allen Parteien "unterzeichnet" wird (indem er aktiv zum Smart-Vertrag handelt), somit auch als die operationale Semantik eines traditionellen Vertrags, obwohl in einer unbekannten Sprache geschrieben.

Der Umgang mit Konflikten könnte fast genauso verlaufen wie bei allen herkömmlichen Verträgen, dh über Gerichte, Mediation usw.

Der Hauptunterschied wird darin bestehen, dass in vielen Fällen die Wertübertragung durch automatisierte Verträge erfolgt die Ausführung hat bereits stattgefunden.

2. "Smart Contracts können völlig autonom arbeiten"

Dies bringt uns zum zweiten Missverständnis

Einer der häufigsten Fehler ist, dass Menschen die Wahrnehmung haben, dass ein intelligenter Vertrag seine Umgebung aktiv scannen und ausführen kann Reaktion auf Änderungen entsprechend, dh ein intelligenter Vertrag fragt proaktiv eine externe Datenbank ab und ändert ihren eigenen Zustand basierend auf dem Ergebnis der Abfrage.

Blockchain ist im Wesentlichen transaktionsgesteuert. Dies gilt auch für intelligente Verträge und somit sind intelligente Verträge reaktiv.

Der Code eines Smart-Kontrakts wird nur ausgeführt, wenn er von einer Transaktion oder Nachricht aufgerufen wird, die an den Smart-Kontrakt gesendet wird. Dies kann entweder von einem externen Konto (das einer natürlichen Person oder einer Firma gehört) sein, das eine Transaktion sendet, oder einem anderen intelligenten Vertrag, der eine Nachricht an den intelligenten Vertrag sendet (dieser andere intelligente Vertrag wird durch eine Transaktion oder Nachricht selbst ausgelöst).

Darüber hinaus sind die Informationen, die einem Smart-Vertrag während der Ausführung zur Verfügung stehen, ziemlich begrenzt.

Wie in der ethereum-Dokumentation ausgeführt, "muss diese Ausführung vollständig deterministisch sein, ihr einziger Kontext ist die Position des Blocks auf der Blockchain und alle verfügbaren Daten". Außerdem "ist es nicht nur sandboxed, sondern tatsächlich vollständig isoliert, was bedeutet, dass Code, der innerhalb des EVM läuft, keinen Zugriff auf Netzwerk-, Dateisystem- oder andere Prozesse hat. Intelligente Verträge haben sogar begrenzten Zugriff auf andere intelligente Verträge".

Die verfügbaren Daten sind die Daten, die in der Transaktion oder Nachricht an den Vertrag gesendet werden, sowie die Daten im Speicher (Zustand) und im Speicher des Vertrags.

Während ein intelligenter Vertrag andere intelligente Verträge aufrufen kann (z. B. Lesen von Bilanzen anderer intelligenter Verträge), wird die Reentrancy von verschiedenen Experten nicht empfohlen, da sie angeben, dass sie nur als letztes Mittel verwendet werden sollten.

Außerdem können intelligente Verträge nur grundlegende Berechnungen wie Addieren, Subtrahieren und Dividieren durchführen. Sie sind nicht in der Lage, Big-Data-Analysen durchzuführen.

Wenn Sie also Prozesse mit intelligenten Verträgen entwickeln, sollten Sie wissen, dass sie zu diesem Zeitpunkt reaktiv sind, nur eingeschränkte Informationen zur Verfügung haben, nur grundlegende Berechnungen durchführen können und nur eingeschränkte Interaktionsmöglichkeiten haben. Die hier beschriebenen Beispiele basieren in erster Linie auf den intelligenten Verträgen von Ethereum, die mich zum letzten Punkt bringen.

"Der intelligente Vertrag"

Es gibt keinen intelligenten Vertrag.

Da Leute oft den Fehler machen, über die Blockchain zu sprechen, anstatt sich auf eine bestimmte Blockchain zu beziehen (zB Bitcoin, Ethereum, Hyperledger, etc.), wird der gleiche Fehler oft für Smart Contracts gemacht.

Die meisten Blockchains haben überhaupt keine Smart-Contract-Fähigkeiten, oder wenn sie es tun, sind sie nur in sehr begrenzter Form oder über gekoppelte Sidechain-Lösungen verfügbar.

Die Funktionen, die ein Smart-Vertrag besitzen kann, unterscheiden sich pro Blockchain.

Wenn es darum geht, Lösungen zu entwerfen, die intelligente Verträge benötigen, gibt es keinen intelligenten Vertrag. Um einen intelligenten Vertrag zu erstellen, der Ihren Anforderungen entspricht, sollten Sie sehr vorsichtig und präzise entscheiden, welche Blockchain verwendet werden soll.

Rotstiftbild über Shutterstock