EspressoSystems / hyperplonk

MIT License
184 stars 39 forks source link

Refactor HyperPlonk SNARKs #73

Closed chancharles92 closed 2 years ago

chancharles92 commented 2 years ago

Part I of issue #68

  1. remove multiple witness commitments in the proof, use only the merged commitment.
  2. bugfix: add the product polynomial check prod(1, ..., 1, 0) = 1
  3. add degree() for custom gate struct.
  4. add more verification sanity checks.
  5. support multiple selector polynomials.
  6. add some bad path tests.
  7. define HyperPlonkIndex and simplify preprocess() API
  8. refactor structs SelectorRow/Column and WitnessRow/Column
  9. improve error messages.

Next PR:

  1. Simplify prove()/verify() functions, split it into multiple smaller functions.