Skip to content

vladfdp/p256-proving-benchmark

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

p256-proving-benchmark

A benchmark of different proof systems for browser-based proving of ECDSA signatures on the secp256r1 (P256) curve. This repository contains implementations and performance comparisons of various zero-knowledge proving systems.

Why P256 ECDSA?

P256 (secp256r1) is a NIST standard curve used in:

  • Passkeys/WebAuthn signatures
  • National identity cards
  • Passport signatures
  • Digital document signing systems

Benchmark Results

The following systems were tested on :

  • Desktop: Chrome on Macbook M1
  • Mobile: Safari on iPhone (16 and Pro), Chrome on Samsung Galaxy A23
System Time Status
Noir (UltraHonk, multi-thread) - M1 Macbook 2.06s Working
Noir (UltraHonk, multi-thread) - Android ~6s Working
Noir (UltraHonk) - iPhone N/A Out of memory error
Circom N/A Too heavy for browser
SP1 N/A Too heavy for browser
Risc0 N/A Too heavy for browser
Halo2 N/A Runtime error
Cairo N/A Functionality not available

How to run

To run the benchmark, you need to have a rust toolchain installed.

Then you can run:

  • npm install to install the dependencies.
  • npm run wasm to build the wasm file.
  • npm run dev to run the dev server.

Contributing

Contributions are very welcome! We'd love your help with:

  • Testing additional proof systems
  • Keeping the document up-to-date with new releases for existing systems
  • Adding support for alternative proving backends
  • Exploring the use of folding schemes

Sponsor

This project is supported by Hyli, the new proof-powered L1 to build the next generation of apps, as part of the Hyli grant program.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •