I have already mentioned something in the first post, but I would like to elaborate a bit more on the basic concepts I’m going to build Coincer on to solve the basest problems.

Trust

When trading, you always want to be sure that you’re going to get what you paid for. In systems with a trusted intermediary this is quite easy. When you omit this party, you only rely on your trading partner to be honest and to keep his promise to deliver.

In bitcoin world #bitcoin-otc first launched such a “marketplace.” Similarly to eBay it incorporates a rating system, but enhanced with a OTC web of trust feature. Later, LocalBitcoins continued and made trading of bitcoins person-to-person more user-friendly (but retaining only the rating system, not the WOT).

Such an approach is certainly possible in Coincer, but rather as a supplement. In core it must be possible to trade with unknown party without being at risk of losing money. I.e., the trade is completed in whole or is cancelled in whole, but nothing in between. In other words, it must be atomic. Luckily, there already exist two protocols for atomic trading across blockchains. They were both devised by TierNolan (posts #10 and #38) and I’m definitely going to utilise them. The trick is obvious: just omit the fiat part and you’re suddenly enabled to the magic of cryptography!

Communication of the parties

Every user becomes a node in a P2P network and also serves a role of a router, forwarding incoming messages—some are supposed to be broadcast, while other might have only one intended recipient. Therefore, users are identified by their unique identifiers (possibly public keys—this would also protect the whole network against spoofing).

It might be that two trading users don’t know directly each other (i.e., their messages are routed (not broadcast!) blindly across the network). Or they might get connected directly to eliminate interference of any possible breakdown of the network into their trade. Each approach has its pros and cons, therefore it’s not yet decided which one will be chosen in the end.

Propagating and matching of bids and asks

Usual approach (taken, e.g., by Coloured Coins) is to employ (several) servers to which users connect and post their orders. There (kind of centralised) also happens the matching. Unlike strictly centralised exchanges, where matching is done automatically, here users have to select some existing suitable offer (and reply to it) or to create their own one.

The problem will +/− stay even for Coincer, although there might be some partial automation involved (in theory even full automation could take place!). As data will flow through the network and get cached by nodes, users will be able to filter out only orders they are interested in. In a scenario with some rating system also to filter by rating (although this is mainly a convenience, not a necessity).