radCAD Base Model Discussion

Well, after I while I got time to update this thread. I will post this here and place a link in the initial post to this one, otherwise the conversation will lose meaning.

The V1 Model

State Variables

Since in V1 the number of actors will increase from two (Servicers/Validators and Apps) to five (Servicers, Validators, Fishermen, Portals and Apps), I gathered them under the category “Pocket Network Actors”. This category does not have a programatic meaning (currently), its only to mark this difference from the Eth model which had a single actor.

  • The POKT Variables now include what I think are the economic variables that are not restricted to a single agent. These variables are updated based on the agents behavior.
  • The DAO Variables is a single variable, the DAO treasure, no changes.
  • Actors Variables:
    • Servicers Variables: I included new variables here, that are interesting to track, such as the avg. reward and avg. relays. I also included the new V1 variable, the Avg. Report Card Score.
    • Validators Variables: I removed the slashing from here, as the slashing amount and probability are in fact parameters. They are not updates as a consequence of the network evolution (in this model at least).
    • App Variables: Added the avg. burn, as it is interesting to see how changes in the burning parameters affect this value.
    • Portal Variables: A V1 native actor, there is not much clarity on how this one will interact with the rest of the network, but the traffic will probably something interesting to track.
    • Fishermen Variables: Another V1 native actor. The amount of “measurments” that it will be performing is an interesting thing as they will define their requirements (I think).

System Parameters

The number of parameters is increased from V0 to V1. I tried to put the new parameters in the same categories as the variables.
The main changes/additions are:

  • POKT Parameters:
    • Added “UsageToRewardCoeficient” and “TotalAvailableReward” that should control minting (or part of it).
    • Added “SalaryBlockFrequency” which determines the number of blocks between minting (I think…).
    • Added “SessionBlockFrequency” wich is the oficial name of how many blocks by sessions are there.
  • DAO Parameters: Added the “DAOBlockReward” parameter that seems to be the update from the DAO allocation of V0.
  • Pocket Network Actors:
    • Servicers Parameters: Added a burn probability parameters, as a burn mechanism will be in place in V1 (related to the score cards).
    • Validators Parameters: Added the “BlockProposerAllocation” with is the new version of the validators allocation.
    • Portal Parameters: Only the cost is in place, I do not understand them enough to add more stuff here. Anyway, I leave the placeholder for them.
    • Fishermen Parameters: Idem Portals.

Metrics

Still a TODO, but they are rather agnostic from V0 or V1 I think…

State Update Logic

The state update logic in V1 is a little more complex, but most of it is from the addition of new actors. Fortunately we can keep some actors “off” until needed (such as portals or fishermen).

Steps:

  1. The simulation should start by setting granularity that should be able to go as low as a single session. Block granularity makes no sense in Pocket economics.

  2. Set Inputs: Here the main parameters are modified before any update takes place. Things like $POKT price is updated according to sweeps, emission parameters are updated and actors growth is applied (staking/unstaking). Most of the ad-hoc updating is done here.

  3. Apps Processing: Here the number of relays to be processed are randomly selected using the application parameters.

  4. Actor Processing: All the actors can be updated at the same time once the number of relays is defined:
    a. Portal Processing: Calculate average number of relays flowing and rewards.
    b. Servicers Processing: Calculate average number of relays flowing and rewards.
    c. Fishermen Processing: Calculate average number of measurements done and rewards.
    d. Validation Processing: Calculate average producer reward.

  5. Update Supply: Here the total supply change is calculated, the total $POKT generated and burned (by apps and Txs). The total supply is updated and the DAO treasury is updated.

  6. Update Variables: Time step, block number and variables.

  7. Calculate Metrics: Here all the metrics are produced,the operations here will depend on the metrics that will be defined.

  8. Loop…


A note on V1 economics…

There a lot of unknowns around how all the V1 actors will play together. I have tried to understand how all of them will interact but I have found very little explanation on the subject. We are trying to model, on our own, how we would like V1 to work (in economic terms), however it will be great if we can have some feedback from PNI on this subject.

1 Like