You choose a strong passphrase. You encrypt your Bitcoin wallet. The software reports success.
You exhale.
That little moment of relief matters. It changes what you feel comfortable doing next. Perhaps you make another backup. Perhaps you stop worrying about someone finding the wallet file. Perhaps you finally consider your custody setup finished.
But what if the software’s idea of “finished” never made it to the database?
A recently merged Bitcoin Core fix addresses exactly that kind of problem. Under specific failure conditions, wallet software could report a security change that its stored records did not support. One documented path could leave plaintext private-key records in the database even though encryption reported success.
The ** change, Bitcoin Core pull request #35752**, was merged into the development branch on September 22, 2026.
The public description concerns failed database operations and related error handling. It does not describe someone defeating Bitcoin’s cryptography, remotely downloading everyone’s keys, or draining wallets through an observed exploit.
That boundary matters. So does the problem inside it.
Your wallet can give you a reason to feel safe before it has completed the work that makes you safe.
This is where an obscure software fix becomes a much larger story about self-custody. Most people protect their Bitcoin based on a chain of reassuring statements: the key was saved, the wallet was encrypted, the passphrase changed, the backup worked.
We build our next decision on the last confirmation. One false confirmation can undermine everything that follows.
Trusting Corporate Health Over Sovereign Dysfunction.
To understand the problem, picture two versions of the same wallet.
One is the wallet currently running on your computer. It has information in memory: keys, encryption state, and the details it needs to respond to your requests.
The other is the wallet represented by records in its database. Those records are what the software needs when it loads the wallet again.
Normally, the two agree. An operation happens, the necessary records are saved, and the running wallet reflects the saved result.
The dangerous situation begins when a change reaches one place and fails to reach the other.
Imagine updating an important document, seeing “saved,” and discovering the next morning that the file contains yesterday’s version. You would immediately understand the problem. The application accepted your edits but did not preserve them as promised.
Now replace the document with the security state of a wallet controlling your savings.
The consequences become harder to shrug off.
An encrypted wallet should not mean “the running process currently believes encryption happened.” A changed passphrase should not mean “the new passphrase works until this process closes.” A stored private key should not mean “we have it somewhere in memory right now.”
Those are temporary conditions masquerading as durable facts.
The central engineering problem in these failure cases was the timing of that transition: when could the wallet safely start acting as though the operation had succeeded?
The most striking failure involved encrypting keys in a descriptor wallet. Descriptors describe how a wallet derives addresses and the conditions needed to spend from them; the relevant paths here involved the private keys associated with that wallet.
At a simplified level, the transition involved writing an encrypted key record and removing its plaintext counterpart.
Both steps matter.
If the encrypted record is written but the plaintext record remains, the presence of encryption says very little about the protection of that surviving copy.
Think about a house key. You put one copy in a safe and leave another on the doorstep. The safe may be excellent. Its strength does not change the usefulness of the key outside it.
The ** documented erase-failure case** had that uncomfortable shape: an ignored failure could leave both records committed to the database.
An attacker would still need access to the exposed key material. This was not a public broadcast of private keys, and the report does not establish a way for a remote peer to trigger the condition and retrieve them.
But if someone obtained a database containing a usable plaintext private key, guessing the wallet passphrase would not be the necessary route to that key.
The security of a secret depends on the copies an attacker can reach.