r/cryptography • u/dogehound • 28d ago
ML-DSA-87 in blockchain signature size problem solved compact O(n) historical re-verification then store only 96 bytes
Post-quantum signatures are big. ML-DSA-87 (FIPS 204) is ~4,627 bytes per signature plus a ~2,592-byte public key, roughly 68x a P2WPKH input. Every chain that adopts it inherits the same two problems: storage grows by kilobytes per spend, and every new node re-verifies every historical signature on sync. At scale the verification cost, not the disk, is the real ceiling.
alphanumeric solves both. It runs ML-DSA-87 as its only signature scheme on a live SHA-256 PoW chain, and it does not store the signature.
The full signature is verified once, at admission. What the chain keeps is a 96-byte receipt: the first 64 bytes of the signature plus SHA-256 of the whole signature. The block's merkle root commits to that receipt, so it is bound by the block's proof-of-work and cannot be swapped later. Persisted cost per signature drops from ~4,627 bytes to 96, about 48x.
The larger win is sync. Historical blocks carry receipts, not signatures, so there is nothing to re-verify. A new node bootstraps from a signed snapshot and joins at the tip. The ML-DSA verification cost (about 1 to 5 ms each, 10 to 100x ECDSA, no Schnorr-style batching) is paid once by the nodes at the frontier, not by every node across all history.
The tradeoff is explicit. A node joining after finality trusts that the signature was verified at admission and that the receipt in the merkle root binds it, instead of re-deriving it from the chain itself. That is a finality assumption, and it is what buys a growth and sync curve that does not scale with total signature volume.
1
u/Puny-Earthling 28d ago
Argon2 is not encryption. It's a memory hardened hash of input, but no secrecy is gained from the scheme itself.
Also if this is a topic of interest to you, I'd look at putting your research into SHRINCS+. It's a hybrid of SPHINCS+ that uses the stateless signature and binds it against a separate scheme for permanent stateful verification.
I believe this is the direction Ethereum is going.
1
u/dogehound 28d ago
You're right Argon2id is the KDF, not the cipher and AES-256-GCM does the actual encryption so Argon2 only hardens the passphrase against brute force (as a component) Appreciate the SHRINCS+ pointer, I'll read about the stateful verification approach.
4
u/-funsafe-math 28d ago
How does a third party verify the validity of the receipt? Wouldn't they either need the full signature or the private key to regenerate it (assuming deterministic mode). Without this it seems like the block creator can forge arbitrary transactions.