This topic is dedicated to discuss Brent’s article on Namada Cubic Proof-of-stake.
Great write up on Namada’s Cubic PoS! It was good to see some various aspects of the previous PoS models implemented here.
I had a question regarding the epoch times. Are epoch times fixed by time stamps or are they determined by some number of blocks?
Important parameters in the Namada PoS model (followed by their default values)
- Duration of a block: ~ 5 - 10 seconds
- Duration of an epoch: ~ 1 day
- Pipeline offset length: 2 epochs
- Unbonding offset length: 21 epochs
If 1 day = 24 hrs then here is an example of blocks per epoch for variable avg. block times.
|Average Block Time||Blocks per Hour||Blocks per Epoch|
So, it sounds like epochs follow a timestamp and then the number of blocks per epoch will vary by block time? I think that’s great then since the protocol won’t have to worry about adjusting
r_max depending on actual block times.
Another point I wanted to raise is around the cubic slashing where it sounds like validators are effectively incentivized to deploy multiple validators to hedge against slashing risk. Would it make sense to implement something similar to Ethereum and aggravate the cubic slashing factor if different validators get slashed in a similar time frame?
Seems like it would incentivize sybilling. I know Cardano’s stake pools receive more rewards as their stake is closer to saturation (arbitrarily decided value), then experience diminishing returns after exceeding saturation. Something similar could incentivize honest validators to keep their stake consolidated for maximum rewards while potentially malicious validators would choose to deploy on multiple validators, reducing risk from cubic slashing but decreasing their rewards
Yes - this is exactly what happens: all infractions within a given period (+/- 1 epoch) are considered in order to calculate the cubic slashing rate. See the specs page for the detailed algorithm.
Thanks for sharing the specs page! Didn’t go through this and so missed that there was a
window_width factored in cubic slashing. Can’t wait to see this play out and how this factors into the decision making of big stakers!