ElementsProject / ElementsProject/elements
Pick a blinding key/blinding factor standard compatible with hww++
- Langage dominant
- C++
- Étoiles
- 1.2k
- Forks
- 416
- Merge moyen
- 1 j 23 h
- PR mergées (30 j)
- 15
Description
Currently we kind of YOLO how these keys are derived, in that a backed up `wallet.dat` will properly restore funds, but these schemes are not cross-compatible with devices such as hardware wallets, and wallets that may not allow raw privkey export.
So I think for blinding derivation stuff we basically have:
1) signing keys on some path, hardened or unhardened paths from some hardened parent
2) master blinding key, which is actually Hash(some_pubkey_in_odd_hardened_path). This allows export of master blinding privkey for auditing purposes even for hardware wallets(xpub and xprv together to track funds in a non-custodial manner). This does mean an unlocked hww will cough up blinding pubkeys on a malicious host without intervention.
3) asset/value blinding factors: Some odd derivation path with hardened part, either take a single subkey and HMAC it with `txid:nOut`, or chunk up the txid and use it as a few normal derivation indices.
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par comparer les trois approches de dérivation listées—les Signing Keys, la Master Blinding Key et les Asset/Value Blinding Factors—avec la compatibilité hww++ et les contraintes d’exportation des hardware wallets. La tâche est considérée comme terminée lorsque le projet a sélectionné et documenté un standard compatible pour la blinding key et les blinding factors ; aucun fichier source ni test n’est nommé dans l’issue.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- cpp
- Domaine
- blockchain, cryptography
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 20/100