Skip to content
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

Add a page explaining difference between BIP0039 and decred seeds #1066

Closed
matheusd opened this issue Feb 4, 2020 · 4 comments · Fixed by #1087
Closed

Add a page explaining difference between BIP0039 and decred seeds #1066

matheusd opened this issue Feb 4, 2020 · 4 comments · Fixed by #1087

Comments

@matheusd
Copy link
Member

matheusd commented Feb 4, 2020

Ideally with the process to convert a BIP0039 to a decred hex code and discussion on BIP0039 passphrases vs dcrwallet passphrases.

@0xmzz
Copy link
Member

0xmzz commented Feb 14, 2020

Can take this on.

@0xmzz
Copy link
Member

0xmzz commented Apr 1, 2020

I have a few questions that would help me complete what is being asked by the issue. In addition. feedback on what I currently have (see image below) would also be appreciated.

  1. does the below cover the main differences between decred seed and bip39?
    image

  2. Regarding the process to convert a BIP39 to a decred hex code, is that simply encoding the output seed to hex?

  3. The BIP39 passphrases are used as an extra layer of security and allow for wallets that control different outputs, this seems different to the way passphrase is used in dcrwallet, I don't think using different passphrases with the same seed creates different wallets in dcrwallet. I could be mistaken here so shedding some light on this would help add more information on that discussion piece.

  4. Where should the page be located? I put it under advanced as it seemed appropriate in that section.

@matheusd
Copy link
Member Author

matheusd commented Apr 1, 2020

  1. This seems way too complex of an explanation for user-facing docs. This seems excellent for the dev docs though.

For the user docs, you're really interested in pointing out the relative user-facing differences between them, so maybe presenting the information in table format would be better:

^ Feature    ^ Decred Seeds  ^ BIP0039 Seeds            ^
| # of Words | 33            | 12 or 18 or 24           |
| Dictionary | PGP wordlist  | BIP0039 wordlist         |
| Passphrase | Encrypts keys | Generates different Seed | 
...
  1. After converting the BIP0039 mnemonics to a binary seed, you then encode the binary seed as an hex string (for input in Decrediton or dcrwallet). Here's a tool that does that: https://github.com/matheusd/bip39-to-dcr-seed

I suggest trying out a Decred-capable BIP0039 wallet then converting the seed to hex and importing on a standard dcrwallet/Decrediton instance to get a feel for how the process works. IIRC, coinomi uses BIP0039 and supports Decred.

  1. Correct. BIP0039 passphrases are a different beast than dcrwallet passphrases. The important bit is that every mnemonic+passphrase combination generates a different seed for BIP0039. BIP0039 passphrases are Brain Wallets. A corollary of this is that you cannot change BIP0039 passphrases. Using a different passsphrase (with the same mnemonics) derives a different root seed (and therefore different private keys). Additionally, you need to remember your passphrase to recover from seed.

Passphrases in dcrwallet only locally encrypt the private keys. You can change them at will and don't need to remember the passphrase to recover from seed.

  1. Seems fine.

@matheusd matheusd closed this as completed Apr 1, 2020
@matheusd matheusd reopened this Apr 1, 2020
@matheusd
Copy link
Member Author

matheusd commented Apr 1, 2020

(sorry, missed the click on the issue)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants