Here is simple question about software development in a decentralized paradigm: who is responsible for creating the user?
In traditional application development, this is a silly question. If I’m creating a new SaaS product for startups, somewhere in my architecture is the ‘User’ feature set. Users will get a unique id that is only useful within my application. I am the owner of that user’s identity inside my application and I control everything about how that feature set works. Even with authentication methods like Google and Facebook, developers today are creating a unique, virtually non-transferable identity.
In a decentralized application, things work a bit differently. When developing a Dapp (Decentralized Application), the developer is still responsible for building the core feature set (what the application does), but only creates end points for users to ‘interact’ with said feature set. The ‘user’ is expected to be in a form a public key, controlled through a wallet application. Authentication is no longer the developers responsibility, nor the identifying information of said user. Because of this, responsibility for the ‘user’ has jumped the fence away from the application developer.
This leads to a rather interesting quirk of decentralized application: identities will transfer from application to application. On any one application, my username is not guaranteed to be unique to me, and even if it was, applications have no easy way to access this information without serious effort. But with my public key, my ID is my ID, and if I want to connect that to all my decentralized applications through this identifier, I can. And suddenly, this becomes the way that my many services associated to me can be linked.
What this brings is a level of continuity that neither developers nor users have ever had before. As a developer, it would have been impossible to be able to add to some feature for Facebook users without Facebook’s express permission and access. But in a decentralized development framework, I don’t need Facebook’s permission to do this. I can simply add the functionality and the users can decide if it’s good for them. This also allows me to find intersections between users of different applications (say, reviewers on Yelp and writers on Quora) and offer them an opportunity because of their unique affiliation.
Decentralizing applications has altered the fundamentals of software development. This un-bundling of features and users is just one of those fundamentals that will eventually lead to big changes. This creates new opportunities and will shape the way entrepreneurs must think about the emerging business landscape.