Skip to content
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

add Poseidon implementation over bn254 #495

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

HSG88
Copy link

@HSG88 HSG88 commented Apr 8, 2024

Description

This PR adds support for Poseidon hash over the scalar field of BN254, Poseidon has better performance compared to MiMC and is being used in multiple projects.

Fixes #494

Type of change

  • [*] New feature (non-breaking change which adds functionality)
  • [*] This change requires a documentation update

How has this been tested?

All unit tests have been made according to the code referenced in Poseidon paper page 20 footnote 16.

How has this been benchmarked?

The code hasn't been benchmarked yet.

Checklist:

  • [*] I have performed a self-review of my code
  • [*] I have commented my code, particularly in hard-to-understand areas
  • [*] New and existing unit tests pass locally with my changes

@CLAassistant
Copy link

CLAassistant commented Apr 8, 2024

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
1 out of 2 committers have signed the CLA.

✅ HSG88
❌ lightning-li
You have signed the CLA already but the status is still pending? Let us recheck it.

@ivokub
Copy link
Collaborator

ivokub commented Dec 4, 2024

Sorry for the delay - we have merged Poseidon2 permutation #553 recently. Would that be satisfiable? Even though it doesn't implement full hash function, then in many use cases (particularly in SNARK circuits where we hash only fixed number of inputs) it is not necessary.

If you would still be interested in contributing this PR, then we would need to have code-generated implementation for all curves.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

feat: Implement Poseidon hash
4 participants