I have been working on the consensus algorithm and while it is fast it has the following problems:
1) There is no way to compensate people for running full nodes.
2) The cost of running full nodes grows with N^2 the number of nodes participating in the consensus process
3) There is no way to reward nodes that participate in consensus to cover the cost of bandwidth growing
4) If you rely on charity, the regulatory risks may result in nodes not proliferating
5) If you do reward nodes participating in the consensus process your costs either grow N^2 or nodes on the UNL have financial incentive NOT to add new nodes to the inner circle.
6) If you rely on indirect benefits then the incentives might not be properly aligned.
My conclusion is that the primary benefit for using the consensus algorithm is automatic failover in the event some nodes go down. I also believed it was more decentralized that BTC but perhaps less so than NXT.
To this end it seems I must strive to achieve the goal of decentralization and thus have a new proposal for implementing TPOS.
1) The "mining" reward will be kept to 1% of transaction fees. We do not want significant resources thrown at this because the only purpose of mining now is to decide on the next block, NOT to secure the network. The cost of mining should thus be very small and amount to an election.
2) Let N be the number of blocks per year
Let M be the money supply at the start of the year
Let m be the money transacted and n be the number of days since it was last moved.
Let CDD be m*n
Let ACDD be the Average CDD per block which can be calculated as N*M/N or M
Let T be the base mining difficulty target (adjusted via moving average)
Let BCDD be the CDD actually destroyed by the block.
IF( BCDD > ACDD ) BCDD = ACDD.
Given the above we can define the target difficulty for solving a block as:
1 + T*(1- BCDD/ACDD)^2
3) The only transactions that count toward CDD are those that reference a prior block in the chain, thus miners will be unable to build secret chains using CDD of transactions produced by regular users.
4) If two blocks are found that extend the same chain, the one with the most CDD wins.
5) If two blocks with the same CDD are found then the one with the higher hash wins.
Results: everyone can mine and attempt to produce a block at some 'base level' that is not perceptible to the user. Someone with a large amount of the share supply would have limited advantage because everyone gets to mine POS using everyone else's transactions and everyone is mining at a base level, say 1% of CPU.
The only thing a 'miner' can do to harm the network is Denial of Service (blocking transactions), but a miner attempting to do this would be at a disadvantage against all of the miners which are including transactions.
So what can someone with unlimited hashing power do... they can still perform a DOS on the network provided they have 100,000 * the number of computers on the network in hash power. Unfortunately for them, the cost would far exceed the fees earned.
Something to think about.
How is that for decentralized?