You may have seen some of the online discussions on Twitter about Cardano TPS (Transactions Per Second) count. It lead me down the rabbit hole of trying to see if I could calculate TPS more accurately. I have listed my findings below but want to get them vetted.
Assumption: A true "transaction" refers to the transfer of value between one person and the next. We will exclude native assets from this for the time being.
Cardano allows for a many to many relationship. Many addresses sending to many addresses. In the Bitcoin world this is known as cojoining or mixing. It is pretty normal to see inputs coming from more than one address on the Cardano blockchain.
There appears to be no easy / clear cut way to calculate TPS but there are the following rules of thumb:
- Exclude any UTxOs that were consumed an hour of being created - see early spend on page 8 to understand why.
- You then have to determine which of the UTxOs are "change outputs". In the case of 1 input to many outputs, this can be determined fairly easily. However in the case of multiple inputs from different addresses going to multiple output addresses this seems impossible. It seems that Cardano is set up like a coin mixer in this regard.
Do you agree, and any ideas / suggestions?