<p>The inventory message only contains the transaction hashes or block hashes and an enum that specifies which type a given hash is. In the paper, when they talk about addresses, they mean IP addresses. What they are describing here is that the attacker takes note of the first couple of IP addresses (in this case, 10) that sent out inventory messages for a transaction hash.</p>

<hr>

<p>Edit to answer your follow ups:</p>

<blockquote>
  <ol start="4">
  <li>Step: This runs parallel to Step 1-3. In this step I'm listening to all <code>INVENTORY</code>-Messages. So you said the <code>INVENTORY</code>-Message contains the transaction hash and an enum. How will be one  <code>INVENTORY</code>-Message generated? Will this message generated for every transaction and distributed by broadcast to every known node in the bitcoin network? Who creates this <code>INVENTORY</code>-Message?</li>
  </ol>
</blockquote>

<p>The <code>inventory</code> message is just a message sent to a nodes peers. It is not forwarded to other nodes as it is not a message like transaction and block messages.</p>

<p>If you (as a node) receive an <code>inventory</code> message from me (as a node), that means that I am announcing to you that I have a transaction or a block which you might be interested in. If you want that transaction or block, you will respond with a a <code>getdata</code> message and I will respond to that with the transaction or block itself.</p>

<blockquote>
  <p>Did I correctly understand the first three steps?</p>
</blockquote>

<p>Yes, I think you did.</p>

CC BY-SA 3.0
2017-06-19T15:49:45.803Z
2017-07-04T17:52:47.477Z
2017-07-04T17:52:47.477Z
Ava Chow
<p>I am reading the paper <a href="https://arxiv.org/pdf/1405.7418.pdf" rel="nofollow noreferrer">Deanonymisation of clients in Bitcoin P2P network [PDF]</a> and have some questions about the fourth step in 'chapter 5: Deanonymization'</p>

<p>I don't understand the emphasized part: </p>

<blockquote>
  <p>Step 4) Mapping transactions to entry nodes: 
  The attacker listens for
  <code>INVENTORY</code> messages with transaction hashes received over all
  the connections that she established and <strong>for each transaction
  T she collects R<sub>T</sub> — the first <em>q</em> addresses of Bitcoin servers
  that forwarded the <code>INVENTORY</code> message.</strong></p>
</blockquote>

<p>What information is learned from these inventory messages? I thought it contains only the transaction hash.</p>

<hr>

<p>Thank you for your answer. I still have some problems to understand the paper.</p>

<ol>
<li><p>Step: I'm sending the <code>GETDADDR</code>-Message to all my Entry-Nodes and they answer with the <code>ADDR</code>-Message which contains the IP addresses of their known Nodes. Now I have my set <code>S</code> with IP addresses.</p></li>
<li><p>Step: I'm choosing the subset <code>E</code> of <code>S</code> which contains the ip addresses I want to identify.</p></li>
<li><p>Step: Now I want to map new connecting clients to the bitcoin network with their entry-nodes (entry-nodes are elements of <code>E</code>).   </p></li>
<li><p>Step: This runs parallel to Step 1-3. In this step I'm listening to all <code>INVENTORY</code>-Messages. So you said the <code>INVENTORY</code>-Message contains the transaction hash and an enum. How will be one <code>INVENTORY</code>-Message generated? Will this message generated for every transaction and distributed by broadcast to every known node in the bitcoin network? Who creates this <code>INVENTORY</code>-Message? </p></li>
</ol>

<p>Did I correctly understand the first three steps?</p>

<network><privacy><inventory>
What is learned from listening for inventory messages?
Erik
# What is learned from listening for inventory messages?

(Asked by: username_0 on 2017-06-19)

I am reading the paper [Deanonymisation of clients in Bitcoin P2P network [PDF]](https://arxiv.org/pdf/1405.7418.pdf) and have some questions about the fourth step in 'chapter 5: Deanonymization'

I don't understand the emphasized part:

> Step 4) Mapping transactions to entry nodes:
> The attacker listens for
> `INVENTORY` messages with transaction hashes received over all
> the connections that she established and **for each transaction
> T she collects RT — the first *q* addresses of Bitcoin servers
> that forwarded the `INVENTORY` message.**

What information is learned from these inventory messages? I thought it contains only the transaction hash.

---

Thank you for your answer. I still have some problems to understand the paper.

1. Step: I'm sending the `GETDADDR`-Message to all my Entry-Nodes and they answer with the `ADDR`-Message which contains the IP addresses of their known Nodes. Now I have my set `S` with IP addresses.
2. Step: I'm choosing the subset `E` of `S` which contains the ip addresses I want to identify.
3. Step: Now I want to map new connecting clients to the bitcoin network with their entry-nodes (entry-nodes are elements of `E`).
4. Step: This runs parallel to Step 1-3. In this step I'm listening to all `INVENTORY`-Messages. So you said the `INVENTORY`-Message contains the transaction hash and an enum. How will be one `INVENTORY`-Message generated? Will this message generated for every transaction and distributed by broadcast to every known node in the bitcoin network? Who creates this `INVENTORY`-Message?

Did I correctly understand the first three steps?

**Tags:** network, privacy, inventory


---

## 1 answers

### Answer by username_1 on 2017-06-19. Score: 3

The inventory message only contains the transaction hashes or block hashes and an enum that specifies which type a given hash is. In the paper, when they talk about addresses, they mean IP addresses. What they are describing here is that the attacker takes note of the first couple of IP addresses (in this case, 10) that sent out inventory messages for a transaction hash.

---

Edit to answer your follow ups:

> 4. Step: This runs parallel to Step 1-3. In this step I'm listening to all `INVENTORY`-Messages. So you said the `INVENTORY`-Message contains the transaction hash and an enum. How will be one `INVENTORY`-Message generated? Will this message generated for every transaction and distributed by broadcast to every known node in the bitcoin network? Who creates this `INVENTORY`-Message?

The `inventory` message is just a message sent to a nodes peers. It is not forwarded to other nodes as it is not a message like transaction and block messages.

If you (as a node) receive an `inventory` message from me (as a node), that means that I am announcing to you that I have a transaction or a block which you might be interested in. If you want that transaction or block, you will respond with a a `getdata` message and I will respond to that with the transaction or block itself.

> Did I correctly understand the first three steps?

Yes, I think you did.


---

