Pages:
Author

Topic: Primer for a P2P Distributed Exchange - page 8. (Read 17672 times)

legendary
Activity: 1134
Merit: 1008
CEO of IOHK
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.  
sr. member
Activity: 294
Merit: 250
You are a geek if you are too early to the party!


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

member
Activity: 84
Merit: 10
newbie
Activity: 22
Merit: 0

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?
legendary
Activity: 1134
Merit: 1008
CEO of IOHK
Why not use bittorrent sync for the database? http://labs.bittorrent.com/experiments/sync.html
sr. member
Activity: 294
Merit: 250
You are a geek if you are too early to the party!

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?

newbie
Activity: 22
Merit: 0
legendary
Activity: 4410
Merit: 4788
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.
sr. member
Activity: 294
Merit: 250
You are a geek if you are too early to the party!


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!


member
Activity: 85
Merit: 10
Yeah but then you have the "Big Bank Centralisation Bad" thing going on all over again!
hero member
Activity: 793
Merit: 1026
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.
sr. member
Activity: 469
Merit: 253

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.
sr. member
Activity: 294
Merit: 250
You are a geek if you are too early to the party!


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.



hero member
Activity: 714
Merit: 500
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
member
Activity: 85
Merit: 10
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?
hero member
Activity: 714
Merit: 500

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.
member
Activity: 85
Merit: 10
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.
hero member
Activity: 714
Merit: 500
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.

sr. member
Activity: 294
Merit: 250
You are a geek if you are too early to the party!
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?

legendary
Activity: 1904
Merit: 1002
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.
Pages:
Jump to: