-
Notifications
You must be signed in to change notification settings - Fork 23
doc: Add unshared secret generation to wallets.md #71
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
base: master
Are you sure you want to change the base?
doc: Add unshared secret generation to wallets.md #71
Conversation
Updated import support specifications for wallet seed lengths and error correction handling. Added details on generation support for codex32 secrets and share sets.
Clarified wallet behavior for invalid headers and checksums, improved error correction guidance, and refined display and confirmation processes for codex32 strings. Removed SSS section for brevity.
Refine guidance on generating unshared secrets and update codex32 secret backup process. Improve clarity on identifier policies and human-readable parts.
|
@roconnor-blockstream This is ready for review. |
|
I don't know if I'm quite ready to completely abandon 160-bit and 192-bit seeds just yet. Maybe I could be convinced. |
|
As suggested in bitcoin/bips#2040 (comment): Lets define deterministic encoding defaults (identifier, padding, output share indices order) here and/or here first. I think encoders/wallets SHOULD:
|
|
@roconnor-blockstream, as for 160-bit seeds: I do not think "ms" secret seeds MUST NOT use them, I am saying "ms" secret seeds SHOULD use bitlengths divisible by 64 bits to simplify "insert/delete"-correcting ECWs (IDC-ECW) assumptions about valid lengths."
The implications of using 160-bits would not be the wallet rejects your valid secret seed. But rather that invalid 160-bit entries might receive 128-bit master seed correction suggestions from an IDC-ECW. As I think "MS" IDC-ECWs MAY not check this length as their correction performance is maximized by a wider spacing. This means 160-bit seeds are not interoperable with all IDC-ECW. This RECOMMENDATION impacts the lengths our generators SHOULD generate. As we don't want to produce seed lengths that harm ECW performance if they choose to support them. Again valid reasons exist to deviate, both on generation and IDC-ECW assumptions about lengths but improving error correction seems more important than not discouraging 160-bit, when 192-bit can be used instead. |

Closes #64
This is a draft of unshared secrets generation support.
Summary: Updated to discourage weird bitlengths, improve error correction handling. Added details on generation support for codex32 secrets.
Guidance for codex32 share sets generation can come in a later PR as it will depend largely this seed export guidance.
I covered string display and confirmation, from my experience designing these and receiving user feedback.
Confirm section presents two methods depending on keyboard available:
Missing/TBD:
codex32-guiI package for devs to play with.codex32PyPI library, my apologies if I was not supposed to take this name. The implementation is at least as clean as the rust in this repo and passes all BIP93 test vectors.