Zum Inhalt springen
buybitcoinsmart

Glossar / Adressen und Schlüssel

Unkomprimierter öffentlicher Schlüssel

Was ist ein unkomprimierter öffentlicher Schlüssel?
Ein unkomprimierter öffentlicher Schlüssel schreibt beide Koordinaten eines Kurvenpunkts hinter ein 0x04-Präfix aus und belegt 65 Bytes; heute kommt er vor allem bei Schlüsseln vor, die vor 2012 erzeugt wurden.

Die früheste Software von Bitcoin zeichnete die vollständigen x- und y-Werte auf, weshalb Bitcoin aus den Jahren 2009 und 2010 hinter Adressen liegen, die aus 65-Byte-Schlüsseln abgeleitet wurden. SegWit hat dem Format dann einen Riegel vorgeschoben, denn BIP-143 verbietet unkomprimierte Schlüssel in Witness-Programmen der Version 0, und keine bc1q-Adresse kann einen solchen verwenden. Wenn Sie eine alte Paper-Wallet wiederherstellen, entscheidet dieses Detail darüber, ob Ihre Bestände erscheinen.

So funktioniert es

Ein unkomprimierter öffentlicher Schlüssel hat ein Layout, das so wörtlich ist wie sein Name. Ein Präfix-Byte 0x04 kündigt das Format an, dann geben 32 Bytes die x-Koordinate an, dann geben 32 Bytes die y-Koordinate an, insgesamt also 65 Bytes. Zum Auslesen muss nichts berechnet werden: Beide Hälften des Punkts stehen bereits da, und genau deshalb wählte die ursprüngliche Implementierung dieses Format auf der Hardware der damaligen Zeit.

Die Gültigkeitsregeln haben das Format auf der Basisebene nie gesondert behandelt. Ein Node, der eine Legacy-Ausgabe vom Typ Pay-to-Public-Key-Hash oder Pay-to-Script-Hash prüft, akzeptiert einen unkomprimierten Schlüssel ohne Beanstandung, und Bitcoin, die 2010 an einen solchen Schlüssel gebunden wurden, bleiben ohne Frist ausgebbar. Geändert hat sich alles, was darauf aufbaut: Wallets nach BIP-32 leiten nur komprimierte Schlüssel ab, eine Seed-Phrase kann also nie einen unkomprimierten Schlüssel erzeugen, und SegWit machte sie in Ausgaben der Witness-Version 0 ungültig.

Die Kosten der zusätzlichen 32 Bytes fallen beim Ausgeben an. Ein Legacy-Input mit komprimiertem Schlüssel umfasst etwa 148 vbytes; derselbe Input mit unkomprimiertem Schlüssel umfasst etwa 180 vbytes, also rund 22 Prozent mehr für eine identische Ausgabe. Wer ein Dutzend solcher Inputs während eines Gebührenanstiegs zusammenlegt, merkt, dass dieser Unterschied keine Nebensache mehr ist.

Wo er vorkommt

Drei Artefakte liefern Nutzern noch unkomprimierte Schlüssel, und alle drei stammen aus derselben Zeit.

Paper-Wallets, die von den Generator-Websites der Jahre 2011 bis 2013 gedruckt wurden, erzeugten meist eine Adresse, die mit 1 beginnt, und eine Zeichenfolge im Wallet Import Format, die mit 5 beginnt, dem Kennzeichen für die unkomprimierte Seite des Formats. Physische Münzen der Serie Casascius, geprägt zwischen 2011 und 2013, verbargen dieselbe Art Zeichenfolge unter einem Hologramm, das Manipulationen sichtbar macht. Und private Schlüssel, die aus sehr früher Wallet-Software exportiert wurden, stammen noch vollständig aus der Zeit vor der Umstellung.

Einen alten Schlüssel wiederherstellen

Die Falle ist nicht die Kodierung, sondern dass ein einziger privater Schlüssel zwei verschiedene Adressen erzeugt. Das Hashen des 65-Byte-Schlüssels ergibt eine Legacy-Adresse; das Hashen der komprimierten Version desselben Schlüssels mit 33 Bytes ergibt eine völlig andere. Importieren Sie den Schlüssel in moderne Software, die Komprimierung voraussetzt, und der Saldo kann wie null aussehen, während die Bitcoin unberührt auf der anderen Adresse liegen.

Wallets, die mit altem Material gut umgehen, darunter Electrum, prüfen beide Ableitungen, wenn Sie einen Schlüssel sweepen statt ihn zu importieren. Das Sweepen ist zugleich der sicherere Vorgang: Es verschiebt die Bitcoin auf eine Adresse, die von Ihrer aktuellen Seed-Phrase kontrolliert wird, sodass ein Ausdruck, der in einer Schublade lag, von einem Smartphone fotografiert oder von einem früheren Besitzer gesehen wurde, nichts mehr ausgeben kann. Prüfen Sie beide Adressformen in einem Block-Explorer, bevor Sie eine Wiederherstellung als gescheitert betrachten.

Nicht zu verwechseln mit

Häufig gestellte Fragen

Sind Bitcoin, die hinter einem unkomprimierten öffentlichen Schlüssel liegen, noch ausgebbar?

Ja. Legacy-Ausgaben akzeptieren unkomprimierte Schlüssel ohne Ablauf, und keine Aktualisierung hat daran etwas geändert. Die einzige Einschränkung ist, dass native SegWit-Ausgaben sie ablehnen, sodass die Bitcoin zuerst über einen Legacy-Input bewegt werden müssen.

Warum zeigt mein alter privater Schlüssel zwei verschiedene Adressen?

Weil die komprimierte und die unkomprimierte Version desselben Schlüssels unterschiedliche Byte-Zeichenfolgen sind und jede zu ihrer eigenen Adresse gehasht wird. Prüfen Sie den Saldo beider, bevor Sie schließen, dass eine Wiederherstellung gescheitert ist.

Weiterlesen

Verwandte Begriffe

Mehr zum Thema Adressen und Schlüssel

Diese Seite auf Englisch lesen