Crates.io | solana_ed25519_verify |
lib.rs | solana_ed25519_verify |
version | 0.1.1 |
source | src |
created_at | 2024-04-28 06:38:35.475494 |
updated_at | 2024-04-28 19:54:56.211267 |
description | A helper library for verifying signatures in a Solana program without CPIs or the Ed25519 precompile program |
homepage | |
repository | https://github.com/stegabob/solana_ed25519_verify |
max_upload_size | |
id | 1223035 |
size | 89,072 |
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.
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