Was ist ein smart contract?
Intelligente Verträge (Englisch smart contracts) wurden schon in den 1990ern von Nick Szabo beschrieben. Zu dieser Zeit definierte er einen intelligenten Vertrag als ein Instrument, das Computernetzwerke formalisiert und absichert, indem sie Protokolle mit Anwendungsoberflächen kombiniert. Szabo behandelte den möglichen Einsatz intelligenter Verträge in verschiedenen Bereichen im Zusammenhang mit vertraglichen Vereinbarungen. Innerhalb des Raums der Kryptowährungen können wir einen intelligenten Vertrag als eine Anwendung oder ein Programm definieren, das in einer Blockchain läuft. Gewöhnlich funktionieren sie als digitale Vereinbarung, die durch ein bestimmtes Regelwerk durchgesetzt wird. Die Regeln sind durch einen Code vordefiniert, der dupliziert und von allen Netzwerknodes ausgeführt wird.
Mit intelligenten Blockchain-Verträgen lassen sich zuverlässige Protokolle erstellen. Das bedeutet, dass zwei Parteien über eine
Blockchain Verpflichtungen eingehen können, ohne sich zu kennen oder zu vertrauen. Sie können sicher sein, dass der Vertrag nicht erfüllt wird, wenn die Konditionen, die im Vertrag aufgeführt werden, nicht erfüllt werden.
Darüber hinaus kann durch den Einsatz intelligenter Verträge die Notwendigkeit von Vermittlern erloschen, was die Betriebskosten erheblich senken kann. Obwohl das
Bitcoin-Protokoll intelligente Verträge seit vielen Jahren unterstützt, wurden sie von Vitalik Buterin, dem Schöpfer und Mitbegründer von Ethereum, zugänglich gemacht. Es ist beachtenswert, dass jede Blockchain eine andere Art und Weise nutzen kann, um von intelligenten Verträgen Gebrauch zu machen. Vorerst werden wir uns auf die intelligenten Verträge konzentrieren, die auf der
Ethereum Virtual Machine (EVM) laufen, einem wesentlichen Teil der Ethereum-Blockchain.
Wie funktionieren sie?
Ein intelligenter Vertrag führt eine bestimmte Aufgabe aus, wenn bestimmte Konditionen eintreffen. Ein sogenanntes smart contract-System folgt somit oft dieser Aufstellung: ,,wenn Kondition X eintrifft, führe Aktion Y aus”.
Jedoch sind intelligente Verträge trotz der Terminologie weder legale Verträge noch intelligente Verträge. Es ist lediglich Code, der auf der Blockchain läuft.
Im Ethereum-Netzwerk sind intelligente Verträge für die Durchführung der Handlungen verantwortlich, die stattfinden, wenn Benutzer (Adressen) miteinander interagieren. Eine Adresse, bei der es sich nicht um einen intelligenten Vertrag handelt, wird als externes Konto (EOA) bezeichnet. Mit anderen Worten werden intelligente Verträge durch Computercodes gesteuert, und EOAs werden von den Benutzern kontrolliert. Die intelligenten Verträge von Ethereum bestehen aus einem Vertragscode und zwei öffentlichen Schlüsseln. Der Ersteller des Vertrags stellt den ersten öffentlichen Schlüssel (Englisch public key) bereit.
Der andere Schlüssel repräsentiert den Vertrag selbst und agiert als eine digitale Kennzeichnung, welche bei jedem intelligenten Vertrag einzigartig ist. Die Aufstellung eines intelligenten Vertrags wird mit einer Transaktion durchgeführt und kann nur aktiviert werden, wenn ein EOA oder andere intelligente Verträge einen EOA oder andere intelligente Verträge abruft, jedoch liegt der erste Auslöser bei einem EOA (Nutzer).
Schlüsselmerkmale
Ein intelligenter Ethereum-Vertrag weist oft die folgenden Merkmale auf:
- Verteilt: intelligente Verträge werden repliziert und auf alle Nodes des Ethereum-Netzwerks verteilt. Dieses Merkmal ist einer der wesentlichen Unterschiede zu anderen Lösungen, die auf zentralisierten Servern basieren.
- Deterministisch: Intelligente Verträge führen nur die Aktionen aus, für die sie konzipiert sind. Außerdem ist das Ergebnis immer dasselbe, unabhängig davon, wer sie ausführt.
- Autonom: Intelligente Verträge können alle Arten von Aufgaben automatisieren und als selbstausführendes Programm arbeiten. Wenn ein intelligenter Vertrag jedoch nicht ausgelöst wird, bleibt er in den meisten Fällen ,,schlafend" (dormant) und führt keine Aktionen aus.
- Unveränderlich: intelligente Verträge können nur ,,entfernt” werden, wenn eine spezifische Funktion vorher implementiert wurde. Zum Beispiel können wir sagen, dass intelligente Verträge einen betrugssicheren Code bereitstellen können.
- Anpassungsfähigkeit: Vor der Implementierung können intelligente Verträge auf viele verschiedene Arten kodiert werden. Sie können daher zur Erstellung vieler Arten von dezentralisierten Anwendungen (dApps) verwendet werden.
- Zuverlässigkeit: Zwei oder mehr Parteien können über intelligente Verträge miteinander kommunizieren, ohne einander zu kennen oder zu vertrauen. Außerdem versichert die Blockchaintechnologie, dass die Daten fehlerfrei sind.
- Transparent: Weil intelligente Verträge auf einer öffentlichen Blockchain liegen, ist ihr Quellcode nicht nur unveränderlich, sondern auch für jeden sichtbar.