One of the approaches in order to prevent Sybil or DoS attacks is CPU-bound PoW. However, because of the influence of Moore’s law, the memory-based approaches are suggested.

As actually there are two different terms: (1) memory-hard functions and (2) memory-bound functions;

Does it mean that we have two different memory-based techniques?

And if yes, What is the difference between these two terms?


1 Answer 1


To quote Wikipedia:

In cryptography, a memory hard function (MHF) is a function that costs significant amount of memory to evaluate. It is different from memory bound functions, the latter incurs cost by slowing down computation through memory latency. MHFs find their use as a form of proof-of-work.

In other words, Memory-Hard Functions require a specific amount of memory to evaluate them. Memory-Bound Functions do not specifically require a certain amount of memory, but their computational speed is dependent primarily on the memory available, in contrast to Compute-Bound Functions, where the computational speed is dependent on how fast you can calculate.

Does it mean that we have two different memory-based techniques?

Not really. Memory-Hard is a more desirable property when it comes to cryptography than Memory-Bound.

Why go for Memory-Hard Functions in the first place?

The reason for this being is that for any given algorithm, given a motivated enough actor, they can build a specialized ASIC that computes this algorithm fast and efficiently, in comparison to a CPU or a GPU. Memory, however, scales rather poorly still. Having an 8 GB large cache for an ASIC to ensure maximum performance is still not feasible, but the calculations can still be done on off-the-shelf hardware.

In the best possible case, you want an attacker with specialized, purpose-built hardware to have as little advantage over an off-the-shelf computer as possible. In other words, the only way for an attacker to attack you "faster" is to spend more money, not to spend the money "smarter".

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .