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 dispensedDiese 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;23contract VendingMachine {45 // Zustandsvariablen des Vertrags deklarieren6 address public owner;7 mapping (address => uint) public cupcakeBalances;89 // Wenn der 'VendingMachine'-Vertrag bereitgestellt wird:10 // 1. die bereitstellende Adresse als Eigentümer des Vertrags festlegen11 // 2. das Cupcake-Guthaben des bereitgestellten Smart Contracts auf 100 festlegen12 constructor() {13 owner = msg.sender;14 cupcakeBalances[address(this)] = 100;15 }1617 // Dem Eigentümer erlauben, das Cupcake-Guthaben des Smart Contracts zu erhöhen18 function refill(uint amount) public {19 require(msg.sender == owner, "Only the owner can refill.");20 cupcakeBalances[address(this)] += amount;21 }2223 // Jedem erlauben, Cupcakes zu kaufen24 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 anzeigenSo 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
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.
- openzeppelin.com/contracts/ (opens in a new tab)
- GitHub (opens in a new tab)
- Community-Forum (opens in a new tab)
Weiterführende Literatur
- Coinbase: Was ist ein Smart Contract? (opens in a new tab)
- Chainlink: Was ist ein Smart Contract? (opens in a new tab)
- Video: Einfach erklärt – Smart Contracts (opens in a new tab)
- Cyfrin Updraft: Web3-Lern- und Auditierungsplattform (opens in a new tab)
Tutorials: Smart-Contract-Signaturen (EIP-1271) auf Ethereum
- EIP-1271: Signieren und Verifizieren von Smart-Contract-Signaturen – Wie EIP-1271 es Smart Contracts ermöglicht, Signaturen zu verifizieren, mit einer exemplarischen Vorgehensweise der Safe-Implementierung.