Hello guys,
Despite the lack of the white paper let's discuss the possible weaknesses of this coin.
Probably here is potential vulnerability:
In PoW currency you can remine a block to build a longer chain. In Nxt the order of generating accounts is determined, you can't create a long chain that contains blocks generated solely by you. With 51% of the stake the odds to generate a longer chain with 10 blocks are less than 0.1%. If someone buys a car with NXT they can wait a little bit longer to counteract even 90% attack.
I like that you plan to make things deterministic. My ideas for pure PoS have also been deterministic.
There is a potential problem here though.
How do you deal with AWOL coin-owners? If I can't make a winning chain with 51%, then can the chain continue at all if 49% of coins are lost?
Looking forward to the details so I can see how you address this and other issues.
It's a good chance to tell the details...
Each block has "generationSignature" parameter. An
active account signs "generationSignature" of the previous block with its private key. This gives 64 bytes which are hashed with SHA256. The first 8 bytes of the hash gives a number (I call it a "hit"). The hit is compared to the current "target" (64bit number). If the hit is lower than the target then next block can be generated.
The target for each account is proportional to the balance. Someone holding 1000 coins gets a 50 times bigger target than someone with 20 coins. Thus the owner of 1000 coins will generate 50 times more blocks than the owner of 20 coins (in the long run).
The target is not constant, it grows each second passed since the timestamp of the previous block. If noone generated a block on the first second then the target becomes 2 times bigger and so on. The base target is the target on the 60 second mark. If there is only a few active accounts then after a long time someone will generate a block because the target will become very big. If you open the client and log with any funded account you can see a ticking timer in BLOCKS widget. It shows when the target will become greater than your hit.
So, what does it mean?
If I have two addresses with A and B coins and the maximum possible hit value is N (2^64) then probability that I will generate new block is
1 - (1-A/N)(1-B/N)=(A+B)/N - AB/N^2. But if I join these two addresses the probability of generating new block becomes (A+B)/N.
It gives serious incentive of joining your NXT with somebody else NXT (since you and other one will gain strictly more than separately). Apparently this implies of appearing one megapool that will control much more then 50% of all NXT.