(Hi, I’m not involved with the Zcash Community Grants committee—just an interested Zcash community member.)
Hi there! Thanks for offering to help the Zcash project! I’m interested in usability and security, and I looked into MFKDF a little, and I have some questions.
It seems to me that passkeys are going to become the universal standard way to authenticate. They’re more secure than the current alternatives, but their increased security comes with easier usability rather than harder. And they are already supported in almost every client (phone OS, password manager, etc) and the majority of the biggest services (Google, etc).
As a user, I prefer to switch to passkeys from the other alternatives (passwords, out-of-band authentication, TOTP like Authy, hardware keys, etc…) because I know things will be easier and quicker for me after I make the switch, and I feel increased “peace of mind” since the underlying cryptographic protocol is more secure.
So what I personally want is to take the same local, loyal user agent that cryptographically controls all of my accesses to services and accounts (by signing my login requests with the private key of the appropriate passkey key pair), and have that thing also control access to my Zcash.
However, this is as far as my thinking and experimenting has gone. I don’t know much more about how that would work, other than that it would probably involve trade-offs that different users would make differently, and that it would involve a ton of hard engineering work by Zcash wallet devs (of whom I am not currently one).
So, questions for you:
- Does that idea even make sense, technically? Seems like you’re probably experts on this.
- Do you think it is a good idea? Any interesting trade-offs you would call out? Would you personally use something like that?
- Could you help make it possible for Zcash users to do that, either with MFKDF2, or in a completely separate project, assuming you could get help from some Zcash wallet builders or other developers like the Blockchain Commons folks?
Thanks for your attention! Hope this half-baked idea turns out to be useful.