Large memory PoW with fast verification, updated version:
The miner sends h and λi as proof.
h is the block hash value.
λi is a key for an elliptic curve point.
i is the value h MOD N.
N is the number of keys used.
The verifier calculates a point pi on the elliptic curve. The proof is valid if pi = λiG and h XOR hash(λi) is less than the target difficulty. G is a predefined constant point on the elliptic curve. (Notice here that G and pi have switched since the previous version.)
The point pi is calculated by setting x to hash(i) MOD M, where M is the order of the finite field FM for the elliptic curve y2 = x3 + 6. If no solution y is found for x, then x = x + 1 until a solution is found.
Since the calculations of pi and λiG are easy the verification is fast without the need for much memory. The miner on the other hand needs the value λi which is difficult to calculate and therefore the miner has to store all keys λi, i = 0, ... N-1 in memory as pre-calculated values.
So this asks for a point that can be calculated in two ways:
as the curve point with minimal x>=i, and
as λ
i G
This is similar to, but more complicated than Momentum, which asks for a simple hash collision.