Author Topic: All problems with DPoS solved with one easy change  (Read 10409 times)

0 Members and 1 Guest are viewing this topic.

Offline giant middle finger

  • Full Member
  • ***
  • Posts: 99
    • View Profile
correct, there is a sweet spot, and if we set these as voting parameters, then we will surely find it, in the same manner that we will find the sweet spot for total witnesses.

Offline Empirical1.2

  • Hero Member
  • *****
  • Posts: 1366
    • View Profile
Good witnesses won't want to post a lot of collateral due to either not having it or opportunity cost. https://en.wikipedia.org/wiki/Opportunity_cost

For example you might want to loan that BTS out on Poloniex/internal market instead.

The $300 per month isn't a big incentive relative to costs and work a witness puts in, so the only people who will see significant opportunity in tying up a lot of collateral to become a witness may be people that wish to harm BTS.
(Possibly profit from a highly leveraged short elsewhere for example or simply be a .gov)

So I'm not a fan of the collateral bid system yet.
« Last Edit: September 25, 2015, 03:22:20 pm by Empirical1.2 »
If you want to take the island burn the boats

Offline giant middle finger

  • Full Member
  • ***
  • Posts: 99
    • View Profile
Why wouldnt you lock as long as you are witness? You remove witness status to get collateral back.

Because you don't have any idea how long you are going to be a witness.  When we say lock, we mean locking it in an unacceptable smart wallet that is programmed to only give it back after a certain amount of time that you decide prior to locking.

If you lock 1000 away for 6 months, then I can lock 1000 away for 7 months, and I get the votes.  This promotes political activity, and healthy competition.  Now you must lock more away to compete with me for the apathetic vote. 

Maybe the apathetic vote should only apply to 50% of the total number of allowable witnesses!?
« Last Edit: September 25, 2015, 03:06:57 pm by giant middle finger »

Offline giant middle finger

  • Full Member
  • ***
  • Posts: 99
    • View Profile
And if someone locks up 1000 BTS for 1000 years?

The algo curve drops off after the length of a lifetime.  Draw the curve to fit the process.  Simple.

Offline jsidhu

  • Hero Member
  • *****
  • Posts: 1335
    • View Profile
Why wouldnt you lock as long as you are witness? You remove witness status to get collateral back.
Hired by blockchain | Developer
delegate: dev.sidhujag

Offline Method-X

  • Hero Member
  • *****
  • Posts: 1131
  • VIRAL
    • View Profile
    • Learn to code
  • BitShares: methodx
The algorithm should place more weight on the length of time that the funds are locked up for.

For example:

Poloniex signs up to be a witness and locks up 10,000,000 BTS in a smart wallet that is inaccessible for 1 month (before transferring automatically to a wallet accessible to them).

I sign up to be a witness and l lock up 10,000 BTS for 30 years (similar smart wallet).

The default, apathetic, non-vote goes to me and not them.

Dig?

The risk is not only money but time.  Someone who locks up 10,000,000 BTS does not deserve to get the default apathetic votes unless it's for a long time.

And if someone locks up 1000 BTS for 1000 years?

Offline giant middle finger

  • Full Member
  • ***
  • Posts: 99
    • View Profile
The algorithm should place more weight on the length of time that the funds are locked up for.

For example:

Poloniex signs up to be a witness and locks up 10,000,000 BTS in a smart wallet that is inaccessible for 1 month (before transferring automatically to a wallet accessible to them).

I sign up to be a witness and l lock up 10,000 BTS for 30 years (similar smart wallet).

The default, apathetic, non-vote goes to me and not them.

Dig?

The risk is not only money but time.  Someone who locks up 10,000,000 BTS does not deserve to get the default apathetic votes unless it's for a long time.

There should be a floor, or minimum (time and money), Like you must lock up at least 100,000BTS for 2 years in order to even be eligible to get the apathetic non votes.  Because if you do go through with this, then these "money witnesses" will get substantial votes.  I hope you realize this.  In fact, we might want to put a limit on the total number of witnesses that these money votes are automatically applied to (certainly not 100%), such as 25% or 50%.  That way the money votes have influence, and power, but can't take over the system entirely.

This logic is very similar to the "burn your BTS for more voting power" discussion.

« Last Edit: September 25, 2015, 03:08:44 pm by giant middle finger »

Offline Empirical1.2

  • Hero Member
  • *****
  • Posts: 1366
    • View Profile
I may not be understanding this, but how does this prevent exchanges from voting with their stake.

because they would not be able to transfer funds when customers made withdrawal requests, since the customers funds would be locked as collateral... except they are voting with only a percentage of customers funds and operating their exchange as a fractional reserve.... (not that they don't have experience on that :P)

Exchanges usually have the majority of their funds in a cold wallet they rarely have to access anyway.

So I don't think this prevents much there.
If you want to take the island burn the boats

Offline liondani

  • Hero Member
  • *****
  • Posts: 3737
  • Inch by inch, play by play
    • View Profile
    • My detailed info
  • BitShares: liondani
  • GitHub: liondani
I may not be understanding this, but how does this prevent exchanges from voting with their stake.

because they would not be able to transfer funds when customers made withdrawal requests, since the customers funds would be locked as collateral... except they are voting with only a percentage of customers funds and operating their exchange as a fractional reserve.... (not that they don't have experience on that :P)
« Last Edit: September 25, 2015, 02:25:42 pm by liondani »

Offline Empirical1.2

  • Hero Member
  • *****
  • Posts: 1366
    • View Profile
In the current system, the top 51% of delegates have at least 322 million BTS (>12.88%) voting for them.

The cost of acquiring that amount of stake is substantial. (It would be hard not too push up the price even if purchased slowly) More substantial is the loss you would take trying to sell all it rapidly after having voted in your bad delegates but prior to an attack.

With 2.0 features that will make voting easier the stake required to attack BTS in this way may increase even further.

----

Witnesses are people with some technical ability, demonstrated commitment too and interest in BitShares, possibly geographically diverse and mildly incentivized by $300 per month. They don't necessarily have a large stake or would they be willing to use it as collateral because of the opportunity cost.

If I were to guess the average collateral bid from good delegates could be less than 500 000 BTS, & become even less as the CAP increases. What do you think their average collateral bid would be?

So in a 31 witness system, 8 million BTS may be all that's required to get 16 bad delegates automatically voted in by apathetic voters which we know outnumber active ones.

So the initial outlay and the overall cost of the attack appears substantially less with your model?

(The amount an average new witness has to put aside would stay fairly constant in $ terms, which means it would become less and less of a BTS % as the CAP increased, meaning over time it would become relatively cheaper and cheaper to attack BTS with a collateral bid system, unless you kept increasing the amount of delegates.)





« Last Edit: September 25, 2015, 02:07:14 pm by Empirical1.2 »
If you want to take the island burn the boats


Offline puppies

  • Hero Member
  • *****
  • Posts: 1659
    • View Profile
  • BitShares: puppies
I may not be understanding this, but how does this prevent exchanges from voting with their stake.
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline r0ach

  • Full Member
  • ***
  • Posts: 93
    • View Profile
I like the system where witnesses put up collateral, and then if they attack the network their collateral is
burned.  If they dont ever attack the network they can later cease to be a witness and reclaim their BTS.

This makes attacks on the bitshares network costly and also deflationary to BTS.


If the system goes wrong and punishes a truly innocent delegate at some point, and the community agrees this is what has occurred, we can always vote in a worker to repay that burned BTS.  The net effect would be no change in BTS supply.

Like I said in the edit from my post above, that's kind of a Rube Goldberg approach compared to mine.  There is no need for an automated punishment in a bid system, only a flat rate system needs that.

Offline Ander

  • Hero Member
  • *****
  • Posts: 3506
    • View Profile
  • BitShares: Ander
I like the system where witnesses put up collateral, and then if they attack the network their collateral is
burned.  If they dont ever attack the network they can later cease to be a witness and reclaim their BTS.

This makes attacks on the bitshares network costly and also deflationary to BTS.


If the system goes wrong and punishes a truly innocent delegate at some point, and the community agrees this is what has occurred, we can always vote in a worker to repay that burned BTS.  The net effect would be no change in BTS supply.

https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline r0ach

  • Full Member
  • ***
  • Posts: 93
    • View Profile
With tendermint a block producing node that locks up collateral gets his collateral burnt automatically if he does something wrong. I just have a rough overview... tendermint.com

I haven't looked at tendermint at all yet personally.

edit:  Just looked at Tendermint.  I think Tendermint is more of a Rube Goldberg machine approach than mine.  With a collateral bid system, there is no need to do things like destroy capital if the network forks.  Something like that would only be required in a flat rate system.

Monsterer asked me how this system was different than standard proof of stake, and I think I explained it pretty well in the quote below:

You still have a deterministic number of delegates.  A flat rate collateral system only puts an upper limit on number of sybil nodes, while a bid system vastly increases the potential cost.  If there were 101 delegates, I would need to perform a sybil and impersonate 51 units then outbid everyone else with all of them.  Cost to attack becomes somewhat exponential instead of linear.  If scaled to 500 delegates, even more so.  My capital is also locked while running as a delegate, unusable for voting, so that locked capital can't be used to vote for each other either.

He then rationally states that cost to attack doesn't increase without removing manual voting.  Here is my explanation for that:

My original proposal was that the system would be automated to vote for highest collateral bids by default setting.  It would only revert to the current system if users exercised the ability to manually vote.  If you wanted that increased cost of attack, you would have to remove the ability to manually vote.  I made the proposal the way I did because I'm not sure of everyone's consensus on removing manual voting, even though manual voting is probably a negative to leave in.  Due to voter apathy, the system would most likely always run solely by collateral bids.  At that point you have to think, why leave voting in at all? 

I feel Bytemaster is too attached to voting so I had to make the suggestion the way I did as a compromise solution.  I would personally probably remove manual voting.

« Last Edit: September 23, 2015, 09:05:37 pm by r0ach »