Sowohl beim Berechnen des Seeds, als auch beim Berechnen von Ableitungspfaden wird HMAC-SHA512 verwendet. Allerdings auf unterschiedliche Art und Weise.
Danke für die Aufklärung. Ich habe jetzt selbst nochmal nachgeschaut und wieder was gelernt.
To create a binary seed from the mnemonic, we use the PBKDF2 function with a mnemonic sentence (in UTF-8 NFKD) used as the password and the string „mnemonic“ + passphrase (again in UTF-8 NFKD) used as the salt [Salt auf Wikipedia]. The iteration count is set to 2048 and HMAC-SHA512 is used as the pseudo-random function. The length of the derived key is 512 bits (= 64 bytes).
Natürlich ist es mit Passphrase etwas sicherer da selbst wenn 2 die gleichen Adressen bekommen sie wahrscheinlich nicht die gleichen Passphrase benutzen…
Mit Passphrase geht die zahl der Adressen ja quasi gegen unendlich?
Ihr geht hier hauptsächlich davon aus das man mit seiner Passphrase seinen privaten Schlüssel sicherer machen möchte
Das sehe ich nicht so hauptsächlich geht es doch darum wenn bei mir eingebrochen wird und meine bitbox oder noch schlimmer direkt meine 24. Worte gestohlen werden hat der Einbrecher (wenn ich einen Passphrase benutze) immer noch keinen Zugriff auf meine btc
Die Passphrase am besten merken + in das Schließfach einer bank geben
Kein angestellter bei der bank kann mit meiner Passphrase aleine etwas anfangen und ich brauche die bank nur sollte ich meine Passphrase vergessen als Absicherung
Adressen werden mit RIPEMD160 gehashed (aus den Public Keys), es gibt also nur 2^{160} (unterschiedliche) Adressen. Du hast halt nur 160 bits die du befüllen kannst.
Ganz egal ob du das komplette Alte Testament als Passphrase verwendet hast.
Ganz genau.
Die Überlegung mit den Privaten Schlüsseln oben war jetzt glaube ich mehr zum Spaß (weil wir Nerds sind) und keine ernsthafte Überlegung.
„Sicherer“ werden diese sowieso nicht, das haben wir ja geschrieben.
Also kann ich nicht ganz verstehen wieso immer so stark von der Passphrase abgeraten wird einfach merken+ aufschreiben sicher verstecken (z.b bank) + beim senden von btc auf die eigene wallet 3 mal kontrollieren die richtige Passphrase eingegeben zu haben (wenn Guthaben drauf ist wird es richtig sein)
Mir persönlich macht dieses ständige warnen vor der
Passphrase mehr Angst als es nützt so fragt man sich immer ob es die richtige Entscheidung war/ist eine zu benutzen
Wir raten nicht davon ab, sondern wir sagen „man soll wissen, was man tut“!
Wir hatten hier in der Vergangenheit nämlich schon häufig Fälle, wo Leute eben nicht wussten, was sie taten und entsprechend ihre Bitcoins verloren haben.
Hallo zusammen,
erst mal vielen Dank für die vielen Tipps, Kommentare und die Hilfestellung zu meiner eingangs gestellten Frage.
Leider kann ich als NICHT-Kryptoingenieur die vielen Berechnungen nicht nachvollziehen und dem einfach nur glauben was ihr so schreibt. Dabei sehe ich auch bei den Krrypto-Fachleuten z.T. unterschiedliche Aussagen.
Doch ich denke, wenn BTC mal in den Mainstream kommen will (muss), dann braucht es einfache, einheitliche und erprobte Anleitungen.
Die Passphrase (25. Wort) wurde mit Sicherheit mit einem „Sinn“ erdacht. Daher fasse ich noch mal, nach Studium dieses Threads meine „Mutmaßungen zum Sinn“ wie folgt zusammen:
Die Passphrase hat bietet mehr Sicherheit im Falle des „Diebstahls“ der Seed-Phrase und sollte getrennt von dieser aufbewahrt werden.
M.E. reicht eine 10-stellige Passphrase (Mix Groß-Kleinbuchstabe, Ziffern, Sonderzeichen) hier sicher aus.
Von einem „Brain-Wallet“ für die Passphrase wird abgeraten. Die Passphrase sollte getrennt von der „mnemonischen Phrase“ gesichert werden (eigenes Cold-Wallet".
Einen deutlichen Vorteil sehe ich zurzeit weiterhin, den ich bisher immer noch nirgends gelesen habe und sich mir zurzeit, nach Studium des Threads ergibt:
Mit einer Seedphrase alleine besteht ein sehr unwahrscheinliches Risiko, dass diese von verschiedenen Personen aufgrund der eingeschränkten „bip39 word list“ mehrfach entstehen kann. Es geht mir hier nicht um eine Attacke, sondern nur um den Zufall das zwei Leute den gleichen Seed generieren können wenn BTC milliardenfach adoptiert wird. Es gibt ja immer wieder, das irgendwas sehr Unwahrscheinliches doch irgendwann geschieht. Zumindest kann ich mir vorstellen, das alleine diese sehr unwahrscheinliche Möglichkeit bei dem einen oder anderen doch etwas „Unbehagen“ auslöst.
Auch wenn es für den Seed einen beschränkten „Adressraum“ (Egal ob 2^256 oder 2^160), so vermute ich zurzeit, dass durch die Passphrase andere Kombinationen („Schlüsselpäärchen“ vielleicht?) durch den abweichenden Hash entstehen. Falls dies der Fall wäre, dann wäre das für mich genau der Vorteil nach dem ich suche, nämlich dass die Passphrase dieses Risiko nochmals reduziert, nahezu gegen 0 bringt. Richtig?
Wobei ich persönlich (!) z.B. bei der Passphrase noch mehr Zeichen verwenden würde, so um die 20. Sichern muss man sie ja sowieso.
Ja, das löst in der Tat immer wieder Unbehagen aus.
Den Grund hat u.a. @Makowski oben genannt: Der Mensch kann sich solche großen Zahlen nicht vorstellen. Deshalb vertraut man auf Anhieb auch keiner noch so kleinen Wahrscheinlichkeit.
Versuche aber einfach mal einen Vergleich zum täglichen Leben herzustellen. Die Wahrscheinlichkeit im Straßenverkehr einen Unfall zu haben, während man gleichzeitig vom Meteoriten getroffen wird und im Lotto gewinnt, ist um viele Größenordnungen größer, als den gleichen Seed wie jemand anderes zu erhalten. Trotzdem geht man „lebensbedrohliche“ Risiken wie den Straßenverkehr oder raus zu gehen jeden Tag ein.
Milliarden entsprechen einer Eins mit 9 Nullen. Wenn jeder mehrere Wallets hat und wir viele Generationen von Menschen haben, dann landest du vielleicht bei einer Eins mit 12 Nullen oder 15 Nullen… alles egal.
Die Anzahl an möglichen Wallets bzw. Adressen hat, je nachdem wie du rechnest, mindestens 48 Nullen. Also ist diese Zahl um den Faktor 1 Milliarde Milliarden Milliarden größer.
Entscheidend ist jedoch, was @renna glaube ich oben erwähnt hat:
Der Seed muss wirklich zufällig erzeugt werden!
Wenn eine Hardware Wallet schlecht gebaut wäre, z.b. mit einem einfachen Zufallszahlen-Generator (Pseudo Random Number Generator = PRNG), dann wäre die Wahrscheinlichkeit am Ende wesentlich größer, dass zwei Leute den gleichen Seed erhalten.
Dagegen helfen nur sehr gute Zufallszahlengeneratoren (True Random Number Generator = TRNG). Oder, wenn man dem Hersteller nicht vertrauen möchte, den Seed selbst zu würfeln, oder eine Passphrase zu verwenden. Dein Argument ist also richtig, wenn du dem RNG der Hersteller nicht vertraust.
Beim Würfeln würde ich auch aufpassen, dass man einen korrekten Weg wählt. Siehe z.B. HIER oder HIER.
Nein. Am Ende gibt es bei Bitcoin „nur“ eine Anzahl von 2^{160} \approx 10^{48} Segwit Adressen mit zugehörigem Schlüssel. Also eine Eins mit 48 Nullen.
Die Anzahl an möglichen 24 Wörtern und Passphrases ist sehr viel größer, auf jeden Fall größer als 2^{256} \approx 10^{77}. Aus diesen Wörtern plus Passphrase werden am Ende die Adressen und zugehörigen Schlüssel berechnet.
D.h. unabhängig davon, wie stark du deine Anzahl an Eingangsmöglichkeiten erhöhst: Du landest am Ende immer bei gültigen Adressen und Schlüsseln, wirst also in die begrenzte Anzahl von 2^{160} hineingequetscht. Das hatte ich oben mit dem Schubfach-Prinzip beschrieben.
Da du mit 24 Wörtern ohne Passphrase schon 2^{256} Möglichkeiten hast, wirst du damit schon näherungsweise den kompletten möglichen Adressraum abdecken.
Aus dieser Perspektive macht eine Passphrase also keinen Sinn. Sehr wohl aber aus den anderen genannten Gründen.
Das kommt daher, dass zwar ein Teil von uns einen naturwissenschaftlichen oder technischen Hintergrund besitzt, evtl. auch mal eine Kryptographie Vorlesung gehört hat, aber wir sicher keine Kryptographie-Experten sind.
Ein Experte in solchen Themen wird man nur, wenn man nach dem Studium lange Zeit auf solch einem Spezialgebiet arbeitet.
@komuniki Hier musst du abwägen, wie Praktikabel deine Passphrase sein sollte.
Um die 20 Zeichen sind natürlich super, aber da man sie jedes mal sperrlich auf einer Hardware Wallet eintippen muss, auch ziemlich unpraktisch. Wenn man sowieso nur einmal in sechs Monaten eine Adresse verifizieren muss, kein Problem. Wenn man jeden zweiten Tag eine Transaktion tätigen muss, nervig.
Entweder du reduzierst auf eine praktische Länge oder teilst deine Bitcoin auf mehrere Wallets auf. Einen kleineren Teil könntest du auf der Wallet ohne Passphrase sichern um es in der Nutzung etwas einfacher zu haben.
Ganz wichtig noch:
Passwortlänge ist nicht alles! Nur weil ein Passwort 20 Zeichen hat ist es nicht automatisch sicher.
Es gibt keine falsche Passphrase sagen wir du sendest einmal an deine Adresse mit den 24 Worten + Passphrase 1btc
Später möchtest du nochmals 1btc senden wenn du nun deine Passphrase falsch eingibst (es kommt keine Fehler) da wie gesagt jede Passphrase gültig ist du bist nun aber in einer anderen Adresse wenn du nun einen btc dort hin sendest und das nexte mal wieder deine „richtige“ ursprünglich Passphrase eingibst bist du wieder auf der alten Adresse solltest du nun nicht herausfinden welche Passphrase du biem letzen mal eingegeben hast (vermutlich nur ein Tippfehler) ist der eine btc weg
Die Gefahr bei der Passphrase sehe ich darin, dass man
einen Schreck bekommt, wenn man sie falsch eingibt → gültiges Wallet, aber leer. Schlimmer noch: Man gibt eine falsche Passphrase ein, erzeugt eine Adresse, sendet Geld rauf, kommt dann aber nicht mehr ran, weil man beim Erstellen der Adresse einen Buchstabendreher drin hatte.
dazu geneigt ist, sich ein Passwort, wie andere Passwörter im Kopf aufzubewahren, und nicht realisiert, dass ohne die Passphrase alles weg ist.
Ich bevorzuge deshalb auch den Ausdruck 25. Wort.
Den Hauptnutzen der Passphrase sehe ich in der Abstreitbarkeit im Falle einer Erpressung. Man kann Seed und Wallet vorweisen auf dem unter einer Passphrase ein Kleinbetrag abgelegt ist, und unter einer anderen das Hauptwallet.
EDIT: @showmaster Deine Frage hast du oben ja gerade selbst beantwortet.