Skip to content

algorand/pointproofs-paramgen

Repository files navigation

Pointproofs vector commitment parameter generation

Build Status

Usage

This crate generates parameters for Pointproofs vector commitment schemes.

init params.out parameter_n

Generate starting parameters (with no entropy) for parameter_n and stores them in params.out.

evolve id_string params.in params.out

Reads old params from params.in, rerandomizes them and writes them (with a proof of knowledge of the mixed-in exponent) to params.out, using id_string as your identity.

verify id_string params.old params.new

Given assumed-good old params and a newly rerandomized version (with a proof of knowledge of the mixed-in exponent), verify that the new parameters were rerandomized correctly (i.e., check that the parameters are self-consistent and that the proof is correct for prover identity id_string).

finalize beacon_value params.in params.final

Given assumed-good params in params.in and the value of the shared random beacon, output the final set of parameters to params.final.

Sample param

A sample file crs.param is provided for testing purpose. It supports vectors of dimensions = 8. This file shall NOT be used in products.

Security notes

  • The "evolve" operation is NOT CONSTANT TIME and should not be run in a setting where an attacker can precisely measure runtime.

  • consistencycheck.pdf contains a description and security proof for the probabilistic consistency check used as part of the verify operation.

  • usage.md describes how to carry out a secure multiparty computation to generate parameters using this tool.

  • security.pdf gives a security proof of said multiparty protocol.

  • This code is NOT production ready yet. It passed one external audit, but additional auditing and testing is required before deployment.

About

No description, website, or topics provided.

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published