Von Patrick,
Dezentralschweiz.ch 30.11.2024
Liana, die besondere Multisig Wallet
Was ist Multisig? Normalerweise besteht deine Wallet aus 12 oder 24 Wörtern. Wer im Besitz der Wörter, auch Seed genannt ist, kann die Bitcoin ausgeben. Es gibt aber die Möglichkeit Wallets zu erstellen, bei denen mehrere Schlüssel benötigt werden, um eine Transaktion zu machen. Das bekannteste dürfte das 2/3Multisig sein.
Das bedeutet, du erstellt eine Wallet mit 3 Schlüsseln. Idealerweise mit 3 verschiedenen Hardwarewallet Herstellern. Um die Bitcoin ausgeben zu können, musst du die Transaktion mit zwei Schlüsseln signieren, also unterschreiben. Das kann gerade für grössere Beträge oder Unternehmen sinnvoll sein, um sich gegen verschiedene Gefahren abzusichern. Bisher war Multisig relativ kompliziert und aufwändig. Es gibt zwar schon Möglichkeiten, Multisig auch als nicht übermässig technisch versierter Nutzer aufzusetzen, aber die Liana Wallet bringt die Nutzerfreundlichkeit seit Version 8.0 auf ein ganz neues Level. Lianas grosser Vorteil: Die Möglichkeit, Bitcoin zu recovern.
Liana
Was macht die Liana Wallet so besonders? Wie oben beschrieben braucht man bei einer klassischen Multisig 2 von 3 privaten Schlüsseln aber immer alle 3 öffentlichen (public) Schlüssel. Geht ein privater Schlüssel verloren, braucht man unbedingt noch alle 3 xPubs oder den Wallet Descriptor, um die Bitcoin zu retten. Das ist auch bei Liana nicht anders. Aber:
Liana bringt eine interessante neue Möglichkeit ins Spiel: Du kannst entscheiden, wie sich die Ausgabebedingungen ändern, wenn eine gewisse Zeit abgelaufen ist. Das heisst, im Beispiel vom 2/3 Multisig könntest du festlegen, dass nach Ablauf einer gewissen Zeit die Bitcoin auch nur mit einer Signatur statt mit Zweien ausgegeben werden können. Das kann sehr interessant sein, wenn du dir überlegst, wie du deine Bitcoin vererben willst, falls dir etwas zustösst. Um die Bitcoin zu recovern könntest du zB auch den Key deines Erbens verwenden.(Denn dafür brauchst du seinen Private Key nicht).Den Möglichkeiten sind keine Grenzen gesetzt.
Um zu verhindern, dass der Recovery Pfad gültig wird (Damit ist gemeint, dass aus der 2/3 eine 1/3 Wallet wird) müssen die einzelnen Bitcoin UTXOs innerhalb der Sperrfrist mit einer Transaktion wieder an dich selber gesendet werden. Die Sperrfrist beginnt, sobald deine Transaktion gemined wurde und die Bitcoin in der Liana Wallet angekommen sind.Läuft die Sperrfrist aus, kommt das Recovery Szenario ins Spiel. Die Sperrfrist gibst du anhand der Anzahl Blöcke im Bitcoin Netzwerk an. Die maximale Sperrfrist beträgt 65`535 Blöcke, was ungefähr 1 Jahr und ca. 3 Monate sind.
Im nächsten Abschnitt setzen wir zusammen eine 2 von 3 Multisig auf, mit der Bedingung, dass alle 3 privaten Schlüssel nach Ablauf der Sperrfrist die Bitcoin auch alleine ausgeben können.
Die Wallet findest du hier: https://wizardsardine.com/liana/
Doch zuerst klären wir ein paar Begriffe:
Begriffsdefinition
- Primary Key: Primary Key steht für Primäre Schlüssel. Der primäre Schlüssel ist zu jeder Zeit fähig, zu den festgelegten Bedingungen eine Transaktion zu tätigen. Sie können also während und nach der Sperrzeit verwendet werden. Zu beachten gilt, dass du in der Sperrzeit immer die nötigen primären Schlüssel benötigst, nur einer alleine reicht also nicht.
- Inheritance Key: Inheritance steht für Nachlass. Dieser Schlüssel kann verwendet werden, wenn die Sperrzeit abgelaufen ist.
- Recovery Key: Ist der gleiche wie der Inheritance Key, und ist dafür da, Bitcoin die aus der Sperrzeit gefallen sind, zu bergen.
- Locktime: Locktime heisst Sperrzeit und damit ist die Zeit gemeint, in der die Coins nur über die Primären Schlüssel ausgegeben werden können. Ist die Sperrzeit abgelaufen, können die Coin mit dem oder den Nachlass Schlüsseln, entsprechend dem Setup, ausgegeben werden.
- xPub: Der xPub oder Master Public Key wird aus dem privaten Schlüssel abgeleitet, mit ihm kannst du keine Transaktion signieren. Aus dem Xpub werden deine Empfangsadressen abgeleitet. Das heisst, sollte der xPub öffentlich werden, können dritte Personen all deine Bitcoin-Bestände und Transaktionen einsehen, jedoch zum Glück keine Transaktionen signieren. Das heisst, wenn der xPub öffentlich wird, ist dies immer ein Verlust der Privatsphäre, nicht aber deiner Funds.
Liana Wallet aufsetzen
Hier setzen wir folgendes Szenario auf:2/3 Multisig, läuft die Sperrfrist aus, ist es jedem einzelnen privaten Schlüssel möglich, die Coins alleine auszugeben.Dazu brauchen wir 3 verschiedene Hardware Wallets, im Optimalfall von unterschiedlichen Anbietern. Theoretisch ist es auch möglich die Wallet mit einer einzigen Hardwarewallet aber mit drei verschiedenen Seeds einzurichten. Los geht’s:
Wähle «Create a new Wallet»
Wähle deinen Wallet Typ:
- Simple Inheritance: Diese Funktion ist recht simpel: Der primäre Schlüssel kann die Coins immer bewegen, der Nachlass Schlüssel erst, wenn die Frist abgelaufen ist.
- Expanding Multisig Wallet: Auf diese Version werden wir genauer eingehen und eine Beispiel Wallet aufsetzen.Kurz gesagt, du kannst beliebig viele Primäre Schlüssel hinzufügen und beliebig viele Nachlass Schlüssel.
- Build your Own: Hier kannst du deine Multisig Wallet komplett frei nach deinen Bedürfnissen zusammenstellen.
Überlege dir gut, wie du dein Setup einstellst. Gegen welche Gefahren willst du dich absichern? Nur gegen dich selbst oder auch gegen Einbruch oder Umweltkatastrophen? Welches Setup für dich passend und das richtige ist, kannst nur du selber beantworten. Wenn du dich festgelegt hast geht es los mit dem Einrichten: PS, es ist einfacher als es du dir vorstellst.
Für unser Beispiel nehmen wir die Expanding Multisig Wallet. Unter Advanced Settings kannst du Taproot auswählen, wenn du das möchtest. Dadurch sparst du Transaktionsgebühren, und das neuste Update der BitBox02, SpecterDIY, Ledger und Coldcard unterstützen dies bereits.
Standardmässig ist eine primäre 2/2 Multisig mit einer 2/3 Recovery Option gesetzt. Um die Bedingungen für unser Test Setup zu ändern kannst du ganz unten “Costumize” auswählen.Bei der primary spending option fügen wir mit «Add Key» einen Schlüssel hinzu. Dann ändern wir den Threshold von 3/3 auf 2/3.
Und gleich weiter zu Recovery option #1. Hier sind standardmässig schon 3 Keys eingestellt. Wir ändern nur den Threshold von 2/3 auf 1/3. Jetzt sollte dort «1 out of 3 Keys» stehen.
In der Mitte stellst du die Sperrzeit ein. Klicke auf die Schaltfläche «Available after inactivity of». Du entscheidest jetzt, wie lange die empfangenen Bitcoin durch eine 2/3 Multisig geschützt sind.
Zum Test stelle ich eine kurze Locktime von 10 Blöcken ein. Das entspricht aktuell 1 Stunde und 40 Minuten. Achtung, die Locktime kannst du im Nachhinein nicht verändern!
Als nächstes lesen wir die xPubs aus der Hardwarewallet aus. Klicke beim ersten Primären Schlüssel auf «Set». Damit Liana deinen xPub auslesen kann, muss die Hardwarewallet entsperrt sein, und bei Ledger die Bitcoin Anwendung geöffnet sein. Gib der Wallet einen gut einprägsamen Namen, damit es später nicht zu Verwechslungen kommt.
Am besten notierst du dir irgendwo den Fingerprint der Wallet zusammen mit einem eindeutigen Namen. Ansonsten kann es sehr mühsam werden, wenn du mit einem bestimmten Seed signieren musst, aber du ausprobieren musst, bis du den richtigen findest. Der Wallet Fingerprint sind in diesem Beispiel die 8 Zeichen nachdem #: 5b24c9e1.
In meinem Beispiel Setup benutze ich ja für den Primären und den Recovery Zugang die gleichen Seeds. Darum lese ich die Hardware Wallet auch direkt bei Recovery Option 1 ein. Das muss übrigens nicht so sein, fürs Recovern kannst du, wie bereits oben erwähnt, komplett andere Seeds verwenden als für die Primäre Option.
The Descriptor: Achtung, jetzt bitte aufpassen! Im nächsten Schritt müsst ihr den Descriptor kopieren und irgendwo sicher speichern. WENN DU EINEN SEED VERLIERST KOMMST DU OHNE DESCRIPTOR NICHT MEHR AN DEINE BITCOIN! Es ist also unerlässlich den Descriptor sicher, am besten auch geografisch verteilt, zu speichern! Du kannst den Descriptor zB auch mit einem QR-Code Generator als QR-Code ausdrucken und zu den Backups legen. Da der Descriptor aber alle verwendeten xPubs enthält sei aber vorsichtig damit, da sonst deine Privatsphäre in Gefahr kommen kann. Verwende also nicht den erstbesten den du im Internet findest! Manche Hardware Signer können heute auch schon Wallet Descriptoren als QR-Code anzeigen.
Im oberen Bild findest du die Wallet Policy noch einmal zusammengefasst.
Hast du den Descriptor sicher gespeichert? Wenn ja, sehr gut, dann weiter.
Als nächstes musst du den Descriptor auf dein Hardware Wallet schreiben. Theoretisch genügt es beim aufsetzen, wenn du das auf einer Wallet machst, aber wenn du den Descriptor direkt auf all deine Hardware Wallets schreibst, weisst du sicher, dass all deine Wallets den Descriptor lesen und speichern können. Sollte dein Hardware Wallet kaputt gehen, ist das kein Problem, du kannst den Descriptor jeder Zeit wieder auf ein neues Hardware Wallet schreiben.
Als nächstes verbinden wir die Wallet mit unserer eigenen Node. Dazu wählst du «Use your own Node». Jetzt kannst auswählen ob du schon eine Node hast oder nicht. Falls nicht, hast du die Möglichkeit eine Pruned Node zu installieren, aber das dauert seine Zeit. Bei einer guten Internetleitung, kannst du hier mit 2 Tagen rechnen und du benötigst ca. 30GB Speicherplatz. Da wir ja (hoffentlich) alle eine eigene Node betreiben, wählen wir «I already have a Node». Wer zB einen Raspiblitz mit Electrum hat wählt Electrum aus und gibt die IP:Port an, zB 192.168.1.111:50001.
Gratuliere, die Wallet ist eingerichtet!
Sats empfangen
Ich gehe jetzt auf receive und schicke mir etwas Bitcoin auf die Wallet. Sobald die Transaktion von den Minern aufgenommen und bestätigt wurde, beginnt die Sperrzeit zu laufen. Will ich in dieser Zeit die Bitcoin versenden, brauche ich also 2 von meinen 3 Primären schlüsseln, ist die Locktime abgelaufen genügt in unserem Beispiel Setup einer der 3 Keys um das recovern durchzuführen.
Locktime erneuern
Wie schon mehrfach erwähnt, hat das Setup eine Sperrzeit. Sollte sich eine UTXO dem Ende der Locktime nähern, erscheint in der Home Ansicht eine Warnung («Recovery path is or will soon be avaiable for 1 coin(s).»), dass der erste Recovery Pfad bald gültig wird. Um den Primären Pfad zu erneuern, musst du auf den Reiter «Coins» und auf die entsprechende UTXO klicken. Das Feld erweitert sich und unten findest du «Refresh Coins». (Hast du den Descriptor noch nicht auf alle benötigten Hardware Wallets geladen musst du das jetzt unter «Settings», «Wallet», «Register on Hardware Wallet» tun)
Jetzt siehst du eine Übersicht, was passieren wird.-Klicke auf Sign und schliesse deine erste Hardware Wallet an und Signiere die Transaktion auf deiner Hardware Wallet-Mache das gleiche mit allen benötigten Wallets-In einem realen Szenario könntest du hier auch die Partially Signed Bitcoin Transaction (PSBT) aus Liana kopieren und bspw. über Signal an einen Co-Signer an einem anderen PC schicken oder über eine SD Karte in ein airgapped Hardware Wallet wie die Coldcard oder den Specter übertragen.
Hast du mit all deinen benötigten Schlüsseln signiert, steht bei «Status» Ready! Drückst du jetzt auf «Broadcast» wird die Transaktion über deine Node ans Netzwerk geschickt und du musst nur noch auf die Miner warten.
Recovery Szenario
Ist dein primäres Szenario aus der Locktime gefallen, kommt dein Recovery Setup ins Spiel.Wenn du wieder auf «Coins» gehst, wird bei der entsprechenden UTXO «Expired» stehen.Du kannst entweder wie vorhin die Bitcoin mit «refresh Coins» erneut sperren oder mit dem Recovery Szenario weitermachen. Angenommen du hast einen Key verloren, musst du das Recovery Szenario durchspielen. Und das geht folgendermassen:
- Gehe unter «Settings» in die einstellungen-Klicke auf «Recovery»
- Wähle die UTXO aus. Gib oben die Zieladresse der Bitcoin ein-Füge eine Gebühr in Sats/vbyte ein
- Next
- Da jetzt nur eine Signatur verlangt wird, nimm dein Hardware Wallet und signiere die Transaktion.
- Unter Status sollte jetzt «Ready» stehen.
- Klicke auf «Broadcast» und deine Bitcoin werden versendet.
Das war eine kurze Einführung in die Liana Wallet. Am besten probierst es einfach aus und du wirst schnell merken, es ist einfacher als du denkst!
Download: https://wizardsardine.com/liana/
Github: https://github.com/wizardsardine
Viel Spass und keep stacking sats!
V4V: patrick@muota.li
X: Helv_btc
Nostr: npub10pk0efenxpj2lp7aagux8r6aqpajh2e9t422yckkj9zqfzve989ste8fhx