Archived Designs
Before the current FORS+C / SPHINCS stack, the Ephemeral Keys protocol went through two earlier primary signing schemes and one alternative account model. None of them are in the main branch any more: the trim to the core stack on 2026-09-18 removed them, and they are preserved on the archive/dev-pre-cleanup branch for comparison and history. New deployments should use FORS+C with the SPHINCS backup.
The evolution
| Generation | Scheme | Why it was superseded |
|---|---|---|
| 1 | Ephemeral ECDSA | Not actually post-quantum: relies on a rotation race and is vulnerable during the mempool window. |
| 2 | WOTS+C | Post-quantum, but one-time: any key reuse (a dropped/replaced tx) allows immediate classical forgery. |
| 3 (current) | FORS+C + SPHINCS | Post-quantum and few-time, so reuse degrades gracefully; plus a durable many-time backup for recovery and cross-chain bootstrap. |
Each step kept the same architecture (a stable account address, one authorised signer per operation, rotation on every transaction) and changed the signing primitive. The current generation also replaced the single owner slot with per-key auth state, which is what made a co-equal backup signer and multi-device operation possible. See Signers & devices.
What was archived
On the archive/dev-pre-cleanup branch:
other-implementations/ecdsa/:SimpleAccount_ECDSA,RotatingECDSAValidator,KernelRotatingECDSAValidatorother-implementations/wots/:SimpleAccount_WOTS,WotsCVerifier,IWotsCVerifier,KernelRotatingWOTSValidatorother-implementations/kernel/: ERC-7579 module mocks (Kernel / Nexus) used by the integration testsother-implementations/LegacySimpleAccountFactory.sol: a factory that deployed the ECDSA/WOTS comparison accountssrc/FrameAccount.sol,src/frame/FrameTransactionLib.sol: the EIP-8141 frame-transaction account draftSphincsIndexedVerifier: a stateful SPHINCS variant that preceded the stateless one now inmain
The WOTS+C byte layout is still described in the repo's docs/signing-spec.md for signers that implement it.
Comparison
| Property | Ephemeral ECDSA | WOTS+C | FORS+C (current primary) | SPHINCS (current backup) |
|---|---|---|---|---|
| Quantum resistance | rotation-dependent | unconditional | unconditional | unconditional |
| Reuse on a single key | collapses to ordinary ECDSA | immediate forgery | graceful degradation | many-time (2^22 budget) |
| Signature size | 65 B | 468 B | 2,448 B | 3,688 B |
| Verifier gas | ~3k (ecrecover) | ~93k | ~34k to 38k | ~105k |
| Mempool exposure | yes (residual risk) | none | none | none |