# 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 "sensitive" 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.