Zum Inhalt springen
buybitcoinsmart

Glossar / Wallets und Verwahrung

BIP39

Auch bekannt als BIP-39, Mnemonic code, Mnemonic-Phrase.

Was ist BIP39?
BIP39 ist die Spezifikation aus 2013, die Wallet-Entropie als Wörter aus einer festen Liste mit 2.048 Wörtern kodiert und sie zu einer Seed mit 512 Bit streckt.

Spezifiziert im BIP-39.

Nahezu jede Wallet, die Sie kaufen können, setzt sie um, weshalb eine Phrase, die auf einem Gerät einer Marke notiert wurde, auf einem anderen wiederhergestellt werden kann. Das Dokument wurde am 10. September 2013 eingereicht, und Bitcoin Core hat sie bis heute nie umgesetzt. Ihre Autorität über Ihre Sicherungskopie stammt aus der Verbreitung in der Branche, nicht aus dem Standardisierungsverfahren.

Wie sie funktioniert

Marek Palatinus und Pavol Rusnak von SatoshiLabs schrieben zusammen mit Aaron Voisine und Sean Bowe das BIP-39. Die Spezifikation definiert zwei Umwandlungen und sonst nichts.

Die erste wandelt Zufall in Wörter um. Eine Wallet nimmt Entropie von 128, 160, 192, 224 oder 256 Bit, berechnet daraus einen Hash mit SHA-256 und hängt die ersten Bits dieses Hashes, deren Anzahl der Entropielänge geteilt durch 32 entspricht, als Prüfsumme an. Das Ergebnis wird dann in Blöcken von 11 Bit gelesen, wobei jeder Block ein Wort aus einer Liste mit genau 2.048 Wörtern auswählt. Die fünf Entropiegrößen ergeben 12, 15, 18, 21 bzw. 24 Wörter, und die beiden, auf die Sie tatsächlich treffen, sind die Enden dieses Bereichs.

Die Prüfsumme ist absichtlich klein. Eine Phrase mit 12 Wörtern trägt vier Prüfbits, sodass eine zufällig zusammengestellte Liste aus zwölf gültigen Wörtern die Prüfung in etwa einem von sechzehn Fällen besteht. Das reicht aus, um nahezu jeden Fehler beim Abschreiben von Hand zu erkennen, und bei weitem nicht aus, um eine erfundene Phrase sicher zu machen.

Die zweite Umwandlung macht aus Wörtern eine Seed. Die Phrase wird auf Unicode NFKD normalisiert und dann über PBKDF2 mit HMAC-SHA512 über 2.048 Iterationen geleitet, wobei das Salt aus der Zeichenkette "mnemonic" gefolgt von einer optionalen Passphrase des Nutzers gebildet wird. Die Ausgabe hat immer 512 Bit, egal ob die Phrase 12 Wörter oder 24 Wörter hatte.

Wortlisten sind Teil des Standards, keine Verzierung. Die englische Liste ist so aufgebaut, dass sich zwei Wörter nie in ihren ersten vier Buchstaben gleichen und visuell verwechselbare Paare ausgeschlossen sind. Offizielle Listen gibt es außerdem für Japanisch, Koreanisch, Spanisch, Chinesisch in beiden Schriften, Französisch, Italienisch, Tschechisch und Portugiesisch. Eine Phrase ist nur gegenüber der Liste sinnvoll, aus der sie stammt, weshalb eine spanische Phrase, die in eine nur englische Wallet eingegeben wird, sofort scheitert.

Wo sie auftaucht

Jeder Einrichtungsbildschirm einer Hardware-Wallet, jeder Dialog „aus 12 oder 24 Wörtern wiederherstellen“ und jeder Wiederherstellungsablauf in gängiger Software ist im Kern BIP-39. Die Kompatibilität, die daraus entsteht, ist real und es lohnt sich, sie zu schützen: Sie ist der Grund, warum ein ausgefallenes Gerät eine Unannehmlichkeit ist und kein Verlust.

Der schwache Punkt des Standards ist das, was er auslässt. Eine Phrase sagt nichts darüber, welcher Ableitungspfad, welcher Skripttyp oder welche Wallet-Software sie erzeugt hat, und sie enthält kein Versionsfeld, um eines später zu ergänzen. Zwei Wallets können dieselben Wörter korrekt lesen und Ihnen trotzdem unterschiedliche Adressen und unterschiedliche Bestände anzeigen. Den Pfad zusammen mit den Wörtern zu notieren, ist der übliche Ausweg, und das ist ganz und gar eine Konvention und nichts, womit die Spezifikation hilft.

Die 2.048 PBKDF2-Iterationen sind der andere Kritikpunkt. Diese Zahl war im Jahr 2013 günstig und ist heute trivial, sodass das Strecken fast niemandem Schutz bietet, der eine schwache optionale Passphrase wählt. Die Wörter selbst schützt es überhaupt nicht, denn diese beruhen auf ihren 128 oder 256 Bit Entropie aus der Maschine.

BIP39 vs. HD-Wallet

BIP-39 macht aus Wörtern eine Seed; BIP-32 macht aus einer Seed einen Baum von Schlüsseln. Es sind getrennte Dokumente von verschiedenen Autoren, und eine Wallet kann das eine ohne das andere umsetzen. Bitcoin Core ist vollständig hierarchisch deterministisch und unterstützt überhaupt keine Mnemonik. Electrum ist ebenso hierarchisch deterministisch und verwendet ein eigenes Phrasenformat mit eingebauter Versionskennung. Betrachten Sie „BIP-39-kompatibel“ als ein Versprechen über das Lesen Ihrer Wörter, nicht als ein Versprechen darüber, welche Adressen danach erscheinen.

Nicht zu verwechseln mit

Häufig gestellte Fragen

Funktioniert meine BIP-39-Phrase in jeder Wallet?

Die Wörter werden von jeder BIP-39-Wallet korrekt gelesen, die Adressen können sich jedoch unterscheiden. Der Standard enthält keinen Ableitungspfad und keinen Skripttyp, sodass die Wiederherstellung in Software, die standardmäßig einen anderen Verwendungszweck nutzt, einen Saldo von null anzeigen kann, während die Bitcoin auf einem anderen Zweig liegen.

Warum 2.048 Wörter?

Weil 2.048 zwei hoch elf ist, kodiert jedes Wort genau 11 Bit. Dadurch ergeben 128 Bit Entropie plus eine Prüfsumme von 4 Bit genau 12 Wörter und 256 Bit plus 8 Prüfbits genau 24.

Weiterlesen

Verwandte Begriffe

Mehr zum Thema Wallets und Verwahrung

Diese Seite auf Englisch lesen