-
Notifications
You must be signed in to change notification settings - Fork 19
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
Create a FHE ECDSA signature tutorial #45
Comments
Note that neither s nor r making up the signature need to be encrypted. In fact, if they are then we’ll next want to decrypt them to obtain a plaintext signature. However, both the private key and the randomness sampled for the signature should be encrypted. In summary, the inputs are:
Note also that we do not need deterministic ECDSA (RFC 6979), so applying a hash function to the private key is not required (which would be expensive). |
I think this comment is misleading, because it's impossible that
|
To clarify, it is not a requirement from our side that s is a ciphertext, but there may be technical reasons for this, which is also acceptable. |
is it ok if we take both encrypted |
Such a solution would still be interesting to us, but we would consider it partial and not subject to the full bounty. |
Hi, I have researched a bit but it seems that computing the multiplicative modular inverse homomorphically is not practical. If we use the fast exponentiation method to get An alternative method is the extended euclidean algorithm but again it would require many ciphertext divisions and multiplications. |
Hi @JoseSK999, Computing the random curve point ( |
@mortendahl I don’t understand, in this bounty it’s specified that EC key generation is not required 🤨. My point is that computing the modular inverse in FHE seems to be extremely slow simply because of the available algorithms (e.g. the exponentiation method) and I believe the best option is pre-computing it in the client side |
Why does the nonce need to be encrypted? Can't we just have a scalar-ciphertext operations? |
Not sure I follow @JoseSK999. What do you mean by key generation? Above I was referring to step 3 in ECDSA Sign. |
@georgio the nonce needs to be kept secret since otherwise there are attacks exposing the secret key. |
@mortendahl computing the nonce point R is the same as computing a public key. In this bounty it’s specified that Elliptic Curve key generation is not required. R should be pre-computed then. |
|
It’s pre-computed in the client side, instead of computed homomorphically I mean (using an external impl of EC public key generation) |
Is there any restriction on how the inputs are encoded? |
There isn't always a traditional client side in some of the interesting applications, which is why we're pushing back on this direction. |
@RasoulAM I think we can be flexible here. Ideally using parameters MESSAGE_2_CARRY_2. Do you have something specific in mind? |
Winners
🥇 1st place: A submission by Tetration-Lab
Overview
Create a tutorial demonstrating how to generate a ECDSA signature on clear data with an FHE-encrypted private key
Description
The goal of this bounty is to implement the ECDSA signature algorithm, used on the Ethereum blockchain, in FHE.
It uses the curve
secp256k1
. From an FHE encrypted private key and a clear message, the provided algorithm shouldbe able to return a signature that (potentially after being decrypted by the FHE private key) can be verified in clear with the EC public key.
This bounty does not expect EC key generation, or Signature validation function.
We expect your PR to comply with the following:
Your PR should comply with the following:
tfhe/examples/secp256k1-signature.rs
tfhe/docs/tutorial/secp256k1-signature.md
Prizes
🥇 1st place: €10,000
🥈 2nd place: €3,500
🥉 3rd place: €1,500
Rewards are attributed based on code quality and speed performance on the Amazon EC2 M6i instances.
Related links and references
Application
Are you interested to work on this bounty? Apply directly to this bounty by opening an application here.
Questions?
Do you have a specific question about this bounty? Join the live conversation on the FHE.org discord server here. You can also send us an email at: [email protected]
The text was updated successfully, but these errors were encountered: