Hi, I'm a developer and I'm working on a privacy focused CEX, completely opposite of yours no KYC, no logging.
Your approach sounds good on paper, but it could become expensive on withdrawals:
1. When a user is withdrawing, they would have to pay the network Fee. As you know, Bitcoin network fees change regularly, and withdrawing a small amount of BTC might cost more in network fees than the amount itself.
2. Every time someone trades a part of one UTXO, you’ll eventually need to split that UTXO on chain. Over time, you'll accumulate lots of tiny “dust” outputs that cost more in fees to move than they’re worth.
3. Dust clean up (consolidation) means on chain transactions, and you lose your “no-pooling” promise if you consolidate systematically.
4. If you end up with thousands of tiny UTXOs across thousands of accounts, it may not be worth consolidating them at all.
5. Tracking every UTXO of every address in your database and keeping it in perfect sync with the blockchain is heavy. I think you’d need a full node, mempool access, and reorg handling.
6. You still have full custody of funds, so legally and practically, you’re back to being a centralized, custodial exchange.
7. You talk about traceability, but tracking a growing base of 100k+ users would be challenging for law enforcement.
Positive points from your approach:
1. Buyers auditing the source of funds before every trade sounds great.
2. Funds aren’t pooled, so there’s no risk of using one user’s BTC to cover another’s withdrawal.
Thanks for the feedback, i really appreciate it.
1) Note that my exchange is also no KYC, meaning the platform would not force it but buyers/sellers can make it mandatory whenever it is needed meaning it can be avoided.
2) Yes you are right about accumulation of dust wallets, that's not an issue for me i believe. i gather them as "inputs" (significantly cheaper than outputs) since they are controlled by the same private key and route them to the exchange's fee collection address.
3) My idea of no pooling and simply facilitating escrow would put the buyer/seller accountable in case of money of laundering scenario, meaning no stolen/tainted funds would route my pool (i could figure out a way to filter them automatically and not collect those).
4) Pooling + No KYC is absolute suicide in my opinion, if you are holding someone else funds in that pool and law enforcements comes and says that there are stolen funds in that pool that you need to refund. In this scenario you have two choices, take the loss out of your pocket or another innocent user loses their funds (You won't have 1:1 backing of user funds anymore).
5) Yes i do have full custody of funds, that could be me at legal risks even if i don't route them or collect fees at some point but significantly less risks and accountability.
In the end my goal is not to end up like exch.cx and give users the freedom of exchanging without KYC so they take the risks themselves as they are going to withdraw that exact money they exchanged.