Author

Topic: What is the diameter of the Bitcoin network? (Read 1825 times)

staff
Activity: 4284
Merit: 8808
1. What is the diameter of the Bitcoin network?
2. How much time it takes a Bitcoin mined block to propagate to every node?
3. How much time it takes a single node to broadcast a block after it has received it?
4. What is the strategy of nodes and miners in the presence of competing chains? Do they abort and switch to the longer chain?
5. How many nodes are connected by each node by default ?

The network is almost a randomly wired graphs. Nodes make 8 outbound connections (unless modified, a few people run modified nodes). Nodes will take up to 125 connections by default (unless the user has configured it otherwise). Nodes will not make outbound connections to two hosts with addresses in the same /16 (in order to make it harder to DOS attack by spinning up large numbers of nodes from a single network, though this is fairly weak protection).

Only a small fraction of nodes accept inbound connections, though it's impossible to know the exact fraction as non-listening nodes are invisible unless one happens to connect to you. (Of course, they still relay data between the listening nodes they connect to)

(And FWIW, I believe the figures on http://bitcoinstatus.rowit.co.uk/  are not especially accurate— but at least they're something)

The amount of time it takes to broadcast a block depends on how long the node takes to validate it, so its hardware dependent.  The logs on my nodes indicate that it's deeply subsecond, but I don't have high enough time resolution to tell you more than that.  Obvious network latency gets added on top of validation, but since a significant portion of the nodes are clustered in Europe and the Americas there isn't a ton of additional network latency.

Miners always attempt to extend the first received longest chain. If another chain becomes longer they'll attempt to extend it instead.  Your use of the word 'abort' concerns me: Mining is memoryless, each attempt is independent.

From this information and a few guesses about the things we can't answer you could arrive at some figures for your questions.
legendary
Activity: 1708
Merit: 1010
The electricity alone costs about $15K per day at average US power rates.  They would do something else.

MoonShadow,

15K a day, for the USA, is a rounding error or even less.

spiccioli

Again, that's after they bought the hardware and built the most powerful supercomputer the world has ever seen, and did so while outpacing not just the current network growth, but also the reserve hashing power of the network.  Something like this wouldn't go unnoticed or unchallenged by factions within the government itself, due to the cost of construction alone.

Moon,

the USA have a 15 trillions (and growing) national debt last time I checked, do you think they would mind spendig a few billions to destroy bitcoin if or when bitcoin becomes a problem?

http://www.zerohedge.com/news/gross-us-debt-surges-240-billion-overnight-us-debt-gdp-hits-post-world-war-ii-high-972-official

For example, 240 billions overnight!

spiccioli



Mind?  No I don't.  But the US federal government isn't a monolithic structure, in order to spend the kind of money & time to do the deed, some faction is going to have to get enough of a budget to do it.  The only department with enough of a budget now would be either the military or the CIA.  Neither has much interest in monetary policies or "crimes".  The attempt to approve such a budget for any dept that would actually care would send up some real red flags within the government itself.  I'm not saying that it couldn't be done, if anyone can the US government can.  I'm saying that the US government has easier attack vectors to pursue first, such as simply making this all illegal and a huge propaganda campaign.
hero member
Activity: 555
Merit: 654
Also take a look at:
https://github.com/n1bor/bitcoin-simulation

Might be of help to you...

It seems a good app to start modeling. I will test it! Thanks!
legendary
Activity: 1379
Merit: 1003
nec sine labore
The electricity alone costs about $15K per day at average US power rates.  They would do something else.

MoonShadow,

15K a day, for the USA, is a rounding error or even less.

spiccioli

Again, that's after they bought the hardware and built the most powerful supercomputer the world has ever seen, and did so while outpacing not just the current network growth, but also the reserve hashing power of the network.  Something like this wouldn't go unnoticed or unchallenged by factions within the government itself, due to the cost of construction alone.

Moon,

the USA have a 15 trillions (and growing) national debt last time I checked, do you think they would mind spendig a few billions to destroy bitcoin if or when bitcoin becomes a problem?

http://www.zerohedge.com/news/gross-us-debt-surges-240-billion-overnight-us-debt-gdp-hits-post-world-war-ii-high-972-official

For example, 240 billions overnight!

spiccioli

legendary
Activity: 1246
Merit: 1016
Strength in numbers
The electricity alone costs about $15K per day at average US power rates.  They would do something else.

MoonShadow,

15K a day, for the USA, is a rounding error or even less.

spiccioli

Again, that's after they bought the hardware and built the most powerful supercomputer the world has ever seen, and did so while outpacing not just the current network growth, but also the reserve hashing power of the network.  Something like this wouldn't go unnoticed or unchallenged by factions within the government itself, due to the cost of construction alone.

I would think many marginal miners would actually leave during an attack not knowing if bitcoin will go a going concern, probably the doubt will be reflected in the price and the decision will be more or less automatic for some. Power held in reserve by people with a stake in Bitcoin might come online, but there is no reason to think a random miner who turned his rigs off when the price dropped below $7 will run to turn them on when Bitcoin is in trouble and the price is lower.

Still I don't think we have to worry, 'they' will probably spend a year discussing whether mining ought be made illegal, a year implementing regulations and then make a futile effort at enforcing before realizing that they needed to be mining themselves (now illegal though, whoops).
legendary
Activity: 1708
Merit: 1010
The electricity alone costs about $15K per day at average US power rates.  They would do something else.

MoonShadow,

15K a day, for the USA, is a rounding error or even less.

spiccioli

Again, that's after they bought the hardware and built the most powerful supercomputer the world has ever seen, and did so while outpacing not just the current network growth, but also the reserve hashing power of the network.  Something like this wouldn't go unnoticed or unchallenged by factions within the government itself, due to the cost of construction alone.
legendary
Activity: 1379
Merit: 1003
nec sine labore
The electricity alone costs about $15K per day at average US power rates.  They would do something else.

MoonShadow,

15K a day, for the USA, is a rounding error or even less.

spiccioli
sr. member
Activity: 438
Merit: 291
Also take a look at:
https://github.com/n1bor/bitcoin-simulation

Might be of help to you...
legendary
Activity: 1708
Merit: 1010
What if you want to build or buy a hash-crunching machine  with FPGA/ASIC  like this http://www.butterflylabs.com/.

Then then you only pay the cost only once: so both attacks scenarios seems equally relevant.

But It's true that if you had the hardware, them you would use it as many times as possible, and then the 10-second block currency would suffer for 6 times more attacks than the 10-minute block currency.


The bitcoin network collectively runs at about 140 Teraflops.  Not even Amazon could buy that much hardware without notice, and they certainly don't have it now.  Maybe a major government, such as the US or China could do it without public notice, but not without other governments noticing, and they'd want to know why bad enough to figure it out, and there are enough governments that would secretly oppose anything that the US government does to be willing to do the same thing to help the network.  And this is just what the live running power of the bitcoin network is capable of.  There is likely as much as 50% more hashing power in idle reserve across the current network that is able to come online should the network come under a 51% blockchain attack.

All of this also doesn't consider the vast amount of money and time required to build such a supercluster, all the while the network grows.

No, for all practical purposes, the bitcoin network is no longer small enough to be overtaken by any single entity working alone even for a relatively short period of time.  Even the US government couldn't be more than a temporary irritant using a 51% attack.  The electricity alone costs about $15K per day at average US power rates.  They would do something else.
hero member
Activity: 555
Merit: 654
What if you want to build or buy a hash-crunching machine  with FPGA/ASIC  like this http://www.butterflylabs.com/.

Then then you only pay the cost only once: so both attacks scenarios seems equally relevant.

But It's true that if you had the hardware, them you would use it as many times as possible, and then the 10-second block currency would suffer for 6 times more attacks than the 10-minute block currency.


legendary
Activity: 1708
Merit: 1010
...to have the same level of certainty against block reversal, the same time period must pass (roughly and hour) before it's mathmaticly secure enough to call it complete.  Instead of 6 block confirmations, a 10 second interval would need 360 to approximate the same resilance against a brute force blockchain attack. The instant payments problem can be, and already has been, solved in other ways anyway.

This is only partially true: If the attacker owns the hardware to setup a 51% attack on a 10-seconds-per-block currency (with a 6 block confirmation interval) then the attack will require the use of such hardware for 60 seconds. In a 10-minute-per-block currency the attacker would have to use it for 60 minutes, so the only difference is electricity cost (which wouldn't be much) .

6 confirmations of 10-seconds currency has similar security than 6 confirmations of 10-minute currency.

If the attacker hires the CPU from another facility (Amazon Cloud, etc.) to setup a 51% attack, then the attack on the 10-seconds currency is 6 times cheaper (as you said in your post), since you hire computing TIME and not computing hardware.

So the security depends on the capabilities of the attacker and in very general terms, the shorter the block interval, the better.

This is, IMHO, the most simpler way to analyze it.

Regards,
 Sergio.

That's one way to look at it, but in my humble opinion, a bit off of the reality.  One cannot spend recently received coins unless they have been confirmed 6 times (about an hour), or freshly minted coins for 120 blocks. (about a day)  There are sound reasons for this that are not resolved by an alt-chain with a shorter interval using the same number of blocks.  The security model of bitcoin is more like a continuous 'brute force' race, the blocks are just checkpoints along teh way.  And at this point, no one owns enough computer hardware to commit to a 51% attack, so the rented clock time model is the real threat.
hero member
Activity: 555
Merit: 654
...to have the same level of certainty against block reversal, the same time period must pass (roughly and hour) before it's mathmaticly secure enough to call it complete.  Instead of 6 block confirmations, a 10 second interval would need 360 to approximate the same resilance against a brute force blockchain attack. The instant payments problem can be, and already has been, solved in other ways anyway.

This is only partially true: If the attacker owns or buys the hardware to setup a 51% attack on a 10-seconds-per-block currency (with a 6 block confirmation interval) then the attack will require the use of such hardware for 60 seconds. In a 10-minute-per-block currency the attacker would have to use it for 60 minutes, so the only difference is electricity cost (which wouldn't be much) .

6 confirmations of 10-seconds currency has similar security than 6 confirmations of 10-minute currency.

If the attacker hires the CPU from another facility (Amazon Cloud, etc.) to setup a 51% attack, then the attack on the 10-seconds currency is 6 times cheaper (as you said in your post), since you hire computing TIME and not computing hardware.

So the security depends on the capabilities of the attacker and in very general terms, the shorter the block interval, the better.

This is, IMHO, the most simpler way to analyze it.

Regards,
 Sergio.
legendary
Activity: 1708
Merit: 1010

1. What is the diameter of the Bitcoin network?


If you are asking how many hops, on average, a network message must travel to move from one edge of the network to the other, then this is literally an impossible number to assess with any accuracy.  Not only is the network in a nearly continuously changing state, many of the nodes are 'quiet' and deliberately don't exist in any detectable form on the open Internet.  Yes, this is possible.

However, one could take a reasonable guess by starting with the default number of connections the average client makes, and a stab at the number of clients that (visablely) exist.  My intuitive guess is that the network doesn't require very many hops to saturate the network at the present time, but that number is going to increase dramaticly as the size of the connected network increases.

Quote

2. How much time it takes a Bitcoin mined block to propagate to every node?


Every node is an impossible question to answer.  Average propogation time is currently pretty short, less than ten seconds to any node connected with a broadband Internet connection capable of keeping up.  This is also expected to increase significantly.

Quote

3. How much time it takes a single node to broadcast a block after it has received it?


Since the node must verify every aspect of the block from the transactions to the merkle tree to the header before forwarding takes places, much of this time period is highly dependent upon the number of transactions in a block and the speed of the node.  So again, this is an impossible question to answer to any accuracy because 1) we don't know the hardware these things are runing one and 2) the number of transactions vary.  I'd be shocked if it took an fairly moder computer more than 50 miliseconds to process the avaerage block lately.  Even so, both metrics are expected to change dramticly over the next couple years.

Quote
4. What is the strategy of nodes and miners in the presence of competing chains? Do they abort and switch to the longer chain?

Once it's obvious that a longer chain exists, yes.

Quote

5. How many nodes are connected by each node by default ?


Eight if the node must initiate all connections (due to a firewall, for example) or 16 if the client can accept incoming transactions.  However, this is just the default, which can be altered arbitrarily by the user, and it can be reasonablely assumed it's in the interestes of miners and mining pools to have as many connections open as is realisticly possible.

legendary
Activity: 1708
Merit: 1010

See http://bitcoinstatus.rowit.co.uk/ for a few stats and graphs.


The information is interesting, but I cannot compute from the graph data the metrics I need.

It may actually be impossible to collect such data, without deliberately setting up some nodes across the planet to act as controlled observation points.  I'm not sure what good that it would do you, because the metrics are likely to continue to change as the network and userbase grows.  The 10 minute interval was chosen because it's a long enough interval that network latency should never be a major problem (for miners or otherwise) and it's a round number that repeats evenly every hour.  Basicly, it's arbitrary but it was still an educated & safe guess.  Forks of the code that use shorter intervals have been attempted, but none ever amounted to anything.  Mostly because a sub 10 second interval is way too short, and that is the only interval that is close enough to an 'instant' confirmation to matter at a point-of-sale; and to have the same level of certainty against block reversal, the same time period must pass (roughly and hour) before it's mathmaticly secure enough to call it complete.  Instead of 6 block confirmations, a 10 second interval would need 360 to approximate the same resilance against a brute force blockchain attack. The instant payments problem can be, and already has been, solved in other ways anyway.
hero member
Activity: 555
Merit: 654

See http://bitcoinstatus.rowit.co.uk/ for a few stats and graphs.


The information is interesting, but I cannot compute from the graph data the metrics I need.
legendary
Activity: 1596
Merit: 1100

See http://bitcoinstatus.rowit.co.uk/ for a few stats and graphs.

hero member
Activity: 555
Merit: 654
I'm trying to build a model of the Bitcoin network to analyze the effect of block chain competitions on the current state of Bitcoin and versions with reduced block interval. The objective is to publish a paper on the resilience of the network and estimate the probability of a sustained block chain competition

I need to figure out:

1. What is the diameter of the Bitcoin network?

2. How much time it takes a Bitcoin mined block to propagate to every node?

3. How much time it takes a single node to broadcast a block after it has received it?

4. What is the strategy of nodes and miners in the presence of competing chains? Do they abort and switch to the longer chain?

5. How many nodes are connected by each node by default ?

Can anyone help with any of these items?

Sergio.
Jump to: