Open Mitchellpkt opened 6 years ago
An option for validating new wallets selection algorithms.
Create a 1-class support vector machine (SVM) trained to recognize "normal" transactions (i.e. the bulk majority that use correct algorithms)
Any transactions that fall significantly outside the "normal" class are potentially worth investigating. Furthermore, a new/modified wallet could submit a few transactions for review to verify that they fall in the single indistinguishable class.
As discussed in the "custom ring composition spoils Monero fungibility" wiki, any non-standard algorithm for decoy selection can be used to group transactions that are potentially made by the same wallet or entity. This can be automated by applying unsupervised clustering algorithms on the empirical age distribution of decoys used in real transactions.
In an idea world, where all users and wallets follow the typical decoy selection algorithm, all Monero transactions fall into the same indistinguishable cluster. However, a set of transactions generated with significant deviations away from the norm (e.g. using a uniform selection algorithm) will shift to their own cluster.
The largest cluster(s) with the most members represent the fungible bulk of Monero, and the outlier clusters should be quite interesting to inspect.
Note, it might be useful to try log(age) coordinates as well, to catch signatures on shorter timescales.