Author

Topic: Distributed Bitcoin Exchange (Read 2271 times)

newbie
Activity: 54
Merit: 0
June 24, 2011, 03:16:42 AM
#17
Hi, what about my proposal of a 2nd crypto currency.
You may need an escrow to secure double transaction, but there's no need for additional trust.
The issues I see are the following
  • It does not inherently help to cash your btc in $, but it moves most transaction fees on the btc/bt$ market and relegate traditional exchanges to in/out operations, pretty much like Dwolla kind of services
  • You need to trust the value of those bt$: that can be backed by a distributed fund (the "Bank"), which builds up from btc transaction fees. The main point and difference between btc and that new bt$ exchange currency, is that the latter is made to be entirely owned by the bank to start with. That distributed bank does not need any central authority. Each node witnesses bank transactions and can monitor the in/out of btc on the distributed bank account. The network can monitor live the individual btc amount that everyone is insured for, and adjust accordingly the max volume each user is allowed
Overall, it seems feasible to me, and even if it's not helping in the short term because we currently need more ways to echange btc in real $, it makes sure in the long run that digital/analog exchanges are not pumping the market fees, but rather taking a small Dwolla/like fee, while most transactions are btc/bt$.
newbie
Activity: 28
Merit: 0
June 24, 2011, 01:15:34 AM
#16
Thanks for your valuable ideas! However, several point of clarification are in order.
1. A really safe/secure/trustworthy escrow should have control over both legs of a trade (BTC and the other currency). Otherwise, it's OTC, with all the problems...
2. For that to happen, both BTC wallet and "other accounts" are needed. API's/codes/sigs are NOT enough.
3. Some body (the board) needs to open, administer and make available for audit these accounts.
4. Same board can take care of the rest of the admin ops.

This is, indeed, centralization - to a certain degree. That's why I think the board should be composed from people like Satoshi, Gavin etc. whom we all trust, and later add elected members.
newbie
Activity: 3
Merit: 0
June 23, 2011, 07:23:25 PM
#15
The only thing the peer to peer network would do is escrow the transaction by not allowing one side of the deal to go through without the other also going through.

To give you an example: Let's say you agree to buy ฿10 from me for $150 USD, and you're going to pay me via PayPal.

I like the approach you're describing, except my understanding of Paypal is that the risk of chargebacks would make this too risky for the seller (bitcoinmarket.com cut off PPUSD due to chargeback fraud, from what I hear -- a friend of mine was burned).

Also, to prevent the market from being flooded with unbacked buy orders, we would need a trusted escrow that could guarantee that sufficient USD to carry out the order is being held in reserve for each outstanding buy order in the network (otherwise we wouldn't have an accurate metric of market depth).
newbie
Activity: 22
Merit: 0
June 23, 2011, 07:12:33 PM
#14

Well, that's what I was suggesting. That the exchange have its own block chain made up of buy/sell combinations, perhaps with each ID secured by a GPG key if needed.


I'm sorry I don't read your last post as such. Let me know if the following is indeed what you had in mind.

I think we're getting closer. (Pardon for cutting your excellent post off, but it's too long to quote without it being rudely long.)

I wasn't suggesting a bank or some other kind of holding entity, however. The idea of OTC trading, after all, is that there is no bank. The counterparties "do the deal" themselves, as it were. The only thing the peer to peer network would do is escrow the transaction by not allowing one side of the deal to go through without the other also going through.

To give you an example: Let's say you agree to buy ฿10 from me for $150 USD, and you're going to pay me via PayPal. Our clients having the ability to escrow both sides using the bitcoin API on my client and the PayPal API on yours. I put up my ฿10 and the client places it in escrow, brodcasting a unique code, part of which is the transaction code for the trade, and part of which is unique to my half of the transaction. (Note that the bitcoins are still technically mine, but now I can't get at them.) You issue a pay order in your client via PayPal and your client broadcasts another code, part of which is the transaction code for the trade, and part of which is unique to your half of the transaction. Finally, once the PayPal API confirms a completed transaction, meaning the $150 has been moved to my PayPal account, my client releases the funds and moves them into your wallet. Both clients issue a completed code for the completed transaction, which can then be confirmed using "mining."

No bank necessary.

(Note that, I use "you and I", but in reality, the two counterparties would probably be matched by the clients based on bid and ask price, not "face to face" -- email to email, or whatever -- negotiation.)
member
Activity: 72
Merit: 10
June 23, 2011, 05:42:33 PM
#13
In order to take care of the “administrative” side of things, there could be a board-of-trustees-like governing body – initially some prominent characters of the community, later elected members etc. This board could hire, manage and pay programers, developers, CPA's etc.

Why even create a board of trustees?  That is to centralized.  Check out this post on reddit.

http://www.reddit.com/r/Bitcoin/comments/i7krs/idea_for_a_totally_distributed_monetary_exchange/

The author proposes an interesting twist on Open Transaction.  The basic idea is to use Open Transaction to allow people to issue digital contracts representing real world goods.  These digital contracts can take the place of the physical currency (be it gold, silver or FRN's).  Open Transaction facilitates the signing and trading of these contracts.  So long as the contract issuer has a good rep. and is well known, he can create these contracts and people can trade them with confidence.  Others can compete in the same manner... so it becomes a question of reputation.

Now further modify Open Transaction so that it uses a distributed block chain and clears the transactions so everyone can see the exchanges happen.
newbie
Activity: 17
Merit: 0
June 23, 2011, 04:37:07 PM
#12
Since Bitcoin may need a few more years to take over the global economy

Thanks for the laugh, I hope you were not being serious!
newbie
Activity: 54
Merit: 0
June 23, 2011, 04:33:27 PM
#11
On a second thought, there seem to be 2 issues discussed:

How you can distribute $ transactions with escrowing techniques: I'm glad if that if a payment service accepts that use of their API, but they may also refuse, be it to protect traditional exchanges.
What I propose is something different:
a second block chain of much more stable value because it is backed by a virtual bank insured in btc.
If at any time you know you can withdraw, say 100 btc at market price, you may very well place most of your low amount / high frequency orders on the distributed market.

Of course by the end of the day, you still need to cash out your btcs on a regular exchange, but that's just as traditional exchange have to cash their dollars at the end of the day: Dwolla gets only a small gain because most transactions are kept on the btc Exchange side.

If trades move to a distributed exchange, most transaction fees are kept on the P2P network, and valued only to consolidate the insuring fund.
As a result, the traditional exchanges would find themselves in a position similar to Dwolla.
newbie
Activity: 3
Merit: 0
June 23, 2011, 03:14:22 PM
#10
Distributed trade escrowing seems like something that could be addressed using the existing Bitcoin Script mechanisms:
https://en.bitcoin.it/wiki/Script
in conjunction with public API's from payment services that do not allow chargebacks (e.g. Dwolla, as I understand it).

When the network has matched up a buyer and seller for a trade, the seller's client initiates a BTC transfer using a script that only allows them to be unlocked upon receipt of verification of a USD transfer from the buyer's Dwolla account to the seller's Dwolla account (the transfer would include a special "comment" containing a hash code identifying it as corresponding to the current transaction).  The "timeout" mechanisms could be used to send the BTC back to the seller if the Dwolla transaction was not verified within some time window.
newbie
Activity: 54
Merit: 0
June 23, 2011, 02:28:25 PM
#9

Well, that's what I was suggesting. That the exchange have its own block chain made up of buy/sell combinations, perhaps with each ID secured by a GPG key if needed.


I'm sorry I don't read your last post as such. Let me know if the following is indeed what you had in mind.

P2P pairing of asks/bids is trivial as you noted.
Now you're talking about an analog currency counterpart to a btc order, and use of an escrow to validate it.

If the 2nd currency is also a block chain, then there's no need for a trust artefact.
Nodes are paired, 1 transaction is made for each currency, that's it: pairing is really all you need technically.

Now the problem is how does that 2nd currency trades against analog resources. If it's got the same characteristics, then there's good chance both currencies will get completely paired in real time, you're left with 2 clones of the same thing and you haven't moved any closer to analog value.

There are IMHO 2 solutions out of this:
  • Either the 2nd currency must have another intrinsic use and value (namecoin is actually maybe a good candidate), so that the market can indeed value them differently over time
  • Change the dynamics of the 2nd currency. You can for instance  imagine that initially, the P2P Exchange is also a bank that collectively owns all the available bt$ for that 2nd currency with no more mining allowed.
    • Once the exchange is already up and running, one can join the exchange simply by starting to trade btc for bt$, either with an individual or with "the bank", which always trades at the last ticker price.
    • The only way out is by cashing out your bt$ into btc either from an individual or from the bank.
    • The main question is at the beginning then: who creates the bank? Whoever does so could in theory accumulate a large quantity of bt$ for nearly no coins and we get back to the arguments about Satoshi Nakamoto and early adopters. One could also decide that for a period of time, bt$ will trade for a fixed rate of btc until the bank reaches a good reserve of btc. That leaves time for everyone to get in at identical conditions. Then only can the rate vary according to free market.
    • If the bank gets dry, it means someone it means people have cached out the initial amount, which could be a problem since it means bt$ are again left paired with btc until the bank can warrant withdrawals again. One could say that in such conditions the bank keeps a reserve of BTC, an insurance built over time with transaction fees for instance, and maybe a period of controlled rate, with the acceptance that moderate withdrawal at market price is all you are guarantied -> this is pretty much MtGox conditions as we know them and this is probably fine with most btc users.

What do you guys think?
newbie
Activity: 22
Merit: 0
June 23, 2011, 01:23:19 PM
#8
For this to happen, other currencies need to run on a similar model to bitcoin, i.e. blockchain and all.

What about indeed using a second block chain? One could for instance imagine such a p2p distributed Exchange where you trade bitcoins for namecoins.

Well, that's what I was suggesting. That the exchange have its own block chain made up of buy/sell combinations, perhaps with each ID secured by a GPG key if needed.
newbie
Activity: 54
Merit: 0
June 23, 2011, 01:19:40 PM
#7
For this to happen, other currencies need to run on a similar model to bitcoin, i.e. blockchain and all.

What about indeed using a second block chain? One could for instance imagine such a p2p distributed Exchange where you trade bitcoins for namecoins.
newbie
Activity: 7
Merit: 0
June 23, 2011, 01:02:31 PM
#6

I totally agree with the major thrust of this: A peer-to-peer OTC style exchange. The OTC bitcoin exchange is limited by the IRC technology and is just not efficient. ...

For me the significant difference to your later proposal: With otc I need to build up trust only with a few individuals. Which needs a certain care, this is true.
I prefer to do so instead of some anonymous or pseudonymous agents I do not know much about.

For example: As comes out MtGox is NOT the original Magic the Gathering Online Exchange people but someone they just sold it to. Why should I trust them? Or Trade Hill or Bitcoin 7?
How did they earn my trust?
newbie
Activity: 22
Merit: 0
June 23, 2011, 12:25:21 PM
#5
At this point, one of the main weaknesses of the Bitcoin ecosystem is the exchange of BTC to other currencies. Since Bitcoin may need a few more years to take over the global economy, exchanges will remain necessary.

[....]

Some believe that the solution would be to have more MtGox/TradeHill/BitcoinExchange – like exchanges around, so if one fails, gets closed down, etc. the others will remain active etc. While that may be true, it does not solve three fundamental problems: withdrawal limits, privacy and trust.

Withdrawal limits of $1000/day and $10,000/month are laughable. No serious business or trader can live with that. IMHO, this is one of the biggest drawbacks for the Bitcoin economy at this time.

I think there is a simple solution which is in the spirit of Bitcoin: a Distributed Bitcoin Exchange. The software can be anonymous, peer-to-peer, use strong cryptography, and use a network of supernodes to maintain and distribute the database of buy/sell orders. The users/businesses  maintaining the supernodes would be sharing the transaction fees using a fair model, and the whole system could interface with LibertyReserve, Dwolla, banks etc.

In order to take care of the “administrative” side of things, there could be a board-of-trustees-like governing body – initially some prominent characters of the community, later elected members etc. This board could hire, manage and pay programers, developers, CPA's etc.

Financing this project could be done by selling stock in this “corporation” and / or accepting donations of BTC, USD, time, skills, talent etc.

If this project succeeds, maybe later the functionality can be incorporated in the main Bitcoin client, which would make using Bitcoin even simpler.

All comments and opinions are highly appreciated!

I totally agree with the major thrust of this: A peer-to-peer OTC style exchange. The OTC bitcoin exchange is limited by the IRC technology and is just not efficient. I'm no programmer, but if something like bitcoin can be put together, then it seems to me that a secure peer-to-peer OTC trading exchange should also be possible, and without all the hassle of a board of trustees etc. etc.

Perhaps something like this:

  • Bid and ask would be broadcast to the entire network of peers to match the best buyer and seller.
  • The bidding and asking peers would be the final arbiters of which offer gets accepted on each end, and trasmit the information to the peer network, thus removing that bid and ask from the list of open orders.
  • Once the deal is closed, the counterparties would put up the money via the network, and the network would act as the escrow agent. In the case of bitcoins, probably X number confirmations that the money was transfered into the escrow account. On the other side, confirmation from whatever method is used to confirm reciept of funds (Dwalla, Liberty Reserve, physical cash, etc). Which means that the receiver of the established currency (USD, EUROS, etc.) may have to take the extra step of confirming receipt in order to get the bitcoin half of the transaction out of escrow and actually delivered to their wallet.
  • Once escrow is cleared, perhaps a "mining" type of operation could confirm that each transaction has actually been completed. In the case of person to person transactions, say using something external like Western Union or physical cash transactions, the validity of the counterparties and their reports of completed transactions could be made using GPG.

This would also open up the possibility of using PayPal for payments, as PayPal has several external APIs that could be easily hooked into by such a client. Transactions could be made by each client, using each client's PalPal account individually. That would make the transactions almost instantaneous!

Just my 2 cents.
legendary
Activity: 1596
Merit: 1012
Democracy is vulnerable to a 51% attack.
June 21, 2011, 02:07:50 AM
#4
You could use a block chain similar to bitcoins themselves use. People who want bitcoins can add a 'buy request' and people who have them can add a 'sell request'. Miners could match buy requests to sell requests (one-to-one, many-to-one, one-to-many), combine that with proof of work and take a small commission.

The big problem is, how do you confirm the cash ins and cash outs?
newbie
Activity: 28
Merit: 0
June 21, 2011, 12:30:19 AM
#3
True. We all trusted MtGox, and look what happened...
Wouldn't you rather trust an exchange run by the community for the community?
newbie
Activity: 21
Merit: 0
June 17, 2011, 10:32:06 PM
#2
For this to happen, other currencies need to run on a similar model to bitcoin, i.e. blockchain and all. Mt.Gox in this case is not just the exchange, it's also a store of money - both bitcoins and USD. Would you give someone 10BTC on the promise that they will give you cash?

Trust is an important part of the bitcoin puzzle important as far as exchanging is concerned.
newbie
Activity: 28
Merit: 0
June 14, 2011, 01:48:07 PM
#1
At this point, one of the main weaknesses of the Bitcoin ecosystem is the exchange of BTC to other currencies. Since Bitcoin may need a few more years to take over the global economy, exchanges will remain necessary.

There's only one major player on the market, MtGox. Unfortunately, it is not suitable for anything but  very small businesses or small volume traders because of the daily/monthly withdrawal limits – which are currently VERY low ($1000/day, $10,000/month). MtGox (and others) are likely to maintain these limits unless they want to become regulated financial/banking institutions (very expensive) and destroy all privacy for their customers (which MtGox already does by requesting government ID's for all medium / large accounts).

Some believe that the solution would be to have more MtGox/TradeHill/BitcoinExchange – like exchanges around, so if one fails, gets closed down, etc. the others will remain active etc. While that may be true, it does not solve three fundamental problems: withdrawal limits, privacy and trust.

Withdrawal limits of $1000/day and $10,000/month are laughable. No serious business or trader can live with that. IMHO, this is one of the biggest drawbacks for the Bitcoin economy at this time.

Privacy is another major issue. One of the ideas at the heart of Bitcoin was to provide a cash-like anonymous currency. How can it be cash-like when MtGox wants to check ID's and Passports before it releases funds?

Trust will become a more and more important issue as the Bitcoin economy grows. Most Bitcoin users have no problem entrusting 10 BTC to BitcoinExchange for a couple of days. Would they do the same with $1,000,000?

I think there is a simple solution which is in the spirit of Bitcoin: a Distributed Bitcoin Exchange. The software can be anonymous, peer-to-peer, use strong cryptography, and use a network of supernodes to maintain and distribute the database of buy/sell orders. The users/businesses  maintaining the supernodes would be sharing the transaction fees using a fair model, and the whole system could interface with LibertyReserve, Dwolla, banks etc.

In order to take care of the “administrative” side of things, there could be a board-of-trustees-like governing body – initially some prominent characters of the community, later elected members etc. This board could hire, manage and pay programers, developers, CPA's etc.

Financing this project could be done by selling stock in this “corporation” and / or accepting donations of BTC, USD, time, skills, talent etc.

If this project succeeds, maybe later the functionality can be incorporated in the main Bitcoin client, which would make using Bitcoin even simpler.

All comments and opinions are highly appreciated!
Jump to: