Das Wichtigste in Kürze:

  • Mit einer Multisignature Wallet kann man die Sicherheit seiner Bitcoin nach individuellen Bedürfnissen verbessern
  • Aufgrund der Komplexität und Fehleranfälligkeit ist die Funktion für erfahrene Bitcoiner vorgesehen
  • Entscheidend ist die korrekte Verwaltung der Backups
  • Ein Mnemonic Split kann für Anfänger ein guter Kompromiss sein
  • Multisignature ist eine sehr mächtige Funktion und hat unzählige weitere Anwendungsfälle

Viele von euch 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.

Disclaimer:

Bitte beachtet, dass eine Multisignature Wallet nur etwas für fortgeschrittene Nutzer und nicht für jeden geeignet ist. Auch ohne Multisig sind eure Bitcoin mit einer Hardware Wallet ausreichend sicher geschützt. Dieser Beitrag dient dazu, sich über das Thema zu informieren, nicht um Werbung für die Funktion zu machen!

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 Sicherheit“ haben wollen, aber sich technisch nicht gut auskennen, ist das in meinen Augen die bessere und weniger fehleranfällige Option, anstatt sich direkt auf eine komplexere Multisig zu stürzen.

Was wir erreichen möchten, ist eine Aufteilung unserer Backups, um das Diebstahlrisiko zu senken. Im Fall eines Mnemonic Splits machen wir genau das was der Name (und das folgende Meme) schon sagt: Wir teilen unsere mnemonische Phrase, also die Wiederherstellungswörter, einfach auf!

Das müssen wir allerdings möglichst geschickt machen, um uns nicht unser eigenes Grab zu schaufeln. Es gibt meiner Meinung nach eigentlich nur eine sinnvolle Möglichkeit dafür:

Mit einer 2 von 3 Aufteilung (2/3) splitten wir die 24 Wörter so auf, dass auf jedem Backup 16 Wörter stehen. Natürlich so verteilt, dass immer zwei von drei Backups ausreichend sind, um alle 24 Wörter zu erhalten. Warum diese Aufteilung die beste ist wird weiter unten im Beitrag näher erläutert.

Die oft vorgeschlagene 2/2 oder 3/3 Aufteilung bringt das Problem mit sich, dass der Verlust eines einzelnen Backups automatisch zum Totalverlust führt, weshalb man eigentlich auf doppelte Backups angewiesen ist. Da man dann aber ohnehin bei 2/4 bzw. 3/6 Backups landet, kann man gleich die elegantere 2/3 Variante wählen oder direkt eine optionale Passphrase verwenden.

Hier mal beispielhaft, wie die drei Backups dann aussehen könnten (es gibt natürlich mehrere Möglichkeiten bei der Aufteilung):

Diese Vorlage könnt ihr hier downloaden und euch ausdrucken!

Wichtig!

Findet ein Angreifer eines eurer Backups (bei einem 2/3 Split) besitzt er 16 von 24 Wörtern. Das ist natürlich immernoch besser als alle auf einmal zu finden, allerdings darf man sich hier nicht zu sehr in Sicherheit wiegen.

Eine normale Mnemonic mit 24 Wörtern hat eine Entropie von 256 Bit, das bedeutet vereinfacht, dass man bis zu 2256 Mal raten muss, um die richtigen Wörter zu erraten. Das ist praktisch unmöglich.

Bei 8 fehlenden Wörtern (16/24) beträgt diese Entropie nur noch ungefähr 80 Bit, also muss man 280 mal raten. Das ist eine Zahl, die um ein Vielfaches (exponentiell) kleiner ist und damit auch weniger Sicherheit bedeutet.

Für den Anwendungszweck einen Angreifer davon abzuhalten innerhalb von Sekunden, mit dem Smartphone den kompletten Bitcoin Bestand abzuräumen, ist es aber dennoch vollkommen ausreichend. Des Weiteren ist der Rechenaufwand (= die Kosten) auch nur eine einzelne Mnemonic auf gefüllte Adressen zu überprüfen, vergleichsweise groß. Alleine um von den Wiederherstellungswörtern zum Seed Wert zu gelangen muss über 4000 Mal die Hashfunktion SHA-512 angewandt werden, von den Ableitungen bis zur Adresse mal abgesehen.

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 theoretisch möglich. In Zukunft, ausgehend von steigender Rechenleistung, wird dieser Angriff immer wahrscheinlicher und damit der hier empfohlene Mnemonic Split immer „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 in meinen Augen nicht.

In den meisten Fällen ist es deswegen besser, einfach eine optionale Passphrase zu wählen und somit ohne Entropieverlust ein 2/2 Setup zu haben. Vorausgesetzt natürlich, die gewählte Passphrase ist sicher genug.

Um dieses Thema besser zu verstehen, schau doch gerne im Blocktrainer Forum vorbei, dort kannst du mit mir und den anderen über genau dieses Thema diskutieren und Fragen stellen!

Was ist ein xpub?

Ich versuche dieses Thema ausführlich zu erklären, da es wichtig ist, um später beim Thema Backups alles zu verstehen. Diesen Teil kann man natürlich auch überspringen, wenn man schon Bescheid weiß.

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 abgeleitet wurde.

Einer dieser Schlüssel ist der xpub, der Extended Public Key, der 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 „nur“ die Privatsphäre des gesamten Accounts, da man mit allen Adressen auch alle Transaktionen nachvollziehen kann. Deswegen sollte man auch 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 BitBox App, 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.

Ein xpub sieht z.B. so aus, in diesem Fall ist er als zpub codiert, um direkt Native SegWit Adressen auszuspucken:

zpub6s9HD1CDDgaLyhfP5tvNMJCoSZh3BhUFmHSbSX5KisiiMJnNoRkixczwPd9Acm8Dod3g2w2NBhVoYF8LUkM9mwUN9oKsHdH7ZhTyA8YGReR

Multisig

Die Funktion einer Multisig ist zunächst ziemlich trivial: 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 eine gültige Signatur 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.

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.

Mögliche Anwendungsfälle:

Natürlich gibt es neben den unten genannten Anwendungsfällen noch weitere (z.B. Das Lightning Netzwerk, Smart Contracts, uvm.). Das würde allerdings den Rahmen sprengen – es soll in diesem Beitrag hauptsächlich um individuelle Wallet-Sicherheit gehen.

  • 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 immernoch 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.

Hier sind einige anschauliche Beispiele, wie eine m/n Multisig eingesetzt werden kann:

  • 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: Sichere 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 lässt.
  • 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)

Noch komplexer:

  • 1 oder 3/4: Der Hauptbesitzer der Wallet hat den vollen Zugriff, während die restlichen Personen 3/4 Schlüssel benötigen. Dies ist interessant, falls der Hauptbesitzer seinen Schlüssel verliert und mit Hilfe von z.B. Freunden oder Verwandschaft wiederherstellen möchte (oder um Vererbung nach dem Tod elegant zu lösen und für einen Familienstreit zu sorgen).

An dieser Stelle kann man seiner Fantasie freien Lauf lassen, ich wollte nur demonstrieren, dass es sich hier um eine extrem mächtige Funktion handelt, die Bitcoin in Zukunft in den unterschiedlichsten Anwendungsfällen nützlich machen <s>kann</s> wird.


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.

Lese-Tipp: Die versteckten Stolperfallen von Multisig Wallets

Backups

Der wahrscheinlich größte Stolperstein 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 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“.

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 könnte 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 sehen die drei Backups dann so aus:

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'

Es 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

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.

Die gängigen Optionen wie die BitBox App oder Ledger Live bringen uns hier nicht mehr weiter, wir sind auf umfangreichere Software angewiesen.

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 ich empfehle entweder das „klassische“ Electrum oder die relativ neue Sparrow Wallet. Beide sind unter anderem mit der von Blocktrainer.de empfohlenen BitBox02 kompatibel.

Eine sehr ausführliche englische Anleitung von Stadicus (Mitarbeiter bei Shift Crypto), wie man mit Electrum und der BitBox02 eine Multisig Wallet aufsetzt, findest du hier: BitBox Blog – 14 Sep 20

Ich persönlich finde die Sparrow Wallet deutlich ü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).

Auch mit der Smartphone-Wallet BlueWallet ist ein relativ einfaches Multisig Setup möglich, z.B. mit mehreren Endgeräten, falls man auf eine Hardware Wallet verzichten möchte. Dazu gibt es eine ausführliche Anleitung auf BTC21.

Taproot

Pünktlich zur Blockhöhe 709632 wurde das Taproot Update aktiviert, und damit auch viele neue Funktionen für Multisig Transaktionen. Unter anderem hat man mit den neuen P2TR-Adressen deutlich mehr Privatsphäre, was Inputs von Multisig Transaktionen angeht, da diese von außen jetzt aussehen wie normale Transaktionen. Des Weiteren verbrauchen solche Transaktionen deutlich weniger Speicherplatz in ihrem Block, sind also günstiger.

Für Multisig Nutzer sind die neuen Adressen also sehr atttraktiv, genauer möchte ich darauf jetzt nicht eingehen, das würde wieder den Rahmen sprengen.

Eventuell ist es also sinnvoll auf die Implementierung von Taproot Adressen in den entsprechenden Software-Wallets zu warten, um direkt auf den neuen Adressen die neue Wallet einzurichten - dann muss man später nicht umziehen.

Mehr Informationen zu Taproot findest du hier oder auf dem Blocktrainer YouTube-Kanal: