here is a PoC for a payment pool using just op_ctv

  1. Users supply the address where they want to receive their payments.

  2. They create a series of CTV (CheckTemplateVerify) Taproot addresses that account for all possible spending paths.

  3. Users sign a Partially Signed Bitcoin Transaction (PSBT) to fund the initial pool address.

  4. Users can withdraw their initially deposited amount at any time without needing to interact with other users.

The remaining funds have to be paid out to the new pool address (enforced by ctv). The new pool does not include the users that previously left

If there are only two users left in the pool, they both exit together as there is no need to create a new pool

repo: https://github.com/stutxo/op_ctv_payment_pool

10 person pool example: https://mempool.space/signet/tx/2940953ec49e40d07933fb573669f83df300d726d24158c8a793ef983a248467

4 person pool example with p2a for fee management: https://mempool.space/signet/tx/94590553a7998bed5e459c2df96454b2c1952d23a8315ed0f7e9868a3ec78448

thanks @1440000bytes for the help, he has a post about this design here https://x.com/1440000bytes/status/1821357538899611681