mirror of
https://github.com/powdr-labs/powdr.git
synced 2026-01-09 14:48:16 -05:00
update readme (#1375)
This commit is contained in:
16
README.md
16
README.md
@@ -19,6 +19,7 @@ It has two main components:
|
|||||||
|
|
||||||
- powdr-asm: an extensible assembly IR language to perform dynamic executions.
|
- powdr-asm: an extensible assembly IR language to perform dynamic executions.
|
||||||
- powdr-PIL: a low level constraint language that allows you to define arithmetic constraints, lookups, etc.
|
- powdr-PIL: a low level constraint language that allows you to define arithmetic constraints, lookups, etc.
|
||||||
|
It includes a functional meta-constraint language to describe how constraints are generated.
|
||||||
|
|
||||||
Both frontend and backend are highly flexible.
|
Both frontend and backend are highly flexible.
|
||||||
|
|
||||||
@@ -27,9 +28,14 @@ which is compiled to RISCV, then to powdr-asm and finally to powdr-PIL.
|
|||||||
|
|
||||||
*powdr*-pil can be used to generate proofs using multiple backends, such as:
|
*powdr*-pil can be used to generate proofs using multiple backends, such as:
|
||||||
|
|
||||||
- Halo2: via [polyexen](https://github.com/Dhole/polyexen) and [snark-verifer](https://github.com/privacy-scaling-explorations/snark-verifier/)
|
- Halo2, using PSE's
|
||||||
- eSTARK: via [Eigen's starky](https://github.com/0xEigenLabs/eigen-zkvm/) or via [our fork of Polygon's zkevm-prover](https://github.com/powdr-labs/zkevm-prover).
|
- [Halo2](https://github.com/privacy-scaling-explorations/halo2)
|
||||||
- SuperNova: ongoing work (https://github.com/powdr-labs/powdr/pull/453)
|
- [snark-verifier](https://github.com/privacy-scaling-explorations/snark-verifier/)
|
||||||
|
- [halo2-solidity-verifier](https://github.com/privacy-scaling-explorations/halo2-solidity-verifier)
|
||||||
|
- eSTARK, using
|
||||||
|
- [Eigen's starky](https://github.com/0xEigenLabs/eigen-zkvm/)
|
||||||
|
- [our fork of Polygon's zkevm-prover](https://github.com/powdr-labs/zkevm-prover)
|
||||||
|
- Plonky3 (ongoing work): https://github.com/powdr-labs/powdr/pull/1158
|
||||||
|
|
||||||
All stages are fully automatic, which means you do not need to write any
|
All stages are fully automatic, which means you do not need to write any
|
||||||
additional code for witness generation besides your Rust code. All witnesses
|
additional code for witness generation besides your Rust code. All witnesses
|
||||||
@@ -37,10 +43,10 @@ are automatically inferred from the constraints. Since the witnesses are
|
|||||||
inferred, *powdr* can ensure that the system is not underconstrained, i.e.
|
inferred, *powdr* can ensure that the system is not underconstrained, i.e.
|
||||||
there are no additional unwanted witnesses.
|
there are no additional unwanted witnesses.
|
||||||
|
|
||||||
All artifacts from the compilation pipeline are human-readable. This means you
|
All artifacts from the compilation pipeline are human-readable. You
|
||||||
can inspect the RISCV assembly files, the powdr-asm IR, and the compiled PIL file.
|
can inspect the RISCV assembly files, the powdr-asm IR, and the compiled PIL file.
|
||||||
|
|
||||||
The assembly language is designed to be extensible. This means that it does not have a single
|
The assembly language is designed to be extensible and does not have a single
|
||||||
native instruction. Instead, all instructions are user-defined and because of that,
|
native instruction. Instead, all instructions are user-defined and because of that,
|
||||||
it is easy to adapt *powdr* assembly to any VM.
|
it is easy to adapt *powdr* assembly to any VM.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user