DEV Community

Justin Hunter
Justin Hunter

Posted on • Originally published at Medium on

Give Users Control of Their Data by Giving Them Choice

Photo courtesy of https://unsplash.com/@burst

Whether you are building in the blockchain space, the Web 3.0 space, the cloud computing space, or actual space, there is an increasing desire to give users more control over their data. Even the big tech companies are forming data standards to help with data portability (even if it may just be for appearances). While there are a variety of ways to approach user-controlled data, the Web 3.0 space (including Blockchain solutions) often focuses on non-custodial, complete control systems. These systems require a certain level of technical knowledge, they require users to step out of the normal flow of interacting with applications, and they require users take on a burden they are not used to taking on. This is totally fine if users want that. But what about the vast majority of users that want some sort of control of their data but don’t want the burden of extra responsibility?

Let’s first talk about the extra responsibility in question. For most proponents of decentralization, the idea of giving users control means giving users their encryption keys and identity information and telling them to manage it properly or lose everything. For some, that’s the right approach. There are those that want that level of control. But your mom and dad probably just want to know where their data is, how it’s being used, and how they can get it out if they want it. Should we be forcing them to take on the responsibility of managing their keys and generating wallets, and shoving pieces of paper in a safe so that they don’t lose access to everything? Probably not. But we also shouldn’t remove that as an option.

Giving users control comes in layers. One day, Mom and Dad might decide they do want to cut out the middleman, the convenience layer. If they make that decision, there should be a way for them to achieve this goal. There should be a way for them to say “I’m ready to manage my identity and encryption keys now, please.” Until they make that decision, though, there should be a way to help them manage their identity and encryption keys without asking them to jump through too many hoops. Without fully centralizing the solution. Because, if the solution is totally centralized, a failure of that solution will result in them losing access to their data which means they never actually had control at all.

SimpleID acts as a convenience layer to the Web 3.0 identity space. If gives developers the tools to build apps with a traditional username/password interface for logging in while giving end-users access to Web 3.0 functionality like distribute storage, smart contracts, encryption, and more. When an account is created, the user is emailed their root keychain, encrypted with the password they selected. This means if SimpleID ever went away, these users do not lose access to their data as long as they have access to that email and remember their password. This is a significant step up from asking users to remember a 12-word seed phrase or writing down a private key and store it in a safe. But it is also just a stepping stone.

Developers that use SimpleID can and should provide full, non-custodial options also. You can see this is how Graphite manages authentication. Lens does too. Giving users choice is one of the pillars on which Web 3.0 is based. So, we should stop looking at the world of user-controlled data as an all or nothing solution. We should provide layers of decentralization. Choose what should be decentralized and when. Or, better yet, let the users decide.

If you’re interested in building apps that leverage Web 3.0 technologies and would like to give users the choice of using an authentication system they know and expect, SimpleID can help. Check out our website, demo app, and documentation.


Top comments (0)