1. I thought the nothing-at-stake problem applied to more than just the 51% scenario... that an attacker with even 10, 20, 30% could do some damage at no cost,
and that's why its such an issue.
It is but then the attacker would operate differently. Since there is no cost he would simply support both chains. Yes he is working against himself but with a minority of the hashrate the probability of producing a longer chain of x blocks was already <50%. Still the odds are 0% and he isn't penalized because he is supporting the "main" chain (chain most likely to remain the longest). So he loses nothing, gets no penalty and some % of the time will be able to out mine/mint the main chain and perform a double spend at no cost. Granted the odds may be low (they are low for Bitcoin as well) if his share of the stake is low but say you got away with a double spend once a year with no cost or risk. Other than ethics why wouldn't you try? Attempt 10,000 double spends and if 9,999 are unsucessful and 1 is the fact that there was no cost means you are ahead.
2. I thought NXT's deterministic system to decide the next forger of a block is easier to attack by orders of magnitudes when the attack could come
from any block, versus being limited. Its not that the attack would give up, but they would have to try harder (the computations should rise in
difficulty at least to some degree)
I have no idea what you mean by "any block". An attack can come from any block. An attacker can continue to extend multiple chains extending from multiple blocks all in parallel and if any of them by "luck" end up longer than the main chain they will be published. If the attacker has a minority of the effective stake (even when boosted by computing power), the chance of success if low. That means the chance of penalty is high and it would be optimal to build on the main chain as well.
The same concept applies to selfish mining. A minter produces a valid block and he will be penalized if he doesn't publish it on the main chain however the block doesn't allow him the chance of forging the next block so he hangs on to it for a while. If prior to him finding a better block another miner publishes a block at the same height that is inferior then he publishes his block as well and suffers no penalty. If prior to another miner finding a better block he finds a block which allows him to forge the next block he publishes that instead and then immediately attempts to solve the next block to double his reward.
On point 1, yes I agree...thats what I thought but you kept saying "51% 51%" so i wanted to be clear. thx.
On point 2, not sure if you still don't get what I mean or my thinking is just convoluted...
If the main chain says on block 1001 that Jonald is penalized, then how can I diverge
from the main chain on block 1002? I would have to have to my attack diverge from
the main chain on block 1000.
There's some divergence point in any attack (unless we're going to tear down
the chain back to the genesis block)... up to that point, the main chain and
the false chain are the same and then they diverge.
So, what i'm saying is that divergence point must be prior to the penalty.
Because if not, (if its after the penalty), then the protocol rules wouldn't
allow it. They wouldn't allow me to diverge from block 1002 because
block 1000 already says I'm not authorized to build any blocks.
Am I making any sense whatsoever?