> If, say, there’s 50 computers in the network and you’re only connected to 5 who happen to be attackers, they could tell you that you only have 5 coins instead of 20.
No node ever "tells" any information to another. They only pass blocks, blocks either are valid or invalid. If they are valid and part of the main chain, they are the truth. No node ever communicates the balance of a wallet directly, that's the local nodes responsibility.
There is no trust in Bitcoin, that's the entire point.
Technically true, but the proof of work required to add blocks to a fork is the same as the real chain, so anyone wanting to send you fake blocks would need a significant fraction of the computing power of the whole network (in order to generate at least one fake block in a reasonable amount of time), in addition to controlling every node you speak with.
Even if the attacker controlled 10% of the computing power of the network, they would only be able to generate approximately one block every hour and a half or so. After a few blocks that would start to look suspicious, since the average time between blocks is supposed to be 10 minutes.
Right, but the point I was trying to make is that if you're only connected to attackers, they could broadcast only parts of the chain. Perhaps only the part they're interested in to bring out their attack.
Bitcoin solves this by making the p2p connections as diverse as possible.
This blog post is pretty bad, and I suspect the author doesn't actually understand how bitcoin works. The part where the author says "the other 45 in the network know your real amount" implies some sort of voting mechanism, which is not how bitcoin works. This Youtube video is a much better explanation of the technical aspects of bitcoin: http://www.youtube.com/watch?v=Lx9zgZCMqXE
The client tries to be as diverse as possible when it comes to connecting to other nodes, but the state where you're only connected to attackers should not be avoid. That's what I was trying to explain in the post.
> "the other 45 in the network know your real amount" implies some sort of voting mechanism, which is not how bitcoin works.
Sorry I wasn't implying a voting mechanism. Simply that your account information is controlled by whomever has the majority of the computing power in the network.
> No node ever "tells" any information to another.
Yes it does. Nodes "broadcast" information to other nodes. And by information I mean blocks of course. Wanted to keep it as jargon-free as possible.
> There is no trust in Bitcoin, that's the entire point.
This is unfortunately incorrect. You, as a Bitcoin user, require 50% or more trust that the honest nodes in the network can generate blocks at a faster pace than the attackers.
If for whatever reason an attacker generates blocks at a faster pace than the entire network, they could attack you by invalidating your latest payments (simply not accepting them in the block).
The proof of work mitigates that issue. The reason you are asked to wait for 3 or 6 confirmations is to ensure that you can't be outrun and have those transactions removed. If an attacker could, then they have a majority vote in the network anyway, which at this point is looking rather impossible.
This is unfortunately untrue. If anything, recent times have shown that it is rather easy to take a majority vote in the network. (i.e. the network speed doubled in a mere 2 weeks, by a very limited increase in money spent for hardware).
To decide if it's possible to cheat bitcoin you have to ask the question: How much money can I steal from people, how much money does it cost for me to steal from people. (and ofcourse how do I turn my stolen bitcoins in something valuable in a short amount of time).
When the value of bitcoin is relatively stable as it is now, that's not likely, but when the value spikes (and outruns hardware investment cost) then perhaps there's a way to cheat.
Very good initiative to explain Bitcoin, a lot of people like myself don't understand how this obscure currency works. Perhaps you should should further include P2P and how mining works!
The current XRDS issue (ACM student magainze) has a very good explanation (human readable for both technical and non-technical). And it's free!
http://xrds.acm.org/article.cfm?aid=2510124
19 comments
[ 3.2 ms ] story [ 46.8 ms ] thread> If, say, there’s 50 computers in the network and you’re only connected to 5 who happen to be attackers, they could tell you that you only have 5 coins instead of 20.
No node ever "tells" any information to another. They only pass blocks, blocks either are valid or invalid. If they are valid and part of the main chain, they are the truth. No node ever communicates the balance of a wallet directly, that's the local nodes responsibility.
There is no trust in Bitcoin, that's the entire point.
Even if the attacker controlled 10% of the computing power of the network, they would only be able to generate approximately one block every hour and a half or so. After a few blocks that would start to look suspicious, since the average time between blocks is supposed to be 10 minutes.
Bitcoin solves this by making the p2p connections as diverse as possible.
This blog post is pretty bad, and I suspect the author doesn't actually understand how bitcoin works. The part where the author says "the other 45 in the network know your real amount" implies some sort of voting mechanism, which is not how bitcoin works. This Youtube video is a much better explanation of the technical aspects of bitcoin: http://www.youtube.com/watch?v=Lx9zgZCMqXE
> "the other 45 in the network know your real amount" implies some sort of voting mechanism, which is not how bitcoin works.
Sorry I wasn't implying a voting mechanism. Simply that your account information is controlled by whomever has the majority of the computing power in the network.
Yes it does. Nodes "broadcast" information to other nodes. And by information I mean blocks of course. Wanted to keep it as jargon-free as possible.
> There is no trust in Bitcoin, that's the entire point.
This is unfortunately incorrect. You, as a Bitcoin user, require 50% or more trust that the honest nodes in the network can generate blocks at a faster pace than the attackers.
If for whatever reason an attacker generates blocks at a faster pace than the entire network, they could attack you by invalidating your latest payments (simply not accepting them in the block).
To decide if it's possible to cheat bitcoin you have to ask the question: How much money can I steal from people, how much money does it cost for me to steal from people. (and ofcourse how do I turn my stolen bitcoins in something valuable in a short amount of time).
When the value of bitcoin is relatively stable as it is now, that's not likely, but when the value spikes (and outruns hardware investment cost) then perhaps there's a way to cheat.
http://www.imponderablethings.com/2013/07/how-bitcoin-works-...