2

I am in the process of designing a cryptographic Proof of Storage (PoS) that relies on **single threaded** computation of `SHA256`

hashes. In practice, my algorithm is equivalent to computing for some string `S`

the value `SHA256^N(S) = SHA256(SHA256(SHA256(...(SHA256(S))))`

.

This forces anything computing that function to use only one thread, as each `SHA256`

step needs the output of the previous as input.

Now, I know that ASIC miners exist that can compute `SHA256`

hashes at an enormous rate. This, however, is due to their parallelism: completing Proofs of Work (i.e., finding zeros of hash functions) is an embarassingly parallel problem and can be computed very fast on massively parallel devices. This is **not** what I am looking for.

What I am looking for is the fastest device that would be able to compute my function, i.e., single-threaded computation of a `SHA256`

, then the `SHA256`

of its output, the `SHA256`

of the result and so on.

I thought that maybe in this case the best hardware would be the fastest CPU in terms of single threaded performance: I found here that `Intel Core i7-7700K`

could be a good place to start looking for.

Is there any other known specialized hardware device that could carry out the task faster?

Thank you! So if I understood correctly, the point to leverage on to make a sequential hash function resistant to hardware attacks is to make memory the bottleneck? Why can't memory access be made faster by using dedicated hardware? – Matteo Monti – 2017-01-14T08:58:17.797

Also, you said "much faster" than a CPU, and that's already a relevant answer to my question, but I was wondering if you could give me an idea on the order of magnitude of the speed up. Are we talking about ten or ten billion times faster? I guess that those operations would still be bound by clock, which is ultimately bound by physics...? – Matteo Monti – 2017-01-14T09:00:54.410