Some questions about RFC-0012 Safecoin Implementation, especially around the idea of sacrificial chunks.
This is all brainstorming on the assumption that sacrificial chunks are used, which may be an invalid assumption!
Stopping Farming
The calculation for farming rate will “ensure that farming stops if the sacrificial count is greater than or equal to the primary count”.
Why should the farming stop? Stopping seems really extreme. I know technically it’s just very very low chance, but the word used is “stop” so … why stop?
Optimum Rate
This is the proposed reward schedule based on how many sacrificial chunks are being stored:
Why would anyone store any sacrificial chunks? They only get less reward by storing sacrificial chunks.
Old reward rate
The wiki says rewards will be based on a Sigmoid curve and “20% above average” will be the point at which the reward rate will “start to level”.
Is this idea still going to be used?
Removal
@tfa I’ve noticed you have an uncanny memory for the history of features so am tagging you here… do you (or anyone else) remember why sacrificial chunks were removed from the code?
Proposed modification
Vaults receive the optimum reward for storing chunks in a ratio of 5:1 primary:sacrifical (ie 1/6 of their total is consumed with sacrificial chunks for optimum reward).
This is based on the Kumaraswamy distribution with A=1.365 and B=9 for a peak at approx 1/6; these values need to be engineered properly, and possibly be dynamic to keep the original rfc goal for “the farming rate to drop as the number of chunks increases”.
Old psuedocode
if TP > TS {
FR = 1 - (TS / TP)
} else {
FR = approximately 0
}
Proposed new psuedocode
FR = KD(x;1.365,9) where x = TS/(TS+TP)
Rate Granularity
Is the farm rate calculated per vault, ie each vault is individually tested for primary vs sacrificial chunks and then given an individual rate?
Or per section, ie the section adds up all primary chunks and all sacrificial chunks in the section, then calculates a farm rate?
Or per neighbourhood ie the section uses stats from neighbouring sections to accumulate stats on primary and sacrificial chunks being stored…
Or per network(!) ie nested neighbours of neighbours…
The process of determining and agreeing how many chunks of each type exist is not clear to me.
Another final disclaimer: I’m ignoring store cost in this design. Originally store cost is tied directly to farm rate, but I’ve ignored it here.