Multi-Sig mit 2 von 2 sinnvoll?

Hallo Leute,

aufgrund des Coldcard-Vorfalls lese ich jetzt immer wieder davon, dass man sich vor so etwas mit Multi-Sig absichern könnte. Aber irgendwie leuchtet mir das nicht ein. Denn was nutzen mir beispielsweise zwei HW-Wallets (z.B. bei 2/3), wenn sie BEIDE von einem „schlechte seed Generation“-bug betroffen sind? Klar is natürlich wesentlich unwahrscheinlicher, dass gleich zwei Geräte auf einmal betroffen sind, aber doch jetzt auch nicht so uuultra-unwahrscheinlich. Ich würde es ja verstehen, wenn man für sein Multi-Sig-Setup 10.000 Hardware-Wallets verwenden würde, aber ein 9999/10.000 Multi-Sig-Setup wäre eventuell etwas unpraktikabel :grin:

Deshalb meine Frage: Würde es nicht Sinn machen ein 2/2-Setup zu wählen, wobei man von der einen HW-Wallet den seed selbst erstellen lässt und bei der anderen Wallet einen gewürfelten seed einfügt? Somit könnte die HW-Seed-Generation verkacken und man hätte immer noch den gewürfelten seed. Und wenn man beim Würfeln einen Fehler macht hätte man immer noch den HW-Wallet Seed.

Oder wäre das völlig schwachsinnig Multi-Sig aufzusetzen, ohne dabei eine Redundanz zu nutzen (also dass man einen Seed verlieren kann wie z.B. bei 2/3)? (Bei 2/3 hätte man aber wieder das Problem, dass zwei gewürfelte oder zwei HW-Wallet generierte seeds (also evtl. unsichere Seeds) ausreichen würden, um coins zu bewegen)

Das kommt alles darauf an, was du von deinem Multisig-Setup eigentlich willst und was du bzgl. Verwahrung vorhast. Wenn du z.B. deine beiden Seed-Backups auf dieselbe Art am selben Ort aufbewahrst, ist die Aufbewahrungssicherheit äquivalent zu der von nur einem Seed, daher wüsste ich nicht, warum sowas grundsätzlich „schwachsinnig“ sein sollte.

Bzgl. 2/3 ist es in dem Zusammenhang wichtig, mal kurz über die „Entropieverteilung“ der Seeds nachzudenken:

  • bei HW-Wallet-Seeds (24 Wörter) ist die Entropie entweder perfekt (fast immer) oder total scheiße (fast nie, aber bei Coldcard halt eben doch)
  • bei Würfel-Seeds (24 Wörter) ist die Entropie immer in einem Bereich von „super“ (wenn du dich an alles hältst) bis „gut genug“ (wenn du es richtig drauf anlegst, alles falsch zu machen). Mit „gut genug“ meine ich übrigens „immer noch besser als ein perfekter 12-Wort-Seed“.

Was du bei 2 von 3 vermeiden willst, ist die Möglichkeit, dass 2 davon total scheiße sein könnten. Wenn höchstens einer theoretisch total scheiße sein könnte, aber die anderen beiden sind „gut genug“, dann ist das mehr als ausreichend.


Das „alles falsch machen“ meine ich übrigens ernst. Ich hab mir in den letzten Tagen, seit dem Coldcard-Vorfall, den Entropieverlust wirklich vieler Würfel-Szenarien durchgerechnet (gezinkte Würfel, Ergebniskorrellation durch „gleichmäßiges Würfeln“, „dem Zufall nachhelfende“ User, …), mit dem Ergebnis, dass die vorherrschende Angst, die so viele Leute vor „Fehlern beim Würfeln“ haben, bei 24-Wort-Seeds absolut unbegründet ist und definitiv mehr schadet als sie nützt.

@mowtan hat eigentlich schon alles gesagt.

Ich bin aber immer eher auf der Seite, mich mehr vor dem Seedverlust als vor Angreifern zu schützen.

Deswegen fände ich 2/2 für mich nicht passend, verlierst du einen von Beiden Seeds, verlierst du die ganze Wallet. Wenn du schon auf Multisig gehst und mehrere „Schlüssel“ zu deiner Wallet brauchst, würde ich dafür sorgen, dass du einen Seed verlieren kannst, also zum Beispiel:

1 Seed von der Bitbox generiert

1 Seed gewürfelt

1 Seed zur hälfte von Hardwarewallet generiert, die Hälfte gewürfelt.

So kommst du noch an deine Bitcoin wenn du einen Seed verlierst. Ein massiver Fehler in dem Bitboxzufallsgenerator oder das Würfeln von 40 1ern hintereinander würde aber nur zu einem schlechten Seed führen, der nichts ausgeben könnte. Das könnte man theoretisch sogar mit einer einzigen Hardwarewallet machen.

Nur so eine Idee… Wie @mowtan sagt ist das sehr individuell, magst du mehr Sicherheit vor Hardwarewalletfehlern, vor physischem Diebstahl oder vor Seedverlust, ist das dann deine einzige Wallet, wo bewahrst du dein Backup auf, bist du schon 65 und deine Eltern hatten beide Demenz… für jeden ist ein anderes Setup wichtig.

Ich gebe dir in allem recht, möchte aber, wenn du erlaubst, kurz auf einen Satz eingehen, weil er ein gutes Anschauungsbeispiel dafür ist, wie irrational die weit verbreitete Würfelangst eigentlich ist:

Du setzt hier also so ein bisschen den Schweregrad dieser beiden Fehler gleich, tatsächlich ist es aber so, dass …

  • … die Möglichkeit eines massiven Softwarefehlers ein ernstzunehmendes Sicherheitsrisiko ist, wie wir diese Woche alle gelernt haben
  • … hingegen 40 Mal hintereinander eine 1 in einer sonst „normalen“ Würfelfolge immer noch weit über der Entropie eines perfekten 12-Wort-Seeds liegt

Das ist ein schönes Beispiel dafür, wie schwer es eigentlich ist, sich sogar nur theoretisch Würfelszenarien auszudenken, die den Seed unsicher machen, geschweige denn, dass so etwas beim Würfeln versehentlich passiert.

Vielen Dank für eure ausführlichen Antworten!

Das stimmt natürlich, zudem könnte man ja auch die „Doppel-Seeds“ zweimal an zwei verschiedenen Orten aufbewahren (So wie man es ja auch bei single sig tun sollte, falls der seed an einem Ort durch Einbruch gestohlen wird. (bringt dann natürlich nur mit zusätzlicher Passphrase etwas, wenn’s gestohlen wird).

Auf der anderen Seite wäre es natürlich eigentlich echt schade drum, sich die Einrichtung von Multi-Sig anzutun und dabei den großen Redundanz-Vorteil ungenutzt zu lassen (aber ja, darum geht’s ja letztlich in meinem Post).

Und es ist schon beinahe schwierig beim Würfeln zu verkacken? Ey ich bin so verpeilt, ich könnte z.B. 79 mal würfeln und würde denken „So hab die 99 voll“ oder ich trage nachher nicht die erwürfelten, sondern falsche Wörter bei der HW-Wallet ein oder oder oder… . Deshalb hab ich da echt’n bissl schiss vor. Aber die einzelnen Würfe werden ja sicher alle in einer Liste dokumentiert (ich hab mich zugegebenermaßen damit noch gar nicht wirklich beschäftigt, weil ich mir dachte „Ach brauchste gar nicht machen, bist eh zu verpeilt dafür“.

Ach das ginge auch? So’n Mix? Kass. Wäre das dann bei insgesamt 24 Wörtern in jedem Fall so sicher wie’n 12-Wort-Seed, der von einer intakten HW-Wallet generiert wurde, oder is das viel zu einfach gedacht?

Was mir übrigens noch eingefallen ist:

Was auch noch ein möglicher fail wäre: Ich würfel den seed selbst (und er ist perfekt random), ich setze damit korrekt die HW-Wallet auf, aber diese hat einen Code-Bug, der sagt „Nutze den selbst generierten Seed NICHT“ (wobei sowas bei open source ja eigentlich auffallen sollte).

Ja oder was ColdCard früher auch mal hatte: Manche Nutzer dachten sie würden TRNG+würfel machen, hatten aber nur würfel ausgewählt, und die haben dann 5-6 mal gewürfelt und die Wallet hat das dann auch zugelassen und einfach die wallet aus 5-6 mal würfeln erstellt.

Aaalter Falter !!! WTF

Langsam steigt wieder mein ETP-Drang :grin:

Bei den gängigen Methoden hast du einen ausgedruckten Zettel und schlägst deine Würfe dort direkt nach, um auf die Wörter zu kommen. Du musst gar nicht mitzählen, du würfelst einfach so lange, bis du deine Wörter voll hast. Aber sagen wir, du würdest es trotzdem irgendwie schaffen, mit nur 79 Würfen auf die volle Wortanzahl zu kommen. Dann wäre der resultierende Entropieverlust trotzdem vernachlässigbar.

Sagen wir, bei 90% der Wörter vertust du dich beim Nachschlagen und nimmst stattdessen das Wort eine Zeile über oder unter dem, das du eigentlich erwürfelt hast. Der resultierende Entropieverlust ist quasi null.

Bin gespannt, ob dir noch was einfällt, das wirklich einen Unterschied macht. Es ist wie gesagt ziemlich schwer, sich eine Würfelsituation mit relevantem Entropieverlust auszudenken.

Nein, du schlägst die Würfe direkt auf dem Zettel nach und notierst nur die Wörter, wie du es bei jeder anderen Methode auch machen würdest.

Das ist nicht zu einfach gedacht. Wenn du das Ganze total simpel angehst und einfach von einem 24-Wort HW-Seed 12 Wörter abschneidest und neu auswürfelst – oder vielleicht sogar (was wirklich dumm ist und eigentlich unbedingt vermieden werden sollte) deine 12 Lieblingswörter stattdessen aussuchst – kann das Ergebnis in keinem Fall unsicherer sein als ein 12-Wort HW-Seed. Einfach weil die 12 HW-Wörter ja immer noch da sind, und alles, was dazukommt, „Bonusentropie“ ist.

Als „Bug“ ist das unrealistisch, weil es eine in der Verwendung unmittelbar erkennbare Auswirkung hat. Du sagst da im Wesentlichen, die Seed-Eingabefunktion (ist ja egal, wo der Seed ursprünglich herkommt) funktioniert einfach überhaupt nicht und ignoriert den Seed. Sowas kann nicht nicht auffallen, egal ob open source oder nicht. Als Supply-Chain-Angriff wäre es aber denkbar.

Vielleicht sollte man allgemein besser davon sprechen, Seeds „ohne Software“ zu generieren als „durch würfeln“, damit Leute besser verstehen (nicht du, ich nehme nur dein Würfel-Beispiel zum Anlass), worum es wirklich geht: Nämlich nicht, dass die Würfelentropie so geil ist, sondern dass man garantieren will (und kann), dass im ganzen Ablauf kein unsichtbarer Faktor existiert, der die Entropie katastrophal aushebeln könnte.

Achso, ja das klingt machbar, zumal ich auch manchmal denke, dass ich vielleicht nur glaube viel zu verpeilt zu sein, es aber letztlich doch korrekt hinbekomme (ich bin der Typ, der fünf Mal hintereinander kontrolliert, ob die Herdplatten so wirklich, wirklich aus sind, bevor er in den Urlaub fährt und dan trotzdem noch’n Foto von den Schaltern macht :see_no_evil_monkey:

Achso, ich lasse die HW-Wallet nen 12-Wort-Seed erzeugen und packe dann meine gewürfelten 12 Wörter on top und komplettiere so zu nem 24-Wort-Seed. Ich dachte die HW-WALLET würde nen 24-Wort-Seed erzeugen, an dem ich dann nachträglich nochmal Wort für Wort rumdoktore.

Beim Specter DIY geht das easy, da kannst du jedes Bit flippen und siehst wie sich das Wort entsprechend ändert.

Ach das is doch so beim Mix der Seed-Generation mit „nachträglich an den einzelnen Worten was verändern“, anstatt 12 Wörter HW-WALLET+ 12 Wörter würfeln = 24 Wörter solider Mix (wobei man das so wahrscheinlich auch machen könnte (Stichwort „Bonusentropie“, wie mowtan sagte)

Wie auch immer meine Hoffnung war immer, dass wenn mein Bitbox-Seed jetzt schon seit längerer Zeit nicht gedrained worden ist, er wohl sicher zu sein scheint. Aber dem is ja wohl leider nicht sicher so, wie man ja nun bei der Coldcard gesehen hat.

So hab ich das in dem Beispiel jetzt nicht gemeint, aber ja, das ist alles dasselbe: 12 Wort-Seed erzeugen und mit Würfeln auf 24 auffüllen, oder von einem 24 Wort-Seed die letzten 12 wegschmeißen und neu erwürfeln, oder von mir aus 12 Seeds generieren und von jedem nur das erste Wort nehmen, was auch immer.

Das ist kein magisches Ritual, das man auf genau die richtige Art durchführen muss. Man kann hier vieles so machen, wie man es halt will, solange man nicht absichtlich oder grob fahrlässig den Zufall zerstört.

Das Internet tendiert dazu, dann mit so Korrekturen anzukommen wie „Aber Moment mal, wenn du von einem 12-Wort-Seed als Basis ausgehst, verlierst du Entropie wegen der checksum“ oder was auch immer. Lass dir da nichts einreden, alles egal sag ich dir.

@mowtan Eigentlich kann ich mir die Frage sparen, aber Du würdest auf jeden Fall würfeln, anstatt Dich auf die Seed-Generation durch eine Wallet zu verlassen?

Nein, das wollte ich nicht. Mir fällt kein Szenario ein, bei dem man das Würfeln so falsch machen kann :sweat_smile: Ich wollte nur sagen, man wäre für beide Fehler geschützt, weil das @RenHoek wichtig war.

Ja genau.

Wenn man die Wörter erraten möchte, sind 24 natürlich theoretisch viel sicherer als 12, aber beide sind praktisch unmöglich zu erraten und daher sind 12 in den allermeisten Fällen genug. Deswegen reicht für mich ein 24 Wörter single Sig, bei der ich 12 zufällige Wörter austausche und würfle.

Hat aber alles Vor und Nachteile.

Ich würde nicht die gesamte Entropie meiner cold storage der Software eines Herstellers anvertrauen. Es gibt einige Möglichkeiten, das nicht zu tun, und Würfeln ist eine davon. Es ist allerdings eine, die mir gut gefällt, weil sie, nachdem die Entropie mal generiert ist, keine zusätzliche, bleibende Komplexität in der Aufbewahrung hinterlässt.