How Sui Foundation is seamlessly onboarding Web2 users to Web3 with zkLogin

How Sui Foundation is seamlessly onboarding Web2 users to Web3 with zkLogin

The vision of Web3 is to create a version of the internet built and controlled by its users. However, getting these users, especially non-developers to actually interact with Web3 dApps has proven to be difficult. Users have to go through the process of setting up a crypto wallet and learning how to safeguard their private key and seed phrases, and most times, this entire process makes them hesitant.

However, Sui Foundation has launched an authentication solution called zkLogin, which allows users to connect and interact with dApps by providing familiar authentication options like Google and Facebook on Web3 platforms.

About Sui

Sui is a layer 1 blockchain launched in May 2023 that uses the Proof of Stake consensus mechanism, with SUI as its native token. A unique feature of Sui is that it allows horizontal scaling and parallel execution of transactions. This allows it to maintain low transaction costs while reducing the time taken to process transactions.

What is Sui's solution to the Web3 onboarding issue?

The problem

In Web 3, the general authentication method is connecting your crypto wallet, which as mentioned, might be a setback for users who have little knowledge of what crypto wallets even are, and just want to make use of the dApp they are trying to connect to. This creates a barrier for people who could potentially benefit from Web3 services, but lack the knowledge to set up and manage a crypto wallet.

Imagine an online game you've been playing for years announces it is launching a V2.0 hosted on the blockchain. You're still excited because even though you don't entirely know what it entails, it still seems exciting. The game developers have mentioned that gamers would get access to exclusive NFTs and other perks, and your anticipation increases. The game is launched and you head over to their website. There is no sign-in / sign-up button, just a connect wallet button. On clicking it, you realize that you don't even have any of the options provided. On googling these options, you find tons of articles telling you how to set up a crypto wallet. Meanwhile, you're not even sure what exactly a crypto wallet is or which one you should choose, and everything just seems confusing. In the end, you give up and close your laptop.

There are a lot of cool projects on the blockchain that users would be interested in if only they could test out its features. Even some educational projects meant to teach you Web3 and blockchain technologies are hosted on the blockchain and may require you to create a crypto wallet. Additionally, Developers do not get as many users as they could to use their dApps because of the process of having to create a crypto wallet and safely manage your private keys.

Most times, only users already interacting with blockchains explore Web3 projects. Some other users might be hesitant because they've lost their private keys in the past, or fallen for a scam involving giving out their private key and their assets being drained, or unknowingly connected to a malicious site because they're not used to using crypto wallets, or just do not want to go through the process of setting up a crypto wallet simply because they want to use a dApp. Instead, they go on to find a Web2 alternative.

The Solution

zkLogin. zkLogin allows users to sign in to dApps with Web2 credentials like their Google or Slack account. zkLogin employs a combination of zk-Snarks and JSON Web Tokens (JWT) to verify user identity without exposing the user's details to the blockchain. Instead, only zero-knowledge proofs and ephemeral signatures are submitted to provide the user with access to the dApp.

Currently, zkLogin supports authentication for Facebook, Google, Twitch, Slack and Apple; with plans to support WeChat, Amazon, AuthO, Microsoft, and lots more soon.

With zkLogin:

  • Users can access Web3 apps easily from any device. Currently, on mobile devices, you have to use the built-in browser in your crypto wallet to connect to dApps instead of directly using a regular browser. This feature will also enable biometric authentication.

  • Web3 dApps can be easily adopted by any user without even having Web3 knowledge. Connecting to dApps will be as easy as signing in to any Web2 website.

  • Web2 organizations can introduce Web3 projects for their users to benefit from. This will improve and make way for Web2 & Web3 cross-interaction.

  • Since data from these credentials are not stored on chain, Web2 users are more likely to adopt or switch to Web3 dApps that have similar features to a Web2 app they've been using, since they get the same features and additional user privacy and protection.

  • Users can have a Web3 wallet on Sui ecosystem without having to safeguard any private keys or seed phrases.

How does zkLogin differ from previous onboarding solutions?

Previously, we've seen other solutions like Multi-Party Computation (MPC) wallets and Multi-Signature wallets. Here's a summary of how zkLogin differs from these solutions:

FeaturezkLoginMPC/Multisig Wallets
Key ManagementNo individual private keys. Ephemeral private keys are generated using a fresh nonce during authenticationRelies on multiple keys or key shares.
Threshold SettingNot applicable.Requires defining a threshold for signatures.
Private Key SplittingNot applicable.Involves splitting individual private keys.
Persistent Private KeysNone required.Requires managing persistent private keys.
Additional SecurityActs as a 2FA scheme.Can be combined with zkLogin for enhanced security in Multisig settings

In summary, while zkLogin provides a unique method of authentication without the need for managing private keys, MPC and Multisig wallets rely on the distribution of keys and setting threshold values for signature acceptance. Additionally, zkLogin can be used in conjunction with Multisig wallets for added security in k-of-N settings.

Getting Started With zkLogin

Currently, zkLogin is only available for use on Sui's Devnet. To get started, head over to zkLogin documentation to learn how you can set up and implement zkLogin in your next project.