There is a stablecoin STBL. The stablecoin smart contract accepts deposits in a particular asset (let’s say ETH). Any address is permitted to deposit assets into the contract (similar to a bank). Assets must be deposited for some period P (where P could in theory be 0 which means assets can be withdrawn back the next block). The contract then calculates some interest rate R annually/per block that each account is entitled to from their deposited assets when they call the
collect_interest function. The interest is paid out in STBL by minting new STBL from the contract. R can be dynamically adjusted by the contract to attract more deposits given certain conditions.
There is a constant variable,
reserve_ratio, which describes the amount of the deposited assets that can be used by the contract. For example, if the
reserve_ratio is .4 then 40% of deposited assets can be used at any current time. Put in another way, for every 1 ETH deposited, .4 ETH can be used at a reserve_ratio of .40. The used assets are put into a DEX for trading pairs ASSET:STBL and STBL:ASSET auctions at the pegged price and used as market makers to keep the price from fluctuating outside the thin band of stability. In our example, the pairs would be ETH:STBL and STBL:ETH.
Finally, all assets are “insured” by the contract in STBL during bank runs. For example, let’s say that 30% of the assets have currently been used in the DEX but 80% of assets are being requested for withdrawal. There is a deficit of 10% which the contract does not have. The value of the 10% of ETH is returned to depositers in STBL instead of the ETH itself.
This system is interesting because it can be used as a “drop-in” stability mechanism in most stablecoin designs without directly interfering with other mechanisms. It is a standalone mechanism that does not impede or competitively counteract any seigniorage shares, MakerDAO, or Basis.io type system. The one clear weak point here is obviously bank runs, but the insurance policy is a good workaround. I am interested in thoughts or if there are better work arounds to mitigate bank runs.