plonky2/README.md

21 lines
1.1 KiB
Markdown
Raw Normal View History

# plonky2
2021-05-20 19:49:20 -07:00
plonky2 is an implementation of recursive arguments based on Plonk and FRI. It uses FRI to check systems of polynomial constraints, similar to the DEEP-ALI method described in the [DEEP-FRI](https://arxiv.org/abs/1903.12243) paper. It is the successor of [plonky](https://github.com/mir-protocol/plonky), which was based on Plonk and Halo.
2021-05-20 19:42:10 -07:00
2021-05-20 19:49:20 -07:00
plonky2 is largely focused on recursion performance. We use custom gates to mitigate the bottlenecks of FRI verification, such as hashing and interpolation. We also encode witness data in a ~64 bit field, so field operations take just a few cycles. To achieve 128-bit security, we repeat certain checks, and run certain parts of the argument in an extension field.
2021-05-05 19:24:04 -07:00
## Running
2021-08-19 08:27:14 -07:00
To see recursion performance, one can run this test, which generates a chain of three recursion proofs:
2021-05-05 19:24:04 -07:00
```sh
2021-08-19 08:27:14 -07:00
RUST_LOG=debug RUSTFLAGS=-Ctarget-cpu=native cargo test --release test_recursive_recursive_verifier -- --ignored
2021-05-05 19:24:04 -07:00
```
2021-04-08 09:37:08 -07:00
## Disclaimer
This code has not been thoroughly reviewed or tested, and should not be used in any production systems.