Thread

Cold Root Identity v0.1.0 is live. Nostr was never meant to run long term identities off a hot private key sitting inside a mobile app. This repo ships a clean model that fixes it without changing the protocol: offline root key -> deterministic epoch keys -> signed lineage event -> clients follow rotations safely All using standard NIP-01 events and ed25519 signatures. No relay changes. No NIP changes. Just better key hygiene. Spec, docs, test vectors, and a working Python CLI are here: If you’re a client dev, this gives you everything you need to support safe identity rotation today.

Replies (1)

This sounds like it would be a nice feature to have, but only if virtually every client supports it. For instance, say I set this up for myself and start posting from a derived key. Any client that does not support this would treat me as a completely new user, right? So no one on such a client would be able to see my pfp or any other info that I had created with my root key on my derived key's profile page. And anyone who was following my root key's npub would not see any of my new key's posts in their feed unless they actively added my derived key's pubkey to their follow list, and even then, they would need to somehow remember that npub with no profile info is actually me, unless I republish a new kind 0 with the derived key. Any client or relay that uses web-of-trust but does not implement this would also exclude any derived key's pubkey from the WoT by default, since that new key won't have any follows or anyone following it. So, while it is not required for anyone to implement it, and Nostr will go on working as it had before for anyone who doesn't implement it, in practice it is next to useless unless virtually all clients implement it, since derived keys will be treated as completely new users by any client that doesn't, effectively wiping out their entire post history and social graph. Sure, all the previous notes will still exist, but that doesn't matter if the clients aren't associating them with the derived key. I guess that means a user probably wouldn't want to set this up until there is pretty widespread client adoption. And what is the idea for how users will safely store their root key? My assumption is that ideally we would all want to switch to a new root key, rather than use our existing nsec, since it has been used hot. So that would require us to start fresh regardless. Then what? We would need to get a device like a ColdCard to safely store our root key offline and generate our first derived key using that? I can see the Nostr guides now... "Welcome to Nostr! To get started, first go buy this $150 piece of hardware. You can also build your own for a fraction of that price. You can also get started completely free by simply generating a key pair, but this is not recommended since there is a greater danger of your key being compromised, and if you wanted to upgrade to a more secure means of using Nostr later, you would need to start a whole new identity anyway." Don't get me wrong, I think having a way to rotate keys and keep your root key offline is great, and I would probably do it myself if this method gained widespread client support. I am a bit more technical and familiar with cold storage already, though. I can't imagine this being the main way new users keep their keys safe, though. Maybe I am misunderstanding how this works, though, and all the above concerns are moot.