This is so big that I'm having a hard time wrapping my head around it.
Let's try something simple. How do I exchange XCP for BTC? I put up a trade in counterpartyd, then someone accepts my trade and my XCP go into escrow. The buyer then sends BTC to the address, and counterpartyd verifies that the BTC have arrived and releases my XCP to the buyer? Is that correct?
I think in order to prevent double-spending your XCP are put into escrow as soon as you put up a trade, not when it gets matched.
Gotcha. But everything else works basically the same way? The buyer doesn't get my XCP until counterpartyd sees the BTC has been sent to the designated address?