<blockquote>
  <p>how do you determine if that peer created the transaction or if it is simply relaying the transaction</p>
</blockquote>

<p>You cannot, at least not with absolute certainty. This is by design: it helps preserve the privacy of users on the network. </p>

<p>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. </p>

<p>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. </p>

<p>Further work is being done to increase the privacy of transaction broadcast. For example see <a href="https://github.com/bitcoin/bitcoin/pull/13947" rel="nofollow noreferrer">BIP 156</a>.</p>

CC BY-SA 4.0
2019-12-30T22:41:04.860Z
"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.
foba
CC BY-SA 4.0
2019-12-31T02:32:43.217Z
@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.
chytrik
CC BY-SA 4.0
2019-12-30T22:31:07.937Z
2019-12-30T22:31:07.937Z
chytrik
<p>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?</p>

<transactions><nodes><peers><transaction-propagation>
How to determine the peer/node that created a transaction?
foba
# How to determine the peer/node that created a transaction?

(Asked by: username_0 on 2019-12-30)

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?

**Tags:** transactions, nodes, peers, transaction-propagation


---

## 1 answers

### Answer by username_1 on 2019-12-30. Score: 1 | Accepted 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](https://github.com/bitcoin/bitcoin/pull/13947).

> **Comments:**
> **username_0**: "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.  
> **username_1**: @username_0 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.  

---

