On the Ethash wiki, it mentions that a 16MB verification cache can be used to verify block hashes without generating the full DAG, but there are no further details on how this is done.
What's the verification algorithm?
EDIT: I'm not looking for a solution in Solidity where the blockhash is accessible. I'm looking for a way to validate that an Ethash output is valid off-chain.
Best Answer
I've found an answer here at the Ethash wiki.
Instead of generating the full dataset with
calc_dataset_item
, just the required dataset items for the single hash cycle are generated dynamically