The blockchain will enforce the rule that no delegate be given more than 2% of the vote... transactions that give more are rejected.
More details about how the client automatically identifies misbehaving nodes and votes against them:
http://bitshares.org/documentation/group__dpos.html
Reading this: http://bitshares.org/documentation/group__dpos.html
The following conversion comes to my mind:
‘Why have mining that can be centralized (but requires investment in hardware and electricity to name a few) when a system can be designed that centralizes/puts the fee in the hands/pockets of selected few. Even better why not make sure that those selected few are us (as we are the biggest stakeholders).
Genius up to here right!
We only need to develop a system that hides the true nature of this scheme and appears fair!’ one day BM said to his buddies…
How about much simple (unfortunately) more fair system:
-Every active client/node is rotated (instead of just 100), when its times comes for its turn, it either produce the block or not.
-If such node/client is more than 10-15 sec late, any of the next 50 in line can come with the block. The first one of said 50 that does wins and gets the commission (the average of the last 100 or whatever plus say 5%-10% bonus i.e. 105%-110% of what otherwise the comm. Would have been). The one that produced the block is removed from the ‘in line list’.
This way the next 50 clients that will come to turn in the next 50 blocks can do the work and if: somebody is late, those next 50 will provide the speed for the network;
- there will be no whales advantage.
Additional suggestion: The new #50 in line (#49 and #50) in the case of jumping because of inactive current node), is included as info in the new blockchain – this should be the address with say -the oldest unspent amount, logarithmically weighted by the amount of the transaction, of let say the last 5000 transactions (all prev. if no more than 5000 transaction in the system).
Ignoring the accusations that we are trying to control this thing (trust me, I do not want to be in control)... let me address your proposal very quickly:
1) Avoiding ambiguity about who should produce the next block is key. Your proposal makes it ambiguous when someone misses a block.
2) Blocks would need to be produced proportional to stake not 'active client/node'.
3) Most people don't want to leave their computers on to secure the network, so there is demand for this job to be delegated. Even Nxt is doing this now.
4) When blocks are produced by your method they do not provide equal weight... a block produced by someone with .001% of stake vs someone with 10% has entirely different meanings with respect to the consensus reached. You want approximately equal weights for each block and to have the indirect consensus of almost everyone in a timely manner. Under your proposed approach, the amount of consensus accumulated per block is FAR less and thus the network is more subject to attack.
5) There is no way to prevent bad actors as the block producers have no reputation
6) Highly reliable nodes serve everyone better, especially when it comes to reducing latency and preventing systematic abuse.
As you can see these issues are not easily solved and DPOS is balancing a whole lot of factors.
Invictus Innovations is building
decentralized solutions for centralized problems – this seems not to be the main goal of DPOS.
I will start with point #5 of BM’s which is the most important:
‘5) There is no way to prevent bad actors as the block producers have no reputation’
The solution I suggest is based on the following premises: 95% of all wallets are honest actors. Those are people that just download the standard wallet and start using it – making no modification to any aspect of the way such wallet is supposed to behave (among other things is not trying to gain the system).
Additionally the system by design makes the transactions with the oldest balance holders the most likely to be awarded the right to make a block. What this achieves is one of the most important features of this suggestion. – It strongly de–incentivizes cheating players! Who will make changes to the software and then wait to be having very old balance to have a chance at cheating?
1) Avoiding ambiguity about who should produce the next block is key. Your proposal makes it ambiguous when someone misses a block.
I do not know why it is so important but here is a solution if want my proposal can be changed to the following –“The next 49 in line are listening, if the lock is missed any of them (can) submit the block and the valid one is the one from the highest in line #2>#3….>#50
2) Blocks would need to be produced proportional to stake not 'active client/node'. Now, on this we must fight, I guess! – Why is this necessary – because the proposed system does not have it? I see this condition of yours to serve the only purpose for centralization/keeping the monopoly of the big stakeholders… Elaborate if any benefit for the chain/system is stone and depends on it….
3) Most people don't want to leave their computers on to secure the network, so there is demand for this job to be delegated. Even Nxt is doing this now.
The fact that somebody does it is not an argument, you know better than anybody…
One the other part here is how it works:
Whenever somebody is submitting a transaction s(he) receives a chance to produce a block (and get paid for it). The wallet gives you the chance if want or not to stay connected to the network and be rewarded this chance or no.(here one can add even a second option for the impatient – auto close/disconnect if more than N transactions with better scores are observed).
The idea is that enough nodes will choose to stay active/connected for from several minutes to several hours to get a shot at a commission.
The score of each transaction will be soothing in the form Sc=Age of the transaction balance (in sec) / 3600 /24 * Log ( Transaction Amount)
4) When blocks are produced by your method they do not provide equal weight... a block produced by someone with .001% of stake vs someone with 10% has entirely different meanings with respect to the consensus reached. You want approximately equal weights for each block and to have the indirect consensus of almost everyone in a timely manner. Under your proposed approach, the amount of consensus accumulated per block is FAR less and thus the network is more subject to attack.
As with 3. You have to explain what do you mean here… for now it seems as you are claiming that this system is more unsecure simple because it is not your system (To make it as an analogy people say ‘mining provides security’ without explaining why. You say ‘equal weight and consensus provides security’) In my opinion the design of this system provides security and you are insisting that consensus is needed just to keep the status quo. If really advantage do exists please explain.
6) Highly reliable nodes serve everyone better, especially when it comes to reducing latency and preventing systematic abuse.
Again – unbacked claims. If you ask me this system provides better solution to the attempt of abuse, as well as removing the build in system abuse – i.e. concentrating the fee producing activities in the hands of (in large preselected) few.