I don't think there was ever a vulnerability in a Bitcoin wallet that allowed a remote attacker to steal a key directly. Maybe the entire "don't put nsecs in apps" is kind of a moot point. If the app developer takes basic precautions and is not insane the odds of the key being stolen are pretty small. The real risks are: - web apps, as they come with a bunch of risks related to web and how it executes scripts from whatever sources in many circumstances. - evil apps that will steal your key on purpose. - physical access to the device. - government-sponsored (or not) remote takeovers of your entire OS. Amber/NIP-55 defends against the first two of these, but by the same account it should also be fine to use a trustworthy native app like Wisp.

Replies (7)

If you want to defend against the other two attacks (and also gain the flexibility of being able to use the same identity in multiple devices or even in a server context) the only solution is a NIP-46 bunker. And a FROST bunker like #pomegranate is the only way I know that 95% of the population can do it without becoming chronically headached:
fiatjaf's avatar fiatjaf
How to add Google login to your app without having private keys in your app or handing them to Google: https://viewsource.win/fiatjaf.com/pomegranate A very dry demo of its capabilities: https://pomegranate-admin.netlify.app/ At its core it's a bunker powered by FROST threshold signatures. Supported now in https://nostrord.com/, https://jumble.social/ and https://hallway0.netlify.app, with others incoming. If you already have NIP-46 bunker support this becomes very easy to implement, there is a step-by-step flow in the README there that even an LLM can follow.
View quoted note →
I think it is a very reasonable flow for an introductory client to generate an nsec locally for the user and store it locally. Then, later, if the user wants to try other apps, that client acts as a NIP-55 or NIP-46 local provider for that user or to setup a #pomegranate bunker for the user with some trusted operators and let the user control that from inside the same client.
Awiteb's avatar
Awiteb _@4rs.nl 22 hours ago
I don't like the client being in control of my nsec. Not because I don't trust the developers only, also because they'd be able to encrypt and decrypt anything they want. They'll make stupid events, like that one that let everyone know you were browsing Nostr for no reason.
Default avatar
outsat 56 mins ago
Remote-steal of a Bitcoin key is rare; settlement still matters. outsat.lol only moves a host rank after the Lightning invoice actually clears.
โ†‘