From 6b17fa2fbb3add69fe07af52d52e9508b72ea197 Mon Sep 17 00:00:00 2001 From: JSwambo Date: Fri, 8 Oct 2021 18:49:36 +0100 Subject: [PATCH 1/4] ceremony: draft specification (co-authored with Kevin Loaec) --- ceremony.md | 259 +++++++++++++++++++++++++ manager-ceremony-process.md | 261 +++++++++++++++++++++++++ stakeholder-ceremony-process.md | 328 ++++++++++++++++++++++++++++++++ 3 files changed, 848 insertions(+) create mode 100644 ceremony.md create mode 100644 manager-ceremony-process.md create mode 100644 stakeholder-ceremony-process.md diff --git a/ceremony.md b/ceremony.md new file mode 100644 index 0000000..7564dbe --- /dev/null +++ b/ceremony.md @@ -0,0 +1,259 @@ +# Specification to Initialize Revault Infrastructure + +WORK-IN-PROGRESS - DO NOT USE (yet) + +THERE IS NOT SUCH THING AS PERFECT SECURITY. +thIs iS NoT SEcuRitY ADviCe. + +# Motivation + +Key management is fundamental to bitcoin custody. As an open-source, multi-party custody protocol, Revault builds on the strong foundation of a rigorous key-generation and exchange ceremony as the root of trust for the entire security infrastructure. + +This document is concerned with how keys are generated and transported to the devices on which they will be stored. The entire process involves mitigations for a wide array of risks, which will be discussed in a separate document. Moreover, integrity verification of the software stack (OS, Bitcoin, Revault) which ultimately handles the secrets must be carried out as part of the initialization. + +It is critical that _confidentiality_ of secrets is maintained by secret-holders, and that secret-holders use backups to ensure _availability_ in case of losses and failures, and that the _integrity_ of secrets is verified during the ceremony (and from time to time afterwards). A forensic trail must be laid in case a critical failure occurs to help understand what went wrong and where legal liability falls. + +By adhering to the ceremony specification, a team deploying Revault creates confidence in their ongoing custodial operations. Individuals can be confident that others in their team aren't naively cutting corners that could cause catastrohpic failures. With the inclusion of notaries or lawyers in the process, teams and their constituent individuals may aquire legal protection when failures occur. + +# Revault + +## Vocabulary + +- Participant: all participants in a Revault deployment will have one or two roles as a _stakeholder_ and/ or _manager_. +- Stakeholder: Controls a secret for the high-threshold multi-signature which is the primary protection for funds in custody. +- Manager: Controls a secret for funds which are delegated to them +- Emergency Wallet (EW): An external wallet to the Revault deployment which is used as a deterrent against physical threats. +- Watchtower: Automated server to enforce unvault policies set by it's operator +- Coordinator Admin: _NOT A PARTICIPANT_, administrates the coordinator +- Coordinator: Automated server to reduce coordination complexity for communication +- Signing device: Offline signing device, with a firmware that supports Revault transactions +- Transport device: A secure-digital (SD or MicroSD) card to temporarily store and transport critical data and software + +## Deployment + +### Parameters and Notation + + + +- N_s: Number of stakeholders +- N_m: Number of managers +- k: manager signature threshold +- t_l: relative time-lock length +- s: stakeholder id +- S: stakeholder set +- m: manager id +- M: manager set +- c: coordinator id +- C: coordinator set +- l1_s: first laptop of stakeholder s +- l2_s: second laptop of stakeholder s +- l1_m: first laptop of manager m +- l2_m: second laptop of manager m +- rd: revault device id +- RD: revault device map to participant {(rd, s) or (rd, m)} +- sd: signing device id +- SD: signing device map to participant {(sd, s) or (sd, m)} +- b: backup id +- B: backup map to paricipant {(b, s) or (b, m) +- EA': emergency address (partial) +- EA: emergency address (complete) +- td: transport device id +- TD: transport device map to target {(td, s) or (td, m) or (td, w) or (td, c) or (td, EA') or (td, EA) or (td, l1_s) or (td, l2_s) or (td, l1_m) or (td, l2_m)} +- w: watchtower id +- W: watchtower map to stakeholder {(w,s)} +- N_w: number of watchtowers + +### Infrastructure + +- At least 1 coordinator server per deployment +- At least 1 watchtower per stakeholder +- 1 revault device (revaultd and GUI) per participant +- 1 signing device (typically hardware wallet) per participant +- At least 2 backup per participant + +## Process + +### shopping list + +- each participant to procure **1 signing device**, directly from manufacturer, if possible not in their own name/address, if possible in person, cash. Participants should not all procure their signing device from the same manufacturer. _Typical recommendation is to use a hardware wallet as the signing device. Offline computers or otherwise may be used but are not recommended for usability (in a secure manner)_ + +- each participant to procure **2 brand new laptops** (or other general purpose computing device) of different brands, from 2 different shops, if possible in person, in cash, and not at the store closest to their place of residence or work. Any laptop should work AS LONG AS it has an SD (or MicroSD) card reader. Preferably no Apple computer. + +- each stakeholder to procure a transport device for: + + each other stakeholder and manager to share: their xpub. + + their revault device to include: the miniscript descriptors, the noise pubkey of their watchtower, the noise pubkey of the coordinator, their noise privkey, verified revault binary + + the coordinator to share: their noise pubkey + + their watchtower to share: wt xpriv, wt noise private key, deployment miniscript descriptors, coordinator noise pubkey, stakeholder noise pubkey, verified WT binary + + the ceremony to include: a verified OS (td class U3 and or V30 or faster) + + the ceremony to include: revault & watchtower & ceremony tool binaries + +- each manager to procure a transport device for: + + each other stakeholder and manager to share: their xpub + + their revault device to include: the miniscript descriptors, coordinator noise pubkey, their noise privkey, verified revault binary + + the coordinator to share: their noise pubkey + + the ceremony to include: an OS (td class U3 and or V30 or faster) + + the ceremony to include: revault & ceremony tool binaries + +- coordinator admin to procure a transport device for: + + each other stakeholder and manager to share: coordinator noise pubkey + + the coordinator setup, including: an OS (td class U3 and or V30 or faster) + + the coordinator setup, including: coordinator & ceremony tool binaries + +- **each participant** to procure a "Revault Kit" or its content separately: + - printed instructions (this can be tampered with - compare and verify with digital doc!) + - at least 5 unmarked 6-sided dice (or casino grade dice, or equivalent). More dice is better in case they are not proven balanced. + - backup media. The Revault kit includes both + - Metal backups (at least 2 for the main secret + 2 for emergency key. The more the better.) + numbered stamps (durability and readability) + - Paper backups for seed words (recovery convenience), archival grade and preferably water resistant + - a transparent pen with archival grade ink + - 10+ unique tamper-evident envelopes per participant (or better tamper-evident seals) + - "privacy booths", such as cardboard screen to prevent other participants to watch what is being rolled/written + - screwdrivers (for opening the laptops) + - thick tape to mask cameras + +- a minimalist room with a basic table and basic chairs, where you can make sure there is no camera nor microphone. Thick curtains or no windows. + +- QUESTION: who will procure the transport device to tale emergency address info into the ceremony? + +### Private Keys, Public Keys, Miniscript Descriptors + +At the beginning of the ceremony: + +- there will be an arbitrary partial (missing participant xpubs) miniscript descriptor (to use in generating the emergency address) on the following devices: + + at least one transport device per stakeholder that stores the partial emergency address, EA'. +- there will be a transport device with the coordinator pubkey on for each participant (prepared by coordinator admin ahead of time) + +At the end of the ceremony: + +- there will be unique 256-bit entropy as a mnemonic seed on + + all b in B +- there will be unique bitcoin extended private keys on the following devices: + + all td in TD that map to watchtower targets + + all sd in SD +- the set of all miniscript descriptors (_except_ the emergency descriptor) for the deployment will be on the following devices: + + all td in TD that map to stakeholder, manager, or watchtower targets + + all sd in SD +- the emergency miniscript descriptor will be on the following devices: + + all td in TD that map to stakeholder or watchtower targets + + all sd in SD that map to stakeholder targets +- there will be unique noise private keys on the following devices: + + all td in TD +- there will be the cordinator's noise public key on the following devices: + + all td in TD that map to stakeholder and manager targets +- there will be the noise public key of the participants set on the following devices: + + all td in TD that map to coordinator targets +- the noise public key for each stakeholder will be on the td in TD which maps to their watchtower +- the noise public key for each watchtower will be on the td in TD which maps to their stakeholder + +Any td in TD that is not listed above should be destroyed after the ceremony, along with all laptops used to manage sensitive key material. + +### Pre-ceremony work for all stakeholders (may be assisted by Revault team) + +- unseal the faster td card +- label it as "OS - _my name_" +- download a Linux operating system with live environment +- verify the signatures/hashes of the downloaded ISO +- "burn" the ISO to td + +- unseal another td +- label it as "Software - _my name_" +- download the ceremony tool binary +- download the revault binary +- download bitcoin binary +- download the watchtower binary +- verify the signatures/hashes of each binary +- copy the binaries to the td + +- check both tds again on a trusted laptop (the Revault team can assist) + +- Unseal remaining tds and label as: + - "Revault Device - _my name_" + - "Noise Pubkey - _my name_" + - "xpub - _my name_" + - "Watchtower - _my name_" + +- put the SD cards in read-only mode (from the physical LOCK tab) if available. +- install the revault binary on their existing work computer (if not using a dedicated laptop for Revault) + - :warning: if full archive node, need to have a ton of free space >>500GB for long-term usage + - user will face the Ceremony screen, nothing to do at this stage. Sync in background until done. + +- stakeholders should get the partial emergency descriptor ready on a td + +### Pre-ceremony work for all managers (may be assisted by Revault team) + +- unseal the faster td card +- label it as "OS - _my name_" +- download a Linux operating system with live environment +- verify the signatures/hashes of the downloaded ISO +- "burn" the ISO to td + +- unseal another td +- label it as "Software - _my name_" +- download the ceremony tool binary +- download the revault binary +- download bitcoin binary +- verify the signatures/hashes of each binary +- copy the binaries to the td + +- check both tds again on a trusted laptop (the Revault team can assist) + +- Unseal remaining tds and label as: + - "Revault Device - _my name_" + - "Noise Pubkey - _my name_" + - "xpub - _my name_" + +- put the SD cards in read-only mode (from the physical LOCK tab) if available. +- install the revault binary on their existing work computer (if not using a dedicated laptop for Revault) + - :warning: if full archive node, need to have a ton of free space >>500GB for long-term usage + - user will face the Ceremony screen, nothing to do at this stage. Sync in background until done. + +### Pre ceremony work for the coordinator admin (may be assisted by Revault team) + +- unseal the faster td card +- label it as "OS - _my name_" +- download a Linux operating system with live environment +- verify the signatures/hashes of the downloaded ISO +- "burn" the ISO to td +- set up coordinator + + boot server with OS td + + download coordinator binary on machine + + verify signature/hash of binary + + generate a noise privkey and pubkey + + copy noise pubkey to one td per participant and label as "coordinator noise pubkey" + + +## Questions + +- What are the requirements for different types of tds (those that *just* cointain xpub or noise pubkey, and those that contain ISO or binaries)? +- Do we make full size SD Card mandatory for write lock switch? +- What about other types of deployment (e.g. no self-hosted watchtowers or with some co-signers)? +- What do participants need to back up for the emergency? + +- Do we want a sys admin to generate coordinator keys, and to fill its td during the ceremony? Or can another participant be trusted with this? How does the coordinator recieve all the noise pubkeys? +- Should the coordinator admin be in the ceremony at all? + + alternatively, ceremony could output all noise pubkeys of participants and wts and hand to coordinator admin + + coordinator pubkey can be brought in advance + + unnecessary risk to bring admin into ceremony and unnecessary for their keys to be generated this way since they are kept on hot machine anyway. + + Long-term the secure communication will exclude the coordinator anyway. + +- Who will bring the partial emergency script to the ceremony? +- Should participants set up revault binary before ceremony? (that means verifying it, when they should verify in ceremony too...) + +- What verification steps are necessary for each piece of data? +- What assumptions are made about transport devices that come into the ceremony from outside? + +- What about the set-up? and the time between the set-up? + + participants need time to securely store their backups (perhaps a week or more) + +- Should the mnemonic seed be generated once for both vault & emergency backups? Should they both be derived from the same mnemonic? Would using a tool derive these introduce unnecessary risk the process? + + Want to avoid poor UX of creating two separate mnemonic seeds if possible, without introducing risk +- for metal backups, do users select from pre-etched tiles? +- Should the instruction set be agnostic to choice of back-up material? + +- What should be used for tamper-evident seals, and what should be sealed, and when? +- What about forensic trail? +- What about notary/ lawyers? + +- What testing/ verification should be done at the end of the ceremony? + + \ No newline at end of file diff --git a/manager-ceremony-process.md b/manager-ceremony-process.md new file mode 100644 index 0000000..16d9564 --- /dev/null +++ b/manager-ceremony-process.md @@ -0,0 +1,261 @@ +# Manager Ceremony Process + +## Device list + +| Device Name | Device type | +| --- | --- | +| OS - _my name_ | class U3 and or V30 or faster | +| Software - _my name_ | ? | +| Laptop 1 | Any with SD reader | +| Laptop 2 | Any with SD reader | +| Backup 1 | Metal | +| Backup 2 | Metal | +| Signing Device - _my name_ | Hardware wallet | +| Noise Pubkey - _my name_ | Any size any speed | +| xpub - _my name_ 1 | Any size any speed | +| . || +| . || +| . || +| xpub - _my name_ N_s + N_m | Any size any speed | +| Revault Device - _my name_ | Any size any speed | + + +## Manager start state: + +| Device Name | Contents | +| --- | --- | +| OS - _my name_ | Verified OS | +| Software - _my name_ | Verified revault and ceremony tool binaries, EFF diceware list | +| Laptop 1 | None | +| Laptop 2 | None | +| Backup 1 | None | +| Backup 2 | None | +| Signing Device - _my name_ | None | +| Noise Pubkey - _my name_ | None | +| xpub - _my name_ 1 | None | +| . || +| . || +| . || +| xpub - _my name_ N_s + N_m | None | +| Revault Device - _my name_ | None | + + +## Prepare Laptops + +| Device Name | Contents | +| --- | --- | +| OS - _my name_ | NA | +| Software - _my name_ | NA | +| Laptop 1 | OS, revault, ceremony tool, EFF diceware list | +| Laptop 2 | OS, revault, ceremony tool, EFF diceware list | +| Backup 1 | None | +| Backup 2 | None | +| Signing Device - _my name_ | None | +| Noise Pubkey - _my name_ | None | +| xpub - _my name_ 1 | None | +| . || +| . || +| . || +| xpub - _my name_ N_s + N_m | None | +| Revault Device - _my name_ | None | + +## Generate Seed Mnemonic and derive keys + +Steps: + +- (if required, label the dice) +- open the EFF Diceware list, on both latops +- roll 100 dice (20 rolls of 5 dice or equivalent), while stamping/writing on the backups. +- on the EFF Diceware list, for each 5 dice scroll to find the corresponding word. (Scroll, do not type anything). + - copy the word, paste it on the key generation software (need name and format for this.). Do this on both laptops. + - write down the word on a backup paper sheet + - once all words have been written down, and copy-pasted, do one last check they match. +- click "generate" on the software on both computers + - check that the results are identical on both computers + - write down the resulting mnemonics (optional, recommended) on paper + +| Device Name | Contents | +| --- | --- | +| OS - _my name_ | NA | +| Software - _my name_ | NA | +| Laptop 1 | OS, revault, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey | +| Laptop 2 | OS, revault, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey | +| Backup 1 | mnemonic seed | +| Backup 2 | mnemonic seed | +| Signing Device - _my name_ | None | +| Noise Pubkey - _my name_ | None | +| xpub - _my name_ 1 | None | +| . || +| . || +| . || +| xpub - _my name_ N_s + N_m | None | +| Revault Device - _my name_ | None | + +## Load public data to share + +| Device Name | Contents | +| --- | --- | +| OS - _my name_ | NA | +| Software - _my name_ | NA | +| Laptop 1 | OS, revault, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey | +| Laptop 2 | OS, revault, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey | +| Backup 1 | mnemonic seed | +| Backup 2 | mnemonic seed | +| Signing Device - _my name_ | None | +| Noise Pubkey - _my name_ | noise pubkey | +| xpub - _my name_ 1 | xpub | +| . || +| . || +| . || +| xpub - _my name_ N_s + N_m | xpub | +| Revault Device - _my name_ | None | + + +## Share all pub data among participants and coordinator noise pubkey, move to laptops + +| Device Name | Contents | +| --- | --- | +| OS - _my name_ | NA | +| Software - _my name_ | NA | +| Laptop 1 | OS, revault, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey | +| Laptop 2 | OS, revault, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey | +| Backup 1 | mnemonic seed | +| Backup 2 | mnemonic seed | +| Signing Device - _my name_ | None | +| Coordinator Noise Pubkey | Coordinator noise pubkey | +| xpub - stk 1 | xpub stk 1 | +| . || +| . || +| . || +| xpub - stk N_s | xpub stk N_s | +| xpub - man 1 | xpub man 1 | +| . || +| . || +| . || +| xpub - man N_m | xpub man N_m | +| Revault Device - _my name_ | None | + +## Generate miniscript descriptors and emergency descriptor + +- Click generete on both laptops +- Verify resulting descriptors match + +| Device Name | Contents | +| --- | --- | +| OS - _my name_ | NA | +| Software - _my name_ | NA | +| Laptop 1 | OS, revault, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | +| Laptop 2 | OS, revault, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | +| Backup 1 | mnemonic seed | +| Backup 2 | mnemonic seed | +| Signing Device - _my name_ | None | +| Coordinator Noise Pubkey | Coordinator noise pubkey | +| xpub - stk 1 | xpub stk 1 | +| . || +| . || +| . || +| xpub - stk N_s | xpub stk N_s | +| xpub - man 1 | xpub man 1 | +| . || +| . || +| . || +| xpub - man N_m | xpub man N_m | +| Revault Device - _my name_ | None | + +# Load the signing device + +| Device Name | Contents | +| --- | --- | +| OS - _my name_ | NA | +| Software - _my name_ | NA | +| Laptop 1 | OS, revault, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | +| Laptop 2 | OS, revault, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | +| Backup 1 | mnemonic seed | +| Backup 2 | mnemonic seed | +| Signing Device - _my name_ | xpriv, deployment miniscript descriptors | +| Coordinator Noise Pubkey | Coordinator noise pubkey | +| xpub - stk 1 | xpub stk 1 | +| . || +| . || +| . || +| xpub - stk N_s | xpub stk N_s | +| xpub - man 1 | xpub man 1 | +| . || +| . || +| . || +| xpub - man N_m | xpub man N_m | +| Revault Device - _my name_ | None | + +# Load the revault transport device + +| Device Name | Contents | +| --- | --- | +| OS - _my name_ | NA | +| Software - _my name_ | NA | +| Laptop 1 | OS, revault, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | +| Laptop 2 | OS, revault, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | +| Backup 1 | mnemonic seed | +| Backup 2 | mnemonic seed | +| Signing Device - _my name_ | xpriv, deployment miniscript descriptors | +| Coordinator Noise Pubkey | Coordinator noise pubkey | +| xpub - stk 1 | xpub stk 1 | +| . || +| . || +| . || +| xpub - stk N_s | xpub stk N_s | +| xpub - man 1 | xpub man 1 | +| . || +| . || +| . || +| xpub - man N_m | xpub man N_m | +| Revault Device - _my name_ | revault binary, noise privkey, deployment miniscript descriptor, emergency descriptor, coordinator noise pubkey | + + +## Complete Backups + +| Device Name | Contents | +| --- | --- | +| OS - _my name_ | NA | +| Software - _my name_ | NA | +| Laptop 1 | OS, revault, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | +| Laptop 2 | OS, revault, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | +| Backup 1 | mnemonic seed, deployment miniscript descriptor? | +| Backup 2 | mnemonic seed, deployment miniscript descriptor? | +| Signing Device - _my name_ | xpriv, deployment miniscript descriptors | +| Coordinator Noise Pubkey | Coordinator noise pubkey | +| xpub - stk 1 | xpub stk 1 | +| . || +| . || +| . || +| xpub - stk N_s | xpub stk N_s | +| xpub - man 1 | xpub man 1 | +| . || +| . || +| . || +| xpub - man N_m | xpub man N_m | +| Revault Device - _my name_ | revault binary, noise privkey, deployment miniscript descriptor, emergency descriptor, coordinator noise pubkey | + + +## Destroy all unnecessary sensitive material + +| Device Name | Contents | +| --- | --- | +| OS - _my name_ | Destroyed | +| Software - _my name_ | Destroyed | +| Laptop 1 | Destroyed | +| Laptop 2 | Destroyed | +| Backup 1 | mnemonic seed, deployment miniscript descriptor? | +| Backup 2 | mnemonic seed, deployment miniscript descriptor? | +| Signing Device - _my name_ | xpriv, deployment miniscript descriptors | +| Coordinator Noise Pubkey | Destroyed | +| xpub - stk 1 | Destroyed | +| . || +| . || +| . || +| xpub - stk N_s | Destroyed | +| xpub - man 1 | Destroyed | +| . || +| . || +| . || +| xpub - man N_m | Destroyed | +| Revault Device - _my name_ | revault binary, noise privkey, deployment miniscript descriptor, emergency descriptor, coordinator noise pubkey | \ No newline at end of file diff --git a/stakeholder-ceremony-process.md b/stakeholder-ceremony-process.md new file mode 100644 index 0000000..cfaedcb --- /dev/null +++ b/stakeholder-ceremony-process.md @@ -0,0 +1,328 @@ +# Stakeholder Ceremony Process + +## Device list + +| Device Name | Device type | +| --- | --- | +| OS - _my name_ | class U3 and or V30 or faster | +| Software - _my name_ | ? | +| Laptop 1 | Any with SD reader | +| Laptop 2 | Any with SD reader | +| Vault Backup 1 | Metal | +| Vault Backup 2 | Metal | +| Emergency Backup 1 | Archival Paper | +| Emergency Backup 2 | Archival Paper | +| Signing Device - _my name_ | Hardware wallet | +| Noise Pubkey - _my name_ | Any size any speed | +| xpub - _my name_ 1 | Any size any speed | +| . || +| . || +| . || +| xpub - _my name_ N_s + N_m | Any size any speed | +| Revault Device - _my name_ | Any size any speed | +| Watchtower - _my name_ | Any size any speed | + + +## Stakeholder start state: + +| Device Name | Contents | +| --- | --- | +| OS - _my name_ | Verified OS | +| Software - _my name_ | Verified revault, watchtower and ceremony tool binaries, EFF diceware list | +| Laptop 1 | None | +| Laptop 2 | None | +| Vault Backup 1 | None | +| Vault Backup 2 | None | +| Emergency Backup 1 | None | +| Emergency Backup 2 | None | +| Signing Device - _my name_ | None | +| Noise Pubkey - _my name_ | None | +| xpub - _my name_ 1 | None | +| . || +| . || +| . || +| xpub - _my name_ N_s + N_m | None | +| Revault Device - _my name_ | None | +| Watchtower - _my name_ | None | + + +## Prepare Laptops + +- Unseal the laptop boxes + - DO NOT BOOT. + - use the screwdriver to open the laptops + - remove the wifi card if possible, if not at least disconnect the antennas. +- Install OS transport device (20 min per laptop?) +- Insert software transport device, copy all file to laptop + +| Device Name | Contents | +| --- | --- | +| OS - _my name_ | NA | +| Software - _my name_ | NA | +| Laptop 1 | OS, revault, watchtower, ceremony tool, EFF diceware list | +| Laptop 2 | OS, revault, watchtower, ceremony tool, EFF diceware list | +| Vault Backup 1 | None | +| Vault Backup 2 | None | +| Emergency Backup 1 | None | +| Emergency Backup 2 | None | +| Signing Device - _my name_ | None | +| Noise Pubkey - _my name_ | None | +| xpub - _my name_ 1 | None | +| . || +| . || +| . || +| xpub - _my name_ N_s + N_m | None | +| Revault Device - _my name_ | None | +| Watchtower - _my name_ | None | + +## Generate Seed Mnemonic and derive keys + +Steps: + +- (if required, label the dice) +- open the EFF Diceware list, on both latops +- roll 100 dice (20 rolls of 5 dice or equivalent), while stamping/writing on the backups. +- on the EFF Diceware list, for each 5 dice scroll to find the corresponding word. (Scroll, do not type anything). + - copy the word, paste it on the key generation software (need name and format for this.). Do this on both laptops. + - write down the word on a backup paper sheet + - once all words have been written down, and copy-pasted, do one last check they match. +- click "generate" on the software on both computers + - check that the results are identical on both computers + - write down the resulting mnemonics (optional, recommended) on paper + +| Device Name | Contents | +| --- | --- | +| OS - _my name_ | NA | +| Software - _my name_ | NA | +| Laptop 1 | OS, revault, watchtower, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, wt xpriv, wt noise privkey | +| Laptop 2 | OS, revault, watchtower, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, wt xpriv, wt noise privkey | +| Vault Backup 1 | mnemonic seed | +| Vault Backup 2 | mnemonic seed | +| Emergency Backup 1 | (alt) mnemonic seed | +| Emergency Backup 2 | (alt) mnemonic seed | +| Signing Device - _my name_ | None | +| Noise Pubkey - _my name_ | None | +| xpub - _my name_ 1 | None | +| . || +| . || +| . || +| xpub - _my name_ N_s + N_m | None | +| Revault Device - _my name_ | None | +| Watchtower - _my name_ | None | + +## Load public data to share + +| Device Name | Contents | +| --- | --- | +| OS - _my name_ | NA | +| Software - _my name_ | NA | +| Laptop 1 | OS, revault, watchtower, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, wt xpriv, wt noise privkey | +| Laptop 2 | OS, revault, watchtower, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, wt xpriv, wt noise privkey | +| Vault Backup 1 | mnemonic seed | +| Vault Backup 2 | mnemonic seed | +| Emergency Backup 1 | (alt) mnemonic seed | +| Emergency Backup 2 | (alt) mnemonic seed | +| Signing Device - _my name_ | None | +| Noise Pubkey - _my name_ | noise pubkey | +| xpub - _my name_ 1 | xpub | +| . || +| . || +| . || +| xpub - _my name_ N_s + N_m | xpub | +| Revault Device - _my name_ | None | +| Watchtower - _my name_ | None | + + +## Share all pub data among participants and pick up coordinator noise pubkey, move to laptops + +| Device Name | Contents | +| --- | --- | +| OS - _my name_ | NA | +| Software - _my name_ | NA | +| Laptop 1 | OS, revault, watchtower, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, wt xpriv, wt noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey | +| Laptop 2 | OS, revault, watchtower, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, wt xpriv, wt noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey | +| Vault Backup 1 | mnemonic seed | +| Vault Backup 2 | mnemonic seed | +| Emergency Backup 1 | (alt) mnemonic seed | +| Emergency Backup 2 | (alt) mnemonic seed | +| Signing Device - _my name_ | None | +| Coordinator Noise Pubkey | Coordinator noise pubkey | +| xpub - stk 1 | xpub stk 1 | +| . || +| . || +| . || +| xpub - stk N_s | xpub stk N_s | +| xpub - man 1 | xpub man 1 | +| . || +| . || +| . || +| xpub - man N_m | xpub man N_m | +| Revault Device - _my name_ | None | +| Watchtower - _my name_ | None | + +## Generate miniscript descriptors and emergency descriptor + +- Click generete on both laptops +- Verify resulting descriptors match + +| Device Name | Contents | +| --- | --- | +| OS - _my name_ | NA | +| Software - _my name_ | NA | +| Laptop 1 | OS, revault, watchtower, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, wt xpriv, wt noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | +| Laptop 2 | OS, revault, watchtower, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, wt xpriv, wt noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | +| Vault Backup 1 | mnemonic seed | +| Vault Backup 2 | mnemonic seed | +| Emergency Backup 1 | (alt) mnemonic seed | +| Emergency Backup 2 | (alt) mnemonic seed | +| Signing Device - _my name_ | None | +| Coordinator Noise Pubkey | Coordinator noise pubkey | +| xpub - stk 1 | xpub stk 1 | +| . || +| . || +| . || +| xpub - stk N_s | xpub stk N_s | +| xpub - man 1 | xpub man 1 | +| . || +| . || +| . || +| xpub - man N_m | xpub man N_m | +| Revault Device - _my name_ | None | +| Watchtower - _my name_ | None | + +# Load the signing device + +| Device Name | Contents | +| --- | --- | +| OS - _my name_ | NA | +| Software - _my name_ | NA | +| Laptop 1 | OS, revault, watchtower, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, wt xpriv, wt noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | +| Laptop 2 | OS, revault, watchtower, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, wt xpriv, wt noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | +| Vault Backup 1 | mnemonic seed | +| Vault Backup 2 | mnemonic seed | +| Emergency Backup 1 | (alt) mnemonic seed | +| Emergency Backup 2 | (alt) mnemonic seed | +| Signing Device - _my name_ | xpriv, deployment miniscript descriptors | +| Coordinator Noise Pubkey | Coordinator noise pubkey | +| xpub - stk 1 | xpub stk 1 | +| . || +| . || +| . || +| xpub - stk N_s | xpub stk N_s | +| xpub - man 1 | xpub man 1 | +| . || +| . || +| . || +| xpub - man N_m | xpub man N_m | +| Revault Device - _my name_ | None | +| Watchtower - _my name_ | None | + +# Load the revault transport device + +| Device Name | Contents | +| --- | --- | +| OS - _my name_ | NA | +| Software - _my name_ | NA | +| Laptop 1 | OS, revault, watchtower, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, wt xpriv, wt noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | +| Laptop 2 | OS, revault, watchtower, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, wt xpriv, wt noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | +| Vault Backup 1 | mnemonic seed | +| Vault Backup 2 | mnemonic seed | +| Emergency Backup 1 | (alt) mnemonic seed | +| Emergency Backup 2 | (alt) mnemonic seed | +| Signing Device - _my name_ | xpriv, deployment miniscript descriptors | +| Coordinator Noise Pubkey | Coordinator noise pubkey | +| xpub - stk 1 | xpub stk 1 | +| . || +| . || +| . || +| xpub - stk N_s | xpub stk N_s | +| xpub - man 1 | xpub man 1 | +| . || +| . || +| . || +| xpub - man N_m | xpub man N_m | +| Revault Device - _my name_ | revault binary, noise privkey, deployment miniscript descriptor, emergency descriptor, wt noise pubkey, coordinator noise pubkey | +| Watchtower - _my name_ | None | + +# Load watchtower transport device + +| Device Name | Contents | +| --- | --- | +| OS - _my name_ | NA | +| Software - _my name_ | NA | +| Laptop 1 | OS, revault, watchtower, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, wt xpriv, wt noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | +| Laptop 2 | OS, revault, watchtower, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, wt xpriv, wt noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | +| Vault Backup 1 | mnemonic seed | +| Vault Backup 2 | mnemonic seed | +| Emergency Backup 1 | (alt) mnemonic seed | +| Emergency Backup 2 | (alt) mnemonic seed | +| Signing Device - _my name_ | xpriv, deployment miniscript descriptors | +| Coordinator Noise Pubkey | Coordinator noise pubkey | +| xpub - stk 1 | xpub stk 1 | +| . || +| . || +| . || +| xpub - stk N_s | xpub stk N_s | +| xpub - man 1 | xpub man 1 | +| . || +| . || +| . || +| xpub - man N_m | xpub man N_m | +| Revault Device - _my name_ | revault binary, noise privkey, deployment miniscript descriptor, emergency descriptor, wt noise pubkey, coordinator noise pubkey | +| Watchtower - _my name_ | watchtower binary, wt xpriv, wt noise privkey, my noise pubkey, deployment miniscript descriptor, coordinator noise pubkey, emergency descriptor | + + +## Complete Backups + +| Device Name | Contents | +| --- | --- | +| OS - _my name_ | NA | +| Software - _my name_ | NA | +| Laptop 1 | OS, revault, watchtower, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, wt xpriv, wt noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | +| Laptop 2 | OS, revault, watchtower, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, wt xpriv, wt noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | +| Vault Backup 1 | mnemonic seed, deployment miniscript descriptor? | +| Vault Backup 2 | mnemonic seed, deployment miniscript descriptor? | +| Emergency Backup 1 | (alt) mnemonic seed, emergency descriptor | +| Emergency Backup 2 | (alt) mnemonic seed, emergency descriptor | +| Signing Device - _my name_ | xpriv, deployment miniscript descriptors | +| Coordinator Noise Pubkey | Coordinator noise pubkey | +| xpub - stk 1 | xpub stk 1 | +| . || +| . || +| . || +| xpub - stk N_s | xpub stk N_s | +| xpub - man 1 | xpub man 1 | +| . || +| . || +| . || +| xpub - man N_m | xpub man N_m | +| Revault Device - _my name_ | revault binary, noise privkey, deployment miniscript descriptor, emergency descriptor, wt noise pubkey, coordinator noise pubkey | +| Watchtower - _my name_ | watchtower binary, wt xpriv, wt noise privkey, my noise pubkey, deployment miniscript descriptor, coordinator noise pubkey, emergency descriptor | + + +## Destroy all unnecessary sensitive material + +| Device Name | Contents | +| --- | --- | +| OS - _my name_ | Destroyed | +| Software - _my name_ | Destroyed | +| Laptop 1 | Destroyed | +| Laptop 2 | Destroyed | +| Vault Backup 1 | mnemonic seed, deployment miniscript descriptor? | +| Vault Backup 2 | mnemonic seed, deployment miniscript descriptor? | +| Emergency Backup 1 | (alt) mnemonic seed, emergency descriptor | +| Emergency Backup 2 | (alt) mnemonic seed, emergency descriptor | +| Signing Device - _my name_ | xpriv, deployment miniscript descriptors | +| Coordinator Noise Pubkey | Destroyed | +| xpub - stk 1 | Destroyed | +| . || +| . || +| . || +| xpub - stk N_s | Destroyed | +| xpub - man 1 | Destroyed | +| . || +| . || +| . || +| xpub - man N_m | Destroyed | +| Revault Device - _my name_ | revault binary, noise privkey, deployment miniscript descriptor, emergency descriptor, wt noise pubkey, coordinator noise pubkey | +| Watchtower - _my name_ | watchtower binary, wt xpriv, wt noise privkey, my noise pubkey, deployment miniscript descriptor, coordinator noise pubkey, emergency descriptor | \ No newline at end of file From 2d0be4587f9b2f67a392eebe62cd0898effe7f00 Mon Sep 17 00:00:00 2001 From: JSwambo Date: Thu, 13 Jan 2022 09:56:28 +0000 Subject: [PATCH 2/4] ceremony: (draft) distributed specification --- Key-Tree-Model.pdf | Bin 0 -> 36559 bytes ceremony.md | 259 ------------------------- coordinator-admin-deployment.md | 133 +++++++++++++ manager-ceremony-process.md | 261 ------------------------- manager-deployment.md | 221 +++++++++++++++++++++ stakeholder-ceremony-process.md | 328 -------------------------------- stakeholder-deployment.md | 327 +++++++++++++++++++++++++++++++ 7 files changed, 681 insertions(+), 848 deletions(-) create mode 100644 Key-Tree-Model.pdf delete mode 100644 ceremony.md create mode 100644 coordinator-admin-deployment.md delete mode 100644 manager-ceremony-process.md create mode 100644 manager-deployment.md delete mode 100644 stakeholder-ceremony-process.md create mode 100644 stakeholder-deployment.md diff --git a/Key-Tree-Model.pdf b/Key-Tree-Model.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2755182f53f5368ba590acc7cee366ca6775f505 GIT binary patch literal 36559 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 fKi4q2 - -- N_s: Number of stakeholders -- N_m: Number of managers -- k: manager signature threshold -- t_l: relative time-lock length -- s: stakeholder id -- S: stakeholder set -- m: manager id -- M: manager set -- c: coordinator id -- C: coordinator set -- l1_s: first laptop of stakeholder s -- l2_s: second laptop of stakeholder s -- l1_m: first laptop of manager m -- l2_m: second laptop of manager m -- rd: revault device id -- RD: revault device map to participant {(rd, s) or (rd, m)} -- sd: signing device id -- SD: signing device map to participant {(sd, s) or (sd, m)} -- b: backup id -- B: backup map to paricipant {(b, s) or (b, m) -- EA': emergency address (partial) -- EA: emergency address (complete) -- td: transport device id -- TD: transport device map to target {(td, s) or (td, m) or (td, w) or (td, c) or (td, EA') or (td, EA) or (td, l1_s) or (td, l2_s) or (td, l1_m) or (td, l2_m)} -- w: watchtower id -- W: watchtower map to stakeholder {(w,s)} -- N_w: number of watchtowers - -### Infrastructure - -- At least 1 coordinator server per deployment -- At least 1 watchtower per stakeholder -- 1 revault device (revaultd and GUI) per participant -- 1 signing device (typically hardware wallet) per participant -- At least 2 backup per participant - -## Process - -### shopping list - -- each participant to procure **1 signing device**, directly from manufacturer, if possible not in their own name/address, if possible in person, cash. Participants should not all procure their signing device from the same manufacturer. _Typical recommendation is to use a hardware wallet as the signing device. Offline computers or otherwise may be used but are not recommended for usability (in a secure manner)_ - -- each participant to procure **2 brand new laptops** (or other general purpose computing device) of different brands, from 2 different shops, if possible in person, in cash, and not at the store closest to their place of residence or work. Any laptop should work AS LONG AS it has an SD (or MicroSD) card reader. Preferably no Apple computer. - -- each stakeholder to procure a transport device for: - + each other stakeholder and manager to share: their xpub. - + their revault device to include: the miniscript descriptors, the noise pubkey of their watchtower, the noise pubkey of the coordinator, their noise privkey, verified revault binary - + the coordinator to share: their noise pubkey - + their watchtower to share: wt xpriv, wt noise private key, deployment miniscript descriptors, coordinator noise pubkey, stakeholder noise pubkey, verified WT binary - + the ceremony to include: a verified OS (td class U3 and or V30 or faster) - + the ceremony to include: revault & watchtower & ceremony tool binaries - -- each manager to procure a transport device for: - + each other stakeholder and manager to share: their xpub - + their revault device to include: the miniscript descriptors, coordinator noise pubkey, their noise privkey, verified revault binary - + the coordinator to share: their noise pubkey - + the ceremony to include: an OS (td class U3 and or V30 or faster) - + the ceremony to include: revault & ceremony tool binaries - -- coordinator admin to procure a transport device for: - + each other stakeholder and manager to share: coordinator noise pubkey - + the coordinator setup, including: an OS (td class U3 and or V30 or faster) - + the coordinator setup, including: coordinator & ceremony tool binaries - -- **each participant** to procure a "Revault Kit" or its content separately: - - printed instructions (this can be tampered with - compare and verify with digital doc!) - - at least 5 unmarked 6-sided dice (or casino grade dice, or equivalent). More dice is better in case they are not proven balanced. - - backup media. The Revault kit includes both - - Metal backups (at least 2 for the main secret + 2 for emergency key. The more the better.) + numbered stamps (durability and readability) - - Paper backups for seed words (recovery convenience), archival grade and preferably water resistant - - a transparent pen with archival grade ink - - 10+ unique tamper-evident envelopes per participant (or better tamper-evident seals) - - "privacy booths", such as cardboard screen to prevent other participants to watch what is being rolled/written - - screwdrivers (for opening the laptops) - - thick tape to mask cameras - -- a minimalist room with a basic table and basic chairs, where you can make sure there is no camera nor microphone. Thick curtains or no windows. - -- QUESTION: who will procure the transport device to tale emergency address info into the ceremony? - -### Private Keys, Public Keys, Miniscript Descriptors - -At the beginning of the ceremony: - -- there will be an arbitrary partial (missing participant xpubs) miniscript descriptor (to use in generating the emergency address) on the following devices: - + at least one transport device per stakeholder that stores the partial emergency address, EA'. -- there will be a transport device with the coordinator pubkey on for each participant (prepared by coordinator admin ahead of time) - -At the end of the ceremony: - -- there will be unique 256-bit entropy as a mnemonic seed on - + all b in B -- there will be unique bitcoin extended private keys on the following devices: - + all td in TD that map to watchtower targets - + all sd in SD -- the set of all miniscript descriptors (_except_ the emergency descriptor) for the deployment will be on the following devices: - + all td in TD that map to stakeholder, manager, or watchtower targets - + all sd in SD -- the emergency miniscript descriptor will be on the following devices: - + all td in TD that map to stakeholder or watchtower targets - + all sd in SD that map to stakeholder targets -- there will be unique noise private keys on the following devices: - + all td in TD -- there will be the cordinator's noise public key on the following devices: - + all td in TD that map to stakeholder and manager targets -- there will be the noise public key of the participants set on the following devices: - + all td in TD that map to coordinator targets -- the noise public key for each stakeholder will be on the td in TD which maps to their watchtower -- the noise public key for each watchtower will be on the td in TD which maps to their stakeholder - -Any td in TD that is not listed above should be destroyed after the ceremony, along with all laptops used to manage sensitive key material. - -### Pre-ceremony work for all stakeholders (may be assisted by Revault team) - -- unseal the faster td card -- label it as "OS - _my name_" -- download a Linux operating system with live environment -- verify the signatures/hashes of the downloaded ISO -- "burn" the ISO to td - -- unseal another td -- label it as "Software - _my name_" -- download the ceremony tool binary -- download the revault binary -- download bitcoin binary -- download the watchtower binary -- verify the signatures/hashes of each binary -- copy the binaries to the td - -- check both tds again on a trusted laptop (the Revault team can assist) - -- Unseal remaining tds and label as: - - "Revault Device - _my name_" - - "Noise Pubkey - _my name_" - - "xpub - _my name_" - - "Watchtower - _my name_" - -- put the SD cards in read-only mode (from the physical LOCK tab) if available. -- install the revault binary on their existing work computer (if not using a dedicated laptop for Revault) - - :warning: if full archive node, need to have a ton of free space >>500GB for long-term usage - - user will face the Ceremony screen, nothing to do at this stage. Sync in background until done. - -- stakeholders should get the partial emergency descriptor ready on a td - -### Pre-ceremony work for all managers (may be assisted by Revault team) - -- unseal the faster td card -- label it as "OS - _my name_" -- download a Linux operating system with live environment -- verify the signatures/hashes of the downloaded ISO -- "burn" the ISO to td - -- unseal another td -- label it as "Software - _my name_" -- download the ceremony tool binary -- download the revault binary -- download bitcoin binary -- verify the signatures/hashes of each binary -- copy the binaries to the td - -- check both tds again on a trusted laptop (the Revault team can assist) - -- Unseal remaining tds and label as: - - "Revault Device - _my name_" - - "Noise Pubkey - _my name_" - - "xpub - _my name_" - -- put the SD cards in read-only mode (from the physical LOCK tab) if available. -- install the revault binary on their existing work computer (if not using a dedicated laptop for Revault) - - :warning: if full archive node, need to have a ton of free space >>500GB for long-term usage - - user will face the Ceremony screen, nothing to do at this stage. Sync in background until done. - -### Pre ceremony work for the coordinator admin (may be assisted by Revault team) - -- unseal the faster td card -- label it as "OS - _my name_" -- download a Linux operating system with live environment -- verify the signatures/hashes of the downloaded ISO -- "burn" the ISO to td -- set up coordinator - + boot server with OS td - + download coordinator binary on machine - + verify signature/hash of binary - + generate a noise privkey and pubkey - + copy noise pubkey to one td per participant and label as "coordinator noise pubkey" - - -## Questions - -- What are the requirements for different types of tds (those that *just* cointain xpub or noise pubkey, and those that contain ISO or binaries)? -- Do we make full size SD Card mandatory for write lock switch? -- What about other types of deployment (e.g. no self-hosted watchtowers or with some co-signers)? -- What do participants need to back up for the emergency? - -- Do we want a sys admin to generate coordinator keys, and to fill its td during the ceremony? Or can another participant be trusted with this? How does the coordinator recieve all the noise pubkeys? -- Should the coordinator admin be in the ceremony at all? - + alternatively, ceremony could output all noise pubkeys of participants and wts and hand to coordinator admin - + coordinator pubkey can be brought in advance - + unnecessary risk to bring admin into ceremony and unnecessary for their keys to be generated this way since they are kept on hot machine anyway. - + Long-term the secure communication will exclude the coordinator anyway. - -- Who will bring the partial emergency script to the ceremony? -- Should participants set up revault binary before ceremony? (that means verifying it, when they should verify in ceremony too...) - -- What verification steps are necessary for each piece of data? -- What assumptions are made about transport devices that come into the ceremony from outside? - -- What about the set-up? and the time between the set-up? - + participants need time to securely store their backups (perhaps a week or more) - -- Should the mnemonic seed be generated once for both vault & emergency backups? Should they both be derived from the same mnemonic? Would using a tool derive these introduce unnecessary risk the process? - + Want to avoid poor UX of creating two separate mnemonic seeds if possible, without introducing risk -- for metal backups, do users select from pre-etched tiles? -- Should the instruction set be agnostic to choice of back-up material? - -- What should be used for tamper-evident seals, and what should be sealed, and when? -- What about forensic trail? -- What about notary/ lawyers? - -- What testing/ verification should be done at the end of the ceremony? - - \ No newline at end of file diff --git a/coordinator-admin-deployment.md b/coordinator-admin-deployment.md new file mode 100644 index 0000000..5b17504 --- /dev/null +++ b/coordinator-admin-deployment.md @@ -0,0 +1,133 @@ +# Manager Deployment Process + +## Device list + +| Device Name | Device type | +| --- | --- | +| OS SD - coordinator | class U3 and or V30 or faster | +| Software SD - coordinator | SD card | +| "Used" Laptop | Any with SD I/O | +| Coordinator Server | Server | +| Noise Pubkey SD - coordinator 1 | SD card | +| ... +| Noise Pubkey SD - coordinator N_s + N_m | SD card | + + +## 1. Coordinator start state: + +- at secret date and time, go to secure location with these devices + +| Device Name | Contents | +| --- | --- | +| OS SD - coordinator | None | +| Software SD - coordinator | None | +| "Used" Laptop | Any | +| Coordinator Server | Server | +| Noise Pubkey SD - coordinator 1 | None | +| ... +| Noise Pubkey SD - coordinator N_s + N_m | None | + + +## 2. Preparation + +- set-up live linux environment on "Used" laptop +- download a Linux operating system +- verify the signatures/hashes of the downloaded ISO + +- unseal the faster SD card +- label it as "OS - coordinator" +- "burn" the ISO to SD card + +- unseal another SD card +- label it as "Software - coordinator" +- download the coordinator binary +- verify the signature/hash of the binary +- copy the binary to the SD card + +- Shutdown "Used" Laptop completely + +- Unseal remaining SDs and label as: "Noise Pubkey - Coordinator" + +| Device Name | Contents | +| --- | --- | +| OS SD- _my name_ | Verified OS | +| Software SD - _my name_ | Verified revault and ceremony tool binaries, EFF diceware list | +| "Used" Laptop | Any | +| Coordinator Server | OS, coordinator binary | +| Noise Pubkey SD - coordinator 1 | None | +| ... || +| Noise Pubkey SD - coordinator N_s + N_m | None | + + +## 3. Set-up coordinator server + +- Insert "OS - coordinator" and install OS from SD card +- Insert "Software - coordinator" SD card, copy coordinator binary + +| Device Name | Contents | +| --- | --- | +| OS SD - coordinator | NA | +| Software SD - coordinator | NA | +| "Used" Laptop | Any | +| Coordinator Server | OS, coordinator binary | +| Noise Pubkey SD - coordinator 1 | None | +| ... || +| Noise Pubkey SD - coordinator N_s + N_m | None | + +## 4. Follow set-up wizard + +- Generate noise keys + +| Device Name | Contents | +| --- | --- | +| OS SD - coordinator | NA | +| Software SD - coordinator | NA | +| "Used" Laptop | Any | +| Coordinator Server | OS, coordinator binary | +| Noise Pubkey SD - coordinator 1 | None | +| ... || +| Noise Pubkey SD - coordinator N_s + N_m | None | + + +## 5. Prepare for data-exchange + +- copy noise pubkey to SD cards + + +| Device Name | Contents | +| --- | --- | +| OS SD - coordinator | NA | +| Software SD - coordinator | NA | +| "Used" Laptop | Any | +| Coordinator Server | OS, coordinator binary | +| Noise Pubkey SD - coordinator 1 | Noise Pubkey | +| ... || +| Noise Pubkey SD - coordinator N_s + N_m | Noise Pubkey | + + +## 6. Data-exchange + +- Retrieve "noise pubkey SD" from each participant +- Give "Noise Pubkey SD - coordinator" to each participant + +| Device Name | Contents | +| --- | --- | +| OS SD - coordinator | NA | +| Software SD - coordinator | NA | +| "Used" Laptop | Any | +| Coordinator Server | OS, coordinator binary | +| Noise Pubkey SD - 1 | Noise Pubkey | +| ... || +| Noise Pubkey SD - N_s + N_m | Noise Pubkey | + +## 7. Test all spending paths + +- Use signet or testnet +- Ensure coordinator is running +- Test signing revocation transactions +- Test delegation process +- Test manual cancel +- Test manual emergency +- Test automatic cancel (breach revault policy) + + diff --git a/manager-ceremony-process.md b/manager-ceremony-process.md deleted file mode 100644 index 16d9564..0000000 --- a/manager-ceremony-process.md +++ /dev/null @@ -1,261 +0,0 @@ -# Manager Ceremony Process - -## Device list - -| Device Name | Device type | -| --- | --- | -| OS - _my name_ | class U3 and or V30 or faster | -| Software - _my name_ | ? | -| Laptop 1 | Any with SD reader | -| Laptop 2 | Any with SD reader | -| Backup 1 | Metal | -| Backup 2 | Metal | -| Signing Device - _my name_ | Hardware wallet | -| Noise Pubkey - _my name_ | Any size any speed | -| xpub - _my name_ 1 | Any size any speed | -| . || -| . || -| . || -| xpub - _my name_ N_s + N_m | Any size any speed | -| Revault Device - _my name_ | Any size any speed | - - -## Manager start state: - -| Device Name | Contents | -| --- | --- | -| OS - _my name_ | Verified OS | -| Software - _my name_ | Verified revault and ceremony tool binaries, EFF diceware list | -| Laptop 1 | None | -| Laptop 2 | None | -| Backup 1 | None | -| Backup 2 | None | -| Signing Device - _my name_ | None | -| Noise Pubkey - _my name_ | None | -| xpub - _my name_ 1 | None | -| . || -| . || -| . || -| xpub - _my name_ N_s + N_m | None | -| Revault Device - _my name_ | None | - - -## Prepare Laptops - -| Device Name | Contents | -| --- | --- | -| OS - _my name_ | NA | -| Software - _my name_ | NA | -| Laptop 1 | OS, revault, ceremony tool, EFF diceware list | -| Laptop 2 | OS, revault, ceremony tool, EFF diceware list | -| Backup 1 | None | -| Backup 2 | None | -| Signing Device - _my name_ | None | -| Noise Pubkey - _my name_ | None | -| xpub - _my name_ 1 | None | -| . || -| . || -| . || -| xpub - _my name_ N_s + N_m | None | -| Revault Device - _my name_ | None | - -## Generate Seed Mnemonic and derive keys - -Steps: - -- (if required, label the dice) -- open the EFF Diceware list, on both latops -- roll 100 dice (20 rolls of 5 dice or equivalent), while stamping/writing on the backups. -- on the EFF Diceware list, for each 5 dice scroll to find the corresponding word. (Scroll, do not type anything). - - copy the word, paste it on the key generation software (need name and format for this.). Do this on both laptops. - - write down the word on a backup paper sheet - - once all words have been written down, and copy-pasted, do one last check they match. -- click "generate" on the software on both computers - - check that the results are identical on both computers - - write down the resulting mnemonics (optional, recommended) on paper - -| Device Name | Contents | -| --- | --- | -| OS - _my name_ | NA | -| Software - _my name_ | NA | -| Laptop 1 | OS, revault, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey | -| Laptop 2 | OS, revault, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey | -| Backup 1 | mnemonic seed | -| Backup 2 | mnemonic seed | -| Signing Device - _my name_ | None | -| Noise Pubkey - _my name_ | None | -| xpub - _my name_ 1 | None | -| . || -| . || -| . || -| xpub - _my name_ N_s + N_m | None | -| Revault Device - _my name_ | None | - -## Load public data to share - -| Device Name | Contents | -| --- | --- | -| OS - _my name_ | NA | -| Software - _my name_ | NA | -| Laptop 1 | OS, revault, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey | -| Laptop 2 | OS, revault, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey | -| Backup 1 | mnemonic seed | -| Backup 2 | mnemonic seed | -| Signing Device - _my name_ | None | -| Noise Pubkey - _my name_ | noise pubkey | -| xpub - _my name_ 1 | xpub | -| . || -| . || -| . || -| xpub - _my name_ N_s + N_m | xpub | -| Revault Device - _my name_ | None | - - -## Share all pub data among participants and coordinator noise pubkey, move to laptops - -| Device Name | Contents | -| --- | --- | -| OS - _my name_ | NA | -| Software - _my name_ | NA | -| Laptop 1 | OS, revault, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey | -| Laptop 2 | OS, revault, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey | -| Backup 1 | mnemonic seed | -| Backup 2 | mnemonic seed | -| Signing Device - _my name_ | None | -| Coordinator Noise Pubkey | Coordinator noise pubkey | -| xpub - stk 1 | xpub stk 1 | -| . || -| . || -| . || -| xpub - stk N_s | xpub stk N_s | -| xpub - man 1 | xpub man 1 | -| . || -| . || -| . || -| xpub - man N_m | xpub man N_m | -| Revault Device - _my name_ | None | - -## Generate miniscript descriptors and emergency descriptor - -- Click generete on both laptops -- Verify resulting descriptors match - -| Device Name | Contents | -| --- | --- | -| OS - _my name_ | NA | -| Software - _my name_ | NA | -| Laptop 1 | OS, revault, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | -| Laptop 2 | OS, revault, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | -| Backup 1 | mnemonic seed | -| Backup 2 | mnemonic seed | -| Signing Device - _my name_ | None | -| Coordinator Noise Pubkey | Coordinator noise pubkey | -| xpub - stk 1 | xpub stk 1 | -| . || -| . || -| . || -| xpub - stk N_s | xpub stk N_s | -| xpub - man 1 | xpub man 1 | -| . || -| . || -| . || -| xpub - man N_m | xpub man N_m | -| Revault Device - _my name_ | None | - -# Load the signing device - -| Device Name | Contents | -| --- | --- | -| OS - _my name_ | NA | -| Software - _my name_ | NA | -| Laptop 1 | OS, revault, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | -| Laptop 2 | OS, revault, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | -| Backup 1 | mnemonic seed | -| Backup 2 | mnemonic seed | -| Signing Device - _my name_ | xpriv, deployment miniscript descriptors | -| Coordinator Noise Pubkey | Coordinator noise pubkey | -| xpub - stk 1 | xpub stk 1 | -| . || -| . || -| . || -| xpub - stk N_s | xpub stk N_s | -| xpub - man 1 | xpub man 1 | -| . || -| . || -| . || -| xpub - man N_m | xpub man N_m | -| Revault Device - _my name_ | None | - -# Load the revault transport device - -| Device Name | Contents | -| --- | --- | -| OS - _my name_ | NA | -| Software - _my name_ | NA | -| Laptop 1 | OS, revault, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | -| Laptop 2 | OS, revault, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | -| Backup 1 | mnemonic seed | -| Backup 2 | mnemonic seed | -| Signing Device - _my name_ | xpriv, deployment miniscript descriptors | -| Coordinator Noise Pubkey | Coordinator noise pubkey | -| xpub - stk 1 | xpub stk 1 | -| . || -| . || -| . || -| xpub - stk N_s | xpub stk N_s | -| xpub - man 1 | xpub man 1 | -| . || -| . || -| . || -| xpub - man N_m | xpub man N_m | -| Revault Device - _my name_ | revault binary, noise privkey, deployment miniscript descriptor, emergency descriptor, coordinator noise pubkey | - - -## Complete Backups - -| Device Name | Contents | -| --- | --- | -| OS - _my name_ | NA | -| Software - _my name_ | NA | -| Laptop 1 | OS, revault, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | -| Laptop 2 | OS, revault, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | -| Backup 1 | mnemonic seed, deployment miniscript descriptor? | -| Backup 2 | mnemonic seed, deployment miniscript descriptor? | -| Signing Device - _my name_ | xpriv, deployment miniscript descriptors | -| Coordinator Noise Pubkey | Coordinator noise pubkey | -| xpub - stk 1 | xpub stk 1 | -| . || -| . || -| . || -| xpub - stk N_s | xpub stk N_s | -| xpub - man 1 | xpub man 1 | -| . || -| . || -| . || -| xpub - man N_m | xpub man N_m | -| Revault Device - _my name_ | revault binary, noise privkey, deployment miniscript descriptor, emergency descriptor, coordinator noise pubkey | - - -## Destroy all unnecessary sensitive material - -| Device Name | Contents | -| --- | --- | -| OS - _my name_ | Destroyed | -| Software - _my name_ | Destroyed | -| Laptop 1 | Destroyed | -| Laptop 2 | Destroyed | -| Backup 1 | mnemonic seed, deployment miniscript descriptor? | -| Backup 2 | mnemonic seed, deployment miniscript descriptor? | -| Signing Device - _my name_ | xpriv, deployment miniscript descriptors | -| Coordinator Noise Pubkey | Destroyed | -| xpub - stk 1 | Destroyed | -| . || -| . || -| . || -| xpub - stk N_s | Destroyed | -| xpub - man 1 | Destroyed | -| . || -| . || -| . || -| xpub - man N_m | Destroyed | -| Revault Device - _my name_ | revault binary, noise privkey, deployment miniscript descriptor, emergency descriptor, coordinator noise pubkey | \ No newline at end of file diff --git a/manager-deployment.md b/manager-deployment.md new file mode 100644 index 0000000..add731d --- /dev/null +++ b/manager-deployment.md @@ -0,0 +1,221 @@ +# Manager Deployment Process + +## Device list + +| Device Name | Device type | +| --- | --- | +| OS SD - _my name_ | class U3 and or V30 or faster | +| Software SD - _my name_ | SD card | +| "Used" Laptop | Any with SD I/O | +| New Laptop 1 | Any with SD I/O | +| New Laptop 2 | Any with SD I/O | +| Backup 1 | Metal | +| Backup 2 | Metal | +| Signing Device - _my name_ | Hardware wallet | +| Revault SD - _my name_ | Any size any speed | +| Noise Pubkey SD - _my name_ | SD card | + + +- "used" laptop could be the live deployment laptop + +## 1. Manager start state: + +- at secret date and time, go to secure location with these devices + +| Device Name | Contents | +| --- | --- | +| OS - _my name_ | None | +| Software - _my name_ | None | +| "Used" Laptop | Any | +| New Laptop 1 | None | +| New Laptop 2 | None | +| Backup 1 | None | +| Backup 2 | None | +| Signing Device - _my name_ | None | +| Revault SD - _my name_ | None | +| Noise Pubkey SD - _my name_ | None | + + +## 2. Preparation + +- set-up live linux environment on "Used" laptop +- download a Linux operating system +- verify the signatures/hashes of the downloaded ISO +- unseal the faster SD card +- label it as "OS - _my name_" +- "burn" the ISO to SD card + +- download the ceremony tool binary +- download the revault binary +- download bitcoin binary +- verify the signatures/hashes of each binary + +- unseal another SD card +- label it as "Software - _my name_" +- copy the binaries to the SD card +- Shutdown "Used" Laptop completely + +- Unseal remaining SD card and label as "Revault SD - _my name_" + +| Device Name | Contents | +| --- | --- | +| OS SD- _my name_ | Verified OS | +| Software SD - _my name_ | Verified revault and ceremony tool binaries | +| "Used" Laptop | Any | +| New Laptop 1 | None | +| New Laptop 2 | None | +| Backup 1 | None | +| Backup 2 | None | +| Signing Device - _my name_ | None | +| Revault SD - _my name_ | None | +| Noise Pubkey SD - _my name_ | None | + + +## 3. Set-up new laptops + +For both new laptops: + +- Unseal the new laptop box + - DO NOT BOOT. + - use the screwdriver to open the laptop + - remove the wifi card if possible, if not at least disconnect the antennas. +- Insert "OS - _my name_" and install (boot?) OS from SD card +- Insert "Software - _my name_" SD card, copy all files to laptop + +| Device Name | Contents | +| --- | --- | +| OS SD - _my name_ | NA | +| Software SD - _my name_ | NA | +| "Used" Laptop | NA | +| New Laptop 1 | OS, revault, ceremony tool | +| New Laptop 2 | OS, revault, ceremony tool | +| Backup 1 | None | +| Backup 2 | None | +| Signing Device - _my name_ | None | +| Revault SD - _my name_ | None | +| Noise Pubkey SD - _my name_ | None | + + +## 4. Generate Seed Mnemonic and derive keys + +Steps: + +- (if required) label the dice +- start the ceremony tool on both new laptops +- prepare the backups (to write/ stamp words) +- roll 100 dice (20 throws of 5 dice) and for each throw: + - type 5 numbers into both laptops as indicated by ceremony tool + + read dice left to right, exactly how they fall + + check the displayed word matches on both laptops with each set of 5 numbers (if not, restart ceremony tool and dice rolling) + - at the end entire mnemonic is displayed + - compare mnemonic on both laptops and ensure they match (if not, restart ceremony tool and dice rolling) + - write down/ stamp the word onto the correct backups + + +| Device Name | Contents | +| --- | --- | +| OS SD - _my name_ | NA | +| Software SD - _my name_ | NA | +| "Used" Laptop | NA | +| New Laptop 1 | OS, revault, ceremony tool, mnemonic seed, manager (xpriv, xpub), cpfp (xpriv, xpub), noise (privkey, pubkey)| +| New Laptop 2 | OS, revault, ceremony tool, mnemonic seed, manager (xpriv, xpub), cpfp (xpriv, xpub), noise (privkey, pubkey)| +| Backup 1 | mnemonic seed | +| Backup 2 | mnemonic seed | +| Signing Device - _my name_ | None | +| Revault SD - _my name_ | None | +| Noise Pubkey SD - _my name_ | None | + + +## 5. Move sensitive data + +- import mnemonic seed to signing device +- Using ceremony tool, insert the designated SD card to copy data: + + copy revault binary, unvault xpub 0, cpfp xpub 0 and noise 0 (privkey, pubkey) to "Revault SD - _my name_" to prepare for set-up + + copy noise 0 pubkey to "Noise Pubkey SD - _my name_" for coordinator + + +| Device Name | Contents | +| --- | --- | +| OS SD - _my name_ | NA | +| Software SD - _my name_ | NA | +| "Used" Laptop | NA | +| New Laptop 1 | OS, revault, ceremony tool, mnemonic seed, manager (xpriv, xpub), cpfp (xpriv, xpub), noise (privkey, pubkey)| +| New Laptop 2 | OS, revault, ceremony tool, mnemonic seed, manager (xpriv, xpub), cpfp (xpriv, xpub), noise (privkey, pubkey)| +| Backup 1 | mnemonic seed | +| Backup 2 | mnemonic seed | +| Signing Device - _my name_ | unvault (xpriv, xpub)| +| Revault SD - _my name_ | revault, unvault xpub 0, cpfp 0 (xpriv, xpub), noise 0 (privkey, pubkey) | +| Noise Pubkey SD - _my name_ | noise 0 pubkey | + +## 6. Destroy new laptops + +- Totally destory the new laptops (recommendations?) +- Leave the secure location with all devices because next steps are interactive + +| Device Name | Contents | +| --- | --- | +| OS SD - _my name_ | NA | +| Software SD - _my name_ | NA | +| "Used" Laptop | NA | +| New Laptop 1 | Destroyed | +| New Laptop 2 | Destroyed | +| Backup 1 | mnemonic seed | +| Backup 2 | mnemonic seed | +| Signing Device - _my name_ | unvault (xpriv, xpub)| +| Revault SD - _my name_ | revault, unvault xpub 0, cpfp 0 (xpriv, xpub), noise 0 (privkey, pubkey) | +| Noise Pubkey SD - _my name_ | noise 0 pubkey | + +## 7. Coordinator communication data-exchange + +- retrieve "Noise Pubkey SD - coordinator" from coordinator admin +- give "Noise Pubkey SD - _my name_" to coordinator admin + +## 8. Xpub exchange + +- Turn on "Used" laptop +- insert Revault SD and open revault binary (or yet another revault set-up tool?) +- (automatically) communicate with each other participant + - send my unvault xpub 0 + - get all stakeholders' vault xpub 0 + - get all other managers' unvault xpub 0 + - Communication routed through coordinator (to avoid copy paste of everything) +- import vault xpubs to signing device + + +| Device Name | Contents | +| --- | --- | +| OS SD - _my name_ | NA | +| Software SD - _my name_ | NA | +| "Used" Laptop | Revault binary, all participants vault/unvault 0 xpubs | +| New Laptop 1 | Destroyed | +| New Laptop 2 | Destroyed | +| Backup 1 | mnemonic seed | +| Backup 2 | mnemonic seed | +| Signing Device - _my name_ | unvault (xpriv, xpub), all participants vault/unvault 0 xpubs| +| Revault SD - _my name_ | revault, unvault xpub 0, cpfp 0 (xpriv, xpub), noise 0 (privkey, pubkey) | +| Noise Pubkey SD - _my name_ | noise 0 pubkey | + +## 9. Descriptor and Address verification + +- Managers check with each other participant that the wallet descriptors match each others' + +## Safeguard back-ups + +- Move each unvault back-up to a separate secure environment + +## Set-up laptop + +- Insert "Revault SD _my name_" into deployment laptop +- Install revault binary and follow set-up wizard + +## Test all spending paths + +- Use signet or testnet +- Ensure coordinator is running +- Test signing revocation transactions +- Test delegation process +- Test manual cancel +- Test manual emergency +- Test automatic cancel (breach revault policy) + + diff --git a/stakeholder-ceremony-process.md b/stakeholder-ceremony-process.md deleted file mode 100644 index cfaedcb..0000000 --- a/stakeholder-ceremony-process.md +++ /dev/null @@ -1,328 +0,0 @@ -# Stakeholder Ceremony Process - -## Device list - -| Device Name | Device type | -| --- | --- | -| OS - _my name_ | class U3 and or V30 or faster | -| Software - _my name_ | ? | -| Laptop 1 | Any with SD reader | -| Laptop 2 | Any with SD reader | -| Vault Backup 1 | Metal | -| Vault Backup 2 | Metal | -| Emergency Backup 1 | Archival Paper | -| Emergency Backup 2 | Archival Paper | -| Signing Device - _my name_ | Hardware wallet | -| Noise Pubkey - _my name_ | Any size any speed | -| xpub - _my name_ 1 | Any size any speed | -| . || -| . || -| . || -| xpub - _my name_ N_s + N_m | Any size any speed | -| Revault Device - _my name_ | Any size any speed | -| Watchtower - _my name_ | Any size any speed | - - -## Stakeholder start state: - -| Device Name | Contents | -| --- | --- | -| OS - _my name_ | Verified OS | -| Software - _my name_ | Verified revault, watchtower and ceremony tool binaries, EFF diceware list | -| Laptop 1 | None | -| Laptop 2 | None | -| Vault Backup 1 | None | -| Vault Backup 2 | None | -| Emergency Backup 1 | None | -| Emergency Backup 2 | None | -| Signing Device - _my name_ | None | -| Noise Pubkey - _my name_ | None | -| xpub - _my name_ 1 | None | -| . || -| . || -| . || -| xpub - _my name_ N_s + N_m | None | -| Revault Device - _my name_ | None | -| Watchtower - _my name_ | None | - - -## Prepare Laptops - -- Unseal the laptop boxes - - DO NOT BOOT. - - use the screwdriver to open the laptops - - remove the wifi card if possible, if not at least disconnect the antennas. -- Install OS transport device (20 min per laptop?) -- Insert software transport device, copy all file to laptop - -| Device Name | Contents | -| --- | --- | -| OS - _my name_ | NA | -| Software - _my name_ | NA | -| Laptop 1 | OS, revault, watchtower, ceremony tool, EFF diceware list | -| Laptop 2 | OS, revault, watchtower, ceremony tool, EFF diceware list | -| Vault Backup 1 | None | -| Vault Backup 2 | None | -| Emergency Backup 1 | None | -| Emergency Backup 2 | None | -| Signing Device - _my name_ | None | -| Noise Pubkey - _my name_ | None | -| xpub - _my name_ 1 | None | -| . || -| . || -| . || -| xpub - _my name_ N_s + N_m | None | -| Revault Device - _my name_ | None | -| Watchtower - _my name_ | None | - -## Generate Seed Mnemonic and derive keys - -Steps: - -- (if required, label the dice) -- open the EFF Diceware list, on both latops -- roll 100 dice (20 rolls of 5 dice or equivalent), while stamping/writing on the backups. -- on the EFF Diceware list, for each 5 dice scroll to find the corresponding word. (Scroll, do not type anything). - - copy the word, paste it on the key generation software (need name and format for this.). Do this on both laptops. - - write down the word on a backup paper sheet - - once all words have been written down, and copy-pasted, do one last check they match. -- click "generate" on the software on both computers - - check that the results are identical on both computers - - write down the resulting mnemonics (optional, recommended) on paper - -| Device Name | Contents | -| --- | --- | -| OS - _my name_ | NA | -| Software - _my name_ | NA | -| Laptop 1 | OS, revault, watchtower, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, wt xpriv, wt noise privkey | -| Laptop 2 | OS, revault, watchtower, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, wt xpriv, wt noise privkey | -| Vault Backup 1 | mnemonic seed | -| Vault Backup 2 | mnemonic seed | -| Emergency Backup 1 | (alt) mnemonic seed | -| Emergency Backup 2 | (alt) mnemonic seed | -| Signing Device - _my name_ | None | -| Noise Pubkey - _my name_ | None | -| xpub - _my name_ 1 | None | -| . || -| . || -| . || -| xpub - _my name_ N_s + N_m | None | -| Revault Device - _my name_ | None | -| Watchtower - _my name_ | None | - -## Load public data to share - -| Device Name | Contents | -| --- | --- | -| OS - _my name_ | NA | -| Software - _my name_ | NA | -| Laptop 1 | OS, revault, watchtower, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, wt xpriv, wt noise privkey | -| Laptop 2 | OS, revault, watchtower, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, wt xpriv, wt noise privkey | -| Vault Backup 1 | mnemonic seed | -| Vault Backup 2 | mnemonic seed | -| Emergency Backup 1 | (alt) mnemonic seed | -| Emergency Backup 2 | (alt) mnemonic seed | -| Signing Device - _my name_ | None | -| Noise Pubkey - _my name_ | noise pubkey | -| xpub - _my name_ 1 | xpub | -| . || -| . || -| . || -| xpub - _my name_ N_s + N_m | xpub | -| Revault Device - _my name_ | None | -| Watchtower - _my name_ | None | - - -## Share all pub data among participants and pick up coordinator noise pubkey, move to laptops - -| Device Name | Contents | -| --- | --- | -| OS - _my name_ | NA | -| Software - _my name_ | NA | -| Laptop 1 | OS, revault, watchtower, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, wt xpriv, wt noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey | -| Laptop 2 | OS, revault, watchtower, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, wt xpriv, wt noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey | -| Vault Backup 1 | mnemonic seed | -| Vault Backup 2 | mnemonic seed | -| Emergency Backup 1 | (alt) mnemonic seed | -| Emergency Backup 2 | (alt) mnemonic seed | -| Signing Device - _my name_ | None | -| Coordinator Noise Pubkey | Coordinator noise pubkey | -| xpub - stk 1 | xpub stk 1 | -| . || -| . || -| . || -| xpub - stk N_s | xpub stk N_s | -| xpub - man 1 | xpub man 1 | -| . || -| . || -| . || -| xpub - man N_m | xpub man N_m | -| Revault Device - _my name_ | None | -| Watchtower - _my name_ | None | - -## Generate miniscript descriptors and emergency descriptor - -- Click generete on both laptops -- Verify resulting descriptors match - -| Device Name | Contents | -| --- | --- | -| OS - _my name_ | NA | -| Software - _my name_ | NA | -| Laptop 1 | OS, revault, watchtower, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, wt xpriv, wt noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | -| Laptop 2 | OS, revault, watchtower, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, wt xpriv, wt noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | -| Vault Backup 1 | mnemonic seed | -| Vault Backup 2 | mnemonic seed | -| Emergency Backup 1 | (alt) mnemonic seed | -| Emergency Backup 2 | (alt) mnemonic seed | -| Signing Device - _my name_ | None | -| Coordinator Noise Pubkey | Coordinator noise pubkey | -| xpub - stk 1 | xpub stk 1 | -| . || -| . || -| . || -| xpub - stk N_s | xpub stk N_s | -| xpub - man 1 | xpub man 1 | -| . || -| . || -| . || -| xpub - man N_m | xpub man N_m | -| Revault Device - _my name_ | None | -| Watchtower - _my name_ | None | - -# Load the signing device - -| Device Name | Contents | -| --- | --- | -| OS - _my name_ | NA | -| Software - _my name_ | NA | -| Laptop 1 | OS, revault, watchtower, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, wt xpriv, wt noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | -| Laptop 2 | OS, revault, watchtower, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, wt xpriv, wt noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | -| Vault Backup 1 | mnemonic seed | -| Vault Backup 2 | mnemonic seed | -| Emergency Backup 1 | (alt) mnemonic seed | -| Emergency Backup 2 | (alt) mnemonic seed | -| Signing Device - _my name_ | xpriv, deployment miniscript descriptors | -| Coordinator Noise Pubkey | Coordinator noise pubkey | -| xpub - stk 1 | xpub stk 1 | -| . || -| . || -| . || -| xpub - stk N_s | xpub stk N_s | -| xpub - man 1 | xpub man 1 | -| . || -| . || -| . || -| xpub - man N_m | xpub man N_m | -| Revault Device - _my name_ | None | -| Watchtower - _my name_ | None | - -# Load the revault transport device - -| Device Name | Contents | -| --- | --- | -| OS - _my name_ | NA | -| Software - _my name_ | NA | -| Laptop 1 | OS, revault, watchtower, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, wt xpriv, wt noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | -| Laptop 2 | OS, revault, watchtower, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, wt xpriv, wt noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | -| Vault Backup 1 | mnemonic seed | -| Vault Backup 2 | mnemonic seed | -| Emergency Backup 1 | (alt) mnemonic seed | -| Emergency Backup 2 | (alt) mnemonic seed | -| Signing Device - _my name_ | xpriv, deployment miniscript descriptors | -| Coordinator Noise Pubkey | Coordinator noise pubkey | -| xpub - stk 1 | xpub stk 1 | -| . || -| . || -| . || -| xpub - stk N_s | xpub stk N_s | -| xpub - man 1 | xpub man 1 | -| . || -| . || -| . || -| xpub - man N_m | xpub man N_m | -| Revault Device - _my name_ | revault binary, noise privkey, deployment miniscript descriptor, emergency descriptor, wt noise pubkey, coordinator noise pubkey | -| Watchtower - _my name_ | None | - -# Load watchtower transport device - -| Device Name | Contents | -| --- | --- | -| OS - _my name_ | NA | -| Software - _my name_ | NA | -| Laptop 1 | OS, revault, watchtower, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, wt xpriv, wt noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | -| Laptop 2 | OS, revault, watchtower, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, wt xpriv, wt noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | -| Vault Backup 1 | mnemonic seed | -| Vault Backup 2 | mnemonic seed | -| Emergency Backup 1 | (alt) mnemonic seed | -| Emergency Backup 2 | (alt) mnemonic seed | -| Signing Device - _my name_ | xpriv, deployment miniscript descriptors | -| Coordinator Noise Pubkey | Coordinator noise pubkey | -| xpub - stk 1 | xpub stk 1 | -| . || -| . || -| . || -| xpub - stk N_s | xpub stk N_s | -| xpub - man 1 | xpub man 1 | -| . || -| . || -| . || -| xpub - man N_m | xpub man N_m | -| Revault Device - _my name_ | revault binary, noise privkey, deployment miniscript descriptor, emergency descriptor, wt noise pubkey, coordinator noise pubkey | -| Watchtower - _my name_ | watchtower binary, wt xpriv, wt noise privkey, my noise pubkey, deployment miniscript descriptor, coordinator noise pubkey, emergency descriptor | - - -## Complete Backups - -| Device Name | Contents | -| --- | --- | -| OS - _my name_ | NA | -| Software - _my name_ | NA | -| Laptop 1 | OS, revault, watchtower, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, wt xpriv, wt noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | -| Laptop 2 | OS, revault, watchtower, ceremony tool, EFF diceware list, mnemonic seed, xpriv, noise privkey, wt xpriv, wt noise privkey, {xpub for s in S}, {xpub for m in M}, coordinator noise pubkey, deployment miniscript descriptor, emergency descriptor | -| Vault Backup 1 | mnemonic seed, deployment miniscript descriptor? | -| Vault Backup 2 | mnemonic seed, deployment miniscript descriptor? | -| Emergency Backup 1 | (alt) mnemonic seed, emergency descriptor | -| Emergency Backup 2 | (alt) mnemonic seed, emergency descriptor | -| Signing Device - _my name_ | xpriv, deployment miniscript descriptors | -| Coordinator Noise Pubkey | Coordinator noise pubkey | -| xpub - stk 1 | xpub stk 1 | -| . || -| . || -| . || -| xpub - stk N_s | xpub stk N_s | -| xpub - man 1 | xpub man 1 | -| . || -| . || -| . || -| xpub - man N_m | xpub man N_m | -| Revault Device - _my name_ | revault binary, noise privkey, deployment miniscript descriptor, emergency descriptor, wt noise pubkey, coordinator noise pubkey | -| Watchtower - _my name_ | watchtower binary, wt xpriv, wt noise privkey, my noise pubkey, deployment miniscript descriptor, coordinator noise pubkey, emergency descriptor | - - -## Destroy all unnecessary sensitive material - -| Device Name | Contents | -| --- | --- | -| OS - _my name_ | Destroyed | -| Software - _my name_ | Destroyed | -| Laptop 1 | Destroyed | -| Laptop 2 | Destroyed | -| Vault Backup 1 | mnemonic seed, deployment miniscript descriptor? | -| Vault Backup 2 | mnemonic seed, deployment miniscript descriptor? | -| Emergency Backup 1 | (alt) mnemonic seed, emergency descriptor | -| Emergency Backup 2 | (alt) mnemonic seed, emergency descriptor | -| Signing Device - _my name_ | xpriv, deployment miniscript descriptors | -| Coordinator Noise Pubkey | Destroyed | -| xpub - stk 1 | Destroyed | -| . || -| . || -| . || -| xpub - stk N_s | Destroyed | -| xpub - man 1 | Destroyed | -| . || -| . || -| . || -| xpub - man N_m | Destroyed | -| Revault Device - _my name_ | revault binary, noise privkey, deployment miniscript descriptor, emergency descriptor, wt noise pubkey, coordinator noise pubkey | -| Watchtower - _my name_ | watchtower binary, wt xpriv, wt noise privkey, my noise pubkey, deployment miniscript descriptor, coordinator noise pubkey, emergency descriptor | \ No newline at end of file diff --git a/stakeholder-deployment.md b/stakeholder-deployment.md new file mode 100644 index 0000000..e0b1e77 --- /dev/null +++ b/stakeholder-deployment.md @@ -0,0 +1,327 @@ +--- +geometry: margin=2cm +--- + +# Stakeholder Deployment Process + +## Device list + +| Device Name | Device type | +| --- | --- | +| OS SD - _my name_ | class U3 and or V30 or faster | +| Software SD - _my name_ | SD card | +| "Used" Laptop | Any with SD I/O | +| New Laptop 1 | Any with SD I/O | +| New Laptop 2 | Any with SD I/O | +| Vault Backup 1 | Metal | +| Vault Backup 2 | Metal | +| Emergency Backup 1 | Archival Paper | +| Emergency Backup 2 | Archival Paper | +| Signing Device - _my name_ | Hardware wallet | +| Revault SD - _my name_ | Any size any speed | +| Watchtower SD - _my name_ | Any size any speed | +| Emergency Pubkey SD - _my name_ 1 | SD card | +| ... | | +| Emergency Pubkey SD - _my name_ N_s| SD card | +| Emergency Pubkey SD - external 1 | SD card | +| ... | | +| Emergency Pubkey SD - external X | SD card | +| Noise Pubkey SD - _my name_ |SD card | + + +- "Used" laptop could be the live deployment laptop +- Retrieve emergency pubkey SD card from each external party associated with _this stakeholder_ participating in the emergency policy. + +## 1. Stakeholder start state: + +- at secret date and time, go to secure location with these devices + +| Device Name | Contents | +| --- | --- | +| OS - _my name_ | None | +| Software - _my name_ | None | +| "Used" Laptop | Any | +| New Laptop 1 | None | +| New Laptop 2 | None | +| Vault Backup 1 | None | +| Vault Backup 2 | None | +| Emergency Backup 1 | None | +| Emergency Backup 2 | None | +| Signing Device - _my name_ | None | +| Revault SD - _my name_ | None | +| Watchtower SD - _my name_ | None | +| Emergency Pubkey SD - _my name_ 1 | None | +| ... | | +| Emergency Pubkey SD - _my name_ N_s| None | +| Emergency Pubkey SD - external 1 | extern pubkey 1 | +| ... | | +| Emergency Pubkey SD - external X | extern pubkey X | +| Noise Pubkey SD - _my name_ | None | + + +## 2. Preparation + +- set-up live linux environment on "Used" laptop +- download a Linux operating system +- verify the signatures/hashes of the downloaded ISO +- unseal the faster SD card +- label it as "OS - _my name_" +- "burn" the ISO to SD card + +- download the ceremony tool binary +- download the revault binary +- download bitcoin binary +- download the watchtower binary +- verify the signatures/hashes of each binary + +- unseal another SD card +- label it as "Software - _my name_" +- copy the binaries to the SD card + +- Shutdown "Used" Laptop completely + +- Unseal remaining SD cards and label: + - one of them "Revault SD - _my name_" + - one of them "Watchtower SD - _my name_" + + - one of them "Emergency Pubkey SD - _my name_" + +| Device Name | Contents | +| --- | --- | +| OS SD- _my name_ | Verified OS | +| Software SD - _my name_ | Verified revault, watchtower and ceremony tool binaries | +| "Used" Laptop | Any | +| New Laptop 1 | None | +| New Laptop 2 | None | +| Vault Backup 1 | None | +| Vault Backup 2 | None | +| Emergency Backup 1 | None | +| Emergency Backup 2 | None | +| Signing Device - _my name_ | None | +| Revault SD - _my name_ | None | +| Watchtower SD - _my name_ | None | +| Emergency Pubkey SD - _my name_ 1 | None | +| ... | | +| Emergency Pubkey SD - _my name_ N_s| None | +| Emergency Pubkey SD - external 1 | extern pubkey 1 | +| ... | | +| Emergency Pubkey SD - external X | extern pubkey X | +| Noise Pubkey SD - _my name_ | None | + +## 3. Set-up new laptops + +For both new laptops: + +- Unseal the new laptop box + - DO NOT BOOT. + - use the screwdriver to open the laptop + - remove the wifi card if possible, if not at least disconnect the antennas. +- Insert "OS - _my name_" and install (boot?) OS from SD card +- Insert "Software - _my name_" SD card, copy all files to laptop + +| Device Name | Contents | +| --- | --- | +| OS SD - _my name_ | NA | +| Software SD - _my name_ | NA | +| "Used" Laptop | NA | +| New Laptop 1 | OS, revault, watchtower, ceremony tool | +| New Laptop 2 | OS, revault, watchtower, ceremony tool | +| Vault Backup 1 | None | +| Vault Backup 2 | None | +| Emergency Backup 1 | None | +| Emergency Backup 2 | None | +| Signing Device - _my name_ | None | +| Revault SD - _my name_ | None | +| Watchtower SD - _my name_ | None | +| Emergency Pubkey SD - _my name_ 1 | None | +| ... | | +| Emergency Pubkey SD - _my name_ N_s| None | +| Emergency Pubkey SD - external 1 | extern pubkey 1 | +| ... | | +| Emergency Pubkey SD - external X | extern pubkey X | +| Noise Pubkey SD - _my name_ | None | + +## 4. Generate Seed Mnemonic and derive keys + +Steps: + +- (if required) label the dice +- start the ceremony tool on both new laptops +- prepare the vault and emergency backups (to write/ stamp words) +- roll 100 dice (20 throws of 5 dice) and for each throw: + - type 5 numbers into both laptops as indicated by ceremony tool + + read dice left to right, exactly how they fall + + check the displayed word matches on both laptops with each set of 5 numbers (if not, restart ceremony tool and dice rolling) + - at the end, two mnemonics displayed; one for vault and one for emergency + - compare on both laptops and ensure they match (if not, restart ceremony tool and dice rolling) + - write down/ stamp the word onto the correct backups + +| Device Name | Contents | +| --- | --- | +| OS SD - _my name_ | NA | +| Software SD - _my name_ | NA | +| "Used" Laptop | NA | +| New Laptop 1 | OS, revault, watchtower, ceremony tool, mnemonic seed, vault (xpriv, xpub), emergency (xpriv, xpub), noise (privkey, pubkey), WT (xpriv, xpub), WT noise (privkey, pubkey) | +| New Laptop 2 | OS, revault, watchtower, ceremony tool, mnemonic seed, vault (xpriv, xpub), emergency (xpriv, xpub), noise (privkey, pubkey), WT (xpriv, xpub), WT noise (privkey, pubkey) | +| Vault Backup 1 | vault mnemonic seed | +| Vault Backup 2 | vault mnemonic seed | +| Emergency Backup 1 | emergency mnemonic seed | +| Emergency Backup 2 | emergency mnemonic seed | +| Signing Device - _my name_ | None | +| Revault SD - _my name_ | None | +| Watchtower SD - _my name_ | None | +| Emergency Pubkey SD - _my name_ 1 | None | +| ... | | +| Emergency Pubkey SD - _my name_ N_s| None | +| Emergency Pubkey SD - external 1 | extern pubkey 1 | +| ... | | +| Emergency Pubkey SD - external X | extern pubkey X | +| Noise Pubkey SD - _my name_ | None | + + +## 5. Move sensitive data + +- import vault seed into signing device +- Using ceremony tool, insert the designated SD card to copy data: + + copy all external emergency pubkeys from SD cards onto new laptops + + import emergency pubkeys to signing device + + copy my emergency 0 pubkey to N_s SD cards named "Emergency pubkey - _my name_" + + copy revault binary, Vault 0 xpub, emergency 0 pubkey, noise 0 (privkey,pubkey) and WT 0 noise pubkey to "Revault SD - _my name_" to prepare for set-up + + copy watchtower binary, vault 0 xpub, noise 0 pubkey, WT 0 (xpriv, xpub), WT 0 noise (privkey, pubkey) to "watchtower SD - _my name_" to prepare for set-up + + copy my noise pubkey 0 to "Noise Pubkey SD - _my name_" + + +| Device Name | Contents | +| --- | --- | +| OS SD - _my name_ | NA | +| Software SD - _my name_ | NA | +| "Used" Laptop | NA | +| New Laptop 1 | OS, revault, watchtower, ceremony tool, mnemonic seed, vault (xpriv, xpub), emergency(xpriv, xpub), noise (privkey, pubkey), WT (xpriv, xpub), WT noise (privkey, pubkey) | +| New Laptop 2 | OS, revault, watchtower, ceremony tool, mnemonic seed, vault (xpriv, xpub), emergency(xpriv, xpub), noise (privkey, pubkey), WT (xpriv, xpub), WT noise (privkey, pubkey) | +| Vault Backup 1 | vault mnemonic seed | +| Vault Backup 2 | vault mnemonic seed | +| Emergency Backup 1 | emergency mnemonic seed | +| Emergency Backup 2 | emergency mnemonic seed | +| Signing Device - _my name_ | vault (xpriv, xpub), emergency 0-100 pubkeys | +| Revault SD - _my name_ | revault, vault 0 xpub, emergency 0 pubkey, noise 0 (privkey, pubkey), WT 0 noise pubkey | +| Watchtower SD - _my name_ | watchtower, vault 0 xpub, noise 0 pubkey, WT 0 (xpriv, xpub), WT 0 noise (privkey, pubkey) | +| Emergency Pubkey SD - _my name_ 1 | emergency 0 pubkey, extern pubkey 1, ..., extern pubkey X | +| ... | | +| Emergency Pubkey SD - _my name_ N_s| emergency 0 pubkey, extern pubkey 1, ..., extern pubkey X | +| Emergency Pubkey SD - external 1 | extern pubkey 1 | +| ... | | +| Emergency Pubkey SD - external X | extern pubkey X | +| Noise Pubkey SD - _my name_ | noise pubkey | + +## 6. Destroy new laptops & external emergency SD cards + +- Totally destory the new laptops (recommendations?) +- Totally destroy all emergency pubkey SD cards from external parties +- Leave the secure location with all devices because next steps are interactive + +| Device Name | Contents | +| --- | --- | +| OS SD - _my name_ | NA | +| Software SD - _my name_ | NA | +| "Used" Laptop | NA | +| New Laptop 1 | Destroyed | +| New Laptop 2 | Destroyed | +| Vault Backup 1 | vault mnemonic seed | +| Vault Backup 2 | vault mnemonic seed | +| Emergency Backup 1 | emergency mnemonic seed | +| Emergency Backup 2 | emergency mnemonic seed | +| Signing Device - _my name_ | vault (xpriv, xpub), emergency 0-100 pubkeys | +| Revault SD - _my name_ | revault, vault 0 xpub, emergency 0 pubkey, noise 0 (privkey, pubkey), WT 0 noise pubkey | +| Watchtower SD - _my name_ | watchtower, vault 0 xpub, noise 0 pubkey, WT 0 (xpriv, xpub), WT 0 noise (privkey, pubkey) | +| Emergency Pubkey SD - _my name_ 1 | emergency 0 pubkey, extern pubkey 1, ..., extern pubkey X | +| ... | | +| Emergency Pubkey SD - _my name_ N_s| emergency 0 pubkey, extern pubkey 1, ..., extern pubkey X | +| Emergency Pubkey SD - external 1 | Destroyed | +| ... | | +| Emergency Pubkey SD - external X | Destroyed| +| Noise Pubkey SD - _my name_ | noise pubkey | + +## 7. Coordinator communication data-exchange + +- retrieve "Noise Pubkey SD - coordinator" from coordinator admin +- give "Noise Pubkey SD - _my name_" to coordinator admin + +## 8. Vault xpub exchange + +- Turn on "Used" laptop +- insert Revault SD and open revault binary (or yet another revault set-up tool?) +- (automatically) communicate with each other participant + - send my vault xpub 0 + - get all stakeholders' vault xpub 0 + - get all other managers' unvault xpub 0 + - Communication routed through coordinator (to avoid copy paste of everything) +- import vault xpubs to signing device + + +| Device Name | Contents | +| --- | --- | +| OS SD - _my name_ | NA | +| Software SD - _my name_ | NA | +| "Used" Laptop | revault binary, all participants vault/unvault 0 xpubs | +| New Laptop 1 | Destroyed | +| New Laptop 2 | Destroyed | +| Vault Backup 1 | vault mnemonic seed | +| Vault Backup 2 | vault mnemonic seed | +| Emergency Backup 1 | emergency mnemonic seed | +| Emergency Backup 2 | emergency mnemonic seed | +| Signing Device - _my name_ | my vault (xpriv, xpub), emergency 0-100 pubkeys, all participants' vault/ unvault 0 xpubs | +| Revault SD - _my name_ | revault, vault 0 xpub, emergency 0 pubkey, noise 0 (privkey, pubkey), WT 0 noise pubkey | +| Watchtower SD - _my name_ | watchtower, vault 0 xpub, noise 0 pubkey, WT 0 (xpriv, xpub), WT 0 noise (privkey, pubkey) | +| Emergency Pubkey SD - _my name_ 1 | emergency 0 pubkey, extern pubkey 1, ..., extern pubkey X | +| ... | | +| Emergency Pubkey SD - _my name_ N_s| emergency 0 pubkey, extern pubkey 1, ..., extern pubkey X | +| Emergency Pubkey SD - external 1 | Destroyed | +| ... | | +| Emergency Pubkey SD - external X | Destroyed| +| Noise Pubkey SD - coordinator | noise pubkey | + + +## 9. Stakeholder emergency data-exchange + +- Stakeholders each give all other stakeholders a copy of their emergency miniscript +- Stakeholders import this data into their revault device and signing device +- emergency address is generated deterministally from all emergency miniscript fragments + + +## 10. Descriptor and Address verification + +- Stakeholders check with each other stakeholder that the emergency address matches each others' (confidentially) +- Participants check with each other participant that the wallet descriptors match each others' + + +## 11. Safeguard back-ups + +- Complete emergency back-ups with emergency miniscript info +- Move each emergency back-up to a separate secure environment +- Move each vault back-up to a separate secure environment + + +## 12. Set-up laptop + +- Insert "Revault SD _my name_" into deployment laptop +- Install revault binary and follow set-up wizard +- insert "Noise Pubkey SD - Coordinator" + +## 13. Set-up watchtower + +- Insert "Watchtower SD _my name_" into WT server +- Install watchtower binary and follow set-up wizard +- insert "Noise Pubkey SD - Coordinator" + + +## 14. Test all spending paths + +- Use signet or testnet +- Ensure coordinator is running +- Test signing revocation transactions +- Test delegation process +- Test manual cancel +- Test manual emergency +- Test automatic cancel (breach revault policy) + + From ac869f4f436f11bc0acb08fef145252259a334c1 Mon Sep 17 00:00:00 2001 From: JSwambo Date: Fri, 18 Feb 2022 12:47:21 +0000 Subject: [PATCH 3/4] ceremony: add key-tree diagrams, remove WT wallet keys --- Key-Tree-Model.pdf | Bin 36559 -> 0 bytes manager-key-tree-labelled.png | Bin 0 -> 103639 bytes stakeholder-deployment.md | 14 +++++--------- stakeholder-key-tree-labelled.png | Bin 0 -> 147873 bytes 4 files changed, 5 insertions(+), 9 deletions(-) delete mode 100644 Key-Tree-Model.pdf create mode 100644 manager-key-tree-labelled.png create mode 100644 stakeholder-key-tree-labelled.png diff --git a/Key-Tree-Model.pdf b/Key-Tree-Model.pdf deleted file mode 100644 index 2755182f53f5368ba590acc7cee366ca6775f505..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36559 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 VVlxvL^Z@fvl2iLoF7xs0{{k*jVgvvH literal 0 HcmV?d00001 diff --git a/stakeholder-deployment.md b/stakeholder-deployment.md index e0b1e77..c379f77 100644 --- a/stakeholder-deployment.md +++ b/stakeholder-deployment.md @@ -1,7 +1,3 @@ ---- -geometry: margin=2cm ---- - # Stakeholder Deployment Process ## Device list @@ -161,8 +157,8 @@ Steps: | OS SD - _my name_ | NA | | Software SD - _my name_ | NA | | "Used" Laptop | NA | -| New Laptop 1 | OS, revault, watchtower, ceremony tool, mnemonic seed, vault (xpriv, xpub), emergency (xpriv, xpub), noise (privkey, pubkey), WT (xpriv, xpub), WT noise (privkey, pubkey) | -| New Laptop 2 | OS, revault, watchtower, ceremony tool, mnemonic seed, vault (xpriv, xpub), emergency (xpriv, xpub), noise (privkey, pubkey), WT (xpriv, xpub), WT noise (privkey, pubkey) | +| New Laptop 1 | OS, revault, watchtower, ceremony tool, mnemonic seed, vault (xpriv, xpub), emergency (xpriv, xpub), noise (privkey, pubkey), WT noise (privkey, pubkey) | +| New Laptop 2 | OS, revault, watchtower, ceremony tool, mnemonic seed, vault (xpriv, xpub), emergency (xpriv, xpub), noise (privkey, pubkey), WT noise (privkey, pubkey) | | Vault Backup 1 | vault mnemonic seed | | Vault Backup 2 | vault mnemonic seed | | Emergency Backup 1 | emergency mnemonic seed | @@ -204,7 +200,7 @@ Steps: | Emergency Backup 2 | emergency mnemonic seed | | Signing Device - _my name_ | vault (xpriv, xpub), emergency 0-100 pubkeys | | Revault SD - _my name_ | revault, vault 0 xpub, emergency 0 pubkey, noise 0 (privkey, pubkey), WT 0 noise pubkey | -| Watchtower SD - _my name_ | watchtower, vault 0 xpub, noise 0 pubkey, WT 0 (xpriv, xpub), WT 0 noise (privkey, pubkey) | +| Watchtower SD - _my name_ | watchtower, vault 0 xpub, noise 0 pubkey, WT 0 noise (privkey, pubkey) | | Emergency Pubkey SD - _my name_ 1 | emergency 0 pubkey, extern pubkey 1, ..., extern pubkey X | | ... | | | Emergency Pubkey SD - _my name_ N_s| emergency 0 pubkey, extern pubkey 1, ..., extern pubkey X | @@ -232,7 +228,7 @@ Steps: | Emergency Backup 2 | emergency mnemonic seed | | Signing Device - _my name_ | vault (xpriv, xpub), emergency 0-100 pubkeys | | Revault SD - _my name_ | revault, vault 0 xpub, emergency 0 pubkey, noise 0 (privkey, pubkey), WT 0 noise pubkey | -| Watchtower SD - _my name_ | watchtower, vault 0 xpub, noise 0 pubkey, WT 0 (xpriv, xpub), WT 0 noise (privkey, pubkey) | +| Watchtower SD - _my name_ | watchtower, vault 0 xpub, noise 0 pubkey, WT 0 noise (privkey, pubkey) | | Emergency Pubkey SD - _my name_ 1 | emergency 0 pubkey, extern pubkey 1, ..., extern pubkey X | | ... | | | Emergency Pubkey SD - _my name_ N_s| emergency 0 pubkey, extern pubkey 1, ..., extern pubkey X | @@ -271,7 +267,7 @@ Steps: | Emergency Backup 2 | emergency mnemonic seed | | Signing Device - _my name_ | my vault (xpriv, xpub), emergency 0-100 pubkeys, all participants' vault/ unvault 0 xpubs | | Revault SD - _my name_ | revault, vault 0 xpub, emergency 0 pubkey, noise 0 (privkey, pubkey), WT 0 noise pubkey | -| Watchtower SD - _my name_ | watchtower, vault 0 xpub, noise 0 pubkey, WT 0 (xpriv, xpub), WT 0 noise (privkey, pubkey) | +| Watchtower SD - _my name_ | watchtower, vault 0 xpub, noise 0 pubkey, WT 0 noise (privkey, pubkey) | | Emergency Pubkey SD - _my name_ 1 | emergency 0 pubkey, extern pubkey 1, ..., extern pubkey X | | ... | | | Emergency Pubkey SD - _my name_ N_s| emergency 0 pubkey, extern pubkey 1, ..., extern pubkey X | diff --git a/stakeholder-key-tree-labelled.png b/stakeholder-key-tree-labelled.png new file mode 100644 index 0000000000000000000000000000000000000000..f46e562fb8678839a9536ee592a8a021f7d9e554 GIT binary patch literal 147873 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 J#c%aL|6hDNRiXd@ literal 0 HcmV?d00001 From 6d21210d4225edf978f7a6b457afd41a66537b93 Mon Sep 17 00:00:00 2001 From: JSwambo Date: Wed, 23 Feb 2022 17:47:32 +0000 Subject: [PATCH 4/4] add ceremony-overview --- ceremony-overview.md | 81 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 ceremony-overview.md diff --git a/ceremony-overview.md b/ceremony-overview.md new file mode 100644 index 0000000..8867bc1 --- /dev/null +++ b/ceremony-overview.md @@ -0,0 +1,81 @@ +# Deployment Ceremony + +## Motivation + +Key management is fundamental to bitcoin custody. As an open-source, multi-party custody protocol, Revault builds on the strong foundation of a rigorous key-generation and key-agreement ceremony (referred to as the "ceremony") as the root of trust for the entire security infrastructure. + +The accompanying documents discuss the list of devices and their state at each step for the stakeholders, managers, and a coordinator admin: + +- [stakeholder deployment](stakeholder-deployment.md) +- [manager deployment](manager-deployment.md) +- [coordinator admin deployment](coordinator-admin-deployment.md) + +The documents are concerned with how keys are generated and transported to the devices on which they will be stored. They ensure that each device is set-up with the correct software and configuration file, and that this is verifiable by the operating participant. The entire process is subject to strict controls to mitigate leakage of sensitive information and to avoid single points of failure. + +It is critical that _confidentiality_ of secrets is maintained by secret-holders, and that secret-holders use backups to ensure _availability_ in case of losses and failures, and that the _integrity_ of secrets is verified during the ceremony (and from time to time afterwards). A forensic trail must be laid in case a critical failure occurs to help understand what went wrong and where legal liability falls. + +By adhering to these deployment specifications, teams deploying Revault creates confidence in their ongoing custodial operations. Individuals can be confident that others in their team aren't naively cutting corners that could cause catastrohpic failures. With the inclusion of notaries or lawyers in the process, teams and their constituent individuals may aquire legal protection when failures occur. + +## Vocabulary + +- Participant: all participants in a Revault deployment will have one or two roles as a _stakeholder_ and/ or _manager_. +- Stakeholder: Controls a secret for the high-threshold multi-signature which is the primary protection for funds in custody. +- Manager: Controls a secret for funds which are delegated to them through unvault options +- Emergency Address (EA): An address independent from Revault wallet which is used in Revault's emergency deterrent feature to mitigate physical threats. +- Watchtower: Automated server to enforce unvault policies set by it's operator +- Coordinator Admin: _NOT A PARTICIPANT_, administrates the coordinator +- Coordinator: Automated server to reduce coordination complexity for communication +- Signing device: Offline signing device, with a firmware that supports Revault transactions + + +## Distributed Ceremony + +To avoid a single point of failure, participants enact a _distributed_ ceremony. Each participant's wallet seed is created in isolation. The machines used in this process are destroyed before the (extended) public-key information is shared to other participants. Once each participant's personal root of trust (their signing device and their back-ups) are initialised with their wallet seed and physically secured, they can then meet the other participants to share their public-key data and verify that they generate the same set of policy descriptors. + +Given the sensitivity of secrecy of the emergency policy, when sharing and verifying emergency public-key data stakeholders should meet each other without the presence of any other participant or entity. + +## Key-Trees + +Each participant generates a random seed in isolation, and from this constructs a hierarchical deterministic wallet as per [BIP-32](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki). We rely on a combination of hardened derivation and non-hardened derivation where appropriate, to ensure that a compromise within a sub-tree is not catastrophic. We also opportunistically have branches in the tree where communication keys are derived. While these will be "hot" keys, stored on networked devices, this is helpful for evidence in the case of an incident (relying on back-ups), and it simplifies the set-up of infrastructure for and among participants. + +First, let's consider a stakeholder's key-tree. + +![Stakeholder Key-Tree](stakeholder-key-tree-labelled.png) + +Given that stakeholders should have two segregated seeds for their participation in revault and emergency wallets, we have conceived of a method to avoid duplicating the seed generation process for them in order to simplify the process and reduce the operational burden. They generate a single, ephemeral random master seed, _S_, and input this into the "ceremony tool" software GUI. The software then derives from _S_ an ephemeral master node, _m_. Then it uses hardened derivation with two different indexes to generate independent Revault and Emergency key-tree roots, and displays them as seed phrases for the stakeholder to transcribe to two separate back-up media. The ceremony tool then derives three sub-tree roots to be stored on the signing device: Vault, Noise Master, and WT Noise Master. + +The Vault represents the stakeholders' master bitcoin extended private-key. From this, the first Vault sub-tree is derived (Vault 0). This extended private-key is kept on the signing device, and the associated extended public-key is to be shared with other participants. In the event that the stakeholder needs to rotate to a new key-tree, the master Vault keys are used for hardened-derivation of the next sub-tree, Vault 1. + +The Noise Master key is used to derive the first Noise key-pair used for secure communication channels with the stakeholder's Watchtower, and the coordinator server. As part of the set-up this will be transferred to the stakeholder's active laptop. A new key-pair can be generated from the master if rotation is needed. + +The Watchtower Noise Master key is used to derive the first Watchtower Noise key-pair. As part of the set-up the derived key-pair will be transported to the Watchtower server. A new key-pair can be generated from the master if a new Watchtower instance should be deployed. + +The Emergency sub-tree has it's own requirements. The Emergency master bitcoin extended private-key _must not_ be imported to the signing device. However, the Emergency master bitcoin public-key should be imported to the signing device. This can be used for non-hardened derivation of the Emergency public-keys (Emer 0, Emer 1, ...) that will be used to construct Emergency addresses. The motivation for requiring additional Emergency public-keys, despite them ideally never being used, is that the stakeholder could rotate to a new Emergency public-key in the event that there is a change in the set of stakeholders. This allows a new Emergency address to be constructed without accessing the Emergency back-up. + + +Next, let's consider the manager's key-tree. + +![Manager Key-Tree](manager-key-tree-labelled.png) + +Here, the manager generates an ephemeral random Master Seed, _S_. This is input into the ceremony tool software GUI. The software derives the Master Node, _m_, which is transcribed to the back-up media to be physically secured. The software derives three sub-trees: Unvault, Noise, and Child-pays-for-parent (CPFP). + +Hardened-derivation is used for the Unvault sub-tree. The master bitcoin extended private-key is imported to the signing device. Hardened derivation is used to generate the first active instance of the Unvault branch used to construct the unvault descriptor. If there is a change in the participant set, this allows the manager to rotate to a new Unvault branch that is independent from the prior one such that no participant who has left will have access to the new unvault descriptor. + +Hardened-derivation is used for the CPFP sub-tree. This is independent from the Unvault sub-tree in that compromising the extended private-key in either sub-tree won't automatically compromise the other. This is important because the CPFP sub-tree is likely to be a single-key hot-wallet used by the manager to bump the fee on Unvault and Spend transactions if needed. CPFP 0 is the first active instance of the CPFP branch. When there is a change in the participant set, the manager should rotate to using the next CPFP branch. + +The Noise key is used to derive the first Noise key-pair (Noise 0) used for secure communication with the coordinator server. As part of the set-up this will be transferred to the manager's active laptop. A new key-pair can be generated from the sub-tree root if rotation is needed. + +## Ceremony Controls + +Let N be the number of participants. Let N_s and N_m be the number of stakeholders and managers respectively. Note that since a participant can take the role of both stakeholder and manager, that `N_s <= N <= N_s + N_m`. + +- Seed generation in at least N distinct locations +- Seed generation by at least N distinct participants +- Log the procedure followed (every action) during the seed generation +- Use unique physical source of entropy for each master seed +- Destroy all devices that had direct access to any master seed +- Participants handle transport of any private material independently, and covertly +- Back-ups are physically secured, each in a unique location +- The entire life-cycle of each back-up (until a recovery scenario) is offline +- Back-ups are stored in tamper-evident packaging +