Smart Contract: Wie selbstausführender Code auf einer Blockchain läuft

Smart Contract: Wie selbstausführender Code auf einer Blockchain läuft

Ein Smart Contract ist ein Programm, das auf einer Blockchain gespeichert ist und die in seinem Code festgelegten Bedingungen automatisch ausführt, sobald eine Transaktion oder ein anderer Vertrag ihn aufruft. Ein Programm ist eine Reihe von Computerbefehlen. Eine Blockchain ist ein gemeinsam genutztes Register, dem fortlaufend neue Einträge hinzugefügt werden. Eine Transaktion ist eine an eine Blockchain gesendete Anfrage.

Wo befindet sich ein Smart Contract?

Ein Smart Contract wird an einer Adresse auf einer Blockchain gespeichert. Eine Adresse ist eine Kennung auf einer Blockchain für einen Nutzer oder einen Smart Contract. Der Code des Vertrags sowie die Daten, die der Code verwaltet, werden an dieser Adresse gespeichert. Der Zustand (State) sind die Daten, die ein Smart Contract speichert, damit sie beim nächsten Ausführen des Vertrags weiterhin vorhanden sind.

Das Bereitstellen (Deployment) eines Smart Contracts bedeutet, seinen Code mittels einer Transaktion, die den Code enthält, auf der Blockchain zu platzieren. Nach der Bereitstellung besitzt der Vertrag eine Adresse, an die Transaktionen gesendet werden können.

Wie funktionieren Smart Contracts?

Ein Smart Contract wird ausgeführt, wenn eine Transaktion oder ein anderer Vertrag eine seiner Funktionen aufruft. Eine Funktion aufzurufen bedeutet, einen Vertrag aufzufordern, sie auszuführen. Eine Funktion ist ein benannter Teil des Vertragscodes. Eine an die Adresse des Vertrags gesendete Transaktion benennt eine Funktion und liefert deren Eingaben – die Daten, die die Funktion benötigt.

Die Knoten (Nodes) des Blockchain-Netzwerks führen den Code eines Smart Contracts aus. Ein Node ist ein Computer, der die Software eines Blockchain-Netzwerks ausführt und sich mit anderen Computern im Netzwerk verbindet. Wenn der Code den Zustand des Vertrags ändert, wird diese Änderung auf der Blockchain erfasst.

Ein Konto ist ein Eintrag auf einer Blockchain mit einer Adresse und einem Guthaben. Ein Guthaben ist die Menge der nativen Münze (Coin) der Blockchain, die ein Konto hält. Eine native Münze ist die native Einheit einer Blockchain, wie etwa BTC bei Bitcoin.

Bei Ethereum gibt es laut dessen Dokumentation zwei Kontoarten. Ein Nutzerkonto wird von einer Person mit einem privaten Schlüssel kontrolliert. Ein privater Schlüssel ist eine geheime Zahl, mit der Transaktionen signiert werden. Ein Vertragskonto enthält Code, und ein Smart Contract wird an der Adresse eines Vertragskontos gespeichert.

Ein Aufruf eines Smart Contracts stammt von einem Nutzerkonto oder von einem anderen Vertrag. In diesem Beitrag beschreibt der Begriff „selbstausführend“ einen Vertrag, dessen Code seine Anweisungen ausführt, sobald der Vertrag aufgerufen wird. Er beschreibt nicht einen Vertrag, der von selbst einen Lauf startet, denn ein Vertragskonto kann Nachrichten nur als Reaktion auf eine empfangene Transaktion versenden.

Ein fiktives Beispiel veranschaulicht einen solchen Aufruf. Reale Verträge unterscheiden sich darin, was sie speichern und wie ihre Funktionen geschrieben sind. In diesem Beispiel verwaltet ein Vertrag eine Anzahl von Einheiten für jede von zwei Adressen. Eine Einheit ist eine Zählgröße, die der Vertrag führt. Adresse A hat 100 Einheiten, und Adresse B hat 20 Einheiten.

  1. Ein Nutzerkonto sendet eine Transaktion, die die Funktion transfer des Vertrags aufruft und darum bittet, 30 Einheiten von Adresse A zu Adresse B zu verschieben.
  2. Die Nodes führen den Code des Vertrags aus.
  3. Der Code prüft, ob Adresse A mindestens 30 Einheiten hat.
  4. Der Code reduziert Adresse A auf 70 Einheiten und erhöht Adresse B auf 50 Einheiten.
  5. Die Änderung wird auf der Blockchain erfasst. Die beiden Adressen halten vor und nach dem Aufruf zusammen 120 Einheiten.

Was kann ein Smart Contract speichern und tun?

Ein Smart Contract kann, wie auch ein Nutzerkonto, ein Guthaben der nativen Münze der Blockchain halten. Ein Smart Contract kann außerdem Daten in seinem Zustand speichern, etwa einen Zählerstand für jede Adresse, und ein Aufruf einer seiner Funktionen kann diese Daten verändern.

Ein Smart Contract kann andere Verträge aufrufen, wodurch der Code eines Vertrags die Funktionen eines anderen nutzen kann. Eine Funktion kann ein Ereignis (Event) protokollieren – eine Meldung auf der Blockchain, nach der Software außerhalb der Blockchain Ausschau halten kann.

Ein Token-Vertrag ist ein Smart Contract, der Tokens erstellt und verwaltet. Anders als eine native Münze ist ein Token eine Einheit, die über einen Smart Contract auf einer bestehenden Blockchain ausgegeben wird. Ein Token-Standard ist eine veröffentlichte Spezifikation der Funktionen und Ereignisse, die ein Token-Vertrag bereitstellt.

Was bestimmt das Verhalten eines Smart Contracts, und kann es sich noch ändern?

Der an der Adresse eines Smart Contracts gespeicherte Code bestimmt, was der Vertrag tut. Ein Smart Contract führt aus, was sein Code vorgibt, was sich von dem unterscheiden kann, was der Autor beabsichtigt hat. Der Code an der Adresse eines Smart Contracts ändert sich nach der Bereitstellung nicht mehr, ein Vertrag kann jedoch so gestaltet werden, dass das ausgeführte Verhalten ersetzt werden kann.

Ein Smart Contract kann dennoch so entworfen werden, dass sein Verhalten austauschbar ist. Ein Vertrag kann die Adresse eines zweiten Vertrags speichern und Aufrufe an ihn weiterleiten. Wurde der erste Vertrag so gestaltet, dass sich die gespeicherte Adresse ändern lässt, kann sich das ausgeführte Verhalten ändern, während die Adresse des ersten Vertrags gleich bleibt. Ein so gestalteter Vertrag kann zudem festlegen, welche Konten die Adresse ändern dürfen, an die er Aufrufe weiterleitet.

Was ist das Bitcoin-Gegenstück zu einem Smart Contract?

Bitcoin, ein Kryptowährungsnetzwerk, dessen Münze BTC ist, besitzt ein Gegenstück in Form von Scripts. Ein Script ist eine in der Skriptsprache von Bitcoin verfasste Regel, die erfüllt sein muss, bevor ein Betrag an BTC bewegt werden kann. Stand Oktober 2026 beschreibt die Dokumentation von Bitcoin dessen Skriptsprache als bewusst eingeschränkt. BTCFi, kurz für Bitcoin-native Finance, ist eine Bezeichnung, die verschiedene Akteure für finanzielle Aktivitäten rund um BTC verwenden, einschließlich Smart Contracts und anderer Konzepte.

Was ist eine Code-Überprüfung eines Smart Contracts?

Eine Code-Überprüfung eines Smart Contracts ist eine Kontrolle des Vertragscodes durch andere Personen als den Autor, die den Code auf Fehler hin durchsehen. Ein Audit ist eine Methode, eine solche Überprüfung durchzuführen. Eine Überprüfung kann Fehler übersehen, weshalb sie nicht belegt, dass der Code eines Vertrags fehlerfrei ist.

Wo liegen die Grenzen eines Smart Contracts?

Ohne ein Orakel arbeitet ein Smart Contract nur mit Daten auf der Blockchain, auf der er läuft. Ein Orakel ist ein Dienst, der einem Vertrag externe Daten übermittelt. Externe Daten sind Daten, die nicht auf der Blockchain des Vertrags gespeichert sind, etwa ein externes Datum oder ein externes Ergebnis.

Ein Fehler im Code eines bereits bereitgestellten Smart Contracts kann dort bestehen bleiben, sofern der Vertrag nicht so gestaltet wurde, dass sein Verhalten ersetzt werden kann.

27. November 2025

GoMining News

Das könnte Sie auch interessieren: