ElementsProject / ElementsProject/elements

Pick a blinding key/blinding factor standard compatible with hww++

Offen
#448 11 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
C++
Sterne
1.2k
Forks
416
Ø Merge
1 T. 23 Std.
Gemergte PRs (30 T.)
15

Beschreibung

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.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne damit, die drei aufgeführten Ableitungsansätze—Signing Keys, den Master Blinding Key und Asset/Value Blinding Factors—im Hinblick auf die hww++-Kompatibilität und die Exportbeschränkungen von Hardware-Wallets zu vergleichen. Als erledigt gilt die Aufgabe, wenn das Projekt einen kompatiblen Blinding-Key- und Blinding-Factor-Standard ausgewählt und dokumentiert hat; in der Issue werden keine Quelldateien oder Tests genannt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
cpp
Bereich
blockchain, cryptography
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
20/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.