@harry and I had a really good conversation about Identity, and I wanted to get it down so others could see the current state of identity thinking. In this note, I’m trying to represent Harry’s views along with my own, but I’m not speaking for him here.
First, we know DSNP’s take on identity isn’t fully baked. The vision I describe here isn’t reflected in the spec. It is our eventual goal, not our current implementation. The reason for this mismatch is that we needed to put something down so we could start iterating.
Second, there are a lot of identity solutions out there. It’s impossible to pick a winner. And we don’t really want to synthesize all of that into yet another identity solution.
Third, we don’t want our pool of identity to be a walled garden. If people have established identity in various places, that’s often valuable context for who they are. Having them re-establish identity in our universe has a cost in terms of sign-up logistics and lost information.
What all this adds up to is a desire for DSNP to avoid settling on one way to represent or transact identity. Instead, we need to enumerate the set of characteristics and behaviors we need from an identity system, then interoperate with anything that shows up and can behave that way. Perhaps we can specify an identity API. Perhaps we can specify an identity solution on top of that API, but maybe we can just point to existing specs outside DSNP for that.
This is work we will not do immediately, but it is work we probably need to do eventually. We ultimately want to support self-sovereign identity in any reasonable form users choose. We probably also want to let users show up with less ideal forms of identity if that’s what they want instead.