peakshift / bitcoin-ux

💅💸 Ongoing assessment of bitcoin payments and privacy UX for @BitcoinDesign Community as well as tools to help designers understand the underlying protocols and specifications.
https://bed.money
GNU General Public License v3.0
41 stars 7 forks source link

Wallet interoperability documentation #1

Open Enegnei opened 3 years ago

Enegnei commented 3 years ago

Hi @johnsBeharry, just saw this project today via the Square Crypto grant announcement - congrats!

I noticed that one of the sections is 'Wallet Interoperability.' In case you haven't seen it yet, you might be interested in our Wallets Recovery guide (walletsrecovery.org), which specifically focuses on breaking down the complexities and challenges of backing up, recovering, and migrating private keys between different types of bitcoin wallets. Feel free to use it if you find it helpful for the Design Guide. :)

johnsBeharry commented 3 years ago

This is a fantastic assessment @Enegnei, I'm not planning to go into private key management myself as @danielnordh is already doing some work in this area. I would really encourage you to reach out to him and join the #private-key-mgmt channel in slack if you would be interested in contributing this work into the @BitcoinDesign/Guide which the community is sourcing. It would fit right in.

My focus for interoperability would be specific to payments - So I'd love to know which support Coin Control, Payjoin, PSBT, tx broadcasting. Would that be something you'd be interested in gathering or have already gathered from the initial assessment?

Enegnei commented 3 years ago

Thanks! I'll see about maybe hopping in the Slack in the next couple days.

My focus for interoperability would be specific to payments - So I'd love to know which support Coin Control, Payjoin, PSBT, tx broadcasting.

We do have BIP174 PSBT support columns for the hardware, software, and HW + SW wallet combo charts. Regarding the others, I have a rough idea of which ones support some form of coin control, and I've covered PayJoin implementations in my Bitcoin privacy newsletter.

johnsBeharry commented 3 years ago

@Enegnei recently I've was able expand the research scope since a few other contributors are helping out. Your work on Wallets Recovery has been incredibly useful to understanding the variations and has influenced some design explorations we did.

  1. Would love to get your feedback on this writeup by @Tiana01. Its a starting point for a page for the bitcoin design guide about account discovery/rescanning (not sure whats the right term since most wallets just have 1 account per seed)

  2. Furthermore, would you be interested in working on a page relating to this for bitcoin design guide? The objective is to communicate the implications to user experience this non standard usage of derivation paths, and the gap limits has to a less bitcoin technical audience.

danielnordh commented 3 years ago

We could potentially add this very valuable work on wallet recovery in the private key management chapter. I'll make a note of it and review all this material.

Enegnei commented 3 years ago
1. Would love to get your feedback on [this writeup](https://github.com/peakshift/bitcoin-ux/blob/master/payments/account-scanning.md) by @Tiana01. Its a starting point for a page for the bitcoin design guide about account discovery/rescanning (not sure whats the right term since most wallets just have 1 account per seed)

I think most people have used "wallet (re)scanning," even in instances where particular wallet software only allows for one account in the interface. As long as it is a BIP32 and BIP44 compliant seed, then it could be imported into different software with multi-account features. There is also some debate about whether to drop both "wallet" and "account" as terms, and instead refer to them as keyrings / keychains, as that is practically what they really are.

On our resources page there are a few scanning tools listed. I would recommend checking out the issues thread for the Electrum recovery tool in particular, as there was a lot of discussion about how scanning should or shouldn't be done, in the context of their infrastructure, that might be useful.

2. Furthermore, would you be interested in working on a page relating to this for [bitcoin design guide](https://github.com/BitcoinDesign/Guide)? The objective is to communicate the implications to user experience this non standard usage of derivation paths, and the gap limits has to a less bitcoin technical audience.

I'd be happy to contribute to one, yes. :)

johnsBeharry commented 3 years ago

The electrum recovery tool was a great reference thanks @Enegnei!

My attempt to figure out how to communicate the design challenge - the challenge with such thing is balancing what amount of detail is necessary to communicate the problem and what can be omitted, esp when there are so many interconnected elements.

wallet-recovery