Note that this section depends on reviewing the network propagation resources of the mining and network propagation seminar. If you are doing these out of order, please take a look at that section first.
Content | Time (min) |
---|---|
Map of the Bitcoin Network | 25 |
Attacking p2p of Bitcoin Core w/ Amiti Uttarwar (video (until min 41) or transcript) | 45 |
The Bitcoin p2p Network | 60 |
The Bitcoin Network in Mastering Bitcoin (start at Network Discovery section) | 20 |
Network partition resistance | 20 |
Eclipse Attacks on Bitcoin’s Peer-to-Peer Network | 75 |
Network partitioning & network level privacy attacks | 50 |
(optional) Transport Encryption & BIP 324 | 15 |
(optional) Researching P2P privacy attacks | 90 |
- Will Clark has an updated fork of tinybitcoinpeer, a 200 line python program that allows you to explore the Bitcoin p2p network.
- Given the attack surface in P2P, is running a full node worth it?
- How many honest nodes do you need to be connected to be sure you are connected to the right network/blockchain?
- Does it make sense to have separate networks which are more resistant against p2p attacks, and regular nodes will keep at least one connection to them if they choose so?
- What is the 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?
- What is the rationale behind the "new"/"tried" table design? Were there any prior inspirations within the field of distributed computing?
- How are anchor connections chosen? In what circumstances would you evict or change them?
- What are feeler connections, and when are they used?
- What can an attacker do if they are able to eclipse a mining pool?
- What is the difficulty of successfully achieving an eclipse attack? What resources and skills would be required to achieve such an attack?
- Why must transaction unlocking scripts only push numbers to be relayed?
- What output scripts are 'IsStandard'?
- Why must transactions be no less than 82 bytes to be relayed?
- Why is the blockheight now encoded in the coinbase transaction?
- How does "diffusion" message spreading work and why is it ineffective against de-anonymization?