Eine Blockchain mit öffentlichen Explorern lesen · Lektion 7 von 8
Token und Smart Contracts in Block-Explorern
6 Min. Lesezeit
Coins und Token sind unterschiedliche Dinge
Jedes Netzwerk hat einen nativen Coin: BTC auf Bitcoin, ETH auf Ethereum, SOL auf Solana. Der native Coin ist im Protokoll verankert und dient zur Bezahlung der Gebühren.
Ein Token ist etwas anderes. Auf Ethereum und ähnlichen Netzwerken ist ein Token ein Smart Contract, der ein eigenes Register führt: eine Tabelle mit Adressen und den Beträgen, die jeweils von ihnen gehalten werden. Wenn du „500 Einheiten eines Tokens hältst“, enthält deine Adresse diese nicht so, wie sie ETH enthält. Der Token-Contract verzeichnet, dass deine Adresse Anspruch auf 500 Einheiten hat.
Die meisten Token folgen gemeinsamen Standards, damit Wallets und Block-Explorer sie anzeigen können:
| Standard | Token-Art | Anwendungsbeispiele |
|---|---|---|
| ERC-20 | Fungibel: Jede Einheit ist identisch | Stablecoins, Governance-Token |
| ERC-721 | Nicht fungibel (NFT): Jeder Token hat eine eigene ID | Sammlerstücke, Tickets, Zertifikate |
| ERC-1155 | Beide Arten in einem Contract | Spiele, Item-Editionen |
Andere Netzwerke haben ihre eigenen Entsprechungen (zum Beispiel SPL-Token auf Solana und TRC-20-Token auf Tron), und die Block-Explorer dieser Netzwerke zeigen sie auf ähnliche Weise an.
So sieht eine Token-Übertragung aus
Eine Token-Übertragung ist eine Transaktion, die den Token-Contract aufruft und ihn auffordert, sein Register zu aktualisieren. Das hat drei Folgen, die viele beim ersten Mal verwirren:
- Das Feld To der Transaktion zeigt den Token-Contract an, nicht die Person, die die Token erhält.
- Das Feld Value lautet gewöhnlich 0 ETH, weil keine ETH gesendet wird.
- Der tatsächliche Empfänger und Betrag stehen in den Eingabedaten, und das Ergebnis wird als Transfer-Ereignis in den Logs festgehalten.
Block-Explorer lesen diese Transfer-Ereignisse und stellen sie benutzerfreundlich dar. Auf der Transaktionsseite ist das meist ein Abschnitt namens „Übertragene Token“ oder „ERC-20-Token-Übertragungen“, auf jeder Adressseite gibt es außerdem einen separaten Tab „Token-Übertragungen“. Wenn du überprüfen möchtest, ob Token an einer Adresse angekommen sind, solltest du dort nachsehen und nicht in der Hauptliste der Transaktionen.
Dezimalstellen: Den tatsächlichen Betrag ablesen
Contracts speichern Token-Beträge als ganze Zahlen. Jeder Token legt eine Anzahl von Dezimalstellen fest. Sie bestimmt, an welcher Stelle Wallets das Dezimalkomma setzen.
- Viele Token verwenden 18 Dezimalstellen, genau wie ETH.
- Die großen Dollar-Stablecoins USDC und USDT verwenden auf Ethereum 6 Dezimalstellen.
Ein Rohbetrag von 1.500.000 in einem USDC-Contract entspricht also 1,5 USDC, während dieselbe Rohzahl bei einem Token mit 18 Dezimalstellen nur einen winzigen Bruchteil einer Einheit ausmachen würde. Block-Explorer rechnen das normalerweise für dich um. Wenn du jedoch jemals rohe Eingabedaten liest oder Daten exportierst, musst du vor deinen Schlussfolgerungen die Dezimalstellen berücksichtigen.
Die Token-Seite und die Contract-Adresse
Jeder Token hat eine Seite mit seinem Namen, Symbol, der Anzahl der Dezimalstellen, dem Gesamtangebot, der Anzahl der Holder, einer Liste der Übertragungen und vor allem seiner Contract-Adresse.
Die Contract-Adresse ist die tatsächliche Identität des Tokens. Namen und Symbole sind nicht eindeutig. Jeder kann innerhalb weniger Minuten einen Contract mit dem Namen „Tether USD“ und dem Symbol USDT bereitstellen. Solche gefälschten Token sind weit verbreitet und erscheinen in Wallets und Block-Explorern nahezu identisch wie das Original.
So überprüfst du, ob ein Token echt ist:
- Rufe die offizielle Contract-Adresse auf der Website oder in der Dokumentation des Herausgebers ab und vergleiche die vollständige Adresse.
- Überprüfe auf der Token-Seite die Anzahl der Holder, das Alter des Tokens und die Übertragungsaktivität. Ein Token mit bekanntem Namen, aber nur einer Handvoll Holdern, der erst letzte Woche erstellt wurde, ist ein Warnsignal.
- Denk daran, dass derselbe Stablecoin als separate Contracts auf verschiedenen Netzwerken existiert. USDT auf Ethereum und USDT auf Tron sind unterschiedliche Contracts auf unterschiedlichen Chains. Dasselbe gilt für USDC auf Ethereum und USDC auf BNB Smart Chain. Da EVM-Netzwerke dasselbe Adressformat verwenden, kann man leicht an die richtige Adresse, aber über das falsche EVM-Netzwerk senden. Das kann zum Verlust der Mittel führen oder eine schwierige Wiederherstellung erforderlich machen.
Contract-Seiten: verifizierter Code, Lesen und Schreiben
Die Adressseite eines Smart Contracts hat zusätzliche Tabs:
- Code: Wenn der Entwickler den Contract verifiziert hat, zeigt der Block-Explorer den Quellcode an und bestätigt, dass dieser exakt zu dem Code kompiliert, der auf der Chain bereitgestellt wurde. Eine Verifizierung bedeutet nicht, dass der Contract sicher oder ehrlich ist; sie bedeutet, dass jeder nachlesen kann, was er tut.
- Contract lesen: Hier kannst du öffentliche Werte wie den Kontostand einer Adresse oder das Gesamtangebot direkt von der Chain abrufen.
- Contract schreiben: Hier kannst du über eine verbundene Wallet Transaktionen an den Contract senden. Geh dabei äußerst vorsichtig vor.
- Proxy: Viele Contracts sind upgradefähig. Ein Proxy-Contract leitet Aufrufe an einen Implementierungs-Contract weiter, den seine Administratoren ersetzen können. Block-Explorer zeigen beide Adressen an. Upgradefähig bedeutet, dass sich die Regeln später ändern können.
Genehmigungen: Berechtigung, deine Token auszugeben
Dezentralisierte Anwendungen müssen oft Token in deinem Namen bewegen können, zum Beispiel, um einen Tausch durchzuführen. Dazu verwenden sie eine Genehmigung: Du sendest eine Transaktion, die die Funktion approve des Tokens aufruft. Dadurch darf ein benannter Ausgeber-Contract bis zu einem festgelegten Betrag deiner Token bewegen.
Block-Explorer zeigen Genehmigungen als Transaktionen mit der Methode „Approve“ an. Viele bieten außerdem einen Prüfer für Token-Genehmigungen, der alle Ausgeber auflistet, die deine Adresse autorisiert hat. Zwei Risiken solltest du kennen:
- Genehmigungen sind standardmäßig oft unbegrenzt, sodass der Ausgeber alle Token dieser Art bewegen kann – jetzt oder später.
- Ein böswilliger oder kompromittierter Ausgeber kann genehmigte Token abziehen, ohne dass du erneut eine Signatur leisten musst.
Alte Genehmigungen zu überprüfen und zu widerrufen ist eine grundlegende Sicherheitsmaßnahme. Der Block-Explorer zeigt sie dir an. Beachte, dass manche Token und Apps auch Permit-Signaturen akzeptieren (zum Beispiel EIP-2612 oder Permit2): Du signierst in deiner Wallet eine Nachricht, statt eine Approve-Transaktion zu senden. Daher erscheint zunächst keine Genehmigung auf der Chain, bis der Ausgeber sie verwendet. Lies Signaturanfragen genauso sorgfältig wie Transaktionen.
Betrugsmaschen, die du im Block-Explorer erkennen kannst
Da die Chain öffentlich ist und jeder Token erstellen und Transaktionen senden kann, hinterlassen manche Betrugsmaschen deutliche Spuren:
- Adressvergiftung. Der Betrüger erstellt eine Adresse, deren erste und letzte Zeichen mit einer von dir verwendeten Adresse übereinstimmen. Dann sendet er dir eine winzige Übertragung oder eine Übertragung mit einem Wert von null (oft mit einem gefälschten Token), damit die ähnlich aussehende Adresse in deinem Verlauf erscheint. Die Hoffnung ist, dass du sie später versehentlich kopierst. Vergleiche immer die vollständige Adresse.
- Spam- und Phishing-Token. Unbekannte Token erscheinen in deiner Adresse mit Namen, die einen Website-Link enthalten und dich dazu auffordern, etwas zu „beanspruchen“. Wenn du die Website besuchst und die verlangte Signatur leistest, kann deine Wallet geleert werden. Viele Block-Explorer verbergen oder kennzeichnen solche Token.
- Gefälschte Versionen echter Token, wie oben beschrieben.
Keine dieser Maschen kann dir von allein deine Mittel wegnehmen. Sie funktionieren nur, wenn du darauf eingehst.
NFTs in Block-Explorern
Bei ERC-721- und ERC-1155-Token zeigen Block-Explorer die Token-ID, den aktuellen Besitzer und den Übertragungsverlauf an. Das Bild und die Beschreibung stammen üblicherweise von einem Metadaten-Link, der im Contract gespeichert ist. Diese Metadaten liegen oft außerhalb der Chain, auf einem Webserver oder in einem dezentralen Speichernetzwerk. Das angezeigte Bild ist daher nicht unbedingt direkt auf der Blockchain gespeichert.
Prüfungsfokus: native Coins im Vergleich zu Token, die im Register eines Contracts geführt werden; ERC-20, ERC-721 und ERC-1155; warum bei einer Token-Übertragung im Feld To der Token-Contract und im Feld Value 0 ETH angezeigt wird, während der Empfänger im Transfer-Ereignis steht; Dezimalstellen (18 sind üblich, USDC und USDT verwenden auf Ethereum 6); die Contract-Adresse als Identität des Tokens; die Bedeutung verifizierter und Proxy-Contracts; Genehmigungen und ihre Risiken; sowie Adressvergiftung.
Übungsfragen
Prüfen Sie Ihr Verständnis. Diese Fragen zählen nicht für die Prüfung.
Melden Sie sich an, um Ihren Fortschritt zu speichern und später weiterzumachen. Kostenlos. Anmelden