user45983: Whenever Bitcoins are discussed, one generally reads how "Bitcoins are decentralized. No company nor state controls them". My question is, how is this statement true when you read about how Bitcoin Clients find each other.
Reading from here How do Bitcoin clients find each other? we find out that Bitcoin clients use a number of ways to find other Bitcoin clients. To summarize those methods can be:

List of previous connections
DNS seeds which points to host names
(Abandoned) IRC server

So with that in mind, how are these methods decentralized? I understand how method one is, but method one can not act always act as the default method per new connections.
When you look at method 2 and 3, I question primarily the decentralized nature of a host name, as someone has to pay for the registration of said domain name and the ICANN organization is responsible for such registration. While method 3, someone has to host a server. Someone is paying for or owns the hardware and is therefore not decentralized.
The only methods I can think of that are truly decentralized is

List of previous connections (As currently implemented)
IP/Port scan for other Bitcoin clients. (Attempt to initiate a handshake to identify other clients. I understand this would be incredibly slow but seems purely decentralized to me)

Can anyone shed light how the actual methods do ensure Bitcoin is decentralized? My only other thought is the "spec" of Bitcoin is decentralized and the implementation of the clients themselves happen to not be.

user11253: For ease of use, there has to be one or more automatic peer discovery mechanisms. You have listed some of them.
There is also the -addnode command line option to bitcoind that allows the user to connect to specific node(s).
These mechanisms are specific to the current implementation of Bitcoin. The Bitcoin protocol does not specify any particular peer discovery mechanism. This allows the discovery mechanism to evolve over time, and for the truly paranoid, also allows manual peer specification.

user85: They're decentralized because every participant chooses whether to use those methods or other methods at their whim. You can exchange addresses with friends. You can hard code them into your software. You can use any DNS name you want, maintained by whoever you want. The system will still work and will still work fine. No authority decides how this will work. Nothing breaks if you do it some other way.
If you think these methods don't meet some requirements or preferences that you have, come up with your own methods and release them in code. Those who agree with you will run your code. And nobody will force them to do otherwise. Everything will work whether people do it your way or some other way.

user208: I'm going to disagree with the two other answers here, and state that node finding simply is not decentralized. Much of its design aims for decentralization and reduction of trusted parties, but nothing is absolute.
Yes, people are able to disable DNS seeds, and disable hardcoded seed IPs, and configure their own connections. But that's not what happens, and it likely wouldn't work at any large scale. Some people would set up websites with configuration guidelines, or updated lists of good nodes, and people would end up relying on those. But a reputation based system that relies on human trust is not what I would call decentralized in a meaningful way - it's just moving the problem elsewhere.
However, at least for connections between full nodes, there is relatively little harm that DNS seeds can cause. The only thing needed is one connection to an honest node.

45983: <p>Whenever Bitcoins are discussed, one generally reads how "Bitcoins are decentralized. No company nor state controls them". My question is, how is this statement true when you read about how Bitcoin Clients find each other.</p>

<p>Reading from here <a href="https://bitcoin.stackexchange.com/questions/3536/how-do-bitcoin-clients-find-each-other">How do Bitcoin clients find each other?</a> we find out that Bitcoin clients use a number of ways to find other Bitcoin clients. To summarize those methods can be:</p>

<ol>
<li>List of previous connections</li>
<li>DNS seeds which points to host names</li>
<li>(Abandoned) IRC server</li>
</ol>

<p>So with that in mind, how are these methods decentralized? I understand how method one is, but method one can not act always act as the default method per new connections.</p>

<p>When you look at method 2 and 3, I question primarily the decentralized nature of a host name, as someone has to pay for the registration of said domain name and the ICANN organization is responsible for such registration. While method 3, someone has to host a server. Someone is paying for or owns the hardware and is therefore not decentralized.</p>

<p>The only methods I can think of that are truly decentralized is</p>

<ol>
<li>List of previous connections (As currently implemented)</li>
<li>IP/Port scan for other Bitcoin clients. (Attempt to initiate a handshake to identify other clients. I understand this would be incredibly slow but seems purely decentralized to me)</li>
</ol>

<p>Can anyone shed light how the actual methods do ensure Bitcoin is decentralized? My only other thought is the "spec" of Bitcoin is decentralized and the implementation of the clients themselves happen to not be.</p>
 11253: <p>For ease of use, there has to be one or more automatic peer discovery mechanisms. You have listed some of them.</p>

<p>There is also the <code>-addnode</code> command line option to bitcoind that allows the user to connect to specific node(s).</p>

<p>These mechanisms are specific to the current <em>implementation</em> of Bitcoin. The Bitcoin <em>protocol</em> does not specify any particular peer discovery mechanism. This allows the discovery mechanism to evolve over time, and for the truly paranoid, also allows manual peer specification.</p>
 85: <p>They're decentralized because every participant chooses whether to use those methods or other methods at their whim. You can exchange addresses with friends. You can hard code them into your software. You can use any DNS name you want, maintained by whoever you want. The system will still work and will still work fine. No authority decides how this will work. Nothing breaks if you do it some other way.</p>

<p>If you think these methods don't meet some requirements or preferences that you have, come up with your own methods and release them in code. Those who agree with you will run your code. And nobody will force them to do otherwise. Everything will work whether people do it your way or some other way.</p>
 208: <p>I'm going to disagree with the two other answers here, and state that node finding simply is not decentralized. Much of its design aims for decentralization and reduction of trusted parties, but nothing is absolute.</p>

<p>Yes, people are able to disable DNS seeds, and disable hardcoded seed IPs, and configure their own connections. But that's not what happens, and it likely wouldn't work at any large scale. Some people would set up websites with configuration guidelines, or updated lists of good nodes, and people would end up relying on those. But a reputation based system that relies on human trust is not what I would call decentralized in a meaningful way - it's just moving the problem elsewhere.</p>

<p><strong>However</strong>, at least for connections between full nodes, there is relatively little harm that DNS seeds can cause. The only thing needed is one connection to an honest node.</p>
