-
Notifications
You must be signed in to change notification settings - Fork 149
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
A composer is a set of functionalities that can be extended into different implementators, such as debuggers or even PLONKup. This commit introduces the composer as trait, and targets to reduce the complexity of the implementation of multiple components of the composer. With this simplification, we achieved significant performance boost for public inputs evaluation. We also removed some of the exported types that are leaked internals. The user shouldn't be aware of public inputs indexes, kzg commitments, keys or any permutation argument. Instead, he should work with proofs, public inputs, public parameters, labels, circuits, provers and verifiers. The proof generation was largely simplified, reducing its arguments to a random number generator for the proof blinders, and a circuit instance for its witnesses. The proof verification was simplified to take only the proof and its public inputs. The public inputs are not encoded into the proof because they are often used from external sources, such as blockchain payload. A debugger was introduced and it will output CDF files if the feature flag is on, and the `CDF_OUTPUT` environment variable is set. These CDF files are expected to be read from the TCDB debugger - a CLI application inspired in gdb, for zk-SNARKS Plonk circuits. Finally, a type-safe constraint was introduced, binding the prover and verifier with their concrete circuit implementation. This allowed great simplification of the verification process since the user don't need to manage verification keys anymore.
- Loading branch information
Showing
52 changed files
with
4,324 additions
and
4,745 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.