Wiki/Cross-Function-Reentrancy verstehen
Cross-Function-Reentrancy verstehen - Biturai Wiki Knowledge
EXPERTE | BITURAI KNOWLEDGE

Cross-Function-Reentrancy verstehen

Cross-Function-Reentrancy ist eine ausgeklügelte Smart-Contract-Schwachstelle, bei der ein Angreifer den Ausführungsfluss über mehrere Funktionen oder sogar Verträge hinweg manipuliert. Dies ermöglicht wiederholte Aufrufe zum Abzug von

Biturai Knowledge
Biturai Knowledge
Research-Bibliothek
Aktualisiert: 2.7.2026
Technisch geprüft

Struktur, Lesbarkeit, interne Verlinkung und SEO-Metadaten wurden automatisiert geprüft. Der Artikel wird fortlaufend aktualisiert und dient der Bildung, nicht als Finanzberatung.

Definition

Eine Cross-Function-Reentrancy ist eine hochentwickelte Art von Reentrancy-Angriff in Smart Contracts, bei der ein böswilliger Akteur Schwachstellen ausnutzt, indem er wiederholte externe Aufrufe an einen Ziel-Vertrag tätigt, oft unter Einbeziehung mehrerer Funktionen oder sogar separater Verträge, bevor die Zustandsaktualisierungen der ursprünglichen Transaktion abgeschlossen sind. Dies ermöglicht es dem Angreifer, Gelder abzuziehen oder kritische Zustandsvariablen zu manipulieren, indem er die Logik des anfälligen Vertrags mit einem veralteten Verständnis seines internen Zustands erneut betritt.

Im Kern tritt ein Reentrancy-Angriff auf, wenn ein Vertrag einen externen Aufruf an einen anderen, nicht vertrauenswürdigen Vertrag tätigt und der externe Vertrag dann den ursprünglichen Vertrag zurückruft, bevor dieser seine Ausführung beendet und seinen Zustand aktualisiert hat. Cross-Function-Reentrancy erweitert dies durch komplexere Interaktionsmuster, die oft gemeinsame Zustandsvariablen oder logische Abhängigkeiten zwischen verschiedenen Funktionen innerhalb desselben Vertrags oder sogar über mehrere miteinander verbundene Verträge hinweg nutzen. Das Ziel des Angreifers ist es, das Zeitfenster zwischen einem externen Aufruf und der nachfolgenden Zustandsaktualisierung auszunutzen.

Kernaussage

Die wichtigste Lehre aus der Cross-Function-Reentrancy ist die absolute Notwendigkeit, das Checks-Effects-Interactions-Muster bei der Entwicklung von Smart Contracts zu implementieren. Dieses Muster schreibt vor, dass alle Voraussetzungen (z. B. Saldenprüfungen, Berechtigungen) zuerst erfolgen sollten, gefolgt von allen Zustandsänderungen (Effekte) und erst danach sollten externe Aufrufe (Interaktionen) getätigt werden. Eine Abweichung von dieser Reihenfolge, insbesondere durch externe Aufrufe vor der Aktualisierung des internen Zustands, öffnet ein kritisches Schwachstellenfenster, das von ausgeklügelten Angreifern über mehrere Funktionen oder Verträge hinweg ausgenutzt werden kann.

Mechanik

Die Mechanik eines Cross-Function-Reentrancy-Angriffs ist komplexer als die einer einfachen Reentrancy innerhalb einer einzelnen Funktion. Anstatt wiederholt dieselbe anfällige Funktion aufzurufen, orchestriert der Angreifer eine Abfolge von Aufrufen, die verschiedene Funktionen innerhalb des Ziel-Vertrags oder sogar über mehrere Verträge hinweg betreffen, die eine gemeinsame Ressource oder einen gemeinsamen Zustand teilen. Der grundlegende Fehler bleibt derselbe: Ein externer Aufruf wird getätigt, bevor der interne Zustand des Vertrags (wie der Saldo eines Benutzers) aktualisiert wird.

Stellen Sie sich ein Szenario vor, in dem ein Vertrag eine withdraw-Funktion und eine transfer-Funktion besitzt, die beide mit dem Saldo eines Benutzers interagieren. Ein Angreifer könnte die withdraw-Funktion aufrufen, die Ether an den bösartigen Vertrag des Angreifers sendet. Bevor die withdraw-Funktion den Saldo des Angreifers auf Null setzen kann, wird die receive- oder Fallback-Funktion des bösartigen Vertrags des Angreifers ausgelöst. Innerhalb dieser Fallback-Funktion ruft der Angreifer nicht erneut withdraw auf. Stattdessen könnte er eine andere Funktion, z. B. transfer, im ursprünglichen anfälligen Vertrag aufrufen oder sogar eine Funktion in einem zweiten anfälligen Vertrag, der auf denselben zugrunde liegenden Saldo oder Zustand angewiesen ist. Da der ursprüngliche withdraw-Aufruf seine Zustandsaktualisierung noch nicht abgeschlossen hat, sieht die transfer-Funktion (oder die Funktion des zweiten Vertrags) immer noch den ursprünglichen, nicht abgezogenen Saldo des Angreifers, was es ihm ermöglicht, eine weitere Operation mit Geldern zu initiieren, die er eigentlich nicht mehr besitzen sollte. Diese Kettenreaktion kann wiederholt werden, bis der Vertrag geleert ist.

Trading-Relevanz

Obwohl Cross-Function-Reentrancy-Angriffe primär ein Anliegen für Smart-Contract-Entwickler und -Auditoren sind, haben ihre Auswirkungen eine erhebliche Trading-Relevanz für Nutzer und Investoren im Krypto-Bereich. Wenn eine dezentrale Anwendung (dApp) oder ein DeFi-Protokoll durch eine solche Schwachstelle ausgenutzt wird, ist die unmittelbare Folge oft ein massiver Verlust von Geldern, der zu einem starken Rückgang des Wertes der zugehörigen Token oder Vermögenswerte führt. Für Trader bedeutet dies plötzliche und schwerwiegende Marktvolatilität, potenzielle Liquidationsereignisse und einen Vertrauensverlust in das betroffene Projekt.

Das Verständnis des Potenzials für diese Angriffe hilft Tradern, die Sicherheitsposition der Protokolle zu bewerten, mit denen sie interagieren. Projekte, die für strenge Sicherheitsaudits, Bug-Bounty-Programme und die Einhaltung bewährter Verfahren bei der Smart-Contract-Entwicklung bekannt sind, sind im Allgemeinen weniger anfällig. Umgekehrt stellen Projekte mit ungeprüftem Code oder einer Geschichte von Sicherheitsvorfällen höhere Risiken dar. Trader, die sich der Reentrancy-Typen bewusst sind, können die langfristige Rentabilität und das Risikoprofil ihrer Investitionen besser einschätzen und fundiertere Entscheidungen über die Kapitalallokation in der volatilen DeFi-Landschaft treffen.

Risiken

Die Risiken, die mit Cross-Function-Reentrancy-Angriffen verbunden sind, sind tiefgreifend und vielschichtig und gehen über bloße finanzielle Verluste hinaus. Das unmittelbarste und verheerendste Risiko ist das vollständige Leeren von Geldern aus einem anfälligen Smart Contract, was Millionen oder sogar Hunderte von Millionen Dollar betragen kann. Dies betrifft direkt Nutzer, die Vermögenswerte in den Vertrag eingezahlt haben, sowie die Projektkasse und Liquiditätspools. Ein solches Ereignis kann zum Zusammenbruch des gesamten Projekts führen und seine nativen Token wertlos machen.

Über direkte finanzielle Verluste hinaus untergraben diese Angriffe das Nutzervertrauen und die Zuversicht in das dezentrale Ökosystem erheblich. Jeder größere Exploit dient als deutliche Erinnerung an die inhärenten Risiken der jungen Blockchain-Technologie und kann neue Nutzer und institutionelle Investoren abschrecken. Für Entwickler umfasst das Risiko erhebliche Reputationsschäden, rechtliche Haftung und die immensen Kosten der Behebung, die oft komplexe Wiederherstellungsbemühungen, Hard Forks oder sogar vollständige Neuimplementierungen beinhalten. Darüber hinaus macht die Komplexität der Cross-Function-Reentrancy die Erkennung schwierig, da sie ein tiefes Verständnis der Abhängigkeiten zwischen Funktionen und Verträgen erfordert, was oft fortgeschrittene statische Analysetools und eine manuelle Expertenprüfung notwendig macht.

Geschichte und Beispiele

Die Geschichte der Reentrancy-Angriffe ist eng mit den frühen Tagen von Ethereum verbunden, wobei das berüchtigtste Beispiel der DAO-Hack im Jahr 2016 ist. Obwohl der DAO-Hack eine klassische Single-Function-Reentrancy war, legte er den Grundstein für das Verständnis, wie externe Aufrufe ausgenutzt werden könnten. Angreifer riefen die withdraw-Funktion wiederholt auf, bevor der Saldo aktualisiert wurde, und zogen so Millionen von Ether ab. Dieses Ereignis führte zum Hard Fork, der Ethereum Classic und die aktuelle Ethereum-Kette hervorbrachte.

Cross-Function-Reentrancy, als eine weiterentwickelte Form, hat ihren Anteil an ausgeklügelten Exploits gesehen. Während spezifische hochkarätige Beispiele aufgrund ihrer Komplexität oder des geringeren Umfangs einzelner Vorfälle oft weniger publiziert werden als der DAO-Hack, wurde das zugrunde liegende Prinzip in verschiedenen Formen beobachtet. Zum Beispiel wurden Schwachstellen identifiziert, bei denen ein Angreifer eine deposit-Funktion aufrufen und dann über eine transfer- oder borrow-Funktion erneut eintreten könnte, bevor die Einzahlung vollständig verarbeitet ist, wodurch der wahrgenommene Saldo effektiv manipuliert wird. Diese Angriffe zielen oft auf Protokolle mit komplexer Logik ab, die mehrere Asset-Typen, Lending-Pools oder Governance-Mechanismen umfassen, wo die Interaktion zwischen verschiedenen Funktionen unerwartete Wiedereintrittspunkte schafft. Entwickler haben aus diesen Vorfällen gelernt, was zu strengeren Sicherheitspraktiken und der weit verbreiteten Einführung von Mustern wie Checks-Effects-Interactions geführt hat.

Häufige Missverständnisse

Ein häufiges Missverständnis bezüglich der Cross-Function-Reentrancy ist, dass die bloße Verwendung von transfer() oder send() für Ether-Transfers das Risiko vollständig mindert. Während transfer() und send() das an einen externen Aufruf weitergeleitete Gas (auf 2300 Gas) begrenzen, was es einem bösartigen Vertrag erschwert, komplexe Re-Entry-Logik auszuführen, gilt dies nur für Ether-Transfers. Wenn die Schwachstelle ERC-20-Token-Transfers oder andere beliebige externe Aufrufe an Funktionen eines anderen Vertrags betrifft, bieten transfer() und send() keinen Schutz. Der Angreifer kann die Logik des anfälligen Vertrags immer noch über einen anderen Funktionsaufruf erneut betreten, wenn der Zustand nicht aktualisiert wurde.

Ein weiteres Missverständnis ist, dass Reentrancy nur auftritt, wenn ein Vertrag sich explizit selbst aufruft. Bei der Cross-Function-Reentrancy kann der Wiedereintritt indirekt erfolgen. Der Vertrag eines Angreifers könnte ContractA.function1() aufrufen, die dann ContractB.functionX() aufruft, und ContractB.functionX() ruft dann ContractA.function2() zurück, bevor function1() ihre Zustandsaktualisierungen abgeschlossen hat. Die Kette der Aufrufe kann komplex sein und mehrere Verträge und Funktionen umfassen, was die Rückverfolgung und Identifizierung bei Audits erschwert. Es geht nicht nur um direkte rekursive Aufrufe, sondern um jeden externen Aufruf, der es dem Angreifer ermöglicht, die Kontrolle über die Ausführung zurückzugewinnen, bevor der Zustand der ursprünglichen Transaktion finalisiert wird.

Zusammenfassung

Cross-Function-Reentrancy stellt eine bedeutende und komplexe Bedrohung innerhalb der Smart-Contract-Sicherheit dar, die sich aus den grundlegenden Reentrancy-Angriffen der frühen Blockchain-Ära entwickelt hat. Sie beinhaltet, dass ein Angreifer den Ausführungsfluss über mehrere Funktionen, potenziell innerhalb desselben Vertrags oder über miteinander verbundene Verträge hinweg, manipuliert, um den veralteten Zustand eines Vertrags auszunutzen, bevor eine anfängliche Transaktion vollständig festgeschrieben ist. Die Kernschwachstelle liegt darin, externe Aufrufe zu tätigen, bevor interne Zustandsvariablen aktualisiert werden, wodurch ein Fenster für den Wiedereintritt entsteht. Die Minderung dieses Risikos erfordert eine strikte Einhaltung des Checks-Effects-Interactions-Musters, bei dem alle Zustandsänderungen vor externen Interaktionen abgeschlossen werden. Für Entwickler bedeutet dies eine sorgfältige Code-Überprüfung, umfassende Tests und den Einsatz von Sicherheitstools. Für Nutzer und Trader unterstreicht das Verständnis dieser Schwachstelle die Bedeutung der Wahl geprüfter und robuster Protokolle, da Exploits zu katastrophalen finanziellen Verlusten führen und das Vertrauen in das dezentrale Ökosystem untergraben können. Wachsamkeit und ein tiefes Verständnis der Smart-Contract-Sicherheitsprinzipien sind für die Navigation in der Komplexität der Krypto-Welt von größter Bedeutung.

OKX EU · Offizieller Biturai-Partner

OKX EU

Entdecke das aktuelle Angebot von OKX EU über den offiziellen Biturai-Partnerlink. Produkte und Verfügbarkeit können je Land abweichen.

OKX EU ansehen

Partnerlink · Biturai kann bei Nutzung eine Vergütung erhalten · keine Anlageberatung

OKX EU

Haftungsausschluss

Dieser Artikel dient ausschließlich zu Informationszwecken. Die Inhalte stellen keine Finanzberatung, Anlageempfehlung oder Aufforderung zum Kauf oder Verkauf von Wertpapieren oder Kryptowährungen dar. Biturai übernimmt keine Gewähr für die Richtigkeit, Vollständigkeit oder Aktualität der Informationen. Investitionsentscheidungen sollten stets auf Basis eigener Recherche und unter Berücksichtigung der persönlichen finanziellen Situation getroffen werden.

Transparenz

Biturai kann KI-gestützte Werkzeuge zur Recherche, Strukturierung oder Aktualisierung von Wiki-Artikeln einsetzen. Redaktionell geprüfte Artikel werden separat gekennzeichnet; alle Inhalte bleiben Bildungsinhalte und ersetzen keine eigene Prüfung.