What are the main reasons for having a federated identity system such as OpenID over having identities based purely on a public key?
OpenID uses an Identity Provider to confirm that a user owns a particular URL. Why not use a public key identifier. If the user can decrypt information encrypted with the public key, then they must own that public key. This would remove the need for identity providers and give users complete control over their own Identity.