Skip to content

Archived Designs

Earlier signers and account models

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

GenerationSchemeWhy it was superseded
1Ephemeral ECDSANot actually post-quantum: relies on a rotation race and is vulnerable during the mempool window.
2WOTS+CPost-quantum, but one-time: any key reuse (a dropped/replaced tx) allows immediate classical forgery.
3 (current)FORS+C + SPHINCSPost-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, KernelRotatingECDSAValidator
  • other-implementations/wots/: SimpleAccount_WOTS, WotsCVerifier, IWotsCVerifier, KernelRotatingWOTSValidator
  • other-implementations/kernel/: ERC-7579 module mocks (Kernel / Nexus) used by the integration tests
  • other-implementations/LegacySimpleAccountFactory.sol: a factory that deployed the ECDSA/WOTS comparison accounts
  • src/FrameAccount.sol, src/frame/FrameTransactionLib.sol: the EIP-8141 frame-transaction account draft
  • SphincsIndexedVerifier: a stateful SPHINCS variant that preceded the stateless one now in main

The WOTS+C byte layout is still described in the repo's docs/signing-spec.md for signers that implement it.

Comparison

PropertyEphemeral ECDSAWOTS+CFORS+C (current primary)SPHINCS (current backup)
Quantum resistancerotation-dependentunconditionalunconditionalunconditional
Reuse on a single keycollapses to ordinary ECDSAimmediate forgerygraceful degradationmany-time (2^22 budget)
Signature size65 B468 B2,448 B3,688 B
Verifier gas~3k (ecrecover)~93k~34k to 38k~105k
Mempool exposureyes (residual risk)nonenonenone