Rebalance Logic
Rebalancing is a core process in Twyne that ensures positions remain optimally sized as interest accrues over time. This document explains the purpose, mechanism, and implementation of rebalancing in Twyne.
Purpose of Rebalancing
As interest accrues in Twyne, two key changes occur:
Borrower collateral decreases (due to the siphoning rate paid to Credit LPs)
Credit LP shares increase (due to receiving interest)
This creates a situation where a Collateral Vault has reserved more credit from the Intermediate Vault than it currently needs based on the borrower’s reduced collateral. This excess credit is inefficient because:
It’s reserved but not being used optimally
It could be made available to other borrowers
It costs the borrower interest without providing additional borrowing power
Rebalancing is the process of calculating and releasing this excess credit back to the Intermediate Vault, ensuring capital efficiency and proper position sizing.
Excess Credit Calculation
Mathematical Model
The excess credit is calculated as:
excessCredit=Ctotal−C⋅liqLTVtwyneβsafety⋅liqLTVext
Where:
Ctotal
= Total collateral in the vault (C + C_LP)C
= User’s collateralliqLTVtwyne
= Twyne liquidation LTVliqLTVext
= External protocol liquidation LTVβsafety
= Safety buffer (typically 0.95)
This formula determines how much total collateral the vault currently has versus how much it should have based on the current user collateral and selected parameters.
Python Implementation
def calculate_excess_credit(total_assets, user_collateral, twyne_liq_ltv,
ext_lending_ltv, safety_buffer=0.95):
"""
Calculate excess credit in the position
Parameters:
-----------
total_assets : float
Total assets in the vault (C + C_LP)
user_collateral : float
User's collateral (C)
twyne_liq_ltv : float
Twyne liquidation LTV (e.g., 0.85 for 85%)
ext_lending_ltv : float
External lending protocol liquidation LTV (e.g., 0.75 for 75%)
safety_buffer : float
Safety buffer to avoid external liquidation (default 0.95)
Returns:
--------
float
Excess credit amount
"""
required_total = user_collateral * twyne_liq_ltv / (safety_buffer * ext_lending_ltv)
if total_assets <= required_total:
return 0
return total_assets - required_total
Rebalancing Process
Step-by-Step Process
Calculate Excess Credit:
Determine the current user collateral (total assets - reserved credit)
Calculate how much total collateral should be required based on current user collateral
Compute the difference between actual total and required total
Release Excess Credit:
If excess credit is positive, release it back to the Intermediate Vault
Update internal accounting to reflect the new reserved credit amount
Emit events to track the rebalancing operation
Verify Invariants:
Ensure the position remains healthy after rebalancing
Confirm non-negative excess credit invariant is maintained
When Rebalancing Occurs
Rebalancing on Twyne can happen in several ways:
Automatic Rebalancing:
When certain collateral-modifying operations are performed
Examples include deposits, withdrawals, or Twyne liquidation LTV parameter changes.
Manual Rebalancing:
Users can explicitly call the
rebalance()
functionThis might be done periodically to optimize positions
Forced Rebalancing:
During liquidation processes
When external factors require position adjustments
Precision Considerations
Implementing rebalancing requires careful attention to precision issues:
Fixed-Point Arithmetic: All calculations use fixed-point arithmetic (typically with 18 decimal places) to handle fractional values accurately
Rounding Direction: Calculations intentionally round in conservative directions:
When calculating excess credit, round down to avoid releasing too much
When calculating required credit, round up to ensure positions remain safe
Minimum Thresholds: Very small amounts of excess credit might not be worth the gas cost to release
Security Implications
Rebalancing has several security implications:
Manipulation Resistance: The rebalancing mechanism must be resistant to exploitation through rapid changes in parameters or positions
Gas Optimization: Performing frequent small rebalances could lead to unnecessary gas costs
Safety During Market Volatility: Rebalancing must remain safe even during periods of high market volatility
Position Health: Rebalancing should never compromise position health or violate protocol invariants
Last updated