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?


The Wikipedia definitions are clear;

  • memory-bound functions;

    Memory bound refers to a situation in which the time to complete a given computational problem is decided primarily by the amount of memory required to hold data.

    This is proposed for using against spams, first CPU-bound then memory bound. This algorithms requires to access memory in an unpredictable way so that caches are ineffective. This discourage the spammers.

  • memory-hard functions

    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.

    This is against the massive parallelization of hashing etc. For example the bitcoin miners create farms for SHA2d calculations since SHA2 is not memory hard.

    There are two variants

    • Data Dependent
    • Data independent

    For example Argon2 has both mode and even combined. Argon2i for data independent and Argon2d for data dependent. In the combined mode Argon2id.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.