# Problem

Currently, all markets have their own COMP distribution rates set through governance. The following is under the assumption that we want a fixed total COMP distribution rate over all markets.

When we add or remove markets, the COMP distribution rates for all other markets have to be adjusted to achieve our desired total COMP distribution. This can be quite cumbersome.

# Solution

Assign every cToken a COMP distribution weight and introduce global COMP distribution rate targets for both lending and borrowing. These weights then calculate the distribution rate for each market.

### Example

3 markets are supported: COMP, WBTC, and USDT. Global COMP distribution is 1 COMP per block for borrowing.

Market | Weight | Distribution Rate (Borrowing) |
---|---|---|

COMP | 20 | ~0.57 |

WBTC | 5 | ~0.14 |

USDT | 10 | ~0.29 |

### Formula

borrow_distribution_rate(MARKET) = global_borrow_distribution_rate * (weight(MARKET) / sum(weight(ALL_MARKETS))

supply_distribution_rate(MARKET) = global_supply_distribution_rate * (weight(MARKET) / sum(weight(ALL_MARKETS))

## Benefits

- Changing global distribution rates is simpler
- Simpler distribution rate changes when adding or removing markets
- Less room for human error when recalculating weights for all markets

Thoughts?