Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

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

New Wallet Creation Flow w/ watch-only and amnesic wallets #59

Closed
2 tasks
BenWestgate opened this issue Jul 27, 2023 · 2 comments
Closed
2 tasks

New Wallet Creation Flow w/ watch-only and amnesic wallets #59

BenWestgate opened this issue Jul 27, 2023 · 2 comments
Labels
documentation Improvements or additions to documentation enhancement New feature or request good first issue Good for newcomers priority: medium Issues raised by 1 tester
Milestone

Comments

@BenWestgate
Copy link
Owner

BenWestgate commented Jul 27, 2023

In one dialog choose:

Wallet Name [ Wallet [share_identifier] ]

  • Disable Private Keys

Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets.

  • Non-Persistent Wallet

Prepends /tmp/ to Wallet Name causing it to be stored in tmpfs not ~/Persistent/.bitcoin and lost on shutdown.

If /tmp/ is used

  1. Display warning their wallet will be amnesic and all its labels and unused addresses will be forgotten on shutdown. Suggest making a Persistent watch-only wallet first if that is undesired. Describe it as ideal for offline signing wallets because the private keys will never be saved to the USB stick. Provide opportunity to go back.

If the user does not Disable Private Keys display:

  1. wallet encryption info
  2. wallet encryption warning
  3. wallet has been encrypted

else:

  1. watch-only wallets info. Provide Opportunity to go back
  2. how to spend from this watch-only wallet Provide opportunity to go back.

After the warnings/info is displayed:

  1. Current wallet setup complete! dialog and bitcoin-qt opens

Helps address #45 and #34 as "setup complete" is really "wallet setup complete" and the other dialogs are from install-core and don't need to display when just doing bails-wallet operations. Also creates one of the L2 features and gives a more secure set-up.

Watch only wallets can be spent by gathering the shares with their corresponding identifiers and loading them into an offline signing device or Non-persistent Wallet to sign PSBTs on the same USB. Forgetting the keys makes the user safe from rubber hose cryptanalysis.

These steps are all in series. As soon as the user confirms what they will be using or procedes with the default encrypted private keys enabled wallet. bitcoind begins importing the appropriate descriptors and will shutdown and start bitcoin-qt when it finishes.

If the user reaches the end of the information dialogs without bitcoin-qt having started. It will tell them importing descriptors can take some time and reminds them to lock the screen Super+L if they need to step away from their computer.

Alternately, bitcoin-qt could be started right after the user makes a selection so that visual progress bars can be displayed for rescanning. This is preferable since no more RAM heavy hashing needs to be done.

@BenWestgate BenWestgate added documentation Improvements or additions to documentation enhancement New feature or request good first issue Good for newcomers priority: medium Issues raised by 1 tester labels Jul 27, 2023
@BenWestgate
Copy link
Owner Author

BenWestgate commented Jul 28, 2023

Also now that there are watch-only wallets, there's some scenarios where bails-wallet never needs to ask for a passphrase during wallet restore. So setting "the passphrase for the wallet" should come after choosing the name and whether to disable private keys and/or make it amnesic Right before wallet encryption info. And be skipped in the disable private keys case.

@BenWestgate BenWestgate self-assigned this Jul 28, 2023
@BenWestgate BenWestgate added priority: high issues raised or encountered by 2 or more testers and removed priority: medium Issues raised by 1 tester labels Jul 28, 2023
@BenWestgate BenWestgate added priority: medium Issues raised by 1 tester and removed priority: high issues raised or encountered by 2 or more testers labels Mar 25, 2024
@BenWestgate
Copy link
Owner Author

Decreasing priority to medium as this as both are actually L2 features for once we have offline signing. It's a bit silly to have watch only wallets without an always offline wallet. And they can effectively be created by losing the wallet passphrase.

@BenWestgate BenWestgate removed their assignment Mar 25, 2024
@BenWestgate BenWestgate added this to the L2 milestone Mar 25, 2024
Repository owner locked and limited conversation to collaborators May 26, 2024
@BenWestgate BenWestgate converted this issue into discussion #169 May 26, 2024

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
documentation Improvements or additions to documentation enhancement New feature or request good first issue Good for newcomers priority: medium Issues raised by 1 tester
Projects
None yet
Development

No branches or pull requests

2 participants
@BenWestgate and others