BIP39 ist ein Standard, nach dem eine Wallet Zufallsdaten in Wiederherstellungswörter umwandelt, die sogenannte Seed Phrase. Aus diesen Wörtern und einer optionalen Passphrase, einem zusätzlichen Geheimnis, berechnet sie einen Seed: die Ausgangsdaten für die Erzeugung von Schlüsseln. Damit lässt sich der Zugang zu Bitcoin sichern; die Wörter enthalten weder die Coins noch den Zahlungsverlauf.
Alice richtet eine Wallet ein, die BIP39 verwendet, und sichert die Wiederherstellungswörter entsprechend den Anweisungen. Später geht ihr Telefon kaputt. Ihre Bitcoin sind dadurch nicht aus dem Netzwerk verschwunden; sie hat das Gerät verloren, auf dem die Schlüssel zum Signieren ihrer Zahlungen lagen. Auf einem vertrauenswürdigen Ersatzgerät kann sie die Wiederherstellungsfunktion einer kompatiblen Wallet nutzen. Dieselben Wörter in derselben Reihenfolge ergeben zusammen mit derselben gegebenenfalls verwendeten Passphrase denselben Seed. Nachgelagerte Verfahren erzeugen daraus erneut die benötigten privaten Schlüssel, und die Wallet findet die Zahlungen im Bitcoin-Netzwerk. Es handelt sich nicht um einen Kontozugang, dessen Passwort ein Support zurücksetzen kann. Hat Alice eine Passphrase verwendet, braucht sie auch diese; die PIN ihres alten Telefons ersetzt sie nicht. Ein Guthaben von null nach der Wiederherstellung bedeutet nicht zwangsläufig, dass die Coins verloren sind: Neben Wörtern und Passphrase müssen auch das richtige Konto und die Wiederherstellungseinstellungen geprüft werden. Deshalb lohnt es sich, den gesamten Vorgang zu überprüfen, bevor man einen größeren Betrag verwahrt. [1] [5] [13] [14]
Wörter lassen sich leichter abschreiben und prüfen als eine lange Darstellung von Computerdaten. Marek Palatinus, Pavol Rusnak, Aaron Voisine und Sean Bowe entwarfen ein Verfahren, um computergenerierte Zufälligkeit in eine Form zu bringen, die sich von Hand abschreiben lässt. Dem Vorschlag wurde das Datum 10. September 2013 zugewiesen; in der Spezifikation trägt er den Status Deployed. Die Wörter müssen aus einer hochwertigen Zufallsquelle entstehen; Sie sollten sie sich nicht anhand eines Lieblingssatzes ausdenken. Dadurch entstünde eine Brainwallet mit einem vorhersehbaren, vom Menschen gewählten Geheimnis. Bitcoin-Knoten prüfen BIP39 nicht: Sie validieren Transaktionen und Blöcke, nicht das Verfahren, mit dem eine Wallet ihre Schlüssel erzeugt hat. [1]
Eine gute Aufzeichnung hilft nur, wenn Sie damit die Wallet wiederherstellen können. Prüfen Sie auf einem vertrauenswürdigen Gerät das vom Hersteller empfohlene Wiederherstellungsverfahren, bevor Sie größere Beträge verwahren. Bewahren Sie neben der genauen Wortreihenfolge auch die benötigte Passphrase, die Wallet-Angaben und gegebenenfalls die Ableitungs- oder Signaturkonfiguration auf. Bei einer gewöhnlichen Wallet mit einer einzigen erforderlichen Signatur kann der Inhaber der vollständigen Sicherung samt benötigter Passphrase die Schlüssel auch ohne das ursprüngliche Gerät ableiten; bei Multisig müssen die zusätzlichen Anforderungen an Schlüssel und Signaturregeln erfüllt werden. Fotos, Cloud-Kopien, Drucker oder der Verlauf der Zwischenablage können Geheimnisse anderen Menschen und Diensten zugänglich machen. Papier und Metall haben unterschiedliche physische Grenzen; kein Material verhindert allein einen Diebstahl. [9] [13] [14]
Aus Gründen der Kompatibilität empfiehlt BIP39 nachdrücklich die englische Wortliste: Viele Wallets unterstützen andere Listen nicht. Eine Übersetzung der Sicherung erhält die ursprüngliche Wallet nicht, weil der Satz selbst in die Ableitung eingeht. Beachten Sie auch andere Systeme. Electrum verwendet für seine nativen Sicherungen ein eigenes Versionsverfahren; ähnlich aussehende Wörter machen daraus nicht automatisch BIP39. SLIP39 ist ein anderes Format mit einer eigenen Liste von 1 024 Wörtern und Regeln dafür, wie viele Anteile zur Wiederherstellung nötig sind. Es ist keine bloß zerschnittene BIP39-Sicherung. Wenn Sie 24 Wörter auf mehrere Umschläge verteilen, entsteht kein Shamir Secret Sharing; Schutz und Wiederherstellbarkeit können dadurch schlechter werden. Sie müssen stets das tatsächliche Format der Sicherung kennen. [1] [11] [12]
Am Anfang steht Entropie, also Zufallsdaten mit der Länge ENT = 128, 160, 192, 224 oder 256 Bit. Hinzu kommt eine Prüfsumme: die ersten CS = ENT/32 Bit des SHA-256-Ergebnisses der ursprünglichen Daten. Das Ganze wird in Gruppen von 11 Bit aufgeteilt; jede Gruppe bestimmt ein Wort. Die Beziehung MS = (ENT+CS)/11 ergibt daher genau 12, 15, 18, 21 oder 24 Wörter. Zwölf Wörter stehen für 128 Bit Zufälligkeit und 4 Prüfbits; die gesamten 132 Bit sind somit kein unabhängiges Geheimnis. Bei 24 Wörtern sind es 256+8 Bit. Das Vertrauen in eine Sicherung beginnt beim Zufallszahlengenerator, nicht damit, wie ungewöhnlich die Wörter aussehen. [1]
Jede Gruppe von 11 Bit wählt einen Eintrag aus einer geordneten Liste mit 2 048 Wörtern aus. Das erste Wort ist also nicht der erste private Schlüssel: Alle Wörter zusammen bilden die ursprünglichen Daten und ihre Prüfsumme ab. In der englischen Liste reichen die ersten vier Buchstaben aus, um die Wörter zu unterscheiden. Das ist jedoch weder eine allgemeine Regel für jede Sprache noch eine Aufforderung, die Sicherung bei der Wiederherstellung beliebig abzukürzen. Eine andere Reihenfolge, ein Synonym oder eine Übersetzung verändert die Eingabedaten. Manchmal entsteht eine ungültige Prüfsumme, manchmal eine andere gültige Sicherung; Wortlaut und Reihenfolge müssen deshalb genau erhalten bleiben. [1] [2]
Der Computer muss wissen, welche Zeichen er tatsächlich erhalten hat. BIP39 schreibt für den Wiederherstellungssatz und die Passphrase die Unicode-Normalisierung NFKD und anschließend die Kodierung UTF-8 vor. NFKD vereinheitlicht bestimmte unterschiedlich geschriebene Zeichen, indem es beispielsweise manche Buchstaben mit diakritischen Zeichen zerlegt. Zwei verschiedene Schreibweisen können nach der Normalisierung daher dasselbe Ergebnis liefern; allein ein ähnliches Aussehen garantiert dies jedoch nicht. Die Reihenfolge der Wörter, Leerzeichen und die Zeichen der Passphrase bleiben entscheidend. Ein anderes Normalisierungsverfahren kann bei der Wiederherstellung einen anderen Seed ableiten. Die Referenzimplementierung und öffentliche Testvektoren helfen zu prüfen, ob ein Programm das vorgeschriebene Verfahren einhält. [1] [3] [4]
PBKDF2 erhält zwei getrennte Eingaben. Die Eingabe password besteht aus den tatsächlichen Wiederherstellungswörtern. Die zweite Eingabe heißt Salt und liefert zusätzliche Daten für die kryptografische Berechnung. Sie besteht aus dem wörtlichen Text „mnemonic“, an den die Passphrase ohne Trennzeichen angehängt wird. Die Wiederherstellungswörter selbst werden hier nicht erneut eingefügt. Beide Eingaben werden mit NFKD normalisiert und in UTF-8 kodiert. BIP39 legt HMAC-SHA512, 2 048 Iterationen und ein Ergebnis von 512 Bit, also 64 Byte, fest. Ohne Passphrase bleibt das Salt „mnemonic“; nur die Passphrase ist leer. Die Berechnung entschlüsselt keine Wörter und erzeugt keine neue unabhängige Zufälligkeit. Nach einer Offenlegung der Wörter schützen die Iterationen allein deshalb keine leicht zu erratende Passphrase. [1] [10]
BIP39 endet mit einem Seed von 64 Byte. Ein weiterer Standard, BIP32, leitet daraus üblicherweise mit HMAC-SHA512 und dem festen Schlüssel „Bitcoin seed“ einen privaten Hauptschlüssel und einen Chain Code von 32 Byte ab. Der Chain Code enthält zusätzliche Daten, die zusammen mit einem Schlüssel zur Ableitung weiterer Schlüssel dienen. Aus diesen beiden Werten entsteht der Schlüsselbaum. Regeln wie BIP44, BIP49, BIP84 und BIP86 legen unterschiedliche Ableitungspfade und Skripttypen fest. Bei der Wiederherstellung können Sie daher die richtigen Wörter und die richtige Passphrase eingeben und trotzdem einen Kontostand von null sehen, wenn das Programm nach einem anderen Konto, einem anderen Zweig oder einem anderen Adresstyp sucht. Wichtig ist auch das Gap Limit: Es gibt an, wie viele aufeinanderfolgende unbenutzte Adressen das Programm bei der Suche zulässt. Der Name der ursprünglichen Wallet, Angaben zu Konten, Ableitungspfade oder ein Output Descriptor können Informationen ergänzen, die in den Wörtern allein nicht enthalten sind. [5] [6] [7] [8] [9] [14]
Die Passphrase ist eine weitere geheime Eingabe für die Ableitung des Seeds. Sie ist nicht die PIN des Geräts, und BIP39 kann nicht melden, dass Sie die falsche eingegeben haben: Auch für einen anderen Wert berechnet es ein Ergebnis. Ein Tippfehler, der die normalisierte Eingabe verändert, führt in der Regel zu einer anderen Wallet, in der Sie Ihre Mittel nicht sehen. Unterschiedliche Schreibweisen mit demselben NFKD-Ergebnis leiten dagegen denselben Seed ab. Wer die Wiederherstellungswörter und Angaben erhält, anhand derer die gesuchte Wallet erkennbar ist, kann mögliche Passphrasen offline ausprobieren. Wenn Sie eine Passphrase verwenden, braucht sie ausreichende Stärke, eine vertrauenswürdige Eingabemöglichkeit und eine eigene zuverlässige Sicherung. Getrennte Aufbewahrung soll das Risiko verringern, dass beide Geheimnisse zusammen gestohlen werden; sie soll die Passphrase aber nicht zu einem Geheimnis machen, das mit Ihnen verschwindet. [1] [13]
Die Prüfsumme hilft bei Tippfehlern, beweist aber weder, wem eine Sicherung gehört, noch, ob sie sicher erstellt wurde. Bei 12 Wörtern umfasst sie 4 Bit, bei 24 Wörtern 8 Bit. Eine gleichmäßig zufällige Wortfolge aus der jeweiligen Liste besteht die Prüfung daher mit einer Wahrscheinlichkeit von 1/16 beziehungsweise 1/256. Viele Fehler werden erkannt, aber nicht alle; außerdem behebt die Prüfsumme sie nicht. Ein Angreifer kann eine andere Sicherung mit gültiger Prüfsumme erzeugen. Die Spezifikation verlangt bei einer Abweichung eine Warnung und unterscheidet die Wortprüfung von der eigentlichen Seed-Ableitung. Eine ungültige Prüfsumme sollten Sie daher anhand der ursprünglichen Wallet und ihres Formats untersuchen, statt eine echte Sicherung in ein Online-Prüfwerkzeug einzugeben. [1]
Wörter, Prüfsumme und Seed
BIP39 verbindet 128 Bit Entropie mit 4 Prüfbits. Die daraus entstehenden 132 Bit werden in 12 Gruppen von jeweils 11 Bit aufgeteilt, die Wörter aus der Wortliste auswählen. Die Wiederherstellungswörter bilden anschließend die Eingabe password für PBKDF2-HMAC-SHA512; das Salt entsteht aus dem wörtlichen Präfix „mnemonic“ und einer gegebenenfalls verwendeten Passphrase. Nach der Normalisierung mit NFKD und der Kodierung in UTF-8 wird mit 2 048 Iterationen ein 512-Bit-Seed abgeleitet. Die Prüfsumme fügt keine Zufälligkeit hinzu.
Für ein möglichst vollständiges Bild lies diesen Eintrag zusammen mit Seed Phrase, HD Wallet, BIP39 passphrase, Trezor, Bitcoin, BIP39 checksum. Auf diesen Eintrag verweisen außerdem Seed Phrase, HD Wallet, Cold Storage, BIP (Bitcoin Improvement Proposal).
01Ist BIP 39 Teil des Bitcoin-Konsenses?+
Nein. Es ist eine Wallet-Konvention zur Darstellung von Zufälligkeit und zur Ableitung eines Seeds. Bitcoin-Knoten validieren Transaktionen und Blöcke, ohne zu wissen, ob die Schlüssel mit BIP 39 erzeugt wurden.
02Ist jede Phrase aus 12 oder 24 Wörtern mit BIP 39 kompatibel?+
Nein. Die Wortanzahl reicht nicht: Wortliste und Wortreihenfolge, Prüfsumme, NFKD-Normalisierung und Seed-Ableitung müssen stimmen. Zur Wiederherstellung der ursprünglichen Wallet brauchen Sie außerdem die richtige Passphrase, sofern eine verwendet wurde, sowie die passenden Ableitungspfade und Skripttypen.