Skip to content

Clarify how multisig is used (with particular focus on paper wallet) #101

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -273,6 +273,7 @@ wordlist
wsh
www
xpub
xpubs
yml
youtube
ziploc
Expand Down
23 changes: 23 additions & 0 deletions _pages/how-it-works.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
title: How it Works
no_advanced_link: true
---

This guide walks you through the creation of a multisig "wallet" with a recommended 2-of-3 quorum. The below outline pertains to this recommended 2-of-3 setup. One of the wallets is a "paper wallet," and only used as a "watch only" wallet and for emergency backup.

Functionally, once your multisig is set up, you will need access to 2 of the 3 wallets (the two hardware wallets) in order to spend funds through the coordination software (here we recommend Specter Desktop) that orchestrates the multisig setup. You will not need any of the hardware wallets to _receive_ funds, as Specter keeps the extended public keys (xpubs) associated with each wallet, allowing it to generate unique receive addresses without the ability to send funds unilaterally.

The receive flow does not require the presence of any hardware device apart from the computer running Specter Desktop, and because the _private keys_ are only on the hardware device, loss or theft of the computer would only compromise the privacy of your receive addresses -- not give the ability to send your coins.

Sending coins, instead, requires signing by 2 of the 3 devices in the quorum -- the two "hardware" wallets, at least so long as the paper wallet remains on paper.

The spending flow works as follows. You will:

1. Use Specter to generate an unsigned send transaction (including amount, fees, and potential change address).
1. Partially sign the transaction with one of your hardware devices, exporting the partially-signed transaction using a QR code or microSD card.
1. Finish signing with the other hardware wallet.
1. Broadcast ("send") the now fully signed transaction using Specter Desktop.

Once you have generated your three "devices" (including the paper wallet), be sure to store them in separate secure locations. Because one device/seed phrase is insufficient to spend the funds, you might give a copy of the backup keys (for example, the "paper wallet") to a friend or family member for safekeeping. If you don't intend to spend money from your cold storage regularly, you could also store one of the hardware devices in a safe deposit box at a local financial institution.

{% include next_steps.md next_url="/quorum" next_name="Pick Quorum" %}
5 changes: 4 additions & 1 deletion _pages/setup-wallets/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ For a video demo, check out [this example on Bitcoin Magazine](https://www.pscp.

By using a paper wallet generated in software, we eliminate the need to buy a third hardware wallet (you may later have to buy a hardware wallet if you need to use this key for emergency recovery).

This paper wallet is _watch only_ by default. In the following-instructions, you will generate a full 24-word seed phrase, but only share the extended public key ("xpub") with Specter, reserving the seed phrase alone on paper. This means that in order to sign a transaction in your 2-of-3 quorum, you will need to use the two other devices. It also means that if one of those wallets becomes lost or damaged, you can use your "paper wallet" to set up a hardware wallet that can be used to sign transactions in its stead.

**Warning: this is the highest risk step in our multisig setup**.
**Follow the instructions closely, and seriously consider hardening your security** by using techniques described in [the advanced section](paper-advanced).

Expand Down Expand Up @@ -62,6 +64,7 @@ This will download a `json` file to your computer, containing the extended publi
Save the file to a DVD-R or USB drive to later share with Specter-Desktop.
![](/assets/img/setup-paper-seedpicker-save-json.png){:width="70%" class="border_image"}

> Note: You do not need to record the xpub, root key fingerprint, or derivation path on your paper wallet.

#### Do it Live
**Quit all applications, remove any removable media, and turn off your internet access before continuing.**
Expand All @@ -80,4 +83,4 @@ Your file will be automatically parsed into something like this:
1. Your public key is now added to Specter-Desktop:
![](/assets/img/setup-paper-display-pubkey.png){:width="70%" class="border_image"}

{% include next_steps.md next_url="keystone" next_name="Setup Keystone" %}
{% include next_steps.md next_url="keystone" next_name="Setup Keystone" %}
2 changes: 1 addition & 1 deletion _pages/why-multisig.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,4 +51,4 @@ We **highly** recommend you practice all of this first.
See disclaimer [here](/disclaimer).


{% include next_steps.md next_url="/quorum" next_name="Pick Quorum" %}
{% include next_steps.md next_url="/how-it-works" next_name="How it Works" %}
2 changes: 2 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ <h4>Guide</h4>
<p><ol>
<li><a href="/why-multisig">Introduction: Why Multisig?</a></li>

<li><a href="/how-it-works">How it Works</a></li>

<li><a href="/quorum">Pick Your Quorum (e.g. 2-of-3)</a></li>

<li><a href="/equipment">Equipment List</a></li>
Expand Down