Author Topic: DPOS almost the same as a mining pool?  (Read 6095 times)

0 Members and 1 Guest are viewing this topic.

Offline onceuponatime


Tonyk is using character assassination to advance his point. This is a form of violence. The pretend conversation is outrageous, and should not be tolerated in an open and free forum. If he is  too lazy to argue his points without the use of violence (character assassination) then he should be relegated to a subforum for persons who want to use those kinds of tactics.

I am reporting this post to the Moderator.

That is f-ing hilarious! I hope you are joking!

Very serious. I have reported the post to the moderator. It is up to the Moderator to agree or disagree with me.

Offline Amazon

  • Hero Member
  • *****
  • Posts: 830
    • View Profile
    • Bitshares Forum
How to prevent someone setting up a voting pool and collect all votes from shareholders, then split the earning among them? More small shareholders would like to join this pool to earn transaction fees instead vote again it. Then the pool will have enough votes to sign several delegates and centralize the power. Am I missing anything?
Forum Donation: PforumPLfVQXTi4QpQqKwoChXHkoHcxGuA

Offline onceuponatime

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).

Tonyk is using character assassination to advance his point. This is a form of violence. The pretend conversation is outrageous, and should not be tolerated in an open and free forum. If he is  too lazy to argue his points without the use of violence (character assassination) then he should be relegated to a subforum for persons who want to use those kinds of tactics.

I am reporting this post to the Moderator.

Offline bytemaster

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.
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline bytemaster

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

will this not alienate voters? If you deny ones vote, you can't force them to vote for someone else. This kinda goes against everything voting stands for. I fear if people aren't allowed to vote for who they want, they will abstain from participating or vote for a lesser delegate which is compromising.

This isn't a political presidential election, people can vote against people as well so if they don't see anyone they can vote for, they just vote against everyone else.  If there is only *ONE* person someone is willing to vote for that is a problem.

It is actually a security concern for one delegate to get a large percentage of the vote because it means it is more difficult to fire them.  We don't want anyone getting too much power. 

If someone really wants more than 2% then they have to run as two delegates.   
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline Simulacra_and_Simulation

  • Newbie
  • *
  • Posts: 8
    • View Profile
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

will this not alienate voters? If you deny ones vote, you can't force them to vote for someone else. This kinda goes against everything voting stands for. I fear if people aren't allowed to vote for who they want, they will abstain from participating or vote for a lesser delegate which is compromising.

Offline G1ng3rBr34dM4n

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

Just a quick heads up, check spelling on "Assumptions" header.

Offline bytemaster

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
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline toast

  • Hero Member
  • *****
  • Posts: 4001
    • View Profile
  • BitShares: nikolai
Very much like a mining pool, I think "signing pool" is a good transitionary term.

Quote
How does one get informed of a delegate not doing a proper job?

How do you get informed about a pool getting too large? Delegates are all watching each other, each delegate has a few people watching, and everyone is incentivized to bring bad delegates to light.

For last question:
Quote
3.2 Centralizing power in a few Delegates

Because each delegate has an equal vote and the top 100 are given equal weight regardless of votes delegated to them there is no ability to concentrate power by acquiring more than 1% of the vote in a single delegate.

It may be possible for a single individual or organization to control multiple delegates in the chain, but this process would involve deceiving a large percentage of the shareholders into supporting sock-puppets.

Even if 51 sock-puppets could be set up their power to disrupt the network would still be limited, quickly identified, and then remedied. Without the barriers to entry caused by proof of work, the honest majority would identify the attack and issue a fork of the code that ignored blocks produced by the attacker. It would be disruptive, but not fatal.
Do not use this post as information for making any important decisions. The only agreements I ever make are informal and non-binding. Take the same precautions as when dealing with a compromised account, scammer, sockpuppet, etc.

Offline Simulacra_and_Simulation

  • Newbie
  • *
  • Posts: 8
    • View Profile
The only difference I see is that the miners aren't wasting energy mining(not getting paid either) and you are mandating 100 operators.

When I pool mine I am delegating my hash power to the pool operator in turn that he/she pays me out proportional to what I put in and there will be no funny business. Generally what I mine is profitable or at least zero sum, where my costs are less than equal to what I am producing through mining.

This is the same as voting for a delegate except zero payout and zero energy costs.

Both are keeping the network going. Both are technically subject to what the miners want to do, change the vote or change pools.

Other questions:

How does one get informed of a delegate not doing a proper job?

If the top 100 vote receivers automatically win regardless of total votes, I can also see a problem where 95%of the votes go to a couple delegates, let's say 10, and then 5% are spread amongst 90 delegates. Popularity exists, see Ypool. Doesn't the minority vote going to a majority of delegates pose a weakness/vulnerability?  Possibly a problem with these delegates getting voted in an out, missing blocks all the while the 10 with 95% are solving most of the blocks and they now become the threat?  The weakness in one end opens opportunity for the others. What if you change the numbers to 1 delegate gets 99% of the vote because he decides to divvy out the transaction fees as vote rewards. The other 99 getting 1% could easily be manipulated right?