Skip to content

Latest commit

 

History

History
 
 

p2p

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

P2P

Note that this section depends on reviewing the network propagation resources of the mining and network propagation study group. If you are doing these out of order, please take a look at that section first.

Reading

Content Time Tags
Attacking p2p of Bitcoin Core w/ Amiti Uttarwar (video (until min 41) or transcript) 35 min p2p attacks
The Bitcoin p2p Network with John Newbery 51 min P2P, video
The Bitcoin Network (start at network discovery section) 15 min P2P
Network partition resistance 15 min P2P
Deanonymization in the Bitcoin P2P Network 15 min P2P, privacy
Eclipse Attacks on Bitcoin’s Peer-to-Peer Network 60 min eclipse attacks, P2P
Network partitioning & network level privacy attacks 40 min eclipse attacks, privacy, P2P
Dandelion: Redesigning the Bitcoin Network for Anonymity 20 min P2P, privacy
Researching P2P privacy attacks 90 min P2P, privacy, video

Discussion Questions

P2P Connections

  1. What is reasoning behind the max inbound and max outbound defaults? For which type of user would they be considered ideal and when might they be optimized?
  2. What is the rationale behind the "new"/"tried" table design? Were there any prior inspirations within the field of distributed computing?
  3. How does a fixed set of 4 outbound peers get chosen? In what circumstances would you evict/change them?
  4. What are feeler connections and when are they used?
  5. How are the default values affect the throughput of the whole network? Has anyone ever tried to analyze how much data the bitcoin P2P network can handle both in bandwidth and latency?

De-anonymization

  1. How does "diffusion" message spreading work and why is it ineffective against de-anonymization?

Dandelion

  1. How are routes chosen (in the stem phase)? What happens if a malicious (or faulty) node doesn't propagate your transaction in the stem phase?
  2. When a transaction is going to bloom depends on a weighted coin toss at each hop- how is that weight determined? Could an adversarial node overwrite that weight to ensure bloom?
  3. Dandelion++ is meant to address the assumptions from the original Dandelion paper. How is that achieved?
  • Assumptions: a) All nodes obey the protocol b) Each node generates precisely one transaction c) All Bitcoin nodes run Dandelion