noncesense-research-lab / archival_network

Investigating the frequency of alternative blocks, reorganizations, potential double-spend attacks, selfish mining, and more.
MIT License
14 stars 7 forks source link

Use unsupervised machine learning to link transactions with related origins, based on ring member age distribution #42

Open Mitchellpkt opened 6 years ago

Mitchellpkt commented 6 years ago

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.

Mitchellpkt commented 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.