The Min Weight Magnitude determines how 'hard' the POW puzzle is. How does this work? What are the implications when setting a lower or higher MWM, how does it impact the consense and are tx with different MWM compatible?
-
when you set MWM higher, you will need longer for attaching transactions and therefore the transactions are less likely to be picked as tips by others. Apart from that, higher WM transactions are fully compatible (as it can happen that you get more zeroes even without increasing MWM)– mihi ♦Commented Dec 1, 2017 at 20:44
2 Answers
IOTA's proof-of-work is formed by successively hashing the data in a transaction, including a nonce, and increasing the nonce until producing a hash which ends with a particular number of zeroes. This is hard to calculate, but easy to verify given the nonce. Here you can see the weightMagnitude of a transaction is simply a calculation of the number of trailing zeroes in its hash. Three zeroes equals a 9-tryte, which is why IOTA transaction hashes end in several 9s.
The minWeightMagnitude is the minimum number of zeroes that a proof-of-work output/transaction hash must end with to be considered valid by full nodes. Increasing it by one will mean it takes roughly an order of magnitude longer to produce a valid hash. This will make it more difficult to attack the network, but also more difficult for a legitimate device or user to produce a valid hash in time.
Transactions with different weight magnitudes are compatible. This can happen when the device doing POW actually produces a hash with more trailing zeroes than necessary. As long as it is above the minimum, it will be accepted by validating nodes.
-
So the full-nodes validating a tx require a certain MWM for the tx to be accepted? Commented Dec 1, 2017 at 16:26
-
1Yes, Weight Magnitude is the calculation that the full node does on a transaction in order to accept it. Minimum Weight Magnitude is an option which is coded into the IRI software at the moment and set by wallet users as a target when creating transactions. Weight Magnitude must be >= than MWM.– LaurenceCommented Dec 1, 2017 at 16:32
-
Awesome responses, here. So,why do four trailing 9 translate to a weight of 14 and five to 15. What is the formular here?– ralfCommented Dec 13, 2017 at 23:34
-
@ralf a 9-tryte represents three 0-trits. So five 9-trytes represents fifteen 0-trits. Whereas with fourteen 0-trits, that will show up as either a Z, 9, or A followed by four 9s. You can play around with this if you go to the Base10 to Ternary section of my IOTA Tools website (laurencetennant.com/iota-tools/index.html) and type in some 9's in the Trytes field.– LaurenceCommented Dec 15, 2017 at 0:09
Very interesting topic. I know the goal of MWM is to make more difficult to attack the tangle, but it is not clear to me how this works. In my understanding attackers are required to have more than 50% of the overall computing power, in order to mount double-spend attacks. How is this affected but MWM, since MWM is the same for honest and malicious players? I am certainly missing something but I would be very grateful for any clarification.