dfns / cggmp21

State-of-art threshold ECDSA in Rust
Apache License 2.0
41 stars 6 forks source link

Change logo in specs #97

Closed survived closed 3 months ago

github-actions[bot] commented 3 months ago

The spec was successfully compiled. PDF is available here.

github-actions[bot] commented 3 months ago

Benchmark Result

Benchmarks ```text RUST_TESTS_SEED=01d09df9ce988c9d3ebd50737088ed03362aecad8e475e02159c3c7ad865b23b n = 3 Non-threshold DKG Protocol Performance: - Protocol took 431.06µs to complete In particular: - Stage: 8.80µs - Setup networking: 8.59µs (97.6%) - Unstaged: 211.00ns (2.4%) - Round 1: 147.14µs - Compute execution id: 4.04µs (2.7%) - Sample x_i, rid_i, chain_code: 66.76µs (45.4%) - Sample schnorr commitment: 59.43µs (40.4%) - Commit to public data: 16.60µs (11.3%) - Unstaged: 311.00ns (0.2%) - Round 2: 2.84µs - Hash received msgs (reliability check): 2.64µs (93.0%) - Unstaged: 199.00ns (7.0%) - Round 3: 300.00ns - Assert other parties hashed messages (reliability check): 170.00ns (56.7%) - Unstaged: 130.00ns (43.3%) - Round 4: 33.51µs - Validate decommitments: 30.98µs (92.4%) - Calculate chain_code: 702.00ns (2.1%) - Calculate challege rid: 1.36µs (4.1%) - Prove knowledge of `x_i`: 311.00ns (0.9%) - Unstaged: 160.00ns (0.5%) - Round 5: 238.48µs - Validate schnorr proofs: 238.23µs (99.9%) - Unstaged: 250.00ns (0.1%) Threshold DKG Protocol Performance: - Protocol took 1.26ms to complete In particular: - Stage: 1.56µs - Setup networking: 1.49µs (95.5%) - Unstaged: 70.00ns (4.5%) - Round 1: 202.96µs - Compute execution id: 852.00ns (0.4%) - Sample rid_i, schnorr commitment, polynomial, chain_code: 179.28µs (88.3%) - Commit to public data: 22.55µs (11.1%) - Unstaged: 280.00ns (0.1%) - Round 2: 1.15µs - Hash received msgs (reliability check): 1.00µs (87.0%) - Unstaged: 150.00ns (13.0%) - Round 3: 420.00ns - Assert other parties hashed messages (reliability check): 280.00ns (66.7%) - Unstaged: 140.00ns (33.3%) - Round 4: 782.33µs - Validate decommitments: 45.12µs (5.8%) - Validate data size: 321.00ns (0.0%) - Validate Feldmann VSS: 357.57µs (45.7%) - Compute rid: 410.00ns (0.1%) - Compute chain_code: 852.00ns (0.1%) - Compute Ys: 362.73µs (46.4%) - Compute sigma: 351.00ns (0.0%) - Calculate challenge: 14.50µs (1.9%) - Prove knowledge of `sigma_i`: 331.00ns (0.0%) - Unstaged: 150.00ns (0.0%) - Round 5: 266.59µs - Validate schnorr proofs: 265.03µs (99.4%) - Derive resulting public key and other data: 1.37µs (0.5%) - Unstaged: 190.00ns (0.1%) Auxiliary data generation protocol Protocol Performance: - Protocol took 9.54s to complete In particular: - Stage: 10.94µs - Retrieve auxiliary data: 140.00ns (1.3%) - Setup networking: 9.60µs (87.7%) - Precompute execution id and shared state: 1.15µs (10.5%) - Unstaged: 51.00ns (0.5%) - Round 1: 1.16s - Retrieve primes (p and q): 80.00ns (0.0%) - Compute paillier decryption key (N): 8.72µs (0.0%) - Generate auxiliary params r, λ, t, s: 9.04ms (0.8%) - Prove Πprm (ψˆ_i): 1.15s (99.2%) - Sample random bytes: 1.95µs (0.0%) - Compute hash commitment and sample decommitment: 321.31µs (0.0%) - Unstaged: 230.00ns (0.0%) - Round 2: 1.34µs - Hash received msgs (reliability check): 1.01µs (75.4%) - Unstaged: 330.00ns (24.6%) - Round 3: 382.00ns - Assert other parties hashed messages (reliability check): 201.00ns (52.6%) - Unstaged: 181.00ns (47.4%) - Round 4: 5.89s - Validate round 1 decommitments: 592.26µs (0.0%) - Validate П_prm (ψ_i): 2.29s (38.9%) - Add together shared random bytes: 2.56µs (0.0%) - Compute П_mod (ψ_i): 3.43s (58.2%) - Assemble security params for П_fac (ф_i): 14.99µs (0.0%) - Compute П_fac (ф_i^j): 172.57ms (2.9%) - Unstaged: 1.43µs (0.0%) - Round 5: 2.49s - Validate ψ_j (П_mod): 2.32s (93.1%) - Validate ф_j (П_fac): 172.39ms (6.9%) - Assemble auxiliary info: 147.74µs (0.0%) - Unstaged: 791.00ns (0.0%) Signing protocol Protocol Performance: - Protocol took 4.16s to complete In particular: - Stage: 138.44µs - Map t-out-of-n protocol to t-out-of-t: 67.29µs (48.6%) - Retrieve auxiliary data: 66.38µs (47.9%) - Precompute execution id and security params: 881.00ns (0.6%) - Setup networking: 3.81µs (2.7%) - Unstaged: 90.00ns (0.1%) - Round 1: 188.38ms - Generate local ephemeral secrets (k_i, y_i, p_i, v_i): 48.66µs (0.0%) - Encrypt G_i and K_i: 107.28ms (56.9%) - Prove ψ0_j: 81.05ms (43.0%) - Unstaged: 1.58µs (0.0%) - Round 2: 15.55µs - Hash received msgs (reliability check): 15.07µs (96.9%) - Unstaged: 480.00ns (3.1%) - Round 3: 2.23s - Assert other parties hashed messages (reliability check): 1.24µs (0.0%) - Verify psi0 proofs: 269.33ms (12.1%) - Sample random r, hat_r, s, hat_s, beta, hat_beta: 48.87µs (0.0%) - Encrypt D_ji: 70.21ms (3.2%) - Encrypt F_ji: 35.71ms (1.6%) - Encrypt hat_D_ji: 559.29ms (25.1%) - Encrypt hat_F_ji: 35.83ms (1.6%) - Prove psi_ji: 788.83ms (35.4%) - Prove psiˆ_ji: 208.64ms (9.4%) - Prove psi_prime_ji : 257.72ms (11.6%) - Unstaged: 3.06µs (0.0%) - Round 4: 1.56s - Retrieve auxiliary data: 6.08µs (0.0%) - Validate psi: 165.07ms (10.6%) - Validate hat_psi: 164.25ms (10.5%) - Validate psi_prime: 933.33ms (59.9%) - Compute Gamma, Delta_i, delta_i, chi_i: 214.96ms (13.8%) - Prove psi_prime_prime: 81.22ms (5.2%) - Unstaged: 490.00ns (0.0%) - Presig output: 184.86ms - Validate psi_prime_prime: 184.72ms (99.9%) - Calculate presignature: 135.32µs (0.1%) - Unstaged: 1.28µs (0.0%) - Partial signing: 9.21µs - Signature reconstruction: 202.50µs ```