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

move to 0.4.x versions of arkworks crates #2004

Closed
18 tasks done
Tracked by #1825
redshiftzero opened this issue Feb 17, 2023 · 0 comments · Fixed by #2422
Closed
18 tasks done
Tracked by #1825

move to 0.4.x versions of arkworks crates #2004

redshiftzero opened this issue Feb 17, 2023 · 0 comments · Fixed by #2422
Assignees
Labels
A-shielded-crypto Area: Cryptographic design for Penumbra's shielded transaction model

Comments

@redshiftzero
Copy link
Member

redshiftzero commented Feb 17, 2023

We should move to use the 0.4.x series of arkworks crates. There are some breaking changes that will need to be propagated through our dependencies. This is the implementation plan:

https://crates.io/crates/poseidon-parameters/0.3.0
https://crates.io/crates/poseidon-paramgen/0.3.0
https://crates.io/crates/poseidon-permutation/0.3.0
https://crates.io/crates/poseidon377/0.4.0

And finally this will let us use a more recent version of ark-groth16.

@redshiftzero redshiftzero added the A-shielded-crypto Area: Cryptographic design for Penumbra's shielded transaction model label Feb 17, 2023
@redshiftzero redshiftzero self-assigned this Feb 17, 2023
redshiftzero added a commit to penumbra-zone/poseidon377 that referenced this issue Apr 25, 2023
This is the `r1cs` branch from our git fork of `ark-sponge`:

https://github.com/penumbra-zone/sponge

It is unmodified in this commit, changes will be made in the
subsequent commits for clarity of the git history.

The upstream `ark-sponge` repository is archived because they moved
the poseidon implementation to a different repository. In addition,
we need to make a lot of changes to get on the upstream impl. This
was attempted back in November and at that time we decided to continue
using our fork only for the R1CS feature.

However, in light of the upcoming migration to Poseidon2, any work
resolving the divergence between our fork and the upstream repo would
be wasted, as we'll be soon removing Poseidon 1 from `poseidon377`.

As such, for stability, we are vendoring our fork of `ark-sponge`
on a temporary basis such that we can release `poseidon377` unchanged
to crates, then pin all penumbra repositories to that release.

Afterwards, we will proceed with migrating to Arkworks 0.4.x release
series [0] and migrating to Poseidon2 [1].

[0] penumbra-zone/penumbra#2004
[1] #40
redshiftzero added a commit to penumbra-zone/poseidon377 that referenced this issue Apr 26, 2023
This is the `r1cs` branch from our git fork of `ark-sponge`:

https://github.com/penumbra-zone/sponge

It is unmodified in this commit, changes will be made in the
subsequent commits for clarity of the git history.

The upstream `ark-sponge` repository is archived because they moved
the poseidon implementation to a different repository. In addition,
we need to make a lot of changes to get on the upstream impl. This
was attempted back in November and at that time we decided to continue
using our fork only for the R1CS feature.

However, in light of the upcoming migration to Poseidon2, any work
resolving the divergence between our fork and the upstream repo would
be wasted, as we'll be soon removing Poseidon 1 from `poseidon377`.

As such, for stability, we are vendoring our fork of `ark-sponge`
on a temporary basis such that we can release `poseidon377` unchanged
to crates, then pin all penumbra repositories to that release.

Afterwards, we will proceed with migrating to Arkworks 0.4.x release
series [0] and migrating to Poseidon2 [1].

[0] penumbra-zone/penumbra#2004
[1] #40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-shielded-crypto Area: Cryptographic design for Penumbra's shielded transaction model
Projects
No open projects
Status: Testnet 52: Amalthe
Development

Successfully merging a pull request may close this issue.

1 participant