What keeps a miner from sending the same hash over and over again?
You can be sure that this very simple attack is one of the things which were thought of first
This, unfortunately, severely limits the usability of the platform. Most of codes, me, as a scientist, want to run are already existing software.
Well, if you want to run your code on an infiniband cluster, you have to implement your code in OpenMPI,
if you want to run your code on parallelized GPU hardware, you have to implement your code in OpenCL or CUDA,
and if you want to run your code on the Elastic platform you have to implement your code in ElasticPL.
This is the nature of specialized platforms! Always was!
Right now ElasticPL is very basic, and i am sure that over time we will improve the instruction set and maybe even support other custom-built programming languages. Maybe ones which are tailored for specific use cases. See the current ElasticPL programming language as the first proof-of-concept which works for a certain type of programs. We can always extend what Elastic's tool set contains, but we will always have to stick to a custom programming language.
You cannot expect to support all types of programs, this will never be the case for elastic. We cannot allow users to upload arbitrary programs to the end user / miner's systems and execute it there. Neither can we apply any "proof of execution" check, nor can we guarantee that executing those programs is safe.
On the other hand, by using our own programming language like ElasticPL we can guarantee that execution of user provided functions IS safe. We exactly know the instruction set and can prove that there exists no code which accesses a user's disk/memory and that no code is capable of exeeding a certain amount of memory on the system.