Skip to content
/ upa Public

UPA is the proof aggregation engine built by NEBRA team.

License

Notifications You must be signed in to change notification settings

NebraZKP/upa

Repository files navigation

NEBRA UPA

NEBRA UPA is the blazingly fast, production ready universal proof aggregation engine built by Nebra team.

Currently, NEBRA UPA (v1.2) takes a batch of Groth16 proofs and aggregates them into a single Etheruem verifiable Halo2 proof. NEBRA UPA supports the following 3 implementations of Groth16:

  • SnarkJS
  • Gnark (without commitment)
  • Gnark (with commitment)

Docs | demo-app | Telegram Chat

For Developers: Integrating with NEBRA UPA

To integrate with NEBRA UPA, you can follow the developer guide. Integrating with NEBRA UPA allows you to lower the ZKP verification cost by 10x or more. You can use the NEBRA UPA SDK to make client-side proof submission easier.

For Contributors

The repo is arranged as follows:

  • upa - Typescript SDK and tool to interact with UPA
  • circuits - Aggregation circuit code
  • prover - Executable to create aggregation proofs
  • examples - Example applications using UPA
  • spec - Protocol and circuits specification
  • audits - Security audit reports of the UPA circuits and contracts