Der ETH-Adresse-Checksum-Validierer beantwortet genau eine Frage zu einer Ethereum-Adresse: Stimmen die Groß- und Kleinschreibung ihrer Buchstaben mit der von EIP-55 vorgeschriebenen Form überein? Du fügst eine Adresse ein, drückst auf Validieren, und das Tool rechnet die Adresse mit keccak256 zu einem Hash, leitet die kanonische Form mit gemischter Schreibweise ab und vergleicht sie buchstaben für buchstaben mit dem, was du eingegeben hast. All das läuft in deinem Browser: Die keccak256-Funktion ist in die Seite eingebunden, nichts wird hochgeladen, und die Adresse verlässt nie deinen Rechner.
Adresse einfügen und auf Validieren drücken
Es gibt keine Live-Prüfung: Die Eingabe wird nur gelesen, wenn du auf den Button Validieren drückst. Drückst du ihn bei leerer Eingabe, ist das Ergebnis einfach der rote Zustand Ungültiges Adressformat, kein Absturz und keine besondere Meldung. Wenn die Eingabe die Formatprüfung besteht, vergleicht das Tool deine Zeichenkette zeichen für zeichen mit der geprüften Form, und das Ergebnis ist entweder Gültige Prüfsumme, wenn beide identisch sind, oder Gültiges Format, aber die Prüfsumme stimmt nicht überein, wenn die Buchstaben stimmen aber die Groß- und Kleinschreibung nicht.
Die Formatprüfung: 0x plus exakt 40 hexadezimaler Ziffern
Die Prüfung ist ein einziger regulärer Ausdruck mit drei Anforderungen. Die Adresse muss mit einem kleingeschriebenen 0x-Präfix beginnen: Ein großgeschriebenes X wird abgelehnt, selbst wenn alles danach korrekt ist. Danach müssen exakt 40 hexadezimale Zeichen folgen, sodass die gesamte Zeichenkette 42 Zeichen lang ist; eine Ziffer zu wenig oder eine zu viel, beides scheitert. Schließlich werden führende und abschließende Leerzeichen vor der Prüfung entfernt, sodass eine kopierte Adresse mit mitgebrachtem Füllraum trotzdem durchkommt, während ein Leerzeichen an einer beliebigen Stelle im Inneren kein hexadezimaler Buchstabe ist und scheitert.
Wie EIP-55 die Schreibweise jedes Buchstabens festlegt
Ist das Format gültig, berechnet das Tool die kanonische Form. Es entfernt das 0x-Präfix, setzt die 40 hexadezimalen Zeichen auf Kleinbuchstaben und gibt sie an keccak256 ab, das eine 64 Zeichen lange hexadezimale Signatur zurückliefert. Dann durchläuft es die Adresse position für position: Für jede der 40 Positionen schaut es sich das entsprechende Zeichen der Signatur an, und wenn diese Signaturziffer den Wert 8 oder mehr hat, also 8, 9 oder einer der Buchstaben von a bis f, wird der Adressbuchstabe an dieser Position großgeschrieben; sonst bleibt er kleingeschrieben. Ungefähr die Hälfte der Buchstaben endet groß, und welche das sind, entscheidet die Hash-Funktion komplett.
Was die drei Ergebnis-Zustände bedeuten
Gültige Prüfsumme in Grün bedeutet, dass deine Zeichenkette Byte für Byte die kanonische Form mit gemischter Schreibweise ist, die Form, die EIP-55 dazu entworfen hat, zu erzeugen. Der Warnzustand, Gültiges Format aber die Prüfsumme stimmt nicht überein, bedeutet, dass alle 40 hexadezimalen Ziffern korrekt sind, aber mindestens ein Buchstabe die falsche Schreibweise hat; die Adresse zeigt immer noch auf dasselbe Konto, sie besteht nur nicht die Rechtschreibprüfung. Eine komplett kleingeschriebene Adresse ist das klassische Beispiel für den Nicht-Übereinstimmung-Zustand: Das Format ist gültig, die Prüfsumme passt nie. Dasselbe gilt für ein kleingeschriebenes 0x gefolgt von 40 großgeschriebenen hexadezimalen Ziffern: Die Formatprüfung besteht, aber die kanonische Form beginnt immer mit einem kleingeschriebenen x in ihrem Präfix, sodass die beiden nie gleich sein können. Eine Zeichenkette mit großem X im Präfix erreicht den Vergleich gar nicht erst, denn die Präfixregel allein scheitert sie schon.
Die drei Kopien, die du mitnehmen kannst
Ist das Format gültig, erscheinen drei Ergebnis-Karten, jede mit ihrem eigenen Kopieren-Button. Die erste zeigt die gesamte Zeichenkette kleingeschrieben. Die zweite zeigt sie großgeschrieben, und weil die Umwandlung auf die komplette Zeichenkette wirkt, wird sogar das Präfix zu 0X, eine Form, die du nicht in eine Wallet einfügen solltest. Die dritte zeigt die EIP-55-geprüfte Form, die sich zu kopieren lohnt: Es ist die Adresse, deren Schreibweise selbst ihr Gültigkeitszertifikat trägt.
Warum die Schreibweise überhaupt wichtig ist
Auf der Blockchain bedeutet die Schreibweise nichts: kleingeschrieben, großgeschrieben und gemischt sind dasselbe Konto, denn eine Ethereum-Adresse sind 20 Bytes, und die Groß- und Kleinschreibung der Buchstaben ist nicht Teil dieser Bytes. Die Prüfsumme existiert für die menschliche Seite der Transaktion. Eine Überweisung an eine falsch eingetippte Adresse ist nicht rückgängig zu machen, und EIP-55 verwandelt ungefähr die Hälfte der Buchstaben in schreibweiseabhängige Prüfziffern, sodass ein falsch getippter oder vertauschter Buchstabe meist eine Zeichenkette erzeugt, deren Prüfsumme nicht passt, und Wallets und Exchange-Formulare können sie ablehnen, bevor das Geld sich bewegt.
Was hier nicht ist, und wohin als Nächstes
Das Tool ist bewusst schmal: eine Eingabe, ein Button, kein gespeicherter Verlauf und keine Schaltfläche zum Tauschen, weil es nichts zu tauschen gibt. Wenn du den Hash sehen willst, der die Schreibweisentscheidungen steuert, berechnet der Keccak-256-Hash-Generator dieselbe keccak256-Signatur über jede Eingabe, die du wählst. Wenn du mit anderen Hash-Familien arbeitest, deckt der Hash-Generator sie ab, und wenn deine Ethereum-Arbeit um das Kodieren von Funktionsaufrufen und Daten geht statt um Adressen, erledigt der ABI-Encoder/Decoder diese Seite, während der ABI-Encoder-Guide dieselbe keccak256-Pipeline von der Kodierungsseite her durchläuft.