Warum 12 Wörter für deine Wallet ausreichend sicher sind

12 oder 24 Wörter? Eine Frage, die aus dem Aspekt der Sicherheit gar nicht so entscheidend ist, als man zunächst vermuten würde.

3 „Gefällt mir“

Ein weiterer kleiner Vorteil der 24 Wörter ist jedoch, dass man seinen Seed in 3 Teile teilen kann auf welche man jeweils 16 Wörter schreibt.

So kann ma nun 3 Teile verstecken, und man muss nur 2 wiederfinden.
Ein Angreifer, der nur einen Teil findet kann mit 16/24 Wörtern den Seed nicht brute forcen.

Mit einem 12 Wörter Seed sollte man das nicht machen, da ein Teil mit 8/12 Wörtern schon reichen kann um die restlichen 4 zu brute forcen :slight_smile:

1 „Gefällt mir“

Genau, wollte ich ursprünglich auch aufnehmen, nur ich tue mich zunehmend schwer damit, das so öffentlich und vor allem nebenbei zu empfehlen. Stichwort ~80 Bit Sicherheit.

Ist hier etwas genauer beschrieben:

Wir haben auch eine Vorlage dafür. :slight_smile:

man könnte doch auch jeweils die hälfte der 24 Wörter an 4 Stellen verstecken.

Könnte man. Braucht man halt vier sichere Verstecke für. Da ist in meinen Augen halt eine optionale Passphrase schon etwas praktischer.

natürlich
für mich ist auch schon bei drei verstecken ne passphrase sinnvoller

Geiler Beitrag!

Vielleicht für die Matheanfänger noch den Unterschied zwischen 10^ und 2^ erklären :smiley:

Kann eventuell Anfängern helfen.

1 „Gefällt mir“

Interessant !
Haben die beiden Varianten denn auch andere Namen?
Sagen wir mal 24 Wörter sind BIP-39 und die Version mit nur 12 Wörtern heißt irgendwie anders?

Nein, ist exakt der gleiche Standard.

1 „Gefällt mir“

Wow, das wusste ich gar nicht, dass der public key auf Taproot Adressen sowieso einsehbar ist, ohne dass sich die Bitcoin jemals wegbewegt haben. :open_mouth:

Das heisst eigentlich, dass es keinen einzigen Grund mehr gibt, 24 Wörter Seeds zu nutzen. Mnemonic Splits sind ein Anti-Pattern und den Punkt mit „wenn du ein Wort verlierst ist es einfacher“ sehe ich jetzt auch nicht.

@sutterseba Denkst du, in Zukunft werden 12 Wörter Wallets wieder zum Standard?

Wie immer ein sehr fundierter Artikel! :+1:

Hat mich mich an unseren Thread vor 1,5 Jahren mit unserem guten Forumskollegen anon52841224 erinnert :slightly_smiling_face:: Reichen 12 Wörter?

Die möglichst langsame Key Derivation Function beim Brute Forcen einer Seedphrase hat man im Vergleich zum Private Key auch noch als Sicherheit. Allerdings sollte der Zugang zu einer ganzen Wallet auch immer sicherer sein, als der zu einer einzelnen Adresse.

Selbst bei den Kollisionswahrscheinlichkeiten hat man tatsächlich noch ein bisschen Luft (2 Leute, gleiche Seedphrase), solange die Seedphrase perfekt zufällig ist (!).

Allerdings würde ich persönlich glaube ich heutzutage trotzdem keine 12 Wörter mehr nutzen. Auch wenn das, wie du erklärt hast, natürlich keine akute Gefahr ist.

Das erste Argument nennst du selbst:

Mit 24 Wörtern hat man außerdem etwas mehr Spielraum für Fehler. Sollten aus welchem Grund auch immer einzelne Wörter bekannt werden, oder die Qualität der Zufallszahl nicht ideal sein, steht man nicht so schnell am Abgrund, als es mit 12 Wörtern der Fall wäre.

Solche Fehler bzw. Probleme kann man sich schließlich viele vorstellen. Etwas Margin ist nie verkehrt und wir liegen aktuell ja schon bei einer BSI-Empfehlung von 120 Bit.

Das bringt mich zum zweiten Argument, nämlich Zukunftssicherheit.

Ohne jetzt hier irgendetwas kokret durchrechnen zu wollen. Sagen wir mal, die Sicherheitsempfehlung geht in ein paar Jahren auf 140 Bit. Alleine schon gefühlsmäßig möchte ich keine Bitcoin Wallet mit einem Sicherheitsniveau verwenden, was sogar unter einer offiziellen Empfehlung liegt. Üblicherweise will man doch immer ein bisschen sicherer sein; gerade bei den Ersparnissen.

2 „Gefällt mir“

Das mit der 80 bit Sicherheit ist ein valider Punkt.
In Zukunft wird das irgendwann sicher möglich sein das zu brute forcen.

Bis das wirtschaftlich für den Angreifer ist dauert es aber bestimmt noch ein wenig.

Zum Vergleich:

Die aktuelle Hashrate aller Miner ist etwa 360 Exahashes/sek also etwa 2^68 Hashes pro Sekunde.

Ein BIP39 Seed wird 2048 (= 2^11) mal gehashed vor der Nutzung, also bräuchte man bei 80 Bit Entropy „ganz grob gerechnet“ 2^(80+11) = 2^91 Hashes.

Alle Miner zusammen bräuchten also folgende Anzahl an Sekunden zum cracken der letzten 8 Wörter:

2^91 : 2^68 = 2^23

Das sind etwa 8.000.000 Sekunden oder auch 92 Tage.

Ein Angreifer müsste also die komplette Hashrate von 92 Tagen aller Miner aufbringen.
Da lohnt es sich dann schon eher einfach Mining zu betreiben :slight_smile:

Ich möchte damit nicht dein Argument entwerten @sutterseba . Ich stimme dir zu. Ich möchte nur den Lesern die Angst nehmen, dass wir das Problem in kürze schon haben werden.

1 „Gefällt mir“

Ich glaube du bist mit 24 Wörtern aber eben nicht sicherer bzw. besser für die Zukunft gewappnet.

Im verlinkten Artikel steht:
„Ein Angreifer muss also, völlig egal, ob hinter den privaten Schlüsseln eine 256 Bit Zufallszahl (also 24 Wörter) stehen, „nur“ 2^128 Operationen durchführen, um das Problem zu lösen und auf den privaten Schlüssel zurückzurechnen“

Demnach ist es egal, ob deine private keys 256 Bit Entropie haben oder nur 128 (wie bei 12 Wörtern).
Die Sicherheit im Bitcoin Netzwerk ist aktuell „nur“ 128 Bit.

Ich schätze mal, dass man da irgendwann noch sicherer Verfahren entwickelt, oder es die schon gibt.

@sutterseba Weißt du, ob es schon Alternativen zum diskreten Logarithmus Problem gibt, welche mehr als 128 Bit Sicherheit haben?
Irgendwann werden 128 Bit ja wohl nicht mehr reichen.

Dazu ein klares Jein! :slightly_smiling_face:

Prinzipiell und bei Betrachtung von Bitcoin als Ganzem hast du Recht. Für mich als Einzelperson muss ich das aber teilweise relativieren.

Liegen meine Sats zum Beispiel alle auf einer Adresse, zu welcher der Public Key bekannt ist, dann macht es absolut keinen Unterschied, ob man 12 oder mehr Wörter verwendet.

Wenn man aber mehrere Accounts mit jeweils mehreren Unteradressen verwendet, dann macht es einen Unterschied, ob jemand gleich die ganze Wallet knackt, oder nur eine meiner Adressen.
Um alle meine Adressen zu knacken wäre der Aufwand dann höher. Vor allem kann niemand einen Bezug meiner Adressen zueinander herstellen. Man kann also nicht gezielt nur meine Adressen abräumen, solange ich auch meine xpubs nicht veröffentliche.

Außerdem muss man wie erwähnt den Public Key kennen, damit der Brute Force Aufwand für den Private Key auf die Wurzel der Schlüsselanzahl sinkt (hier also auf 2^128).

Natürlich kann man hiergegen das Argument anbringen, dass die Anzahl meiner Adressen und die Kenntnis meiner Public Keys irrelevant sind. Es reicht schließlich, wenn ein anderer einzelner Private Key mit ordentlich Bitcoin geknackt wird, dann bricht das Vertrauen zusammen.

Obwohl ich dieses Argument selbst öfter verwende, ist es nicht ganz so zwingend wie die vorher genannten.
Es werden andauernd Wallets leergeräumt, so dass es nicht unbedingt auffallen würde, wenn jemand das plötzlich mittels Brute Force schafft. Wenn dieser jemand auch nicht Bitcoin zerstören, sondern sich nur bereichern möchte, dann macht er das möglichst nur hin und wieder, nicht im großen Stil.

Für mich persönlich macht die Anzahl der Wörter also alles in allem, zumindest unter bestimmten Umständen (intelligenter Dieb), einen Unterschied. Nur wenn irgendeine Entität Bitcoin als Ganzes einfach zerstören möchte, bleiben aktuell nur die 128 Bit Sicherheit.

Noch zu den Stichworten „aktuell“ und „Zukunftssicherheit“:

Ich bin schon lange der Meinung, dass man eine der wichtigsten Grundtechnologien bei Bitcoin, nämlich die Kryptographie, etwas zu locker nimmt (siehe z.B. hier).

Unter anderem mit dem Argument, Bitcoin habe doch eh nur 128 Bit Sicherheit, hat man bei den öffentlichen Public Keys bei Taproot kein Problem gesehen.

Stattdessen sollte man die Entwicklung neuer Methoden mit höherer Sicherheit vorantreiben.

Auf einzelne kryptographische Verfahren, z.B. bzgl. Quantenresistenz, will ich gar nicht hinaus. Daran wird unabhängig von Bitcoin gearbeitet.
Sondern darauf, dass man Resistenz gegen den Bruch einzelner Verfahren anbietet, z.B. durch Kombination mehrerer, verschiedener Verfahren.

Sollte eine dieser Neuerungen mal kommen, oder sei es am Ende doch nur ein neues Verfahren oder die Erhöhung der Schlüssellänge, brauche ich mit 24 Wörtern erstmal keine neue Wallet.

Du kannst auch einfach bei gleichem Verfahren die Schlüssellänge erhöhen.

2 „Gefällt mir“

Im Beitrag wurde was das angeht etwas vereinfacht. Im Bitcoin Kontext sind wir natürlich auf Elliptischen Kurven unterwegs; das grundlegende Prinzip, also das mathematische Problem auf dem die Sicherheit beruht, bleibt aber dasselbe.

Wie @skyrmion schon schreibt, kann man natürlich einfach die Schlüssellänge anheben. Damit erfindet man natürlich nicht die Welt neu, muss man aber auch nicht (und das ist logischerweise auch nicht so einfach :sweat_smile:). Entscheidend ist halt, dass du bei Verfahren, die auf Elliptischen Kurven beruhen, vereinfacht gesagt die Wurzel ziehen musst, wenn es um das Sicherheitsniveau geht.

Um also ein Sicherheitsniveau von z.B. 256 Bit wie bei einer 24 Wörter Mnemonic zu erreichen, bräuchte man entsprechend eine Schlüssellänge von 512 Bit.

Dass du kein 1:1 Verhältnis zwischen Schlüssellänge und Sicherheitsniveau wie bei symmetrischen Verfahren hast, ist eine Grundeigenschaft von asymmetrischen Verfahren, die man auch nicht einfach so loswerden kann.

Wenn natürlich das DLP an sich nicht mehr schwierig sein sollte, also die Eigenschaft der Einwegfunktion verliert, dann spielt die Schlüssellänge auch keine entscheidende Rolle mehr.

Hier eine nette Übersicht:

(aus Paar und Pelzl falls Intersse besteht)

Du müsstest auf die neue Schlüssellänge oder ein neues Verfahren aber erstmal upgraden, zwar kannst du dafür die gleichen 24 Wörter nutzen, aber effektiv wäre es was deinen Aufwand angeht trotzdem eine „neue Wallet“ - im Extremszenario auch was Sicherheitsrisiken angeht (du müsstest schließlich ausgeben und dich dem potenziell lauernden effizienten Angriff aussetzen).

2 „Gefällt mir“

@skyrmion Ich glaube ich verstehe deinen Punkt.

Also solange ich meine public keys nur veröffentliche, sobald ich zahle (und die Adresse dann hoffentlich nicht mehr nutze), habe ich bei einem 24 word seed eben doch 256 Bit Sicherheit. Es gibt ja da keinen Public Key, den ich gezielt zurückrechnen kann, außer vom Moment der Zahlung bis zur Aufnahme der tx in einen Block.
Verstehe ich das so richtig?

Das sehe ich auch so. Irgendwie hat am damals gesagt, man hashed die Pub Keys, da das sicherer ist. Und jetzt heißt es, es sei gar nicht sicherer wegen 128 Bit Sicherheit und man lässt es wieder um die Größe der Transaktionen zu reduzieren.
Mir fehlt auch der Ansatz „Wie erhöhen wir generell die Security“

@sutterseba Danke für die Erläuterungen. Davon war mir vieles neu :slight_smile:

2 „Gefällt mir“

Richtig, allerdings wie gesagt abhängig vom Szenario!

Die ganze Überlegung basiert darauf, dass bei einem großen Anteil aller Bitcoin eben der Public Key schon bekannt ist (P2PK, Taproot, Mehrfachverwendung → siehe P. Wuille auf Twitter). Wenn davon auch ein signifikanter Teil angegriffen würde, bzw. bekannt würde, dass ein Brute Force Angriff plötzlich machbar ist, dann würde das Vertrauen in Bitcoin geschwächt und der mittlere Wert temporär oder auch sehr langfristig einbrechen.

Die Fragen ist eben, ob das so ablaufen würde, oder ob ein inteligenter Dieb das nur unauffällig im kleinen Maßstab macht. @sutterseba hat das ja gut erklärt und ich habe oben noch etwas dazu geschrieben.

Ein Problem bleibt natürlich, was @sutterseba angesprochen hat und wir auch im verlinkten Quantencomputer Thread diskutiert hatten:

Solange deine Bitcoin während des Worst Case Szenarios auf deiner Adresse liegen bleiben, passiert ihnen außer dem Preisverlust in Fiat nichts.
Allerdings kannst du sie auch nicht ohne weiteres transferieren, da du dafür den Public Key veröffentlichen müsstest. Man bräuchte in diesem Fall also einen vertrauenswürdigen Miner bzw. Pool, welcher deine Transaktion aufnimmt, ohne dass du sie im Netzwerk broadcastest.

Selbst dann könnten sich die Betrüger mit anderen Minern zusammentun, die bei Veröffentlichung so eines Blocks die PublicKeys auslesen und einen parallelen Block minen, der für dieselben UTXOs eine höhere Fee beinhalten.
In diesem Fall müsste der neue Brute Force Angriff allerdings sehr schnell machbar sein (Sekunden bis Minuten); das ist also kein realistisches Szenario. Falls doch, käme es auf die Hashrate-Mehrheit zwischen ehrlichen und unehrlichen Minern an. Wer also die längere Kette mined.

2 „Gefällt mir“

Dein letzter Absatz wäre dann relevant wenn es möglich wäre aus den Public Keys quasi in Echtzeit die Private Keys zu errechnen.

Ich gehe aber mal davon aus, dass man in vielen Jahren feststellen wird:
„Der Weg Public → Private Key ist mit Super Computern mit etwa 10 Jahren Rechenzeit möglich. So langsam muss ein neuer Algorithnus her.“

Ob der Algorithmus früh genug da ist, oder ob nicht doch Google bereits die ein oder andere Adresse geknackt hat, sei mal dahingestellt.
Aber es kommt vllt. der Moment wo Leute beweisen, dass sie in nur 2 Jahren einen Private Key errechnet haben. Oder jemand die erste Satoshi Adresse leer räumt.
Und spätestens dann, wird man ja wohl was tun.

Wenn das Ganze dann irgendwann mal in ein paar Sekunden möglich sein sollte, sollte auch der letzte hoffentlich seine BTC schon lange auf sicherere Adressen transferiert haben.