10

Bitcointalk member BTCLuke suggested the following six criterion for a P2P Exchange:

A P2P Distributed Exchange MUST:

  1. Be without any central points of failure, since a government or two WILL be coming after it one day. I suggest a Bitorrent-like software schematic.
  2. Show everyone a very large number of possible trades to choose from, (thousands?) so assets can form a stable price. (e.g. a Bitcoin is going for $120)
  3. Transact trades pretty much INSTANTANEOUSLY, so when you're watching a graph and want to trade at a very specific time you can do so. (This is extremely important for arbitragers and other traders who help keep the price fluctuation down.)
  4. Offer Graphs and APIs for for graphing like MtGox does.
  5. Have three-user (trustless) trading, so a non-interested 3rd party always hosts the trade between the buyer and seller. (And should provide Escrow too!)
  6. Hold and transfer IOUs without the need for trust

Does there exist a whitepaper or open sourced project that has a solution for all six criterion? Furthermore, who in the community has been working on P2P exchanges and what regulations would impact them?

  • 2
    6 is silly. When you have $50,000 in the bank, that's value. Sure, it has a risk discount because the bank might go out of business. But it also has a convenience premium because the bank makes possible things like electronic banking, provides security, and so on. To argue that an IOU is not value is, frankly, just bizarre. – David Schwartz May 23 '13 at 5:04
  • Maybe if a certain lead cryptographer on a certain project would be willing to record a lecture for the bitcoin education project one could escrew all these bizarre notions of IOUs....Just saying David, we'd really like to have you. – Charles Hoskinson May 23 '13 at 6:08
  • 5
    6 is totally and utterly silly, mostly because either you are teleporting cash, or you are trading IOUs. Pick one or the other. – o0'. May 23 '13 at 22:15
  • I'd say 1 & 3 are the only required ones. – jiggunjer Sep 22 '17 at 5:17
8
+300

Decentralized peer to peer exchange of digital currencies to/from fiat currencies will always have the following constraints:

  • Fiat currencies cannot be encrypted and represented digitally by a decentralized entity/organization/system. Therefore, fiat currencies will always need to be transferred between traders through the banking system or physically using cash.

  • Peer to peer trades of fiat<=>digital currencies will always depend on trust. A peer to peer exchange protocol could easily ensure that one party would always send the Bitcoins. The transaction can be verified. The protocol could safely hold the Bitcoins until the other party sends the dollar (Decentralized escrow). But the protocol can never confirm the dollar transaction. It can never know for sure that the transaction has occurred. This introduces the below:

Who's going to send first?

I sent the money. No he didn't

Who will this person be that I'll receive a transfer from? Is he a criminal? Are the funds stolen?

What if this person tells his bank that I fraudulently received this payment.

I went to the cash exchange and had to confirm the transaction at gun point

Remember that transactions within the banking system are monitored, they can be reversed and funds can be frozen.

I have studied all projects aiming to accomplish a peer to peer decentralized exchange:

  • Dark Exchange
  • BitcoinX
  • Ripple - which is actually a payment system that will hypothetically allow trades as well.

I haven't seen a solution for the above mentioned constraints. All of these projects will be bound by them.

Ripple protocol proposes to allow dollars to be represented on the network and allow peer to peer transfer of dollars, therefore enabling btc->dollar trades. However, their model depends on Gateways -the entry/exit points of fiat currencies to the network. Users will still need to trust that these Gateways will actually hold and be able to pay the amount of dollars within the network as/when needed. There is no guarantee that these Gateways will not fraud the network or individuals. Neither is there a guarantee that the governments will not shut them down. (Read the first line here: https://ripple.com/wiki/Gateway_List)

My view on the future of fiat=>dollar exchanges:

First and foremost: The significance of exchanges will diminish as the adoption of Bitcoin grows. The less the need to trade your Bitcoins, the less important exchanges are. I truly believe this.

Are you saying that we not need exchanges? Absolutely not. No matter how much the adoption rate grows, there will always be a need to trade Bitcoins -this will be true for at least our lifetime. So we need better and more exchanges.

So what's it gonna be? A ton of local options for people to buy/sell Bitcoins and lots of big exchanges that local shops can trade with. You need to remember that currency exchange does not always have to be in continuous double auction format. When you go to an exchange office and buy euros with dollar, they are not actually matching that with another order. They put a safe profit margin on the price and we pay it. See: CoinBase

Overall, I truly hope that I'm proven wrong. But I don't think a peer to peer decentralized exchange can be built.

Important last note: All of the above are true only for fiat to Bitcoin exchanges. A digital to digital currency exchange can be made peer to peer and decentralized given that both allow peer to peer public transfers and both are decentralized. (Ex. Litecoin to Bitcoin)

  • Great answer, especially the point about fiat to digital exchanges always requiring trust. See my answer for a model that tries to solve the problem of trust. – Todd Chaffee Mar 29 '14 at 10:14
  • Could you expand on your "Important last note"? – Randomblue Jun 8 '14 at 11:43
  • I don't know how it can be done but peer to peer exchange of crypto currencies with a public ledger should be possible. At least in theory. – Emre Kenci Jun 9 '14 at 14:19
  • @Randomblue I believe the key word is "atomic" chain-chain transactions. – jiggunjer Sep 22 '17 at 5:24
  • Ripple is centralized. It is backed by a company that can be shut down by a government. – nu everest Jan 26 '18 at 2:14
1

Check this suggestion from a member of Open Transactions using Bitmessage for trust-less decentralized exchange system

https://bitcointalk.org/index.php?topic=212490.0

  • 4
    Just a link on 10+ pages thread on a forum is not the best answer. Could you please outline how those six criterion are fulfilled by a combination of Open Transactions and Bitmessage? – Alexey Kalmykov May 25 '13 at 12:23
  • A good answer should describe the content of the link. Links go dead. – Todd Chaffee Mar 29 '14 at 9:28
  • Look for Open Transactions and Bitmessage... But I think it is still theory. github.com/Coinffeine/coinffeine is more code now rather than only words and theory. – rdymac Mar 30 '14 at 11:48
1

I think the best we have as a P2P exchange is Ripple. Citing their website:

Ripple is a payment system for any currency with support for cross-currency transactions. You can use Ripple to send and receive money in dollars, euros, yen or Bitcoin without having to do extra work for foreign exchange transactions. Now, you can spend and receive your Bitcoin as easily as any fiat currency.

So, Ripple can be used as an exchange for different currencies.

However, it does not comply with all the requirements you listed. Let me go over them.

  1. Be without any central points of failure, since a government or two WILL be coming after it one day. I suggest a Bitorrent-like software schematic.

    Ripple itself has no central point of failure if their intended network topology is followed. However, for exchanging currencies, Ripple still depends on gateways that do the actual exchange. Still, these gateways need only to be trusted for a limited amount of currency. If you would really want to, you could see them as the trackers in BitTorrent's paradigm.

  2. Show everyone a very large number of possible trades to choose from, (thousands?) so assets can form a stable price. (e.g. a Bitcoin is going for $120)

    In Ripple, all trades happen through gateways. So for every gateway you could have an order book. Probably it's more useful if every gateway just shows its current exchange rate and trade volume. For a more detailed market depth, you will probably be referred to the gateway's website.

  3. Transact trades pretty much INSTANTANEOUSLY, so when you're watching a graph and want to trade at a very specific time you can do so. (This is extremely important for arbitragers and other traders who help keep the price fluctuation down.)

    As far as I know, things in Ripple itself are instantaneous. Exchange delays will most probably end up being very gateway-specific.

  4. Offer Graphs and APIs for for graphing like MtGox does.

    This is an interesting one. I don't think Ripple currently supports exchanges via gateways. But Ripple is really still very immature (the server code isn't even released yet), so it is very much possible that this is coming.

    Since most open software tries to make it possible to do the exact same thing via the API as you can do by using the software itself, this will most probably come to the API.

  5. Have three-user (trustless) trading, so a non-interested 3rd party always hosts the trade between the buyer and seller. (And should provide Escrow too!)

    Ripple plans to support escrow. Whether that will apply to XRP transactions as well as gateway exchanges is unsure to me.

  6. Hold and transfer IOUs without the need for trust

    Since the whole thing Ripple is built upon is trust, I think it just fails this one. It can hold IOU's though, in fact that's basically all it does.

So, I know Ripple is not the ideal solution you were looking for. But still, Ripple is very much about exchange of currencies, so maybe some day it will be suitable as a true P2P-like exchange.

(Also, I'm no Ripple expert. Feel free to correct me if I made a mistake!)

  • Concerning "2." I thought every user in the ripple network could offer to exchange assets. – Murch Aug 22 '13 at 15:28
  • Note that Ripple is not yet fully decentralized. There is still at least one component (the UNL) which is maintained by a central authority (Ripple themselves). There is a roadmap for making UNLs decentralized so to be seen how that pans out. – Todd Chaffee Mar 29 '14 at 9:35
0

Since you asked for a definition, the most naive version of a p2p exchange just needs to allow buyers to meet sellers and vice versa, e.g. via a broadcasting mechanism. All else is optimization, which is important to minimize fraud/loss and maximize ease of use.

These optimizations can have many forms also depend on if the type of transaction is pure crypto-crypto or the hybrid fiat-crypto.

One popular mechanism for securing hybrid transactions is using 3rd party arbitrators in a multi-sig transaction. Another option is to use tokens (another crypto) that are fiat-guaranteed by a third party (e.g. a group of companies called Gateways). Either way you need to pay the third party for their service.

Pure C-C transactions could exclude third parties but have their own technical challenges.

The theoretical advantage of matching peers (P2P) is that market efficiency will balance the buy/sell prices in a fair way, and if enough peers join there could be a single exchange value since the margins from both parties offset each other.

I don't like the terms centralized vs decentralized because p2p isn't inherently decentralized. You could have a centralized (hub) system that matches peers, likewise you could have a traditional 'consumer-to-business'(C2B) exchange that runs on a decentralized network.

0

Cryptobridge https://crypto-bridge.org/ is a brand new decentralized exchange built on top of bitshares, but with more gateways.

  • The blockchain behind the decentralized exchange, graphene, can process up to 100.000 transactions per second and has an average confirmation time of just 3 seconds.
  • Each client holds the private keys to their coins. CryptoBridge has no access to the client's funds.
  • There is no central point of failure. All deposits, withdrawals and all order books are transparently stored on the blockchain.
  • You can also stake BCO (Bridge Coin) and earn money from every trade made on the platform.
0

The marked answer covers most of the major concerns I would have but there is one idea I've seen that does have some merit.

The crux of the challenge is that a decentralized exchange requires you to trust someone with your fiat.

In Ripple and Bitcoin – Foundations of a Decentralized Economy they describe a model I would trust for small amounts of fiat.

The basic idea is you establish lines of credit with people you trust.

A simple scenario is when the two people wanting to make a transaction have a person in common who they trust. Paraphrased from the article:

  • Mark and Brian are strangers who want to make an exchange. Mark is willing to sell 0.5 BTC to Brian in exchange for $50 (USD).
  • Brian has previously established a line of credit with his friend John for up to $100.
  • And John happens to live with and be friends with Mark and they also have agreed to trust each other for up to $100 of credit.
  • So once John has been notified that the transaction is valid he pulls out his wallet and pays Mark the $50.
  • Brian now owes John $50 and since they trust each other they can sort that out when and as they wish.

A picture (source: Ripple) might help.

Exchange using a trusted friend in common

This can easily be extended to chains of trust so that a person in common isn't needed.

I still have a couple of small concerns with this model:

  • Collecting for larger amounts could be a burden and not very timely since it would be spread across a large number of your trusted friends.
  • There is some risk with your total debt obligation to friends. It would be rare, but if you agree to give a credit line to 100 friends, each for $50 and the majority of them need to draw on that in the same week you would need to come up with something approaching $5000 in cash. The system would need to include a "max amount per day / week / month" that you would be willing to cover.
  • Chasing friends for the cash they owe you could get very annoying. It would have to be automated somehow for it to be practical.

But it seems like the minor concerns I have could be addressed in an automated way, so I think this model has some promise. Now Ripple just needs to finish decentralizing the still centralized elements of their network (the UNLs for example as explained in this question) and this model could have some potential. In aggregate, I actually trust my friends far more than I trust my bank.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.