We have three goals for identities on our platform:
The primary way for users on Comm to register an account is through their ETH wallet. We're looking to integrate with the ongoing work from the login.xyz folks as well as the upcoming WalletConnect 2 launch.
In the initial version, we'll use a simple Message Signing Request to validate that the user controls their ETH wallet. This will be the mechanism for registration, log-in, and account recovery.
As an alternative for Web3 newbies, we'll allow people to sign up for a Comm account using a username / password combo. We're still figuring out a long-term plan on how to avoid naming collisions with other name systems we may want to integrate with.
In order to avoid leaking passwords to our backend services, we'll use an asymmetric PAKE (OPAQUE specifically) to verify credentials.
On-chain identities are impossible to hijack. Logging in with ETH solves this trivially, but we also want to solve it for the username / password case. We're still thinking through the solution there, but it will probably involve roll-ups.