Author

Topic: Tx graph obfuscation through convergence (Read 1271 times)

member
Activity: 62
Merit: 10
Similar to the goal of a Bitcoin mixer, this idea's purpose is to make it harder for someone to analyze the blockchain and associate transactions/addresses with an identity. Every Bitcoin user has a directed "Tx graph" where the vertices/nodes are Tx's a user has made and connecting edges/arrows point to a Tx from others it uses as inputs. This graph could be perfectly constructed by a user if they kept track of all their Tx. Deriving it accurately from the blockchain is difficult but possible in some situations. In most cases one could only derive Tx graphs for an identity which were probabilistic. I.E. there is an x% chance this Tx graph is accurate, x% chance this other one is, etc. One could construct another graph that assigned probabilities to each edge which represent the likelihood a Tx was made by the identity in question. A more detailed graph could be made tracking individual outputs as well. There are many different methods for constructing graphs of the blockchain and many methods for deriving identity association from it.

To make identity association more difficult, this proposal works as follows:

1. n parties create a new address and send X BTC to it
2. These parties agree to construct a single Tx (or use a service they trust to do this for them) where they each input X BTC from said address and get an output to a new address they control for X BTC (minus the Tx fee)
2. Each party signs the Tx with the key they used for their X BTC input and publish it
3. Each party can do multiple "rounds" of this process

By doing many rounds of this, parties connect/converge their Tx graphs, blending identities together, because one cannot know which output connects to a specific input. Users would need to be careful to not use obfuscated BTC with non-obfuscated BTC in the same Tx.

Obfuscaters could use a P2P network to find each other and construct these Tx. There would need to be standard amounts to obfuscate, such as powers of 10 (0.1 BTC, 1 BTC...) since every input/output in these Tx needs to be the same.
Jump to: