solana_ed25519_verify

Crates.iosolana_ed25519_verify
lib.rssolana_ed25519_verify
version0.1.1
sourcesrc
created_at2024-04-28 06:38:35.475494
updated_at2024-04-28 19:54:56.211267
descriptionA helper library for verifying signatures in a Solana program without CPIs or the Ed25519 precompile program
homepage
repositoryhttps://github.com/stegabob/solana_ed25519_verify
max_upload_size
id1223035
size89,072
Sammy Harris (stegaBOB)

documentation

README

Solana ED25519 Signature Verification Helper Function

Pretty self-explanatory. Quite a bit more expensive than the precompile program, but also quite a bit easier to use with no instruction sysvar shenanigans necessary and no required instruction data overhead.


Compute Costs

See compute-usage.csv or look at the chart below for the compute costs per message length.

There's a static cost of ~11,000 CUs for curve stuff, and an additional cost of ~8000 CUs per SHA512 128 byte block. There's an 80 byte overhead from the signature R scalar, pubkey scalar, and 16 byte message length, which is why the second block starts at only 48 message bytes.

Formula is approximately: CU_COST = ceil((80 + MESSAGE_BYTE_LEN) / 128) * 8000 + 11000

compute-usage.png

Commit count: 12

cargo fmt