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.
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.
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.
ERC-20
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.
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.