-
Notifications
You must be signed in to change notification settings - Fork 1k
Add support for RSA, SHA-512, and Externally Hashed Payload Verification #3837
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
Comments
Do you want these features to be implemented as neo vm library(like |
I'd like to see the scheme, OAuth is what's been talked about for quite some time in community. But my impression was that it doesn't require any additional crypto primitives. Requires a trusted third party (inevitably, can be distributed in somewhat similar to oracles way), but no more than that. Still, extensions to crypto library can be done if really needed. |
Yes, if possible. Being able to check RSA signatures will allow many new integrations. I hope it's possible to ingerate it (I know that key lengths will be a problem)
The required cryptographic primitives depend on the platform provider. OAuth may not need them, but other authentication methods do. We are exploring one use case, Discord. It is something like this:
So, if we:
Then:
However, SHA512 does not seem ZK-friendly (used in ed25519), and the proof verification cost would make this approach impractical, even if it's done just once.
That's true. You need a 'registered app' to support social logins, but it's not a big deal as long as this party can't make transactions on behalf of the user. |
Summary or problem description
We recently released the initial version of our Abstract Wallet for Neo (enclavewallet.com). One feature under consideration is social media login integration (OAuth-based logins). However, implementing it is currently blocked by missing cryptographic algorithms. Specifically, Neo is missing RSA and some hashing algorithms (like SHA512).
Our use case requires verifying signatures against externally hashed data rather than the original plaintext payload. Currently, the verification interops expect the entire original message, perform hashing internally, and then validate the signature. However, we cannot disclose the original JSON payload due to privacy constraints. We can only disclose the hash and associated signature, alongside a zero-knowledge proof indicating possession of the original payload.
Do you have any solution you want to propose?
Where in the software does this update applies to?
EDIT: I don't know if these solutions will in fact, solve my problem. It seems that Using SHA512 inside ZK is extremely costly and may not be viable at all. However, I don't know/didn't find ZK-friendly hashing functions on Neo.
The text was updated successfully, but these errors were encountered: