Requirements for a cross-wallet "Account Map" with xpubs #6
Replies: 15 comments 8 replies
-
@Fonta1n3 — can you share here an example of our latest Account Map prototype for Fully Node 2? -- Christopher Allen |
Beta Was this translation helpful? Give feedback.
-
and the text:
|
Beta Was this translation helpful? Give feedback.
-
For the privacy conscious an improvement could be a 2/4 or 3/5 where you save less then n xpubs with each seed, ensuring the seed also makes it less than n. For example 2 alternate xpubs with each seed so that even if an attacker found one seed with a partial account map you would not lose privacy. With a 2/3 you could save one and a half xpubs with each seed. Thanks to BIP67 the order of the xpubs doesn’t matter making this method simpler. |
Beta Was this translation helpful? Give feedback.
-
quick question here, the birthdate, and blockheight are really needed to account ? |
Beta Was this translation helpful? Give feedback.
-
No, it’s just convenient for restoring by automatically scanning the blockchain from a specific date. Actually we ought to remove the birthdate altogether and only keep the blockheight. |
Beta Was this translation helpful? Give feedback.
-
@Fonta1n3 |
Beta Was this translation helpful? Give feedback.
-
The wallet should automatically derive the change descriptor. We have just been adhering to BIP44/49/84/48 so that it is clear. Not sure how to handle change if a user imports a non standard account. For FullyNoded we just replace With Specter we know how you guys handle it so it’s easy to adapt. However there is an infinite number of paths a user could potentially come up with. If it is custom i feel it should just be imported as is without being manipulated. Do you have thoughts or guidelines on this? |
Beta Was this translation helpful? Give feedback.
-
Though I prefer defining a new change type 2 for mixers, I could see people pushing all change to the custody of their mixer wallet with a different xpub. — Christopher Allen |
Beta Was this translation helpful? Give feedback.
-
I think a user label is important. Users may use one seed with multiple multisig accounts (especially given effort to put in titanium or steel). The will need to distinguish them. — Christopher Allen |
Beta Was this translation helpful? Give feedback.
-
Currently we are sharing these as Javascript objects, but we may want to move to it being an UR specification. See related discussions: |
Beta Was this translation helpful? Give feedback.
-
At Yeti, we have been very interested in creating a partial Account Map (we have been calling it a partial descriptor). We have had some thoughts and I will point our developers here for collaboration. |
Beta Was this translation helpful? Give feedback.
-
Could/should we define a standard way to include BIP39 passwords in the account map? Motivation is explained in #37.
Where the order of the passwords is the same as the order of the xpubs in the descriptor. |
Beta Was this translation helpful? Give feedback.
-
Let’s not put seed words or raw entropy in this. Just a specific backup of the derived key & essential metadata to words. I suggest UR and bytewords so we can also do Shamir sskr words as well. /cc @wolfmcnally |
Beta Was this translation helpful? Give feedback.
-
Account Maps are xpub-only descriptors, which the coordinator/online node generates. You wouldn't want BIP39 passwords in the Account Map. |
Beta Was this translation helpful? Give feedback.
-
Not precisely accurate. At minimum an Account Map is a Bitcoin Core wallet descriptor, where any keys use their public key version, which ideally are fully described (i.e. [m0fingerprint/path/to/0]xpub...). But it also includes other information such as the type of script and other information. In addition, the Blockchain Common' Account Map data structure allows for other metadata information to be included, such as birthdate of the account (when it was first used), account label, etc. The ideal is that you can strip the excess metadata information, you can use an Account Map directly with Bitcoin Core 0.21.0+ for a new watch-only wallet. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
We have been working on an "Account Map" with xpubs, wallet descriptors, and other metadata for fully restoring a multisig account.
Though these can and should be able to be saved to disk, we imagine these as being printed on a QR code to accompany each seed that is backed up for that account — the scenario being you only need one of these papers to survive a fire or other tragedy and the quorum of seeds, and that the compromise of which only hurts your privacy, not your access to funds. Also, if a single seed is used with multiple multisig accounts, you only need to add this paper to your storage location, not re-archive the seed.
@peter-conalgo has shared a similar fomatted document in JSON in the most recent firmware of @Coldcard https://github.com/Coldcard/firmware/tree/master/docs/generic-wallet-export.md
My only reservation with this is that like some of the earlier proposals in this repo, using JSON may make it too large to print on a single QR code.
-- Christopher Allen
Beta Was this translation helpful? Give feedback.
All reactions