Bitcoin Forum

Bitcoin => Project Development => Topic started by: Elwar on September 26, 2011, 05:13:43 PM



Title: Decentralized Exchange
Post by: Elwar on September 26, 2011, 05:13:43 PM
I have been wracking my brain on how a decentralized exchange would work in a similar way to Bitcoin.

The high level concept is easy. Have an amount of cash in the system and an amount of Bitcoins in the system, people put in and take out at different rates which gets propagated through the system to keep track of whom has what.

But the hardest part, I believe, is the part about putting money in and taking money out. Unless each user or each "miner" is going to be its own bank and allow physical cash deposits and withdraws, there needs to be a separate hook into regular banks.

I was checking out this site: http://www.neteller.com
They offer a money transfer service via several deposit methods and several withdraw methods including sending you a prepaid debit card.

The fees are what I am not so clear on. It says that a transfer of dollars is 1.9% which is not worth it since you can exchange your money to Bitcoin right now for less than .5%. But they did have a "merchant site" transfers for free.

So, in theory, each "miner" could be a merchant site. They get the cash paid to them, then return Bitcoins to the buyer. Or the buyer pays Bitcoins and they send them cash. The miner could get a cut of the transaction (.1% or so).


The way I saw the distributed program working would be:
Someone wants to mine: They set up the program with a deposit of either Bitcoins or money. Once they set it up, the system takes the amount deposited and distributes it evenly based on total amount in the system. So that if Bitcoin is worth $5 and you put in 10 Bitcoin, it would even you out so that you have $25 in your cash account and 5 Bitcoin in your BTC account. As more money is brought into the system, the ratio would adjust to where the "price" would go up for Bitcoin. If more Bitcoin are brought in, the ratio would favor having dollars.

The means of depositing and withdrawing could be expanded as the system evolves. But the underlying system of exchange could continue on.


Title: Re: Decentralized Exchange
Post by: Elwar on October 04, 2011, 05:46:28 PM
Ok, I have been thinking on this a bit more.

The money account side of the equation could actually be dynamic over time.

It could be set up so that most of the "miners" have several different means of holding or transferring money. Whether it is through Dwolla, Paxum, Libert Dollars, whichever. They would link up with another miner who has the same money service and exchange money that way.

Thoughts?


Title: Re: Decentralized Exchange
Post by: Elwar on October 05, 2011, 12:30:17 AM
It needs to be P2P

Definitely, this is why I said it needs to work like Bitcoin.

It does not necessarily need to be built into the client. A separate exchange client should work.


Title: Re: Decentralized Exchange
Post by: cbeast on October 21, 2011, 09:41:20 PM
Is there a more organic way to set the price of bitcoin? What would happen if we just put a bitcoin price tool in the general client? If we voluntarily report a fiat value of bitcoin for purchases or trades to another decentralized network, that network can analyze the data and report a statistically reliable price. The network can verify via a second hash generated with the same key as the bitcoin, but will also have pricing data in various currencies. Bots will mess with the pricing, but not enough that can't be dealt with by the algorithm or as are any other network attacks. Any thoughts?


Title: Re: Decentralized Exchange
Post by: EhVedadoOAnonimato on October 21, 2011, 10:33:19 PM
Truly decentralized exchanges can only operate in an OTC fashion, which has lots of trust issues and doesn't scale.

A centralized but anonymous exchange could exists on these lines: http://bitcoinweekly.com/articles/anonymous-money-needs-an-anonymous-exchange
There you could have escrowed exchanges.
Clearly, the hassle for the user of such anonymous exchange is considerable. And the user isn't any more anonymous than in OTC exchanges - he may be unfortunate enough to have his money transferred to an attacker. Plus, implementing such a thing would not be easy.
I wouldn't expect such solution to appear while bitcoin trading is still legal/tolerated.


Title: Re: Decentralized Exchange
Post by: morpheus on October 22, 2011, 12:07:37 AM
There is already a working (mostly) decentralized p2p exchange: https://bitcointalk.org/index.php?topic=27055.0

It works more like OTC over a p2p network.


Title: Re: Decentralized Exchange
Post by: EhVedadoOAnonimato on October 23, 2011, 03:42:15 PM
OTC sucks.  It has to be in software, with an API, and with a real time order book and market charts available.  Anything less is not an improvement.

Order books and market charts can be arranged in P2P. What can't be arranged are the trust issues on people-to-people transfers. And even if a good enough reputation system is built, this doesn't scale. A business with a large volume, for example, can't afford to pass hours every day converting BTC to conventional currency - and it would need to, if it wants to filter bad offers from the trustworthy ones. Unless the reputation system is so good that even that can be automated.

I like the idea of an anonymous exchange. But the hassle of creating fake accounts would probably scare most people....


Title: Re: Decentralized Exchange
Post by: jtimon on October 24, 2011, 07:46:45 AM
As said in the other thread, you can make atomic trades between chain currencies. If you want a usd/btc with decentralized atomic trades, you need usdCoin, a chain currency backed by dollars. Here you move the trust to the issuers of the usdCoins. You pay them in USD and they send you usdCoins. You pay them usdCoins and they give you USD back.
But first it would be great to have a btc/nmc decentralized market. And for that we need to allow replacements in both chains.


Title: Re: Decentralized Exchange
Post by: jago25_98 on November 22, 2011, 08:30:25 AM

 I think there should be 2 main developments on this.

1) Improve the Darkexchange reputation system. I know it's hard to scale but can't code for this be derived from previously coded p2p systems? If I know that bob has transferred £1000 before then we can expect that to work again, in a sense slowly building up trust. Sure bob can run off with the £1000 but by then the reputation based on that is worth nearly as much.

2) Get a simultaneous virtual currency exchange, or automated escrow. If this could work reliably then we have a way to continue trading BTC straight away; you could transfer to LindenDollars or another virtual currency like that and go from there.

I think #2 is more important.


Title: Re: Decentralized Exchange
Post by: freemoney458 on February 13, 2012, 11:00:05 PM
I hope this thread is still active yet.

Here are my ideas for a decentralized, fully automated exchange:

1) Darkexchange is heading the right way in principle.
2) At least part of the exchange should be supported (means: integrated) into the bitcoin clients, so that the average joe can buy/sell bitcoin with the push of a button, just saying e.g. "I want to buy 5 BTC" or "I want to sell 1 BTC".
3) All else should be handled automatically.

I think a first step towards wider adoption of decentralized exchanges would be a common protocol built into the bitcoin clients.
This protocol should just contain the basics of making a buy/sell offer and for interacting with an exchange client.
Here is an example how such an automated exchange client could be like.
I refer to this exchange client as darkexchange client (as a compliment to morpheus), although I do not think it is implemented.

4) In a preferences screen, the user of the darkexchange can specify how he wants to make / receive payment.
5) In Germany, the majority of fiat banks offer the HBCI / FinTS protocol to their customers for online banking through specialized software. There exist open source implementations of this software. This means, that fully automatic payment processing is possible if this protocol is integrated into the DarkExchange client.
 - The DarkExchange client on the seller side just has to provide the bank account data to the DarkExchange client on the buyer side.
 - The DarkExchange client on the buyer side then makes the payment fully automated from one bank account to the other.
 - These FinTs online banking transactions are irreversible, just like sending of bitcoins.
 - The DarkExchange client on the buyer side notifies the seller side "Payment done, please send bitcoin to address 1Bxxxxxxxxx"
 - The DarkExchange client on the seller side checks the online bank account and waits until the payment arrived, then informs the bitcoin client to send the bitcoins to the specified bitcoin address.
6) If the amounts which are exchanged are small enough, the counterparty risk during a transaction can be minimized to an acceptable level.
7) The software could also contain configurable rules that large amounts are split up into several small transactions to reduce the counterparty risk.
8 ) The software should be able to check with the bitcoin client if the purchased bitcoins already arrived and locally blacklist any DarkExchange user that does not fulfill the contract. Further transactions would not be executed with this user until the bitcoins arrive.

Anyway, this possibility might not exist in other countries.

EDIT:
Other solutions might exist in the Untited States, Britain, etc.
Therefore, best would be to have just a standardized interface definition for the bitcoin clients which allows that the bitcoin client interacts with an exchange / brokerage application.
The exchange/brokerage application would then implement the darkexchange protocol and any country-specific online fiat banking protocol like e.g. HBCI/FinTS.


Title: Re: Decentralized Exchange
Post by: jtimon on February 14, 2012, 07:32:00 AM
I hope this thread is still active yet.

Here are my ideas for a decentralized, fully automated exchange:

1) Darkexchange is heading the right way in principle.
2) At least part of the exchange should be supported (means: integrated) into the bitcoin clients, so that the average joe can buy/sell bitcoin with the push of a button, just saying e.g. "I want to buy 5 BTC" or "I want to sell 1 BTC".
3) All else should be handled automatically.

What happens if someone sends the bitcoins and doesn't receive the EUR/USD or vice versa?
As far as I know, the trade itself is not automatic nor atomic in dark exchange.


Title: Re: Decentralized Exchange
Post by: btc_artist on February 14, 2012, 04:38:39 PM
A decentralized exchange would be awesome, but there are many hurdles to jump.


Title: Re: Decentralized Exchange
Post by: BTConomist on February 14, 2012, 04:54:48 PM
A decentralized exchange would be awesome, but there are many hurdles to jump.

How more decentralized can an exchange get?
We already have the most decentralized one: i.e. earn BTC <---> spend BTC?


Title: Re: Decentralized Exchange
Post by: btc_artist on February 14, 2012, 05:08:01 PM
A decentralized exchange would be awesome, but there are many hurdles to jump.

How more decentralized can an exchange get?
We already have the most decentralized one: i.e. earn BTC <---> spend BTC?
I think we're talking about exchanging BTC and fiat currencies.


Title: Re: Decentralized Exchange
Post by: freemoney458 on February 15, 2012, 03:50:21 PM

What happens if someone sends the bitcoins and doesn't receive the EUR/USD or vice versa?
As far as I know, the trade itself is not automatic nor atomic in dark exchange.

It needs to be defined if bitcoins are sent upfront or only after receiving EUR/USD.
Personally, I am inclined to only send bitcoins after receiving EUR/USD.
Any way it is defined, either the buyer or the seller will be exposed to counterparty risk.

This is independent wether the decentralized exchange runs automated or not, because some fraudulent attacker might use the automated protocol or imitate an automated exchange.

To mitigate the counterparty risk, some or all of the following procedures would be helpful:
1) Only trade small amounts with personally unknown trade partners.
2) Build up a (decentral/localized) trust/credit database with trade partners history. You could also keep the number and amounts of successful trades in this trust database with the specific trade partners you personally interacted with. It could be automated, too.
3) Trade bigger amounts depending on the transaction history with a specific trade partner in your trust/credit database. The credit line of trade partners can be determined from the trust/credit database. Could be automated, too.
4) The bitcoin seller could also be asked by the bitcoin buyer to demonstrate prior to the trade that he has control over sufficient bitcoin resources. The bitcoin seller could list some of the bitcoin addresses he controls, the potential buyer picks one and requests that the seller sends a chosen small amount of bitcoins to a second address of the seller. The potential buyer could then observe in the blockchain if the claim of the seller is correct that the seller controls a sufficient amount of bitcoins for the upcoming trade. Could be automated, too.
5) Feel free to add to the list.


Title: Re: Decentralized Exchange
Post by: ThomasV on February 15, 2012, 03:56:49 PM
Have you guys looked at bitcoin.de ?
Fiat money transfers are person-to-person, while bitcoins are held in escrow by the site.
I believe this is a sensible solution.


Title: Re: Decentralized Exchange
Post by: markm on February 15, 2012, 04:01:19 PM
How about a friend-to-friend arbitrage-bot network?

If it is to at least some extent true that a person's income tends to correlate to some extent with those of their friends, then maybe it might be generally not too horribly unreasonable to hope that for normal day to day amounts normal people might normally like to exchange it will turn out that at least some of their friends will have about as much spare wealth lying around as they do, thus that their arbitrage bots will be able to handle some amount in not too different order of magnitude as their own aribitrage bot can handle.

The basic theory here is that if you tell your bot to value a particular currency a little higher, in general via the arbitrage network it will tend to find that currency flowing toward it. If so, then the more of a specific currency you want, the more you have your bot bump its value by.

This assumes everyone involved has a pool of spare wealth they can plop down initially into their arbitrage bot and that they can leave it there without caring a whole lot about which of hundreds of fiat and non-fiat currencies it happens to be held as at any particular moment, until they happen to want to convert some of X into some of Y. At that point they dump the X they are looking to get rid of into their bot and tell it to lower the price of X slightly, and also tell it to raise the price of Y slightly.

Via arbitrage this should lead to X flowing away and Y flowing in...

Note that I say FRIEND TO FRIEND for this network in order to reduce the whole trust thing to simply trusting your FRIENDS to settle up any differences in total debts between you whether you end up owing each other a few each of a few hundred different currencies or a few of some specific currencies. Also because hopefully at least some currencies you actually like at least some of your friends actually like. (For example, some of them might live in the same nation you do, thus might have use for the same kind of fiat as you do...)

This is basically ripple-like, but instead of contemplating a transfer of X amount of Y to person Z, it contemplates shuffling around the type of currencies people's wealth is stored in the system as at any particular moment to bias it in such ways that people interested in currency X end up with more currency X and people interested in currency Y end up with more currency Y.

-MarkM-


Title: Re: Decentralized Exchange
Post by: btc_artist on February 15, 2012, 04:02:10 PM
Have you guys looked at bitcoin.de ?
Fiat money transfers are person-to-person, while bitcoins are held in escrow by the site.
I believe this is a sensible solution.

What happens if after the fiat person-to-person transfer, the seller claims they haven't received any fiat and the Bitcoins are returned to them?


Title: Re: Decentralized Exchange
Post by: ThomasV on February 15, 2012, 04:04:28 PM
Have you guys looked at bitcoin.de ?
Fiat money transfers are person-to-person, while bitcoins are held in escrow by the site.
I believe this is a sensible solution.

What happens if after the fiat person-to-person transfer, the seller claims they haven't received any fiat and the Bitcoins are returned to them?
there is a rating system: https://www.bitcoin.de/en/faq


Title: Re: Decentralized Exchange
Post by: freemoney458 on February 15, 2012, 10:04:38 PM
Have you guys looked at bitcoin.de ?
Fiat money transfers are person-to-person, while bitcoins are held in escrow by the site.
I believe this is a sensible solution.

It looks like BitMarket.eu.

I agree that escrow is better than nothing.
Also a rating system is better than nothing.

However, both the escrow and the rating system again depend on centralization.
So you would need to trust the security and honesty of the escrow and to trust that the rating system is not manipulated.

Especially rating systems are quite easy to manipulate, since at the core they are public gossip. If enough people work in a coordinated fashion, they can manipulate the rating of any user up or down like they want. I would not put too much trust in public rating systems.

IMHO a rating system which is based on hard facts which are based on personal experience is much better.
Such a rating system can be automated and published as open source application, but with a local database gained from own experience.

Such a rating system could also be extended ripple-like: If I made good experience with user "Alan" (in my database), I also trust the user "Bob" that Alan has in his database as trusted (Maybe I would choose to restrict Bobs credit line more than Alan does). Please note that this is still based on localized databases gained from hard evidence, and not based on a "public gossip register".



Title: Re: Decentralized Exchange
Post by: jago25_98 on February 15, 2012, 10:44:08 PM
A hidden service in Tor or i2p like www.bitcoin.de would be a big jump forwards


Title: Re: Decentralized Exchange
Post by: finway on February 16, 2012, 03:34:36 AM
You can't make fiat money p2p?