Author Topic: RDPOS - Recommended Delegated Proof of Stake  (Read 20636 times)

0 Members and 1 Guest are viewing this topic.

Offline donkeypong

  • Hero Member
  • *****
  • Posts: 2329
    • View Profile
Good! We needed something a little more automatic, I think. This will be easier for most folks to follow.

Offline santaclause102

  • Hero Member
  • *****
  • Posts: 2486
    • View Profile
Quote
Giving it a different name (RDPOS) isn't a good idea.  You guys had problems with the weird BitShares X branding.  Now we'll have RDPOS and DPOS.  Explaining how RDPOS improves anything will not be an easy sale.  In fact, "recommended" psychologically frames the whole process negatively in terms of what crypto people are wanting.
totally agree marketing wise. Just leave the name DPOS.

Quote
The basic problem is that the motivations of stake holders are not the same for Delegates.  Delegates are in it to profit off transaction fees by being elected.  Users are in it to profit of appreciation or the burn rate.  Delegates aren't necessarily looking after users.
That is a general problem whenever you delegate something that is not really solvable http://en.wikipedia.org/wiki/Principal%E2%80%93agent_problem You can only try to optimize incentives. Gamey, where do you see potential for optimizing incentives and where do you think incentives (incentives that are trying to align the interests of the two different groups like shareholders have the right to vote)

Writing the above, wouldn't it be possible to mimic corporate incentive structures: Executives are getting paid with shares but can only sell the shares after a few years. Also the pay (with good incentive strucures) is decoupled from the development of the business sector.  Practically that would mean: Delegats are paid in bts x that have a time lock of say half a year which incentivizes to act in the long term interest of the system + it they get less bts x in case the overall bitcoin market developes well. The latter can prob. not be hard coded.

Quote
Delegates will provide a self-serving slate that end-users will not easily be able to discern.  In addition, we may end up with a lot of nastiness. "Such and such was removed off slate GOOD GUYS for petty reason #4923".  It just won't look good.  You are centralizing things on different levels, allowing more gamification of the system.
Interesting comment! Well worth thinking about. Summary:
- delegates can provide self serving slates. I think that would be easily obvious. And if he creates a lot of names that are not obviously his name but operated by him. All those strangers would not be very trustworty anyway.
- "Such and such was removed off slate GOOD GUYS for petty reason #4923" <- needs un-emotional discussion style, true!
- "gamification" (ways to game the system) - in which way?

Having read gamey's good post I think the biggest problem is the principle agent problem: If shareholders do not invest in informing themselves, it would be possible for delegates to collude. Problem before: Lack of information and potential in-activeness of shareholders -> Problem now: Principle agent problem: Information imbalance (delegates and slate selectors have a lot if internal information) and personal relations between delegates, that will form to a certain degree, increases the possibility of corruption. Overall I still think it is a good suggestion that brings more positives than negatives.

How would the compensation model for "slating" look like?

In the spirit of specilization, should be "slate selectors" do only the slating job and not run a delegate themselves? On the other hand, slate selectors will be good judges only if they can run a delegate themselves... 
« Last Edit: July 24, 2014, 02:14:31 am by delulo »

Offline BTSdac

  • Hero Member
  • *****
  • Posts: 1219
    • View Profile
  • BitShares: K1
Client picks their own slate, they just use the recommendation of other users (and delegates) to do it.
1.  if every translation with 101 voting, does it will increase size of block.
and how to reduce the bloat of chain
« Last Edit: July 24, 2014, 01:57:13 am by BTSdac »
github.com :pureland
BTS2.0 API :ws://139.196.37.179:8091
BTS2.0 API 数据源ws://139.196.37.179:8091

Offline bytemaster

Client picks their own slate, they just use the recommendation of other users (and delegates) to do it.
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 BTSdac

  • Hero Member
  • *****
  • Posts: 1219
    • View Profile
  • BitShares: K1
Quote
Quote
7) We can enable "down votes" that simply remove delegates from the "recommended set"
That means I can say I wanna vote for slate 1 except delegate 13 on that list?

Yes.

A delegate slate is 303 bytes, a slate ID is an 8 byte hash of those 303 bytes.  The fewer unique combinations of delegates the fewer 303 byte hashes.


Your wallet will allow you to "follow" as many delegates / non-delegates as you like and will combine the slates of all delegates, rank the delegates with the votes from those you are following and then select the top 101.    A delegate approved by the most others is most likely to be included in the top of your list.
vote a slate directly or clients of user according to the slate select the delegates to vote
github.com :pureland
BTS2.0 API :ws://139.196.37.179:8091
BTS2.0 API 数据源ws://139.196.37.179:8091

Offline bytemaster

Quote
Quote
7) We can enable "down votes" that simply remove delegates from the "recommended set"
That means I can say I wanna vote for slate 1 except delegate 13 on that list?

Yes.

A delegate slate is 303 bytes, a slate ID is an 8 byte hash of those 303 bytes.  The fewer unique combinations of delegates the fewer 303 byte hashes.


Your wallet will allow you to "follow" as many delegates / non-delegates as you like and will combine the slates of all delegates, rank the delegates with the votes from those you are following and then select the top 101.    A delegate approved by the most others is most likely to be included in the top of your list.
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 BTSdac

  • Hero Member
  • *****
  • Posts: 1219
    • View Profile
  • BitShares: K1
What happened to the idea of having automatic votes based on past performance as default?

Light weight nodes have no means of independently verifying past performance and even evil nodes can appear to be performing well.
Light weight nodes can just vote a round, a around include 101 delegates, the delegate who miss produce block in this round can not get the voting.
1.if a delegate cannot produce block in a round ,he cannot get the voting, so encourage delegate use high hardware ,high speed network , no power off  7*24 hour
2.a round was included in chain , so it also can reduce the bloat of chain.
github.com :pureland
BTS2.0 API :ws://139.196.37.179:8091
BTS2.0 API 数据源ws://139.196.37.179:8091

Offline santaclause102

  • Hero Member
  • *****
  • Posts: 2486
    • View Profile
One of our major challenges is making voting easy for the average person who doesn't have time to follow 101 different delegates.  For this reason we are going to make voting even easier:  you can delegate your selection of delegates to a single delegate.   How it works is this:

1) Every delegate may optionally specify a slate ID as part of their public data.  This slate ID identifies up to 101 delegates supported by that delegate.
2) Every user can select one or more delegates to approve of
3) The wallet will automatically combine the public slates of the delegates that user approves of to produce their votes.

Benefits:
1) More people voting with the same slate ID increases privacy
2) The default wallet can hard-code the developers own account as the default recommendation
3) Delegates are now competing not just on pay-rate, but also on how well balanced their selected slates are.
4) Users still have to transact to update their votes so they don't give up control of their votes, they merely have auto-recomendation.
5) More similar slates reduce block chain bloat.
6) Lobbying to become a delegate can now be focused toward existing delegates for endorsement. 
7) We can enable "down votes" that simply remove delegates from the "recommended set"

This is no more centralized than the current system and in-fact, encourages decentralization because delegates compete on making solid recommendations that include other delegates. 

With this in place there is no need to charge extra for not voting.
This is just great!!  +5%

The big structural benefit I see is that it makes use of the social net the delegates now have to form.
The discussion has shown that the byzantine's general's problem is not completely solvable. Economies of scale and uneven distribution of stake lead to centralized systems. The general has to trust the few miners/frogers/delegates even if they are (well) incentivized to be honest.
What is added with your suggestion to the overall system is "social control" if you will: Delegates have to know each other. And the pressure to be honest is much stronger than before, because all delegates have to know each other and are not good delegates if they miss judge.
In other words, further specialization: It takes the judging work away from the shareholder and gives it to specialized delegates. Delegates specialized on this can make far greater due diligence than shareholders ever could! They can get to know the delegates in person etc...

One thought I had: There could be statistics about the quality of a slate of delegates (up time etc.). But that can be very misleading because the general trustworthyness apart from all technical parameters can not be measured. And this is equally important.

There could be statistics though that say something about how different two slates are. The more different the better because it reduces risk (in case it is possible to vote for more than one slate).

Can I select only one slate from one delegate? I think it would reduce the potential for catastrophy if shareholders can vote for more than one slate. For example: I vote for 2 slates, then 50% of the votes are distributed among delegates from slate one and 50% of the votes are distributed among delegates from slate two. This makes the system less vunerable to misjudgements of single delegates.

Are delegates compensated extra if people select their slate? I think that would make sense.

Quote
7) We can enable "down votes" that simply remove delegates from the "recommended set"
That means I can say I wanna vote for slate 1 except delegate 13 on that list?

Quote
5) More similar slates reduce block chain bloat.
How?
« Last Edit: July 24, 2014, 02:18:24 am by delulo »

Offline bytemaster

What happened to the idea of having automatic votes based on past performance as default?

Light weight nodes have no means of independently verifying past performance and even evil nodes can appear to be performing well.
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 AdamBLevine

  • Sr. Member
  • ****
  • Posts: 492
    • View Profile
    • Let's Talk Bitcoin!
So long as the incumbents can't insulate themselves, I like the idea. 

I wrote about a proposed system I called Politik that is essentially delegated democracy
http://letstalkbitcoin.com/blog/post/http-labshumintis-politik-
Email me at adam@letstalkbitcoin.com

Offline arkanaprotego

  • Newbie
  • *
  • Posts: 11
    • View Profile
What happened to the idea of having automatic votes based on past performance as default?

Offline gamey

  • Hero Member
  • *****
  • Posts: 2253
    • View Profile
It is like political parties.  I can't see anyone seriously argue this doesn't increase centralization.

The guy who mentioned Ripple is off base, but that is the criticism we are going to see.  This definitely has upsides, but meh.

Giving it a different name (RDPOS) isn't a good idea.  You guys had problems with the weird BitShares X branding.  Now we'll have RDPOS and DPOS.  Explaining how RDPOS improves anything will not be an easy sale.  In fact, "recommended" psychologically frames the whole process negatively in terms of what crypto people are wanting.

The basic problem is that the motivations of stake holders are not the same for Delegates.  Delegates are in it to profit off transaction fees by being elected.  Users are in it to profit of appreciation or the burn rate.  Delegates aren't necessarily looking after users.

Delegates will provide a self-serving slate that end-users will not easily be able to discern.  In addition, we may end up with a lot of nastiness. "Such and such was removed off slate GOOD GUYS for petty reason #4923".  It just won't look good.  You are centralizing things on different levels, allowing more gamification of the system.
I speak for myself and only myself.

Offline CLains

  • Hero Member
  • *****
  • Posts: 2606
    • View Profile
  • BitShares: clains
Very interesting proposal! I'll need to think some more about this. Btw,

Quote from: Sergio Lerner
The only way to give a theoretical solution to the mining centralization problem is by forcing miners to use real identities, and people vote/trust on those. This is because with anonymous mining all miners could be controlled by a single party. Having real identities implies legal liabilities and users trust, which in turn implies centralization (institutions, pool, companies) to reduce personal risks and provide higher trust. So it's a paradox. Decentralization looks more like Ripple paradigm than Bitcoin paradigm.

Do we still have this guy around here? I'd love to see him comment on some of these things.

Offline 8bit

  • Full Member
  • ***
  • Posts: 56
    • View Profile
Can I delegate my vote to non-delegates? Building a quality slate seems like a good way to convince the community that you're dedicated to bitshares.

Can I have votes that I personally make take priority over those I delegate my votes to? So for example, I vote for 5 people, and then subscribe to a slate of 101 people. Will the system vote for my 5, and then bump out 5 of the 101 randos I just signed up for?

Can I 'block' delegates? So, for example, I subscribe to a slate containing the delegate doucheBagKyle, but I have doucheBagKyle blocked, so I don't vote for him even though I just subscribed to a slate containing him.

If yes to the above, can people make slates that block people, rather than vote for them?
Code: [Select]
wallet_approve_delegate eightbitA VOTE FOR EIGHTBIT IS A VOTE FOR CRUDE DICK ART

Offline BTSdac

  • Hero Member
  • *****
  • Posts: 1219
    • View Profile
  • BitShares: K1
Hello bytemaster
1.common user vote a round ,this round include 101 delegates , it mean this user vote the 101 delegates in this round
2. the delegate that miss block in this round cannot get the voting , or get the reduced voting
« Last Edit: July 24, 2014, 12:09:02 am by BTSdac »
github.com :pureland
BTS2.0 API :ws://139.196.37.179:8091
BTS2.0 API 数据源ws://139.196.37.179:8091