Is there a practical way (preferrably OSS library or implementation) to verify Ed25519 signatures in Solidity (compiled for and run on the EVM), in smart contracts?
Update: I've created EIP665
There's no native functions that provide ed25519 cryptographic operations.
Doing it in the EVM would require a substantial amount of processing, and being that:
Fast single-signature verification. The software takes only 273,364 cycles to verify a signature on Intel's widely deployed Nehalem/Westmere lines of CPUs
I'm fairly certain that you'd quickly use up a lot of gas trying, most likely more than the maximum allowed.
In order to accomplish this, you'd need to start an EIP request, and convince the community that there's a valid and compelling use-case for implementing native signature verification in the server itself.
Specifically you'd want to explain in the EIP why the existing ecsign and ecrecover (ECDSA) routines aren't adequately suitable.
If it's an option, there's always something like TrueBit. That is, run the computation off-chain and use partitioned verification on-chain in the case that a computation is contested.
(There's a nice high-level description here in the context of layer-2 scaling, and an intro here.)