Been thinking about what the key-trust part of decentralized "social PKI" should look like.
The individual part seems straightforward: A public key, and a history of key rotations (where each key signs a message revoking itself as latest, and endorsing the next public key as latest instead.)
But how do you trust someone else's key in the first place? (Including when they lose all data and have to recreate their identity, with a new key.)
I'm very tempted to say... we can leave that to implementations, with just some strong suggestions in the spec as to how to meet different users' different needs.
One implementation could just use TOFU and notify the user if something looks wrong. Another could participate in a key-gossip system, where useragents inform each other of identity/key relationships they've seen, allowing multipath resilience against MITM. And another could go full-on PGP key-party if it really wanted to, I guess.
Does this sound reasonable? Would love to hear feedback.