Zum Hauptinhalt springen
Change page

Einführung in Smart Contracts

Letzte Aktualisierung der Seite: 25. Februar 2026

Was ist ein Smart Contract?

Ein „Smart Contract“ ist einfach ein Programm, das auf der Ethereum-Blockchain läuft. Es ist eine Sammlung von Code (seine Funktionen) und Daten (sein Zustand), die sich an einer bestimmten Adresse auf der Ethereum-Blockchain befindet.

Smart Contracts sind eine Art von Ethereum-Konto. Das bedeutet, dass sie ein Guthaben haben und das Ziel von Transaktionen sein können. Sie werden jedoch nicht von einem Benutzer kontrolliert, sondern im Netzwerk bereitgestellt und laufen wie programmiert ab. Benutzerkonten können dann mit einem Smart Contract interagieren, indem sie Transaktionen übermitteln, die eine im Smart Contract definierte Funktion ausführen. Smart Contracts können wie ein regulärer Vertrag Regeln definieren und diese automatisch über den Code durchsetzen. Smart Contracts können standardmäßig nicht gelöscht werden und Interaktionen mit ihnen sind irreversibel.

Voraussetzungen

Wenn Sie gerade erst anfangen oder nach einer weniger technischen Einführung suchen, empfehlen wir unsere Einführung in Smart Contracts.

Stellen Sie sicher, dass Sie sich über Konten, Transaktionen und die Ethereum Virtual Machine informiert haben, bevor Sie in die Welt der Smart Contracts eintauchen.

Ein digitaler Verkaufsautomat

Die vielleicht beste Metapher für einen Smart Contract ist ein Verkaufsautomat, wie er von Nick Szabo (opens in a new tab) beschrieben wurde. Mit den richtigen Eingaben ist eine bestimmte Ausgabe garantiert.

Um einen Snack aus einem Verkaufsautomaten zu bekommen:

1money + snack selection = snack dispensed

Diese Logik ist in den Verkaufsautomaten einprogrammiert.

Ein Smart Contract hat, wie ein Verkaufsautomat, eine einprogrammierte Logik. Hier ist ein einfaches Beispiel dafür, wie dieser Verkaufsautomat aussehen würde, wenn er ein in Solidity geschriebener Smart Contract wäre:

1pragma solidity 0.8.7;
2
3contract VendingMachine {
4
5 // Zustandsvariablen des Vertrags deklarieren
6 address public owner;
7 mapping (address => uint) public cupcakeBalances;
8
9 // Wenn der 'VendingMachine'-Vertrag bereitgestellt wird:
10 // 1. die bereitstellende Adresse als Eigentümer des Vertrags festlegen
11 // 2. das Cupcake-Guthaben des bereitgestellten Smart Contracts auf 100 festlegen
12 constructor() {
13 owner = msg.sender;
14 cupcakeBalances[address(this)] = 100;
15 }
16
17 // Dem Eigentümer erlauben, das Cupcake-Guthaben des Smart Contracts zu erhöhen
18 function refill(uint amount) public {
19 require(msg.sender == owner, "Only the owner can refill.");
20 cupcakeBalances[address(this)] += amount;
21 }
22
23 // Jedem erlauben, Cupcakes zu kaufen
24 function purchase(uint amount) public payable {
25 require(msg.value >= amount * 1 ether, "You must pay at least 1 ETH per cupcake");
26 require(cupcakeBalances[address(this)] >= amount, "Not enough cupcakes in stock to complete this purchase");
27 cupcakeBalances[address(this)] -= amount;
28 cupcakeBalances[msg.sender] += amount;
29 }
30}
Alle anzeigen

So wie ein Verkaufsautomat den Bedarf an einem Verkäufer überflüssig macht, können Smart Contracts in vielen Branchen Vermittler ersetzen.

Erlaubnisfrei

Jeder kann einen Smart Contract schreiben und im Netzwerk bereitstellen. Sie müssen nur lernen, wie man in einer Smart-Contract-Sprache programmiert, und über genügend ETH verfügen, um Ihren Vertrag bereitzustellen. Die Bereitstellung eines Smart Contracts ist technisch gesehen eine Transaktion, daher müssen Sie Gas auf die gleiche Weise bezahlen, wie Sie Gas für eine einfache ETH-Überweisung bezahlen müssen. Die Gaskosten für die Bereitstellung von Verträgen sind jedoch weitaus höher.

Ethereum verfügt über entwicklerfreundliche Sprachen zum Schreiben von Smart Contracts:

  • Solidity
  • Vyper

Mehr zu Sprachen

Sie müssen jedoch kompiliert werden, bevor sie bereitgestellt werden können, damit die Ethereum Virtual Machine den Vertrag interpretieren und speichern kann. Mehr zur Kompilierung

Zusammensetzbarkeit

Smart Contracts sind auf Ethereum öffentlich und können als offene APIs betrachtet werden. Das bedeutet, dass Sie andere Smart Contracts in Ihrem eigenen Smart Contract aufrufen können, um die Möglichkeiten erheblich zu erweitern. Verträge können sogar andere Verträge bereitstellen.

Erfahren Sie mehr über die Zusammensetzbarkeit von Smart Contracts.

Einschränkungen

Smart Contracts allein können keine Informationen über Ereignisse in der „realen Welt“ erhalten, da sie keine Daten aus Off-Chain-Quellen abrufen können. Das bedeutet, dass sie nicht auf Ereignisse in der realen Welt reagieren können. Dies ist beabsichtigt. Sich auf externe Informationen zu verlassen, könnte den Konsens gefährden, der für Sicherheit und Dezentralisierung wichtig ist.

Für Blockchain-Anwendungen ist es jedoch wichtig, Off-Chain-Daten nutzen zu können. Die Lösung sind Orakel, also Werkzeuge, die Off-Chain-Daten aufnehmen und für Smart Contracts verfügbar machen.

Eine weitere Einschränkung von Smart Contracts ist die maximale Vertragsgröße. Ein Smart Contract darf maximal 24 KB groß sein, andernfalls geht ihm das Gas aus. Dies kann durch die Verwendung des Diamond Patterns (opens in a new tab) umgangen werden.

Mehrfachsignatur-Verträge

Mehrfachsignatur-Verträge (Multisig) sind Smart-Contract-Konten, die mehrere gültige Signaturen erfordern, um eine Transaktion auszuführen. Dies ist sehr nützlich, um Single Points of Failure bei Verträgen zu vermeiden, die beträchtliche Mengen an Ether oder anderen Token halten. Mehrfachsignaturen teilen auch die Verantwortung für die Vertragsausführung und die Schlüsselverwaltung auf mehrere Parteien auf und verhindern, dass der Verlust eines einzelnen Private-Keys zu einem irreversiblen Verlust von Geldern führt. Aus diesen Gründen können Mehrfachsignatur-Verträge für eine einfache DAO-Governance verwendet werden. Mehrfachsignaturen erfordern N Signaturen von M möglichen akzeptablen Signaturen (wobei N ≤ M und M > 1), um ausgeführt zu werden. N = 3, M = 5 und N = 4, M = 7 werden häufig verwendet. Eine 4/7-Mehrfachsignatur erfordert vier von sieben möglichen gültigen Signaturen. Das bedeutet, dass die Gelder auch dann noch abrufbar sind, wenn drei Signaturen verloren gehen. In diesem Fall bedeutet es auch, dass die Mehrheit der Schlüsselbesitzer zustimmen und unterschreiben muss, damit der Vertrag ausgeführt wird.

Ressourcen zu Smart Contracts

OpenZeppelin Contracts – Bibliothek für die sichere Entwicklung von Smart Contracts.

Weiterführende Literatur

Tutorials: Smart-Contract-Signaturen (EIP-1271) auf Ethereum

War dieser Artikel hilfreich?