sigridjineth / efficient-zk-ecdsa

Lowering client-side proving cost for private ZK signatures

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

efficient-zk-ecdsa

The code in this repo is unaudited and not recommended for production use.

Please refer to this Ethereum Research post for details. The circuits in this repo uses circuits from circom-ecdsa.

Install dependencies

yarn

Compile the circuit and generate the zkey

yarn run build:ecdsaverify

Run proof generation

yarn run run:ecdsaverify

Run benchmarks

cd ./bench
open ./index.html

The full proof and the proving time will be displayed in the browser console.

Benchmarks

Circuit info

Circuit Constraints zKey size
ecdsa_verify 163,239 119MB
ecdsa_verify_pubkey_to_addr 466,599 291MB

Browser proving

The setup:

  • M1 Pro Macbook Pro
  • Internet speed: 40Mbps
  • Browser: Brave browser
Circuit Proving time
ecdsa_verify 51s
ecdsa_verify_pubkey_to_addr 107s

Command line proving

The setup:

  • M1 Pro Macbook Pro
Circuit Proving time
ecdsa_verify 18s
ecdsa_verify_pubkey_to_addr 32s

About

Lowering client-side proving cost for private ZK signatures


Languages

Language:JavaScript 99.9%Language:Shell 0.1%Language:HTML 0.0%