blockchain bitcoin ethereum base58 bech32 encoding

Leitfaden für Blockchain-Adressen und Kodierung: Base58, Bech32 und EIP-55 meistern

Ein umfassender technischer Leitfaden zu Blockchain-Adressformaten, einschließlich Base58Check, Bech32/Bech32m und Ethereum EIP-55-Prüfsummen. Lernen Sie, wie man Bitcoin- und Ethereum-Adressen validiert.

2026-04-12

Einführung in Blockchain-Adressen

In der Welt der dezentralen Finanzen und verteilten Hauptbücher ist eine „Adresse“ die öffentliche Kennung, die zum Empfang von Geldern verwendet wird. Obwohl wir sie oft als lange Zeichenfolgen aus alphanumerischen Zeichen sehen, sind diese Zeichenfolgen das Ergebnis ausgeklügelter Kodierungsschemata, die auf menschliche Lesbarkeit, Fehlererkennung und Platzeffizienz ausgelegt sind.

Das Verständnis dieser Kodierungsschemata – wie Base58, Bech32 und EIP-55 – ist für Entwickler, Sicherheitsforscher und Power-User von entscheidender Bedeutung. Dieser Leitfaden bietet einen tiefen Einblick in die technischen Standards, die definieren, wie Blockchain-Adressen konstruiert und validiert werden.


1. Base58 und Base58Check: Das Erbe von Bitcoin

Das ursprüngliche Adressformat von Bitcoin (Legacy-Adressen, die mit 1 oder 3 beginnen) verwendet die Base58-Kodierung.

Warum Base58?

Die Standard-Base64-Kodierung enthält Zeichen, die vom Menschen leicht verwechselt werden können, wie z. B. 0 (Null) und O (großes O) oder I (großes I) und l (kleines L). Base58 wurde von Satoshi Nakamoto speziell entwickelt, um diese mehrdeutigen Zeichen zu eliminieren.

Base58-Alphabet: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz

Base58Check: Fehlererkennung hinzufügen

Um zu verhindern, dass Benutzer versehentlich Gelder an eine falsch geschriebene Adresse senden, verwendet Bitcoin Base58Check. Dabei wird der Nutzlast vor der Kodierung eine 4-Byte-Prüfsumme hinzugefügt.

Der Base58Check-Prozess:

  1. Versions-Byte: Ein Präfix wird hinzugefügt, um den Adresstyp anzugeben (z. B. 0x00 für P2PKH, 0x05 für P2SH).
  2. Payload: Der tatsächliche Hash des öffentlichen Schlüssels (RIPEMD-160).
  3. Prüfsummenberechnung: SHA256(SHA256(Version + Payload)) wird berechnet. Die ersten 4 Bytes des Ergebnisses sind die Prüfsumme.
  4. Verkettung: Version + Payload + Prüfsumme.
  5. Base58-Kodierung: Das gesamte verkettete Byte-Array wird in einen Base58-String umgewandelt.

Wenn ein einzelnes Zeichen geändert wird, schlägt die Prüfsummenvalidierung fehl, was den Benutzer vor Tippfehlern schützt.


2. Bech32 und Bech32m: SegWit und darüber hinaus

Da sich Bitcoin mit SegWit (Segregated Witness) weiterentwickelte, wurde ein neues Adressformat benötigt. Bech32 (definiert in BIP 173) wurde zum Standard für Native SegWit-Adressen (beginnend mit bc1q).

Die Vorteile von Bech32

  • Keine Groß-/Kleinschreibung: Bech32-Strings bestehen nur aus Kleinbuchstaben (obwohl sie großgeschrieben werden können, ist das Mischen verboten). Dies erleichtert das Tippen und Vorlesen.
  • QR-Code-Effizienz: Da nur Kleinbuchstaben und Zahlen verwendet werden, ist Bech32 in QR-Codes effizienter.
  • Bessere Fehlererkennung: Bech32 verwendet einen BCH-Code, der bis zu 4 Fehler erkennen und potenziell korrigieren kann.
  • Keine Base58-Mehrdeutigkeit: Es verwendet einen Zeichensatz, der verwirrende Zeichen ausschließt.

Bech32-Alphabet: qpzry9x8gf2tvdw0s3jn54khce6mua7l (Beachten Sie den Ausschluss von 1, b, i, o).

Bech32m: Behebung des „1“-Zeichen-Problems

Im Jahr 2021 wurde Bech32m (BIP 350) eingeführt, um eine geringfügige Schwachstelle im ursprünglichen Bech32 zu beheben, wenn es mit Taproot (v1-Witness-Programmen) und höher verwendet wird. Bech32m ist jetzt der Standard für Taproot-Adressen (beginnend mit bc1p).


3. Ethereum-Adressformate und EIP-55-Prüfsummen

Im Gegensatz zu Bitcoin werden Ethereum-Adressen direkt aus den letzten 20 Bytes des Keccak-256-Hashs des öffentlichen Schlüssels abgeleitet. Sie werden normalerweise als Hexadezimalstring dargestellt, der mit 0x beginnt.

Das Fehlen einer eingebauten Prüfsumme

Ursprünglich hatten Ethereum-Adressen keine eingebaute Prüfsumme. Wenn Sie ein Zeichen in einer Standard-0x-Adresse falsch getippt haben, wurden die Gelder einfach an ein ungültiges oder nicht erreichbares Ziel gesendet.

EIP-55: Prüfsumme durch gemischte Groß-/Kleinschreibung

Um dieses Problem zu lösen, ohne die Adresslänge zu ändern, schlug Vitalik Buterin EIP-55 vor. Es verwendet Großschreibung, um eine Prüfsumme zu kodieren.

EIP-55-Algorithmus:

  1. Wandeln Sie die Adresse in Kleinbuchstaben um (ohne 0x).
  2. Berechnen Sie den Keccak-256-Hash des kleingeschriebenen Adressstrings.
  3. Für jedes Zeichen $i$ in der Adresse:
    • Wenn das $i$-te Nibble des Hashs $\ge 8$ ist, schreiben Sie das $i$-te Zeichen der Adresse groß.
    • Andernfalls lassen Sie es kleingeschrieben.

Beispiel:

  • Standard: 0x5aaeb6053f3e94c9b9a09f33669435e7ef1beaed
  • EIP-55: 0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed

Ein Bitcoin-Adress-Validator oder Ethereum-Adress-Validator muss diese spezifischen Algorithmen implementieren, um die Integrität des Transaktionsziels zu gewährleisten.


4. Zusammenfassungstabelle: Vergleich der Adresskodierung

Feature Base58Check Bech32 / Bech32m EIP-55 (Ethereum)
Blockchain Bitcoin (Legacy) Bitcoin (SegWit/Taproot) Ethereum
Präfix 1 oder 3 bc1q oder bc1p 0x
Zeichensatz 58 Zeichen (Alphanumerisch) 32 Zeichen (Klein + Zahl) 16 Zeichen (Hex)
Prüfsummentyp Double SHA-256 (4 Bytes) BCH-Code Keccak-256 (Gemischte Schreibweise)
Groß-/Kleinschreibung Ja Nein (Nicht relevant) Optional (Empfohlen)

FAQ: Häufige Fragen zur Blockchain-Kodierung

F: Warum beginnen einige Bitcoin-Adressen mit 1 und andere mit 3?

A: Adressen, die mit 1 beginnen, sind P2PKH-Adressen (Pay-to-Public-Key-Hash). Adressen, die mit 3 beginnen, sind P2SH-Adressen (Pay-to-Script-Hash), die häufig für Multi-Sig oder verschachteltes SegWit verwendet werden.

F: Kann ich BTC an eine Ethereum-Adresse senden?

A: Nein. Die Kodierungsschemata und die zugrunde liegenden kryptographischen Kurven können sich überschneiden, aber die Netzwerkprotokolle sind völlig unterschiedlich. Das Senden von Vermögenswerten an eine Adresse auf einer anderen Chain führt in der Regel zu dauerhaftem Verlust.

F: Was ist eine „Vanity-Adresse“?

A: Eine Vanity-Adresse ist eine Blockchain-Adresse, die ein bestimmtes Wort oder Muster enthält (z. B. beginnend mit 1Love...). Diese werden durch Brute-Forcing von Millionen von Schlüsselpaaren generiert, bis ein passender öffentlicher Hash gefunden wird.

F: Wie behebe ich den Fehler „Ungültige Adresse“?

A: Dieser Fehler bedeutet normalerweise, dass die Prüfsummenvalidierung fehlgeschlagen ist. Überprüfen Sie die Adresse auf Tippfehler, stellen Sie sicher, dass Sie 0 und O nicht verwechseln, und vergewissern Sie sich, dass Sie an das richtige Netzwerk senden (senden Sie z. B. keine SegWit-BTC an eine Legacy-Wallet).


Fazit

Die Kodierung von Blockchain-Adressen ist mehr als nur eine Zeichenfolge; sie ist eine wichtige Sicherheitsebene. Ob es die Tippfehlerresistenz von Base58Check, die Effizienz von Bech32 oder die clevere Prüfsumme durch gemischte Groß-/Kleinschreibung von EIP-55 ist – diese Standards stellen sicher, dass Milliarden von Dollar mit Vertrauen um den Globus bewegt werden können. Als Entwickler oder Benutzer ist das Meistern dieser Formate der erste Schritt zum Verständnis der technischen Architektur des dezentralen Webs.