1

I was thinking of a very specific scenario: Suppose we have a new organization, let's call it "WikiLeaks2", which receives donnations mostly in the form of Bitcoins. Suppose a national government tries to shut it down by disrupting its reception of funds, so they set up a number of miners with the code modified so they check each transaction against a list of black-listed Bitcoin addresses (among them, that of WikiLeaks2) and automatically reject a transaction coming to/from those addresses.

Let's assume this government has successfully set up moles deep within the organization, so any new reception address is known by its agents after a few minutes. Would they need to control 51% of mining power to make it impossible to send funds to such an organization, or would disruption be possible with a fewer percentage?

Which begs the question: who validates the acceptance/rejection of a transaction, done by the miners, is correct? I.e. who validates the validators?

  • Government can blacklist few addresses and ask Miners, PSPs and banks (?) not to process transactions from / to these addresses (?). – vi.su. May 28 '13 at 6:58
4

Would they need to control 51% of mining power to make it impossible to send funds to such an organization

  • If you have less than half of the mining power:
    You control what transactions go into blocks you mine. You can definitely slow down payments to WikiLeaks2. However, you can't prevent payments from going out forever. Other miners will look at the WikiLeaks2 transactions, see nothing wrong with them, and include them into their blocks. You cannot do a 51% attack because the honest nodes, working together, will simply overpower you.
  • If you have more than half of the mining power: (51%)
    You can now prevent everyone else from getting blocks. This means that you can prevent transactions you don't like from getting confirmations forever.

Which begs the question: who validates the acceptance/rejection of a transaction, done by the miners, is correct? I.e. who validates the validators?

Certain network rules are never voted about - For example, transactions must be signed, a block must have a valid timestamp, you can't spend more bitcoins than you have, that sort of thing.

What bitcoin miners do vote about is what should be on this global, shared, ordered list of transactions.

  • 1
    According to David Schwartz's comment to the other answer, even with just 51% a dishonest miner could forcibly get all the mining rewards. After his explanation of why this is so, I think the same could be said of this case: with just 51% of hash-power, a government could effectively deny any transaction to/from a specific list of addresses, should they will to do so, for the block-chains they'd mine without those transactions would, in the long run, always be larger than those with them. Did I understand this right? – Joe Pineda May 30 '13 at 1:04
  • You understand it right. I've edited my answer to make it more clear. – Nick ODell May 30 '13 at 1:42
1

Which begs the question: who validates the acceptance/rejection of a transaction, done by the miners, is correct? I.e. who validates the validators?

To the best of my understanding, a miner is like a transaction sponge that absorbs all transactions it can find nearest to it as it searches for a proper hash. I suspect it is possible for a miner to write software to reject transactions to a list of addresses. And then following the logic develop a line of ASICs to gain enough hash power to ensure they process the majority of blocks thus increasing the turn around time for transaction approvals to wikileaks.

While this seems like a good attack vector on paper, wikileaks could implement software to generate a new address for each donation making the blacklist impossible to implement in practice. Also this attack would be extremely easy to discover. To reliably slowdown transactions enough to make it worth their time, the government would have to control far more than 51% of the total hash power.

Corrected by David, 51% would be sufficient

  • 1
    They wouldn't need to control more than 51%. With 51%, they can ensure no transactions they don't approve of ever get into the block chain and they can earn every single block reward. All they do is only mine after their own blocks. Their chain will be longer than everyone else's put together. – David Schwartz May 28 '13 at 8:05
  • Why can't I add to their blockchain? A coin slightly biased to heads will still flip tails from time to time – Charles Hoskinson May 28 '13 at 12:33
  • 1
    You can, for a few minutes. But since they control 51% of the mining and won't build on your block, eventually they'll produce a longer chain that doesn't include your block. Anyone who relied on a transaction in your block would be a fool and would soon be parted from their money. And since you'll never get your block reward, why would you bother? – David Schwartz May 28 '13 at 14:15
  • That actually makes a lot of sense. It's like a random walk problem with too many steps out of place. – Charles Hoskinson May 28 '13 at 14:47
  • 1
    Yes, miners can configure their clients to control the transactions they accept, which is why the attack you outlined would be valid. By default however, most miners just absorb all transactions nearest them like a sponge to water. – Charles Hoskinson May 30 '13 at 1:13

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.