Skip to content

Commit

Permalink
Add comparison benchmarks
Browse files Browse the repository at this point in the history
  • Loading branch information
AaronFeickert committed Aug 3, 2023
1 parent d764727 commit b5c6ca8
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion src/RFC-0181_BulletproofsPlus.md
Original file line number Diff line number Diff line change
Expand Up @@ -251,14 +251,18 @@ This means single-proof verification has $b = 1$.
| Bulletproofs | $b[2\operatorname{lg}(mn) + m + 4] + 2mn + 2$ |
| Bulletproofs+ | $b[2\operatorname{lg}(mn) + m + 3] + 2mn + p + 1$ |

Verification in Bulletproofs+ is slightly faster than in Bulletproofs.
Verification in Bulletproofs+ is slightly faster than in Bulletproofs in theory.

In practice, verification of a single 64-bit range proof in the [Tari Bulletproofs+](https://github.com/tari-project/bulletproofs-plus) implementation is about 1.3% slower than in an [updated fork](https://github.com/tari-project/bulletproofs) of the [Dalek Bulletproofs](https://github.com/dalek-cryptography/bulletproofs) implementation.

### Proving efficiency

It is more challenging to compare proving efficiency, since generation of a range proof does not reduce cleanly to a single multiscalar multiplication evaluation for either Bulletproofs or Bulletproofs+ range proofs.
However, we note that the overall complexity between the inner-product arguments in the proving systems is similar in terms of group operations; outside of these inner-product arguments, Bulletproofs+ requires fewer group operations.
Overall efficiency is likely to depend on specific optimizations.

In practice, verification of a single 64-bit range proof in the Tari Bulletproofs+ implementation is about 40% slower than in the Dalek Bulletproofs updated fork.

## Changelog

| Date | Change | Author |
Expand Down

0 comments on commit b5c6ca8

Please sign in to comment.