Bitcoin Forum
May 05, 2024, 06:27:52 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 4 5 6 7 8 9  All
  Print  
Author Topic: Primer for a P2P Distributed Exchange  (Read 17630 times)
BTCLuke (OP)
Hero Member
*****
Offline Offline

Activity: 526
Merit: 508


My other Avatar is also Scrooge McDuck


View Profile
May 22, 2013, 08:55:07 AM
 #1

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!  Wink

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!

Luke Parker
Bank Abolitionist
1714890472
Hero Member
*
Offline Offline

Posts: 1714890472

View Profile Personal Message (Offline)

Ignore
1714890472
Reply with quote  #2

1714890472
Report to moderator
1714890472
Hero Member
*
Offline Offline

Posts: 1714890472

View Profile Personal Message (Offline)

Ignore
1714890472
Reply with quote  #2

1714890472
Report to moderator
1714890472
Hero Member
*
Offline Offline

Posts: 1714890472

View Profile Personal Message (Offline)

Ignore
1714890472
Reply with quote  #2

1714890472
Report to moderator
Make sure you back up your wallet regularly! Unlike a bank account, nobody can help you if you lose access to your BTC.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714890472
Hero Member
*
Offline Offline

Posts: 1714890472

View Profile Personal Message (Offline)

Ignore
1714890472
Reply with quote  #2

1714890472
Report to moderator
notme
Legendary
*
Offline Offline

Activity: 1904
Merit: 1002


View Profile
May 22, 2013, 09:03:54 AM
 #2

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

https://www.bitcoin.org/bitcoin.pdf
While no idea is perfect, some ideas are useful.
lexxus
Sr. Member
****
Offline Offline

Activity: 309
Merit: 250


View Profile
May 22, 2013, 09:07:35 AM
 #3

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.
BTCLuke (OP)
Hero Member
*****
Offline Offline

Activity: 526
Merit: 508


My other Avatar is also Scrooge McDuck


View Profile
May 22, 2013, 09:19:46 AM
 #4

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.

Luke Parker
Bank Abolitionist
notme
Legendary
*
Offline Offline

Activity: 1904
Merit: 1002


View Profile
May 22, 2013, 09:21:26 AM
 #5

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.

https://www.bitcoin.org/bitcoin.pdf
While no idea is perfect, some ideas are useful.
notme
Legendary
*
Offline Offline

Activity: 1904
Merit: 1002


View Profile
May 22, 2013, 09:22:34 AM
 #6

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.

https://www.bitcoin.org/bitcoin.pdf
While no idea is perfect, some ideas are useful.
nii236
Member
**
Offline Offline

Activity: 85
Merit: 10


View Profile
May 22, 2013, 09:26:27 AM
 #7

Mary in the OP's scenario can not be trusted. Who will hold her accountable?
marcus_of_augustus
Legendary
*
Offline Offline

Activity: 3920
Merit: 2348


Eadem mutata resurgo


View Profile
May 22, 2013, 09:34:35 AM
 #8

Nice pictures ...

notme
Legendary
*
Offline Offline

Activity: 1904
Merit: 1002


View Profile
May 22, 2013, 09:37:57 AM
 #9

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.


https://www.bitcoin.org/bitcoin.pdf
While no idea is perfect, some ideas are useful.
waxwing
Sr. Member
****
Offline Offline

Activity: 469
Merit: 253


View Profile
May 22, 2013, 09:38:56 AM
 #10

Where is the decentralized process to getting fiat into the system (for new users without crypto)?

Isn't that the important part?

PGP fingerprint 2B6FC204D9BF332D062B 461A141001A1AF77F20B (use email to contact)
nii236
Member
**
Offline Offline

Activity: 85
Merit: 10


View Profile
May 22, 2013, 09:39:45 AM
 #11

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.
notme
Legendary
*
Offline Offline

Activity: 1904
Merit: 1002


View Profile
May 22, 2013, 09:40:28 AM
 #12

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.

https://www.bitcoin.org/bitcoin.pdf
While no idea is perfect, some ideas are useful.
waxwing
Sr. Member
****
Offline Offline

Activity: 469
Merit: 253


View Profile
May 22, 2013, 09:48:31 AM
 #13



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

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

PGP fingerprint 2B6FC204D9BF332D062B 461A141001A1AF77F20B (use email to contact)
notme
Legendary
*
Offline Offline

Activity: 1904
Merit: 1002


View Profile
May 22, 2013, 10:08:31 AM
 #14



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.

https://www.bitcoin.org/bitcoin.pdf
While no idea is perfect, some ideas are useful.
nwbitcoin
Sr. Member
****
Offline Offline

Activity: 294
Merit: 250


You are a geek if you are too early to the party!


View Profile WWW
May 22, 2013, 10:17:02 AM
 #15

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?

*Image Removed*
I use Localbitcoins to sell bitcoins for GBP by bank transfer!
notme
Legendary
*
Offline Offline

Activity: 1904
Merit: 1002


View Profile
May 22, 2013, 10:24:02 AM
 #16

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.

https://www.bitcoin.org/bitcoin.pdf
While no idea is perfect, some ideas are useful.
Lohoris
Hero Member
*****
Offline Offline

Activity: 630
Merit: 500


Bitgoblin


View Profile
May 22, 2013, 10:25:24 AM
 #17

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.

1LohorisJie8bGGG7X4dCS9MAVsTEbzrhu
DefaultTrust is very BAD.
nii236
Member
**
Offline Offline

Activity: 85
Merit: 10


View Profile
May 22, 2013, 10:29:20 AM
 #18

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...
notme
Legendary
*
Offline Offline

Activity: 1904
Merit: 1002


View Profile
May 22, 2013, 10:31:47 AM
 #19

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?

https://www.bitcoin.org/bitcoin.pdf
While no idea is perfect, some ideas are useful.
nii236
Member
**
Offline Offline

Activity: 85
Merit: 10


View Profile
May 22, 2013, 10:34:26 AM
 #20

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.
Pages: [1] 2 3 4 5 6 7 8 9  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!