My messages in bold. Below is a chat log wherein I describe the potential for a 6-block reorg. Please point out where I am incorrect, as this could be a great learning experience for many forum members (myself included).
Thank you!
[hr]
pillow [03|Jul 08:05 pm]: anyone knows if its possible to broadcast 6 blocks (in a chain) at once to the network?
pillow [03|Jul 08:05 pm]: (they are supposed to replace the main chains latest 6 block)
Chronos [03|Jul 08:07 pm]: yes, you can broadcast any chain at any time. If it qualifies, it will replace the currently-accepted chain.
pillow [03|Jul 08:16 pm]: hm, so if I try to create a 6 block deep reorg locally at my computer, and don’t broadcast it before I’ve been lucky enough to be able to build it, I should be able to reorg if my chain trust is higher the main?
Chronos [03|Jul 08:18 pm]: yes, the problem is that you have to be lucky enough to build a chain with higher trust.
pillow [03|Jul 08:19 pm]: but I can wait until the day I’ve actually succeed and then do it all at once. since I’m not broadcasting my failed attempts I will have lost nothing (besides the forsaken interest)
Chronos [03|Jul 08:20 pm]: you don’t even lose interest. You only lose the opportunity to compound your interest.
pillow [03|Jul 08:20 pm]: gotcha. thats true!
pillow [03|Jul 08:20 pm]: I guess the only thing that stops me from doing this, is that I won’t know in advance if I’ll be able to do it, so I can’t take advantage of the opportunity
Chronos [03|Jul 08:22 pm]: you can take advantage of the opportunity by sending ppc to an exchange like btc-e, buying another coin with them, withdrawing, and then broadcasting your private chain to reverse the payment
pillow [03|Jul 08:22 pm]: but… perhaps if I decide to just sell a whole lot of coins, I might as well just try and double spend them, since I’ve got nothing to lose.
Chronos [03|Jul 08:22 pm]: you can keep the “I pay the exchange” transaction ready to broadcast for when you get lucky, and you have no opportunity cost.
Chronos [03|Jul 08:24 pm]: the problem is the getting lucky part. In order to have higher trust, your private chain needs to be built with a good portion of the total minting coins. (51% not required because you can still get lucky with fewer)
pillow [03|Jul 08:24 pm]: but the exchange will make me wait 6 confirmations and I won’t know until after 6 confirmations, if my attack chain had more chain trust
pillow [03|Jul 08:25 pm]: first I have to send to the exchange, then quickly build the attack chain and get lucky. if im lucky Im good to go. if im lucky, iäve just lost all my coin age.
Chronos [03|Jul 08:25 pm]: you can prepare your chain ahead of time by manipulating the computer clock to simulate the time it takes to make 6 blocks. There’s a 2-hour window of flexibility built into the PPC network code
pillow [03|Jul 08:26 pm]: yes but I wont know for sure that my chain had more chain trust right?
Chronos [03|Jul 08:26 pm]: so you can get lucky and prepare the entire chain relatively instantly, and then broadcast the attack transaction, wait 6 blocks, take money, broadcast your chain, etc.
Chronos [03|Jul 08:27 pm]: I guess if it’s really close, you might not quite have enough trust, but you could just wait until you exceeded the expected trust of the public chain by a margin for error
pillow [03|Jul 08:28 pm]: I see what u mean with the clock drift thing (I think and I guess I can even use it to some extent to increase the odds of hashing to target difficulty).
Chronos [03|Jul 08:28 pm]: yes, you would do that to expand your chances
pillow [03|Jul 08:28 pm]: hm, wait. there is another thing in the way I think
pillow [03|Jul 08:29 pm]: my margin of error would probably have to include not only the 6 blocks, but also the chain trust in the blocks that have been added to main chain while I waited to get lucky
pillow [03|Jul 08:30 pm]: because of the stakemodifier, I cant just append my attack chain to any point in the blockchain. i would have to select a point to fork at, and run with that
pillow [03|Jul 08:31 pm]: then again 1 block 10 minutes… long time to build blocks
Chronos [03|Jul 08:31 pm]: in order for this to work, you would have to append your attack chain to the latest point. If you point at an old fork, you’ll need to replace more than 6 blocks to exceed chain trust.
Chronos [03|Jul 08:32 pm]: tell me about the stakemodifier. Why couldn’t you just keep a node online, trying this attack against each new chain as public blocks are broadcast?
pillow [03|Jul 08:34 pm]: i’m unsure of how the stakemodifier works, but it uses 9 days worth of blockchain data that it samples 64 bits from using some sort of selection. the protocol enforces that you do this (its deterministic) and if you don’t do it properly the block you build wont apply
pillow [03|Jul 08:34 pm]: i think
pillow [03|Jul 08:34 pm]: i guess
pillow [03|Jul 08:35 pm]: i speculate
pillow [03|Jul 08:35 pm]: u get the point
Chronos [03|Jul 08:35 pm]: since you have a node online, you could attempt your attack on each new block as it comes out. You can calculate your own stakemodifier to match what the network requires.
pillow [03|Jul 08:36 pm]: you mean like replacing the block I get with my own?
Chronos [03|Jul 08:36 pm]: the limiting factor is your coin age. If 10% of the network is minting, the difficulty will be such that you need about 5% of all coins (50%) in order to attack well.
Chronos [03|Jul 08:37 pm]: That is currently about 1 000 000 PPC. The holders of this many PPC could attack easily, and we don’t know who they are.
Chronos [03|Jul 08:37 pm]: so far, they have not attacked, supposedly because they want PPC to grow in value. This may not always be true, such as when it is possible to short the market.
pillow [03|Jul 08:38 pm]: hm, I think what gets to me is that you can do this trial run for free without any penalty (besides missing out on compound interest). It implies that I don’t need 1 000 000. I only have to be very lucky. like a lottery ticker, for free. if I dont win i dont lose. if I win, I win. right?!
Chronos [03|Jul 08:40 pm]: right, so the thing stopping this right now is that it’s technically difficult to build a client that attempts this attack. Once it is built, users might prefer it.
pillow [03|Jul 08:41 pm]: a competing coin might develop this and sell it in exchange for their own coin.
[hr]
Thoughts?