7

Monero, like Bitcoin has some IPs hardcoded which are used for the initial peer discovery bootstrapping process, see https://github.com/monero-project/monero/blob/35d5aa36c9b2f4bba169e5947039bf7871649ee1/src/p2p/net_node.inl#L374-L392

Currently, the list consists of these 8 IP addresses:

  • 107.152.130.98
  • 212.83.175.67
  • 5.9.100.248
  • 163.172.182.165
  • 161.67.132.39
  • 198.74.231.92
  • 195.154.123.123
  • 212.83.172.165

My questions:

  • Who controls them?
  • How does Monero deal with BGP or similar attacks?
  • Is the communication with these nodes authenticated?
  • Who decides which IPs are added? What would it take to get my node added to the list?
  • To how many of them does my node connect (and when)?
3

As a partial answer, here is a list of reverse DNS lookups followed by their respective WHOIS owners:

  • 107.152.130.98 > monero.cc > Riccardo Spagni
  • 212.83.175.67 > poneytelecom.eu > Unknown
  • 5.9.100.248 > your-server.de > Martin Hetzner
  • 163.172.182.165 > scaleway.com > Unknown
  • 161.67.132.39 > Unknown
  • 198.74.231.92 > Unknown
  • 195.154.123.123 > poneytelecom.eu > Unknown
  • 212.83.172.165 > getmonero.org > Riccardo Spagni

However it looks like these are fallback IPs. Initial seeds are fetched from these addresses:

  • seeds.moneroseeds.se > Unknown
  • seeds.moneroseeds.ae.org > Riccardo Spagni
  • seeds.moneroseeds.ch > Riccardo Spagni
  • seeds.moneroseeds.li > Riccardo Spagni

Who controls them?

These core peers are hardcoded and thus only managed by several trusted persons by the core members, as Riccardo Spagni (among his 83+ DNS addresses). You'll see that at least 5 peers are owned by Riccardo Spagni and another one by Martin Hetzner (unknown to me, it is possible that this reverse DNS lookup is wrong). I don't think that someone will come forward and give a full list of names as the anonymity related to some IPs prevents a social engineered attack.

Who decides which IPs are added?

The core team. Any added IP would however be reviewed through the GitHub PR process preventing any unwanted ones from being inserted.

What would it take to get my node added to the list?

This won't be allowed as far as I know. These core peers are the backbone of Monero and must be managed by known people to the core team. These 8 IPs and 4 addresses guarantee a sane network and must be running 24/7. Allowing anyone to add their IP would make the network vulnerable to a hostile take-over.

To how many of them does my node connect (and when)?

Your node seems to try to have 12 connections. For as far as I know the IPs are used as a fallback if you didn't reached the 12 seeds.
The connection is made upon initialisation. But here again, I might have mis-read the code.

How does Monero deal with BGP or similar attacks? Is the communication with these nodes authenticated?

Although I don't have a certain answer here, All these IPs and addresses are public as well as Monero's source code. I haven't been able to find any code specifying a special check which would mean that these kind of attacks are possible.
However, I don't see which effect they could have. All they would be able to do is block your transactions or fake your balance without having any definitive actions on your wallet. The signing process on Monero's transactions will prevent them form redirecting your funds. A more productive attack would be that an attacker fakes a website donation page and forces you to make a donation to his fraudulent address.

  • 1
    Martin Hetzner is the boss of the probably largest German hosting provider hetzner.de. "5.9.100.248 > your-server.de > Martin Hetzner" is therefore incorrect, as the IP has the default reverse lookup from the hosting provider, i.e. the customer did not change it. – Florian Schneider Jan 14 '18 at 12:08
  • This effectively means than Riccardo is the single point of failure for Monero? All other server admins are unknown? How did they end up in code then? – Florian Schneider Jan 14 '18 at 12:12
  • Potentially yes. All these IPs were inserted in the code by Riccardo himself. All the unknown IPs could belong to him. – Maxithi Jan 14 '18 at 12:27
  • The DNS servers were added in this PR: github.com/monero-project/monero/pull/156 Interesting, it didn't have a day in the review queue. I do trust Riccardo and thank him so much for supporting the project, but doesn't this look a bit shady? – Florian Schneider Jan 14 '18 at 12:30
  • 3
    It’s probably best to learn how PoW works. I can poison the well and it won’t make a difference, as I can’t mine a chain with greater cumulative PoW difficulty. It might take a new node longer to find the chain with the greatest cumulative PoW difficulty, but trying to isolate new nodes by poisoning seed nodes is unlikely to work for very long. All you need is ONE node in that pool to stumble upon the real chain and the house of cards crumbles. – fluffyponyza Jan 15 '18 at 9:49

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.