Einführung in Smart Contracts
Seite zuletzt aktualisiert: 25. Februar 2026
Was ist ein Smart Contract?
Ein "Smart Contract" oder intelligenter Vertrag ist einfach ein Programm, das auf der Ethereum-Blockchain läuft. Es ist eine Sammlung von Anweisungen (seinen Funktionen) und Daten (seinem Zustand), die sich an einer bestimmten Adresse in der Ethereum-Blockchain befindet.
Smart Contracts sind eine Art Ethereum-Konto. Das bedeutet, dass sie über ein Guthaben verfügen und Ziel von Transaktionen werden können. Allerdings werden sie nicht von einem Benutzer gesteuert, sondern im Netzwerk bereitgestellt und wie programmiert ausgeführt. Benutzerkonten können dann mit einem Smart Contract interagieren, indem sie Transaktionen übermitteln, die eine im Smart Contract definierte Funktion ausführt. Smart Contracts können, wie auch herkömmliche Verträge, Regeln definieren und diese mittels Programmierung automatisch durchsetzen. Standardmäßig können Smart Contracts 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.
Lesen Sie unbedingt die Informationen zu Konten, Transaktionen und der Ethereum Virtual Machine, 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 von Nick Szaboopens in a new tab beschrieben. Mit den richtigen Eingaben ist eine bestimmte Ausgabe garantiert.
So bekommen Sie einen Schokoriegel aus einem Verkaufsautomaten:
1Geld + Produktauswahl = ausgeworfener RiegelDiese Logik ist in den Automaten einprogrammiert.
Einem Smart Contract wurde, wie auch einem Verkaufsautomaten, eine Logik einprogrammiert. Hier ist ein einfaches Beispiel dafür, wie dieser Automat aussehen würde, wenn er ein in Solidity geschriebener intelligenter Vertrag 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. Den Cupcake-Bestand des bereitgestellten Smart Contracts auf 100 setzen12 constructor() {13 owner = msg.sender;14 cupcakeBalances[address(this)] = 100;15 }1617 // Dem Eigentümer erlauben, den Cupcake-Bestand des Smart Contracts zu erhöhen18 function refill(uint amount) public {19 require(msg.sender == owner, "Nur der Eigentümer kann nachfüllen.");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, "Sie müssen mindestens 1 ETH pro Cupcake bezahlen");26 require(cupcakeBalances[address(this)] >= amount, "Nicht genügend Cupcakes auf Lager, um diesen Kauf abzuschließen");27 cupcakeBalances[address(this)] -= amount;28 cupcakeBalances[msg.sender] += amount;29 }30}Alles anzeigenWenn ein Verkaufsautomat vorhanden ist, benötigt man keinen Verkäufer mehr. Genau so können Smart Contracts in vielen Branchen Vermittler ersetzen.
Genehmigungsfrei
Jeder kann einen Smart Contract erstellen und ihn im Netzwerk bereitstellen. Sie müssen nur lernen, wie man in einer Smart-Contract-Sprache programmiert und genügend ETH besitzt, um Ihren Vertrag bereitzustellen. Das Bereitstellen eines Smart Contracts ist technisch gesehen eine Transaktion, also müssen Sie Gas auf die gleiche Weise bezahlen wie für eine einfache ETH-Überweisung. Allerdings sind die Gaskosten für die Vertragsbereitstellung weitaus höher.
Ethereum bietet entwicklerfreundliche Sprachen zum Schreiben von Smart Contracts:
- Solidity
- Vyper
Allerdings müssen sie 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. Sie können sie sich als offene APIs vorstellen. Das bedeutet, dass Sie andere Smart Contracts in Ihrem eigenen Smart Contract aufrufen können, um die Anwendungsmöglichkeiten deutlich 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 „echte Welt“-Ereignisse erhalten, da sie keine Daten von Offchain-Quellen abrufen können. Das bedeutet, dass sie nicht auf Ereignisse in der realen Welt reagieren können. Das ist beabsichtigt. Sich auf externe Informationen zu verlassen, könnte den für Sicherheit und Dezentralisierung wichtigen Konsens gefährden.
Allerdings ist es wichtig, dass Blockchain-Anwendungen Off-Chain-Daten nutzen können. Die Lösung sind Orakel, Werkzeuge, die Off-Chain-Daten aufnehmen und sie für Smart Contracts verfügbar machen.
Eine weitere Einschränkung von Smart Contracts ist die maximale Vertragsgröße. Ein Smart Contract kann maximal 24 KB groß sein, sonst gehen ihm die Ressourcen aus. Dies kann durch die Verwendung des Diamond Patternopens in a new tab umgangen werden.
Multisig-Verträge
Multisig-Verträge (multiple Signaturen) sind Smart Contract-Accounts, die mehrere gültige Unterschriften erfordern, um eine Transaktion durchzuführen. Dies ist sehr nützlich, um einzelne Schwachstellen bei Verträgen zu vermeiden, die große Mengen an Ether oder anderen Token enthalten. Multisig-Verträge teilen außerdem die Verantwortung für die Vertragsausführung und die Schlüsselverwaltung auf mehrere Parteien auf und verhindern den Verlust eines einzigen privaten Schlüssels, der sonst zu einem irreversiblen Verlust von Geldern führt. Aus diesen Gründen können Multisig-Verträge für eine einfache DAO-Governance verwendet werden. Multisigs erfordern N 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. Ein 4/7-Multisig-Vertrag erfordert vier von sieben möglichen gültigen Unterschriften. Das bedeutet, dass die Gelder auch dann noch abrufbar sind, wenn drei Unterschriften verloren gehen. In diesem Fall bedeutet es auch, dass die Mehrheit der Schlüsselinhaber zustimmen und unterschreiben muss, damit der Vertrag ausgeführt werden kann.
Ressourcen für Smart Contracts
OpenZeppelin Contracts - Bibliothek für die sichere Entwicklung von Smart Contracts.
- openzeppelin.com/contracts/opens in a new tab
- GitHubopens in a new tab
- Community-Forumopens in a new tab