Post
Topic
Board Development & Technical Discussion
Re: The way how to double protection bitcoin network against 51% attack
by
casascius
on 24/12/2011, 03:23:33 UTC
My service would essentially be to offer a tiebreaker to choose the more legitimate of two competing blocks, each hint I sign would be open to scrutiny.  If I start publishing crap (for example, I am favoring a revision of a block that contains an obvious double spend against an earlier revision of that same block, or condemning a block with perfectly valid transactions, or am attempting to roll back several blocks at the same time without a flamingly obvious well-known good reason), people would see this, they would ignore me and go elsewhere for the same service.
But it would take hours, if not days for enough people to notice and start ignoring you.  In that time a lot of damage would be done.

The only people that would matter the most are those who are mining, because the point of my service would be to hint which of two competing block chains to prefer in the event of a conflict/chain reorg, both of which would have to be credible (in the sense that they meet the difficulty requirements).  Most people aren't solo mining, they don't count for much.  I think even a minor chain reorg that contained a double spend conflict would already catch someone's attention today, somewhere.  News would spread fast.  I would have to do is alienate a few pool operators, and I'd be history, the same way if I started selling bogus Casascius coins.

Let's just say I was totally rogue, and I signed whatever the hell I pleased.  As long as I only signed one version of a block at any given height, and committed to always sign it within 4 blocks of having received it, it shouldn't really matter what I sign.  That's because to enable a double spend, I'd have to convince the network to discard a chain of at least 6 blocks (assuming that's the threshold for confirmation) and replace them with something better.  That's impossible if I'm committing to signing valid-looking blocks sooner as a condition of my signature stream being valid.

I would need to BE the adversary, or under the control of the adversary, to sign the wrong block stream.  And remember, no one would want or need to subscribe to my service during times of network peace - I'd only be a defensive countermeasure available to those who are actively fighting the attack.  Assuming I did a good honest job, others would see the value of making my service redundant, and then the assumption that 11+ other people might be doing the same thing for the good of the network wouldn't seem so silly as someone suggested.