Partial proof of work: an hash function that validates parts of input, insensitive to the rest In typical proof of work, there is a one-way hash-function that takes binary inputs and generates an output $h(x,y)$ where $x,y\in\{0,1\}^M$ are binary inputs, so that finding $x$ for a certain $y$ such that $h(x,y)=0$ becomes a complex problem.
Is it possible to design $h(x,y)$, such that it is insensitive to parts of input, say it completely discards parts of input $x$, without revealing those positions? While we can just concatenate the &quot;sensitive&quot; bits, and apply any one-way function, the description of such a hash function would contain and reveal the bit positions. Is there way to achieve this partially sensitive hash, without revealing the sensitive/non-sensitive pattern?
If you give me enough information to evaluate $h$ on inputs of my choice, then I can easily check whether $h$ is sensitive to the $i$th bit of input --- just evaluate it on two strings that differ only in their $i$th bit and see if the outputs are the same. So it is not possible to hide this property in the description of a public function.