Each token in each Pool has a utilization rate Ut at each time t, which is defined by the ratio Ut=Lt/Atwhere Lt represents total borrows and At represents total liquidity. This ratio regulates how much of a deposited token is used in the market.
The kinked model is based on several parameters and is described as follows. Firstly, the ratio optimal utilization rate Uoptimal is a parameter that determines the best-fit utilization rate for the protocol. It varies from token to token and depends on the risk and volatility of the token. For example, it could be 80% for stable tokens like DAI, or just 65% for unstable coins like LINK.
Next, the interest rate is a function that varies based on utilization rate. Three parameters are used to define this function: (1) Initial rate R0, (2) the constant Rslope1 is used when Ut<Uoptimal, and (3) the constant Rslope2 is used when Ut≥Uoptimal.
Specifically, the interest rate Rt is defined by:
If Ut<Uoptimal then Rt=R0+UoptimalUt×Rslope1
If Ut≥Uoptimal then Rt=R0+Rslope1+1−UoptimalUt−Uoptimal×Rslope2
The interest rates have a kink in them: they sharply change at a certain point. A variety of protocols use interest rates like this, including Aave and Compound. As users mint, redeem, borrow, repay, or liquidate tokens, the interest rate changes with the utilization rate Ut . As a result, it's also known as a variable interest rate.
The borrow rate is calculated using the current interest rateRt(per year) and is updated every second. That is, borrowers will be charged interest that changes every second. He must pay more interest if the Utilisation Rate is higher, and vice versa. Mathematically, at each time t, the Borrow rate (per second) is Bt=Rt/Y where Y=31536000 is the number of seconds in a year. If the user is currently borrowing Tt tokens then the interest payable is Tt×Bt . The interest payable is accrued to the loan in the next second, that is Tt+1=Tt(1+Bt) .
Deposit rate and Borrow rate are closely linked. Precisely, at each time t, deposit rate Dt is determined based on Utilization Rate Ut and borrow rate Bt and reserve factor r. Precisely, deposit rate is defined by Dt=Ut×Bt×(1−r).
In terms of probability, Ut is probability that each token is borrowed, thus Dt is the average value of interest earned from each token deposited into the Pool.
For deposit, the calculation of interest is updated after each operation deposit, withdraw, borrow, repay. In particular, if a user is currently depositing Tt tokens, after a period of time Δt (in seconds) he will receive an interest of Tt×Dt×Δt, and this interest is accrued to the deposited token, i.e. after time Δt he have Tt+Δt=Tt×(1+Dt×Δt).