zebra
zebra copied to clipboard
Add support for Orchard proof batch verification
Motivation
The halo2_proofs
crate ~~does not yet support batch verification~~ (I think it does but we don't use it yet, but in any case its performance was improved recently). When it does, we should use it, since there are some blocks with many Orchard actions that are taking seconds to validate.
Designs
- [ ] Use batch verification in Zebra (see how we handle Sapling batch verification)
- [ ] Revert the relevant changes added in https://github.com/ZcashFoundation/zebra/pull/4670/ if applicable
Related Work
Looking at the changes in https://github.com/zcash/orchard/pull/338/files, we will probably pull in halo2_proofs::plonk::BatchVerifier
and slot that into our tower::Service
Note commitment tree updates are slower than proofs, and single-threaded, so they are a higher priority than orchard batching.
Performance improvements are a low priority right now.