Own weight, cumulative weight and minimum weight magnitude
In this video series different topics will be explained which will help you to understand IOTA.
It is recommended to watch each video sequentially as I may refer to certain IOTA topics explained earlier.
In IOTA the word weight can be used in different ways.
You have “own weight”, “cumulative weight” and “minimum weight magnitude”.
In this video I will explain what these three words means.
Every transaction has an initial weight called the own weight and can have the values 1, 3, 9, etc.
The own weight is determined by the effort put by its issuing node. For this tutorial it is not important to know how this value is calculated. The cumulative weight of a transaction is the transaction own weight plus the sum of all weights of all transactions that directly or indirectly approve this transaction.
The cumulative weight is a very important metric for transactions on its way to network approval.
A transaction with a larger cumulative weight is more “important” than a transaction with a smaller cumulative weight. Each new transaction added to the tangle increases the ancestors cumulative weight by the weight of that transaction. Older transactions grows in importance over time.
The use of cumulative weights avoid spamming and other attack styles, it is assumed that no entity can generate an abundance of transactions with “acceptable” cumulative weights in a short period of time.
The Minimum Weight Magnitude (MWM) is the difficulty of Proof of Work. IOTA’s proof of work algorithm is similar to Hashcash. The Minimum Weight Magnitude is the number of trailing zeros.
- A simplified explanation how Hashcash works (Lets assume MWM=4):
hash(transaction data + counter) = …9f86d081884c7d659 (PoW not ok)
hash(transaction data + counter) = …884633bce1d660000 (PoW ok)
On the mainnet the minWeightMagnitude = 14 (Applies to IRI release: v188.8.131.52)
On the testnet the minWeightMagnitude = 9 (Applies to IRI release: testnet-v184.108.40.206)
Higher minWeightMagnitude values should be no problem but will just cause the Proof of Work to take longer unnecessarily. The Minimum Weight Magnitude changes, see file Configuration.java.