--- id: H14 title: 'Implementation choice dominates signature performance: three orders of magnitude between pure Python and libsecp256k1' axis: B kind: algorithmic statement: ECDSA/Schnorr verification spans ≈ 10³× between the pure-Python reference and libsecp256k1, with k256 within a small factor of libsecp256k1; sign and verify costs differ by the cost of the second scalar multiplication. motivation: Research question B5. assumptions: Single-threaded, prehashed messages. expected_contribution: Implementation table. related_work: - wuille2013libsecp256k1 - bernstein2012high possible_counterexamples: None (descriptive). verification_strategy: sigbench + run_bench.py on laptop and M3U96a. computational_budget: ≈ 30 min status: evaluated classification: empirical_observation evidence: - results/signature_benchmarks/summary.json verdict: 'Schnorr verify: 7.4 ms (pure Python) vs 24.5 µs (k256) vs 13.2 µs (libsecp256k1): 560× spread; libsecp256k1 verifies 1.9× faster than k256 while k256 signs 1.8× faster (table-based generator multiplication 8.3 µs vs blinded ecmult_gen 19.8 µs); ECDSA and Schnorr verification within 5 % in libsecp256k1.' --- # H14 — Implementation choice dominates signature performance: three orders of magnitude between pure Python and libsecp256k1 ECDSA/Schnorr verification spans ≈ 10³× between the pure-Python reference and libsecp256k1, with k256 within a small factor of libsecp256k1; sign and verify costs differ by the cost of the second scalar multiplication.