But maybe since then it became more clear?..
Do u have any ideas how it's better to implement Transparent Forging? The goal is to find an optimum where we can predict few blocks in advance but noone could game the system by preparing such accounts that he would be able to forge a lot of blocks in the row.
Why not have all the forgers constantly throwing around tiny, microscopic amounts of Nxt between each other in order to randomize the account balances?
As I understand it, the basic idea now is that you hash all account balances, that hash basically produces a random number which can be used to pick which account will be forging, correct?
You'd have to expand how many units it can use but what if you expanded the Nxt units so that you could have units of 0.00000000001Nxt.. or whatever, tiny amounts. 2*10^-6 would cost 1 Nxt per year. So I say maybe 1 millionth of a Nxt. Make the hash sensitive enough to that tiny differences between inputs can wildly swing the output. Point is, you guarantee that there will be account balances constantly changing in a way that can't be predicted.
Every block, each forger random chooses how many Nxt to send around and each one sends some tiny random amount them of them to the account of another randomly chosen forger on the network. If a forger has not been sending these tiny amounts of Nxt around, kick him out anytime he becomes one of the top 10 or 100 or whatever forgers in line to forge, maybe also exclude him when choosing who to send that tiny amount of Nxt too. For that matter you only need a few accounts doing this to randomize the accounts balances, and no one can predict which accounts will have which balances.
Then you select the next forger off of the top of the queue, use the hash of a block 10 blocks ago, (after all 10 blocks to confirmation right?) to pick the 10th forger in line, then do it again every block.
Now you only know 10 minutes in advance if you are going to forge and it also only requires losing the ability to forge with Nxt for 10 minutes in advance.