Yup - but if when you go to create a new account you can include the public key it must use (this will require a fee to stop spamming) then it wouldn't matter if the same account with a different public key had existed before (and no way to "drain" that account).
The scenario I see is more along the lines of a merchant creates one address each for payment from each of his customers. An attacker watches the blockchain for these accounts. He'll know they're there when the merchant does a sweep of them into the merchant's main account.
The attacker then generates private keys that have public key's whose first 64-bits match those of the merchant's sweep accounts.
When the blockchain pruning event happens, the attacker registers those new public keys.
When an unaware shopper uses one, the money goes to the attacker, not the merchant.
Ok, not practical now because it is too computationally expensive for *current hardware*. But it outlines a potential flaw.
Hm, that's assuming the merchant keeps those accounts empty right? I think a workaround would be that as long as the merchant plans to use that account for his customers, it should never be empty (he asks the client to keep at least 0.01 NXT in there). If the client empties out his account, then the merchant simply generates a new one for the client to use next time and tells him to not use the old one because the client emptied it out.
There are only 44720 different balances possible at the same time, for one billion coins, starting from 1, for integer balances. It's the sum of an arithmetic sequence summing to one billion.
For smallest increase 0.01, it's 447114 different balances possible at the same time, still with 1 NXT minimum balance.
The largest so that the sum is not larger than one billion is is 44720. Therefore, there are at most 44720 different balances possible at the same time. Or 447114 for 0.01 step.
Multiple accounts can have the same number of coins.
I think he means that there is only 447114 permutations of possible balances (at maximum). I assume this is so you can assign a certain index to a particular balance, to save space? I don't know