When looking at transactions on a tangle explorer, I often see "Unconfirmed" transactions that (when taking a closer look) can not get confirmed, but the tangle explorer does not show it to me.
So I thought to use this question here to collect reasons why a transaction (that gets propagated to the network) could become invalid so that they can never get confirmed (A transaction without sufficient PoW is rejected by the network so can never appear here anyway), in the hope that this knowledge could be used to make tangle explorers better.
Let's start the list:
- A transaction whose bundle hash does not match the (actual recomputed) hash of the complete bundle
- A transaction whose bundle indexes do not match other transactions in the bundle
- A transaction whose bundle's total sum is not zero
- A transaction which spends IOTA but where the signature (possible spread over more than one transaction linked by it) does not match the address the IOTA is spent from
These causes above cannot be "cured" by reattaching. The following cause can:
- It approves a transaction which is invalid for one of the criteria mentioned (including this one); when reattaching to confirmed transactions, your transaction can be confirmed, too.
And there is another special cause, that might get cured by another transaction (somewhere else in the tangle) getting confirmed:
- The spent values of the bundle (cumulatively in case more than one transaction from the same bundle spends from the same address) are higher than the actual "value" of the address prior to confirmation
[And last but not least, a transaction might not get confirmed if it was injected to a slow node so that it is too old to be picked as a tip by other transactions (can be cured by explicitly referencing it from a new (zero-value) transaction which is connected "better"). But this point cannot really be computed by a block explorer statically.]
Anything I missed?