Marc Steiner
Marc Steiner

Wie entsteht die Bitcoin-Seed-Phrase?

Was ist eine Seed-Phrase

Ein Mechanismus, der bei der Verwendung von Bitcoin immer wieder Verwirrung stiftet, ist die Seed-Phrase. Ich zeige dir in einem Schritt-für-Schritt-Beispiel auf, wie eine Bitcoin Seed-Phrase entsteht. 

Eine generelle Einführung, was eine Seed-Phrase ist und wie sie als Backup-Mechanismus benutzt wird, findest du in meinem  Was ist eine Seed-Phrase.

Begriffe wie mnemonische Phrase, Mnemonic, Mnemonic Seed, Mnemonic Seed Phrase, Seed Key oder Recovery Phrase, von denen im Zusammenhang mit Wallets und Backups gelegentlich die Rede ist, meinen alle genau dasselbe: die 12 oder 24 Wörter lange Seed-Phrase.

Buch Kryptos verwahren und vererben | Marc Steiner

Folgend ein Beispiel, wie diese Seed-Phrase aussehen kann (erstellt mit dem BIP39-Tool von Ian Coleman, das sich auch sehr gut zum «Herumspielen» eignet):

warfare garage clinic message upon beyond anchor sentence never train shift border

Schritt für Schritt zur Seed-Phrase

Beim Aufsetzen eines HD-Wallets erstellt die Software zu Beginn automatisch eine zufällige binäre Zahl, den Seed. Binär heißt, dass diese Zahl aus lauter Nullen und Einsen besteht, den sogenannten Bits (grundlegendste Computersprache). Die Anzahl der Stellen aus Nullen und Einsen muss zwischen 128 und 256 liegen und aus Gründen der Kryptografie durch 32 teilbar sein. Je mehr Stellen, desto sicherer wird die Seed-Phrase. Eine binäre Zufallszahl mit 128 Stellen könnte so aussehen:

01100010110110011000101000011000101001001110101110110010010001110111010110100101010101101110101110100110101000100011000111100111

Jetzt muss man einige Umrechnungen tätigen, um die Seed-Phrase entstehen zu lassen. Wenn man die obige binäre Zahl, den Seed, ins hexadezimale Zahlenformat umrechnet (z.B. mit diesem Tool), ergibt das:

62D98A18A4EBB24775A556EBA6A231E7

Davon wird mithilfe des SHA256-Algorithmus der 64 Zeichen lange Hash erstellt (z.B. mit diesem Tool –Eingabe = «Binary Hash» und Ausgabe = «Results SHA-256»):

d3467b7a3dfbdfa18ba9946513ba2631cf351760d8e0ed83c3c944ac9276fc3f

In unserem Fall einer 128-Bit-Zufallszahl nehmen wir nun das erste Zeichen, d, und rechnen es zurück ins binäre System mit dem Ergebnis: 

1101

Die Wallet-Software nutzt diese Zahl, um zu überprüfen, ob sämtliche Umrechnungen korrekt abgelaufen sind. Deshalb heißt diese Zahl auch Checksumme. Man hängt sie ans Ende der ursprünglichen, in unserem Beispiel 128 Bit langen Binärzahl an, mit dem Resultat:

011000101101100110001010000110001010010011101011101100100100011101110101101001010101011011101011101001101010001000110001111001111101

Die – nun 132 Bit lange – Zahlenkette wird dann in Gruppen von 11 Zeichen aufgeteilt. In unserem Fall ergibt dies für die ersten drei Gruppen:

01100010110  11001100010  10000110001 …

Jede dieser Gruppen wird dann nach gängigem Verfahren von der Wallet-Software in Dezimalzahlen umgewandelt. Im Fall der ersten Gruppe entsteht die folgende Dezimalzahl:

01100010110 (binär) = 790 (dezimal)

Mit der Zahl 790 kannst du nun das erste Wort deiner Seed-Phrase ermitteln. Auf der englischen Wortliste (BIP39) der Open-Source-Plattform Github findest du an der Position 790 + 1 = 791 das Wort glare.

Github Seed-Phrase Wortliste

Auf Github liegen Wortlisten für Englisch, Japanisch, Koreanisch, Spanisch, Chinesisch, Französisch und Italienisch vor, die alle sorgfältig ausgewählt wurden. Wenn du noch nie programmiert hast, fragst du dich sicher, warum du das 983. Wort der Liste auswählen sollst und nicht das 982.

Der Grund ist simpel: In der Informatik beginnt alles mit null. Auf einer Wortliste aber steht das erste Wort an der Position eins. Somit fehlt der Startpunkt null, alles ist um eine Stelle nach hinten verschoben.

Um das korrekte Wort zu finden, das dem binären 01100010110 respektive dem dezimalen Seed 790 entspricht, musst du also an der 791. Stelle der Wortliste nachschauen statt an der 790.

Dieser Prozess wird nun für alle binären Zahlengruppen durchgeführt, bis die komplette Seed-Phrase erstellt ist.

Ein HD-Wallet führt die entsprechenden Operationen selbstständig und automatisch durch. Eine 128-stellige binäre Zufallszahl entspricht einer Seed-Phrase von 12 Wörtern (128 : 11 ≈ 12), 256 Zeichen entsprechen 24 Wörtern (256 : 11 ≈ 24). Je größer die Zahl, desto schwerer ist es, die Seed-Phrase zu erraten.

Eine weitere sehr gute und detaillierte Anleitung auf Englisch gibt es zudem auf Medium von Coinmonks (Link).

Newsletter

Für weitere wertvolle Informationen rund um das Thema Bitcoin und Sicherheit melde dich jetzt für meinen Newsletter an.

Hat dir der Artikel gefallen? Unterstütze mich mit Bitcoin-Lightning. Danke!

sats
Marc Steiner
Marc Steiner

Digital-Experte & Bitcoin-Beratung

Weitere interessante Artikel

Externer Zugriff auf Bitcoin Node

Einführung Wer eine eigene Bitcoin Full-Node betreibt, fragt sich früher oder später, wie man einen externen Zugriff auf diese Bitcoin Node bekommen

Bitcoin-Sparplan

Sparen mit Bitcoin lohnt sich Ein Bitcoin-Sparplan macht Sinn! Sparen in «Fiat-Geld» (CHF, EUR oder US-Dollar etc.) ist in der heutigen Zeit

Shamir’s Secret Sharing Scheme und Tails OS

Einführung Im Artikel (>> LINK) erfährst du, wie du Tails OS installierst und nutzt und deinen Nachlassplan mittels Verschlüsselungstool (VeraCrypt) sicher auf

Kontakt

  • hallo@marcsteiner.tech
  • Zürich, Schweiz

Du willst wissen wie Bitcoin funktioniert, mit mir ein Wallet aufsetzen oder generell über digitale Themen reden?

Buch Veröffentlichung: 

verschoben auf Mai 2020

Ca. 130 Seiten – 19.90€/22CHF 

Willst du den Release nicht verpassen? Trage deine E-Mail Adresse ein oder folge mir auf Twitter und LinkedIn.