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

Eliminate unnecessary merkle proofs in ADVZ shares #671

Closed
ggutoski opened this issue Aug 29, 2024 · 1 comment · Fixed by #678
Closed

Eliminate unnecessary merkle proofs in ADVZ shares #671

ggutoski opened this issue Aug 29, 2024 · 1 comment · Fixed by #678
Assignees

Comments

@ggutoski
Copy link
Contributor

ggutoski commented Aug 29, 2024

This issue drawn from #657 (comment)

Currently each share now has multiplicity distinct merkle paths instead of just 1. That's a waste of bandwidth and it breaks backwards compatibility with jellyfish tag 0.4.5.

We should have only a single merkle proof for all evals.

@ggutoski
Copy link
Contributor Author

The fix #657 breaks backwards compatibility with jellyfish tag 0.4.5 for serialization of ADVZ's Share struct because this field

evals_proof: KzgEvalsMerkleTreeProof<E, H>,

...became this
eval_proofs: Vec<KzgEvalsMerkleTreeProof<E, H>>,

It seems impossible restore backwards compatibility. Any fix for this issue that restores evals_proof to its original type must change how the merkle tree is built, in which case future versions of jf-vid will disagree with past versions on how to build the merkle tree.

Given that we must break backwards compatibility somewhere, we should fix this issue and break how the merkle tree is built. The only alternative is to not fix this issue, in which case we continue to unnecessarily bloat share size by including unneeded merkle paths.

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 a pull request may close this issue.

2 participants