Tacotime: I think I may have thought of an exploit to the hash rotation system. In your paper you describe the hash of the last 8 blocks being being modulus to derive the hash type of the next block. The chance for each hash type to be selected will be quite equal if all block are submitted to the network, but if an attacker is willing to check the blocks they mine for what hash they will allow next and continues working on resolving the block until they get a solution that will allow repetition of the same algorithm. It is thus a simple matter of performing on average X times more hashing (where X is the number of hash types selected amongst by modulus) to create a block-chain that is composed of only one hash algorithm. As your planning to mix SHA and Scrypt it seems a fairly trivial process for the existing ASIC's to attempt to monopolize the chain in this way, and indeed they all have an economic incentive to due so and no direct collaboration is necessary as it would be the optimum strategy.
The number of prior blocks that are hashed together to create the hash that's modulus will be used is not material in preventing this kind of attack, as the changing of just 1 small part of a hash input will radically change the result and the modulus then gives a perfectly proportional distribution of all the hash options. It is effectively no more secure then hashing each block to determine the next hash, the only defense is to increase the number of hash types used or to mandate a rotation of hashes by modulus of the block height.
I've been aware of such an attack, but keep in mind your following statement:
but if an attacker is willing to check the blocks they mine for what hash they will allow next and continues working on resolving the block until they get a solution that will allow repetition of the same algorithm.
The attacker must now lose block rewards in order to manipulate the blockchain, which seems very unlikely (but possible). This is actually why the last 256 bits of the block header hash are chosen for use as an in chain entropy source, because manipulation would require a vast amount of resources and additionally the discarding of block rewards.
Additionally, all 8 hash types must be used at least once per cycle of 8 blocks -- the best you could hope to achieve would be to sort them in a way that appeals to you. Alternatively, you could just arrange all 8 hashing algorithms in the same order and avoid randomization. Correspondingly, all 8 difficulty ranges of N must also be in place; the best an attacker could achieve is the minimum N values for each range eg 512, 768, etc.
The number of prior blocks that are hashed together to create the hash that's modulus will be used is not material in preventing this kind of attack, as the changing of just 1 small part of a hash input will radically change the result and the modulus then gives a perfectly proportional distribution of all the hash options. It is effectively no more secure then hashing each block to determine the next hash, the only defense is to increase the number of hash types used or to mandate a rotation of hashes by modulus of the block height.
This is why in the wiki there are bits taken from a very large number of block header hashes for ticket generation/lottery hash selection. This will be addressed in the next edition of the paper.