“The root cause of the issue was that two cloned wallets (most likely created by copying the same wallet.db file) both sent the same cloned UTXO to the blockchain, which resulted in incorrect cut-through processing and ultimately to an invalid block.”
Could the same happen in Grin?
The bug is described in a few short tweets here: https://twitter.com/RyanTheGentry/status/1087502298987810816
Here is a longer Post-mortem: https://medium.com/beam-mw/mimblewimble-blockchain-stop-event-postmortem-21012019-9a7ef38b2813
Huh I had their fuck up marked as gross incompetence, oospie guess thats why the price didn’t drop. Lets make sure this isn’t lost.
@igno.peverell @tromp @lehnberg
Grin has been subject to similar bugs on testnet that have been detected and fixed.
From the original paper -
Therefore, it should be banned to have two unspent outputs are equal at the same time, to avoid confusion.
In Grin all UTXOs must be unique and we enforce this at the consensus level.
Note: We do allow duplicate TXOs (just not UTXOs). An output can exist, be spent and then be added to the TXO set a second time. But Grin requires a strict ordering of these events and the two instances of the output cannot exist in the UTXO set simultaneously.
Beam appears to allow duplicate outputs and I believe they state there are good reasons for doing so. But this is arguably not in line with the description of MW from the original paper.