Skip to content
Back to Blog
cryptoethereumsecuritydevelopers

EIP-55 Checksum-Adressen einfach erklärt

Haben Sie sich je gefragt, warum Ethereum-Adressen Groß- und Kleinbuchstaben mischen? Das ist EIP-55, ein cleverer Checksum zum Erkennen von Tippfehlern. Hier erfahren Sie, wie es funktioniert und warum es wichtig ist.

SZ
Founder, Molixa
11 min read
Teilen
EIP-55 Checksum-Adressen einfach erklärt
Table of contents8 sections

Eine EIP-55-Prüfsummenadresse ist eine Ethereum-Adresse, die ein bestimmtes Muster aus Groß- und Kleinbuchstaben verwendet, um eine eingebaute Fehlerprüfung zu kodieren. Die gemischte Groß-/Kleinschreibung ist weder zufällig noch kosmetisch. Sie basiert auf einem keccak-256-Hash, der auf die Hex-Zeichen abgebildet wird, sodass Wallets eine falsch eingegebene Adresse erkennen können, bevor Sie Gelder an die falsche Stelle senden. Falls Sie sich je gefragt haben, was eine EIP-55-Prüfsummenadresse ist, hier die Kurzfassung: Es ist dieselbe 40-stellige Adresse, die Sie bereits kennen, wobei die Groß-/Kleinschreibung als kostenloser Tippfehler-Detektor fungiert.

Ethereum-Adressen sind auf Protokollebene nicht case-sensitiv, daher behandelt das Netzwerk 0xabc... und 0xABC... als dasselbe Konto. EIP-55 fügt eine zusätzliche Ebene hinzu, bei der das genaue Muster der Großbuchstaben Informationen trägt. Wenn nur ein Buchstabe falsch groß/klein geschrieben ist, lehnt ein kompatibles Wallet die Adresse als ungültig ab. Diese einfache Sicherheitsvorkehrung hat unzählige irreversible Fehler verhindert.

Was ist eine EIP-55-Prüfsummenadresse?#

Eine rohe Ethereum-Adresse ist 20 Bytes lang und wird als 40-stelliger Hexadezimalstring nach dem Präfix 0x dargestellt. Hex verwendet die Ziffern 0 bis 9 und die Buchstaben a bis f. Die Ziffern haben keine Groß-/Kleinschreibung, die sechs Buchstaben jedoch schon, und genau diesen Raum nutzt EIP-55 aus.

Der Vorschlag, 2016 von Vitalik Buterin verfasst, definierte eine Regel: Die kleingeschriebene Adresse mit keccak-256 hashen und dann anhand dieses Hashes bestimmen, welche Buchstaben großgeschrieben werden. Das Ergebnis sieht so aus.

Kleinbuchstaben:  0x52908400098527886e0f7030069857d2e4169ee7
EIP-55:          0x52908400098527886E0F7030069857D2E4169EE7

Beide Strings zeigen auf dasselbe Konto. Der zweite kodiert lediglich eine Prüfsumme in seiner Groß-/Kleinschreibung. Eine Wallet, die EIP-55 versteht, kann die erwartete Schreibweise neu berechnen und bestätigen, dass während der Übertragung nichts verändert wurde.

Wichtiger Punkt: Die Schreibweise ändert die Adresse nicht. Es sind Metadaten, die in die Zeichen eingebettet sind. Die Blockchain ignoriert sie; Ihre Wallet-Software nutzt sie, um Fehler zu erkennen.

Warum Ethereum-Adressen gemischte Groß-/Kleinschreibung haben#

Vor EIP-55 waren Ethereum-Adressen durchgängig kleingeschrieben. Ein einziger Tippfehler erzeugte eine andere, ebenfalls gültig aussehende Adresse, ohne dass man es merken konnte. Bitcoin hatte von Anfang an Prüfsummen durch seine base58check-Kodierung, Ethereum jedoch nicht, daher brauchte die Community eine abwärtskompatible Lösung, die die Millionen bestehenden kleingeschriebenen Adressen nicht beschädigt.

Gemischte Groß-/Kleinschreibung war die elegante Antwort. Alte kleingeschriebene Adressen funktionieren überall weiterhin, und neue geprüfte Adressen bieten zusätzlichen Schutz, ohne Länge, Präfix oder die zugrunde liegenden Bytes zu ändern. Am Protokoll musste nichts geändert werden, weshalb EIP-55 von Wallets und Explorern nahezu universell übernommen wurde.

Wie die keccak-256-Prüfsumme funktioniert#

Dies ist der Teil, den die meisten Erklärungen überspringen oder im Code verstecken. Die Regel selbst ist einfach: Für jeden Buchstaben in der kleingeschriebenen Adresse wird das passende Zeichen im keccak-256-Hash dieser Adresse betrachtet. Wenn das Hash-Zeichen 8 oder höher ist, wird der Buchstabe großgeschrieben. Ist es 7 oder niedriger, bleibt er klein. Ziffern ändern sich nie, da sie keine Groß-/Kleinschreibung haben.

Schritt für Schritt mit einem Beispiel#

  1. Präfix entfernen und kleinschreiben. Beginnen Sie mit den 40 Hex-Zeichen nach 0x, alle in Kleinbuchstaben.
  2. Keccak-256 auf den ASCII-Text dieser Zeichenfolge anwenden. Wichtiges Detail: Sie hashen die Adresse als Textzeichen, nicht als rohe Bytes. Das führt bei Entwicklern, die das Falsche hashen, zu Fehlern.
  3. Hash-Ziffern mit den Adresszeichen abgleichen. Der Hash ist ebenfalls hexadezimal, sodass jedes Adresszeichen ein passendes Hash-Zeichen an derselben Position hat.
  4. Groß-/Kleinschreibungsregel anwenden. Für jedes alphabetische Zeichen (a-f): Wenn die passende Hash-Ziffer 8, 9, a, b, c, d, e oder f ist, schreiben Sie es groß. Andernfalls lassen Sie es klein. 0-9 bleibt unberührt.

Gehen Sie die ersten Zeichen einer Adresse durch, deren kleingeschriebene Form mit 0x5aaeb6... beginnt. Angenommen, der keccak-256-Hash der kleingeschriebenen Zeichenfolge beginnt mit 38bf.... Das erste Adresszeichen ist 5, eine Ziffer, also bleibt es 5. Das nächste ist a, und die passende Hash-Ziffer ist 8, was 8 oder höher ist, also wird es zum Großbuchstaben A. Das folgende a passt zur Hash-Ziffer 3, unter 8, also bleibt es klein a. So erhalten Sie das 5aA-Muster am Anfang.

Wiederholen Sie dies für alle 40 Zeichen, und Sie haben die Adresse mit Prüfsumme. Um eine zu überprüfen, führen Sie denselben Vorgang aus und prüfen, ob die von Ihnen berechnete Groß-/Kleinschreibung mit der angegebenen übereinstimmt.

Überprüfen Sie, bevor Sie vertrauen: Sie müssen dies nicht von Hand tun. Ein Krypto-Wallet-Validator berechnet die keccak-256-Prüfsumme für Sie neu und sagt Ihnen sofort, ob eine Adresse gültig, fehlerhaft oder eine schlechte Prüfsumme hat.

Warum EIP-55 Tippfehler erkennt#

Der clevere Trick liegt in der Wahrscheinlichkeit. Da etwa die Hälfte der Hex-Buchstaben in einer typischen Adresse basierend auf dem Hash großgeschrieben wird, wirkt sich jede Änderung an nur einem Zeichen auf die gesamte Keccak-256-Ausgabe aus und führt fast immer zu einer Groß-/Kleinschreibungsabweichung irgendwo in der Zeichenfolge.

Die häufig genannte Zahl ist, dass EIP-55 eine falsche Adresse mit etwa 99,986% Wahrscheinlichkeit bei einem Einzelzeichenfehler erkennt. Einfach ausgedrückt: Wenn Sie beim Kopieren einer Adresse einen Buchstaben vertippen, lehnt eine Wallet mit Prüfsumme dies in den allermeisten Fällen ab. Das ist der Unterschied zwischen einem erkannten Fehler und für immer verlorenem Geld.

Was es nicht schützt, sollte klar gesagt werden:

  • Es kann keine vollständig gültige falsche Adresse erkennen. Wenn Sie versehentlich die korrekte, mit Prüfsumme versehene Adresse einer anderen Person einfügen, sieht EIP-55 nichts Falsches. Die Prüfsumme überprüft die Integrität, nicht die Absicht.
  • Es hilft nur, wenn die Adresse eine Prüfsumme hat. Eine Adresse in Kleinbuchstaben hat keine zu überprüfende Prüfsumme, daher akzeptieren Wallets sie ohne den Tippschutz.
  • Es stoppt keine Clipboard-Malware. Adressaustausch-Malware ersetzt Ihre kopierte Adresse durch eine gültige Angreiferadresse mit eigener korrekter Prüfsumme.

EIP-55 vs EIP-1191: Das Chain-ID-Upgrade#

EIP-55 hat einen Nachfolger, den es zu kennen lohnt, wenn Sie mit mehreren Netzwerken arbeiten. EIP-1191 erweitert die ursprüngliche Idee, indem es die Chain-ID in den Hash einbezieht, bevor die Groß-/Kleinschreibung berechnet wird.

Die Motivation war die Sicherheit über verschiedene Chains hinweg. Das gleiche Adressformat wird auf Ethereum Mainnet, Polygon, BNB Smart Chain und vielen anderen EVM-Chains verwendet, und eine einfache EIP-55-Prüfsumme ist auf allen identisch. Sie kann nicht erkennen, ob eine Adresse für die von Ihnen beabsichtigte Chain geprüft wurde. EIP-1191 stellt der Adresse vor dem Hashen die Chain-ID voran, was zu einer chainspezifischen Groß-/Kleinschreibung führt.

FunktionEIP-55EIP-1191
Hash-EingabeNur Adresse in KleinbuchstabenChain-ID + Adresse in Kleinbuchstaben
Chain-BewusstseinKeines, auf jeder EVM-Chain gleichGroß-/Kleinschreibung variiert pro Chain
VerbreitungNahezu universellTeilweise, hauptsächlich RSK und einige Chains
AbwärtskompatibelJaGrößtenteils, aber Mainnet behielt EIP-55

In der Praxis blieb Ethereum Mainnet beim klassischen EIP-55, weshalb die meisten Tools, die Sie verwenden, den ursprünglichen Algorithmus nutzen. EIP-1191 fand echte Verbreitung in Netzwerken wie RSK. Wenn eine Wallet jemals eine einwandfreie Mainnet-Adresse als fehlerhafte Prüfsumme markiert, ist eine Chain-ID-Diskrepanz durch eine EIP-1191-Implementierung ein wahrscheinlicher Grund.

Häufige Fehler bei "Ungültige Prüfsummenadresse"#

Wenn Sie auf einen Fehler wie "bad address checksum" oder "invalid checksum address" stoßen, liegt meist einer dieser Gründe vor.

  • Sie haben die Groß-/Kleinschreibung manuell geändert. Das manuelle Ändern eines Großbuchstabens in einen Kleinbuchstaben (oder umgekehrt) zerstört die Prüfsumme, auch wenn die Adresse weiterhin auf dasselbe Konto verweist. Kopieren Sie die vollständige Adresse und fügen Sie sie ein, anstatt sie neu zu tippen.
  • Ein Zeichen wurde abgeschnitten oder dupliziert. Ein fehlendes oder zusätzliches Zeichen verschiebt alles und führt fast immer zu einem Fehler bei der Prüfung. Genau diesen Tippfehler soll EIP-55 abfangen.
  • Das Tool erwartet eine Adresse mit Prüfsumme und Sie haben eine in Kleinbuchstaben eingefügt. Manche Bibliotheken lehnen reine Kleinbuchstaben-Adressen im strikten Modus ab, da sie keine nicht vorhandene Prüfsumme überprüfen können. Führen Sie die Adresse durch einen Prüfsummenrechner, um die korrekte Groß-/Kleinschreibung zu erhalten.
  • Eine Chain-ID-Unstimmigkeit (EIP-1191). Eine für eine Chain mit Prüfsumme versehene Adresse kann bei einem Tool, das die Mainnet-EIP-55-Schreibweise erwartet, fehlschlagen und umgekehrt.

Der sichere Weg ist in jedem Fall, eine erhaltene Adresse niemals zu verändern. Kopieren Sie sie vollständig, fügen Sie sie vollständig ein und lassen Sie Ihre Wallet oder einen Validator die Prüfsumme bestätigen. Wenn Sie auch mit Token-Adressen umgehen und vor der Interaktion sicherstellen möchten, dass ein Vertrag legitim ist, prüft ein Token-Vertragsprüfer den Vertrag selbst, eine separate Sicherheitsebene neben der Adressformatierung.

So überprüfen Sie eine EIP-55-Adresse selbst#

Sie haben drei praktische Optionen.

Am schnellsten geht es mit einem Browser-Tool. Fügen Sie die Adresse in einen Validator ein, der den Keccak-256-Hash neu berechnet, die Groß-/Kleinschreibungsregel anwendet und Ihnen mitteilt, ob die Prüfsumme gültig ist. Dies ist die richtige Wahl für alle, die keinen Code schreiben, und es ist dieselbe Logik, die eine Wallet intern ausführt, bevor sie eine Transaktion durchlässt.

Für Entwickler erledigen Bibliotheken dies in einer Zeile. Ethers.js bietet getAddress(), das bei einer fehlerhaften Prüfsumme einen Fehler auslöst und andernfalls die korrekt geschriebene Adresse zurückgibt. Web3.py bietet to_checksum_address(), und viem stellt ebenfalls getAddress() bereit. Wenn Sie die rohe Hex- oder Kodierungsebene einer Adresse debuggen, hilft ein Base64- und Hex-Kodierer, die Byte-Darstellung zusammen mit der Prüfsumme zu überprüfen.

Die dritte Option ist die manuelle Überprüfung mit einer beliebigen Keccak-256-Implementierung, wobei Sie den vier Schritten im ausgearbeiteten Beispiel folgen. Dies ist selten notwendig, aber der sicherste Weg, um zu verstehen, was die Groß-/Kleinschreibung kodiert.

EIP-55 Prüfsummen-Adressen, kurz erklärt#

Was ist eine EIP-55 Prüfsummen-Adresse: Es ist eine normale Ethereum-Adresse, deren Groß-/Kleinschreibung eine keccak-256 Prüfsumme kodiert und so die Schreibweise zu einem eingebauten Tippfehler-Detektor macht. Es kostet nichts, bricht nichts und fängt die überwältigende Mehrheit der Einzelfehler ab, bevor sie echtes Geld kosten.

Die praktischen Erkenntnisse:

  • Behandeln Sie die Groß-/Kleinschreibung als tragend. Geben Sie eine Adresse niemals von Hand neu ein oder "bereinigen" Sie sie. Kopieren und fügen Sie sie vollständig ein.
  • Bevorzugen Sie geprüfte Adressen. Eine gemischte Schreibweise bietet einen Schutz, den eine reine Kleinschreibung nicht hat.
  • Überprüfen Sie vor dem Senden. Führen Sie jede Adresse, die Sie finanzieren möchten, durch einen Krypto-Wallet-Validator, bestätigen Sie, dass die EIP-55 Prüfsumme gültig ist, und senden Sie dann. Ein paar Sekunden Überprüfung sind die günstigste Versicherung in Krypto.

Häufig gestellte Fragen#

Was ist eine EIP-55-Prüfsummenadresse? Es ist eine Ethereum-Adresse, die ein bestimmtes Muster aus Groß- und Kleinbuchstaben verwendet, um eine keccak-256-Prüfsumme zu kodieren. Die Groß-/Kleinschreibung ändert nicht, auf welches Konto die Adresse verweist. Sie ermöglicht es Wallets, eine falsch eingegebene oder veränderte Adresse zu erkennen, bevor Sie Gelder senden, da ein einzelner Zeichenfehler fast immer die erwartete Großschreibung zerstört.

Warum werden Ethereum-Adressen gemischt großgeschrieben? Die gemischte Schreibweise stammt von EIP-55, das 2016 eingeführt wurde, um Tippfehlerschutz für Adressen zu bieten, die zuvor nur in Kleinbuchstaben waren. Jeder Hex-Buchstabe wird basierend auf dem keccak-256-Hash der Adresse großgeschrieben, sodass das Großschreibungsmuster als Prüfsumme fungiert. Alte Kleinbuchstaben-Adressen funktionieren weiterhin, aber die gemischte Version bietet eine kostenlose Fehlerprüfung.

Ist eine Ethereum-Adresse in Kleinbuchstaben immer noch gültig? Ja. Das Ethereum-Protokoll ist nicht case-sensitiv, daher zeigt eine Adresse in Kleinbuchstaben auf dasselbe Konto und funktioniert im Netzwerk. Der einzige Verlust ist der EIP-55-Tippfehlerschutz, da keine Prüfsumme zur Überprüfung vorhanden ist. Einige strenge Tools lehnen Kleinbuchstaben-Eingaben ab, bis Sie sie in die Prüfsummenform konvertieren.

Was verursacht einen Fehler "ungültige Prüfsummenadresse"? Der Fehler bedeutet, dass die Groß-/Kleinschreibung nicht mit dem übereinstimmt, was keccak-256 für die Adresse berechnet. Häufige Ursachen sind manuelle Änderungen der Großschreibung, ein abgeschnittenes oder doppeltes Zeichen, das Einfügen einer Kleinbuchstaben-Adresse in ein Tool, das Prüfsummen-Eingabe erfordert, oder eine Chain-ID-Diskrepanz durch eine EIP-1191-Implementierung. Kopieren Sie die ursprüngliche Adresse erneut und validieren Sie sie, anstatt die Großschreibung manuell zu korrigieren.

Was ist der Unterschied zwischen EIP-55 und EIP-1191? EIP-55 hasht nur die Kleinbuchstaben-Adresse, um die Großschreibung zu bestimmen, sodass dieselbe Adresse auf jeder EVM-Chain identisch aussieht. EIP-1191 mischt zuerst die Chain-ID in den Hash, was eine chain-spezifische Großschreibung erzeugt, die darauf hinweisen kann, wenn eine Adresse für das falsche Netzwerk geprüft wurde. Das Ethereum-Mainnet verwendet klassisches EIP-55, während EIP-1191 auf Chains wie RSK übernommen wurde.

Kann EIP-55 mich davor schützen, an die falsche Wallet zu senden? Nur teilweise. Es erkennt Tippfehler und veränderte Zeichen mit sehr hoher Wahrscheinlichkeit, etwa 99,986 % bei einem einzelnen Zeichenfehler. Es hilft nicht, wenn Sie eine gültige, aber unbeabsichtigte Adresse einfügen, und es stoppt keine Clipboard-Swapping-Malware. Überprüfen Sie immer die vollständige Adresse mit einem Validator und kontrollieren Sie den Empfänger vor dem Senden.

cryptoethereumsecuritydevelopers

More from Molixa

Try Molixa Tools

50+ free AI tools for content creation, SEO, coding, and more. No signup, no watermark.

Explore all tools
EIP-55 Checksum-Adresse erklärt | Molixa