🧰 UtlKit

Den ETH-Adresse-Checksum-Validierer Benutzen: das 0x Bleibt Kleingeschrieben, exakt 40 Hexadezimalziffern, Rand-Leerzeichen Werden Vor der Prüfung Entfernt, die EIP-55-Schreibweise Wird von keccak256 Ziffer für Ziffer Bestimmt, und das Großschreib-Format Ändert sogar das 0x-Präfix zu 0X

Alle Verhaltensweisen des ETH-Adresse-Checksum-Validierers im Detail: die Anforderung des kleingeschriebenen 0x, 40 Hexadezimalziffern oder Scheitern, entfernte Rand-Leerzeichen, die keccak256-Regel, die einen Buchstaben großschreibt, wenn die Signaturziffer 8 oder mehr ist, und die drei Ergebnis-Zustände mit drei Kopier-Formen.

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.

Zugehörige Tools

Häufige Fragen

Ändert die Prüfsumme die Adresse selbst?

Nein. Die Groß- und Kleinschreibung ist nicht Teil der 20-Byte-Adresse: kleingeschrieben, großgeschrieben und die gemischte Form zeigen alle auf dasselbe Konto. Die Prüfsumme markiert nur, welche exakte Schreibweise die kanonische Form ist, sodass eine Adresse mit falscher Schreibweise dasselbe Ziel ist, das eine Rechtschreibprüfung nicht besteht.

Was macht das Tool bei leerer oder fehlerhafter Eingabe?

Es meldet den roten Zustand Ungültiges Adressformat, nichts weiter. Es gibt keinen Absturz und keine zusätzliche Fehlermeldung. Leere Eingabe, ein fehlendes 0x, ein großgeschriebenes X, die falsche Anzahl hexadezimaler Ziffern und jeder nicht hexadezimale Buchstabe erzeugen alle dasselbe einzige Ergebnis.

Wird die Adresse irgendwohin zum Prüfen gesendet?

Nein. Die keccak256-Funktion ist in die Seite eingebunden und läuft in deinem Browser, daher wird die Adresse lokal gehasht und verlässt nie deinen Rechner. Auch zwischen Besuchen wird nichts gespeichert.

Warum zeigt eine komplett kleingeschriebene Adresse eine nicht übereinstimmende Prüfsumme an?

Weil die geprüfte Form ungefähr die Hälfte ihrer Buchstaben großgeschrieben hat, entschieden vom Hash. Eine komplett kleingeschriebene Zeichenkette kann dieser Form nie gleich sein, also bleibt eine gültige kleingeschriebene Adresse immer im Nicht-Übereinstimmung-Zustand, bis du sie durch die geprüfte Version ersetzt.

Welche der drei Ausgaben soll ich kopieren?

Die mit EIP-55-Prüfsumme. Sie ist die einzige Form, die eine gültige Prüfsumme trägt, und die Form, die die meisten Wallets und Exchange-Formulare erwarten. Die kleingeschriebene Kopie ist zum Vergleichen praktisch, und die großgeschriebene Kopie ändert sogar das 0x-Präfix zu 0X, also ist es die, die du nirgends einfügen solltest.

Verwandte Artikel