Skip to content

SIMD-0461: enabling falcon signature verification as a precompile#461

Open
zz-sol wants to merge 12 commits intosolana-foundation:mainfrom
zz-sol:main
Open

SIMD-0461: enabling falcon signature verification as a precompile#461
zz-sol wants to merge 12 commits intosolana-foundation:mainfrom
zz-sol:main

Conversation

@zz-sol
Copy link

@zz-sol zz-sol commented Feb 1, 2026

Summary

This SIMD proposes adding a precompile for Falcon-512 (FN-DSA) signature verification, providing post-quantum cryptographic capability for Solana.

Scope

  • Verification only — key generation and signing are off-chain
  • Does NOT replace Ed25519 — provides an additional verification option
  • Exploratory — gauging interest before committing to a PQC strategy

Related

@simd-bot
Copy link

simd-bot bot commented Feb 1, 2026

Hello zz-sol! Welcome to the SIMD process. By opening this PR you are affirming that your SIMD has been thoroughly discussed and vetted in the SIMD discussion section. The SIMD PR section should only be used to submit a final technical specification for review. If your design / idea still needs discussion, please close this PR and create a new discussion here.

This PR requires the following approvals before it can be merged:

Once all requirements are met, you can merge this PR by commenting /merge.

@zz-sol
Copy link
Author

zz-sol commented Feb 1, 2026

A note on PQC scheme selection:

The elephant in the room is whether we should also introduce Dilithium (ML-DSA) and SPHINCS+ (SLH-DSA), the other two NIST-selected PQC signature schemes. Proposing only Falcon might appear to be picking winners prematurely.

Why Falcon first:

Falcon-512 offers the best balance for blockchain use cases:

  • Smallest signatures among the three (~666 bytes vs ~2,420 bytes for Dilithium2 vs ~17KB+ for SPHINCS+)
  • Reasonable verification performance (~ 5 us, credit @Rexicon226)

That said, Dilithium has merits too—simpler implementation and no floating-point concerns. OTOH SPHINCS+ is probably a no-go as it has impractical signature sizes for on-chain use (if you disagree, please convince us).

Ethereum's approach:

For reference, Ethereum has separate EIPs:

Options for Solana:

  • Single exploratory SIMD (current approach) — start with Falcon, add others if demand emerges
  • Parallel SIMDs — write separate SIMDs for Dilithium (and SPHINCS+) now (more comprehensive but more work for exploration)
  • Umbrella SIMD — one SIMD covering all two/three schemes with separate feature gates

Looking for feedback on the preferred approach. This SIMD is exploratory—we're gauging interest and identifying implementation considerations before committing to a specific PQC strategy.

@zz-sol zz-sol changed the title enabling falcon signature verification as a precompile SIMD-461: enabling falcon signature verification as a precompile Feb 1, 2026
@zz-sol zz-sol changed the title SIMD-461: enabling falcon signature verification as a precompile SIMD-0461: enabling falcon signature verification as a precompile Feb 1, 2026
@t-nelson
Copy link
Contributor

t-nelson commented Feb 3, 2026

please no more precompiles. we need to kill them conceptually. they're a scourge on optimizing the execution pipeline. can this not be done via syscall instead? ideally with primitive building blocks.

@zz-sol
Copy link
Author

zz-sol commented Feb 6, 2026

please no more precompiles. we need to kill them conceptually. they're a scourge on optimizing the execution pipeline. can this not be done via syscall instead? ideally with primitive building blocks.

yes. refactored into a syscall

@zz-sol
Copy link
Author

zz-sol commented Feb 6, 2026

seem like I cannot edit the title of this PR. so admin please help to rename this PR:

SIMD-0461: enabling falcon signature verification as a precompile

SIMD-0461: enabling falcon signature verification as a syscall

@simd-bot
Copy link

simd-bot bot commented Feb 6, 2026

Thanks, 0x0ece!

⚠️ Status: Cannot merge yet

@zz-sol zz-sol marked this pull request as ready for review February 11, 2026 14:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants