Entropie
128–256 Bit
Seed Phrase
BIP3912–24 Wörter
Seed
512 Bit
PBKDF2-HMAC-SHA512
Was ist eine Seed Phrase?
Eine Seed Phrase, häufig auch Wiederherstellungsphrase genannt, ist eine geordnete Folge von Wörtern, mit der sich eine Wallet wiederherstellen lässt.
Die meisten Bitcoin-Wallets verwenden dafür den Standard BIP39. Dabei werden zufällig erzeugte Daten in eine leicht lesbare Wortfolge umgewandelt. BIP39 erlaubt 12, 15, 18, 21 oder 24 Wörter, üblich sind vor allem 12 oder 24.
Im weiteren Verlauf dieses Kapitels beziehen sich alle Erklärungen auf den BIP39-Standard.
Die Wörter selbst sind weder Private Keys noch Bitcoin-Adressen. Stattdessen bilden sie eine sogenannte Mnemonic, aus der die Wallet einen kryptografischen Seed berechnet.
Dieser Seed dient anschließend als Ausgangspunkt für die deterministische Ableitung aller privaten und öffentlichen Schlüssel einer Wallet. Aus diesen Schlüsseln entstehen schließlich die Bitcoin-Adressen.
Wer eine Seed Phrase besitzt, kann daher die gesamte Wallet inklusive aller darin enthaltenen Bitcoin wiederherstellen.
Wie entsteht eine Seed Phrase?
Am Anfang steht eine zufällig erzeugte Bitfolge, die als Entropie bezeichnet wird.
256 Bit Entropie
Beispiel · zufällig erzeugt
1011010001101001110010110101001110001011010011100101101001110001011010011100101101001110001011010011100101101001110001011010011100101101001110001011010011100101101001110001011010011100101101001110001011010011100101101001110001011010011100101101001110001011
BIP39 erlaubt Entropien mit einer Länge von 128, 160, 192, 224 oder 256 Bit. Je länger die Entropie ist, desto mehr Wörter enthält später die Seed Phrase.
Aus der Entropie wird zunächst ein SHA-256-Hash berechnet. Einige Bits dieses Hashes werden als Checksumme an die ursprüngliche Entropie angehängt.
Entropie
256 Bit · Beispiel
SHA-256-Hash
256 Bit · Hex · markierte Nibbles = Checksumme
629c6321b2df4dd7ce5b257a653fe7b1b63c76a129d4c501f340f80bf4394da2
Entropie + Checksumme
264 Bit
101101000110100111001011010100111000101101001110010110100111000101101001110010110100111000101101001110010110100111000101101001110010110100111000101101001110010110100111000101101001110010110100111000101101001110010110100111000101101001110010110100111000101101100010
Die kombinierte Bitfolge wird anschließend in Gruppen zu jeweils 11 Bit aufgeteilt. Jede dieser Gruppen ergibt eine Zahl zwischen 0 und 2047 und verweist damit auf genau ein Wort aus der BIP39-Wortliste mit 2048 Einträgen. Die vollständige Tabelle mit Index, Binär, Hex und allen offiziellen Sprachlisten findest du unter BIP39 Wörter.
11-Bit-Gruppen
264 Bit · 24 Wörter · Beispiel
Orange = ChecksummeSo entsteht eine Seed Phrase mit 12, 15, 18, 21 oder 24 Wörtern.
Woher kommt die Entropie?
Bevor eine Seed Phrase entstehen kann, muss die Wallet zunächst zufällige Daten erzeugen.
Dafür verwendet sie kryptografisch sichere Zufallsquellen. Bei Software-Wallets stammen diese in der Regel von einem kryptografisch sicheren Zufallszahlengenerator (CSPRNG) des Betriebssystems. Hardware-Wallets erzeugen die Entropie hingegen mithilfe eigener Hardware-Zufallszahlengeneratoren und Firmware-Komponenten.
Ein kryptografisch sicherer Zufallszahlengenerator (CSPRNG) erzeugt Zufallsdaten, deren Ausgaben auch bei Kenntnis vieler zuvor erzeugter Werte praktisch nicht vorhergesagt werden können.
Aus diesen Zufallsquellen entsteht eine kryptografisch sichere Bitfolge. Die Wallet übernimmt anschließend beispielsweise 128 oder 256 Bit dieser Daten als Entropie für die BIP39-Seed Phrase.
Zufallsquellen
Wallet
Entropie
128 oder 256 Bit
BIP39
Mnemonic
Warum enthält eine BIP39-Wortliste genau 2048 Wörter?
Die Größe der Wortliste ist eine Designentscheidung von BIP39.
Die Autoren legten fest, dass jede BIP39-Wortliste genau 2048 Wörter enthält.
Dadurch kann jedes Wort durch einen 11 Bit langen Index beschrieben werden:
2¹¹ = 2048Jede 11-Bit-Gruppe entspricht somit einem Index zwischen 0 und 2047 und verweist auf genau ein Wort der Wortliste.
11 Bit
00000000000↓
Index
0
↓
Wort
abandon
11 Bit
00000000001↓
Index
1
↓
Wort
ability
11 Bit
10000000000↓
Index
1024
↓
Wort
length
11 Bit
11111111111↓
Index
2047
↓
Wort
zoo
Da jedes Wort genau 11 Bit repräsentiert, wurden die zulässigen Entropielängen anschließend so gewählt, dass sie zusammen mit der Checksumme immer eine ganze Anzahl solcher 11-Bit-Gruppen ergeben. Die zugehörigen Indizes und Wörter kannst du in der Tabelle unter BIP39 Wörter nachschlagen.
| Entropie | Checksumme | Gesamt | Wörter |
|---|---|---|---|
| 128 Bit | 4 Bit | 132 Bit | 12 |
| 160 Bit | 5 Bit | 165 Bit | 15 |
| 192 Bit | 6 Bit | 198 Bit | 18 |
| 224 Bit | 7 Bit | 231 Bit | 21 |
| 256 Bit | 8 Bit | 264 Bit | 24 |
Wozu dient die Checksumme?
Die Checksumme hilft dabei, fehlerhaft eingegebene Seed Phrases zu erkennen.
Bei der Wiederherstellung wandelt die Wallet die Wörter wieder in ihre Bitfolge um und überprüft, ob die darin enthaltene Checksumme zur Entropie passt.
Stimmt sie nicht überein, ist die Seed Phrase nach BIP39 ungültig.
Seed Phrase
Wörter → Indizes → Bitfolge
abandon amount canvas …
Entropie
vordere Bits
1011010001101001110010110101001110001011010011100101101001110001011010011100101101001110001011010011100101101001110001011010011100101101001110001011010011100101101001110001011010011100101101001110001011010011100101101001110001011010011100101101001110001011
Checksumme
gespeichert · 0x62
01100010
Erwartete Checksumme
neu berechnet · 0x62
01100010
Gültig
01100010 = 01100010
Ungültig
10011101 ≠ 01100010
Dadurch lassen sich viele typische Fehler erkennen, beispielsweise:
- ein vertauschtes Wort,
- ein Wort an der falschen Position,
- ein durch ein anderes BIP39-Wort ersetztes Wort,
- eine vollständig falsch zusammengesetzte Wortfolge.
Die Checksumme erkennt jedoch nicht jeden möglichen Fehler. Eine veränderte Wortfolge kann zufällig weiterhin eine gültige Checksumme besitzen.
Wie wird aus einer Seed Phrase ein Seed?
Die Seed Phrase wird nicht direkt zur Ableitung der Wallet-Schlüssel verwendet.
BIP39 verarbeitet sie zunächst mit PBKDF2-HMAC-SHA512. Dabei handelt es sich um eine Schlüsselableitungsfunktion:
- PBKDF2 führt die Berechnung mehrfach hintereinander aus.
- HMAC kombiniert die Eingaben mithilfe einer Hashfunktion.
- SHA-512 ist die dabei verwendete Hashfunktion.
Die Seed Phrase dient als Passwort. Als Salt verwendet BIP39 die feste
Zeichenfolge "mnemonic" zusammen mit der optionalen
Passphrase.
Anschließend wird die Berechnung mit 2048 Iterationen ausgeführt:
Das Ergebnis ist ein 512 Bit langer Seed.
Passwort
Seed Phrase
Salt
ohne Passphrase
literale ASCII-Zeichenfolge
Salt
mit Passphrase
literale Verkettung (ohne Trennzeichen)
Passwort
Seed Phrase
Salt
"mnemonic" + Passphrase
PBKDF2-HMAC-SHA512
2048 Iterationen
512-Bit-Seed
64 Byte · Hex
ohne Passphrase
Salt = "mnemonic"
8a83f8852ff5d4a77649dd6a7f2f22b0a51d8fbc28c0da0ee30224fef1b8930ab8e71ee52bc8646560fcf0573911a1b1fa2e4d2465f3f26962d5565e7c0b1dab
mit Passphrase „Bitcoin“
Salt = "mnemonicBitcoin"
56cd2bef120cad88cc5587e1e810957d206590cb88f6f3c2efb7c609ee7ea3df2533bd7d9f32460a4cd2b87edaad1da8c0ce414b6b5f789fcf43d1872094f864
Die Ableitung ist deterministisch:
gleiche Seed Phrase
+ gleiche Passphrase
= gleicher SeedEine andere Passphrase erzeugt dagegen einen vollständig anderen Seed.
Der 512-Bit-Seed dient anschließend als Eingabe für BIP32, das daraus die HD Wallet ableitet.
Was bewirkt die optionale Passphrase?
Die optionale Passphrase erweitert eine BIP39-Seed Phrase um ein zusätzliches Geheimnis.
Sie wird zusammen mit den 12 oder 24 Wörtern bei der Berechnung des 512-Bit-Seeds verwendet. Dadurch entsteht eine vollständig andere Wallet.
Bereits kleinste Unterschiede führen zu einer anderen Wallet.
24 Wörter + "" → Wallet A
24 Wörter + "Bitcoin" → Wallet B
24 Wörter + "bitcoin" → Wallet C
24 Wörter + "Bitcoin " → Wallet DWie lässt sich eine Wallet wiederherstellen?
Zur Wiederherstellung wird die Seed Phrase in eine kompatible Wallet eingegeben.
Die Wallet berechnet daraus erneut denselben 512-Bit-Seed und leitet anschließend dieselben privaten und öffentlichen Schlüssel ab. Dadurch entstehen wieder dieselben Bitcoin-Adressen.
Seed Phrase
BIP3912–24 Wörter
Passphrase
optional
leerer String oder zusätzliches Geheimnis
512-Bit-Seed
PBKDF2-HMAC-SHA512
HD Wallet
deterministische Ableitung
Private Keys und Adressen
dieselben wie zuvor
Wurde bei der ursprünglichen Wallet eine Passphrase verwendet, muss bei der Wiederherstellung exakt dieselbe Passphrase eingegeben werden. Andernfalls entsteht eine andere Wallet.
Nach der Schlüsselableitung durchsucht die Wallet die Blockchain nach Transaktionen, die zu den abgeleiteten Adressen gehören. Daraus rekonstruiert sie den Kontostand und die verfügbaren UTXOs.
Wie bewahrt man eine Seed Phrase sicher auf?
Eine Seed Phrase ist das vollständige Backup einer Wallet. Geht sie verloren oder gerät sie in fremde Hände, können die darin verwalteten Bitcoin dauerhaft verloren sein oder gestohlen werden.
Für eine sichere Aufbewahrung gelten daher einige grundlegende Regeln:
Nur offline
Bewahre die Seed Phrase ausschließlich offline auf.
Vollständige Sicherung
Erstelle eine gut lesbare und vollständige Sicherung.
Feuer und Wasser
Schütze sie vor Feuer, Wasser und anderen Umwelteinflüssen.
Kein Fremdzugang
Bewahre sie an einem Ort auf, zu dem Unbefugte keinen Zugang haben.
Keine Kamera
Achte beim Aufschreiben darauf, dass keine Kamera oder andere Aufnahmegeräte die Seed Phrase erfassen können.
Nie im Netz eingeben
Gib die Seed Phrase niemals auf Webseiten oder in unbekannte Software ein.
Wird zusätzlich eine Passphrase verwendet, sollte auch diese sicher dokumentiert werden. Seed Phrase und Passphrase müssen jedoch nicht gemeinsam aufbewahrt werden.