CLMM vs DLMM
First let’s have a quick look at the 2 prominent MM solutions that currently exist:
These are the fundamental foundation upon which almost all liquidity rests on in Defi. Currently there are 2 popular types of market makers models. DLMM (Dynamic Liquidity Market Maker) and CLMM (Concentrated Liquidity Market Maker).
DLMM uses constant sum invariant (x+y=L, where x is the quantity of asset X, y is the quantity of asset Y, L is the amount of liquidity in the bin and P is the price defined by P=Δy/Δx)
Whereas CLMM (V3 Uniswap) uses a constant product (x*y=k, where x is the quantity of asset X,y is the quantity of asset Y,k is the constant product) which makes it distinctly different from DLMM. This in return brings the following core changes:
Bins use constant sum invariant instead of constant product where Liquidity is aggregated vertically instead of horizontally and for that reason Liquidity positions are fungible. Because of the above core changes we start facing newly created issues, bringing forward strong drawbacks both from a technical standpoint as well as UX. For example (i) there is a very strict EVM limitation that creates a block to how many bins can be active within a single position. This in turn forces users to open several positions in order to widen their range - far from ideal user experience. (ii) Even though Dynamic Fee rate on DLMM is introduced to deal with the headache of having to choose between many of the same trading pair pools that simply are differentiated by their fee - it still doesn’t solve the problem in its entirety. In earlier CLMM versions users had to struggle and understand what fee rate to choose while in DLMM even though it is now dynamic the user is fighting with “Bin Steps” where the same trading pair might have 4 or 5 identical pools with only “Bin Steps” differentiating them. In turn not much has changed for the user.
We draw the conclusion that both models have a slightly different fit . DLMM might be more useful for those who want to create Liquidity Shapes while CLMM is a better general purpose solution.
Last updated