Liquidity providers deposit cTokens and fCash into liquidity pools and act as counterparty to the lenders and borrowers on that liquidity pool. In exchange for enabling end users to lend and borrow, the liquidity provider earns interest on their assets in the liquidity pool + fees every time a user lends or borrows.
When an LP deposits into a liquidity pool, they receive liquidity tokens. Liquidity tokens are an asset that represents a proportional share of the total cTokens and fCash in the liquidity pool. Liquidity tokens are redeemable for their share of the pool's cTokens and fCash at any time.
To deposit into a liquidity pool, the LP will specify how many cTokens they want to deposit and then the fCash amount can be calculated from the liquidity pool's cTokens/fCash proportion.
In order to provide the fCash to the liquidity pool, the LP will mint a pair of positive and negative fCash tokens. The LP will then put the cTokens + positive fCash into the pool and keep the negative fCash in their portfolio. This allows the LP to provide liquidity to the pool without having to buy fCash.
For example, to provide 100 DAI in liquidity to a liquidity pool that is 50% cDAI and 50% fDAI, the LP would need to mint a pair of +100 fDAI and -100 fDAI. The LP would then convert their DAI into cDAI, and put the cDAI + fDAI into the liquidity pool in exchange for liquidity tokens.
This would leave the LP with -100 fDAI + liquidity tokens.