I report here a conversation happened on ERC thread for clarityHi Matthias,
How are the shares calculated in Staisybit?
Currently there are ~39BTC in Europecoin in Staisybit. If I have 4BTC worth of ERC in Staisybit does it mean that I have a 10% share in the staking?
Tks
Hi. Please post this question in
Staisybit thread too, i will copy/paste the reply there. This will help others with same question. Thank you.
Shares are based on the weight that the user is able to earn keeping his coins on our system. The weight is a mix between user's average funds and the time he has kept those funds on Staisybit. In this way, we can take into consideration not only the deposits, but also the withdrawals (which decrease the weight), also considering the time, which rewards users for the fact that they keep coins on our wallet (which is, by the way, the same the normally a PoS wallet does when calculating user weight in network). I have also implemented a system to adjust, in medium/long term, the weight of big holders, ensuring to the small holders to have always a chance to get shares even when big holders have kept their (big) deposits on Staisybit for long time (hence having accumulated much much weight).
Example:
- Assumptions:
usernames are "A" and "B", now is time "t", cash flows are indicated with "cf", balance is indicated with "b"Assuming to have:User | | cash flow time | | cash flow amount | | cash flow name | | weight | A | | t-4 | | 100 | | cf_1 | | W_A_1 | A | | t-3 | | 100 | | cf_2 | | W_A_2 | A | | t-2 | | -50 | | cf_3 | | W_A_3 | A | | t-1 | | 50 | | cf_4 | | W_A_4 | A | | t | | 100 | | cf_5 | | W_A_5 |
| | User | | cash flow time | | cash flow amount | | cash flow name | | weight | B | | t-4 | | 100 | | cf_1 | | W_B_1 | B | | t-3 | | 100 | | cf_2 | | W_B_2 | B | | t-2 | | -50 | | cf_3 | | W_B_3 | B | | t-1 | | 50 | | cf_4 | | W_B_4 | B | | t | | 100 | | cf_5 | | W_B_5 |
|
Then, at time "t" (now), i'd calc the shares as follow:
- User A: - current balance(b1) = cf_1 then => weight for the 1st period (W_A_1) is: b_1 * [(t-3) - (t-4)]
- current balance(b2) = cf_2 + b1 then => weight for the 2nd period (W_A_2) is: b_2 * [(t-2) - (t-3)]
- current balance(b3) = cf_3 + b2 then => weight for the 3rd period (W_A_3) is: b_3 * [(t-1) - (t-2)]
- current balance(b4) = cf_4 + b3 then => weight for the 4th period (W_A_4) is: b_4 * [(t) - (t-1)]
- User B: the same as user A
Then:
- User A weight: W_A_1 + W_A_2 + W_A_3 + W_A_4 = W_A_T
- User B weight: W_B_1 + W_B_2 + W_B_3 + W_B_4 = W_B_T
- Total Weight of "Staisybit": W_A_T + W_B_T = W_T
Now...
the shares: - User A: W_A_T / W_T * 100
- User B: W_B_T / W_T * 100
The math above is able to take into consideration not just the deposits, but also the withdrawals, and always considering the time you kept a certain balance in our system too; we give importance to the time because, as you know, time matter in PoS coins under the name of "weight" or "coinage". Recently, an user raised a problem of this system:
Problem: if an user deposit large amounts and keep them there for long time, small users won't have enough weight to even get 0.01% of the shares.
Solution: users whom have more than 20% of total Staisybit funds for a certain coin, will see the weight of the time decrease slowly within 365 days. What does this mean? This mean that i created a function that decrease the weight of the time until 0.4% in 365 days.
In other words, users with very high % of funds will end up having their weight calculated almost only by their funds, no matter the time, in 365 days.
I know it's a bit hard to explain on the paper, feel free to ask more if something is not clear.