2

There are currently about 7000 nodes in the Bitcoin network. The security rests on the fact that someone adding nodes would have have to expend CPU power to hash transactions.

What prevents someone from creating a large number (e.g. 10,000 to 20,000 or more nodes) and then execute the following attack.

The objective of the bogus network would be to appear to anyone, except for the legitimate nodes, as producing legitimate verification of Bitcoin transactions without actually doing the work. While the legitimate network would know something is wrong; to those outside it would appear that a majority were approving the transaction.

The bogus nodes run a stripped down version of Bitcoin which accepts new blocks from other bogus nodes, but not new legitimate ones. The bogus software is designed to make the blocks look as real as possible, chain together, but without requiring the true proof of work. The nodes could be bots on compromised computers.

The nodes might do something like:

1) Gather any transactions sent to the network, including ones with invalid signatures and perhaps other invalid information, including thefts by the schemers.

2) The nodes in concert generate the block header and hash, by hashing once with some pre-aggreed upon nonce. They don't bother to do the repeated search.

3) All the bogus nodes accept the new block, send their acceptance out to the network and start creating the next block

6

You're essentially talking about a "fork" - or a separate chain. It wouldn't and couldn't interface with bitcoin - merely work (at best) alongside it. Exchanges, merchants, and official bitcoin wallets could not be fooled into using this alternative. Someone would have to download a compromised client. As each block refers to the previous one, there would be no way for them to "inject" fake blocks in the way.

  • Wouldn't a client generally not check the entire blockchain? Do clients know the current level of difficulty, load recent block headers and rehash them to prove that the hash value is small enough to pass the proof of work test? – Jonathan Harris Jan 27 '15 at 12:13
  • 2
    @JonathanHarris: Clients do indeed check all of this. They also verify the signatures on all the transactions in the block. – Nate Eldredge Jan 27 '15 at 13:42
1

There is no acceptance to send to the network. Every node makes its own, independent decision of what blocks to accept based on what chain contains only valid blocks and has the most proof of work. This is the entire rationale behind proof of work and the reason it works.

The rule is this:

1) Invalid blocks are always ignored. Blocks must have only valid transactions. Blocks must chain to another valid block that itself chains only to valid blocks.

2) Among valid blocks, the one with the most proof of work behind it is the one a client considers the tip of the blockchain.

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.