How it works:
You generate a root keypair (Ed25519, small, fast, modern elliptic curve, supported by almost every browser).
That key is:
- Your identity.
- Your authority.
- Your signature stamp.
If you lose it, youβre done. There is no "forgot password." Eventually you will be able to export your keypair and save it somewhere, but you absolutely need this keypair to use it.
This is not far off from how SSH works, actually.
The root never touches the Internet, at least the private key doesn't. Or ideally, shouldn't.
It is encrypted at-rest in your browser and only loaded into memory when needed, decrypted via a password. It's... not perfect, because browser-based crypto is not perfect, but it's irretrievable in direct form.
This is brutal, yes, but it is clean. Also, if you destroy the key? No one can cryptographically prove it was you.
Anyways.
The root key signs:
- Device keys
- Identity metadata
- Potential revocations
- Anything that defines "you"
Obviously, posting from your root key directly would be clunky and having a lot of key material around you really don't want widely duplicated
Instead: the root key generates and signs a device key.
Device key is what signs posts, preferences updates, etc..
Each device key is:
- Separately revocable
- Linked to root
- Explicitly authorized
- Has capabilities attached like posting and preferences updates
If your laptop gets owned? You revoke that device key. The root signs a revocation. Network sees the revocation. That device stops being valid. Posts and preferences updates from it are ignored.