Re-read synthetix Litepaper
-
If we offer a Chinese version, we can start with the Chinese one.
-
Here we can see how Synthetix handle the "too high CR" case. This is same as what I thought independently(maybe affected). My thinking process: how to lower CR -> increase aValue/decrease staked ATF -> increase aValue == issue new aUSD, but if this is done by the foundation, we cannot withdraw them later -> To keep users "more" free, we issue aUSD to users or unlock their staked ATF, for those who have CR>>500%.
-
SNX supports stake ETH (to mint sETH), like Mirror mint
mXwithmY(150%). These users are not considered "stakers". -
SNX uses a pool (can be "controlled by foundation") to store the Txn Fee. The fee is not for us but for the stakers. Before we said 0% fee or 0.01% fee (for us) without thinking incentivising the stakers.
-
We should
bipsorbps(meaning "Basis Point", recommendbipsfor the ambiguity ofMb/s) to be more "professional". 1bip=0.01%. -
SNX stakers profit from the 30 bips fee. We can let DAO to control this. High fee does not mean high profit, because there might be less trade(r)s. Using 10 bips for now.
-
SNX changed their ICR from 800% to 750%. When writing a Lite Paper / Doc. This number should be dynamical. We can use a table like Algorand to do it.
-
SNX has a "debt", similar to our "aValue"(the total value of all issued aAssets). Their difference is that the "debt" is more globally related. In their Example 1, user 2 did nothing and need to stake more SNX. This "debt" is like the "store USD" model in the stake process. It's slightly more costly because we need to calculate the "debt" every time? A quick algorithm below: We cannot store the "Staked value" and "aValue at staking" to only calculate once when user stakes and unstakes. Instead, we need to update all debts of all users every time when a user stake and unstakes. Also said in lite paper
````python # OUTDATED. SEE in Mint - burn model ex: Exchagne # the exchange has users ex.users : list[User] = None # all users alice : User = User(name="Alice") # Alice, the new user
# Alice joined the exchange
ex, and want to stake ATF. # this is what happes when alice mints N aUSD (with 5N ATF) # calling alice.stake(N) is equivalent to this # update all debts new_total_debt = ex.calc_new_debt() old_total_debt = ex.debt for user in ex.users(): user.debt = user.debt * new_total_debt / old_total_debt ## human arithmetic noting systems like 123, CXXIII, etc. compress the information with a logarithmic scale. # add alice's debt ex.users.append(alice) alice.debt = N ex.debt = sum(user.debt for user in ex.users) ```` -
We need a better name for "trade contract", "stake contract", etc. We can use any "project names" we want, since we don't currently have a naming consultant.
-
SNX didn't include "what is decided by DAO"? TODO:CHECK
-
SNX Lite Paper is much better than my docs. Need to learn "how to write docs" constantly.