4.7 million dollars worth of failed extrinsics on Kusama

Today the data team at Parity are glad to bring you an investigation into the number of failed ‘balances.transfer’ extrinsics on the Kusama network.

We were very happy to be contacted by Rust core engineer @OliverTY, who shared with us a dashboard he had built using our dotlake ingest. The dashboard displayed several on-chain statistics for the relay chains, including a graph that showed the number of daily failed extrinsics, broken down by pallet and extrinsic.

Upon examining the graph, we noticed something striking. The number of daily failed transfer extrinsics on Kusama had been consistently high at 22k for several months. Concerned by this trend, Oliver and the data team discussed the matter and decided to launch an investigation in order to understand the underlying causes of these high numbers.

We started out by identifying addresses that had initiated more than 1000 failed ‘balances.transfer’ extrinsics, which led us to create the first table of the dashboard, displayed below. If we look at when the first failed transfer extrinsic happened for the second address for example, we can roughly estimate an average of around 150 failed extrinsics per day from that date until today. If we tell you that there are more than 300 addresses displaying similar patterns, then the numbers start adding up.

Not to be ignored are the transaction fees being paid by these addresses to the treasury and the validators, but we will circle back to this point at the end.

Having identified the addresses initiating a large number of failed transfer extrinsics, the logical next step was to determine the destination addresses of these transfer attempts. We found that 2 addresses (1 and 2) displayed in the graph below were on the receiving end of 99% of all failed transfer extrinsics, even though the trend only starts in mid-October 2022.

By this point, the questions start piling up. What is really going on? Who is behind these 2 receiver accounts? Are the sending addresses aware that their balance is being depleted by transaction fees?

To the first question, we can speculate that there is some faulty programming behind the transfer attempts. Consider this sending address as an example. It receives an initial transfer of 5.601 KSM, and then proceeds to transfer the full amount through a ‘balances.transfer’ extrinsic. The transfer fails due to lack of funds and then proceeds to execute the same operation until its balance has run out due to repeated payment of transaction fees.

So, should we as a community consider this activity as network spam, given that they are paying the required gas fees? The last card on the dashboard tells us that these failed transfer extrinsics have paid a total of ~4.7 million dollars in KSM to the treasury and validators since October 12th, 2022. In this case, do we say that the system is working as intended?

Should we try to identify the parties behind these two addresses and inform them of what is happening? Would that be the right course, given that the system is working and the treasury is benefitting? Are there any potential negative consequences for the network if this is allowed to continue?

All of these are questions that merit further discussion within the community. We encourage everyone to join the conversation and share their thoughts and ideas, and concerns.

Best Regards,

Parity Data Team


Why? Not sure who is burning 4.7 Million dollars and is not being aware that this is happening. :person_shrugging:

Yes, it must be deliberate, though it makes little sense (generous donation to validators?). But it makes even less sense as an accident.