2

When a node joins the Bitcoin network it gets its info from either a preinstalled list, dns or irc. All of these 3 could potentially imply a central authority for who's on the network. Who exactly maintains them?

2 Answers2

2

You can get your pre-installed lists from anyone you choose by any method you choose. There is absolutely no requirement to you get these lists in any particular way or from any particular authority.

If you wish, you can make your own list of bitcoin nodes you consider "valid". You can publish this list by a web page, by DNS, or by any other method you choose. Anyone who wants to can use your list, or not use your list, however they want. And Bitcoin will work just the same.

When someone follows an "authority" because that authority is convenient, I do not consider that centralization. As long as people are free to choose to follow a different authority, or just do it themselves, if at any time they no longer like what that authority is doing, that's not centralization in my view.

And, of course, none of this is relevant once you find a few bitcoin nodes to talk to. It only affects the initial bootstrapping process. You have the same issue with getting the bitcoin software in the first place. Is bitcoin not decentralized unless everyone writes their own implementation of the protocol? Or is it decentralized so long as people are free to if they wish?

David Schwartz
  • 51,308
  • 6
  • 106
  • 177
  • I was hoping for something built into the software that would guarantee a list with integrity. The majority of miners will probably get the hard coded list, which unfortunately could sway the mining privileges a certain direction. That said, by no means I'm accusing Bitcoin Core dev of any malicious acts. It's just a fight towards perfect algorithmic software. – Rawad Rifai Oct 14 '17 at 22:10
  • @RawadRifai I don't think the majority of miners get the hard coded list. I believe they exchange lists among themselves to ensure the fastest propagation of their blocks to each other for mutual benefit. See [this](http://bitcoinfibre.org/public-network.html) as just one example. – David Schwartz Oct 15 '17 at 20:05
  • Awesome, thanks David. This is helpful. I must admit I have been confused about the network operations behind the bitcoin network. For now I will trust that the list of participant miners is not being modified or tempered in anyone's advantage. – Rawad Rifai Oct 18 '17 at 00:15
0

The seed nodes and DNS seeders provided in Bitcoin Core are maintained by the Bitcoin Core developers. They are only used for the first time that a node is started. The DNS seeders are operated by well known Bitcoin Core developers. The seed nodes are built from a list of nodes provided by Pieter Wuille's DNS seeder and that process is documented and scripted here: https://github.com/bitcoin/bitcoin/tree/master/contrib/seeds. Note that this process of generating the seed nodes can be done with any other DNS seeder and is not exclusive to Pieter's.

It is also important to note that the DNS seeders and seed nodes are only used on the first start of a node and are fallbacks. When a node has started, it will request a list of peers from each node that it connects to and build its own database of peers to connect to. It then uses this to connect to peers on later starts. Only if this fails will it fallback to using the DNS seeders and seed nodes.

Lastly, you can provide a specific list of nodes that you want your node to connect to at anytime. The list of seeders and seed nodes can be changed, and you can tell your node which other nodes to specifically connect to.

Andrew Chow
  • 67,209
  • 5
  • 76
  • 149
  • I was hoping for something built into the software that would guarantee a list with integrity. The majority of miners will probably get the hard coded list, which unfortunately could sway the mining privileges a certain direction. That said, by no means I'm accusing Bitcoin Core dev of any malicious acts. It's just a fight towards perfect algorithmic software. – Rawad Rifai Oct 14 '17 at 22:11
  • What do you mean by "guarantee a list with integrity"? The majority of miners have probably had their nodes up for such a long time now that they are connecting to peers from their own peer databases and haven't checked with any of the DNS seeders since the first time the node went up and have never looked at the hard coded seed nodes. Peer discovery will inherently be some form of centralization. There is no way to discover peers without someone first telling you at least one peer to start with. The DNS seeders and seed nodes give that initial starting point; from there it is all algorithmic. – Andrew Chow Oct 14 '17 at 22:47