The Blue Pill brings me here. I am responsible for Kernel’s Learn track. Kernel is where Gitcoin, Status and yAcademy kinda began collaborating. Our goal is to inform small groups of talented people so that they can respond generously and contribute meaningfully as each block propagates outward through the wider web 3 community.
A good friend and I have created some simple contracts which leverage yearn vaults to ensure that education remains free, while educators get rewarded. Our intention is to keep on creating continuous learning environments that eliminate student debt while still incentivizing high quality content.
We have our own “Best Practicers” group that have done a preliminary review of the contracts, but I’d love for anyone here who feels so inclined to take a look over them and try and spot any vulnerabilities or areas for improvement.
Please forgive the weird formatting, new users cannot post more than 2 links.
Note: we are investigating better exponentiation libraries, trying to understand how Dave is going to handle the exponents for his TWAMM (https://www.paradigm.xyz/2021/07/twamm/) work, and fixing small things like
getEligibleAmount changing state, as opposed to how the other getter functions operate. I’m more interested in potential hacks, game theoretic/mechanism design issues, and general questions or comments about improvement.
One thing, pointed out to me by Andy Matuschak is that, if
yield + fee goes towards minting LEARN (which I thought was a really neat way of incentivizing learners to join the community of token holders without whitelists or any privileged roles + complication in the contract), then there is a perverse incentive for course creators to make low quality courses.
If I, as a creator, only receive a reward when a learner redeems their fee, rather than minting LEARN, then I am more likely to make low quality courses that don’t engage learners as much.
So, we will be changing this logic: no matter whether simply redeeming your staked fee, or minting LEARN, any yield earned will be returned to course creators. I think that the shape of the Learning Curve, which mints less LEARN the more collateral is locked in it, still provides an interesting enough incentive for learners to want to use it.
I also worry that yield earned is not enough of a reward for educators, and that they might set course fees to be staked excessively high. My potential answer for this is to introduce a
donate() method for educational philanthropists.
donate() would take as input
uint256 _courseId, uint256 _amount, address _learner and send 50% of the donation to the course creator, and use 50% to mint LEARN and send it to the learner after all checkpoints have passed.
I would be happy to hear any thoughts on how to balance incentives, on potential problems with the scheme, on how to reward educators more etc.
As a part-time educator and crypto enthusiast, I’m somewhat interested in the topic.
What I understand about the incentives:
- Fees are an incentive to learn, since you don’t get your fee back if you don’t complete the course.
- Yield incentivizes creators.
- $LEARN incentivizes early participation (appreciation potential) and evangelization (as the token appreciates as more people join.
- If the creator earns the yield, isn’t he incentivized to make his course in a way that they are very long? Although there is a trade-off since if people don’t complete the course, no yield is transferred to him.
- What can $LEARN be redeemed for, exactly? Total supply / total collateral value, with the supply curve driving price increase? Does the yield earned on the collateral also grow the pot?
- Will the courses be curated? At least minimal curation is necessary to avoid fake courses with the purpose of minting $LEARN as fast as possible, right?
- If students chose to mint $LEARN, what is the effective rate at which they mint. Is it the redemption price or the market price - or somewhere in the middle depending on the supply curve? It can’t be more than the market price, or there is no reason to mint $LEARN vs cashing out & buying it on the market.
Also, what about rewarding creators by given them either part of the future yield generated by the $LEARN their students minted, or by minting a fractional amount of $LEARN for each $LEARN minted by their students? This lets creators partake in the future success of the system.
Also, is there are reason why the two paths (minting $LEARN vs recovering the fee) need to exist? Why not always mint $LEARN (accruing rewards for the creator) and let students sell/redeem out immediately if they want to.
Hi @norswap Thank you for your interest and questions.
Learners always get their fee back, irrespective. The contract has no notion of “completed” as that would require privileged roles and I don’t design that way. Creators just specify the length of time (in blocks) that a course runs for and learners are always able to redeem after that, as well as redeeming pro-rata at various “check-points” through the course to ease the financial burden further.
I don’t use “$” to denominate tokens, because symbols matter to me and using one for a failing fiat currency I have nothing to do with seems absurd.
Yes, it is better to learn the lessons of a course earlier. My intention here is that people who do so, may then end up with enough of a return to be able to implement what they have learnt, or at least start with it.
Yes, making very long courses is a possible outcome. However, there’s not much I can see at a contractual level to change this without specifying arbitrary conditions that are unlikely to stand the test of time. It’s a job I’d prefer to leave to UIs, who show how long fees will be “locked” for and learners can decide for themselves.
LEARN can be redeemed for the underlying collateral, always (which is DAI). No yield is earned on this collateral, though that is an interesting point to consider. It would complicate things though, and I really, really aim for simplicity above all else.
I don’t intend to curate courses at this point, nor do I intend to display other courses. I am building this for my own needs, not as a business. People are able to use the contract if they like, that’s all.
This is not like RAI or the old TRFM idea. Learners simply mint at the current rate in the contract (i.e. what I understand to be the redemption rate in your question).
I like this idea of giving creators a fractional amount of LEARN, thank you It would require two transfers when minting LEARN from course fees, which increases gas fees and is bad for UX, another consideration always on my mind in designing stuff.
I will think about this two paths question. Right now, it’s because there’s likely psychological importance for people to “just be able to take out what I paid,” but this is difficult to verify and is just an intuition I have…
Thanks for the answer!
Seems like I had one or two misconceptions about how this would work.
I guess my only interrogation is on the economics model of the price increase.
I assume the collateral/fee for learners will be fixed. As more and more learners join (and the locked collateral for learners increases), the current rate (which is the price at which you can mint and redeem your LEARN) increases. Because early learners minted LEARN at a price less than the current rate, this means that the market cap of LEARN is > than the locked collateral. Isn’t there a danger that in case of a sell-off the collateral could end being depleted (i.e. a “bank run” scenario, since the collateral is only a partial reserve of the LEARN current rate market cap)?
It’s a pleasure, thanks for the questions.
No. The reverse operation - i.e. “burning” LEARN and redeeming the underlying DAI - works according to the same curve (i.e. how much DAI you get back is a function of the LEARN in circulation), so would come back out at 0 if you burned all LEARN.
This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.