2

I am reading the paper Deanonymisation of clients in Bitcoin P2P network [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?

2

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:

  1. 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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.