daimo-eth / p256-verifier

P256 signature verification solidity contract
https://p256.eth.limo
MIT License
147 stars 28 forks source link

add gas benchmark suite and minor edit to verifier #14

Closed nalinbhardwaj closed 9 months ago

nalinbhardwaj commented 9 months ago

Closes #10.

Running 2 tests for test/GasBenchmark.t.sol:GasBenchmarkTest
[PASS] testBenchmarkRandomGasUsage() (gas: 682790212)
Logs:
  Our verifier gas usage  avg:  341287
  Our verifier gas usage  min:  327588
  Our verifier gas usage  max:  354643

  FCL verifier gas usage  avg:  269825
  FCL verifier gas usage  min:  256961
  FCL verifier gas usage  max:  282294

[PASS] testBenchmarkWycheProofGasUsage() (gas: 438096793)
Logs:
  Our verifier gas usage  avg:  274581
  Our verifier gas usage  min:  999
  Our verifier gas usage  max:  386445

  FCL verifier gas usage  avg:  217123
  FCL verifier gas usage  min:  1645
  FCL verifier gas usage  max:  310435
nalinbhardwaj commented 9 months ago

Post enabling optimiser-runs, seems our verifier takes ~340k gas vs. FCL's ~270k. Seems worth it for readability/other improvements still.