Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
e8574d2
Add ECSM buses, cpu detection and EC_SCALAR
jotabulacios Jun 9, 2026
62a9853
fix lint
jotabulacios Jun 9, 2026
be5d2e6
Add ECSM and ECDAS accelerator tables
jotabulacios Jun 9, 2026
9386a36
Register ECSM tables in VmAirs and trace builde
jotabulacios Jun 9, 2026
f43d6e0
Wire ECSM ecall collection and end-to-end prove/verify test
jotabulacios Jun 9, 2026
68993f7
Add ECSM soundness and multi-scalar end-to-end tests
jotabulacios Jun 9, 2026
fea9075
Add IS_BIT(op) hardening to ECDAS and fix xR_sub_p comment
jotabulacios Jun 9, 2026
79ee014
Add ecsm_mul guest wrapper + Rust guest and spec-bug regression tests
jotabulacios Jun 9, 2026
edc302d
fix nits
jotabulacios Jun 10, 2026
915e4e4
Update root Cargo.lock and run ecsm tests in CI
jotabulacios Jun 10, 2026
c94e55b
Fix verifier sub-proof count for the 3 ECSM tables
jotabulacios Jun 10, 2026
0b36014
Reject aliased xG/k and non-canonical xG in ECSM
jotabulacios Jun 10, 2026
617353e
Align ECSM/ECDAS AIR to the fixed spec
jotabulacios Jun 11, 2026
46a102d
Delegate ecsm curve arithmetic to the RustCrypto k256 crate
jotabulacios Jun 11, 2026
5975ac3
Drop dead Fp methods and trim ecsm comments
jotabulacios Jun 11, 2026
2f90aae
solve conflicts
jotabulacios Jun 11, 2026
9c55485
Merge branch 'main' into feat/ecsm-accelerator
jotabulacios Jun 11, 2026
b3ab6a0
feat(ecsm): k256-backed witness generation (projective + batch inverse)
diegokingston Jun 11, 2026
683dcc9
solve conflicts
jotabulacios Jun 11, 2026
ebfc794
Align ecsm docs, add executor/replay parity test
jotabulacios Jun 12, 2026
f0a4c83
Merge pull request #664 from yetanotherco/feat/ecsm-k256-witness
jotabulacios Jun 12, 2026
3a62ffd
address review
jotabulacios Jun 12, 2026
845ddd8
Merge branch 'main' into feat/ecsm-accelerator
diegokingston Jun 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/pr_main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ jobs:
- name: Build and archive prover + crypto tests
run: |
cargo nextest archive --release \
-p lambda-vm-prover -p stark -p crypto \
-p lambda-vm-prover -p stark -p crypto -p ecsm \
--archive-file prover-tests.tar.zst
- name: Upload test archive
Expand Down
11 changes: 11 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ members = [
"crypto/crypto",
"crypto/math",
"crypto/math-cuda",
"crypto/ecsm",
"bin/cli",
]

Expand Down
14 changes: 14 additions & 0 deletions crypto/ecsm/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
[package]
name = "ecsm"
description = "secp256k1 scalar multiplication reference + ECSM accelerator witness generation"
version = "0.1.0"
edition = "2024"
license.workspace = true

[dependencies]
num-bigint = "0.4.6"
num-traits = "0.2.19"
# Audited secp256k1 arithmetic (host-side witness generation only; never in the
# constraint system). Used for the projective double-and-add replay + batch
# inversion that builds the ECDAS step witnesses efficiently.
k256 = { version = "0.13", default-features = false, features = ["arithmetic", "expose-field"] }
Loading
Loading