Bitcoin Forum

Bitcoin => Bitcoin Discussion => Topic started by: BTCLuke on May 22, 2013, 08:55:07 AM



Title: Primer for a P2P Distributed Exchange
Post by: BTCLuke on May 22, 2013, 08:55:07 AM
I've seen no less than ten different threads pop up here from people wanting to start a P2P decentralized/distributed exchange, but each and every single time, without fail, the definition of what a P2P distributed exchange actually is gets totally forgotten and the thread dies... Sometimes without a single mention of the word Ripple, too!  ;)

The sad thing is, Bitcoin desperately NEEDS a P2P Exchange... It's not like we don't know already that MtGox is a single point of failure that could severely set us back any day now... We all instinctively know this, and most of us know that if uncle sam made bitcoins "illegal," they'd come after ALL of the exchanges at the same time, yes, even in England, Germany, Canada and Oz too. Obomba's done worse already.

So we all agree that we need to replace these central-points-of-failure (CPOF) allowing access into the bitcoinoshpere, but we simply have not yet been able to agree on what the replacement should look like.

...Which is silly actually, because a P2P distributed exchange is a VERY specific thing!

It must have all the functionality of a full, real-time trading platform (MtGox or better) yet be completely distributed software with no CPOF. This marriage of unique properties would require a very specific feature set and design, yet every time a thread pops up on here calling for one, half of the forum chimes in with comments like "Open Transaction can do that," "Buttercoin was made to do that," "LocalBitcoins can do everything you need," and of course: "Ripple already does it!"

I got news for you weekend bitcoin warriors: Those services ARE NOT distributed replacements for MtGox... They just aren't, by design.

So in order to combat this huge problem that we all desperately need solved, I'm making this thread to DEFINE what criteria exactly a P2P Distributed Exchange needs to meet. These are my ideas, but please feel free to throw in your own.

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.

Having thought really hard about this nonstop since the April bubble pop, I've devised most of the system and exactly how it would work, with the exception of exactly one thing... Holding the value of the Fiat (nationalized currencies) within the software.

If we can solve this one issue, I'm convinced we'll change the entire investing world with this software and make bitcoin safe from all attacks that don't involve nuclear weapons... However even if we don't fix this, the system can be programmed up right now to trade between cryptocurrencies just fine.

Before someone says: "Hey, colored coins can move Fiat..." I assure you that so far everyone talking about them has only suggested holding an IOU in colored coins, which is simply not good enough for our needs. Any attempt to have some kind of bank fulfill an IOU is to make a CPOF again.

But we know that the actual value of Fiat can and already is held in software now! Most of the planet's Fiat DOES exist only as digital currency, and moves just fine through networks like Wire transfers, SWIFT, SEPA, and ACH. -So if those networks can get access to the value of nationalized currency, then we should be able to as well... As an example, think of doing an ACH transfer to a software client, and from there it exists only in your online wallet as fiat credit.

So that's the final problem to solve, and once we fix that, the rest of this program will fall into place:

https://i.imgur.com/IhFgraz.png

That's a diagram of the parts of a fully P2P Distributed software client that is self-promoting. All you have to do is download this thing, keep it running, and it will make you money as fees for other people's trades. Like bitcoin miners, first adopters will get paid the most often, so it's sure to take off and spread worldwide easily like bitcoin did.

How would a transaction work? I've charted some of that process too:

https://i.imgur.com/MSGqoZx.png

After the trade is matched on Mary's machine, both Tim and Bob send their currencies to Mary's escrow wallet, and as the 2nd of those is received, she sends out the traded currencies MINUS HER FEE from both. (This amount could either be hard-coded in, or a user setting like the BTC transaction fee.)

All of that will be done hands free, and Mary's client will send out a "stop" signal to all clients for those traded amounts. An API feed can also be generated for anyone to graph all of these trades from the viewpoint of any particular client.

Anyway, long post I know, but I hope we are starting to get on the same page here. THIS is a P2P exchange, and of course it's not the only way to do one but no one else here has mentioned anything else at all that meets all of the criteria for a truly distributed P2P exchange before.

Again, if you can think of more necessary criteria for my list above, please add it here.

Now let's get this thing made!


Title: Re: Primer for a P2P Distributed Exchange
Post by: notme on May 22, 2013, 09:03:54 AM
  • 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!)

If I want to trade with you, how does both of us handing our money to the same stranger help?

Edit:
To add something constructive, perhaps a m-of-n escrow would work.  You would still have the issue of ensuring the escrow holders don't collude to cheat you, but it might work okay if you and your trading partner take turns randomly choosing escrow providers.


Title: Re: Primer for a P2P Distributed Exchange
Post by: lexxus on May 22, 2013, 09:07:35 AM
TLDR: Do you suggest to separate pure crypto trading from FIAT-crypto trading? If yes, this makes sense. Fiat-to-crypto should be done by things like localbitcoins.


Title: Re: Primer for a P2P Distributed Exchange
Post by: BTCLuke on May 22, 2013, 09:19:46 AM
If I want to trade with you, how does both of us handing our money to the same stranger help?
So you can't screw me, and I can't screw you.

(By either not sending your half or by creating software to steal it more sneakily.)


To add something constructive, perhaps a m-of-n escrow would work.  You would still have the issue of ensuring the escrow holders don't collude to cheat you, but it might work okay if you and your trading partner take turns randomly choosing escrow providers.
Escrow is the easy part in the plan above. Don't fix what ain't broken.

TLDR: Do you suggest to separate pure crypto trading from FIAT-crypto trading?
No.

Reed Moar.


Title: Re: Primer for a P2P Distributed Exchange
Post by: notme on May 22, 2013, 09:21:26 AM
If I want to trade with you, how does both of us handing our money to the same stranger help?
So you can't screw me, and I can't screw you.

(By either not sending your half or by creating software to steal it more sneakily.)


To add something constructive, perhaps a m-of-n escrow would work.  You would still have the issue of ensuring the escrow holders don't collude to cheat you, but it might work okay if you and your trading partner take turns randomly choosing escrow providers.
Escrow is the easy part in the plan above. Don't fix what ain't broken.

TLDR: Do you suggest to separate pure crypto trading from FIAT-crypto trading?
No.

Reed Moar.

But he can still screw us..... he now has both of our funds.

That's what's broken.


Title: Re: Primer for a P2P Distributed Exchange
Post by: notme on May 22, 2013, 09:22:34 AM
Or are you saying we do two 2-of-3 transactions, one for each currency, with me, you, and escrow each as a key.


That would make sense.


Title: Re: Primer for a P2P Distributed Exchange
Post by: nii236 on May 22, 2013, 09:26:27 AM
Mary in the OP's scenario can not be trusted. Who will hold her accountable?


Title: Re: Primer for a P2P Distributed Exchange
Post by: marcus_of_augustus on May 22, 2013, 09:34:35 AM
Nice pictures ...


Title: Re: Primer for a P2P Distributed Exchange
Post by: notme on May 22, 2013, 09:37:57 AM
Mary in the OP's scenario can not be trusted. Who will hold her accountable?

2-of-3 transactions

1. I make a transaction to send btc to an address defined by three public keys.  You hold one private key, I hold one private key, and Mary holds the last private key.  It takes two of these three keys to sign a transaction sending these coins.
2. You make a transaction to send ltc to an address similarly.
3. We each make our transactions spending the funds to our own private address.  We sign this transaction with our key and then ask our trading partner to sign it, or the escrow can sign it.
4. If you don't pay to your assigned address before a timelimit, the escrow and I can send my funds back to me.



Title: Re: Primer for a P2P Distributed Exchange
Post by: waxwing on May 22, 2013, 09:38:56 AM
Where is the decentralized process to getting fiat into the system (for new users without crypto)?

Isn't that the important part?


Title: Re: Primer for a P2P Distributed Exchange
Post by: nii236 on May 22, 2013, 09:39:45 AM
Mary in the OP's scenario can not be trusted. Who will hold her accountable?

2-of-3 transactions

1. I make a transaction to send btc to an address defined by three public keys.  You hold one private key, I hold one private key, and Mary holds the last private key.  It takes two of these three keys to sign a transaction sending these coins.
2. You make a transaction to send ltc to an address similarly.
3. We each make our transactions spending the funds to our own private address.  We sign this transaction with our key and then ask our trading partner to sign it, or the escrow can sign it.
4. If you don't pay to your assigned address before a timelimit, the escrow and I can send my funds back to me.



Yeah its easy to implement with cryptocurrencies, but what about fiat? Bank transactions aren't as transparent as LTC or BTC.


Title: Re: Primer for a P2P Distributed Exchange
Post by: notme on May 22, 2013, 09:40:28 AM
Mary in the OP's scenario can not be trusted. Who will hold her accountable?

2-of-3 transactions

1. I make a transaction to send btc to an address defined by three public keys.  You hold one private key, I hold one private key, and Mary holds the last private key.  It takes two of these three keys to sign a transaction sending these coins.
2. You make a transaction to send ltc to an address similarly.
3. We each make our transactions spending the funds to our own private address.  We sign this transaction with our key and then ask our trading partner to sign it, or the escrow can sign it.
4. If you don't pay to your assigned address before a timelimit, the escrow and I can send my funds back to me.



Yeah its easy to implement with cryptocurrencies, but what about fiat? Bank transactions aren't as transparent as LTC or BTC.

Right.  Fiat is out if we want true decentralization without physical meetups.


Title: Re: Primer for a P2P Distributed Exchange
Post by: waxwing on May 22, 2013, 09:48:31 AM


Right.  Fiat is out if we want true decentralization without physical meetups.

Not necessarily. https://bitcointalk.org/index.php?topic=210903.0


Title: Re: Primer for a P2P Distributed Exchange
Post by: notme on May 22, 2013, 10:08:31 AM


Right.  Fiat is out if we want true decentralization without physical meetups.

Not necessarily. https://bitcointalk.org/index.php?topic=210903.0

Unless you can solve the issue of reversibility that exists with all digital fiat transfer mechanisms, as well as a solution to the escrow issue addressed above for cryptocurrencies, I remain unconvinced.


Title: Re: Primer for a P2P Distributed Exchange
Post by: nwbitcoin on May 22, 2013, 10:17:02 AM
This is the best thread so far - and it does highlight the big problem is how to marry fiat with crypto.

I wonder if the answer is to have a p2p version of localbitcoins?

At the moment, I am sending my fiat, from my bank account to another bank to an exchange which creates a voucher, which I can use to buy crypto.  Anyone else can sell their crypto for a voucher which the exchange can send to their bank, who send it to your bank and then you can spend it as fiat.

We need a p2p exchange, where a fiat voucher can be converted into local fiat.

Bitcoin already has miners, is it time it also had bankers?

What if there was a local Jane or Harry who would convert digital coins (and we know how to create digital coins by today!) into a fixed rate of fiat and the other way around for a fixed fee?

Lets say an alt coin was created that could be mined and had a value of 0.1c and couldn't be worth any more. Lets assume 200 bn were mined! Actually - why not use DEVCOINS?  They would finally have a real use! If these were used as a direct replacement for fiat, in a localbitcoin model, with a charge of .01% per transaction, you would then have a digital fiat voucher that could be used on the exchange, as described above.

You would also have got around the problems currently caused by the regulations of bank transfers etc because the sums would be small and local  and no change in value means no speculation is possible.  Might still have a problem with money laundering laws, but that's something that could be dealt with on a local basis.

Any feedback to that?


Title: Re: Primer for a P2P Distributed Exchange
Post by: notme on May 22, 2013, 10:24:02 AM
This is the best thread so far - and it does highlight the big problem is how to marry fiat with crypto.

I wonder if the answer is to have a p2p version of localbitcoins?

At the moment, I am sending my fiat, from my bank account to another bank to an exchange which creates a voucher, which I can use to buy crypto.  Anyone else can sell their crypto for a voucher which the exchange can send to their bank, who send it to your bank and then you can spend it as fiat.

We need a p2p exchange, where a fiat voucher can be converted into local fiat.

Bitcoin already has miners, is it time it also had bankers?

What if there was a local Jane or Harry who would convert digital coins (and we know how to create digital coins by today!) into a fixed rate of fiat and the other way around for a fixed fee?

Lets say an alt coin was created that could be mined and had a value of 0.1c and couldn't be worth any more. Lets assume 200 bn were mined! Actually - why not use DEVCOINS?  They would finally have a real use! If these were used as a direct replacement for fiat, in a localbitcoin model, with a charge of .01% per transaction, you would then have a digital fiat voucher that could be used on the exchange, as described above.

You would also have got around the problems currently caused by the regulations of bank transfers etc because the sums would be small and local  and no change in value means no speculation is possible.  Might still have a problem with money laundering laws, but that's something that could be dealt with on a local basis.

Any feedback to that?


That's just it.  The fiat side has to be solved on a local basis because if you don't follow the local laws you risk having your assets seized.


Title: Re: Primer for a P2P Distributed Exchange
Post by: Lohoris on May 22, 2013, 10:25:24 AM
But we know that the actual value of Fiat can and already is held in software now! Most of the planet's Fiat DOES exist only as digital currency, and moves just fine through networks like Wire transfers, SWIFT, SEPA, and ACH. -So if those networks can get access to the value of nationalized currency, then we should be able to as well... As an example, think of doing an ACH transfer to a software client, and from there it exists only in your online wallet as fiat credit.

So that's the final problem to solve, and once we fix that, the rest of this program will fall into place:
This is the core of the problem, this is one of the reasons Bitcoin has been created in the first place.

Of course you can't solve that problem, Bitcoin is the solution!

This whole post makes no sense, because it's just a sand castle build with no support.


Title: Re: Primer for a P2P Distributed Exchange
Post by: nii236 on May 22, 2013, 10:29:20 AM
This is the best thread so far - and it does highlight the big problem is how to marry fiat with crypto.

I wonder if the answer is to have a p2p version of localbitcoins?

At the moment, I am sending my fiat, from my bank account to another bank to an exchange which creates a voucher, which I can use to buy crypto.  Anyone else can sell their crypto for a voucher which the exchange can send to their bank, who send it to your bank and then you can spend it as fiat.

We need a p2p exchange, where a fiat voucher can be converted into local fiat.

Bitcoin already has miners, is it time it also had bankers?

What if there was a local Jane or Harry who would convert digital coins (and we know how to create digital coins by today!) into a fixed rate of fiat and the other way around for a fixed fee?

Lets say an alt coin was created that could be mined and had a value of 0.1c and couldn't be worth any more. Lets assume 200 bn were mined! Actually - why not use DEVCOINS?  They would finally have a real use! If these were used as a direct replacement for fiat, in a localbitcoin model, with a charge of .01% per transaction, you would then have a digital fiat voucher that could be used on the exchange, as described above.

You would also have got around the problems currently caused by the regulations of bank transfers etc because the sums would be small and local  and no change in value means no speculation is possible.  Might still have a problem with money laundering laws, but that's something that could be dealt with on a local basis.

Any feedback to that?


Wow, I really like this idea!

Having a cryptocurrency pegged to the USD or something will allow anyone to convert it to BTC easily.

The only problem is adoption. This new cryptocurrency (say, BitBucks) will actually solve the problem, but only if everyone accepts it. If everyone in the world accepted BitBucks, then it would be easy to convert between fiat and BTC! If no one accepts it, then no one will want to convert to BitBucks because its useless.

So you have the same problem as Bitcoin where the market is determining its value, yet we want to peg the value of BitBucks to the USD.

Just thinking out aloud here...


Title: Re: Primer for a P2P Distributed Exchange
Post by: notme on May 22, 2013, 10:31:47 AM
Wow, I really like this idea!

Having a cryptocurrency pegged to the USD or something will allow anyone to convert it to BTC easily.

The only problem is adoption. This new cryptocurrency (say, BitBucks) will actually solve the problem, but only if everyone accepts it. If everyone in the world accepted BitBucks, then it would be easy to convert between fiat and BTC! If no one accepts it, then no one will want to convert to BitBucks because its useless.

So you have the same problem as Bitcoin where the market is determining its value, yet we want to peg the value of BitBucks to the USD.

Just thinking out aloud here...

How do you ensure that each bitbuck on the chain is actually backed by a dollar?


Title: Re: Primer for a P2P Distributed Exchange
Post by: nii236 on May 22, 2013, 10:34:26 AM
How do you ensure that each bitbuck on the chain is actually backed by a dollar?

Yeah that's the problem. Colored coins might be the solution. I'm still reading the OT + BM thread (https://bitcointalk.org/index.php?topic=212490.120) with great interest.


Title: Re: Primer for a P2P Distributed Exchange
Post by: notme on May 22, 2013, 10:37:50 AM
How do you ensure that each bitbuck on the chain is actually backed by a dollar?

Yeah that's the problem. Colored coins might be the solution. I'm still reading the OT + BM thread (https://bitcointalk.org/index.php?topic=212490.120) with great interest.

Colored coins is simply marking a particular satoshi (or group of satoshis) as representing something else so that ownership of that asset can be transferred.  You still have to trust the issuer of the asset that they actually have what they claim they have.


Title: Re: Primer for a P2P Distributed Exchange
Post by: nwbitcoin on May 22, 2013, 10:55:54 AM
Wow, I really like this idea!

Having a cryptocurrency pegged to the USD or something will allow anyone to convert it to BTC easily.

The only problem is adoption. This new cryptocurrency (say, BitBucks) will actually solve the problem, but only if everyone accepts it. If everyone in the world accepted BitBucks, then it would be easy to convert between fiat and BTC! If no one accepts it, then no one will want to convert to BitBucks because its useless.

So you have the same problem as Bitcoin where the market is determining its value, yet we want to peg the value of BitBucks to the USD.

Just thinking out aloud here...

How do you ensure that each bitbuck on the chain is actually backed by a dollar?

Its backed by the fiat of the person who converts the voucher to fiat!

So, its just like the voucher system currently used by the exchanges, except its going to be your local joe banker who is converting your voucher to dollars, or euros or whatever. 

The other side of this is that it might be useful if these virtual bankers were to mine their own voucher coins, so there was no need to create a market for these pegged coins.  If the coins are extra low value, and can easily be mined on a CPU, The actual value per coin can be worked out as being 1% more than the electric needed to mine them.  So, we would say something like 10 digital fiat vouchers is worth 0.1c and will be for the next 12 months when the formula between coins produced, electricity used and the value of fiat can be reassessed by a mining committee of some kind!

These are all ideas that need your interaction to make them work - does this sounds doable in your part of the world?



Title: Re: Primer for a P2P Distributed Exchange
Post by: greBit on May 22, 2013, 11:05:37 AM
Before someone says: "Hey, colored coins can move Fiat..." I assure you that so far everyone talking about them has only suggested holding an IOU in colored coins, which is simply not good enough for our needs. Any attempt to have some kind of bank fulfill an IOU is to make a CPOF again.

But we know that the actual value of Fiat can and already is held in software now! Most of the planet's Fiat DOES exist only as digital currency, and moves just fine through networks like Wire transfers, SWIFT, SEPA, and ACH. -So if those networks can get access to the value of nationalized currency, then we should be able to as well... As an example, think of doing an ACH transfer to a software client, and from there it exists only in your online wallet as fiat credit.


If you take out the decentralized fiat requirement then the system can be built fairly easily. It is just a technical problem. We could end up with a P2P version of localbitcoins with some 'real-time' trading functionality, where escrow is used to enforce trading rules.

But as you say, we must have this instant-trading facility for it to be a successful replacement for MtGox. To do this we must have some cryptographic representation of fiat, so it too can be kept in escrow and traded like Bitcoin, quickly.

Real-time trading does not work if I have to keep checking my bank account to see if Bob has sent me the $10000 or not. Which can take days. Even if it takes an hour, it is too slow.

So for instant trades we need to store a fiat balance somewhere.  How can that be done without requiring IOUs and trusting some third party to keep my money safe?

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.

So if we have decided that we need to represent Fiat as some crypto IOU style token (a c****ed coin) then we can alter the original requirements so that it no longer mentions fiat.

I would argue that we need:

1) A P2P real-time trading platform for crypto currency. (no mention of fiat)

And completely separately,

2) A lively ecosystem of dealers of IOUs that allow you to get fiat in and out of the P2P platform.

I would also argue that a nice solution to 2) could end up looking like Ri**le, without XRP and where the project is entirely open source.



Title: Re: Primer for a P2P Distributed Exchange
Post by: nii236 on May 22, 2013, 11:19:44 AM
2) A lively ecosystem of dealers of IOUs that allow you to get fiat in and out of the P2P platform.

I would also argue that a nice solution to 2) could end up looking like Ri**le, without XRP and where the project is entirely open source.

This second part is what makes it all work. The issue is gaining enough ground to get local IOU sellers in every corner of the world. Then what happens if everyone wants to cash out in only one currency? There won't be enough of that type of fiat to redeem all of the IOUs!

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.


Title: Re: Primer for a P2P Distributed Exchange
Post by: greBit on May 22, 2013, 11:27:51 AM

This second part is what makes it all work. The issue is gaining enough ground to get local IOU sellers in every corner of the world. Then what happens if everyone wants to cash out in only one currency? There won't be enough of that type of fiat to redeem all of the IOUs!

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.

An issuer should only issue an IOU when it is capable of redeeming it. I would prefer my issuer to hold 100% of my deposits and not do fractional reserve, to insure against a bank run.


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.


Title: Re: Primer for a P2P Distributed Exchange
Post by: nii236 on May 22, 2013, 11:36:33 AM
An issuer should only issue an IOU when it is capable of redeeming it. I would prefer my issuer to hold 100% of my deposits and not do fractional reserve, to insure against a bank run.

How would this be controlled?


Title: Re: Primer for a P2P Distributed Exchange
Post by: greBit on May 22, 2013, 11:48:54 AM
An issuer should only issue an IOU when it is capable of redeeming it. I would prefer my issuer to hold 100% of my deposits and not do fractional reserve, to insure against a bank run.

How would this be controlled?

Well yeah thats the issue. Nothing would prevent Issuers doing the same as my bank and only holding 2% of customer deposits, and gambling the rest.

There are possible ways in which an issuer could prove his trustworthyness, he could get independent audits, get digitally signed bank statements perhaps


Title: Re: Primer for a P2P Distributed Exchange
Post by: nwbitcoin on May 22, 2013, 12:40:18 PM


This second part is what makes it all work. The issue is gaining enough ground to get local IOU sellers in every corner of the world. Then what happens if everyone wants to cash out in only one currency? There won't be enough of that type of fiat to redeem all of the IOUs!

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.

The key word here is local fiat - it doesn't have to be USD or anything, it just needs to be fixed to the value of a single currency, so you know that 150 fiat vouchers is worth .01 US Cent - for at least 12 months. What its worth in exchange for a Euro is dependant on what the dollar is worth compared to Euros and is a world standard rate.  The local Joe Bankers just need to know their local exchange rate to be able to be a money changer.





Title: Re: Primer for a P2P Distributed Exchange
Post by: waxwing on May 22, 2013, 12:49:20 PM


Right.  Fiat is out if we want true decentralization without physical meetups.

Not necessarily. https://bitcointalk.org/index.php?topic=210903.0

Unless you can solve the issue of reversibility that exists with all digital fiat transfer mechanisms, as well as a solution to the escrow issue addressed above for cryptocurrencies, I remain unconvinced.

That's why the architecture I describe is completely focused on wire transfer. Wire transfer is the closest thing to a 100% irreversible fiat transfer outside of cash.
This is built in to banking architecture; current accounts (or checking accounts in the US vernacular) are intended to be good-as-cash accounts; what is recorded in your account can be withdrawn at any time, meaning it has to be a cash-like electronic account, meaning transfers into it have to be irreversible.

Escrow: I described the use of 2 of 2 or 2 of 3 escrow mechanisms in the use cases and the high level description.


Title: Re: Primer for a P2P Distributed Exchange
Post by: luv2drnkbr on May 22, 2013, 12:54:58 PM
Wow, I really like this idea!

Having a cryptocurrency pegged to the USD or something will allow anyone to convert it to BTC easily.

The only problem is adoption. This new cryptocurrency (say, BitBucks) will actually solve the problem, but only if everyone accepts it. If everyone in the world accepted BitBucks, then it would be easy to convert between fiat and BTC! If no one accepts it, then no one will want to convert to BitBucks because its useless.

So you have the same problem as Bitcoin where the market is determining its value, yet we want to peg the value of BitBucks to the USD.

Just thinking out aloud here...

How do you ensure that each bitbuck on the chain is actually backed by a dollar?

You would need a large centralized source, like a big bank, that simply buys and sells them for $1 no matter what other markets are doing.  Then nobody has any incentive to change the price.


Title: Re: Primer for a P2P Distributed Exchange
Post by: nii236 on May 22, 2013, 01:24:57 PM
Yeah but then you have the "Big Bank Centralisation Bad" thing going on all over again!


Title: Re: Primer for a P2P Distributed Exchange
Post by: nwbitcoin on May 22, 2013, 02:36:11 PM


How do you ensure that each bitbuck on the chain is actually backed by a dollar?

You would need a large centralized source, like a big bank, that simply buys and sells them for $1 no matter what other markets are doing.  Then nobody has any incentive to change the price.

NO you wouldn't - you would just need an understanding that these vouchers are worth a fixed amount and there is no point trying to sell them for any more because nobody is going to pay you any more - the value in holding them is the fee for transferring them to and from fiat.

Its just like the fact that bitcoin has a market driven price based on its perceived value - if there were 200 Bn bitcoins, the price would be easy to keep to a fraction of a penny without any kind of centralisation - same deal here.

This is why I would have thought using Devcoins might be a nice twist.  There is an incentive in using them for a related purpose, and they already have a plan to mine millions of them, so its a kind of short cut! In fact, the use of a parity with a fiat would be of benefit to Devcoin too!




Title: Re: Primer for a P2P Distributed Exchange
Post by: franky1 on May 22, 2013, 02:44:45 PM
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.

how about set up regular meetups and have people do local face to face cash in hand exchanging. that way its not centralised for the masses, not reliant on bank transfers (causing banking regulation issues) the prices can vary dependant on local value as oppose to mass agreement on a single website (again centralised pricing).

i just think the OP is missing the point of what he/she really wants. the closest thing to a decentralised place where there is no central pot(account) of FIAT and there is still a order list of buys and sells. would be localbitcoins.com.

anything else would be cash in hand meet ups as a full decentralised peer-to-peer exchange or mtgox as a fully centralised exchange.

so where abouts in the spectrum between face-to face 1-on-1 exchange or mtgox fully centralised exchange does the OP envision his ideal plan bet put.


Title: Re: Primer for a P2P Distributed Exchange
Post by: CypressXM on May 22, 2013, 03:08:00 PM
I've seen no less than ten different threads pop up here from people wanting to start a P2P decentralized/distributed exchange, but each and every single time, without fail, the definition of what a P2P distributed exchange actually is gets totally forgotten and the thread dies... Sometimes without a single mention of the word Ripple, too!  ;)

The sad thing is, Bitcoin desperately NEEDS a P2P Exchange... It's not like we don't know already that MtGox is a single point of failure that could severely set us back any day now... We all instinctively know this, and most of us know that if uncle sam made bitcoins "illegal," they'd come after ALL of the exchanges at the same time, yes, even in England, Germany, Canada and Oz too. Obomba's done worse already.

So we all agree that we need to replace these central-points-of-failure (CPOF) allowing access into the bitcoinoshpere, but we simply have not yet been able to agree on what the replacement should look like.

...Which is silly actually, because a P2P distributed exchange is a VERY specific thing!

It must have all the functionality of a full, real-time trading platform (MtGox or better) yet be completely distributed software with no CPOF. This marriage of unique properties would require a very specific feature set and design, yet every time a thread pops up on here calling for one, half of the forum chimes in with comments like "Open Transaction can do that," "Buttercoin was made to do that," "LocalBitcoins can do everything you need," and of course: "Ripple already does it!"

I got news for you weekend bitcoin warriors: Those services ARE NOT distributed replacements for MtGox... They just aren't, by design.

So in order to combat this huge problem that we all desperately need solved, I'm making this thread to DEFINE what criteria exactly a P2P Distributed Exchange needs to meet. These are my ideas, but please feel free to throw in your own.

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.

Having thought really hard about this nonstop since the April bubble pop, I've devised most of the system and exactly how it would work, with the exception of exactly one thing... Holding the value of the Fiat (nationalized currencies) within the software.

If we can solve this one issue, I'm convinced we'll change the entire investing world with this software and make bitcoin safe from all attacks that don't involve nuclear weapons... However even if we don't fix this, the system can be programmed up right now to trade between cryptocurrencies just fine.

Before someone says: "Hey, colored coins can move Fiat..." I assure you that so far everyone talking about them has only suggested holding an IOU in colored coins, which is simply not good enough for our needs. Any attempt to have some kind of bank fulfill an IOU is to make a CPOF again.

But we know that the actual value of Fiat can and already is held in software now! Most of the planet's Fiat DOES exist only as digital currency, and moves just fine through networks like Wire transfers, SWIFT, SEPA, and ACH. -So if those networks can get access to the value of nationalized currency, then we should be able to as well... As an example, think of doing an ACH transfer to a software client, and from there it exists only in your online wallet as fiat credit.

So that's the final problem to solve, and once we fix that, the rest of this program will fall into place:

That's a diagram of the parts of a fully P2P Distributed software client that is self-promoting. All you have to do is download this thing, keep it running, and it will make you money as fees for other people's trades. Like bitcoin miners, first adopters will get paid the most often, so it's sure to take off and spread worldwide easily like bitcoin did.

How would a transaction work? I've charted some of that process too:

After the trade is matched on Mary's machine, both Tim and Bob send their currencies to Mary's escrow wallet, and as the 2nd of those is received, she sends out the traded currencies MINUS HER FEE from both. (This amount could either be hard-coded in, or a user setting like the BTC transaction fee.)

All of that will be done hands free, and Mary's client will send out a "stop" signal to all clients for those traded amounts. An API feed can also be generated for anyone to graph all of these trades from the viewpoint of any particular client.

Anyway, long post I know, but I hope we are starting to get on the same page here. THIS is a P2P exchange, and of course it's not the only way to do one but no one else here has mentioned anything else at all that meets all of the criteria for a truly distributed P2P exchange before.

Again, if you can think of more necessary criteria for my list above, please add it here.

Now let's get this thing made!

The mechanics of moving the currencies? How will dollars move from my wallet to theirs? I'm starting to think this is a pointless masturbatory retardo idea unless someone can explain how the currency exchange will work.


Title: Re: Primer for a P2P Distributed Exchange
Post by: nwbitcoin on May 22, 2013, 03:40:49 PM

The mechanics of moving the currencies? How will dollars move from my wallet to theirs? I'm starting to think this is a pointless masturbatory retardo idea unless someone can explain how the currency exchange will work.

You decide to get some bitcoins.

You visit a website where you can register or top up your local currency vouchers.  You can do this online as a wire transfer or by visiting some guy in your local town.  He will change your $100 for 100 fiat vouchers and put them in your exchange account for a fixed price.

On the exchange website - which is more like a torrent search engine page in that there are lots of different exchange websites, but the data is all the same - you can find bitcoins to buy for your fiat vouchers.

You place an order for some bitcoins and the proces as set up by the OP takes place.

When you want to sell your bitcoins for fiat, you do it all in reverse

You take your fiat vouchers to a local dealer who will change your vouchers for fiat for a fixed price.

Does that make sense?



Title: Re: Primer for a P2P Distributed Exchange
Post by: charleshoskinson on May 22, 2013, 03:43:42 PM
Why not use bittorrent sync for the database? http://labs.bittorrent.com/experiments/sync.html


Title: Re: Primer for a P2P Distributed Exchange
Post by: CypressXM on May 22, 2013, 03:46:27 PM

The mechanics of moving the currencies? How will dollars move from my wallet to theirs? I'm starting to think this is a pointless masturbatory retardo idea unless someone can explain how the currency exchange will work.

You decide to get some bitcoins.

You visit a website where you can register or top up your local currency vouchers.  You can do this online as a wire transfer or by visiting some guy in your local town.  He will change your $100 for 100 fiat vouchers and put them in your exchange account for a fixed price.

On the exchange website - which is more like a torrent search engine page in that there are lots of different exchange websites, but the data is all the same - you can find bitcoins to buy for your fiat vouchers.

You place an order for some bitcoins and the proces as set up by the OP takes place.

When you want to sell your bitcoins for fiat, you do it all in reverse

You take your fiat vouchers to a local dealer who will change your vouchers for fiat for a fixed price.

Does that make sense?



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?


Title: Re: Primer for a P2P Distributed Exchange
Post by: usscfounder on May 22, 2013, 03:47:42 PM
I have created a system for a P2P orderbook here:

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

I figured out how to make a P2P Orderbook for a decentralized exchange:

I am updating the post daily but will add more in a few minutes:

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





Decentralized Orderbook - BTA System (Bus - Train - Plane)

BTA - Bus. Train. Plane. BTA is a concept I came up with the solve the problem of a decentralized orderbook for P2P systems.

BTA is a system to move orders from Tier I exchange nodes to Tier II exchange nodes to Tier III exchange nodes according to a predetermined cycle.

BTA is a system akin to a mass-transit public transportation system.

example:
In a mass transit system you could have a bus that would route and cycle through a city with 25 bus stops, stopping at every stop to pick up people. The bus would then drop all of the people off at the last stop which for the purposes of this demonstration is the city's train station. The bus would then repeat the cycle continuously bringing more and more people to the train station.

Eventually the train would arrive to that city and pick up the people who got off the bus and are waiting at the train station. The train would then continue on and cycle through all of the cities of that particular province/state picking up people (who were dropped off by the bus) at every city train station. At the end of the train route would be an airport with a planes ready to pick people up and take them to a specific destination. The train would cycle continuously through all of the cities picking up people and dropping them off at the airport.

The people who were first on the bus and then on the train and now at the airport would then board the plane (jumbo jet if you will) and travel on the plane from the province/state they were in to a final location all the while making stops in every major province/state of that country to pick up additional people. After the plane arrived at the final location it would take off again and cycle through all the provinces/states of the country continuously picking up and dropping off people.

Now, imagine if you will a dating and match making service on one of the sides of that county that has a big convention to help people find a spouse. That service decides to utilizes the same aforementioned mass transportation system to bring people together from all over the country.

People would leave their homes and go to the bus stop. Some people would find compatible matches for themselves at the bus stop or while riding on the bus. Those people would get off the bus pay the fee and then go home with no need to go to to the convention. Those people have what they want; a spouse.

The rest of the people would continue on to the train station and get on the train. But again some people would find matches on the train and at the station; so, they too would pay the fee and go home. They have what they want; a spouse.

What remains of the people would continue on to the airport then get on the plane to go to the convention hoping to find a good match for a spouse.

A P2P BTA (Bus-Train-Airplane) exchange would operate the same way only picking up orders instead of people.

(More in a few minutes)

 
More here in a few minutes:

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

Here is how it works:

P2P BTA Application

How does it work?

In a P2P BTA system a "Bus" exchange node would cycle through and collect orders from P2P "home-server" nodes mentioned in the above posts.  "Home-server" nodes house user accounts and wallets in a P2P network.

1. The Bus exchange server node would collect orders from home-server nodes 1 through 25 (for example).

2. Matching orders (if any) are fulfilled in a mini exchange. Receipts are generated. All unfulfilled orders and receipts are then stored for pickup by an "Train" exchange node.

3. On a predetermined cycle the higher Train exchange node would pick up all of the unfulfilled orders and receipts from all four (for example) of the Bus exchange nodes in the P2P network. All matching orders are fulfilled in a medium sized exchange and more receipts are generated.  Again, All unfulfilled orders and collected receipts are then stored for pickup by an "Airplane" exchange node.

4. Finally, on a predetermined cycle the higher Airplane exchange node would pick up all of the unfulfilled orders and receipts from all four (for example) of the Train exchange nodes in the P2P network. The Airplane exchange is the highest exchange on our example P2P network. All orders would attempt to be fulfilled here. Collected receipts are used to generate reports and to display fulfilled orders.

In our example P2P network, if no orders were fulfilled by the Bus or Train exchange nodes then the Airplane exchange node would have picked up 400 orders.

(MORE TO COME LATER TODAY)




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


Title: Re: Primer for a P2P Distributed Exchange
Post by: nwbitcoin on May 22, 2013, 03:53:17 PM


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?

Because this way, the p2p exchange is not dealing in fiat, and that keeps the regulator away.

It also keep the fiat away from any central location which keeps the crooks away.

It also means that you get a wider choice of BTC to buy, rather than just your local market, which may be far more expensive without competition



Title: Re: Primer for a P2P Distributed Exchange
Post by: charleshoskinson on May 22, 2013, 04:45:18 PM
Luke I read your post and I have a few comments.

First, Mary is the agent of escrow between Bob and Tim. How would one prevent Mary from simply stealing both of their funds? Second, 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? Third, 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? Finally, 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.

One could resolve the fiat/Bitcoin access lag by implementing a system that sends coins to a new address with the private key encrypted by some method (say AES). Split the key in two parts with one going to both Tim and Bob and keep the other part in the global transaction ledger until the fiat transfer has cleared. Once it clears the other half of the key gets sent to Tim. Thus Tim cannot access his funds until Bob can. Should Tim's wire transfer fail, Bob gets the other half of the key to access his original Bitcoin.    

I agree that IOUs are no sufficient because they have to be exchanged at some point and such points violate criterion number 1. Overall, this post is significant and exactly what I wanted to generate in my original thread.  


Title: Re: Primer for a P2P Distributed Exchange
Post by: Trader Steve on May 22, 2013, 05:13:33 PM
But we know that the actual value of Fiat can and already is held in software now! Most of the planet's Fiat DOES exist only as digital currency, and moves just fine through networks like Wire transfers, SWIFT, SEPA, and ACH. -So if those networks can get access to the value of nationalized currency, then we should be able to as well... As an example, think of doing an ACH transfer to a software client, and from there it exists only in your online wallet as fiat credit.

So that's the final problem to solve, and once we fix that, the rest of this program will fall into place:
This is the core of the problem, this is one of the reasons Bitcoin has been created in the first place.

Of course you can't solve that problem, Bitcoin is the solution!

This whole post makes no sense, because it's just a sand castle build with no support.


+1 So true! The whole problem is using national currencies in the first place. Trade Bitcoins for Goods & Services and vice versa. Abandon the banking system altogether.


Title: Re: Primer for a P2P Distributed Exchange
Post by: Trader Steve on May 22, 2013, 05:18:43 PM

how about set up regular meetups and have people do local face to face cash in hand exchanging. that way its not centralised for the masses, not reliant on bank transfers (causing banking regulation issues) the prices can vary dependant on local value as oppose to mass agreement on a single website (again centralised pricing).


This!

Start local meetups that meet frequently where people can adjust their fiat/bitcoin holdings by trading with each other. Additional benefits are increased awareness and trade in the local economy, not to mention the social aspect. Build your local network of trusted trading partners and get to the point where "everyone is an exchanger". Abandon the banks.





Title: Re: Primer for a P2P Distributed Exchange
Post by: charleshoskinson on May 22, 2013, 05:19:14 PM
Quote
+1 So true! The whole problem is using national currencies in the first place. Trade Bitcoins for Goods & Services and vice versa. Abandon the banking system altogether.

And how will I pay my taxes? Bitcoin will not achieve its goals without a P2P exchange due to the central points of failure being regulated and controlled by the fiat barons. We need a decentralized way to move into and out of bitcoin at any time and any place without oversight. This ensures Bitcoin will be adopted by players like Amazon and Facebook and ends the reign of central banks.


Title: Re: Primer for a P2P Distributed Exchange
Post by: mobile4ever on May 22, 2013, 05:38:53 PM
TLDR: Do you suggest to separate pure crypto trading from FIAT-crypto trading? If yes, this makes sense. Fiat-to-crypto should be done by things like localbitcoins.


Localbitcoins has the potential to "get rid of itself", but it by itself is not a decentralized way of thinking. One web site under the control of (probably) one person does not follow the bitcoin idea.

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


Title: Re: Primer for a P2P Distributed Exchange
Post by: justusranvier on May 22, 2013, 05:53:54 PM
Bitcoin will not achieve its goals without a P2P exchange due to the central points of failure being regulated and controlled by the fiat barons. We need a decentralized way to move into and out of bitcoin at any time and any place without oversight.
Convince every Bitcoin owner you know to open an account on Localbitcoins.com and sell Bitcoins there.

Even if you want to accumulate Bitcoins it's fine to sell - set your price formula high enough that you can immediately buy more BTC via Bitinstant, etc. to replenish what you sold. If you're willing to hold on to a pool of fiat you can add an advertisement for buying BTC as well to help liquidity in that direction.

Almost every person I've sold to on Localbitcoins has been a first time buyer. That means that I'm getting the opportunity to make or break their first impression of the Bitcoin economy. It also means I've got a growing list of potential collaborators and customers for future BTC ventures in my local area. This is where the major growth area for Bitcoin adoption is - away from the keyboards and out in the real world. If you want exponential growth in your BTC holdings, then you should help achieve exponential growth in the user base.

It's not a perfect solution, and it's not as exciting as yet another computer science project, but it's a good enough solution that will do a lot of good right away and avoids the opportunity cost of waiting to act until a perfect solution is available.


Title: Re: Primer for a P2P Distributed Exchange
Post by: charleshoskinson on May 22, 2013, 05:59:03 PM
Quote
Convince every Bitcoin owner you know to open an account on Localbitcoins.com and sell Bitcoins there.

Even if you want to accumulate Bitcoins it's fine to sell - set your price formula high enough that you can immediately buy more BTC via Bitinstant, etc. to replenish what you sold. If you're willing to hold on to a pool of fiat you can add an advertisement for buying BTC as well to help liquidity in that direction.

Almost every person I've sold to on Localbitcoins has been a first time buyer. That means that I'm getting the opportunity to make or break their first impression of the Bitcoin economy. It also means I've got a growing list of potential collaborators and customers for future BTC ventures in my local area. This is where the major growth area for Bitcoin adoption is - away from the keyboards and out in the real world. If you want exponential growth in your BTC holdings, then you should help achieve exponential growth in the user base.

It's not a perfect solution, and it's not as exciting as yet another computer science project, but it's a good enough solution that will do a lot of good right away and avoids the opportunity cost of waiting to act until a perfect solution is available.

I want a button I can click just like the bitcoin-qt client that allows me to connect with a swarm of peers and do stuff with them without any outside entity save an objective protocol telling me how to do it. Such a button would effectively ensure bitcoin is forever immortal.


Title: Re: Primer for a P2P Distributed Exchange
Post by: justusranvier on May 22, 2013, 06:02:38 PM
I want a button I can click just like the bitcoin-qt client that allows me to connect with a swarm of peers and do stuff with them without any outside entity save an objective protocol telling me how to do it. Such a button would effectively ensure bitcoin is forever immortal.
I understand that. I think everyone would like that.

How long will it take to develop, and how many opportunities will be lost if we're not effectively using the tools that already exist while we're waiting for that to be ready?


Title: Re: Primer for a P2P Distributed Exchange
Post by: charleshoskinson on May 22, 2013, 06:06:51 PM
Quote
I understand that. I think everyone would like that.

How long will it take to develop, and how many opportunities will be lost if we're not effectively using the tools that already exist while we're waiting for that to be ready?

Well perhaps we can help each other. Are you the founder of this website?


Title: Re: Primer for a P2P Distributed Exchange
Post by: justusranvier on May 22, 2013, 06:11:04 PM
Are you the founder of this website?

I am not. Just a user who gets a little frustrated seeing a lot more discussion on this forum of cool software solutions that never seem to happen than people willing to actually get off the keyboard and take productive action.


Title: Re: Primer for a P2P Distributed Exchange
Post by: charleshoskinson on May 22, 2013, 06:17:48 PM
I think we share in that frustration, which is why I launched the Bitcoin Education Project. Do you happen to know the leadership of the local exchange?


Title: Re: Primer for a P2P Distributed Exchange
Post by: spndr7 on May 22, 2013, 06:39:19 PM
https://i.imgur.com/5vsPY.png

Order opening,closing and modification
A block-chain is maintained which keeps all valid open orders.A node requesting to open an order sends order quote to the network.The network verifies the order by periodically querying the corresponding blockchain and check that order is sent by the node is less than its
balance or not.In this way fake orders could be weeded out.A node can modify or cancel the order by querying the network with message signed with its private keys.

Orders open could be accessed by all nodes.Any node interested could send request for accepting an order.After similar verification about buyer's balance the order status is changed to accepted.

Money Allocation to intermediate nodes
Once order is accepted,the network divides the money to the other nodes such that,the money send to any node is less than the trade amount,that node wants to execute.This trade assignment is sent to both trading parties.They are required to send money to assigned intermediate nodes.These transactions are verified by the network.

Intermediate transaction
After all intermediate transactions are over,the network sends the address of buyer and seller to the nodes which received money from seller and buyer receptively. Until they successfully execute their routing assignment,their trade money is not released from their intermediates.

The intermediate node is the random third party node assigned by the network,which handles the trust problem.This assignment is random by the p2p network.There will be a very little chance that some one assigns his own trading router, if the number of nodes participating in it is sufficiently large.

Once the transaction from the buyer/sellers to intermediate nodes is verified,the network assigns the intermediate nodes, the address of the party (at opposite end of trade) to transfer the money to that end.

Until the intermediate nodes transfer the money,their own trade is locked.At all levels,all the transaction related to an order are securely stored in blockchain,using method similar to bitcoin (SHA-1 or other hash function),to avoid tampering to an open order.

Assumptions
1. To start the trading, first two nodes should be assumed that they conducted their routing operation.
 
Advantages
1.Buyer and seller don't know each other until trade is successfully conducted.
2.Using a block-chain,all trading activities can be recorded securely so that trade is not tampered until its over.  

Possible Drawbacks
1.Tackling of the closed loop deadlock problem.
2.Random trade route assignment function has to be thoroughly tested,before implementation.


Title: Re: Primer for a P2P Distributed Exchange
Post by: justusranvier on May 22, 2013, 06:40:10 PM
Do you happen to know the leadership of the local exchange?
If by that you mean Localbitcoins.com, no I do not know him personally.


Title: Re: Primer for a P2P Distributed Exchange
Post by: deadweasel on May 22, 2013, 06:40:46 PM
https://i.imgur.com/5vsPY.png

Order opening,closing and modification
A block-chain is maintained which keeps all valid open orders.A node requesting to open an order sends order quote to the network.The network verifies the order by periodically querying the corresponding blockchain and check that order is sent by the node is less than its
balance or not.In this way fake orders could be weeded out.A node can modify or cancel the order by querying the network with message signed with its private keys.

Orders open could be accessed by all nodes.Any node interested could send request for accepting an order.After similar verification about buyer's balance the order status is changed to accepted.

Money Allocation to intermediate nodes
Once order is accepted,the network divides the money to the other nodes such that,the money send to any node is less than the trade amount,that node wants to execute.This trade assignment is sent to both trading parties.They are required to send money to assigned intermediate nodes.These transactions are verified by the network.

Intermediate transaction
After all intermediate transactions are over,the network sends the address of buyer and seller to the nodes which received money from seller and buyer receptively. Until they successfully execute their routing assignment,their trade money is not released from their intermediates.

The intermediate node is the random third party node assigned by the network,which handles the trust problem.This assignment is random by the p2p network.There will be a very little chance that some one assigns his own trading router, if the number of nodes participating in it is sufficiently large.

Once the transaction from the buyer/sellers to intermediate nodes is verified,the network assigns the intermediate nodes, the address of the party (at opposite end of trade) to transfer the money to that end.

Until the intermediate nodes transfer the money,their own trade is locked.At all levels,all the transaction related to an order are securely stored in blockchain,using method similar to bitcoin (SHA-1 or other hash function),to avoid tampering to an open order.

Assumptions
1. To start the trading, first two nodes should be assumed that they conducted their routing operation.
 
Advantages
1.Buyer and seller don't know each other until trade is successfully conducted.
2.Using a block-chain,all trading activities can be recorded securely so that trade is not tampered until its over.  



Needs Disadvantages section too.  So a full picture can be made and disadvantages can begun to be dissected and removed.  If it's possible at all.  I certainly hope so.


Title: Re: Primer for a P2P Distributed Exchange
Post by: Lohoris on May 22, 2013, 06:59:27 PM
Its backed by the fiat of the person who converts the voucher to fiat!

So, its just like the voucher system currently used by the exchanges, except its going to be your local joe banker who is converting your voucher to dollars, or euros or whatever.
You have just described Ripple...


Title: Re: Primer for a P2P Distributed Exchange
Post by: Rassah on May 22, 2013, 08:27:21 PM
I think BMOT just provided all the things we need

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.

That would be BitMessage

Quote
  • 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)

BitMessage again. Just have a protocol (formatted message) that gets sent and updated with current piice orderbook, which is "broadcasted" to all the listening nodes same as BitMessage mailing list messages are now.

Quote
  • 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.)

Not possible directly, since it will take time to transfer fiat between two people, but can be done instantly with OpenTransactions if money is deposited with a trusted escrow and OT contract issued against it. You would be trading fiat-backed contracts.

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

Extremely easy if the entire orderbook is broadcast through BitMessage and is constantly updated

Quote
  • 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!)

OpenTransactions again. That's specifically what it's good for.

Quote
  • 6. Hold and transfer VALUE, not just IOUs. (With Cryptocurrency this is easy... With fiat? Not so much.)

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


Title: Re: Primer for a P2P Distributed Exchange
Post by: Rant2112 on May 22, 2013, 09:00:32 PM
How about snail mail of fiat paper notes?


Title: Re: Primer for a P2P Distributed Exchange
Post by: Rant2112 on May 22, 2013, 09:01:46 PM
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?


Title: Re: Primer for a P2P Distributed Exchange
Post by: jdbtracker on May 22, 2013, 10:36:16 PM
Black market techniques can help in this situation.

The trade has to be instantaneous, face to face meet ups are essential.

an android app is created, you start your light Bitcoin client on your phone, or iphone or whatever. you keep the wifi on, the sellers keep their wifi on.

When you are in close proximity to a seller the app will alert you that there is a seller near by with cash in a public place. It will tell you their going rate and they get to see your buying rate.

you go to the seller you work out a deal, you transact the bitcoins live on the spot using matrix barcodes, they get their fee in BTC the client gets their BTC on the spot.

High risk if your worried about someone having network control over the area maybe.



the other choice is highly illegal... probably.

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.

Cash is king in this system, to start it off the first solution has to be implemented as large cash reserves will be needed, people come sell their cash for BTC the buyer and seller are known because of the block ledger, that BTC address marks them both.  The serial numbers on the bills mark the proof of ownership. to be a p2p bank they will have to scan those bills and have it be read by the program working on top of bitcoin, the money that they have and don't have is marked on it's own block ledger for anyone to see, no one knows who they are but the address says they have accepted this amount of fiat these serial numbers and when someone comes to sell their BTC those same bills are scanned out any discrepancy when matched to the BTC addresses will note a difference so the right amount of serial numbers have to be dolled out.

All transactions are local, but once in BTC they don't have to be, the Cash is local, BTC breaks the barriers.

either that or I guess people will be sending their digital cash to the bahamas where they can distribute that info to p2p nodes!  ;D

but yeah, all this is not required, BTC is it's own bank, all you need is to get that rig fired up! start generating your own coins.  of course this will require a little mind bending on your behalf... why are people so reactionary instead of logical?

do you really need an exchange to tell you what a BTC is worth or can you deduce the real price by your understanding of Bitcoin? How much would a bitcoin need to be worth to handle the whole world economy? that would be about 42 billions dollars worth of transactions a day, millions of millions of transactions.

we know how many bitcoins are in circulation, we know the purchasing potential needed to sustain a large economy, what if we all did the guess work and made a mathematical formula that would give everyone the real price of Bitcoin? All that would be required is access to the blockchain to verify the data and a solid formula that was available to everyone. no need for an exchange just access to the blockchain to verify the price of Bitcoin.


a mathematical understanding of the factors for an effective currency can circumvent all this, so easily. 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. 

The best algorithm for determining the necessary flow of BTC will stop the spread of Fiat into the system, fiat will be locked out forever from this economy. Check Mate


Title: Re: Primer for a P2P Distributed Exchange
Post by: BTCLuke on May 22, 2013, 11:07:56 PM
Or are you saying we do two 2-of-3 transactions, one for each currency, with me, you, and escrow each as a key.
2-of-3 transactions would be one way to do escrow, another way is for the money to not actually go into Mary's wallet; Instead she could hold the deposit account address for both of the others, and connecting their transactions at the same time when she's received both addresses.

There is probably a half dozen ways to solve this... But having the non-interested party involved will always be necessary.


Where is the decentralized process to getting fiat into the system (for new users without crypto)?
As explained in the OP, I don't have the technical expertise to know how to get a SWIFT, ACH, Wire Transfer, nor SEPA funding transaction to move the value of the fiat into this software... But I'm pretty convinced now that this step is required to solve our problem. (And yes, I'm aware that it's not going to be very legal to do so.)


Unless you can solve the issue of reversibility that exists with all digital fiat transfer mechanisms, as well as a solution to the escrow issue addressed above for cryptocurrencies, I remain unconvinced.
The digital fiat transfer networks are slow on purpose. They were designed before the internet...

If we can capture the value from one in our software network, then we could move it around at the same speed a bitcoin travels... It'll be inside our network at that point.



This is the best thread so far - and it does highlight the big problem is how to marry fiat with crypto.
Thanks, and yes, this is an exceedingly difficult problem we face... But face it we must.


We need a p2p exchange, where a fiat voucher can be converted into local fiat.
That voucher is just another IOU though. This can't help us.


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


Lets say an alt coin was created that could be mined and had a value of 0.1c and couldn't be worth any more.
You have just demonstrated a serious lack of knowledge about economics. The only way to say "this thing can't ever be worth more" is when you have the guns and enforce this decree.

It is extremely evil to attempt this. Only a government would do so!

Let the markets be free bro!



Title: Re: Primer for a P2P Distributed Exchange
Post by: BTCLuke on May 22, 2013, 11:14:12 PM
This is the core of the problem, this is one of the reasons Bitcoin has been created in the first place.

Of course you can't solve that problem, Bitcoin is the solution!
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.


Title: Re: Primer for a P2P Distributed Exchange
Post by: JamesTaylor on May 23, 2013, 12:03:22 AM
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.


Title: Re: Primer for a P2P Distributed Exchange
Post by: BTCLuke on May 23, 2013, 01:06:03 AM
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.


Title: Re: Primer for a P2P Distributed Exchange
Post by: lightcoin on May 23, 2013, 01:33:00 AM

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 (https://bitcointalk.org/index.php?topic=212490.0) (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 (http://blog.btcshares.com/). That plus agent networks that connect to regulated exchanges (like what Coinflash (https://www.coinflash.com/) 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.


Title: Re: Primer for a P2P Distributed Exchange
Post by: BTCLuke on May 23, 2013, 02:14:53 AM
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 (https://bitcointalk.org/index.php?topic=212841.msg2239963#msg2239963).

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.




Title: Re: Primer for a P2P Distributed Exchange
Post by: bytemaster on May 23, 2013, 02:35:36 AM
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://bitcointalk.org/index.php?topic=213588.msg2238954#msg2238954

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.


Title: Re: Primer for a P2P Distributed Exchange
Post by: BTCLuke on May 23, 2013, 02:55:21 AM
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 (https://bitcointalk.org/index.php?topic=212490.0) (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 (http://blog.btcshares.com/).
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 (https://www.coinflash.com/) 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?



Title: Re: Primer for a P2P Distributed Exchange
Post by: jdbtracker on May 23, 2013, 04:31:15 AM
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.


Title: Re: Primer for a P2P Distributed Exchange
Post by: phillipsjk on May 23, 2013, 07:42:45 AM
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 (http://support.microsoft.com/kb/2687252). 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.



Title: Re: Primer for a P2P Distributed Exchange
Post by: nwbitcoin on May 23, 2013, 08:16:07 AM
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?


Title: Re: Primer for a P2P Distributed Exchange
Post by: greBit on May 23, 2013, 08:19:11 AM
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.


Title: Re: Primer for a P2P Distributed Exchange
Post by: charleshoskinson on May 23, 2013, 08:21:24 AM
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?


Title: Re: Primer for a P2P Distributed Exchange
Post by: jdbtracker on May 23, 2013, 10:43:52 AM
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.
;D

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.


Title: Re: Primer for a P2P Distributed Exchange
Post by: lightcoin on May 23, 2013, 11:46:20 AM

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 (https://en.wikipedia.org/wiki/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? (http://www.forbes.com/sites/jonmatonis/2013/05/20/bitcoin-comes-to-swift/)

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 :)

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?


Title: Re: Primer for a P2P Distributed Exchange Decentralized
Post by: mobile4ever on May 23, 2013, 02:01:21 PM
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:


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



Bitcoin is in the third category. We deserve to have our markets in the third category as well.


Title: Re: Primer for a P2P Distributed Exchange
Post by: Timo Y on May 23, 2013, 02:51:51 PM
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.


Title: Re: Primer for a P2P Distributed Exchange
Post by: Lohoris on May 23, 2013, 04:31:54 PM
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...


Title: Re: Primer for a P2P Distributed Exchange
Post by: Rant2112 on May 23, 2013, 05:23:18 PM
Is my suggestion of sending paper fiat through the mail too absurd to deserve a response??


Title: Re: Primer for a P2P Distributed Exchange
Post by: charleshoskinson on May 23, 2013, 05:34:43 PM
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.


Title: Re: Primer for a P2P Distributed Exchange
Post by: Rassah on May 23, 2013, 05:39:54 PM
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.


Title: Re: Primer for a P2P Distributed Exchange
Post by: Rassah on May 23, 2013, 05:50:10 PM
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.


Title: Re: Primer for a P2P Distributed Exchange
Post by: Zangelbert Bingledack on May 23, 2013, 06:08:45 PM
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.

How about certified mail? If the post office website shows the package was delivered and signed for, the oracle releases the BTC from escrow to the buyer. If the package is recalled or something else goes wrong, the oracles returns the BTC to the seller.

This would also work with bank wires, assuming they give the right kind of records and post them online.


Title: Re: Primer for a P2P Distributed Exchange
Post by: charleshoskinson on May 23, 2013, 06:09:53 PM
What if I send you an empty envelope?


Title: Re: Primer for a P2P Distributed Exchange
Post by: Zangelbert Bingledack on May 23, 2013, 06:11:22 PM
What if I send you an empty envelope?

I thought that with certified mail you could certify the contents ("$500 cash," etc.). I'm not sure how certified mail actually works, though. [EDIT: Yahoo Answers disagrees: http://answers.yahoo.com/question/index?qid=20080901020635AADNJ4Q (http://answers.yahoo.com/question/index?qid=20080901020635AADNJ4Q)]

In any case, supposing some service of this nature exists anywhere (or is ever offered in the future), this would enable trustless P2P buying and selling, though not instantaneous. No need for reputation systems, since the banks or post office are the trusted parties, unwittingly.


Title: Re: Primer for a P2P Distributed Exchange
Post by: Rant2112 on May 23, 2013, 06:59:19 PM
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.
This is going to be true for any fiat exchange.

Transactions would be broken up into chunks to reduce risk and prevent the receiver from claiming the entire transaction didn't go through.

For any fiat transaction there has to be trust.  There is either a central point of failure that can accrue a lot of trust (bank, government) or a distributed system where a lot of people are each trusted a little bit.


Title: Re: Primer for a P2P Distributed Exchange
Post by: bytemaster on May 23, 2013, 07:07:01 PM
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.
This is going to be true for any fiat exchange.

Transactions would be broken up into chunks to reduce risk and prevent the receiver from claiming the entire transaction didn't go through.

For any fiat transaction there has to be trust.  There is either a central point of failure that can accrue a lot of trust (bank, government) or a distributed system where a lot of people are each trusted a little bit.
This is not true.   It is possible to 'secure' a fiat balance with 'crypto' collateral and then exchange that fiat balance like a btc balance.  There may be some 'exchange fees' for depositing or withdrawing 'fiat' to a 'network', but once deposited into the network it can be exchanged and traded at face value. 


Title: Re: Primer for a P2P Distributed Exchange
Post by: Rant2112 on May 23, 2013, 07:09:30 PM
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.
Maybe I can explain in more detail and you can tell me what I'm missing?

A P2P exchange determines the alt-coin's value in US dollars.

Alt-coin balances are adjusted so a wallet's value stays constant in US dollars.  In other words the P2P exchange price history would be part of the blockchain and would be used to adjust the number of alt-coins represented by each transaction.

Alt-coins are created by miners who receive fiat in exchange.  Someone that wants to buy alt-coins with fiat posts to the P2P exchange.  The order can be filled by someone that currently has alt-coins or could be filled by a miner who mines new coins.  If the fiat price is higher than the mining cost then miners would compete to solve a block and accept the transaction.

If the fiat price is lower than the mining cost then no new alt-coins would be created and transaction fees would be needed to incentivize the miners to validate/verify/include the transaction.

You could also bid to exchange alt-coins for fiat.  Your wallet would be credited with the appropriate number of alt-coins and you would send fiat to the withdrawer.  The withdrawer's coins would be destroyed.  Everyone else's balance would be proportionally reduced to 'pay' for the credit given to the fiat-sender.

---

Decency and respect are evidently not taught enough either.


Title: Re: Primer for a P2P Distributed Exchange
Post by: Rant2112 on May 23, 2013, 07:17:07 PM
...
It is possible to 'secure' a fiat balance with 'crypto' collateral and then exchange that fiat balance like a btc balance.  There may be some 'exchange fees' for depositing or withdrawing 'fiat' to a 'network', but once deposited into the network it can be exchanged and traded at face value. 
For the intermediate exchanges I agree completely.  A fiat-fixed currency or IOU is useful and could be traded quickly.

In the end people are going to want 'normal' fiat currency.  THAT is the part I'm talking about using the mail for.

I need something that I can spend at my local grocery store that doesn't accept crypto currency.

This exchange is going to have to involve trust - either a bank or an individual.

Localbitcoins is good for anonymity but is costly to split into multiple transactions and isn't available easily everywhere.

Sending paper currency through the mail is easier and allows transactions to be split into multiple parts to reduce risk.


Title: Re: Primer for a P2P Distributed Exchange
Post by: eMansipater on May 23, 2013, 07:21:16 PM
CV tokens (https://bitcointalk.org/index.php?topic=197799.0) claims to have a solution to the fiat problem by making issuers of coloured coins hold sufficient bitcoins as "reserve currency".  Sort of makes them less of an IOU and more of a digitally enforceable contract for their face value in BTC.  And no need for a trusted party.

Also, with two fully digital currencies, there is no need for an escrow role in p2p trade.  Trades can simply be done as atomic transactions with no need for a third party (or use timelocking for trades between different blockchains).


Title: Re: Primer for a P2P Distributed Exchange
Post by: bytemaster on May 23, 2013, 07:32:20 PM
Ok, first of all it wouldn't be a fiat-fixed currency IOU in the typical sense of an IOU backed by nothing.    It would be a fiat-fixed currency backed by VALUE stored in a real crypto currency like bitcoin.  

Imagine you had 100 bitcoins, you could mortgage those bitcoins (which have value) and receive half the value in REAL USD from someone who wants crypto-USD.   The 'network' being all of society just lent you $100 real USD in exchange for $200 worth of bitcoins posted as collateral.   If you disappeared and all exchange rates remained fixed, the individual who gave you $100 would end up with $200 worth of BTC (via interest payments).   If BTC went up in value he would have more than $200 worth of BTC.     However, because you have $200 worth of BTC tied up that are now worth $400, you really want to repurchase some crypto-USD so you find someone else who wants to withdraw crypto-USD and you give them real $USD.   End result is that all parties who held USD were able to move it into or out of the system at near face value.  Those who 'held' USD in the system earned interest for lending to the network.

Clearly you still have to exchange $USD for crypto-USD but this is a FAR MORE STABLE exchange rate and can easily be solved with escrow and done via the internet.  This is effectively like moving money into or out of Mt. Gox but instead of a single 'entity' holding the dollars they value is actually held by the network and can be withdrawn by anyone who can find someone who wants to make a deposit.  

The fact that it allows people to transact in crypto-$USD and price things in crypto-USD instead of BTC also simplifies adoption and eliminates exchange rate risks for merchants.    


Title: Re: Primer for a P2P Distributed Exchange
Post by: bytemaster on May 23, 2013, 07:38:40 PM
CV tokens (https://bitcointalk.org/index.php?topic=197799.0) claims to have a solution to the fiat problem by making issuers of coloured coins hold sufficient bitcoins as "reserve currency".  Sort of makes them less of an IOU and more of a digitally enforceable contract for their face value in BTC.  And no need for a trusted party.

Also, with two fully digital currencies, there is no need for an escrow role in p2p trade.  Trades can simply be done as atomic transactions with no need for a third party (or use timelocking for trades between different blockchains).

CV tokens idea is VERY similar to what I am proposing with one slight variation.   I automatically pay the issuers collateral to the users of the 'colored coins' over time.  If the issuer disappears then the users of the colored coins still received more 'value' than they put in (assuming stable exchange rates).     Because exchange rates change daily and new issues are made daily this results in an average interest rate over all crypto-USD AND automatically adjusts the GLOBAL collateral for all colored coins to be sufficient to back all crypto-USD.

My system has a unique twist though:  crypto-USD deposits pay an interest rate that GOES UP when the value of the collateral goes up.  Thus you could maintain a USD balance and STILL benefit from the growth of the backing crypto-currency while also being protected to the downside of the Crypto Currency.  Little but a total and rapid failure of the crypto-currency would affect the USD value of crypto-USD. 


Title: Re: Primer for a P2P Distributed Exchange
Post by: bytemaster on May 23, 2013, 07:44:52 PM
CV tokens (https://bitcointalk.org/index.php?topic=197799.0) claims to have a solution to the fiat problem by making issuers of coloured coins hold sufficient bitcoins as "reserve currency".  Sort of makes them less of an IOU and more of a digitally enforceable contract for their face value in BTC.  And no need for a trusted party.

Also, with two fully digital currencies, there is no need for an escrow role in p2p trade.  Trades can simply be done as atomic transactions with no need for a third party (or use timelocking for trades between different blockchains).

One downside to CV tokens is that while the issuer is 'backed' they are still a single issuer.  You would have to redeem from that one issuer specifically and the issuer would face huge LEGAL liabilities as issuing FIAT bearer instruments (colored coins) would be 'illegal'.    Under my system there is no one 'issuer', the 'issuer' is the network and anyone can redeem them.

The problem with multiple issuers is that each issuer's IOU (even if backed by collateral) has a different value based upon faith in the issuer and the current value of the collateral.  Thus not all $USD issuers are considered equal.   Lastly, there would have to be some 3rd party to decide when the collateral may be claimed.   I eliminate all of these issues.


Title: Re: Primer for a P2P Distributed Exchange
Post by: eMansipater on May 23, 2013, 07:55:24 PM
CV tokens idea is VERY similar to what I am proposing with one slight variation.   I automatically pay the issuers collateral to the users of the 'colored coins' over time.
Why would anyone become an issuer then?


One downside to CV tokens is that while the issuer is 'backed' they are still a single issuer.
...
The problem with multiple issuers is that each issuer's IOU (even if backed by collateral) has a different value based upon faith in the issuer and the current value of the collateral.  Thus not all $USD issuers are considered equal.   Lastly, there would have to be some 3rd party to decide when the collateral may be claimed.   I eliminate all of these issues.
This isn't my understanding of CV tokens.  I'm pretty sure that each token has multiple issuers, and that the tokens are fungible between all issuers since cashouts are rolled over to other backers if they fail.

Also, croesus specifically said (https://bitcointalk.org/index.php?topic=197799.msg2199873#msg2199873) that there is no entity deciding when collateral gets claimed--it's algorithmic based on a running auction.


Title: Re: Primer for a P2P Distributed Exchange
Post by: bytemaster on May 23, 2013, 08:01:36 PM
CV tokens idea is VERY similar to what I am proposing with one slight variation.   I automatically pay the issuers collateral to the users of the 'colored coins' over time.
Why would anyone become an issuer then?

I throughly explained that in my thread but I can give 2 examples:

1) you are heavily invested in bitcoin but need some leverage / liquidity to pay bills.  You get $USD today and BTC goes up in value and then you repurchase $USD tomorrow... you just leveraged up your BTC investment.   If BTC falls you just cut your losses at 50%.

2) If there is more demand for deposits of crypto-USD because people want interest payments than there are people who have 'crytpo-USD' they want to withdraw, the only source for new crypto-USD is people borrowing.  This will cause the price of crypto-USD to be more than paper USD.  So someone with BTC will take out a mortgage on 2x the USD value in BTC and then trade $100 crypto-USD for $110 paper USD.    This dynamic will increase the supply of crypto-USD until it is once again at or near parity.


Title: Re: Primer for a P2P Distributed Exchange
Post by: bytemaster on May 23, 2013, 08:06:54 PM
This isn't my understanding of CV tokens.  I'm pretty sure that each token has multiple issuers, and that the tokens are fungible between all issuers since cashouts are rolled over to other backers if they fail.

Also, croesus specifically said (https://bitcointalk.org/index.php?topic=197799.msg2199873#msg2199873) that there is no entity deciding when collateral gets claimed--it's algorithmic based on a running auction.

If there is a group of 'issuers' it is slightly better, but how does one join that group and how does the available collateral increase when the crypto-currency price falls?   How does one find an issuer to actually get FIAT paper?  I will go read up on it some more.


Title: Re: Primer for a P2P Distributed Exchange
Post by: greBit on May 23, 2013, 09:23:03 PM
I would also recommend reading the cvToken thread https://bitcointalk.org/index.php?topic=197799.0

The idea is that users of the currency should not be forced to take on the market risk as they are not speculators.

The real speculators are motivated to take on the risk in the hope of making money, with the effect being that their actions keep the value of cvTokens fairly fixed.

Having a stable value token, without needing to trust IOU issuers, would be awesome.



Title: Re: Primer for a P2P Distributed Exchange
Post by: eMansipater on May 24, 2013, 01:17:49 AM
If there is a group of 'issuers' it is slightly better, but how does one join that group and how does the available collateral increase when the crypto-currency price falls?   How does one find an issuer to actually get FIAT paper?  I will go read up on it some more.

Okay, so after re-reading the thread, here is my understanding.  You join by adding your own BTC via the protocol and becoming a backer (which also issues more tokens).  From this post (https://bitcointalk.org/index.php?topic=197799.msg2058997#msg2058997):
Quote
Anyone may become a backer of an existing cvToken by adding BTC at the same proportion or better as the existing collateralisation

The available collateral is meant to generally be higher than you need.  From here (https://bitcointalk.org/index.php?topic=197799.msg2109281#msg2109281):
Quote
This "excess" of collateral would be perfectly normal

But when it isn't, backers have to make up the difference themselves.  From further down in the same post: (https://bitcointalk.org/index.php?topic=197799.msg2109281#msg2109281)
Quote
the backer has been forced to make up .06 BTC of the cashout from their own pocket

If no backer is willing to do this, the token "goes bankrupt" and the collateral is given out to the people who held the token.  Still in the same post: (https://bitcointalk.org/index.php?topic=197799.msg2109281#msg2109281)
Quote
When the last backer fails, the entire cvToken collapses into bitcoins.  The escrow was left holding 20 BTC, and with 200 cvTokens still outstanding, it could not have met all its obligations.  Therefore it minimises the risk of further loss by dissolving the cvToken colour and giving each cvToken holder .1 BTC per cvToken.  At $7.50, this means they have lost only 6.2% during a market that fell by 25%.  It's not ideal, but it was strictly better than holding bitcoins would have been.

It seems like a pretty stable approach.  Similar to how you described your method, I'm thinking of cvTokens like a house mortgage, where the collateral is generally worth more than the debt, and is typically expected to rise in value over time rather than fall.  Most people will keep paying an interest-free mortgage during a temporary dip in property values, but a total collapse in property values will see many people walking away from their homes as no longer worth it.  The difference with cvTokens is that it detects that collapse quickly and seizes all the affected homes before the crisis gets too bad.  In the end, there probably is no ultimate protection against total collapse of an underlying asset, but cvTokens' approach of swallowing the foul medicine as soon as you realise you're sick is probably as good as you can get when it comes to mitigation strategies.

I also don't think you would need to find an issuer for fiat-cvToken exchanges.  Lots of people would be willing to meet up and do it since it doesn't even involve trading and cvTokens hold closely to the fiat value.  They would collect a small fee (much smaller than bank transfer fees) to make it worth their while.  There would still have be a fiat-BTC market of course, but it would be mostly dominated by deep-pocketed businesses and speculators who can virtually ignore the percentage cost of bank transfer fees and already comply with AML provisions.  I don't see p2p trading as taking over from all the existing exchanges--it just needs to exist so that the option is there whenever centralised exchanges aren't meeting people's needs, and to make BTC-fiat exchange as universally accessible and fault tolerant as Bitcoin itself (i.e. this would allow U.S. exchange liquidity to support a thriving BTC-cvTokenUSD exchange in Iran or Zimbabwe).


Title: Re: Primer for a P2P Distributed Exchange
Post by: bytemaster on May 24, 2013, 04:42:30 AM
....

Thank you for your through explanation of the cvToken concept.  It does indeed try a similar approach to mine (issuing a fiat-crypto token backed by crypto-currency).   Not to be biased toward my own idea, but here is where I think my approach has advantages:

1) There are no special rolls that people must take.
2) Paying people interest for depositing paper-$USD into crypto-USD really drives adoption and something people expect to receive while letting someone else use their money.
3) crypto-USD is as divisible as BTC, I am not sure how divisible cvTokens are.
4) My more recent posts demonstrate how market forces will automatically drive crypto-USD to USD exchange rate toward parity and ensure that 'globally' there is always enough backing.

So the question becomes what are the 'cons' of my approach and how can we effectively compare the two approaches?


Title: Re: Primer for a P2P Distributed Exchange
Post by: Chaoskampf on May 24, 2013, 05:06:33 AM
As the OP has pointed out, there's one MAJOR link in the chain missing. You can't send a physical good like paper Fiat over the internet.

This might be one of the p2p threads he's talking about that's been popping up recently.

https://bitcointalk.org/index.php?topic=207764.0;all

It may be extreme, but it could provide ideas for better plans. I'm looking forward to seeing p2p bitcoin exchanging come to fruition. Not only can it happen...It must happen.


Title: Re: Primer for a P2P Distributed Exchange
Post by: nii236 on May 24, 2013, 10:32:25 AM
If there is a group of 'issuers' it is slightly better, but how does one join that group and how does the available collateral increase when the crypto-currency price falls?   How does one find an issuer to actually get FIAT paper?  I will go read up on it some more.

Okay, so after re-reading the thread, here is my understanding.  You join by adding your own BTC via the protocol and becoming a backer (which also issues more tokens).  From this post (https://bitcointalk.org/index.php?topic=197799.msg2058997#msg2058997):
Quote
Anyone may become a backer of an existing cvToken by adding BTC at the same proportion or better as the existing collateralisation

The available collateral is meant to generally be higher than you need.  From here (https://bitcointalk.org/index.php?topic=197799.msg2109281#msg2109281):
Quote
This "excess" of collateral would be perfectly normal

But when it isn't, backers have to make up the difference themselves.  From further down in the same post: (https://bitcointalk.org/index.php?topic=197799.msg2109281#msg2109281)
Quote
the backer has been forced to make up .06 BTC of the cashout from their own pocket

If no backer is willing to do this, the token "goes bankrupt" and the collateral is given out to the people who held the token.  Still in the same post: (https://bitcointalk.org/index.php?topic=197799.msg2109281#msg2109281)
Quote
When the last backer fails, the entire cvToken collapses into bitcoins.  The escrow was left holding 20 BTC, and with 200 cvTokens still outstanding, it could not have met all its obligations.  Therefore it minimises the risk of further loss by dissolving the cvToken colour and giving each cvToken holder .1 BTC per cvToken.  At $7.50, this means they have lost only 6.2% during a market that fell by 25%.  It's not ideal, but it was strictly better than holding bitcoins would have been.

It seems like a pretty stable approach.  Similar to how you described your method, I'm thinking of cvTokens like a house mortgage, where the collateral is generally worth more than the debt, and is typically expected to rise in value over time rather than fall.  Most people will keep paying an interest-free mortgage during a temporary dip in property values, but a total collapse in property values will see many people walking away from their homes as no longer worth it.  The difference with cvTokens is that it detects that collapse quickly and seizes all the affected homes before the crisis gets too bad.  In the end, there probably is no ultimate protection against total collapse of an underlying asset, but cvTokens' approach of swallowing the foul medicine as soon as you realise you're sick is probably as good as you can get when it comes to mitigation strategies.

I also don't think you would need to find an issuer for fiat-cvToken exchanges.  Lots of people would be willing to meet up and do it since it doesn't even involve trading and cvTokens hold closely to the fiat value.  They would collect a small fee (much smaller than bank transfer fees) to make it worth their while.  There would still have be a fiat-BTC market of course, but it would be mostly dominated by deep-pocketed businesses and speculators who can virtually ignore the percentage cost of bank transfer fees and already comply with AML provisions.  I don't see p2p trading as taking over from all the existing exchanges--it just needs to exist so that the option is there whenever centralised exchanges aren't meeting people's needs, and to make BTC-fiat exchange as universally accessible and fault tolerant as Bitcoin itself (i.e. this would allow U.S. exchange liquidity to support a thriving BTC-cvTokenUSD exchange in Iran or Zimbabwe).

I proposed something that was basically the same thing, but instead of cvTokens I proposed digital fiat which is issued when BTC is deposited into a pool.

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



Title: Re: Primer for a P2P Distributed Exchange
Post by: bytemaster on May 24, 2013, 02:08:25 PM

I proposed something that was basically the same thing, but instead of cvTokens I proposed digital fiat which is issued when BTC is deposited into a pool.

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


Very cool, this is basically what I was proposing.  You 'deposit' BTC into a pool by 'mortgaging' it and it issues crypto-fiat.    Your idea used Open Trx and didn't allow for posting of additional collateral and thus downward deviations in the BTC price were directly reflected in the redeamability of the dUSD.   It also required people to use 2 systems: Open Trx + Bitcoin and Open Trx requires federated servers which don't require "trust-per-se" but they are still 'centralized' and potentially a legal liability.   I suppose an Open Trx server running behind BitMessage  would be a start.

So to implement my idea in your terms you would deposit your BTC in an OT server.  Then you would ask the OT server to mortgage your BTC for dUSD at 50% face value and you would end up paying interest for this privilege.  You must pay interest because you are effectively 'borrowing' USD from the network (society) AND there is risk of default and potential for your collateral to drop by 50%.   

Other people are willing to hold dUSD because it is paying them interest which makes up for the fact that there is still transaction friction between getting into and out of dUSD and the fact that they are exposed to some BTC risk.

Later when you want to pay off your mortgage you only get the collateral back that wasn't used to pay interest.  You would pay off your mortgage because the collateral is worth more than the dUSD and thus you are motivated to accept deposits from people.

I just implemented all of this directly into the blockchain.
 


Title: Re: Primer for a P2P Distributed Exchange
Post by: nii236 on May 24, 2013, 02:41:30 PM
But if you were an exchanger wanting to sell dUSD, getting 50% of the worth of BTC back does not give any incentive to become an exchanger!


Title: Re: Primer for a P2P Distributed Exchange
Post by: Mylon on May 24, 2013, 03:14:21 PM
Hi BTCLuke,

When I initially read your post, (couple of days ago) I immediately saw the potential, the one thing that does not work however, is fiat -> BTC -> fiat, in the entire scheme you posted. (also really bonus kudos to the guy that basically already wrote the txn scheme on how to handle the p2p exchange, crypto only, as that is the way to go)

^^ We all know this can be done, and perfected as long as we are dealing with crypto currencies, with a blockchain to actually see if someone is able to spend that.

While I wanted to reply earlier, I didn't get to it being very busy. And then again I hadn't solved the fiat -> btc yet. Now I think I have gotten the clue from bitpay after their talk on the conference, and I truly believe that in combination with this p2p exchange it can work.

Forget instant transferring USD, EURO or any other fiat, it needs to digital and verifiable. (as long as there are bankers, they will not allow us to do this.)

So we gotta go outside the box... (bitpay's words)

Grab any gift card you can think of, that is automated verifiable, whether it is still valid or not.

For our example we will use Amazon and Ebay gift cards.

If I go to the store I can most likely buy an Amazon $50 Gift card for $30.

If I can check this card online whether it is still valid, then this cards code is worth $30. (despite being $50 Amazon gift card)

So I have a code, that i can check on the fly, and trade... :D

Now I hear you say, I don't trust Amazon. Ok fine then go Ebay.

Since there is such a huge market of gift cards, by different companies, all you have to trust is a company you already trust, that has these gift cards.

The most important part here is, to use the existing gift cards from major companies. (who people already trust, to be the intermediary between fiat and BTC)


The other thing to realize is, that crypto exchanges can do the exact same thing on this same platform.

While sharing the same platform, they can benefit from it (easier access to more crypto currencies, all of a sudden your not just exchanging bitcoin, you can exchange anything you have the client / plugin for.)

A BTC-E USD IOU, all of a sudden can be traded against a MtGox USD IOU, or MtGox Euro IOU, but at the same time vs an Amazon Gift card, BTC or LTC.


Any exchange can join, and give out IOU, depending on how much reputation they hold, their IOU's will be worth more or less. (you wanna facilitate trading of these IOU's to keep prices down)

Any Gift Card from a Major / Medium sized Company can join, as long as they are instantly verifiable as not spend. (aka, you're using your mutual trust in this company, without needing their consent)

Any Crypto Currency can join, as they are backed by a blockchain.

(And many other things that I haven't thought of, that are instantly verifiable over the internet, or have enough reputation, that people start trading their IOU's)

The combination of these 3 on a shared exchange platform, using the security of the bitcoin protocol, has the best chance of success in my opinion.


Last but not least, you could also build a sort of "localbitcoins" into this, though it would technically be nothing more than a message board, asking where to meet, with a reputation system in it. (someone looking to buy BTC, posts a message he wants to buy, the moment they meet and sell, the seller will sign the transaction as being completed, on which the system will see the transaction as completed as they see the bitcoins appear into the persoon looking to buy BTC, and anybody trying to up-rate himself, will be killed by the fees of the network upholding the exchange)

Looking forward on all input on this.


Title: Re: Primer for a P2P Distributed Exchange
Post by: CypressXM on May 24, 2013, 03:19:50 PM
While I'm still more or less convinced that a P2P exchange of BTC=>Fiat is not feasible, what is feasible is very interesting.

What's feasible is a P2P exchange of BTC=>AlternaCoin

A totally distributed P2P exchange! This could be done now...There are no technical barriers that I can think of.


Title: Re: Primer for a P2P Distributed Exchange
Post by: justusranvier on May 24, 2013, 03:21:44 PM
What's feasible is a P2P exchange of BTC=>AlternaCoin

A totally distributed P2P exchange! This could be done now...There are no technical barriers that I can think of.
Just the economic barrier that there's no market for this service because nobody cares about altcoins.


Title: Re: Primer for a P2P Distributed Exchange
Post by: CypressXM on May 24, 2013, 03:26:26 PM
What's feasible is a P2P exchange of BTC=>AlternaCoin

A totally distributed P2P exchange! This could be done now...There are no technical barriers that I can think of.
Just the economic barrier that there's no market for this service because nobody cares about altcoins.

True, I would probably get a few LTC but that's about it.


Title: Re: Primer for a P2P Distributed Exchange
Post by: phillipsjk on May 24, 2013, 05:07:18 PM
minted bars like this one designed to break apart in small groups of 1g bars or as individual 1g bar are great for our future p2p bitcoin gold exchange. gold is the solution. i read people waiting more than 20 days for wire transfer from mt gox or accounts frozen for id problems etc. that is crazy! nobody has the right to interfere with your private transactions. with the gold exchange there will be no such delays or interference. you can do it over the net or by visiting your nearby bullion dealer. nobody will get in your way.

fiat --> gold --> bitcoins
bitcoins --> gold --> fiat

Gold dealers are required to report large suspicious transactions in Canada, and likely other countries as well. Gold is also much easier to counterfeit than Bitcoin.


Title: Re: Primer for a P2P Distributed Exchange
Post by: BTCLuke on May 24, 2013, 09:50:53 PM
Whew... Had to take the day off yesterday because this was just too much to absorb.

Now with a fresh head, I can see that all of the proposed solutions to the fiat problem still seem to forget that whatever it is that we'll be trading as Fiat on this exchange must still follow the economic requirements for money!

Remember, if it isn't convenient to trade a form of money, then it won't be used as money for long. If you want to argue this point please head over to Mises.org and argue with them. They have a trillion different arguments to counter yours with. ;)

The closest thing mentioned on this thread (or a linked thread) to a Fiat replacement that a convenient P2P exchange can use is OT's Ricardian contracts. If Bearer-bond contracts were made in 1 USD or 1 yen or 1 euro allotments, then we can trade them fluidly in place of fiat.

I like to think of them as little cryptobonds.

1 USD + a fee is traded to some trusted source for a $1 cryptobond, which is a tradeable hash that can fit into the wallet on this P2P exchange and be traded as quickly or even quicker than a bitcoin can between clients. Of course making sources trusted but not centralized then becomes the problem... I'll leave that problem for another day.

But the important thing in this thread is the criteria. To rephrase the original criteria with the change in #6:

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 a cryptosecurity that perfectly represents fiat and has all of the characteristics of real money. (Divisibility, fungibility, Malleability, Scarecity, etc...)


Again, my exchange idea is a work in process but these criteria are something I'm sure we will all want to agree on for your own projects or mine too... So please, think for a moment what else a working P2P Distributed exchange will need to be and do, and help me ensure we haven't missed a criterion on this list.

Thanks for all your hard work!

 


Title: Re: Primer for a P2P Distributed Exchange
Post by: bytemaster on May 25, 2013, 04:52:57 AM
@btcluke

I want to start by saying I appreciate everyone who takes time to post thoughtful responses.  So I will respond to your post stating I fully believe I can satisfy all of your requirements.  So much so that I have posted another thread where I am looking to hire someone to help me and invest $20,000 or more in creating a working system based on my ideas.   But, as a sanity check I am also offering a 10 BTC bounty to anyone who can convince me that the idea will not work and save me time and money.    That said, let me attempt to explain my idea in greater detail.   I am also willing to discuss my ideas on skype with anyone interested in helping or attempting to claim the 1 BTC bounty.   (my handle isn't exactly anonymous because I have tied it to my website the-iland.net and my github account (also bytemaster)), send me a private message for skype (or ichat).

Now that I have your attention let me attempt to address your requirements by first stating that I am a very well read student of mises and austrian economics and thus am basing EVERYTHING on an austrian understanding of economics and will clarify anything I that you think I might misunderstand.  I am actively want to be proven wrong if I am wrong.

First of all we must understand that all forms of USD have different value despite being denominated in USD.  USD on Mt.Gox is less valuable than a paper note in my hand because it costs time and money to move a deposit from Mt. Gox and convert it into a bill in my hand.  It is also less valuable because there is counter-party-risk where the counter-parties are Mt.Gox and various governments and banks that could all prevent me from redeeming my Mt.Gox USD.    Even money in my bank account is of lower value than USD in my hand (provided I need it now) because of ATM fees, daily withdraw limits, and of couse counter-party-risk.

We must also recognize that at other times paper-USD is of less value than Mt. Gox USD such as times when you want to buy BTC NOW to take advantage of the price movement.   Therefore the price of Mt. Gox USD is above or below parity depending upon the relative demand for deposits vs withdraws from Mt. Gox as well as the ease of trading balances within Mt. Gox.

With that understanding we can clearly see that it is only an illusion to claim redeem-ability at 'face value' with any issuer.  Every issuer has a different trust level with every individual and therefore USD notes issued by different issuers are not perfectly fungible nor free of counter-party-risk.  The issuer is always subject to seizure from the government and could default regardless of how honest he intended to be.   The conclusion we can draw from this is that there might as well be a market for crypto-USD that fluctuates AROUND actual USD prices give-or-take a couple of percent similar to the price variance between Mt. Gox USD and paper USD which is what Bitinstant's entire business model is designed to capitalize on.  Thus if we can create a crypto-USD currency that has VALUE recognized by the market yet without any redeemable IOU like contract (like Bitcoin) yet trades at or near parity of paper USD base solely on market forces (not price fixing) then we will have a workable system.

Another aspect of depositing (trusting) money with a 3rd party is the expectation of interest payments in return for the risk associated with lending your money to the bank.  Any bearer-bond contract that does not pay interest will always be subject to immediate demands for redemption and thus put heavy stress on the most expensive / difficult part of converting fiat to crypto-fiat (redemption).

1. Be without any central points of failure
  - a crypto-USD that can be traded via systems like localbitcoins at prices near parity with the dollar would lack any central points of failure.  Assuming you could provide a way to imbue value into the crypto-USD independent of any backer or price-fixing.  (It can be done, more on this later)

2. Show everyone a very large number of possible trades to choose from
  - by separating the process of converting paper-USD to crypto-USD and trading crypto-USD for BTC or crypto-USD you enable all trades to occur through broadcasts on the network or offers in the blockchain.

3. Transact trades pretty much INSTANTANEOUSLY
  - assuming there exists crypto-USD and BTC then an exchange could be run entirely from behind a TOR node.  However, there is still value in trades that can occur at the same speed as bitcoin transactions for most people who are not attempting arbitrage.  On the other hand if the exchange were a natively transparent part of a single blockchain then there probably would be much need for arbitrage.  

4. Offer Graphs and APIs
  - considering the entire market would be part of the same blockchain this could easily be added into any desktop client.

5. Have three-user (trustless) trading
  - how about 2-user trust-less trading between crypto-Fiat and 'BTC' and using escrow for remote exchanges of crypto-Fiat for bank-Fiat?

6. Hold and transfer a cryptosecurity that perfectly represents fiat
  - crypto-USD is more divisible, fungible, malleable, and scarce than paper-USD.


I think the #1 criteria is to eliminate counter-party-risk from holding of crypto-FIAT.  

I believe I have done this with my system which I will attempt to describe with more clarity and to PROVE that crypto-USD is not an IOU, has value of its own (like BTC) and that the value is automatically moved toward paper-USD parity by market forces, and that the value of crypto-USD is not at risk regardless of 99% changes in the value of 'BTC'.

More in a follow on post...











Title: Re: Primer for a P2P Distributed Exchange
Post by: bytemaster on May 25, 2013, 05:41:52 AM
So the challenge we have before us is to create a crypto-USD that has market value of its own at or near parity with real USD with no issuer 'backing' the crypto-USD.  I will now explain how this can be done.

First we must establish that bitcoins already establish market-value without an issuer.   So we must now find a way of using 'bitcoins' to back crypto-USD in such a way that crypto-USD maintains a value near parity with paper-USD. 

To do this there must be some way to make holding crypto-USD pay interest in BTC and have the amount of interest paid automatically adjust with the exchange rate.  So lets try to set up such a system.

1) Assume for a moment that holding bitcoins paid a dividend in bitcoin proportional half of the mining fees (miners get the other half).   This would turn bitcoins into BitShares where a BitShare can be thought of as a share in the exchange.   Suppose Mt. Gox issued shares in the exchange that paid dividends based upon profits from the exchange.  In this case the 'exchange' is the BitShare network and the Shares are 'bitcoins' and the 'fees' are the transaction fees + mining reword.

2) With the above scenario owners of BitShares own them for 2 reasons, appreciation and dividends.  The dividends encourage saving.

3) If someone wanted to issue crypto-USD they could divert their dividend payments from their BitShare to crypto-USD issued at the current exchange rate.  The result would be that crypto-USD pays dividends proportional to the exchange rate and therefore has value derived from BitShares that is close to parity.

4) Why would someone convert BitShares to crypto-USD?   Because there is a buyer with paper-USD that is willing to pay a premium to above parity to covert paper-USD into crypto-USD.  This premium would have to be high enough to justify giving up BitShare dividends and cash out into paper-USD.   This will increase the supply of crypto-USD with each conversion and each conversion will be done at the current market price of crypto-USD vs BitShares and thus the ratio of BitShare dividends paid to crypto-USD holders would follow the exchange rate.   

5) Why would someone redeem crypto-USD for with paper-USD on this market?  They would do this because they own some BitShares that are not paying dividends because they are used as collateral for $100 crypto-USD.  If they can buy crypto-USD for $95 worth of paper USD then they can profit by redeeming $100-crypto-US for a mere $95.  This profit comes because $95 paper USD allows them to free BitShares that pay dividends equal to $100 crypto-USD.  They also know that eventually the crypto-USD market will swing back the other direction.

6) The reason the price of crypto-USD vs paper-USD fluctuates between $95 and $105 is based upon the relative demand for deposits and withdraws.  When demand is 'equal' the price is approximately at parity.   This market behavior is no different than the actual price fluctuations you would see with people willing want to buy or sell Mt.Gox USD.

7) Because crypto-USD pays dividends in BitShares (proportional to their issuance), it creates an incentive / demand for people seeking a return to deposit paper-USD.  This demand for deposits of paper-USD is a source of supply for those wishing to withdraw.  Thus most of the time 'redemption' is not doen by issuing or paying off of BitShare bonds, but via the direct exchange of crypto-USD for paper-USD at near parity prices between depositors and withdrawers.

In conclusion, I believe I have identified all of the market forces required to create a bitcoin like crypto-USD that derives its value from the same source that Bitcoin does yet does not suffer exchange rate fluctuations beyond those already found in the traditional banking system.  I would even submit that due to open market competition that market forces would drive the exchange rate fluctuation to be much close to 0 than is currently provided by the closed, regulated, slow banking systems.


Title: Re: Primer for a P2P Distributed Exchange
Post by: Pzi4nk on May 25, 2013, 10:28:28 AM
I get that what you're trying to do here is much bigger than facilitate USD to crypto-USD but I think you bring up a good point about the relative value of a dollar based on our desired ends.

The simplest way to think of this is the Mt Gox example you gave where USD ready to be exchanged for BTC (or other cryptocurrency) immediately is worth more than USD in my hand. This means there is a market for crypto-USD sitting in an exchange ready to be utilized. If there is a market why isn't it happening?

I think the reason it's not already happening is the trust issue. The fact that regardless of how much I offer you to let me use your crypto-USD in exchange for the USD in my hand, you have to believe you'll actually get my USD before you'll even set a price for your crypto-USD.

To me the central issue is trust. If you solve that problem the market will adjust to the relative value of USD in different forms and to changes in demand.


Title: Re: Primer for a P2P Distributed Exchange
Post by: Mylon on May 25, 2013, 01:45:22 PM
To me the central issue is trust. If you solve that problem the market will adjust to the relative value of USD in different forms and to changes in demand.
I have the same problem, which why I don't like the above idea. I already have to trust the government that my fiat is worth something. Beyond that point, all I want is choice, a big huge mess of anything that get cryptographically secured and bought at a fixed rated with fiat, and combined into one big exchange, trying to determine btc -> usd and usd -> btc. Due to the mass amount of choice, nobody has to trust a central point, you just choose who to trust. (getting fiat into bitcoin always needs some trust, the only thing we can do is make sure you get enough choice in who to trust) Me for example, am already thinking about WoW Gametime cards, as one of those options that you could trade on it. Keep in mind I'm looking for 100's of different things, who are already digitally stored "money/value" that are easily cryptographically securable, to prevent double spending / scamming etc. Its my believe that this is one of the very few ways, to get an p2p exchange of the ground, that is big enough to meet everyones depends and able to get us a stable price.

It also makes things a lot easier, as when I wanna spend BTC at for example Amazon, and they don't accept it, but their gift cards are being traded on the exchange, all of a sudden I make someone happy with BTC, and he already paid Amazon the USD for the things I wanna buy.


Title: Re: Primer for a P2P Distributed Exchange
Post by: c0rw1n on May 25, 2013, 03:54:33 PM
We need a distributed third-party.

We need to figure out a way to distribute escrow, and to keep the escrowers honest.

I see that with a swarm of gateways that just check if the fiat exists, and sign that with their own btc. I mean like a dominant assurance contract.

I'm still sorting that out...


Title: Re: Primer for a P2P Distributed Exchange
Post by: ivanol on May 25, 2013, 04:35:16 PM
We need a distributed third-party.

We need to figure out a way to distribute escrow, and to keep the escrowers honest.


Can you just keep escrowers honest based on a reputation system? In order to build reputation an individual uses the same address for all their transactions in the market. Based on signed feedback from the addresses of counterparties they trade with they build a track record of being trustworthy, and you can make a judgement based on the amount of business they have done already as to what their reputation is worth to them and therefore how much they can be trusted with in escrow.

A way to build initial trust to start up would be to use a public address on the network that was expensive to generate, and that you are less likely to want to throw away in order to defraud someone. Two ways to do this: either use a vanity address starting with for example a string of 1s as a proof of work, or make a couple of transactions from your address with large mining fees which is then the cost of that address to you.

Quote from: btcluke
3. Transact trades pretty much INSTANTANEOUSLY

Is this necessary for all trades though? It helps to have some instant trades, but there is no reason that p2p localbitcoins type transactions couldn't exist within the same system. A seller of bitcoins could advertise a fiat payment method along with the price. A trade would be entered on the p2p network as "agreed" when an agreement is made, as "paid" when the buyer confirms they have dispatched fiat payment, and as "settled" when the fiat payment settles and the BTC are sent.

The settlement date could be anything from a few minutes later for a wire transfer, to several days later when cash arrives in the mail, but the prices can still be broadcast to the market to help determine a market price. It is up to the buyer/seller to decide what risks they wish to take in the trade based on each others reputation and the risks of the payment method (cash vs paypal vs wire transfer etc).


Title: Re: Primer for a P2P Distributed Exchange
Post by: bytemaster on May 25, 2013, 04:39:32 PM
I get that what you're trying to do here is much bigger than facilitate USD to crypto-USD but I think you bring up a good point about the relative value of a dollar based on our desired ends.

The simplest way to think of this is the Mt Gox example you gave where USD ready to be exchanged for BTC (or other cryptocurrency) immediately is worth more than USD in my hand. This means there is a market for crypto-USD sitting in an exchange ready to be utilized. If there is a market why isn't it happening?

I think the reason it's not already happening is the trust issue. The fact that regardless of how much I offer you to let me use your crypto-USD in exchange for the USD in my hand, you have to believe you'll actually get my USD before you'll even set a price for your crypto-USD.

To me the central issue is trust. If you solve that problem the market will adjust to the relative value of USD in different forms and to changes in demand.

Such a thing already exists today, it is called Bitinstant.  They charge a fee for 'instant funds' in Mt. Gox and the reason they can charge that fee is price difference.

Actually, you can set a BitShare price for crypto-USD without having to trade with anyone but yourself.  It would lock in the 'exchange rate' and if you were the ONE AND ONLY issuer and held all crypto-USD then your dividend payment would be EQUAL to holding just BitShares and thus there is NO RISK in placing bids without having $USD in hand because the value you receive is proportional to the DIVIDENDS received which is the same both immediately before and immediately after your bid is accepted.   Now if the price changes while you hold-crypto-UDS then you could lose money due to exchange rate changes between crypto-usd and bitshares, but that is what markets do.




I am responding to you in another thread because I want to get all discussion on this idea in one place so I do not have to repeat myself...


Title: Re: Primer for a P2P Distributed Exchange
Post by: phillipsjk on May 25, 2013, 09:55:12 PM
...
FIAT is toxic to an automated distributed P2P exchange.
...

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.

I have a 7th criterion to add:
7. It must not be assumed that the individual users have access to less information than the network as a whole.

As mentioned, the are numerous P2P exchange threads popping up. The ones that sound the most plausible on the surface are also the most flawed: That the network as a whole can somehow authorize things that individuals can't. This violates the laws of the universe, cause and effect, The second law of thermodynamics (https://en.wikipedia.org/wiki/Laws_of_thermodynamics), if wishes were horseshoes, or whatever you want to call the DRM problem.

I am embarrassed to say I was convinced by the CV token thread for just over 24 hours.


Title: Re: Primer for a P2P Distributed Exchange
Post by: bytemaster on May 25, 2013, 10:10:41 PM
...
FIAT is toxic to an automated distributed P2P exchange.
...

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.

I have a 7th criterion to add:
7. It must not be assumed that the individual users have access to less information than the network as a whole.

As mentioned, the are numerous P2P exchange threads popping up. The ones that sound the most plausible on the surface are also the most flawed: That the network as a whole can somehow authorize things that individuals can't. This violates the laws of the universe, cause and effect, The second law of thermodynamics (https://en.wikipedia.org/wiki/Laws_of_thermodynamics), if wishes were horseshoes, or whatever you want to call the DRM problem.

I am embarrassed to say I was convinced by the CV token thread for just over 24 hours.


I think that 7th criterion is entirely reasonable.  I do not think my approach violates this criterion, but would be interested in your opinion.   


Title: Re: Primer for a P2P Distributed Exchange
Post by: Chaoskampf on May 26, 2013, 12:37:07 AM
Is it just me, or is this a good idea?


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


Title: Re: Primer for a P2P Distributed Exchange
Post by: eMansipater on May 26, 2013, 02:55:00 AM
...
FIAT is toxic to an automated distributed P2P exchange.
...

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.

I have a 7th criterion to add:
7. It must not be assumed that the individual users have access to less information than the network as a whole.

As mentioned, the are numerous P2P exchange threads popping up. The ones that sound the most plausible on the surface are also the most flawed: That the network as a whole can somehow authorize things that individuals can't. This violates the laws of the universe, cause and effect, The second law of thermodynamics (https://en.wikipedia.org/wiki/Laws_of_thermodynamics), if wishes were horseshoes, or whatever you want to call the DRM problem.

I am embarrassed to say I was convinced by the CV token thread for just over 24 hours.

I'm someone still convinced by the CV tokens thing.  What made you change your mind?  I would like to know about it.


Title: Re: Primer for a P2P Distributed Exchange
Post by: phillipsjk on May 26, 2013, 04:57:27 AM
I'm someone still convinced by the CV tokens thing.  What made you change your mind?  I would like to know about it.

The way I understand Bitcoin, value is transferred around by crytographically signing a transaction to prove that you have the private key. This requirement should prevent the CV Token network from "collapsing back into bitcoin" when the backers fail to act.

For CV tokens to work, they must do one of two things:
  • Store private keys in the network. This is bad because a bad actor can simply use those private keys to send coins to themself.
  • Somehow transfer value in and out of the bitcoin network without using private keys. This is bad because it breaks (at least my) fundamental assumptions about how the protocol works.

I admit, I am not as familiar with the gory details of the Bitcoin protocol as I would like. It is possible that there is something that I am missing. So far Croesus has refused to give concrete details, citing complexity.

I think that 7th criterion is entirely reasonable.  I do not think my approach violates this criterion, but would be interested in your opinion.  

I have not had time to review version 2.0 of your proposal. I don't think it violates that criterion.

What concerns me about your proposal is the lack of fungibility. If different DS coins are worth varying amounts because each transaction has its own exchange rate: price discovery is going to be difficult when converting to another crypto-currency like Bitcoin.


Title: Re: Primer for a P2P Distributed Exchange
Post by: eMansipater on May 26, 2013, 06:29:35 AM
I'm someone still convinced by the CV tokens thing.  What made you change your mind?  I would like to know about it.

The way I understand Bitcoin, value is transferred around by crytographically signing a transaction to prove that you have the private key. This requirement should prevent the CV Token network from "collapsing back into bitcoin" when the backers fail to act.

For CV tokens to work, they must do one of two things:
  • Store private keys in the network. This is bad because a bad actor can simply use those private keys to send coins to themself.
  • Somehow transfer value in and out of the bitcoin network without using private keys. This is bad because it breaks (at least my) fundamental assumptions about how the protocol works.

I admit, I am not as familiar with the gory details of the Bitcoin protocol as I would like. It is possible that there is something that I am missing. So far Croesus has refused to give concrete details, citing complexity.

There are definitely more ways than that to transfer value around in Bitcoin, though they aren't as well known.  You can use scripts to build complex conditions which must be satisfied, and then anyone who can satisfy them can spend the coins.  Just off the top of my head:

-you can build transactions that anyone can claim (has actually been used)
-you can build transactions claimable by some subset of a group of keys ("m of n" signing, actually in use)
-you can build transactions which can be claimed by anyone who knows a secret password or piece of data (could be a file, a word, or an answer to a math problem, not just a private key corresponding to a public key or its hash, and has also actually been used)
-you can build transactions which go to the first person performing some amount of computational work, similar to how mining works (but separate from it)
-you can build transactions that no one knows the output of until they are spent (pay to script hash, where the transaction only has a hash of the script and the person collecting the transaction has to provide a script that hashes to that hash when spending it.  I believe this is already in use, but I'm not sure)
-you could build a transaction that could only be claimed by the owner of a certain pgp key (might be a big script, don't know how efficiently you could implement RSA signature verification in transaction scripting)
-you can build a transaction that isn't valid until after a certain time
-you can build a transaction which only becomes valid when someone else adds more money to it
-you can build a transaction with a sequence number which can later be replaced with a later sequence number
-you can build transactions where a portion of it can be modified later without requiring a new signature as long as the part that was signed remains unchanged
-you can build transactions that can be updated repeatedly without publishing them to the blockchain, and then only publish the final copy when all is said and done
and lots more I'm sure I'm forgetting.  Satoshi built a ton of cool features into Bitcoin--we just have most of them turned off right now because there aren't any commonly used use cases so it isn't worth the risk that the feature has been improperly implemented in one or more clients/miners and might result in a security exploit.

croesus has been light on details, but what she/he describes seems technically possible to me.  Just take a look at the contracts page (https://en.bitcoin.it/wiki/Contracts) on the wiki and you will find a whole slew of things that can be done with transaction scripting.


Title: Re: Primer for a P2P Distributed Exchange
Post by: bytemaster on May 26, 2013, 08:28:43 AM

I think that 7th criterion is entirely reasonable.  I do not think my approach violates this criterion, but would be interested in your opinion.  

I have not had time to review version 2.0 of your proposal. I don't think it violates that criterion.

What concerns me about your proposal is the lack of fungibility. If different DS coins are worth varying amounts because each transaction has its own exchange rate: price discovery is going to be difficult when converting to another crypto-currency like Bitcoin.


I just posted revision 3.0 here: https://bitcointalk.org/index.php?topic=215488.msg2273237#msg2273237

After you read it you will see that all crypto-USD is as 100% fungible as bitcoin and there is no more price fixing of terms, margin requirements, or any other 'fixed' numbers and thus all properties of the system (except mining distribution strategy) are driven by the market.



Title: Re: Primer for a P2P Distributed Exchange
Post by: bytemaster on May 26, 2013, 10:18:39 AM
you are trying very hard to give crypto-usd value when gold itself does this without even trying. gold naturally stores value without needing any outside complex schemes to give it legitimacy

the moment gold bids directly for bitcoins - once a p2p gold exchange is created - gold will be set free in bitcoin terms. at this point the dollar will collapse in terms of bitcoin maybe by 50 or 100 times. example... 1 bitcoin will equal $13,300 almost over night. so you will be rich just for supporting the idea of bitcoin gold exchange. because there are no suppressive schemes in the bitcoin world like gld or gold futures (paper to gold=100:1?) or gov interference etc gold will be valued correctly and the curent usd btc rates will reset

You are 100% correct and gold/silver exchange is EXACTLY my end goal.   I am not trying hard to give value to USD, I am trying hard to allow a system to track the value of ANYTHING.  Thus the purpose of crypto-USD is really to track the value of USD even into the floor.   I only use it as an example because initially the number of users of my system would be spread all over the place and thus rely on the existing banking system to deposit/withdraw.


Title: Re: Primer for a P2P Distributed Exchange
Post by: bluemeanie1 on May 27, 2013, 02:06:54 AM
I've seen no less than ten different threads pop up here from people wanting to start a P2P decentralized/distributed exchange, but each and every single time, without fail, the definition of what a P2P distributed exchange actually is gets totally forgotten and the thread dies... Sometimes without a single mention of the word Ripple, too!  ;)

The sad thing is, Bitcoin desperately NEEDS a P2P Exchange... It's not like we don't know already that MtGox is a single point of failure that could severely set us back any day now... We all instinctively know this, and most of us know that if uncle sam made bitcoins "illegal," they'd come after ALL of the exchanges at the same time, yes, even in England, Germany, Canada and Oz too. Obomba's done worse already.

So we all agree that we need to replace these central-points-of-failure (CPOF) allowing access into the bitcoinoshpere, but we simply have not yet been able to agree on what the replacement should look like.

Now let's get this thing made!


Hello,

  I am working on a technology that can be used as a distributed exchange.  In other words N Authorities can determine(by shared consent ie. voting) what statements enter into the transaction record and in what order.  This is really the key problem with currency exchanges.  Without non-bias, then the trades can be privileged to a particular party creating a bias to the market.  The network is P2P, it uses a block chain technology very similar to Bitcoin.  https://docs.google.com/file/d/0BwUFHE6KYsM0ZkxLVmFwbXQ3ck0/edit

  The technology also allows you to issue assets and exchange them eg. Digital Gold Currencies.

  So in order to implement an exchange, you simply create a transaction type that allows for two primary statements:

   POST  : post an offer to exchange X of asset P for Y of asset Q.  The offer is signed with an RSA key.  The Signer must have the X of asset P in their account.  X of those assets P are not spendable until the POST is ACCEPTED or voided.

   ACCEPT  : accept a POST.  The signer must have Y of asset Q in their account.

  With these two simple primitive actions, all other familiar features can be derived such as Exchange Rates, etc.  The atomic operations MUST be stated and responded to in an completely unbiased way to have a fully functioning marketplace.  No other technology can offer this in a decentralized way.  If any of the N authorities goes down, the network continues unabated.  Authorities can be added or removed without failure or disruption of the exchange.  Trades are virtually instantaneous(can support thousands of trades per second), and p2p optimization is possible(nodes can change their placement in the network to get better response time to a given exchange node).

  Im currently working on a simulation of Confidence Chains that demonstrates how the transaction record is negotiated by N parties.

  https://github.com/BlueMeanie/ConfidenceChainsSimulation

  thanks, -bm


Title: Re: Primer for a P2P Distributed Exchange
Post by: bluemeanie1 on May 27, 2013, 02:16:51 AM
Where is the decentralized process to getting fiat into the system (for new users without crypto)?

Isn't that the important part?


my system solves this by allowing for ANY asset to be published.  Once these assets are issued, then they can be exchanged.

Thus, if you want to exchange USD, 1g Gold Coins, 1g Silver Coins, BTC and Litecoin, you issue 5 seperate assets.  There must be someone who interacts in the real world, accepting gold coin(or redeeming gold coin) for the digital assets.  It is perfectly safe to do so as it is impossible to forge or alienate the assets without somehow gaining control of ALL the authority nodes[1].  So to bootstrap in an easy way, you simply buy some of the BTC assets.  Note that this isn't BTC itself, but a parity asset that is WORTH BTC.  You can then market those assets for the other five.  Thus you have something similar to Mt. Gox ie. a way to get BTC for USD or Gold(and vice-versa).

https://docs.google.com/file/d/0BwUFHE6KYsM0ZkxLVmFwbXQ3ck0/edit?usp=sharing

-bm

[1] and only then you have the ability to deny transactions, not forge them.  A good practice is choosing diverse authorities who are unlikely to collude.


Title: Re: Primer for a P2P Distributed Exchange
Post by: bluemeanie1 on May 27, 2013, 02:24:57 AM
This is the best thread so far - and it does highlight the big problem is how to marry fiat with crypto.

I wonder if the answer is to have a p2p version of localbitcoins?

At the moment, I am sending my fiat, from my bank account to another bank to an exchange which creates a voucher, which I can use to buy crypto.  Anyone else can sell their crypto for a voucher which the exchange can send to their bank, who send it to your bank and then you can spend it as fiat.

We need a p2p exchange, where a fiat voucher can be converted into local fiat.

Bitcoin already has miners, is it time it also had bankers?

What if there was a local Jane or Harry who would convert digital coins (and we know how to create digital coins by today!) into a fixed rate of fiat and the other way around for a fixed fee?

Lets say an alt coin was created that could be mined and had a value of 0.1c and couldn't be worth any more. Lets assume 200 bn were mined! Actually - why not use DEVCOINS?  They would finally have a real use! If these were used as a direct replacement for fiat, in a localbitcoin model, with a charge of .01% per transaction, you would then have a digital fiat voucher that could be used on the exchange, as described above.

You would also have got around the problems currently caused by the regulations of bank transfers etc because the sums would be small and local  and no change in value means no speculation is possible.  Might still have a problem with money laundering laws, but that's something that could be dealt with on a local basis.

Any feedback to that?


Wow, I really like this idea!

Having a cryptocurrency pegged to the USD or something will allow anyone to convert it to BTC easily.

The only problem is adoption. This new cryptocurrency (say, BitBucks) will actually solve the problem, but only if everyone accepts it. If everyone in the world accepted BitBucks, then it would be easy to convert between fiat and BTC! If no one accepts it, then no one will want to convert to BitBucks because its useless.

So you have the same problem as Bitcoin where the market is determining its value, yet we want to peg the value of BitBucks to the USD.

Just thinking out aloud here...


Hello,

 Digital asset issuance is the key to creating a distributed exchange system.  You can't use traditional Bitcoin, because Bitcoin requires mining and hence inflation, so the miners are creating assets worth real money out of thin air.  Who will redeem them?  This is the problem that my software solves:  https://docs.google.com/file/d/0BwUFHE6KYsM0ZkxLVmFwbXQ3ck0/edit

 It's important to note that with Confidence Chains, the supply is potentially STATIC ie. does not inflate or deflate[1].  Thus you can safely denominate real assets.  You issue a thousand grams of digital gold, it remains a thousand grams of digital gold, no reward to miners etc.  Thus all that is required is to keep a thousand grams of gold in your safe, and to give it to anyone who wishes to redeem their gold.  Of course, if you're a banker, you might want to charge a little extra to purchase the credits in the first place.

  ex.  buy 10k USD worth of gold coins.

        make 10,000,000 units of Digital Gold Currency

        sell them for 10.5k USD total (.5k profit)

        offer to exchange the units for their original gold value at any time.

 You could even exchange them informally, they are worth GOLD and this value cannot be changed.  The credits can be exchanged WITHOUT the consent of the DGC issuer.  Potentially completely anonymously.  The issuer, or any other party(eg. govt regulators) cannot shut down the currency.

 See above for how you could build an exchange using Confidence Chains easily with this technology.

 A working prototype is a few months away.

best, -bm


[1] inflationary, deflationary, or demurrage currencies are possible with Confidence Chains, and most importantly the RATE of inflation/deflation is determined by group consensus and not direct FIAT.


Title: Re: Primer for a P2P Distributed Exchange
Post by: bytemaster on May 27, 2013, 03:09:37 AM
Your system is based upon IOU's and central repositories of value.   These assets can be seized.  Operating such a bank is already outlawed and or regulations so high no one except the existing fraudulent players could start one.   The issuer could practice fractional reserves.  The issuer cannot be anonymous.

All problems solved by my system and there is a 10 BTC bounty for you to convince me that my system does not solve these problems. 


Title: Re: Primer for a P2P Distributed Exchange
Post by: bluemeanie1 on May 27, 2013, 03:25:29 AM

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


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.

The BitMessage + Open Transactions (https://bitcointalk.org/index.php?topic=212490.0) (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 (http://blog.btcshares.com/). That plus agent networks that connect to regulated exchanges (like what Coinflash (https://www.coinflash.com/) 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.

OT is not Peer To Peer.  Many of the claims of this project are incredibly misleading.  It's simply a client/server architecture that uses Crypto to confirm receipts of transactions.  It an amalgamation of Chaum e-cash, Triple Signed Receipts(http://iang.org/papers/triple_entry.html), and a few other things(such as the so called 'smart contract engine') - all loosely scotch taped together under one term.  As far as I can tell there is nothing new there.  Note that, despite the claims of the founder and primary progenitor, none of these things are in a completed stable state.  There are other platforms out there like it:  http://www.voucher-safe.org/tiki-index.php .   It does not offer you much insurance if the server gets shut down(there was some poorly founded proposal about sinking the funds into the block chain using a 'voting pool').  The owner describes the system using unclear terminology, perhaps this contributes to some of the confusion regarding this project.  I tend to think that some of the claims surrounding OT are purposely confusing.  It's not surprising that there is a company formed around this technology already.

Adding BitMessage to OT does not make it peer to peer any more than it would make your banking website peer to peer(if you communicated with it using BitMessage).


Title: Re: Primer for a P2P Distributed Exchange
Post by: bluemeanie1 on May 27, 2013, 03:32:22 AM
Your system is based upon IOU's and central repositories of value.   These assets can be seized.  Operating such a bank is already outlawed and or regulations so high no one except the existing fraudulent players could start one.   The issuer could practice fractional reserves.  The issuer cannot be anonymous.

All problems solved by my system and there is a 10 BTC bounty for you to convince me that my system does not solve these problems. 


the assets cannot be seized unless all the authorities are seized.  So if you properly distribute the authorities, you will have insurance against seizure.  IOUs are not a good way to describe the system, it's a block chain(with transactions exactly like those of Bitcoin) that is supported by explicit consensus rather than proof of work.

"The issuer could practice fractional reserves.  The issuer cannot be anonymous."

how can you have a completely anonymous issuer?  how will people redeem the assets?  anonymity is supported as far as it's worth to owners of an issued asset.  "Fractional Reserve"?  sounds like you're trying to conjure monetary boogey men here.  Care to explain your accusation?

I think that many ideas about decentralized currencies are simply impractical if not impossible.  Many talk about this idea of a decentralized currency, but they've never seen one, or can't think of how to make one, or even roughly what they look like.

Ben Laurie thinks Decentralized Currencies are Probably Impossible.  http://www.links.org/files/decentralised-currencies.pdf



Title: Re: Primer for a P2P Distributed Exchange
Post by: bytemaster on May 27, 2013, 04:05:28 AM
Your system is based upon IOU's and central repositories of value.   These assets can be seized.  Operating such a bank is already outlawed and or regulations so high no one except the existing fraudulent players could start one.   The issuer could practice fractional reserves.  The issuer cannot be anonymous.

All problems solved by my system and there is a 10 BTC bounty for you to convince me that my system does not solve these problems.  

"The issuer could practice fractional reserves.  The issuer cannot be anonymous."

how can you have a completely anonymous issuer?  how will people redeem the assets?  

First step is to eliminate the issuer all together.  Thus, everything must derive its value from a crypto-currency like bitcoin.

Second step is instead of giving an IOU in exchange for a gold coin deposit, give another asset-type who's value is guaranteed to follow the market price of a gold coin based solely on market forces that act on that asset.  For example, if you traded a gold-coin for a gold-bar of the same weight.   In this case we will trade a gold-coin for an interest-bearing bitcoin bond who's net-present-value = 1 gold bar.   The market forces that govern the issuance and redemption of bit-gold-bonds can conspire to ensure that the net-present-value of the bit-gold-bond stays near parity with 1 oz gold.

The end result is that instead of trading 1 oz gold for an IOU you traded it for an equivalent, asset.  Thus there is no one who owes anyone anything.  Therefore, two men can meet in a dark alley and make a trade with no publish issuer and no legal issues!  

The entire 'magic' of my system hinges on how the net-present-value of a bit-gold-bond can track actual gold.   I believe I have the economics all figured out for that (unless someone can convince me otherwise).   If it does track, then we are golden and have no need for IOUs.

You can redeem your bit-gold-bond for a gold coin on the open market because they have about the same value at all times.


Title: Re: Primer for a P2P Distributed Exchange
Post by: bluemeanie1 on May 27, 2013, 04:09:57 AM


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.

there is a key difference.  Bitcoin inflates, more are generated by miners.  Thus you can't PEG IT [1] to a REAL ASSET because then the miners would be generating real assets(or a promissory note for such).  You need a kind of digital coin that guarantees strict issuance qualities(and certainly quantities).

secondly there are serious issues with latency on the BTC blockchain that make an exchange infeasible.

My system allows you to generate digital assets.  It's your job to convince people that they can exchange these digital assets for REAL assets at any time.  The system offers good tools for this purpose.  One of them is DISTRIBUTED AUTHORITY, as in I can give authorization to 12 people who would never cooperate to corrupt the currency, and then advertise this fact to potential users of my digital currency.  You can set up these authorities easily, automatically, and they can even be defined complex functions, for instance based on membership in a social network.

-bm

[1] you can offer an exchange rate.


Title: Re: Primer for a P2P Distributed Exchange
Post by: bluemeanie1 on May 27, 2013, 04:13:02 AM

Second step is instead of giving an IOU in exchange for a gold coin deposit, give another asset-type who's value is guaranteed to follow the market price of a gold coin based solely on market forces that act on that asset.


and how is this guarantee constructed?


Title: Re: Primer for a P2P Distributed Exchange
Post by: bytemaster on May 27, 2013, 04:28:41 AM
How do I guarantee it... let me explain by quoting another thread:
OK, let's try it another way, maybe that will help clear up the confusion.

Do we agree you could create a crypto-USD that acts much like Ripple IOUs if we had a central party (it could still be a commercial venture, it doesn't have to be a central bank) issuing crypto-USD and redeeming it at face value (minus some small fee). To the degree the central party was considered credit-worthy and reliable, the crypto-USD would then indeed track the real USD.

The disadvantage of this is that you are now reliant on a central party and it is this you want to remedy?

Can you explain the nature and details of the differences between your proposal and what I just described?

Good questions and I think I have good answers:

1) Yes I agree that crypto-USD could be thought of like an IOU from a 'central' bank. 

The DIFFERENCE between crypto-USD and a crypto-USD-IOU is the following:

1) There is no limit to how much crypto-USD-IOU a central bank could issue... you have to trust them not to practice fractional reserves.

2) There is only one party that can actually redeem those crypto-USD-IOUs and if that party were to disappear then all crypto-USD-IOUs would be worthless.

3) The crypto-USD-IOU derives its value from a promise to pay, promises can be broken.

4) The crypto-USD-IOU could not pay interest without the practice of fractional reserves (*or*  having a fixed loan period where they are not redeemable on demand, but only after some date... in which case not all crypto-USD-IOUs would be fungible as they would all carry different effective interest rates based upon their maturity date).

5) A crypto-USD is not an IOU USD.   Instead it can be thought of as a bitcoin-bond with a variable interest rate.  Therefore, its value comes not from a promise to pay, but from the value of a bitcoin bond.   The interest rate paid on the bitcoin bond is established as the average exchange rate at which all outstanding crypto-USDs have been lent into existence.   Thus crypto-USD can be thought of as a bitcoin bond at rate X while crypto-EUR would be at rate Y and crypto-GOLD would be at rate Z.   The net-present-value of these bitcoin bonds would track USD, EUR, and GOLD based upon supply or demand of people wanting to borrow GOLD from the network (withdraw it) and people wanting to deposit gold into the network.   These people will only deposit GOLD or withdraw GOLD in exchange for a bond of comparable value and thus the willingness of people to deposit/withdraw gold will effectively set the bitbond interest rate defined by crypto-GOLD.


Title: Re: Primer for a P2P Distributed Exchange
Post by: bluemeanie1 on May 27, 2013, 04:39:30 AM
the system you just described relies on traditional financial products.  You've just made it a bit more abstract by basing the interest rate of your bonds on some ticker(who publishes the ticker?).  What about assets that don't have an easy to determine price?

my system is very simple.  It's allows you to issue and exchange assets(potentially more, auctions could be implemented for instance).


Title: Re: Primer for a P2P Distributed Exchange
Post by: BTCLuke on May 27, 2013, 05:05:59 AM
fiat --> gold --> bitcoins
bitcoins --> gold --> fiat
Any hard assets can and will eventually be seized by a government or two. It's happened many times before, even with creative schemes behind them.


While I'm still more or less convinced that a P2P exchange of BTC=>Fiat is not feasible
Then you're simply not looking hard enough.

There are ways of making a digital security worth exactly 1 dollar and backing it with some sort of value, even if that value is bitcoin. I'm working on one myself.



@btcluke

I want to start by saying I appreciate everyone who takes time to post thoughtful responses.  So I will respond to your post stating I fully believe I can satisfy all of your requirements.  So much so that I have posted another thread where I am looking to hire someone to help me and invest $20,000 or more in creating a working system based on my ideas.   But, as a sanity check I am also offering a 10 BTC bounty to anyone who can convince me that the idea will not work and save me time and money.
Hi bytemaster,

I looked and looked at your proposal and quite honestly I can't do you justice on your request, because it's so off in a different direction from the exchange I have in my head.

There are a dozen things about it that ring alarm bells in my head, but they all could be something that can't work on my foundational system while they do work on yours... So if only I had the time and mental fortitude to cram your whole system into my head I'd be very tempted to go after your bounty... Sadly I'm just not up to the task right now.

I will say that the thing that stands out to me the most is your dollars don't sound very much like dollars to me. Will they always be worth exactly $1 USD to the enduser? Will the enduser understand that they are in fact supposed to take place of USD? If not, the whole system could crumble from being too confusing for laymen to use.



We need a distributed third-party.

We need to figure out a way to distribute escrow, and to keep the escrowers honest.
You're correct. I'm pretty sure I've worked that part out already, and I'm working out the details about it now.

Like with trading itself, I think 3rd parties should always be paid for their involvement, so this brings in a 3rd income-generating opportunity with my exchange.




Can you just keep escrowers honest based on a reputation system?
Not alone. It has to be one of multiple measures taken. Look at BTCJam, they use it effectively, but they also have the centralized system of arbitration to back it up. We've got to be really creative to duplicate those other measures in a decentralized environment.


Quote from: btcluke
3. Transact trades pretty much INSTANTANEOUSLY
Is this necessary for all trades though?
Currency trades, yes. Absolutely.

Otherwise you can't build accurate charting data, and without those charts, traders and arbitragers won't want anything to do with your software.



I have a 7th criterion to add:
7. It must not be assumed that the individual users have access to less information than the network as a whole.

As mentioned, the are numerous P2P exchange threads popping up. The ones that sound the most plausible on the surface are also the most flawed: That the network as a whole can somehow authorize things that individuals can't. This violates the laws of the universe...
I am not much of a coder at all, (just html) but I personally don't think I would have violated that criterion.

However, if the coders here feel that this problem will pop up again and again without this 7th criterion on the list, then I'm all for it.

CODERS: Please Yea or Nay phillipsjk's suggetion.


I've got another one now... Let's assume other coders agree on 7, so this will be 8:

8. It must be easy enough for Laymen to understand. (The grandmother clause)

Basically, the ideal exchange should be easy enough for even your grandmother to make her first trade on. Therefore, we should not require extensive understanding of cryptography, code, cryptocurrencies, nor even economics to operate this software...

No abstract ideas required to understand the fiat safely, either! Grandma thinks she knows what $1 is, and no matter what your idea for a fiat replacement is, $1 worth of it had better STAY worth $1 over time, or the whole enterprise will leave a bad taste in her mouth... If not piss off governments even more.

Try to think of your enduser as a grandma who just learned what a bitcoin is and wants to buy one. If you can't make a software for that person, you're wasting all our time.



Title: Re: Primer for a P2P Distributed Exchange
Post by: bytemaster on May 27, 2013, 05:20:14 AM
I will say that the thing that stands out to me the most is your dollars don't sound very much like dollars to me. Will they always be worth exactly $1 USD to the enduser? Will the enduser understand that they are in fact supposed to take place of USD? If not, the whole system could crumble from being too confusing for laymen to use.

I just added a section to my draft white paper (not yet published) to address that very question.

How does everyone come to an agreement about what a particular sub-currency is supposed to track?
The same way that the market comes to an agreement about what to use as money, or any other convention that is not demanded by government.   If there are multiple competing sub-currencies all claiming to track gold, then the market will trend toward whichever one gains the strongest reputation for actually following gold.  Any variants would end up having to do currency exchanges to convert between two different sub-currencies both claiming to be 1 oz of gold and those inefficiencies would cause everyone to join the majority consensus.   Once one currency gained large enough volume on the exchange and a majority of the 'market share' then it would become the defacto-standard.  Any market participant that had an opinion that differed from the ‘consensus’ would make losses by mis-pricing the asset.  Thus no one would be able to redefine what a particular sub-currency means without changing the group consensus of all traders.

How did language develop?  Who decided what words would 'track' what ideas?  The answer is that anyone who doesn't learn and adapt to the consensus would be unable to communicate.  This is a very natural process and does not require any central authority to define standards.


 


Title: Re: Primer for a P2P Distributed Exchange
Post by: bluemeanie1 on May 27, 2013, 05:26:30 AM

 
How does everyone come to an agreement about what a particular sub-currency is supposed to track?

Ian Grigg worked out many of these problems with Ricardian Contracts.  http://iang.org/papers/ricardian_contract.html

Ricardian Contracts were also thrown into the Open Transactions mix.

-bm


Title: Re: Primer for a P2P Distributed Exchange
Post by: marcus_of_augustus on May 27, 2013, 05:27:50 AM
bluemeanie1 : you are talking a big game while dissing other projects that actually have downloadable s/ware ... where's your code?

.... or shut your big yap until you have something to show besides buzzwords maybe?


Title: Re: Primer for a P2P Distributed Exchange
Post by: bluemeanie1 on May 27, 2013, 05:31:42 AM
bluemeanie1 : you are talking a big game while dissing other projects that actually have downloadable s/ware ... where's your code?

.... or shut your big yap until you have something to show besides buzzwords maybe?

what did I say that was inaccurate?


Title: Re: Primer for a P2P Distributed Exchange
Post by: bytemaster on May 27, 2013, 05:38:31 AM

 
How does everyone come to an agreement about what a particular sub-currency is supposed to track?

Ian Grigg worked out many of these problems with Ricardian Contracts.  http://iang.org/papers/ricardian_contract.html

Ricardian Contracts were also thrown into the Open Transactions mix.

-bm

Contract = Counter Party Risk.   

As a result Ricardian Contracts do not apply because there is no counter-party in my system.


Title: Re: Primer for a P2P Distributed Exchange
Post by: marcus_of_augustus on May 27, 2013, 05:53:38 AM
bluemeanie1 : you are talking a big game while dissing other projects that actually have downloadable s/ware ... where's your code?

.... or shut your big yap until you have something to show besides buzzwords maybe?

what did I say that was inaccurate?

... it's hard to know if anything you say is accurate ... because you don't have any code to back it up ... just lovely ideas, it seems ... show us something that works?


Title: Re: Primer for a P2P Distributed Exchange
Post by: fellowtraveler on May 27, 2013, 08:13:28 AM
BlueMeanie is Joshua Zeidner, a java developer who contacted me a year or two ago regarding Open-Transactions and tried to start a company with me.

At the time he was very pro-Open-Transactions, and he was pushing very hard to come out to L.A. and work on a Java version of OT with me. He wanted to go right down to the courthouse and register a company so we could work on it together.

However, Johann and I ended up having to part ways with Josh due to his aggressive and toxic torpedoing of business relationships. (Several people can attest to this.) I regret that I ever had any dealings with Joshua Zeidner.

We are focused on building products, and won't engage further with Josh.

Anyone who has further questions can reach me at chris@monetas.net.


Title: Re: Primer for a P2P Distributed Exchange
Post by: bluemeanie1 on May 27, 2013, 03:13:31 PM
 I don't think I need to respond to each and every one of 'FellowTravelers' statements here.  Many of his statements are flat out incorrect.

 Fact is there is proof floating around as to the nature of his activities.

 I will continue to make accurate and possibly critical statements about OT, Monetas and Chris Odom mainly for the benefit of the community.  It doesn't really take much work to look into the character of the people involved with him, his company, and his project, and find out who they really are.  For example, just recently Chris claimed that the Confidence Chains concept was a Bitcoin Pyramid Scheme.  Perhaps I'm not so much 'out to get him' as he suggests, but maybe I'm one of the few people who actually DOES know what he is doing?  So if you're interested in the inside story on OT, maybe you should listen to someone who has worked with the project?  rather than the various Chris Odom sock puppets, web spam rings, etc. that he sets up?  Perhaps Chris is not progressing the Digital Currency space so much as looting it.  just a thought.
 

 Regarding Open Transactions, here are a few points that might help you in your assessment of this technology:

 1) is anyone using it for real applications?

   A:  not many people have even managed to get the thing running on their own machines.

 2) does it have any credibility at the theoretical level?

   A:  it uses concepts from well known researchers such as Ian Grigg, David Chaum, Ben Laurie, however none of these people have ever referenced the project.  In the case of Chaumian e-cash, the technology was laughably glued onto the digital vouchers part and doesn't apparently do anything.

 3) why does it appear to be much bigger?

   A:  unfortunately in today's world of software we have developers and people who have calibrated their behavior around the fact that people take interest in Open Source.  These new open source developers really have practically nothing in common with RMS, Linus and the other greats of open source.  Really they are businessmen who use Open Source as a marketing technique.  They attempt to appear to be in this class of people, when really they are in the class of people like P.T. Barnum.  For instance, RMS doesn't write books about picking up girls on the side.

 4) is it Peer-to-Peer?  Federated?

   A:  one of Chris' glaring inaccuracies is his claim that he never said OT was Peer-to-Peer.  Originally the project was labelled 'peer to peer currency'.   Later he switched this claim to 'federated' but it's not really clear as to how it's 'federated' either.  He explained recently on IRC that it's 'federated' because I can move the transaction content to another server.  Does this make web servers 'federated' as well?  The real story is it's a Digital Voucher server and there's really nothing new about it at all, other than it's an Open Source digital voucher system, which would be cool if I weren't concerned that Chris was trying to hide patents in the project.  Secondly the overall maturity of the code is greatly overstated.  For one it's in C/C++ and is difficult to compile.  He routinely announces on various marketing channels he designed(this IS one of his actual talents), that various features have been released such as 'smart contracts'- have they been tested?  proven in any way?  I heard at one point he was trying to get a Java developer involved to code it in Java but his absurd sense of self-importance forced this person to move on.  After unfortunately investing time parsing his rantings, you ultimately leave frustrated and even somewhat upset that this person is posing as a legitimate contributor to the digital currency world.  What is OT?  It's not difficult to duplicate all this functionality in Java with far less code.  No serious developers have done that yet because there is no reason to.

 Personally I am less interested in ideas like Monetas, and more interested in how we can make financial technology available to all.  It's very difficult to commercialize these ideas successfully.  Thus I don't think that any technology with the slightest commercial aspect is going to be a candidate.  This includes both OT and Ripple.  Regarding Chris, I view him as an unfortunate distraction.  The fact is this space is crawling with criminals and con-men.  It's a fact they are attracted to ideas that offer anonymous cash transactions.  I am not one of these people.

   The paper I've been posting is my latest contribution to the Digital Currency space.

  It DOES offer peer-to-peer.  It can be anonymized.  Im currently in the process of fully proving it by building a simulator application: https://github.com/BlueMeanie/ConfidenceChainsSimulation

  if you are interested in peer-to-peer currencies, this idea would interest you.  I'm more than happy to answer questions about it.  My hopes are that it can be used to build distributed exchanges, distributed asset types, etc.  I'd say that a working model is several months away at the least.

  -bm


Title: Re: Primer for a P2P Distributed Exchange
Post by: Bitinvestor on May 27, 2013, 03:58:33 PM
So what's the problem between you two? Why don't you agree to disagree and then move on? You both seem to be intelligent and if you can't work together then don't!


Title: Re: Primer for a P2P Distributed Exchange
Post by: bluemeanie1 on May 27, 2013, 04:21:37 PM
So what's the problem between you two? Why don't you agree to disagree and then move on? You both seem to be intelligent and if you can't work together then don't!

There are some unresolved debts between us, but aside from that I don't have any issues.  You might find it funny to hear that I came up with the name 'Monetas' and Chris was supposed to return the domain name to me.  I'm here to share my knowledge with people.  Part of my knowledge is about the real nature of OT, Monetas, etc..  I am probably among a handful of people who actually does know what is inside OT, and I can prove my involvement with the project.  Chris doesn't like that there is someone walking around who is 1) informed 2) credible AND 3) not invested in his project.  So maybe if you stay tuned you'll hear other funny things about Monetas and OT.  Chris is quite a character I'll grant him that.

I'm not interested in destroying anything someone has built that is positive and helpful, however I am interested in dispelling half-truths and lies that might exist in the region I operate in.  People are starting to catch on that the claims made about OT are not exactly straightforward, but they don't know the extent of it.  Just to be 100% clear, I left the project because I felt that Chris was not being straight forward with the community, not to mention I felt some of the other member were sketchy to say the least.  One of them is legally prohibited from entering the US.  I just simply didn't want to be involved.  I thought that this space was too important to turn into a cheap money-making scheme.  I don't put down people for trying to get financial support for something like this, I might be seeking my own soon.  But there is a right way to do it and a wrong way.  Chris tries to make me out to be a grumpy sulking type, but really I was the idealist in the equation.



Title: Re: Primer for a P2P Distributed Exchange
Post by: charleshoskinson on May 27, 2013, 04:27:53 PM
Gentlemen this is not the place for your grievances. The purpose of this thread is to address the notion of a p2p exchange and the technology required to make it both secure and minimize the need for trust. If you have something to contribute towards that end, then please do so. We cannot nor desire to get involved in your business affairs. 


Title: Re: Primer for a P2P Distributed Exchange
Post by: bluemeanie1 on May 27, 2013, 04:42:52 PM
Gentlemen this is not the place for your grievances. The purpose of this thread is to address the notion of a p2p exchange and the technology required to make it both secure and minimize the need for trust. If you have something to contribute towards that end, then please do so. We cannot nor desire to get involved in your business affairs.  

I can certainly respect that, but I need to be able to make accurate statements about OpenTransactions without getting personally attacked.  OT seems to come up on just about every subject, primarily because Chris is going around making unfounded claims about it.  If you review the thread, I was not the one coming out with personal attacks.  I was simply defending my name. (note: Chris has since deleted this slanderous attacks)

and btw- anyone who wants to meet me in real life can find me at the Bitcoin NYC meetups.  http://bitcoinnyc.org/

I'm always happy to chat on topics of financial crypto, alt-currencies, altchains, etc.


Title: Re: Primer for a P2P Distributed Exchange
Post by: charleshoskinson on May 27, 2013, 05:05:46 PM
Ok both of you guys PM me. I'd love to know more about Open Transactions and I've been trying to find some people in the community to do a lecture for my free crowdsourced course https://www.udemy.com/bitcoin-or-how-i-learned-to-stop-worrying-and-love-crypto/. We could use it as opportunity to correct misinformation about OT.


Title: Re: Primer for a P2P Distributed Exchange
Post by: bluemeanie1 on May 27, 2013, 05:21:19 PM
Ok both of you guys PM me. I'd love to know more about Open Transactions and I've been trying to find some people in the community to do a lecture for my free crowdsourced course https://www.udemy.com/bitcoin-or-how-i-learned-to-stop-worrying-and-love-crypto/. We could use it as opportunity to correct misinformation about OT.

I've really got nothing to hide about it.

to be completely clear:  I think the capabilities of OT are routinely overstated and misstated.  Notice that there is lots of abstruse language surrounding all it's advertised features(federated, etc.).  Whenever you encounter something like that, there should be some kind of credible source of information to clarify.  In the case of OT, there is none.  That's a sign you're dealing with Marketichture as we call it in the IT world. For instance I have a complex idea called Confidence Chains and it has specific qualities.  Anyone who is curious to know exactly how it works can easily find this paper on the web.  My claims are based in hard science and I'm currently working on making these claims abundantly clear, so much that an average user can watch Confidence Chains being formed in different power structure scenarios.  From there a prototype will be developed.  With this basic software, people will be able to implement altchains of different types, p2p digital assets, p2p exchanges, p2p auctions and lots of other fun things.[1]

We've had digital vouchers for a long time.  As far as financial crypto is concerned, there's nothing new there.  It would be cool to have a Open Source digital vouchers system.  There are many interesting applications you could implement with such a system.  As it stands I'm still not convinced that there are no proprietary hooks in OT.  I have very good(and provable) reasons to make this claim.  We, the community have no insurance against the problem.  Even if Chris were being 100% sincere(and I don't believe he is) we still dont have this insurance.  What are the investors investing in?  Last time I checked the company was formed in some offshore tax haven.

[1] I'd like to add here that the software will be Apache/BSD licensed.  OT is GPL licensed and Chris had explained to me many times that this gives him the singular advantage of being the only one who can modify the software for commercial purposes.  In other words, you 'contribute', he profits.  Fact is his understanding of these laws are patchy at best.


Title: Re: Primer for a P2P Distributed Exchange
Post by: timeofmind on May 27, 2013, 11:54:33 PM

What is all this fluff about "it isn't what he says it is" etc? I mean, software is all algorithms. If the theory is sound, then so is the software that results from that theory. We can all validate the soundness of whatever concepts we wish to discuss, purely by working out the logic of it. Do you have to convolute this conversation with people's suspicions, intentions, emotions, etc? You tell us what your ideas are, and we'll tell you whether we think they could work. Simple.


Title: Re: Primer for a P2P Distributed Exchange
Post by: bluemeanie1 on May 28, 2013, 12:29:27 AM
Gentlemen this is not the place for your grievances. The purpose of this thread is to address the notion of a p2p exchange and the technology required to make it both secure and minimize the need for trust. If you have something to contribute towards that end, then please do so. We cannot nor desire to get involved in your business affairs.  

I agree fully, and this is why I will not be responding to "bluemeanie1" beyond my single response. It's unfortunate that he felt the need to get inappropriate and defamatory on this forum in the first place. If he erases, I pledge to do the same.

Chris, are you trying to appear as if you're not attacking me personally?  I mean, have you bothered looking back on this thread?

I haven't stated anything inaccurate or distorted.  Of course Chris wants to take this thread down, he looks like an complete clown.

regarding the other comment here, someone like Chris is really exploiting the openness of the community.  Everything I've said is 100% true, if you want to believe whatever claims he is currently making, that's your problem and the risk you run communicating on the internet this way.  As I said, anyone can come meet me IRL(see above).  I don't like getting into discussions like this, but if Chris chooses to attack me, he leaves me no choice.  I haven't done anything wrong.  What Chris forgot is that I have proof of all my claims.

here's a highly relevant question: if Open Transactions is really a 'community' open source project, why is Chris so defensive if anyone is critical about it?  sounds almost as if this is some kind of property of his... doesn't it?

have a great Memorial Day.

-bm


ps. what serendipitous timing to come out with this new BitMessage + OT idea exactly when I released my paper(that Chris claim he never read).


Title: Re: Primer for a P2P Distributed Exchange
Post by: BTCLuke on May 28, 2013, 03:23:07 AM
Hopefully the Drama Llama has wandered off this thread for good, and we can get back to the original point of this thread, which is "what criteria does an ideal P2P Distributed exchange require?"

Reposting from just before the Llama attack:

Quote from: phillipsjk
I have a 7th criterion to add:
7. It must not be assumed that the individual users have access to less information than the network as a whole.

As mentioned, the are numerous P2P exchange threads popping up. The ones that sound the most plausible on the surface are also the most flawed: That the network as a whole can somehow authorize things that individuals can't. This violates the laws of the universe...
Quote from: BTCLuke
I am not much of a coder at all, (just html) but I personally don't think I would have violated that criterion.

However, if the coders here feel that this problem will pop up again and again without this 7th criterion on the list, then I'm all for it.

CODERS: Please Yea or Nay phillipsjk's suggetion.


I've got another one now... Let's assume other coders agree on 7, so this will be 8:

8. It must be easy enough for Laymen to understand. (The grandmother clause)

Basically, the ideal exchange should be easy enough for even your grandmother to make her first trade on. Therefore, we should not require extensive understanding of cryptography, code, cryptocurrencies, nor even economics to operate this software...

No abstract ideas required to understand the fiat safely, either! Grandma thinks she knows what $1 is, and no matter what your idea for a fiat replacement is, $1 worth of it had better STAY worth $1 over time, or the whole enterprise will leave a bad taste in her mouth... If not piss off governments even more.

Try to think of your enduser as a grandma who just learned what a bitcoin is and wants to buy one. If you can't make a software for that person, you're wasting all our time.

So what say you coders? Yay or Nay on #7?

What say everyone about #8?


Title: Re: Primer for a P2P Distributed Exchange
Post by: bytemaster on May 28, 2013, 05:54:30 AM
I support both 7 and 8.

In response to the grandma test, I have been talking with a lot of people aged 30 to 70 and most of them seem to get what I am talking about with my peer-to-peer bank without actually having to understand the economics completely.

Those on this forum are a bit more demanding on the 'proof side', but that is what I would expect of early adopters.   Early on asking the creator of bitcoin to 'prove' why bitcoins had value would have resulted in very difficulty discussions involving the nuances of economics.   Even now people disagree about *why* bitcoins have value, but because they have a history they have gained trust by people who don't care why.

So I would add an caveat to test #8... it must be usable by grandma after 1 or 2 years on the market and having been proven by early adopters.


Title: Re: Primer for a P2P Distributed Exchange
Post by: Mylon on May 28, 2013, 01:43:53 PM
Both 7 and 8 supported here too.

Depending on who I talk too here, it gets better or less well understood. Anybody that knows bittorrent, is automatically accepting the p2p "bank" thing. When not, having mostly difficulty with getting them to understand the p2p concept. As far as bitcoin goes, they are getting there, know I sparked a lot of peoples interest :)

As for the caveat to test #8 grandma learning time is 2 years :) (About 2 years ago had my grandma come to me, trying to explain email, how genius it was that you could send a letter instantly to any of your friends, and that they could open it and read, while you were on the phone... thats how quick it was... It made me very happy (even though I had been explaining email for years... when she actually started using it (because her friends kept asking) it was a revelation.) I'm hoping I'll see the same thing with bitcoin some day. I tried the "Do you remember the email vs post thing, this is the new email for money" but it didn't stick, but I'm not giving up hope.)

As for fiat -> BTC, I've been thinking about it a lot, and the only way I see it happening as long as the governments keep trying to disrupt it is like this.

fiat -> crypto securable intermediary, worth a fixed value of fiat -> BTC

When you develop these module/plugin based, you give everyone the freedom to add whatever they want, as long as its meets the rules of verifiability of the exchange.

Personally I see here an opportunity for gift cards that you can check online for their balance. Through escrow, this could be an instant fiat -> btc txn, gift cards are a fixed price in shops, they have a fixed value at a company. It all comes down to whether you trust the company or not, and here comes the beauty there are so many companies that give out gift-cards that are checkable nowadays.

There must be dozens of other possible implementations of this, but this should be the goal. Get a crypto -> crypto exchange up, modular based, with plugin support for stuff like this. When it works, there is a good chance regular fiat -> btc exchanges join in, with their own central-blockchain, for every fiat you deposit at them, you get one coin back, to trade on crypto p2p exchanges. (This makes the game for them easier, no real exchange to build (so no Goxx lagg), and they can ofc create beautiful web pages for easy trading. And there people who trust the exchanges, can put their money.)

This is as simple I can think of, and as true to all 8 as possible. (ask your grandma how much the $50 dollar Walmart gift card is worth)
My only concern / problem is, in some way your still trading in IOU's, but in my opinion this is unavoidable when trading fiat, as the Dollar, Euro, Pound, Yen or whatever, is technically also an IOU you got from your government.

Or am I totally wrong here and should I completely change my view because this could never work? (my focus is particular towards the modular / plugin design, to you give people the change to add more to it. (and thus technically also have incentive to build a different one, just help upgrade the current one) where looking 5 years down the road, you have hunderds of different crypto currencies, and / or crypto shares being traded. Eventually even pulling over the existing stock market, as we have an open source scalable design, where any company with a reputation can join as long as they follow a certain set of rules.)


Title: Re: Primer for a P2P Distributed Exchange
Post by: bluemeanie1 on May 28, 2013, 06:17:40 PM
Mylon,

  practically everything you mention could be supported with Confidence Chains.  The core problem is how to reliably and objectively manage transaction ORDER(ie. chronology) over a P2P network with unstable latency and connectivity.  Not exactly an easy problem to solve.  Confidence Chains solves it by allowing N identities negotiate the order of transactions as they appear in the chain.  Thus different nodes may receive a transactions at different times, but they all must agree as to what order they appear in the transaction record.  Order is extremely important for exchanges.  If someone has some kind of fiat power over the order of transactions, they can manipulate the market and determine winners and losers.

  thus it works like this:

  we have tx1 - tx10, they arrive at each node N at different times, but it is possible to determine the intended chronology to an extent.

  how does the exchange decide the chronological order?  Confidence Chains has an algorithm that allows these nodes to negotiate this order.  Many configurations are possible.

  This makes it possible not only to build a p2p exchange, but a p2p auction, and many other financial instruments, in addition to the basic feature which is asset issuance and transactions.

  "5 years down the road, you have hunderds of different crypto currencies, and / or crypto shares being traded."  the NYSE has close to 2,000,000,000 trades PER DAY.  There will be far more than a few hundred currencies/shares/asset types.

 -bm


Title: Re: Primer for a P2P Distributed Exchange
Post by: BTCLuke on May 28, 2013, 07:46:24 PM
Both 7 and 8 supported here too.
Alright, that makes about 5 people that supported both the 7th & 8th criterions. (I got some by PM.)

I'm going to throw them both on the official list, with the caveat that grandma's generally don't learn anything in a reasonable amount of time. ;)


Personally I see here an opportunity for gift cards that you can check online for their balance. Through escrow, this could be an instant fiat -> btc txn, gift cards are a fixed price in shops, they have a fixed value at a company. It all comes down to whether you trust the company or not, and here comes the beauty there are so many companies that give out gift-cards that are checkable nowadays.
I thought about gift cards, but the very concept of them has two inherent flaws for their use as money:

1. When you pay $10 for one, it is instantly worth less than $10 is, because you can't use that money elsewhere other than one store. Therefore, this is not fungible at all since most people won't want that value only at applebee's, for instance.

2. They are generally physical. (There are exceptions, but they aren't the norm.) Who's going to store them? Wouldn't that be viewed as a bank and be seize-able by governments?

Sadly I find no way around inventing a wholly new crypto-security to act as Fiat on all P2P Exchanges. Nothing that exists now is going to work, the governments of the world have already squashed those that would.

Case in point (http://www.coindesk.com/liberty-reserves-lessons-dont-take-liberties).


Title: Re: Primer for a P2P Distributed Exchange
Post by: Mylon on May 28, 2013, 10:31:10 PM
Bluemeanie, you got me convinced, I'll make time and dig into your confidence chains and wrap my head around it. I'll be posting my opinion on it in your topic ;)


Personally I see here an opportunity for gift cards that you can check online for their balance. Through escrow, this could be an instant fiat -> btc txn, gift cards are a fixed price in shops, they have a fixed value at a company. It all comes down to whether you trust the company or not, and here comes the beauty there are so many companies that give out gift-cards that are checkable nowadays.
I thought about gift cards, but the very concept of them has two inherent flaws for their use as money:

1. When you pay $10 for one, it is instantly worth less than $10 is, because you can't use that money elsewhere other than one store. Therefore, this is not fungible at all since most people won't want that value only at applebee's, for instance.
True, however on a exchange it would just find its own price, I totally agree its not perfect. (you would see a big percentage cut) But as you are saying there is nothing perfect in getting fiat to btc instantly.

I've having trouble wording this, but what I'm trying to say, is that people who really get bitcoin at the moment, know that there are very few alternatives, and getting the ability to technically trade usd to btc instantly, I believe a lot of people would be willing to take the extra route. (its easier than meeting someone face to face, especially in most places, current exchanges lack liquidity, imo at the fear of getting bank accounts closed) Also keep in mind that this solution is only as temporarily as it needs to be. (hopefully sooner or later the governments will realize they are on the wrong path, and stop what they are doing)

Last but not least, this is going to be a favorite method of panic selling. Exchange down, bitcoin price dropping, you wanna sell, what do you do, you dump it in gift cards. (will retain their value at the store, and never tried it, but if you return a product bought with a gift card, do they give you cash back? :P ) It feels like with these you would always be able to convert btc to fiat and back, though at a hefty fee at times. (panic selling isn't gonna be cheap :P )

BitPay and Gyft launched a partnership, so clearly they see a business in it, don't see why it wouldn't work on a open exchange.

2. They are generally physical. (There are exceptions, but they aren't the norm.) Who's going to store them? Wouldn't that be viewed as a bank and be seize-able by governments?
Well.. every gift card is issued by its company, until companies start banning giftcards, I think we should be pretty safe. Difference in regions... here every single card, is just a "charge card" for your digital account. (or as they claim it, the card is the account, and you refill your card. (which is card number + pin to pay, card number to verify balance) We only have one left that is entirely physical, and thats sorta the national gift card.

Do some research on gift cards (especially ones that you can balance online) if you can find 5 different ones, you can buy within 15 minutes drive from your home, the availability is there, all that each individual user has to decide, is the fee worth it for them. (free market) You can still choose to go do a central exchange, they also take a fee, and their bank account can be seized... (if they globally ban gift cards, (or digitally checkable gift cards) I'll give up this idea, but until then, I feel there is a market for it, especially now since we have no decent way of instantly transferring USD into BTC.

Sadly I find no way around inventing a wholly new crypto-security to act as Fiat on all P2P Exchanges. Nothing that exists now is going to work, the governments of the world have already squashed those that would.

Case in point (http://www.coindesk.com/liberty-reserves-lessons-dont-take-liberties).
Agreed, thats why when building a peer to peer exchange, we should seek as many possibilities as possible. And to be honest you and me can brainstorm for a year straight on possible implementations of adding additional funding plugins to the exchange. And within a month after it goes online, somebody will code a plugin to use something as funding we haven't thought of.

So yea to start of I would really like to help seeing what I can do getting a modular designed p2p exchange up for crypto currencies, with the possibility of easy addable plugins, as long as its math is solid. (the core would have to verify the plugin is solid, to prevent people from getting scammed)


Title: Re: Primer for a P2P Distributed Exchange
Post by: bluemeanie1 on May 28, 2013, 10:58:26 PM
if you have any questions just let me know.

I am working on an upcoming paper that discusses how chains get formed under a variety of authoritative scenarios.

ex.

FIAT

ONE authority to rule them all. In this scenario one single authority manages the chain and can put anything it wants in there in any order, or it may omit anything. This structure is easy to manage and set up, not so easy to convince people to use.

TRIUMVIRATE

THREE authorities of equal power. Any 2 can override the third. This structure offers you the most stability vs. complexity tradeoff. Offers a sense of non-bias to users if the 3 authorities are disparate enough.

TRUSTEE

MORE THAN THREE authorities of equal power. Similar to TRIUMVIRATE but more nodes. Attention should be given to power geometry eg. odd number is favorable as it prevents stalemates.

KING AND COURT

ONE authority has MOST of the power, but the 'court' can override if unanimous. Operates somewhere in between FIAT and TRUSTEE.



of course more complex scenarios are possible, such as authority power deriving from membership in a social network.  Authority does NOT stem from Proof of Work, there is NO mining.


Title: Re: Primer for a P2P Distributed Exchange
Post by: charleshoskinson on May 28, 2013, 11:24:33 PM
Blue could you reply to my PM?


Title: Re: Primer for a P2P Distributed Exchange
Post by: BTCLuke on May 29, 2013, 03:03:18 AM
1. When you pay $10 for one, it is instantly worth less than $10 is, because you can't use that money elsewhere other than one store. Therefore, this is not fungible at all since most people won't want that value only at applebee's, for instance.
True, however on a exchange it would just find its own price, I totally agree its not perfect. (you would see a big percentage cut) But as you are saying there is nothing perfect in getting fiat to btc instantly.
I don't want to sound like a broken record here, but that price it would find is simply not going to be even close to the face value, would not be predictable, and it would vary so much that it's price would make bitcoin's look like the flattest chart ever... So gift cards just aren't going to fit the bill, if for no other reason than the price will never be "settled" for them.

What we really need here is a medium of exchange where all units therein are worth almost exactly $1 or 1 Yen or 1 Euro... To approximate those currencies on an exchange fluidly.


I've having trouble wording this, but what I'm trying to say, is that people who really get bitcoin at the moment, know that there are very few alternatives, and getting the ability to technically trade usd to btc instantly, I believe a lot of people would be willing to take the extra route.
Absolutely, and I agree that baby steps could be taken from "Its now possible for the techies to trade USD for BTC" to "Its now EASY for ANYONE to trade USD to BTC." -I'd be very happy to see a system that starts out as the former as long as it leaves itself the room to evolve into the latter.


Also keep in mind that this solution is only as temporarily as it needs to be. (hopefully sooner or later the governments will realize they are on the wrong path, and stop what they are doing)
History repeatedly shows us with bolded font to never, ever trust that this could happen.

It never has before.

Each and every time a large government of any type, be it democracy or commune or republic or whatever, falls, it exhibits the exact traits we are seeing today in the USA and Euro... On the way down the drain to complete collapse with hyperinflation and sometimes mass democide.

Governments have always, and always will, rely on their monopoly of force in times of distress. It's their one tool... And guess what? They're becoming distressed.

We just never had a distributed store of wealth before... Bitcoin really changes the game, and luckily for us, they don't seem to realize that fact yet.


BitPay and Gyft launched a partnership, so clearly they see a business in it, don't see why it wouldn't work on a open exchange.
I used gyft myself and had some Burger King via bitcoin. It was awesome tech indeed...

However I'm stuck with something like $0.28 on my BK card and there's certainly no way to get that off the card now... So I'm basically held hostage to either give BK more money that I don't plan to use, or simply Give BK that 28 cents as a gift... Which is likely to happen. (I'm no fan of junk food.)

I hope I see craploads of Bitcoiners realizes that they can now eat and shop with their bitcoins and ignore the fed into oblivion using gyft, but honestly I'd never, ever transfer BTC onto any gift card myself if I wasn't in their store already, using my smartphone, knowing I'm going to purchase with it within a minute or so...

And for that need, we already have gyft.


2. They are generally physical. (There are exceptions, but they aren't the norm.) Who's going to store them? Wouldn't that be viewed as a bank and be seize-able by governments?
Well.. every gift card is issued by its company, until companies start banning giftcards, I think we should be pretty safe.
I don't mean the banning of gift cards themselves... That's pretty impossible nowadays.

I'm talking about the hypothetical central office or company in which other people's gift cards were stored... A 3rd party business acting like a safety vault or bank for everyone's gift cards... Clearly this is something uncle sam would shut down in a heartbeat right now.




Title: Re: Primer for a P2P Distributed Exchange
Post by: bluemeanie1 on May 29, 2013, 04:28:19 AM
Quote
Each and every time a large government of any type, be it democracy or commune or republic or whatever, falls, it exhibits the exact traits we are seeing today in the USA and Euro... On the way down the drain to complete collapse with hyperinflation and sometimes mass democide.

Governments have always, and always will, rely on their monopoly of force in times of distress. It's their one tool... And guess what? They're becoming distressed.

One advantage to the Confidence Chains model is that you can place authorities in a number of jurisdictions.

For example, one authority goes in China, another one goes in Switzerland, another in Panama, US, UK, Germany, Russia, Brazil and even some autonomous zones eg. Transnistria. Given that there exist authority nodes in each of these places, no one government can shut down the currency.  The authorities in ALL these countries must cooperate to shut down the currency.  ALL the nodes must be seized in order to shut down the currency [3].  This is unlikely and probably impossible[2], and some authorities could be practically untraceable- ie running behind Tor from a dialup in Kamkatchka[1].  If one authority node were shut down or seized in some way(and these authorities could be run from a cell phone), transactions continue unabated.  You could potentially designate thousands of authorities.  You could create a complex system to derive authority.  There are far more techniques to evade seizure than there are laws to justify such a seizure.

thus, Confidence Chains offers a new level of political resilience.

-bm


[1] even very radical ways to connect could be innovated eg. embedding the transactions in images via steganography, and transacting through an image post board.

[2] until we have a "one world government".

[3] and note that in this case the people who seized the currency do not have the ability to steal assets, only prohibit transactions.


Title: Re: Primer for a P2P Distributed Exchange
Post by: marcus_of_augustus on May 29, 2013, 05:56:50 AM
... talking of broken records ...


Title: Re: Primer for a P2P Distributed Exchange
Post by: timeofmind on May 29, 2013, 02:36:47 PM
The value of a decentralized exchange is only realized when those entities offering "cash-out" start to honor it as a trusted source for prices. Once entities allow for the crypto units in the exchange to be changed for real units, based on the trust that these crypt-units in the exchange network will always be exchangable for spendable units at the prices tracked in the decentralized exchange, a decentralized exchange can become a reality. The first stage of launching a decentralized exchange, is to bootstrap it with a centralized exchange that allows cash-out in colored units on the decentralized exchange. Once the decentralized exchange is being used as a "price-finding" mechanism by all entities that allow cash-out (the same way Mt. Gox is used now by people on LocalBitcoins), the decentralized exchange gains legitimacy and the prices tracked on that exchange gain real-world values.

In the parent post of this thread, it was decided that colored-coins are not an option, because they would have to be backed by a "central" authority who could be trusted as a source to redeem the backed currency, but this is not necessarily the case. Under the following model, the colored coins could be redeemed anywhere that places trust in the following:

  1. the value of the underlying currency (such as bitcoin, if that were used)
  2. the prices determined for the colored coins by the decentralized exchange.

As I explained above, once enough places rely on the decentralized exchange as a price finding mechanism for cash-out, the above 2 conditions are fulfilled, because the very fact that you can cash-out a colored coin for its equivalent in real-coins forces the colored coins to maintain parity with the real thing.

Now, the problem faced with coloring bitcoins is that they must be colored by an authority... but who is an authority for USD? Certainly, the government is not going start backing a colored version of the US dollar...

So I propose the following system (alt-coin) to opperate as a decentralized exchange and to allow anyone to "color" the base currency:

(Note: This could potentially be built on top of BitCoin, but is unlikely to ever happen)

This is an extension to my previous idea of "BaseCoin" ( https://bitcointalk.org/index.php?topic=208009.0 ), but with a retraction of the idea to "track the blockchains of alternate crypto-currencies", and an introduction of colored coins for the purpose of exchange instead, but with the ability for these colored coins to be minted by anyone on the network, and to be redeemable (ie. destroyed and replaced with underlying currency at current market rate). Also, it extends the initial idea with the ability to transact directly (send colored coin from one address to another) in addition to being able to transact by submitting offers, which implicitly cause currency to be exchanged between addresses.

Here is the extension to the proposal:

Changes to basecoin concept:

* Network no longer attempts to track blockchain of alternate coins.
* Colored coins can be created from basecoins, but this is not done by assigning color to an existing coin. Instead:
  1. A request to mint some currency is made by submitting a special
  transaction that destroys the basecoins and releases colored coins at
  "market-rate" in the currency of choice (ie.  they go to the bid that is
  closest to the previous successful trade price for that color of coin). If
  there are no bids currently on the network, then they go to the first bid.
  2. The amount of colored coins released is determined by the bid (ie. 2
  basecoin/US dollar)
  3. The basecoins used to buy the colored coins are sent back to the address
  that the basecoins were sent from to be minted. Note: no new money was
  created. The original minter gets the exact amount of basecoins back that he
  used to mint with from the buyer of the colored coins.
  4. At any point, any colored coins on the network can be converted back to
  basecoin. If the market value for those coins has gone up, more basecoins are
  in fact created by that transaction than it originally took to mint the
  colored coins. If the value of colored coin relative to basecoin has gone
  down, then fewer basecoins are introduced back into the network. So quantity of basecoin in circulation can potentially fluctuate.
  5. This process allows the participants in the network to control the amount of each currency available for trade.

* Colored basecoins can be explictly sent from address to address without submiting an offer to the network.

Notes:

* Basecoins can not be purchased directly (they cannot be sent from one address to another they can only be used to submit offers) in order to enforce use of the exchange as a method of price-finding, otherwise, people would exchange cash for basecoin and the network would be incapable of tracking the price that those basecoins were sold for.

* Basecoin is a mined currency. I would not place a limit on the amount of
basecoins that can be mined; I think mining difficulty does a perfect job of
limiting inflation of basecoin value.

* In order to obtain basecoins, one must first purchase colored basecoins in currency of choice, and then trade for basecoins on the basecoin network by submitting an offer. (Or mine them of course)

* In order to exchange one currency for another: carred-currecy -> colored basecoin -> basecoin -> colored basecoin -> cash-out.

* This decentralized network only works as long as there are many places that are willing to use it for price discovery and to accept colored coin in exchange for the represented currency. If a coin is colored "USD", it only maintains the value of real USD due to many places willing to allow cash out. These places would then sell those colored USD to others who wish to make use of the network.

* Transaction fees can be applied to trades between basecoin and colored coin, just as they are applied to sending coins from one address to another in order to encourage miners to include these trades in the blockchain.


Title: Re: Primer for a P2P Distributed Exchange
Post by: timeofmind on May 29, 2013, 02:54:13 PM

To bootstrap such a decentralized exchange, I would start by providing a centralized exchange that utilizes the underlying decentralized exchange to track all prices (ie. any transactions on the centralized exchange are mirrored with transactions on the decentralized exchange). All funds on the centralized exchange would be held in both colored "basecoin", and in the real currency, so that at anytime, a person could cash out for real coin at that centralized exchange. When a person "cashes-out", the centralized exchange gets to keep the colored coin is then owned by the exchange, and the real coin is given back to the user. Theoretically, since all coins on the exchange are backed by the value of basecoin, the only real risk that this bootstrap-exchange faces is in the loss of value of basecoin; which could only happen of everyone using it suddenly lost faith in it as a medium of exchange. (Also, the mining of the coin, ie. the scarcity of it, helps it to maintain its value.)


Title: Re: Primer for a P2P Distributed Exchange
Post by: bluemeanie1 on May 29, 2013, 03:24:28 PM
Colored Coins are a sound idea as far as the official claims made about them.  I don't think that they are going to meet the capacity demands of a real distributed exchange.

the statistic I mentioned before :  NYSE has roughly 2,000,000,000 trades PER DAY.

the Bitcoin network currently has roughly 55,000 trades per day, and capacity and latency are already problems.

Confidence Chains are highly scalable.  Transactions can happen instantaneously.

To run a p2p exchange you need to interact in the real world at some point.  The digital currencies have a relationship to the real world currencies, themselves which ideally have a relationship to real world value(initially the USD had a strict relationship with Gold value).  So I don't think we're going to get around that.  The idea that bytemaster had for pegging the interest rates of bonds to a some kind of price publishing service assumes a lot about the availability, validity, and veracity of this information service.  If such an idea were to be widespread, I could for instance buy all the gold, and then manipulate this ticker in some way, profit from it, and then sell off the gold when the price signals return to reality.  But most importantly, using Confidence Chains, you could have an informal kind of real world money changing- something like Satoshi Square in NYC.  People would be willing to exchange Digital Gold for real gold if they were fully convinced it were worth real gold.  They can even tack on a transaction fee if they feel it's necessary.  No one in this equation need be incorporated or act as a money transfer service, or even own a bank account[1].

Mining introduces specific characteristics to the currency, it inflates the supply.  This often is overlooked by the Bitcoin community because it has yet to seriously effect the price of BTC, but certainly it will in the future.  Color Coins have an interesting and complex relationship to mining.  The base BTC, which relies on mining, is a kind of carrier to Color Coins, and recently it's been determined that to move Color Coins will require the expenditure of BTC(for each transaction, not just the Genesis Transaction).  Latency is also going to be very prohibitive as I describe above.  You can review my points on these subjects on the BitcoinX Google Group: https://groups.google.com/forum/?fromgroups=#!forum/bitcoinx , the project currently looks something like Ripple with a 'carrier' currency used to purchase resources from the transaction processors.

Now consider for a moment that we had a p2p exchange using the main block chain.  Miners are ultimately the ones who decide what transactions go where.  This system works because there is no incentive to prioritize transactions, but if these transactions carry OTHER values(eg. Colored Coins), then miners will compete to put transactions in specific orders- which, make an full-fledged exchange effectively impossible using standard Bitcoin technology, because there is no way to arrive at some kind of valid consensus on the chronological order of transactions.  It was these findings that lead to my development of the Confidence Chains concept.

[1] you can actually run a bank using Confidence Chains.  You could start a small savings club with your friends, take their USD deposits, offer interest rates, and loan out the money to your friends.  Many instruments are possible.  1) https://en.bitcoin.it/wiki/Contracts  2) https://en.bitcoin.it/wiki/Smart_Property


Title: Re: Primer for a P2P Distributed Exchange
Post by: timeofmind on May 29, 2013, 04:03:55 PM


the Bitcoin network currently has roughly 55,000 trades per day, and capacity and latency are already problems.


If you can back this statement, please correct this information on the following Wiki:

https://en.bitcoin.it/wiki/Scalability

Which states:

CPU:
Quote
Assuming no upgrades to lightweight/SPV clients, so just batch verification, we can reach 40,000 transactions per second which is far beyond the traffic levels of the entire credit card system.

Network:
Quote
Let's assume an average rate of 2000tps, so just VISA. Transactions vary in size from about 0.2 kilobytes to over 1 kilobyte, but it's averaging half a kilobyte today.

That means that you need to keep up with around 8 megabits/second of transaction data (2000tps * 512 bytes) / 1024 bytes in a kilobyte / 1024 kilobytes in a megabyte = 0.97 megabytes per second * 8 = 7.8 megabits/second.

This sort of bandwidth is already common for even residential connections today,

Ultimately, I think a perfectly acceptable decentralized model for exchanges would be to have many online services all utilizing the same exchange network, so it would not necessarily require every individual to run their own client.

Of course, as is often repeated, computers and networks are quickly improving.


Title: Re: Primer for a P2P Distributed Exchange
Post by: timeofmind on May 29, 2013, 04:13:23 PM
That said, I will definitely investigate your "Confidence Chains". Always interested in learning about possible improvements to the current way of doing things.


Title: Re: Primer for a P2P Distributed Exchange
Post by: bluemeanie1 on May 29, 2013, 04:25:27 PM

 http://blockchain.info/charts/n-transactions

  this shows TXs per day on the BTC chain.

 It may be possible to upgrade the p2p network to scale upwards according to the Bitcoin Wiki.  We don't know precisely how things will play out at this point.  Seems the core devs are open to a number of ideas.  Confidence Chains was recently released, so they may not be aware of this option.  I know some of the core devs were critical of Colored Coins, see https://github.com/bitcoin/bitcoin/pull/2577 .
 
 The subject is fairly controversial at this point.

 Keep in mind also that on the NYSE there is a significant barrier to entry for new 'asset types' (ie Stocks).  On Colored Coins, there are none.  So lets just say roughly EACH coin color will produce on average T transactions.  This means that colored coins will produce C*T transactions where C = number of colors.  The number of colors could be in the thousands, even millions.  Perhaps there is even a compound relationship between C and T.  There is an initial 'sacrificial' cost in BTC to starting a Color Coin, but it does not really act as a regulator in this case.

 -bm


Title: Re: Primer for a P2P Distributed Exchange
Post by: bluemeanie1 on May 29, 2013, 04:34:06 PM
That said, I will definitely investigate your "Confidence Chains". Always interested in learning about possible improvements to the current way of doing things.

btw- anyone is free to implement Confidence Chains.

just for the sake of cooperation, I do plan to develop a framework in Java for people who want to use Confidence Chains for financial apps.

If you are a developer and see the value in confidence chains, we can work together.  It will be BSD/Apache licensed as this allows others to commercialize the software.  I believe in crediting people, so if you want to get involved, first we decide on a title, and then hopefully you live up to this entitled position.

Im especially interested in talking to a good 'big data' person who knows a lot about storing and processing Tree Data structures on disk efficiently.  Also people from the Bitcoin world are very welcome, many of the ideas from Bitcoin are applicable here.

-bm


Title: Re: Primer for a P2P Distributed Exchange
Post by: bluemeanie1 on May 30, 2013, 02:50:10 PM
http://online.wsj.com/article/SB10001424127887323855804578511121238052256.html?mod=WSJ_hp_LEFTWhatsNewsCollection#

"Officials brought charges against a group of men who allegedly manufactured an Internet-based currency"

it's now illegal to 'manufacture' an internet-based currency?   :o


Title: Re: Primer for a P2P Distributed Exchange
Post by: eMansipater on May 30, 2013, 04:13:19 PM
http://online.wsj.com/article/SB10001424127887323855804578511121238052256.html?mod=WSJ_hp_LEFTWhatsNewsCollection#

"Officials brought charges against a group of men who allegedly manufactured an Internet-based currency"

"...to move money earned from credit-card fraud, online Ponzi schemes, child pornography and other crimes."

And at the press conference it was explicitly stated that there is no ill will toward virtual currencies, only towards certain things they may be used for, which is fantastic news.  I have a lot of trouble understanding the prevailing "need to be persecuted" amongst so many bitcoiners.  What's the end game in it?  Self-fulfilling prophecy?  Nothing in the Liberty Reserve case is bad for Bitcoin.


Title: Re: Primer for a P2P Distributed Exchange
Post by: bluemeanie1 on May 30, 2013, 04:59:50 PM
http://www.american-buddha.com/orlin.vince.5.htm

"This is a story about the uses of propaganda, whereby appeals to "terrorism," "money-laundering," "child pornography," and other handy bugaboos are cited by the Overlords of the Surveillance State as an excuse to send jack-booted thugs to "protect us," to monitor our every action to make sure we toe the current political line, and to create vast financial data bases to ensure we get taxed to pay for all of the above. "

this isn't a new trend.

http://orlingrabbe.com/money1.htm

"These elements all want to know where your money comes from, and when and how you spend it. After all, you might be a terrorist, drug dealer, or spy. And if you try to hide your transactions, you are by definition a money launderer and perhaps a child pornographer." (written in 1995)

who can actually take the WSJ seriously at this point?


"And at the press conference it was explicitly stated that there is no ill will toward virtual currencies, only towards certain things they may be used for, which is fantastic news."

oh yes... they just want to protect us from ourselves, right?

https://www.youtube.com/watch?v=AynGBMUgdmg


Title: Re: Primer for a P2P Distributed Exchange
Post by: justusranvier on May 31, 2013, 02:57:32 AM
The only challenge involved with creating a distributed exchange is fiat handling. There are two strategies which might accomplish this:

1) Large gateway businesses which can afford to be fully compliant with all applicable laws and regulations.
2) A "too numerous to regulate" swarm of individuals willing to operate low volume exchanges which can in aggregate move a significant amount of money.

Anybody who is talking about subjects other than how to move fiat isn't actually interested in building a P2P exchange for real, it's all just a conceptual exercise that will never get anywhere in the real world.

Anybody who is serious about a distributed P2P exchange should focus all their efforts on achieving 2), because the rest of the problem is trivial. The first step here is answering the question, "How long will it take to get to 10000, then 100000, participants?"


Title: Re: Primer for a P2P Distributed Exchange
Post by: FreddyFender on May 31, 2013, 03:42:39 AM
The only challenge involved with creating a distributed exchange is fiat handling. There are two strategies which might accomplish this:

1) Large gateway businesses which can afford to be fully compliant with all applicable laws and regulations.
2) A "too numerous to regulate" swarm of individuals willing to operate low volume exchanges which can in aggregate move a significant amount of money.

Anybody who is talking about subjects other than how to move fiat isn't actually interested in building a P2P exchange for real, it's all just a conceptual exercise that will never get anywhere in the real world.

Anybody who is serious about a distributed P2P exchange should focus all their efforts on achieving 2), because the rest of the problem is trivial. The first step here is answering the question, "How long will it take to get to 10000, then 100000, participants?"

I agree with JR and would like to focus on 2 items that he has determined:
What has yet to happen is the realization that financial goals(p2pExCh) can and often do have their origin in other matters. My worldview remains static in regards to financial matters(fiat) because I want it that way. I may wish for something other than what is currently available, but reject it straight away because the likelihood of success from another actor(*exchange) is weak at best.
If we approach the matter from a non-financial realm such as civic duty or community involvement, or NGO/*club/consortium then we begin to see a new angle and stop smashing into the same wall. What ties people together? What tears them apart? Acting as a group would allow large amounts of small interactions of fiat/btc.
10000: is a good start, 100000: is a good second gear. 1000000: nearing full speed?
Adoption of something other than financial freedom(non-fiat) must precede a P2P exchange. Something everyone values; like an opinion or sports team(etc). Teach people to move in concert to avoid damage from financial catastrophes and fleecing by the wolf pack.
Give them a recognizable Wot. Not a BS one or a techies-only one. Grandma ain't going to the parade if it is full of radicals and miscreants. What I see is a SW engineering superiority complex of bicus dicus. Try cooperation, not competition as a resolution.
Armies came into being because the nation state demanded it. Bitcoin may be the demand of new memespace that we are bordering but cannot comprehend. Yet.


Title: Re: Primer for a P2P Distributed Exchange
Post by: nwbitcoin on May 31, 2013, 08:52:01 AM
OK, I've spent some time thinking and it would seem to me that the only way to get this working at a scale that would make sense, is to piggy back the fiat converting onto an infrastructure that already exists.

The problem with trying to convert a bank transfer to an exchange is that it involves using the banks, and I would really prefer we didn't, because it keeps bitcoin outside the establishment.  You also find that banks have a habit of closing accounts, and if the door closes, then the exchange fails to get fed! ;)

If we are looking to convert cash into something we can use to trade for bitcoins, what about using something that is already easy to transfer, such as telecom credits?  I am not suggesting that we do this, just that we look at other commodities that are already easy to convert into a digital form, which can then be traded.

On the scaling side, I am thinking that if anyone in my local area needs to buy a commodity, they take their plastic card with the account details on it to the local shop.  Here they use a POS device to add credits to their account, and that is the end of the trade. What if we were able to do that instead of setting up a network of little money changers all over the world?

This is the point where my brain freezes because I can't think of another example, but I hope others can! :)


Title: Re: Primer for a P2P Distributed Exchange
Post by: k99 on February 13, 2014, 10:49:12 PM
I would like to announce a concept for a P2P Fiat-Bitcoin Exchange.
See here:
https://bitcointalk.org/index.php?topic=462236.0


Title: Re: Primer for a P2P Distributed Exchange
Post by: From Above on June 19, 2014, 09:16:43 PM
BlueMeanie is Joshua Zeidner, a java developer who contacted me a year or two ago regarding Open-Transactions and tried to start a company with me.

At the time he was very pro-Open-Transactions, and he was pushing very hard to come out to L.A. and work on a Java version of OT with me. He wanted to go right down to the courthouse and register a company so we could work on it together.

However, Johann and I ended up having to part ways with Josh due to his aggressive and toxic torpedoing of business relationships. (Several people can attest to this.) I regret that I ever had any dealings with Joshua Zeidner.

We are focused on building products, and won't engage further with Josh.

Anyone who has further questions can reach me at chris@monetas.net.


new experiences with the guy: https://bitcointalk.org/index.php?topic=656116.msg7369092#msg7369092

~CfA~


Title: Re: Primer for a P2P Distributed Exchange
Post by: BTCLuke on June 20, 2014, 03:45:36 AM
OMG this thread lives!

All the cool people are over at: http://openbazaar.org

Can't wait!

http://www.youtube.com/watch?v=w4vtUPJEmqg


Title: Re: Primer for a P2P Distributed Exchange
Post by: phillipsjk on June 21, 2014, 07:33:41 PM
eh, I still don't think it will work. Maybe somebody will prove me wrong.


Title: Re: Primer for a P2P Distributed Exchange
Post by: illymoka on June 23, 2014, 11:26:09 AM
I like the idea, but the tricky bit is where you have to interface Bitcoin and < insert sovereign currency >. That's the problem. Price discovery and broadcast isn't quite as difficult as the "back end" settlement part.


Title: Re: Primer for a P2P Distributed Exchange
Post by: Lohoris on June 23, 2014, 12:14:56 PM
I like the idea, but the tricky bit is where you have to interface Bitcoin and < insert sovereign currency >. That's the problem. Price discovery and broadcast isn't quite as difficult as the "back end" settlement part.
This!

"Let's pretend the biggest blocking and game-breaking problem isn't there, and go on with everything else", isn't exactly a sound plan.