From Vitalik Buterin's post regarding "On Mining", he mentions:
The second approach is somewhat different: create a mechanism for generating new hash functions, and make the space of functions that it generates so large that the kind of computer best suited to processing them is by definition completely generalized, ie. a CPU. This approach gets close to being “provably ASIC resistant” and thus more future-proof, rather than focusing on specific aspects like memory...
My question is how would such a mechanism work and how might it be implemented or realized?
What's unclear to me is how can you have a PoW mechanism that's able to just create new never-before-seen hash functions on its own and somehow have all the nodes on the network derive this hashing algorithm in an independent, trustless manner? A second major concern is how can you be sure that this derived algorithm is even cryptographically secure?
Note, I found a similar question here. But there is a crucial difference: that question is in regards to picking from a finite set of predefined cryptographically vetted hash functions and changing their call orders dynamically. The method Vitalik is suggesting, the mechanism is deriving a new hash function that never existed before and using that as the PoW function for a given block at that point in time.