Pages:
Author

Topic: Primer for a P2P Distributed Exchange - page 6. (Read 17681 times)

legendary
Activity: 1680
Merit: 1035
Regarding the IOU "issue," I'm with Timo Y on this one: the IOUs that you receive after depositing your cash with a trusted safe/escrow provider is no different from the "dollars" that you use to trade on MtGox after you deposit dollars into their account.  Just have to make sure you work with a trusted depositor. And heck, you can even stay anonymous if someone establishes a good localbitcoins reputation, takes in cash anonymously, and issues untraceable but trusted dollar-backed certificates which can be traded for certificates of other depositors.
Other scenario is to trade IOUs for future trade, as in, trade me your BTC for my dollars instantly, and I'll Owe You a Dwolla/Wire transfer once we contact each other directly.
legendary
Activity: 1680
Merit: 1035
Why not use bittorrent sync for the database? http://labs.bittorrent.com/experiments/sync.html

Make it simpler, and just use OpenTransactions for the database, since OT servers can already sync with each other.
legendary
Activity: 1134
Merit: 1008
CEO of IOHK
Quote
Is my suggestion of sending paper fiat through the mail too absurd to deserve a response??

Then the bitcoin funds have to be held until the money arrives. Also the agent of escrow as to then resolve disputes in the event you claim the check was lost in the mail.
newbie
Activity: 70
Merit: 0
Is my suggestion of sending paper fiat through the mail too absurd to deserve a response??
hero member
Activity: 630
Merit: 500
Bitgoblin
Bitcoin is an awesome solution to our end-game problem... I look forward with longing to the day in which I won't have to touch any disgusting green paper bills backed by threat of imprisonment...

However, as long as the threat of imprisonment is there and those disgusting paper bills are Legal Tender to pay your taxes with, we must deal with them, and keep producing new ways to make it easy for people to trade those for bitcoins.
I agree with your feelings, but believe me: unless you manage to invent teleportation, you are still trading IOUs.
Put IOUs back into the equation and it may start making sense...
legendary
Activity: 938
Merit: 1001
bitcoin - the aerogel of money
6. Hold and transfer VALUE, not just IOUs. (With Cryptocurrency this is easy... With fiat? Not so much.)

Ripple CAN do this.  All you need to do is limit your trading to "full reserve" gateways who back their IOUs with a bank balance and promise withdrawal on demand.  

Well yes, they are still IOUs, but it's no different to a USD balance on Mtgox or Paypal, which is technically also nothing more than an IOU.

Even your proposal relies on temporary IOUs.   As long as bank transfers are not instant it will be impossible to get around using them.
hero member
Activity: 546
Merit: 500
For those who believe that small organizations and single websites are a kind of answer to a distributed or decentralized exchange, please compare them with this:


http://i.imgur.com/P2ZI1Ty.png



Bitcoin is in the third category. We deserve to have our markets in the third category as well.
newbie
Activity: 19
Merit: 0

Do you have some banking knowledge that you'd like to share with us? I'm all ears.

I have only speculated that existing value-transfer services like SWIFT, SEPA, and ACH could move value into our software if we find a way to receive it. I admit fully that I don't understand how they work otherwise.

Any hard info you have on how those move Value would be greatly useful.

From what I understand, many wire transfers in the U.S. go through FedWire, and I'm not sure it's as easy connecting to it as copy+pasting some numbers. I do wonder how easy it would be to get involved with SWIFT. I wonder if they've taken interest in Bitcoin at all?

Quote
The apparent fallback plan of the moment is a cryptographically-signed IOU issuing business that sells us fiat, and is perhaps publically traded on btct.co. Other fallback plans exist too but aren't as good IMHO.

The "trusted OT server issueing contracts" does sound a lot like the cryptographically-signed IOU mentioned above. -

Everything in OT is a signed Ricardian contract.

Quote
I hold no ill-will to the BMOT plan, but I don't see this Fiat solution as being adequate for real-time trading.

Why not? Prices are live if you're dealing with a live market.

Quote
Meanwhile, being your own trusted server would seem to mean a free license to counterfeit fiat like crazy! -I don't see how that could work either.

Anyone can start an OT server and do it. You would have to gain a good reputation as a "redeemer" for your currency to gain value and be widely traded.

Quote
Lamassu ATMs are going to deliver that promise in full soon enough... But it's still not going to enable real-time trading.

No but it does make it convenient to buy bitcoins which you bail into OT servers and trade on in real time Smiley

Quote
As I understand it, Coinflash simply verifies that localbitcoins-type sellers are legit... There is no service there to make them completely liquid. Am I missing something?

I think they prefer brick-and-mortar businesses with regular hours, who hold a dollar balance and withdraw BTC as needed. So kind of, yes.

Does this all crack the nut? What's still missing?
hero member
Activity: 727
Merit: 500
Minimum Effort/Maximum effect
You are right this trust system with the fiat is indeed quite tricky.
IOUs like the ones back in the 1700's Banks? Promissory notes I think they called them; It may be a good idea to look into how paper fiat came into being.

I think we do act like a group think session, but we definitely learn; I know I do, some of us choose to be silent and weigh the idea until we know more, some like you are actively learning from every last attempt... but who knows maybe somebody reading is already tinkering with it, a decentralized exchange that has solved the fiat problem.

Human ATM machines that's a good idea, advertise your Currency find buyers on the street... doesn't work in remote areas... hmm

IOU's with Bitcoin?hmmm sounds like a wallet exchange. You create a wallet a paper bitcoin wallet or send the amount for exchange only using the private key. Instant no need to wait, if someone does a transaction with you, you use a third member to release the funds once the money transfer has gone through, using international orders will require more interconnects for speed the local exchanger will have to send money from their account to another.

it's really tricky: you are in africa you need cash you have BTC. You make interconnect with los Angeles and tell them to send that cash fast! They get in contact with a local looking for BTC for his cash in his bank account. the local does the transaction to you, you have cash, they get bitcoins , the person in los angeles gets BTC it is a win win situation. a three way transaction everyone has the same to lose. I know this makes matching people even worse! It's a 2 way escrow. you simply choose to become one and ask for a fee, willing parties who just wish to make some money off the escrow fees, that's all.
Grin

This system would have to be p2p, there would be no room for central points, it has to be international and function with the most basic devices: phones.
legendary
Activity: 1134
Merit: 1008
CEO of IOHK
Quote
I've actually come to the conclusion that the main problem is this forum.
We are discussing a free market solution, in the confines of a socialist committee - of course it isn't going to work, nothing built by committee ever did!

Maybe the answer is to just find a number of different members who agree with a basic idea, start building, and announce a beta in a few weeks or months?

Let the market decide?

I'm agnostic to the ideology or the committee. I could care less if Satoshi Nakamoto himself resolves this problem. I just want a solution for criterion 6 or its IOU equivalent. How do you remove trust from an IOU system?  

Fixed exchange could work, but how do you prevent the entity selling these IOUs from walking away with your money?
hero member
Activity: 714
Merit: 500
I'm open to the idea of distributed IOU issuers holding the fiat but it goes beyond an issue of just trust... IF you can get ppl to trust these people/businesses, (Publically-traded companies on the bitcoin stock exchange?) then you've still got the problem of sending THEM the fiat... How would Tim or Bob send THEM the value of their fiat any faster than they can send each other fiat from their desktops otherwise?

...And if that's not a bad enough problem for you, these companies would very likely be targeted for government persecution... Which is of course not something a publically-traded company would allow into their biz plan.


The delays of getting fiat in and out of the system are not important. Once I have a fiat balance represented in crypto-coin I can perform instant trades. I dont care if it takes me 2 days to cash out my IOUs into USD, my BTC to USD-IOU trade was instant.

You will never be able to clear fiat transactions instantly because you have to work with the existing flawed banking system.

I don't really understand how you want to represent fiat in your magical system without them being IOUs. You realise that your bank account is just a number in a database representing the fact that the bank owes you X amount of currency? Everything today is an IOU. You have to trust your bank to keep your savings safe, just as you would need to trust a crypto IOU issuer to redeem your tokens for cash.

So it is unavoidable.

You mention the fact that since "the actual value of fiat can and already is held in software now"  we ought to be able to hook into the bank's system directly and instantly transmit the digital information representing a quantity of fiat to a piece of software.

Seriously? Yes your bank balance is just a number in your bank's database. But that does not mean we can transmit it to a piece of software! The bank does not store money as exchangeable cryptocoins! They are just numbers.

If I send you the number '10000` and say that I took this number from my bank, would you give me 100BTC for it?!

Essentially, your reasoning is going round in circles.

You are saying that you need a crypto representation of fiat money that can be transferred quickly, cannot be reversed and has no counterparty risk.

You have just described Bitcoin.
sr. member
Activity: 294
Merit: 250
You are a geek if you are too early to the party!
I'm seriously disappointed in the way this thread has gone down the same route as this subject always goes - towards the software side of the solution and the ideological side of bitcoin.

The actual p2p exchange bit isn't difficult - stop worrying about it.  Whether its 3 people or a multi part escrow using 2 of 3 solution, the deal part of the exchange is easily built.

The big problem is the fiat part, and without a solution that at least sounds good on paper, we ain't going nowhere!

Firstly, we need to accept 3 realities.

1 not everyone lives in an urban area, with good transportation and population.
2 not everyone uses dollars as their everyday fiat
3 the banking government system isn't as customer friendly as the glossy ads say!

Oh, and this p2p exchange needs to be used by everyone in the world!

What all this means is that we have to have a 2 stage entry to the p2p exchange.  We need a voucher  / IOU system of some kind.

Some might say well, why not buy my BTC from a localbitcoin man?  Yes, you can do that, but if everyone does, there is no need for a p2p exchange!

I've suggested a fixed price coin, but it seems that isn't ideological enough.

I've actually come to the conclusion that the main problem is this forum.
We are discussing a free market solution, in the confines of a socialist committee - of course it isn't going to work, nothing built by committee ever did!

Maybe the answer is to just find a number of different members who agree with a basic idea, start building, and announce a beta in a few weeks or months?

Let the market decide?
legendary
Activity: 1008
Merit: 1001
Let the chips fall where they may.
I read this thread, some related threads and though about it for a few hours (have not read newer posts).

FIAT is toxic to an automated distributed P2P exchange.

The traditional banking system relies heavily on trust. If something goes wrong, transfers can be reversed. Even Wire transfers can be reversed up until the time they clear; which is apparently not very instantaneous anyway.

The traditional banking system is also heavily regulated. You may need a Money Service Business license. You may need a license to act as an escrow. If a trade goes wrong, the disinterested third party may not have enough information to make a decision (has been mentioned in this thread).

In person meet-ups only solve some of those problems (by using cash).

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 VALUE, not just IOUs. (With Cryptocurrency this is easy... With fiat? Not so much.)

Those are my must-haves. I will never spend a second helping out any software that doesn't meet all 6 of those criteria. You shouldn't either. Again, if you know something I've overlooked, feel free to add it below.

I am not sure point 3 is possible without virtual tokens and the resulting central point of failure. If you want to wait for 1 confirmation while trading with bitcoin: the wait will be anything from seconds to over and hour; with the expected wait time being 10 minutes.

As recently as March 2011. Microsoft was still recommending against setting your hardware clock to Universal Time (there is now a hotfix for Windows 7). This means that Windows machines can not guarantee that the clock is more accurate than within 2 hours (during a time-change). POSIX systems, such as GNU/Linux can not guarantee that the clock is more accurate than within 1 second (during leap seconds). As a result, choosing the arbitrator based on combined latency may be problematic. You would have to find a way to compute third-party latency without trusting all of the nodes.

hero member
Activity: 727
Merit: 500
Minimum Effort/Maximum effect
I love LSD! it helps me visualize!

so in truth i'm not saying that the people have to learn math, they just have to be able to look at their own block chain quickly and a little program with a math algorithm, does it for you. Hell you can check out the algorithm yourself and know what it is gauging.

I don't know what that math algorithm would be but it would be nice to evolve something that would work for effectively determining that price with the info we have: the blockchain

maybe something like total btc in circulation divided by number of btc in transit squared divided by the log of total transactions / by  the difficulty. I don't know something way more complicated than that for sure.
hero member
Activity: 526
Merit: 508
My other Avatar is also Scrooge McDuck
Yay! Responding to page 3 now! (You guys are frigging killing me...!)

Wow, that's an obtusely complicated way to duplicate part of the functionality of the program described in the OP.

You didn't even attempt to tackle the Fiat problem? Why would you go through all that work??!?


I think BMOT just provided all the things we need
BMOT's got promise but it does not solve the fiat problem either.


It would be fiat-backed contracts and actual BTC. I guess the contracts are still IOUs or sorts, but I doubt we'll be able to plug anything like this into a bank, since they would get shut down instantly for violating KYC/AML
We've got to try bro. It's the whole ballgame.

Both my client idea and BMOT would make great P2P exchanges as is if you don't want to deal with fiat here... But the goal has to be to replace MtGox and the other CPOFs... You can't do that trading cryptocurrencies for cryptocurrencies.


Is there an alt-coin that has a constant value instead of a fixed supply function (like bitcoin)?

For example, the supply of the coin adjusts such that N alt-coins always equals M US dollars?
No, nor could there ever be.

Basic economics, something I understand is not taught in schools anywhere on this planet anymore, shows you why it takes evil men with guns pointed at you to fix a price.

An IOU, however, can be cryptographically signed. I'd still rather not deal in IOUs but crypto-IOUs could serve the purpose you are looking for here.



Black market techniques can help in this situation.

The trade has to be instantaneous, face to face meet ups are essential.
If you're willing to take the effort to meet face to face, why not just use a Lamassu ATM or even Localbitcoins?



you create a p2p bank. tricky shit for sure. millions of them. How do you do this?

The BTC atms, a similar concept but digital, the legal route is to create a banking entity like a credit union but make it p2p many small entities linked by miners who take care of the transactions, the banking software is distributed opensource to everyone so anyone can become a bank.
The person acting as bank is also the miner who takes care of the matchups between transactions. they get paid in BTC fees for keeping the flow of money going.
I did in fact consider this, and was even thinking about making such a business publically traded over at BTCT.CO, for added security. However, what can this system offer over a simple "IOU" business? (Which isn't nearly as illegal and would have the same bottlenecks into our client software.)




WE must give up the idea of a exchange by market liquidity and buy and sell rates... we must base it on fact hard cold science. 
Please refrain from doing LSD before posting in my thread. It takes my mind away from what's important reading this kind of nonsense!

The human race has a average IQ that is FAR far far far lower than you'd ever believe if I told you. 99/100ths of them DO NOT know how to value their existing money NOW. They must have guns pointed at them TELLING them what it's worth, and sometimes even that doesn't work!

Asking them to learn some math and economics before learning to value a cryptocurrency is so far beyond laughable it's just painful. Sadly, if you want bitcoin to be traded by more than just us nerds, then you've got to make a product that these morons can at least interact with, if not semi-understand.



Yes, bankers are the problem, and that is exactly why this specific implementation of a P2P exchange won't work. You will never get banks to interact with a piece of decentralized software. The wires to make the transfer simply aren't there.
Do you have some banking knowledge that you'd like to share with us? I'm all ears.

I have only speculated that existing value-transfer services like SWIFT, SEPA, and ACH could move value into our software if we find a way to receive it. I admit fully that I don't understand how they work otherwise.

Any hard info you have on how those move Value would be greatly useful.

Having said that, we're still not dead in the water if we can't use those at all. The apparent fallback plan of the moment is a cryptographically-signed IOU issuing business that sells us fiat, and is perhaps publically traded on btct.co. Other fallback plans exist too but aren't as good IMHO.


The BitMessage + Open Transactions (BMOT) idea that FellowTraveler recently posted is the best solution so far....How to get fiat into this system? You give fiat to a trusted OT server who issues contracts backed by this fiat (or YOU are the trusted server, in which case you issue the fiat contracts yourself) and then you trade the fiat contracts for cryptocurrency contracts and settle with your trading partner on your own time. This is, at least, how I understand the system to work.
I hold no ill-will to the BMOT plan, but I don't see this Fiat solution as being adequate for real-time trading.

The "trusted OT server issueing contracts" does sound a lot like the cryptographically-signed IOU mentioned above. -

Meanwhile, being your own trusted server would seem to mean a free license to counterfeit fiat like crazy! -I don't see how that could work either.


I think what's really needed for fiat --> BTC --> fiat transfers is a network of in-person exchangers such as that proposed by Josh Rossi in Project Buttonwood.
Lamassu ATMs are going to deliver that promise in full soon enough... But it's still not going to enable real-time trading.

That plus agent networks that connect to regulated exchanges (like what Coinflash is trying to do) could do a lot to increase liquidity.
As I understand it, Coinflash simply verifies that localbitcoins-type sellers are legit... There is no service there to make them completely liquid. Am I missing something?

hero member
Activity: 770
Merit: 566
fractally
Ok, I think I have solved the crypto-graphic representation of Fiat and the *key* is to back the fiat-iou with crypto-currency collateral.   If someone 'defaults' on the fiat-iou they end up losing 2x that value to the network.

I posted this idea in one of the child boards but it hasn't gotten enough visibility.

https://bitcointalksearch.org/topic/m.2238954

A quick summary is this:

1) all balances (fiat or otherwise) pay interest
2) all fiat balances are created by someone borrowing against a crypto-currency used as collateral. 
3) payments from the collateral are distributed to those who hold a balance in that fiat currency.
4) people borrow against their crypto-currency because they expect it to go up in value relative to fiat AND the crypto-currency also pays dividends from transaction fees.
5) once you have a fiat balance it can be traded as easily as a bitcoin balance.
6) fiat balances are always 100% redeemable at face value (excluding transaction fees) so long as the underlying crypto-currency maintains any amount of value.
7) the effective interest rate on fiat balances goes UP when the value of the crypto currency goes up.

My system combined with ideas from this thread could probably satisfy all of your requirements and more.
hero member
Activity: 526
Merit: 508
My other Avatar is also Scrooge McDuck
So why not just exchange my local currency directly for BTC, instead of vouchers. Why would I trade fiat for 'vouchers' (I.E. another form of electronic currency) and then trade those for BTC when I could just trade fiat directly for BTC?
Like a Paypal dollar, they'd need to simultaneously represent the value of a USD while being made into a digital medium to be used on any sort of exchange.

I personally don't want to go this route but until the day comes that we've figured out how to transfer the value of a fiat dollar instead of the IOU it's something to explore.


Because this way, the p2p exchange is not dealing in fiat, and that keeps the regulator away.
Actually, I'm pretty sure that the regulators would see this as infringing upon money laundering laws. They'll try to shut the business offering the IOUs down for the same reasons they shut egold down.



Mary is the agent of escrow between Bob and Tim. How would one prevent Mary from simply stealing both of their funds?
Already answered here.

should distance be the only factor in determining who gets to be the agent of escrow? All networks require some form of maintenance, perhaps you could adopt a more robust metric combining network distance with contribution to the network's health?
Other factors could be used too. I've got bigger fish to fry at the moment but it should be included sometime, if for no other reason than to act as a tiebreaker... Since this thing is self-promoting, we may need to develop some more for tiebreaking because we're talking about thousands upon thousands of possible midpoints varying from second to second...

how do we verify Tim's holdings in fiat? Even if we could do so, then how does one avoid double spending without a global fiat ledger?
If we can transmit the value and not just an IOU, then I don't see any reason that anyone but Tim needs to verify his holdings until escrow time... And when his trade doesn't show up then the trade fails, pure and simple, and of course in knowing that fact in advance, the programmers don't allow the environment to attempt to send money it doesn't have. (Bitcoin wallets can't either.)


wire transfers are not instantaneous for example and thus the party who acquires Bitcoins would have access to the money far faster than the fiat party.
Yes, it's also my conclusion that no matter how we arrange the network, there will never be a way to get around the initial fiat "uploading" delay. You've got to use one of these methods to upload your fiat to something... Be it this software, or liberty reserve, or OK Pay, or a crypto-IOU issuer, anything at all. It's the 'price' of getting fiat out of their system. It is the same with MtGox now.

The good news is that once that amount is in your wallet, you theoretically should be able to trade as much or little of it as you want from your wallet without delays from that point forward.

Colored coins is not as bad but similar. You can't send satoshis instantly anymore.


newbie
Activity: 19
Merit: 0

Bitcoin already has miners, is it time it also had bankers?
Never. Bankers are the problem, not the solution.


Yes, banks are a problem, and that is exactly why this specific implementation of a P2P exchange won't work. You will never get banks to interact with a piece of decentralized software. The wires to make the transfer simply aren't there.

The BitMessage + Open Transactions (BMOT) idea that FellowTraveler recently posted is the best solution so far. It has the necessary aspects of p2p exchange built in: OT offers smart contracts, escrow, cheques, untraceable Chaumian cash, and asset issuance, and BitMessage is the distributed order book. How to get fiat into this system? You give fiat to a trusted OT server who issues contracts backed by this fiat (or YOU are the trusted server, in which case you issue the fiat contracts yourself) and then you trade the fiat contracts for cryptocurrency contracts and settle with your trading partner on your own time. This is, at least, how I understand the system to work.

I think what's really needed for fiat --> BTC --> fiat transfers is a network of in-person exchangers such as that proposed by Josh Rossi in Project Buttonwood. That plus agent networks that connect to regulated exchanges (like what Coinflash is trying to do) could do a lot to increase liquidity.

TL;DR BitMessage + OT enables p2p exchanges if there is some trust present between the OT servers and the market participants. Using local meatspace p2p exchanges to buy Bitcoin as proposed by Project Buttonwood is ideal, and then use Bitcoin --> OT to perform instant transactions in/out of every other asset.
hero member
Activity: 526
Merit: 508
My other Avatar is also Scrooge McDuck
The only solution I see is in having a distributed set of IOU issuers who deal with fiat. Trust cannot be avoided, but at least with a federated system you can spread the risk, and probably chose to only hold onto IOUs for a small amount of time.
I'm open to the idea of distributed IOU issuers holding the fiat but it goes beyond an issue of just trust... IF you can get ppl to trust these people/businesses, (Publically-traded companies on the bitcoin stock exchange?) then you've still got the problem of sending THEM the fiat... How would Tim or Bob send THEM the value of their fiat any faster than they can send each other fiat from their desktops otherwise?

...And if that's not a bad enough problem for you, these companies would very likely be targeted for government persecution... Which is of course not something a publically-traded company would allow into their biz plan.

So we we can come up with a way around these inherent problems I'm certainly willing to accept that substitution in criteria #6.


Not to mention it will be difficult to control the issuing of IOUs. Mining them for cheap won't help if the value is pegged to the USD, it means the miners will be making value off nothing.

I think you are a bit mixed up here.

Only Bob can create Bob-IOU, only Alice can create Alice-IOU. Miners have nothing to do with it.  The market will decide how to value Bob-IOU against BTC or other IOUs, depending on the levels of trust people have in Alice and Bob.
I think you're both mixed up here.

The only time an IOU would need to be created it when it's fiat. So if the IOU issuer is a company named "FiatRUs," then it would be an IOU that is redeemable only at FiatRUs... Unless somehow all of these such companies banded together to make a pool somehow. (I doubt that's feasible though.)



the OP seems to want a decentralised exchange, yet wants it to be a decentralised platform like mtgox....

seriously. if there is 1 single website used as the order book.. its then centralised.
Software, no websites anywhere.

Just like bitcoin.



Why not use bittorrent sync for the database? http://labs.bittorrent.com/experiments/sync.html
Ooh, that's nice... Bookmarked for further reflection.
newbie
Activity: 30
Merit: 0
If it is rough words, it sounds "ok", although I see it would still need a lot of work to design. The question with a huge scale distributed economical system is WHO designs it, and if the answer is "all of us", someone has to verify. Give it time.
Pages:
Jump to: