Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 114
Added ⚡️ content to Private Key Management > Backups#559
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
danielnordh
merged 19 commits into
BitcoinDesign:master
from
sbddesign:feature/private-keys-backupsDec 2, 2021
Uh oh!
There was an error while loading. Please reload this page.
Merged
Changes from all commits
Commits
Show all changes
19 commits
Select commit
Hold shift + click to select a range
73e9254
Add LN content and other updates to Private Keys > Cloud Backup
sbddesign d525414
Typographical fixes to Private Keys > Manual Backup
sbddesign f37479f
Removed "variations" section from Private Keys > Manual Backup
sbddesign e37fca1
Typographical and grammatical changes to manual backups
sbddesign 104958f
Changing cloud backup title
sbddesign 9a41b6c
Update guide/private-key-management/cloud-backup.md
53bea35
Update guide/private-key-management/manual-backup.md
3703789
Update guide/private-key-management/manual-backup.md
d7c08ea
Added subheadings
sbddesign 66a804b
Clarified private key language
sbddesign 7a74b53
Improved "not take much" line
sbddesign 3a04602
Added another LN mention
sbddesign 551ff67
Switching to "automatic cloud backup"
sbddesign aa04e83
Update guide/private-key-management/cloud-backup.md
47147e5
Added link to progressive security model in principles
sbddesign b5bd27b
Added wallet data to cloud backups
sbddesign d1f5bc5
Update guide/private-key-management/overview.md
543b700
Clarified "location"
sbddesign 4c5be2a
Adjusted "encrypted cloud backups" tip box
sbddesign File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Jump to file
Failed to load files.
Loading
Uh oh!
There was an error while loading. Please reload this page.
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -37,17 +37,27 @@ https://www.figma.com/community/file/995256542920917246/BDG---Private-key-manage | ||
| By using an automatic cloud backup for the private key the user is NOT required to manually backup anything when setting up a new [bitcoin wallet]({{ '/guide/glossary/wallet/#bitcoin-wallet' | relative_url }}). This is sometimes also called *seedless*, as the user is never exposed to the traditional *seed*, or [recovery phrase]({{ '/guide/glossary/#recovery-phrase' | relative_url }}) that is used to initiate a wallet. | ||
| This scheme can be a good fit for wallets meant for storing smaller amounts of bitcoin. This includes wallets for novices who would find manually backing up a recovery phrase during onboarding confusing, possibly leading to unsafe backups. It could also be a starting point for a progressive security model that lets customers upgrade when they start accumulating more funds. Wallets using automatic cloud backups also work well for what experienced users might call *hot* or *spending* wallets where convenience is more important than maximum security. | ||
| This scheme can be a good fit for wallets meant for storing smaller amounts of bitcoin, such as a Lightning wallet that is used for daily spending. A daily spending wallet might also be referred to as a [*hot wallet*]({{'/guide/glossary/wallet/#hot--cold-wallet' | relative_url}}), where the convenience of accessing funds is more important than maximum security. | ||
| These types of wallets may be good for novices who would find manually backing up a recovery phrase during onboarding confusing, possibly leading to unsafe backups. It could also be a starting point for a [progressive security model]({{'/guide/designing-products/principles/#security' | relative_url}}) that lets customers upgrade when they start accumulating more funds. | ||
| The automatic cloud backup scheme gives users reasonable security against theft, while providing low risk for self-inflicted losses. | ||
| If a wallet supports Lightning, it may already have automatic cloud backup [enabled for the channel state]({{'/guide/onboarding/backing-up-a-wallet/cloud-backup/' | relative_url}}). If you have implemented automatic cloud backups in your app for Lightning channel state, wallet data, or anything else, you could also use this same connection with the cloud provider to store a backup of the user's private key. | ||
| ### How it works | ||
| First the application generates a wallet with a keypair. Then, the key is encrypted and backed up to a location convenient and safe for the user, yet hard for a malicious third-party to gain access to. | ||
| First the application generates a wallet with a private key. Then, the private key is encrypted and backed up to a location convenient and safe for the user, yet hard for a malicious third-party to gain access to. | ||
| With most implementations so far, the location will be the keychain or a user-specific key-value-store on a mobile device that is also backed up by the OS provider. The most common would be iOS (iCloud) and Android (Google Drive) which both have secure data storage that is backed up and synced between a user's devices. | ||
| With most implementations so far, the private key's location will be the keychain or a user-specific key-value-store on a mobile device that is also backed up by the OS provider. The most common would be iOS (iCloud) and Android (Google Drive) which both have secure data storage that is backed up and synced between a user's devices. | ||
| This makes the backup accessible by the user on a new device, should they lose the original, but only accessible by someone that can log into the user’s Apple or Google account. | ||
| {% include tip/open.html label="Encrypted Cloud Backups" %} | ||
| When encrypting the user's private key for a cloud backup, one option would be for the user to choose an encryption passphrase. Another would be to have a third-party hold the encryption key so that neither the cloud provider nor the encryption key holder would have access to all the information to use the private key. See [this article](https://blog.keys.casa/casa-keymaster-security-mobile-key-overview/) for an example. | ||
| {% include tip/close.html %} | ||
| To see what a user experience with this scheme could look like, see the [daily spending case study]({{ '/guide/case-studies/cloud-backup/' | relative_url }}). | ||
| {% include fact/pros.html %} | ||
| @@ -67,21 +77,21 @@ To see what a user experience with this scheme could look like, see the [daily s | ||
| ### Best practice | ||
| **When to use** | ||
| #### When to use | ||
| - When risk of self-inflicted loss is higher than loss from theft | ||
| - For beginners, or products with progressive security | ||
| - For wallets with frequent transactions of smaller amounts | ||
| **When not to use** | ||
| #### When not to use | ||
| - When storing high values | ||
| - When risk of loss from theft is higher than self-inflicted loss | ||
| - When complete self-sovereignty is important to the target audience | ||
| **Variations** | ||
| #### Variations | ||
| - Storage location (keychain, iCloud, Google Drive, One Password etc.) | ||
| - Additional user authentication (biometrics, pin) | ||
| **Products that use this scheme** | ||
| #### Products that use this scheme | ||
| - [Photon SDK](https://photonsdk.org) - for use by other wallets, in development | ||
| - [Casa](https://keys.casa) | ||
sbddesign marked this conversation as resolved.
Uh oh!There was an error while loading. Please reload this page. | ||
| - [Pine](https://pine.pm ) - Lightning, beta | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -35,18 +35,18 @@ https://www.figma.com/community/file/995256542920917246/BDG---Private-key-manage | ||
| # Manual backup / Recovery phrase | ||
| Manual backup of the [recovery phrase]({{ '/guide/glossary/#recovery-phrase' | relative_url }}) has been the most common private key management scheme by far since its proposal with [BIP39](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki) in 2013. If you have used any [non-custodial]({{ '/guide/glossary/wallet/#non-custodial--custodial-wallet' | relative_url }}) bitcoin application you are likely to have experienced the onboarding requirements of manual backups. | ||
| Manual backup of the [recovery phrase]({{ '/guide/glossary/#recovery-phrase' | relative_url }}) has been the most common private key management scheme by far since its proposal with [BIP39](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki) in 2013. If you have used any [non-custodial]({{ '/guide/glossary/wallet/#non-custodial--custodial-wallet' | relative_url }}) Bitcoin application, you are likely to have experienced the onboarding requirements of manual backups. | ||
sbddesign marked this conversation as resolved.
Uh oh!There was an error while loading. Please reload this page. | ||
| When creating a new wallet, you will be asked to manually backup a 12 or 24 word recovery phrase to a *safe place*. Often, as the next step it will ask you to verify that you did save it by having you input the phrase in the correct order. | ||
| When creating a new wallet, users will be asked to manually write down a backup of a 12 or 24 word recovery phrase to a *safe place*. Often, as the next step, it will ask you to verify that you did save it by having you input the recovery phrase in the correct order. Additionally, some wallets may use a [passphrase]({{'/guide/glossary/#passphrase' | relative_url}}) that can be defined by the user. | ||
| This scheme is suitable for users who are already familiar with bitcoin and procedures for secure offline backups of their recovery phrase. It is not suited for complete beginners. When told to store the backup in a safe way offline, bitcoin-beginners in reality often take a screenshot, write it down in plain text somewhere on their mobile device, computer or a piece of paper on the fridge, or simply don’t back it up at all. This has the risk of achieving the opposite of what we want - high risk of self-inflicted loss and low to mediumsecurity in terms of thirdparty theft. | ||
| This scheme is suitable for users who are already familiar with bitcoin and procedures for secure offline backups of their recovery phrase. It is not suited for complete beginners. When told to store the backup safely offline, bitcoin-beginners in reality often take a screenshot, write it down in plain text somewhere on their mobile device, computer, or a piece of paper on the fridge, or simply don’t back it up at all. Manual backups have the risk of achieving the opposite of what we want—a high risk of self-inflicted loss and low to medium-security in terms of third-party theft. | ||
| ### How it works | ||
| The wallet application will generate a 12 or 24 word phrase (seed / [recovery phrase]({{ '/guide/glossary/#recovery-phrase' | relative_url }})) from which all the wallet’s [keys]({{ '/guide/glossary/#keys' | relative_url }}) can be derived. This means the user can have access to the wallet from any compatible wallet application with the phrase, even if they lose the device or software. | ||
| The wallet application will generate a 12 or 24 word [recovery phrase]({{ '/guide/glossary/#recovery-phrase' | relative_url }}) from which all the wallet’s [keys]({{ '/guide/glossary/#keys' | relative_url }}) can be derived. This means the user can have access to the wallet from any compatible wallet application with the recovery phrase, even if they lose the device or software. | ||
| This can be an effective way to reduce the risk of loss from theft if the backup is offline in a safe place, but puts more of the burden on the individual user. The security and risk will only be as good as how they backup the recovery phrase. | ||
| Safe backups can be made fairly simple, take a look at our [Bitcoin backups]({{ '/guide/private-key-management/backups/' | relative_url }}) guide as a good starting point. | ||
| Safe backups can be made fairly simple. Take a look at our [Bitcoin backups]({{ '/guide/private-key-management/backups/' | relative_url }}) guide as a good starting point. | ||
| {% include fact/pros.html %} | ||
| @@ -64,26 +64,23 @@ Safe backups can be made fairly simple, take a look at our [Bitcoin backups]({{ | ||
| ### Best practice | ||
| **When to use** | ||
| - When target audience is likely to be knowledgeable and implement good manual backup schemes | ||
| #### When to use | ||
| - When the target audience is likely to be knowledgeable and implement good manual backup schemes | ||
| - When storing medium amounts | ||
| - When risk of loss from theft is higher than self-inflicted loss | ||
| - When the risk of loss from theft is higher than the risk of self-inflicted loss | ||
| **When not to use** | ||
| #### When not to use | ||
| - When users are new to bitcoin and unlikely to implement good manual backups | ||
| - For use-cases with small amounts | ||
| - When onboarding is likely to happen outside of users' homes | ||
| **Variations** | ||
| - 12 or 24 word phrase | ||
| - Additional user authentication (biometrics use, pin or password) | ||
| - Cloud backup options | ||
| #### Do's | ||
| - Explain what a recovery phrase is, and provide guidance on how to do *safe offline backups* BEFORE the user is exposed to the recovery phrase | ||
| **Do's** | ||
| - Explain what a recovery phrase is, and provide a guide how to do *safe offline backups* BEFORE the user is exposed to the phrase or can start using the wallet | ||
| #### Products that use this scheme | ||
| Most bitcoin wallets, including: | ||
| **Products that use this scheme** | ||
| Most bitcoin wallets, including; | ||
| - [Bluewallet](https://bluewallet.io) | ||
| - [Electrum](https://electrum.org) | ||
| - [Wasabi](https://wasabiwallet.io) | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.