In the following article about "IOTA CryptoCore", it is written:

"IOTA core functions like address generation, signing, “Mini-Pow” and Proof of Work (PoW) need much computational power which makes it almost impossible (in a practical sense) to be done by small embedded systems."

  1. What is the difference of Mini-Pow with Proof of Work (PoW) ?
  2. And when they say:

"The PoW-core was later integrated into the IOTA Crypto Core."

Which PoW do they mean? Mini-Pow or Proof of Work (PoW) ? (Regarding to the fact that they say also:

"signing and PoW need much computational power which makes it almost impossible (in a practical sense) to be done by small embedded systems."

  • what is pow position in iota and its use?
    – user3667
    Commented Dec 9, 2019 at 7:04

2 Answers 2


1) In mid 2017 the M-Bug was found and the work-around for it is (inoficially) called "Mini-PoW". It could happen that a Bundle-Hash contained "M" which exposed a private key (and all following keys) directly and weakened signatures significantly. The Workaround simply recreates bundle-hashs until no "M" is contained within the hash. This is a brute-force work-around for which reason it was also called "Mini-PoW". Actually it's not PoW at all, but it should* be done for signatures. The computational work of Mini-Pow vs PoW is about 1:200, so it's more an inconvenience than a real PoW. If in IOTA context is written about PoW, always the real PoW is meant.

2) The real PoW-core was integrated in the IOTA Crypto Core. "Mini-PoW" is more a software-thing which uses hardware-acceleration for keccak384 hashing but it really is more software whereas PoW is done completly on the FPGA.

*should means: it's done in every IOTA library but nodes would accept Bundle-Hashes with 'M's. In contrary transactions containing a wrong PoW-nonce would be rejected. But it's in everyone's interest to do the "Mini-PoW" for security reasons.

  • Thank you for your answer. Only two points remains yet unclear to me: (1) What do you mean by 'M' ? And (2) Is "CryptoCore" a micro-controller (or FPGA) which is able to do PoW completely ? (Because I heard that micro-controllers are not able to perform PoW.) Thanks again.
    – Questioner
    Commented Sep 2, 2019 at 12:01

I'll try to answer.

1) The "M-bug" is effectively the normalized bundle-hash containing the character M. More information about it here: Why is the normalized hash considered insecure when containing the char 'M'

2) Proof-of-Work was implemented in VHDL between 26th April '18 and 26th Aug '18 and became the PiDiver: https://github.com/shufps/iota_vhdl_pow (Source: https://gitlab.com/iccfpga/iccfpga-core/wikis/home)

Where did you hear that micro-controllers are not able to perform PoW?

edit: Micro-controllers and PoW are not the best combination, one solution to it is Azimuth

  • Here: iota.stackexchange.com/a/2140/1928 , ( "... It is not feasible to compute the Proof-of-Work on microcontrollers due to their limited computational speed. Furthermore, the official CCurl implementation (Proof-of-Work computation in C) uses the pthreads library and other functionality which are not typically available on microcontrollers.") And Here: ecosystem.iota.org/projects/… , "... PoW need much computational power which makes it almost impossible to be done by small embedded systems."
    – Questioner
    Commented Sep 2, 2019 at 14:24
  • Thanks for your links. As you can see, there are different approaches to solve the PoW issue for IoT. Commented Sep 2, 2019 at 14:35
  • Yes, for example, one of the approaches is outsourced PoW server; however, in that case, PoW is not done on the micro-controller, but on an external trusted server. But I mean performing PoW locally and directly on the micro-controller.
    – Questioner
    Commented Sep 2, 2019 at 15:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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