Casper incentive manipulation / perverse incentives


#1

Hi all,

I’m doing some cryptoeconomic research on Casper’s incentive structures, specifically exploring how bad actors could manipulate them or where there may be perverse incentives, as well as any consequences/corrections.

I’m hoping to verify a few details that I’ve not been able to confirm in the public documentation; details I may have overlooked.

These are:

  • does Casper have a cap on the number of individual validators/deposits required? Not a target for Total Deposits as percentage of market cap, but in the sense that Tendermint has its top 100 validator candidates who have the most stake. I’ve read Casper requires 250, but can’t confirm.

  • does Casper have a minimum required deposit to become a validator? For example, 50 ETH, 1500 ETH, etc.

  • I’ve seen research suggesting, if I understand correctly, that interest on deposits will fluctuate up or down according to proximity to a desired Total Deposit target. Is this confirmed/accurate or are there other strategies?

  • is there a set withdraw limit on the deposit, ie held for four months minimum?

  • do I understand correctly that interest, and rewards/penalties generally, are dispensed per epoch?

  • do answers to the above apply to both Casper FFG and CbC?

I have more questions, but for now, any answers/links to the above would be greatly appreciated.

Thanks so much!
Chris


#2

No.

does Casper have a minimum required deposit to become a validator? For example, 50 ETH, 1500 ETH, etc.

1500 ETH currently.

I’ve seen research suggesting, if I understand correctly, that interest on deposits will fluctuate up or down according to proximity to a desired Total Deposit target. Is this confirmed/accurate or are there other strategies?

No, though we have explored the possibility of mechanisms where the minimum deposit goes up as the number of active validators goes up.

is there a set withdraw limit on the deposit, ie held for four months minimum?

The entire deposit is held for 4 months before it can be withdrawn.

do I understand correctly that interest, and rewards/penalties generally, are dispensed per epoch?

Yes.

do answers to the above apply to both Casper FFG and CbC?

Not sure; ask @vlad about CBC.


#3

That clarifies a lot and is very helpful.

What would be the reasoning for that?

On the topic of interest on deposits, assuming there is, what is the interest rate set at? Is it fixed then?

Thanks!


#4

What would be the reasoning for that?

To reduce the uncertainty in the total number of validators (which directly translates into overhead).

On the topic of interest on deposits, assuming there is, what is the interest rate set at? Is it fixed then?

Right now it’s still the inverse square root of the total amount of ETH deposited.


#5

Okay, I understand now. Thank you!


#6

See


#7

Thanks for bringing your work on this to my attention nootropicat. This is exactly the kind of problem I am interested in.
Cheers,
Chris


#8

With a minimum deposit of 1500eth, it seems inevitable that validator pools will be set up. After all, what’s to stop me from issuing 1500 000 tokens at 0.001 eth each and staking the pool, paying out token holders in proportion to their holding?


#9

Trust. With mining pools your opportunity cost is the hashing power between payouts. With validator pools, the opportunity cost is the maximum amount of your money the pool could lose between payouts. I don’t actually know what the maximum loss rate of a malicious/lossy validator is each week (reasonable payout period), but if that is higher than “the cost of electricity and hardware wear for a week” that miners take on then it means the risks are higher than mining.


#10

Nothing wrong with validator pools; they are inevitable, and I do think that the centralization risks can be contained with mitigations like the partial slashing incentive to join smaller pools over larger ones.


Partial slashing might not be enough
#11

How could an ideal validator pool contract look like?

Scenario 1:
A validator runs a full node and provides proof that he holds half of the required stake himself and collects only the missing ETH over a pooling contract.
This seems like a feasible variant for a pooling contract but is not fully decentralized.

Scenario 2:
Each staker of the pool runs a validator node and archives consensus with the others for the validation result.
Voting is weighted using the amount of stake a validator has.
This would be the most complex, but also most decentralised approach. Of course it would compromise performance a bit.

Is this flawed?


#12

Could a DAO be set up to act as pool manager where coins are sent to a contract and some proportion of users need to sign prepare and commit messages for deposits/withdrawals? Among other threshold parameters, the DAO would have to maintain the minimum staking level, say 1500 ETH, or – if failing to uphold the minimum – dissolve after distributing dividends according to each user’s stake.


#13

What is the frequency of distribution? 365 days?

i.e. I stake 1 Ether. Leave it in for 365 days and then withdraw it.

So 365 days + 4 months would mean I have a balance of:

1 ether + 1/sqrt(1 ether) = 1 + 1 = 2 ether?

Will the staking support double/float staking or does it have to be an integer ether amount?

Thanks!:grin:


#14

A likely formula is that it will be targeted to give stakers a 5% annual return if there is 10 million ETH staking. So if there is 2.5 million ETH staking, and you stake 10000 ETH, and you perform optimally as a validator, then you would have 11000 ETH in a year.

Fractional quantities of ETH are okay.


#15

If a DAO is used for a validator pool, it can issue a coin/token to members. Payouts would go to the holders of these coins. Instead of having to dissolve the stake when someone wants to leave, it would be possible to sell your coins.