10

From my understanding of Bitcoin, it operates on a P2P network. Having just downloaded a wallet app, I see it is connected to 6 peers. Does the Bitcoin protocol rely on trusting these peers? What does it mean if these 6 peers turn out to be fake, and I'm part of a 'micro-economy' rather than Bitcoin proper?

6

Your understanding is correct. What you describe is known as a Sybil attack, here essentially the p2p version of a man-in-the-middle attack.

In general, Bitcoin requires very little trust, as each peer can check whether new information adds up with the information that was previously gathered. The attacker could use this constellation to relay a transaction to the attacked, e.g. make a store believe that an incoming transaction has been sent on the Bitcoin network, while instead sending the competing double-spend to the network.

However, the attacked could notice that he is not receiving any new blocks from the network (as otherwise the double-spend might be detected early). I.e. the attacked is not part of a real 'micro-economy', but rather just cut off from network updates.

In order to truly create a 'micro-economy', the attacker would have to actually mine fake blocks at the current difficulty in order to pass off false information as true, requiring immense hash-power at his disposal.

However, as one legitimate peer is sufficient to defeat this attack, you can either set your Bitcoin client to connect to certain peers only, or at least force it to connect to two peers that would not cooperate with each other to defraud you, in order to defeat the attack.

Edit:

Actually, I just realized that the Bitcoin.it has a paragraph on the Sybil attack.

  • 4
    Having one legitimate peer is sufficient to defeat this attack. – David Schwartz Jan 24 '14 at 21:41
  • Ah yes, I wanted to write something about that. Thanks! :) – Murch Jan 24 '14 at 22:21

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.