AI-generated analysisPublished automatically and not human-verified. Validated context appears in community notes below.
← Watch feed
Informational 23 Bitcoin

descriptor: ToPrivateString() pass if at least 1 priv key exists

Public commit record

What the developer wrote

Authored by Novo

73/100 · Adequate
descriptor: ToPrivateString() pass if at least 1 priv key exists

- Refactor Descriptor::ToPrivateString() to allow descriptors with
missing private keys to be printed. Useful in descriptors with
multiple keys e.g tr() etc.
- The existing behaviour of listdescriptors is preserved as much as
possible, if no private keys are availablle ToPrivateString will
return false
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
The short version

What changed, and why it matters

This Bitcoin Core change alters how wallet descriptors are printed when some (but not all) private keys are present. Previously, exporting a private descriptor would fail entirely if any single key was missing. Now it succeeds and exports the private keys it does have, falling back to public keys for the rest. The commit message and code comments frame this as a usability improvement for multi-key descriptors such as taproot (tr()). There is no direct evidence in the commit of a security vulnerability being fixed; it appears to be a behavior change that could affect information disclosure expectations.

Recommended action

Treat as a functional/behavior change rather than a critical security patch. Review whether downstream consumers of ToPrivateString (e.g., listdescriptors RPC, backup tools) assume all-or-nothing private output and could now leak partial private key material unexpectedly. Consider adding release-note documentation and verifying that callers check the boolean return value before treating the output as fully private.

Security signals we found

01

Behavior change in private-key export: partial private disclosure instead of all-or-nothing

02

Updated API contract in descriptor.h documents fallback to public keys and false return only when no private keys exist

03

Test flag MISSING_PRIVKEYS comment changed to reflect new ToPrivateString semantics

04

No explicit security bug, CVE, or vulnerability fix described in commit message or code

Risk score

Why this scored 23/100

Our methodology →
Potential impact 3/30
Exploitability 2/25
Stealth signal 4/15
Affected reach 5/15
Confidence 6/10
Evidence quality 3/5
Human-validated context

Community notes

Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.

No validated notes yet.

The AI analysis stands alone for now. Submit a note if you can add evidence or important context.