-
Notifications
You must be signed in to change notification settings - Fork 107
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[AIP-61][Discussion] Keyless accounts #297
Comments
|
|
I am a developer eager to see WebAuthn implemented in keyless as soon as possible. Although the AIP considers WebAuthn, the actual implementation only includes Ed25519. Could this be due to the support for secp256r1? Additionally, I would like to propose extensions for WebAuthn. Would it be appropriate to continue with this here, or should I create a new AIP? I believe WebAuthn is the key to unlocking the remaining potential of keyless accounts. pub enum EphemeralPublicKey {
Ed25519 {
public_key: Ed25519PublicKey,
},
Secp256r1Ecdsa {
public_key: secp256r1_ecdsa::PublicKey,
},
}
pub enum EphemeralSignature {
Ed25519 {
signature: Ed25519Signature,
},
WebAuthn {
signature: PartialAuthenticatorAssertionResponse,
},
} |
Thank you for the great news. I will actively use it. |
AIP Discussion
Currently, the only way1 to secure your Aptos account is to protect the secret key (SK) associated with it. Unfortunately, this is much easier said than done. In reality, secret keys are often lost (e.g., users forget to write down their mnemonic when first setting up their Aptos wallet) or stolen (e.g., users are tricked into revealing their SK). This makes onboarding users unnecessarily difficult and drives users away when their accounts are lost or stolen.
In this AIP, we describe a more user-friendly approach for account management that relies on the unmodified[^openpubkey] OpenID Connect (OIDC) standard and recent developments in zero-knowledge proofs of knowledge (ZKPoKs) of OIDC signatures2$^,$ 3$^,$ 4$^,$ 5$^,$ 6.
Specifically, we enable keyless accounts on Aptos that are secured through the owner’s existing OIDC account (i.e., their Web2 account with an OIDC provider such as Google, GitHub or Apple), rather than through a difficult-to-manage secret key. In a nutshell, “your blockchain account = your OIDC account”.
An important property of keyless accounts is that they are not only bound to the user’s OIDC account (e.g.,
[email protected]
) but are also bound to a managing application registered with the OIDC provider (e.g., a dapp’sdapp.xyz
website, or a wallet’s mobile phone app). In other words, they are application-specific accounts. As a consequence, if the managing application of an account disappears or loses their OIDC provider registration credentials, then users whose accounts are bound to this application will become inaccessible, unless alternative recovery paths are provided (discussed below).Read more about it here:
Footnotes
There are alternatives to single-SK accounts, such as multisignature-based accounts (e.g., via MultiEd25519 or via AIP-55), but they still bottle down to one or more users protecting their secret keys from loss or theft. ↩
https://github.com/TheFrozenFire/snark-jwt-verify/tree/master ↩
https://github.com/sehyunc/nozee ↩
https://www.risczero.com/news/bonsai-pay ↩
https://github.com/emmaguo13/zk-blind ↩
https://docs.sui.io/concepts/cryptography/zklogin ↩
The text was updated successfully, but these errors were encountered: