While waiting for the flashstaking comp to start yesterday we got into the topic of early withdrawal and what formula it uses.
It has come to my attention that the early withdrawal or “unstaking” feature did not function the way I expected at all and it looked like I wasn’t the only one who was confused by it so I decided to make this thread to see what other people’s thoughts are on the subject.
Now I’m no math wiz so pardon me for using dumbed down examples and terms, but here it goes:
(For the sake of simplicity I’ll use incorrect return values and imaginary XPY)
- David flashstakes 1000 $Flash for 10 days and he has chosen to receive LINK in return
- The contract then mints 100 $Flash which are then used to market buy 10 LINK. These LINK are instantly sent to Davids wallet.
- The flashstake is complete. Now he has to wait 10 days to get his original investment back.
But oops, David realizes he made a mistake after 5 days. Or he wants to simply back out of the flashstake for whatever reason.
With the current formula this happens:
David unstakes and based on how long he has left on the duration of his flashstake a percentage of his original investment is burned.
- 5 days left of a 10 day stake = 50%
- Original investment was 1000 $Flash so of these 500 $Flash is burned
- David is left with 500 $Flash from his original investment and 100 $Flash worth of LINK from the reward. So in theory 600 worth $Flash.
David paid 500 $Flash and 5 days of his time. Bottom line is he loses 40% of his original investment + his time + contract fees, for deciding to unstake halfway through.
This seems to me like a really steep price to pay. I’m having a hard time imagining anyone would ever choose to do this. Not to mention, if someone makes a mistake when flashstaking and decides to unstake immediately because of it, they would lose 100% of their original investment and only be left with the reward. So the margin for error when flashstaking is effectively 0. Once you’ve messed up you’re in it for the ride. (Imagine fatfingering one extra 0 when only intending to stake for 100 days).
When I first got into the idea of flashstaking and unstaking early this is how I thought it worked. (Up until yesterday when Dash confirmed it was not the case)
What I thought would happen:
David unstakes and based on how long he has left on the duration of his flashstake a percentage of the minted tokens (also known as the reward) is burned from his original investment.
- 5 days left of a 10 day stake = 50%
- 100 $Flash were minted to buy Davids reward so 50 $Flash are burned from his original investment.
- David is left with 950 $Flash from his original investment and 100 $Flash worth of LINK from the reward. So in theory 1050 worth of $Flash.
David paid with 5 days of his time so he’s awarded only 50 tokens, but it cost him another 50 tokens or 50% in potential rewards + contract fees because he backed out halfway through.
Isn’t this more reasonable? If someone makes mistakes or changes their mind they should still be paid for their time invested instead of feeling like they need to sacrifice a portion of their original investment to rectify the error.
They would still lose value in the form of potential rewards, so completing the flashstake and waiting out the duration should be preferable for them.
If they need to back out of a flashstake immediately, 100% of the reward will be burned from their original investment and it would be as if nothing happened, right? (Except the fees paid)
This approach is way more consumer friendly in my opinion. The original investment shouldn’t be at risk at all only the users time and reward should be at stake.
Now I don’t know if this just isn’t feasible because the math doesn’t add up, or I’m thinking completely wrong. If that’s the case please enlighten me on why it is the way it is and why it shouldn’t be like I imagined it to be. Pro’s and cons for each formula are welcomed too.
PS. If this is the wrong place for these kind of threads I’m sorry.