Info

Das Wichtigste in Kürze:

  • Mit einer Multisig-Wallet kann die Sicherheit der eigenen Bitcoin sehr individuell verbessert werden
  • Aufgrund der Komplexität und Fehleranfälligkeit ist die Funktion eher für Fortgeschrittene vorgesehen
  • Entscheidend ist die korrekte Verwaltung der Backups sowie die Verifizierung der öffentlichen Schlüssel
  • Ein analoger Mnemonic Split kann für Anfänger ein guter Kompromiss sein
  • Multisig ist eine sehr mächtige Funktion und hat unzählige Anwendungsfälle

Viele haben sicherlich schon einmal von einer sogenannten „Multisig-Wallet" gehört. Doch wie funktioniert das eigentlich und was muss man beachten? Und was ist eigentlich ein sogenannter Mnemonic Split? Dieser Beitrag liefert die Antworten.

Info

Disclaimer: Bitte beachtet, dass eine Multisig-Wallet nicht für jeden geeignet ist und Risiken mit sich bringt. Auch ohne Multisig sind eure Bitcoin mit einer Hardware-Wallet ausreichend sicher geschützt. Dieser Beitrag will lediglich über das Thema informieren.

Der Mnemonic Split

Bevor wir uns mit dem eigentlichen Thema beschäftigen, schauen wir uns zunächst den „kleinen Bruder“ der Multisig an. Gerade für Anfänger, die unbedingt mehr Redundanz haben wollen, aber sich technisch nicht gut auskennen, kann ein analoges Aufteilen des Backups eine deutlich weniger fehleranfällige Option sein, anstatt sich direkt auf die Komplexität einer Multisig-Wallet einzulassen.

Was wir erreichen möchten, ist eine Aufteilung unserer Backups, um das Diebstahlrisiko z.B. im Fall eines Einbruches zu senken. Im Fall eines Mnemonic Splits machen wir genau das was der Name schon sagt: Wir teilen unsere Wiederherstellungswörter, also die “Mnemonic” einfach auf!

Das sollte man allerdings möglichst geschickt machen…

2 von 3

Mit einer 2 von 3 Aufteilung (2/3) teilen wir 24 Wörter so auf, dass auf jedem Backup 16 Wörter stehen, also jeweils 8 Wörter fehlen. Die Aufteilung wird so gewählt, dass immer zwei von drei Backups ausreichend sind, um alle 24 Wörter zu erhalten. Warum diese Aufteilung besonders sinnvoll ist, klären wir gleich.

Die oft vorgeschlagene 2/2 oder 3/3 Aufteilung, also das einfache Halbieren wie im Bild mit der Schere, bringt das Problem mit sich, dass der Verlust eines einzelnen Backups automatisch zum Totalverlust führt. Die eine Hälfte bringt einem schließlich nichts ohne die Andere. Daher ist man eigentlich auf doppelte Backups angewiesen, um das Verlustrisiko nicht zu erhöhen. Da man dann aber ohnehin bei 2/4 bzw. 3/6 Backups landet, kann gleich die elegantere 2/3 Variante gewählt werden oder einfach eine optionale Passphrase verwendet werden.

Hier eine beispielhafte Aufteilung der Backups (es gibt natürlich noch andere Möglichkeiten bei der Aufteilung):

Findet bei besagter 2/3 Aufteilung ein Angreifer eines der Backups kennt er 16 von 24 Wörtern. Das ist natürlich immer noch besser als alle auf einmal zu finden, allerdings geht man dennoch einen Kompromiss ein. Acht Wörter zu erraten ist schließlich einfacher als die vollen 24, wie es bei einer Multisig-Wallet der Fall wäre.

Bei 8 fehlenden Wörtern beträgt die Entropie nur noch ungefähr 80 Bit, also muss ungefähr 280 mal geraten. Das ist eine Zahl, die um ein Vielfaches kleiner ist als bei den vollen 24 Wörtern mit 256 Bit Entropie und damit auch weniger Sicherheit bedeutet. 

Für den Anwendungszweck einen Einbrecher davon abzuhalten innerhalb von Sekunden mit dem Smartphone die eigene Wallet leerzuräumen ist es aber dennoch vollkommen ausreichend.

Info

Hinweis: Es ist zwar heute für einen durchschnittlichen Angreifer noch sehr schwer und unpraktikabel diese 8 Wörter zu erraten, aber es ist dennoch nicht unmöglich. In Zukunft, ausgehend von steigender Rechenleistung, wird dieser Angriff immer effizienter und damit auch der hier empfohlene Mnemonic Split zunehmend unsicherer. Natürlich ist selbst das immer noch besser als alle 24 Wörter auf ein Backup zu schreiben – 80 Bit Entropie sind besser als 0 Bit – aber eine wirklich langfristige Lösung ist es wahrscheinlich nicht.

Was ist eigentlich ein xpub?

Aus unserer Mnemonic (den 12 oder 24 Wörtern) können wir den Seed und damit auch alle „darunter“ liegenden Schlüssel ableiten. Aus jedem Private Key kann ein Public Key abgeleitet, und aus diesem wiederum eine Adresse berechnet werden. Man benötigt, um eine einzelne Adresse zu generieren, also nur den entsprechenden Public Key, keinen Private Key.

Um also alle Adressen einer Wallet zu kennen bzw. um neue Adressen generieren zu können müssen wir auch alle Public Keys, also alle öffentlichen Schlüssel kennen. Die einzelnen Public Keys der Adressen stehen im Ableitungspfad (Derivation Path) ganz am Ende. Darüber liegen “mächtigere” Schlüssel, aus denen die Public Keys der Adressen abgeleitet wurden.

Einer dieser Schlüssel ist der xpub, der Extended Public Key oder auch erweiterte öffentliche Schlüssel. Mit ihm ist es möglich alle öffentlichen Schlüssel und damit auch alle Adressen eines Accounts abzuleiten, wie ein Generalschlüssel in einem Wohngebäude.

Allerdings kann man mit diesem Schlüssel natürlich nur öffentliche Adressen ableiten, es besteht also kein Risiko etwas zu verlieren, da man mit dem xpub keinen Zugriff auf private Schlüssel erhält. Am xpub hängt deshalb auch nur die Privatsphäre des gesamten Accounts, da man mit allen Adressen auch alle Transaktionen und Bestände nachvollziehen kann. Deswegen sollte man trotzdem nicht leichtsinnig mit ihm umgehen.

Man kann den xpub auch auf dem Smartphone in Software (z.B. BlueWallet) als sogenannte watch-only Wallet importieren, um immer Zugriff auf Adressen und den Kontostand zu haben. Wenn man seine Hardware-Wallet mit der BitBoxApp, Ledger Live oder Electrum verwendet, gibt die Hardware auch ganz automatisch den xpub an die Software auf dem Rechner weiter, damit diese eure Transaktionen und Adressen überhaupt anzeigen kann.

Multisig

Die Funktion einer Multisig ist zunächst gar nicht so kompliziert: Um eine gültige Transaktion zu erstellen brauchen wir nicht, wie bisher, nur eine Signatur mit dem privaten Schlüssel der Adresse, sondern mehrere Signaturen mit mehreren privaten Schlüsseln.

Wir führen also eine Mehrfaktorauthentifizierung über die Signaturen ein. Die Idee ist, dass jede Signatur von einem anderen Seed abhängig ist, also von anderen Wiederherstellungswörtern und wir damit mehrere Backups benötigen, um an unsere Bitcoin zu kommen – oder besser ausgedrückt: um an alle benötigten Private Keys für die gültigen Signaturen zu kommen.

Dabei ist es völlig egal, wie die unterschiedlichen Seeds generiert wurden, also ob mit einer Hardware Wallet, in einfacher Software oder mit dem Würfel. Die Schlüssel sind untereinander nicht miteinander verknüpft oder voneinander abhängig, sondern nur die Adressen. Das ist ein super Sicherheitsvorteil, den wir ausnutzen können, z.B. durch die Verwendung unterschiedlicher Hardware-Wallets.

Die Besonderheit ist, dass wir die Anzahl der Schlüssel um Adressen zu generieren (n) und die Anzahl benötigter Schlüssel für eine Signatur (m) frei wählen können. Wir brauchen also m von n (m/n) Schlüssel bzw. Backups, um Zugang zu unseren Bitcoin zu erlangen. Typischerweise wählt man ein Setup mit zwei von drei Schlüsseln (2/3), also werden von insgesamt drei Schlüsseln nur zwei benötigt, um eine Transaktion zu unterschreiben, allerdings alle drei, um die entsprechenden Adressen zu generieren.

  • Jemand besitzt alle n Schlüssel, generiert diese aber auf unterschiedlicher Hardware, um einen „single point of failure“ auszuschließen.
  • Jemand besitzt alle n Schlüssel, lagert diese aber an unterschiedlichen Orten, die nicht voneinander abhängig sind, um das Diebstahlrisiko stark zu reduzieren. Ein Angreifer muss m Schlüssel finden und eure Adressen kennen, um den Diebstahl durchzuführen.
  • Alle Schlüssel sind auf n Personen verteilt, beispielsweise um bei einem Familienaccount sicherzustellen, dass ausreichend viele Mitglieder der Familie (m) mit einer Transaktion einverstanden sind.

Der größte Vorteil einer m/n Aufteilung gegenüber einer einfachen n/n Aufteilung ist trivial: Verlieren wir bei einer 2/3 Aufteilung ein Backup (z.B. durch Diebstahl, Naturgewalten oder sogar Beschlagnahmung), haben wir immer noch zwei Backups, mit denen wir ohne Probleme Zugang zu unserer Wallet haben. Wir schlagen also einen Kompromiss zwischen dem Vorteil der Aufteilung der Backups und dem Nachteil des damit verbundenen Verlustrisikos.

Beispiele

  • 2/2: Sparaccount zwischen Ehepartnern, beide müssen sich über eine Transaktion einig sein, da beide Schlüssel benötigt werden.
  • 2/2: Lightning Netzwerk: Zwei Personen eröffnen einen Channel und sichern durch die Multisig Transaktion ihre Bitcoin on-chain ab.
  • 2/2: Sicherere Lösung für Anbieter von Hot-Wallets. Beispiel hierfür ist die Green Wallet von Blockstream, bei der einer von zwei Schlüsseln bei Blockstream verwahrt wird und der Nutzer über 2FA (Zweifaktorauthentifizierung) eine Transaktion unterschreiben lassen kann.
  • 2/3: Sparaccount von Eltern für das Kind, beide Eltern müssen sich über eine Transaktion einig sein, das Kind muss sich, sobald es dazu in der Lage ist, aber nur mit einem Elternteil über eine Transaktion einig sein.
  • 2/3: Sichere cold-storage für einen einzelnen Nutzer mit Backups an verschiedenen Orten (Unser oben erklärter Anwendungsfall)

Was die Komplexität betrifft, gibt es kaum Grenzen und man kann der eigenen Fantasie freien lauf lassen, wie die eigenen Bitcoin gesichert werden sollen und an welche Ausgabebedingungen man sie knüpfen möchte.

 

Einhergehende Risiken

Zurück zu unserem Anwendungsfall. Grundsätzlich gilt: Sicherheit kostet!

Auch wenn uns Mehrfaktorauthentifizierung zunächst mehr Sicherheit bietet, kombinieren wir gleichzeitig die Kosten und Nachteile aller Faktoren. Das gilt neben Multisig genauso für den oben erklärten Mnemonic Split, aber auch für sonstige Sicherheitsfunktionen wie der optionalen Passphrase.

Konkret im Fall einer m/n Aufteilung der Backups (egal ob Multsig oder Split) bedeutet dies:

  • Erhöhtes Verlustrisiko durch die Aufteilung auf verschiedene Backups und damit einhergehend verschiedene Orte. Fallen mehr als n - m Backups bzw. Orte aus, führt dies zum Totalverlust.
  • Erhöhtes Verlustrisiko durch die Komplexität und Fehleranfälligkeit. Im Fall der Multisig ist auch die Benutzung selbst deutlich komplexer und schränkt die Praktikabilität zusätzlich ein.
  • Je mehr Backups n, desto höher die Komplexität und Fehleranfälligkeit (und damit das Verlustrisiko).
  • Verlust eines einzigen Backups führt zum Verlust der Adressen, da wir alle n xpubs bzw. alle n Master Public Keys brauchen, um Adressen zu generieren. Hat man keinen Zugang mehr zu seinen Adressen bzw. seinen UTXO kann man trotz ausreichender Schlüsselanzahl keine Transaktion erstellen. Im nächsten Abschnitt schauen wir uns dieses Risiko genauer an und minimieren es.

Backups

Einer der größten Stolpersteine beim Einrichten einer Multisig ist das Verwalten der Backups. Wir schauen uns das mal am Beispiel der klassischen 2/3 Multisig an:

Während man für eine gültige Signatur nur zwei der drei Schlüssel benötigt werden die Adressen trotzdem aus allen drei Schlüsseln abgeleitet. Das bedeutet: Wenn man ausschließlich zwei Backups hat kann man seine Bitcoin nicht wiederherstellen, auch wenn man theoretisch eine Transaktion unterschreiben kann. Letzteres bringt einem nämlich nichts, wenn man die eigenen Adressen bzw. Public Keys nicht kennt.

Deswegen: Auf jedem Backup müssen stets alle drei Extended Public Keys stehen! Natürlich hat man im Normalfall Zugang zur Software, in der sowieso alle drei xpubs hinterlegt sind, aber bei Backups geht es ja nunmal nicht um „den Normalfall“, sondern um den Notfall.

Jetzt könnte man den Einwand bringen, dass man durch das Aufschreiben aller drei xpubs auf einem Backup Privatsphäre verliert. Das ist richtig, findet jemand ein einzelnes Backup, kann er den Besitz und alle Transaktionen nachvollziehen (auch wenn er keinen Zugriff hat). Gerade für Backups die bei einem Verwandten oder einem Freund liegen könnte dieses Argument relevant sein.

Deshalb: Man kann die xpubs, genau wie die mnemonischen Phrasen, ebenfalls 2/3 auf die Backups aufteilen, sodass man mit 2/3 Backups immer 3/3 xpubs hat, aber mit 1/3 Backups nur 2/3 xpubs. Außerdem sollte man auf jedem Backup den verwendeten Derivation Path sorgfältig notieren, dieser könnte zum Beispiel so aussehen: m/48'/0'/0'/2'

Konkret würden die drei Backups in diesem Beispiel dann so aussehen:

Backup 1 Backup 2 Backup 3
Mnemonic 1 Mnemonic 2 Mnemonic 3
xpub 3 xpub 1 xpub 2
m/48'/0'/0'/2' m/48'/0'/0'/2' m/48'/0'/0'/2'

So muss immer nur ein xpub pro Backup notiert werden, da aus der Mnemonic automatisch auch der entsprechende xpub folgt. Natürlich nur, wenn das Thema Privatsphäre ein relevantes Risiko darstellt, denn ansonsten schreibt man einfach immer alle drei auf.

Überprüft die xpubs vor dem Sichern zuerst auf dem Display eurer Hardware-Wallet. Wenn ihr von Hand notiert, überprüft anschließend die xpubs nochmal auf Richtigkeit, indem ihr versucht eine watch-only Wallet mit den drei notierten xpubs zu erstellen. Ansonsten ist es kein Problem, die xpubs (auch mit QR-Code) einfach auszudrucken.

Software: Sparrow, Electrum & Co.

Wenn man sich dazu entschlossen hat eine eigene Multisig-Wallet aufzusetzen, stellt sich natürlich die Frage, mit Hilfe welcher Software man das am besten umsetzt. Begleitsoftware von Hardware-Wallets wie die BitBoxApp oder Ledger Live bringen uns hier nicht mehr weiter.

Bitte fahrt hier nur fort, wenn ihr euch gut auskennt und das Thema sehr gut verstanden habt. Es gibt viele Stellen, an denen man einen Fehler machen kann.

Natürlich gibt es hier noch viele weitere Optionen, aber gängige Empfehlungen sind z.B. das „klassische“ Electrum oder die etwas modernere Sparrow Wallet. Beide sind unter anderem mit der von Blocktrainer.de empfohlenen BitBox02 und vielen weiteren Hardware-Wallets kompatibel.

Die Sparrow Wallet ist unserer Meinung nach etwas übersichtlicher, schöner und damit auch anfängerfreundlicher aufgebaut, vor allem wenn es um Multisig Wallets geht. Beim Erstellen einer neuen Wallet wählt man oben zunächst „Multi Signature“ und kann dann Einstellungen wie die Anzahl der Schlüssel (rot markiert), die gewünschten Adressen (grün) und die Einrichtung der n Schlüssel vornehmen (blau).

Sebastian

Über den Autor: Sebastian

Sebastian ist Informatikstudent und seit 2020 von der Funktionsweise und den technischen Details des Bitcoin-Netzwerks fasziniert. Mit Schwerpunkten in Kryptografie und IT-Sicherheit interessiert er sich vor allem für Hardware-Wallets und die sichere Selbstverwahrung von Bitcoin.

Artikel des Autors

Kommentare aus unserem Forum