Skip to content

feat: implement UncompressedEncoding - #73

Open
huitseeker wants to merge 3 commits into
zcash:mainfrom
huitseeker:uncompressed
Open

feat: implement UncompressedEncoding#73
huitseeker wants to merge 3 commits into
zcash:mainfrom
huitseeker:uncompressed

Conversation

@huitseeker

@huitseeker huitseeker commented May 31, 2023

Copy link
Copy Markdown

The uncompressed representation (both coordinates are present in an affine point's representation) is useful in cases where one would want to avoid paying for the cost of a point decompression (e.g. public parameter caching).

  • Implement uncompressed encoding for affine representations,
  • Update Rust toolchain to version 1.60.0 to satisfy the requirements of constant_time_eq & regex,
  • Add paste dependency at version 1.0.12 in order to give a specific struct for that representation for each of Pallas, Vesta through a macro.
  • Implement serialization / deserialization for the uncompressed encoding, and test it.

Use case:
Point (de)serialization when caching public parameters (for e.g. a vector Pedersen commitments), where the deserialization can be prohibitively expensive if done with the compressed form of the points. The uncompressed points do not have that flaw.

@huitseeker huitseeker changed the title feat: implement UncompressedEncodeing feat: implement UncompressedEncoding May 31, 2023
@huitseeker
huitseeker force-pushed the uncompressed branch 3 times, most recently from 76edae0 to 2ffb0bb Compare June 2, 2023 23:16
@huitseeker
huitseeker marked this pull request as draft June 5, 2023 17:36
@huitseeker
huitseeker marked this pull request as ready for review June 5, 2023 19:57
@huitseeker
huitseeker force-pushed the uncompressed branch 4 times, most recently from fb6f098 to eacec5f Compare June 7, 2023 22:08
huitseeker and others added 3 commits August 4, 2023 14:46
- Update Rust toolchain to version 1.59.0 to satisfy the requirement of constant_time_eq v0.2.5,
- Implement UncompressedEncoding for affine representations,
- Add `paste` dependency at version 1.0.12 in order to give a specific struct for that representation for each of Pallas, Vesta.
@huitseeker

Copy link
Copy Markdown
Author

@str4d Please let me know if there's anything I can help with on this PR.

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.

2 participants