You're running your node and you receive a transaction from a peer, how do you determine if that peer created the transaction or if it is simply relaying the transaction. In other words, can you map transaction creation to a peer?
1 Answer
how do you determine if that peer created the transaction or if it is simply relaying the transaction
You cannot, at least not with absolute certainty. This is by design: it helps preserve the privacy of users on the network.
That said, if you decided to run a whole bunch of nodes, and positioned them carefully in the network graph, then you could start to infer where transactions are originating from, based on the timing of your nodes hearing about said new transactions. I think it should be expected that chain analysis firms are doing this today.
To counter this, it must be considered that there are many ways to publish a transaction to the network - the node that first publishes a transaction is not necessarily owned or operated by the user that actually crafted the transaction. For example, today there exists services within the tor network, which allow you to copy/paste a signed transaction into a website form, to be broadcast to the network anonymously. Since you must connect to this service over tor, not even the service provider will know the identity of the transaction's author.
Further work is being done to increase the privacy of transaction broadcast. For example see BIP 156.
-
"run a whole bunch of nodes, and positioned them carefully in the network graph" You could just connect to a bunch of peers to have the same effect right? I was interested in determining the % of transactions created by a node that get included into a block. I thought that could be an interesting stat. I am less concerned with which user creates a txn more concerned with which node. And less interested in deanonymizing transactions and more interested in the behaviour of a node.– fobaCommented Dec 30, 2019 at 22:41
-
@foba the best estimates I've seen put the number of nodes on the network at 10's of thousands, so a single node could not possibly reliably learn which nodes are the origin of certain transactions.– chytrikCommented Dec 31, 2019 at 2:32