Token-Freigaben und Allowances: ERC-20 prüfen und widerrufen
Erfahre, was eine ERC-20-Freigabe einem Smart Contract erlaubt, wie unbegrenzte Allowances und Permit-Signaturen funktionieren und was ein Widerruf ändert.
In diesem LeitfadenWallet-Verbindung und Token-Freigabe sind verschiedene Rechte
Kurze Zusammenfassung
Ein ERC-20-`approve` sendet normalerweise keine Token sofort. Es speichert, wie viele Token ein bestimmter Spendervertrag später per `transferFrom` anfordern darf. Das Trennen einer Wallet-Verbindung löscht diese Onchain-Allowance nicht automatisch; eine bereits ausgeführte Übertragung lässt sich durch Widerruf nicht rückgängig machen.
Wallet-Verbindung und Token-Freigabe sind verschiedene Rechte
Eine Website-Verbindung zeigt einer App normalerweise eine öffentliche Adresse und ermöglicht Signaturanfragen. Damit darf sie nicht automatisch alle ERC-20-Token bewegen. Die Allowance steht separat im Tokenvertrag. MetaMask unterscheidet ebenfalls zwischen dApp-Verbindung trennen und Token-Freigaben widerrufen.
Eine ERC-20-Allowance gilt für eine Kombination aus Tokenvertrag, Blockchain, Inhaberadresse und Spenderadresse. Eine Freigabe auf Ethereum ist keine Freigabe desselben Symbols auf Polygon oder eines anderen Tokens. Wer nur „die App ist freigegeben“ notiert, übersieht leicht, auf welcher Chain und für welches Token noch ein Betrag gilt.
Dieser Beitrag behandelt approve, allowance und transferFrom bei ERC-20 auf Ethereum und kompatiblen Netzwerken. Native ETH-Überweisungen, NFT-setApprovalForAll, andere Tokenstandards und die Wallet-Anmeldung verwenden andere Berechtigungsmodelle. Zur Schlüsselaufbewahrung siehe den Leitfaden zu Seed-Phrase-Backup und Wallet-Wiederherstellung.
`approve` speichert ein Ausgabenlimit, überträgt aber keine Token
Mit approve(spender, amount) kann ein Inhaber im Tokenvertrag festlegen, wie viele Token ein bestimmter Spender verwenden darf. transferFrom ermöglicht diesem Spender, Token im Auftrag des Inhabers zu bewegen. Der Aufruf von approve ändert daher normalerweise nicht sofort den Kontostand; ein späterer Vertragsaufruf kann die Allowance verbrauchen. So beschreibt es der ERC-20-Standard.
Beispiel: Eine Wallet hält 300 Token und gibt einem Router eine Allowance von 80. Bei einem üblichen ERC-20 ist der kleinere Wert aus verbleibender Allowance und aktuellem Bestand die Obergrenze. Die Freigabe muss nicht auf einen Trade beschränkt sein; ein Vertrag kann transferFrom mehrfach aufrufen. Wird der genehmigte Vertrag oder sein vorgesehener Ablauf missbraucht, können Token anders als erwartet bewegt werden. Auch nicht standardkonformes Tokenverhalten ist zu beachten.
Eine Freigabe ist meist eine Onchain-Transaktion an den Tokenvertrag und kann Netzwerkgebühren kosten. Manche Apps trennen Freigabe und Tausch, andere kombinieren eine Signaturfreigabe mit einer späteren Transaktion. Entscheidend ist der tatsächliche Wallet-Inhalt, nicht allein die Schaltfläche „Approve“.
Eine unbegrenzte Allowance ist keine sofortige Auszahlung
„Unlimited“ steht häufig für einen Wert nahe dem maximalen Integer des Tokens. Dadurch entstehen keine unendlichen Token und der Bestand wird bei der Freigabe nicht sofort übertragen. Der Spender kann jedoch später die verbleibende Berechtigung für Token nutzen, die auf derselben Chain in dieselbe Wallet gelangen. Manche Implementierungen ziehen einen maximalen Wert nicht ab; prüfe daher das Verhalten des Tokens.
Apps können große Limits anfragen, um wiederholte Freigaben zu vermeiden. Bequemlichkeit und Risiko gehören zusammen betrachtet. Eine Schwachstelle oder missbrauchte Kontrolle des Spendervertrags kann eine alte Freigabe später relevant machen. Der Widerrufsleitfaden von Ethereum.org erklärt, warum ein breites Limit auch nach dem Zurückschieben von Token in die Wallet bestehen bleibt.
Ein kleineres Limit beseitigt nicht jedes Risiko: Ein falscher Spender oder gefälschtes Token kann auch bei kleinen Beträgen schaden; häufige Freigaben bringen Gebühren und zusätzliche Fehlermöglichkeiten. Beziehe die geplante Menge, Nutzungshäufigkeit, das Vertrauen in den Vertrag und die Möglichkeit ein, die Berechtigung später zu prüfen.

Prüfe Chain, Token, Spender und Betrag vor der Signatur
Prüfe vor dem Signieren vier Angaben: stimmt das ausgewählte Netzwerk mit der App überein; ist die Token-Vertragsadresse korrekt und nicht nur das Tickersymbol; passt die Spenderadresse zu den offiziellen Projektunterlagen oder verifizierbaren Vertragsdaten; entspricht das Limit der geplanten Aktion oder bleibt eine breite Berechtigung bestehen?
Verbinde die Wallet nicht über Links aus Direktnachrichten, QR-Codes, Support-Chats oder ungeprüften Anzeigen. Phishing-Seiten können echte Apps nachahmen. Nutze eine gespeicherte offizielle Adresse oder die Projektdokumentation. Ein vertraut klingender Vertragsname beweist keine sichere Adresse; auch ein Verifizierungszeichen im Explorer ist kein Sicherheitsnachweis.
Ein Hardware-Signer kann den privaten Schlüssel vom normalen Browser trennen. Er entscheidet aber nicht, ob Spender und Betrag sicher sind. Wenn das Gerät die Anfrage nicht verständlich darstellt, stoppe und prüfe die offizielle Dokumentation des Wallet-Anbieters. Wenige sichtbare Details bedeuten auch weniger Prüfmöglichkeiten.
`permit` ändert den Freigabeweg, erteilt aber ebenfalls eine Berechtigung
Einige ERC-20-Token unterstützen ERC-2612 permit. Statt einer normalen approve-Transaktion signiert der Inhaber Typed Data; eine andere Partei kann diese Signatur einreichen und damit die Allowance setzen. Die Nachricht enthält Inhaber, Spender, Wert, Nonce und Deadline und bindet die Signatur über eine Domain an Chain und Vertrag.
Die ERC-2612-deadline ist der letzte Zeitpunkt, zu dem das signierte Permit eingereicht werden darf. Sie lässt eine bereits erfolgreich gesetzte Allowance nicht automatisch zu diesem Zeitpunkt ablaufen. Das Limit kann bestehen bleiben, bis es verbraucht, geändert oder widerrufen wird. Manche Token nutzen andere Permit-Varianten oder zusätzliche Ablaufregeln; nicht jede Aufforderung mit dem Namen „permit“ entspricht ERC-2612.
Eine Signatur kann Gebührenzahlung durch ein anderes Konto ermöglichen, ist aber nicht automatisch eine harmlose Login-Bestätigung. Zeigt die Wallet Token, Spender, Betrag und Zeitbedingungen nicht klar an oder stimmen sie nicht mit der App-Erklärung überein, lehne ab und prüfe die offiziellen Unterlagen. Auch eine noch nicht eingereichte Signatur kann vor ihrer Deadline von jemand anderem eingereicht werden.
Eine Website zu trennen widerruft keine Onchain-Allowance
Abmelden oder Trennen verändert die Browser-Sitzung oder Verbindungsberechtigung. Eine im Tokenvertrag gespeicherte ERC-20-Allowance kann bestehen bleiben. Umgekehrt löscht ein Widerruf weder die Kenntnis einer öffentlichen Adresse noch die frühere Onchain-Historie. Die MetaMask-Anleitung zum Trennen erklärt diesen Unterschied.
Beim Widerruf wird meist eine Onchain-Transaktion gesendet, die die Allowance für genau diesen Tokenvertrag und Spender auf null setzt. Sie kostet Netzwerkgebühren; bis zur Bestätigung kann die bisherige Berechtigung gelten. Aktualisiere danach die Freigabeliste oder frage den Tokenvertrag erneut ab und bestätige den Wert für dieselbe Wallet, Chain, denselben Token und Spender. MetaMask und Ethereum.org erklären netzwerkspezifische Prüfungen. Kontrolliere die offizielle Domain und das ausgewählte Netzwerk.
Jede Chain speichert ihren eigenen Zustand. Eine Allowance auf Ethereum auf null zu setzen, ändert keine Freigabe desselben Tokens auf einem anderen Netzwerk. Prüfe alle relevanten Konten, Tokenverträge, Spender und Chains. Ein Widerrufstool benötigt weder Seed-Phrase noch privaten Schlüssel.
Ein Widerruf stoppt künftige Nutzung, macht aber keine Überweisung rückgängig
Sobald eine Allowance von null bestätigt ist, kann sie keine neue transferFrom-Übertragung mehr erlauben. Sie macht abgeschlossene Übertragungen aber nicht rückgängig, holt Token nicht von Empfängern zurück und entfernt keine anderen Vertragsrechte. Wurden Token bereits durch einen verdächtigen Spender bewegt, ist der Widerruf keine Wiederherstellungsmethode.
Ist der private Schlüssel offengelegt, kann ein Angreifer weiterhin auf anderem Weg Transaktionen signieren. Freigaben für andere Spender oder Token, NFT-Operatorrechte, Permit-Signaturen und vertragsbezogene Berechtigungen können ebenfalls bestehen. Werte das Ergebnis nur für die geprüfte Wallet und Chain aus.
Nach einem Widerruf kann beim nächsten Tausch, Einzahlen oder Einlösen eine neue Freigabe nötig sein. Prüfe vorab, ob eine offene Transaktion oder aktive Position die Berechtigung nutzt, und lies bei Bedarf die offizielle Hilfe des Protokolls. Wichtig ist, die Folgen einer Änderung zu kennen.
Beim Ändern einer Allowance gibt es eine ERC-20-Rennbedingung
Der ERC-20-Standard empfiehlt Oberflächen, ein bestehendes nicht null gesetztes Limit erst auf null zu setzen, bevor ein anderes nicht null gesetztes Limit folgt. Wird eine Transaktion des Spenders zwischen die alte und neue Freigabe sortiert, kann er mehr als erwartet verwenden. Beim Wechsel von 100 auf 25 könnte er erst die alten 100 und danach die neuen 25 nutzen.
Null zu setzen und die Bestätigung abzuwarten, verringert die Möglichkeit, dass alte und neue Werte zugleich gelten. Es kann aber eine Nutzung der alten Allowance vor Bestätigung der Null-Transaktion nicht rückgängig machen. Beide Schritte können Gebühren kosten; Token verhalten sich unterschiedlich. Folge dem dokumentierten sicheren Ablauf von Wallet oder Token und warte auf Bestätigung.
Wenn du das aktuelle Limit nicht kennst, frage vor einer Änderung den Tokenvertrag auf dem ausgewählten Netzwerk ab. Bei einem leeren oder unerwarteten Ergebnis prüfe, ob Chain, Token und Inhaberadresse stimmen.
Mit einer kurzen Routine Wallet- und Tokenrechte prüfen
- Bestätige offizielle Projektdomain und ausgewählte Chain.
- Prüfe Tokenvertrag und Spenderadresse und vergleiche das Limit mit der geplanten Aktion.
- Lies den tatsächlichen Transaktions- oder Typed-Data-Inhalt in der Wallet. Unverständliche Anfragen nicht signieren.
- Prüfe nicht mehr benötigte oder nicht mehr vertrauenswürdige Spender auf dem passenden Netzwerk, setze die Allowance bei Bedarf auf null und kontrolliere das Ergebnis.
- Vergleiche Wallets nicht nur nach unterstützten Chains, sondern auch danach, wie klar sie Freigaben anzeigen und wie nachvollziehbar Update und Wiederherstellung dokumentiert sind.
Eine Hardware-Wallet ist eine Option für Schlüsselaufbewahrung und Signaturprüfung, keine Garantie für die Sicherheit eines Vertrags und kein Schutz davor, selbst ein breites Limit zu genehmigen. Prüfe Spender, Token, Chain und Betrag eigenständig. Wenn du verstehst, dass Token-Allowances getrennt von Website-Verbindungen bestehen können, kannst du auch Sicherheitsfunktionen und ihre Grenzen besser vergleichen.
Häufige Fragen
Q1Entfernt das Trennen meiner Wallet eine bestehende Tokenfreigabe?
Nein. Die Website-Verbindung ist eine Sitzung; eine ERC-20-Allowance ist Onchain-Zustand im Tokenvertrag. Prüfe die betreffende Chain und den Token und widerrufe die Spenderfreigabe bei Bedarf separat.
Q2Kann ich bereits bewegte Token zurückholen, wenn ich die Allowance auf null setze?
Nein. Nach Bestätigung verhindert null eine spätere Nutzung, macht aber keine abgeschlossene Übertragung rückgängig. Prüfe andere Freigaben und eine mögliche Schlüsseloffenlegung separat.
Q3Verwenden alle Kryptotoken und NFTs ERC-20-Allowances?
Nein. Dieser Beitrag behandelt ERC-20 approve und transferFrom. NFT-Operatorrechte, native Assets, andere Standards und chainspezifische Berechtigungen folgen eigenen Regeln.
Quellen und weiterführende Lektüre
Problem melden
Wir bereiten eine E-Mail mit dem Link zu diesem Artikel vor. Mark erhält den Hinweis erst nach dem Senden
Schnelltest
Fertig gelesen? Prüfe dich mit 3 Fragen
Frage 01
Was legt ERC-20 `approve(spender, amount)` hauptsächlich fest?
Wähle eine Antwort, um die Erklärung zu sehen
Optionsglossar
Verfahren, bei dem die Pflicht zur Vertragserfüllung nach einer Ausübungsmitteilung dem Verkäufer zugeteilt wird und eine Lieferung oder ein Kauf von Aktien entstehen kann.
Detaillierten Leitfaden lesenGeld-Brief-SpanneDie Differenz zwischen dem besten Geld- und Briefkurs eines Kontrakts. Sie beschreibt einen impliziten Kostenanteil beim Ein- und Ausstieg und kann bei geringerer Liquidität größer werden.
Detaillierten Leitfaden lesen