Was sind Smart Contracts?
Startseite
Artikel
Was sind Smart Contracts?

Was sind Smart Contracts?

Mittel
Veröffentlicht Sep 16, 2019Aktualisiert Jun 9, 2023
9m
Nick Szabo beschrieb erstmals in den 90er Jahren Smart Contracts. Damals definierte er einen Smart Contract als Werkzeug, das Computernetzwerke formalisiert und sichert, indem es Protokolle mit Benutzeroberflächen kombiniert. Szabo erörterte die Einsatzmöglichkeiten von Smart Contracts in verschiedenen Bereichen, die vertragliche Vereinbarungen beinhalten - wie Kreditsysteme, Zahlungsabwicklung und Content Rights Management.
In der Welt der Kryptowährungen können wir einen Smart Contract als Anwendung oder Programm definieren, das auf einer Blockchain läuft. Normalerweise funktionieren sie als digitale Vereinbarung, die durch ein bestimmtes Regelwerk durchgesetzt wird. Diese Regeln sind durch Computercode vorgegeben, der von allen Netzwerk Nodes repliziert und ausgeführt wird.

Im Wesentlichen ermöglichen Blockchain Smart Contracts die Erstellung von "Trustless Protocols". Das bedeutet, dass zwei Parteien über Blockchain Verpflichtungen eingehen können, ohne sich gegenseitig kennen oder vertrauen zu müssen. Sie können sicher sein, dass, wenn die Bedingungen nicht erfüllt sind, der Vertrag nicht ausgeführt wird. Darüber hinaus kann durch den Einsatz von Smart Contracts der Bedarf an Vermittlern entfallen, was die Betriebskosten deutlich reduziert.

Obwohl das Bitcoin-Protokoll seit vielen Jahren Smart Contracts unterstützt, wurden sie vom Schöpfer und Mitbegründer von Ethereum, Vitalik Buterin, bekannt gemacht. Es ist jedoch anzumerken, dass jede Blockchain eine andere Methode zur Implementierung von Smart Contracts darstellen kann. 

Dieser Artikel konzentriert sich auf die Smart Contracts, die auf der Ethereum Virtual Machine (EVM) laufen, die ein wesentlicher Bestandteil der Ethereum-Blockchain ist.


Wie funktionieren sie?

Einfach ausgedrückt, funktioniert ein Smart Contract als deterministisches Programm. Es führt eine bestimmte Aufgabe aus, wenn bestimmte Bedingungen erfüllt sind. Daher folgt ein Smart Contract System oft "if... then..." Aussagen. Aber trotz der populären Terminologie sind Smart Contracts weder legale Verträge noch intelligent. Sie sind nur ein paar Zeilen Code, der auf einem verteilten System (Blockchain) ausgeführt wird.

Im Ethereum-Netzwerk sind Smart Contracts für die Ausführung und Verwaltung der Blockchain-Operationen verantwortlich, die stattfinden, wenn Benutzer (Adressen) miteinander interagieren. Jede Adresse, die kein Smart Contract ist, wird als externes geführtes Konto (EOA) bezeichnet. So werden Smart Contracts durch Computercode und EOAs durch Benutzer kontrolliert.

Grundsätzlich bestehen Ethereum Smart Contracts aus einem Contract Code und zwei Public Keys. Der erste Public Key ist derjenige, der vom Ersteller des Contracts bereitgestellt wird. Der andere Key repräsentiert den Contract selbst und fungiert als digitaler Identifikator, der für jeden Smart Contract eindeutig ist.

Die Bereitstellung eines Smart Contract erfolgt über eine Blockchain-Transaktion und er kann nur aktiviert werden, wenn er von einer EOA (oder anderen Smart Contracts) aufgerufen wird. Der erste Auslöser erfolgt jedoch immer durch einen EOA (Benutzer).


Hauptmerkmale

Ein Ethereum Smart Contract weist oft die folgenden Merkmale auf:

Verteilt. Smart Contracts werden repliziert und in allen Knoten des Ethereum-Netzwerks verteilt. Dies ist einer der wesentlichen Unterschiede zu anderen Lösungen, die auf zentralisierten Servern basieren.

Deterministisch. Smart Contracts führen nur die Aktionen aus, für die sie konzipiert wurden, wenn die Anforderungen erfüllt sind. Außerdem wird das Ergebnis immer das gleiche sein, unabhängig davon, wer sie ausführt.

Autonom. Smart Contracts können alle Arten von Aufgaben automatisieren und wie ein selbst ausführendes Programm funktionieren. In den meisten Fällen jedoch, wenn ein Smart Contract nicht ausgelöst wird, bleibt er "ruhend" und führt keine Aktionen aus.

Unveränderlich. Smart Contracts können nach dem Bereitstellen nicht mehr geändert werden. Sie können nur dann "gelöscht" werden, wenn zuvor eine bestimmte Funktion implementiert wurde. So können wir sagen, dass Smart Contracts manipulationssicheren Code bereitstellen können.

Anpassbar. Vor der Bereitstellung können Smart Contracts auf vielfältige Weise programmiert werden. So können mit ihnen viele Arten von dezentralen Anwendungen erstellt werden (DApps). Dies hängt damit zusammen, dass Ethereum eine Turing complete Blockchain ist.

Vertrauenslos. Zwei oder mehr Parteien können über Smart Contracts interagieren, ohne sich gegenseitig zu kennen oder zu vertrauen. Darüber hinaus stellt die Blockchain-Technologie sicher, dass die Daten korrekt sind.

Transparent. Da Smart Contracts auf einer öffentlichen Blockchain basieren, ist ihr Quellcode nicht nur unveränderlich, sondern auch für jeden sichtbar.


Kann ich einen Smart Contract ändern oder löschen?

Es ist unmöglich, einem Ethereum Smart Contract nach der Bereitstellung neue Funktionen hinzuzufügen. Wenn sein Ersteller jedoch eine Funktion namens SELFDESTRUCT im Code einbindet, kann er den Smart Contract später "löschen" - und durch einen neuen ersetzen. Im Gegensatz dazu ist es jedoch nicht möglich, den Contract zu löschen, wenn die Funktion nicht vorher im Code eingebunden wurde.

Insbesondere die so genannten upgradefähigen Smart Contracts ermöglichen es Entwicklern, mehr Flexibilität über die Unveränderlichkeit von Verträgen zu haben. Es gibt viele Möglichkeiten, aktualisierbare Smart Contracts mit unterschiedlichem Komplexitätsgrad zu erstellen.

In einem vereinfachten Beispiel stellen wir uns vor, dass ein Smart Contract in mehrere kleinere Verträge aufgeteilt wird. Einige von ihnen sind so konzipiert, dass sie unveränderlich sind, während andere die Funktion 'Löschen' aktiviert haben. Das bedeutet, dass ein Teil des Codes (Smart Contracts) gelöscht und ersetzt werden kann, während andere Funktionalitäten erhalten bleiben.


Vorteile und Anwendungsfälle

Als programmierbarer Code sind Smart Contracts hochgradig anpassbar und können auf vielfältige Weise konzipiert werden, um viele Arten von Dienstleistungen und Lösungen anzubieten.

Als dezentrale und selbstausführende Programme können Smart Contracts für mehr Transparenz und geringere Betriebskosten sorgen. Je nach Umsetzung können sie auch die Effizienz steigern und den Bürokratieaufwand reduzieren.

Smart Contracts sind besonders nützlich in Situationen, in denen es um den Transfer oder Austausch von Geldern zwischen zwei oder mehr Parteien geht.

Mit anderen Worten, Smart Contracts können für eine Vielzahl von Anwendungsfällen konzipiert werden. Einige Beispiele sind die Erstellung von tokenisierten Assets, Abstimmungssystemen, Krypto-Wallets, dezentralen Börsen, Spielen und mobilen Anwendungen. Sie können auch zusammen mit anderen Blockchain-Lösungen eingesetzt werden, die die Bereiche GesundheitsversorgungCharityLieferketteGovernance und dezentrale Finanzierung (DeFi) angehen.


ERC-20

Die auf der Ethereum Blockchain ausgegebenen Token folgen einem Standard, der als ERC-20 bekannt ist. Die Norm beschreibt die Kernfunktionen aller Ethereum-basierten Token. Daher werden diese digitalen Assets oft als ERC-20-Token bezeichnet und stellen einen großen Teil der bestehenden Kryptowährungen dar.
Viele Blockchain-Unternehmen und Startups setzten Smart Contracts ein, um ihre digitalen Token im Ethereum-Netzwerk auszugeben. Nach der Emission verteilte die Mehrheit dieser Unternehmen ihre ERC-20-Token über Initial Coin Offering (ICO) Events. In den meisten Fällen ermöglichte der Einsatz von Smart Contracts den zuverlässigen und effizienten Austausch von Geldern und die Verteilung von Token.


Einschränkungen

Smart Contracts bestehen aus Computercode, der von Menschen geschrieben wurde. Dies birgt zahlreiche Risiken, da der Code Schwachstellen und Fehlern beinhalten kann. Im Idealfall sollten sie von erfahrenen Programmierern geschrieben und eingesetzt werden, insbesondere wenn es um sensible Informationen oder große Summen geht.

Abgesehen davon argumentieren einige, dass zentralisierte Systeme die meisten Lösungen und Funktionalitäten bereitstellen können, die durch Smart Contracts angeboten werden. Der Hauptunterschied besteht darin, dass Smart Contracts in einem verteilten P2P Netzwerk und nicht auf einem zentralisierten Server ausgeführt werden. Und weil sie auf einem Blockchain-System basieren, sind sie in der Regel unveränderlich oder sehr schwer zu ändern.
Unveränderlich zu sein, kann in einigen Situationen großartig sein, aber in anderen sehr schlecht. Als zum Beispiel eine dezentrale autonome Organisation (DAO) namens "The DAO" 2016 gehackt wurde, wurden Millionen von Ether (ETH) aufgrund von Fehlern im Code ihres Smart Contracts gestohlen.
Da ihr Smart Contract unveränderlich war, konnten die Entwickler den Code nicht reparieren. Dies führte schließlich zu einer Hard Fork, wodurch eine zweite Ethereum-Chain entstand. Einfach ausgedrückt, hat eine Chain den Hack "rückgängig gemacht" und das Geld an die rechtmäßigen Eigentümer zurückgegeben (dies ist die aktuelle Ethereum-Blockchain). Die Befürworter der anderen Chain entschieden sich, den Hack nicht zu unterbinden und erklärten, dass Dinge, die auf einer Blockchain passieren, niemals geändert werden sollten (diese Chain heißt jetzt Ethereum Classic).

Es ist wichtig zu beachten, dass das Problem nicht von der Ethereum Blockchain herrührt. Stattdessen wurde es durch eine fehlerhafte Implementierung des Smart Contracts verursacht.

Eine weitere Einschränkung von Smart Contracts hängt mit ihrer unsicheren Rechtslage zusammen. Nicht nur, weil es in den meisten Ländern in einer Grauzone liegt, sondern auch, weil Smart Contracts nicht zum aktuellen Rechtsrahmen passen.

Beispielsweise verlangen viele Verträge, dass beide Parteien ordnungsgemäß identifiziert und über 18 Jahre alt sind. Die Pseudonymität der Blockchain-Technologie, kombiniert mit dem Mangel an Vermittlern, kann diese Anforderungen gefährden. Auch wenn es dafür Lösungsansätze gibt, ist die rechtliche Durchsetzbarkeit von Smart Contracts eine echte Herausforderung - insbesondere bei grenzenlosen, verteilten Netzen.


Kritik

Einige Blockchain-Enthusiasten sehen Smart Contracts als eine Lösung, die in Kürze einen großen Teil unserer kommerziellen und bürokratischen Systeme ersetzen und automatisieren wird. Dies ist zwar eine mögliche Realität, aber wahrscheinlich noch lange nicht zur Norm geworden.

Smart Contracts sind sicherlich eine interessante Technologie. Aber das sie verteilt, deterministisch, transparent und in gewissem Maße unveränderlich sind, kann sie in manchen Situationen weniger attraktiv machen.

Im Wesentlichen beruht die Kritik auf der Tatsache, dass Smart Contracts für viele reale Probleme keine geeignete Lösung sind. Tatsächlich sind einige Unternehmen besser beraten, wenn sie herkömmliche Server-basierte Alternativen verwenden. 

Im Vergleich zu Smart Contracts sind zentralisierte Server einfacher und kostengünstiger in der Wartung und bieten eine höhere Effizienz in Bezug auf Geschwindigkeit und netzwerkübergreifende Kommunikation (Interoperabilität).


Schlussworte

Es besteht kein Zweifel daran, dass Smart Contracts einen großen Einfluss auf die Welt der Kryptowährungen hatten, und sie haben den Blockchain-Industrie sicherlich revolutioniert. Obwohl die Endnutzer möglicherweise nicht direkt mit Smart Contracts interagieren, dürften diese in Zukunft ein breites Anwendungsspektrum abdecken, das von Finanzdienstleistungen bis hin zum Supply Chain Management reicht.

Gemeinsam haben Smart Contracts und Blockchain das Potenzial, fast alle Bereiche unserer Gesellschaft zu verändern. Aber erst die Zeit wird zeigen, ob es diesen bahnbrechenden Technologien gelingt, die vielen Hindernisse für die Einführung in großem Maßstab zu überwinden.