Pages:
Author

Topic: Announcing Project Invictus: a P2P Exchange Collaboration - page 4. (Read 11264 times)

hero member
Activity: 770
Merit: 566
fractally
Regarding long-distance crypto-USD.   This could be done in an anonymous manner via a P2P escrow system where the crypto-currency side of the transaction places their funds in escrow with an 'bonded' escrow agent with a pre-signed arbitration agreement.   This escrow agent would then control the release of the crypto-currency provided both parties confirm receipt of fiat.   Only in the case of a dispute would the escrow agent have to know the financial details of the transaction, especially if the 'hash' of the agreement was encoded into the block chain.

The escrow-agent only gets involved if there is a dispute and does not have to take any actions at all if there is no dispute.    Failure of either party to communicate with the escrow agent (in a dispute) will be considered 'default'.   The escrow agent could be used without any pre-arranged agreement with the escrow agent *provided* the transaction includes a hash of the arbitration agreement and pays a small fee to the agent.

The sender of the crypto-currency would actually place 120% in escrow.  If they claim they didn't receive the fiat and the sender of the fiat can prove otherwise then the sender wins 120% to cover the cost of the dispute.  If both parties agree then 100% is forwarded on to one party and 20% is returned to the other. 

Why can they trust the escrow agent?  Because the agent is bonded and has a large amount of BTC in escrow with one or more other agents.  If there is a dispute with the escrow agent then it can be taken up a level. 

Why would an escrow agent post a bond?  So they could earn fees on every transaction that uses their services.   Why would they be fair?  Because it is more profitable to be fair than to cheat as you could only cheat once.   If all escrow agents are 'bonded' with many other 'escrow' agents then it would be easy to trust them provided even one of the escrow agents was had a known and trusted reputation. 

Based upon this, the blockchain should support this kind of 'escrow' arrangement built in.
hero member
Activity: 770
Merit: 566
fractally
Definitions:
BitShare -  A 'dividend paying, bitcoin-like, crypto-currency'.
crypto-bond - an IOU denominated in one asset and backed by either BitShares or a crypto-bond denominated in another asset.
crypto-USD -  a crypto-bond denominated in USD with collateral in the form of BitShare's held by the block chain.
crypto-EUR-USD  - a crypto-bond denominated in EUR and backed by crypto-USD.
crypto-BS-USD  - a crypto-bond denominated in BS and backed by crypto-USD

Use Cases:

1)  Grandma wants to earn a 10% return on her dollars, but is unable to use a computer.   Her grandson decides to help her out, so he receives the dollars from his grandmother and then uses them to buy crypto-USD.   He buys his crypto-USD by posting an ad on craigslist saying that he is looking to buy some.    Someone responds to the add and they meet up to exchange crypto-USD for paper dollars.  The grandson then prints out the private-key and gives it to his grandmother to hold on to.

2) A year later Grandma wants to get her dollars back, so she contacts her grandson and gives him her private key.  The grandson then gets on crags list and sees an ad for someone near by who wants to buy some crypto-USD.   They meet up and trade and the grandson then gives the money to his grandmother.

3) George lives in the middle of nowhere and the nearest person with crypto-USD is over 2 hours away.    Fortunately, he has family who live in a major city, so he calls up his brother and offers him $10 to buy $1000 worth of crypto-USD from another local.  His brother agrees, so George sends him $1010 and his brother then buys 1000 crypto-USD and then transfers (via BitShare) those crypto-USD to George in the middle of nowhere.

4) Sam is a trader who specializes in crypto-currencies.  He has been watching the market and sees that BitShares are 'undervalued' relative to crypto-USD and so he decides to 'short' crypto-USD by selling it into the market.  To do this he is giving up his dividends.   If he was right, the value of crypto-USD will fall (relative to BitShares) and he will be able to buy back the crypto-USD for less and make a profit greater than his dividends.    If he was wrong, then the value of crypto-USD could rise and the network could cover his position causing Sam to lose money.    As a result, it is only profitable to short if you expect the price to fall at a rate faster than the dividends you give up!

5) Alex is an early adopter of BitShares, he has mined 100 BS and believes that they will triple in value in the months ahead.   He could simply hold his position, but instead he wants to leverage up.   As a result, Alex shorts crypto-USD.   If he is right, then he will gain more from this short position than the dividends he might have earned by simply holding BS.    In this way Alex is creating crypto-USD for the 'risk-adverse' in the early days when BitShares are already appreciating rapidly and paying a very high dividend.  

6) Alice is a currency trader who wants to play the EUR/USD market.   Alice mines some BitShares and then uses them to buy crypto-EUR.   She then uses her crypto-EUR to short crypto-USD (creating crypto-USD-EUR) because she expects EUR to go up relative to USD.

7) David thinks that BitShares are overpriced in a new bubble, so he buys crypto-USD then uses it to short BitShares creating crypto-BS-USD.  

Cool Andrew, like Alex, believes that BitShares will go up in value; however, he doesn't like the exposure of going short USD, Gold, or anything else.   Instead he deciders to go long crypto-BS-USD.   Because crypto-USD pays 2x the dividends (in BS) as the equal value in BS, and crypto-BS-USD requires 2x margin held in crypto-USD to back the crypto-BS-USD, then Andrew can earn 4x the dividend rate by purchasing crypto-BS-USD without having to expose himself to any other currency.

9)  Fernando runs an online store and wants to accept payments via a crypto-currency.  Unfortunately, all of his suppliers price things in USD.   Fernando instead opts to price things in crypto-USD.  As a result his customers get price stability, Fernando avoids all exchange fees that would be incurred if using something like Mt.Gox merchant services, and Fernando gets to earn interest while he waits to cash out.

10) Luke has some Bitcoins and wants to buy crypto-USD, using the BitShare exchange.   First, Luke must acquire some crypto-Bitcoins so he finds Charles who has crypto-BTC and is looking to get real BTC.    So, Luke and Charles use this algorithm: https://en.bitcoin.it/wiki/Atomic_cross-chain_trading   to exchange Crypto-BTC for BTC without having to worry too much about the 'exchange rate' as it should be about 1:1.     This 'feature' for cross-chain-trading would be 'built-in' to the BitShare client where Luke and charles would only need to specify the 'addresses' in each chain and the exact exact exchange ratio.   The clients would support 'broadcasting' bids/asks to negotiate 'real-time' counter-parties and all transactions would 'expire' within 20 minutes.   Because the trading range on BTC to crypto-BTC is very small the market should be very liquid and very quick and can easily require all nodes to be alive and interactive without having to worry about a 'thin' market.  It would likely work even if only 2 people were online at the same time.

Given the above 'cross-chain' trading algorithm, I believe that it would be entirely possible to allow much faster trading between all of my crypto-currencies provided all users involved in the trades are 'online' and are not taking out a 'short' position.    Only the process of creating a new short position would require going through the built-in exchange.   Any trades outside of the 'slow' multi-block process would be restricted to valuations between the current bid/ask price in the block chain.


Conclusion:
  I believe that BitShares would enable all of the above interactions without the need for 'market coin'.  When dealing entirely with crypto-currencies, no escrow would be required to get BTC,LTC,NMC,etc in/out of BitShares.    Once you have crypto-BTC it would be easy to do a lot of exchanges between any other crypto* sub-currency without having to always find a real-time counter party (like MarketCoin would require).  

 With this latest setup I believe I have 'unified'  MarktCoin, BitShares, and BTC Luke's crypto-bond system.   I have significantly simplified the ability to find local people to trade with by minimizing the buy-sell spread between crypto-USD and USD and demonstrated how someone like Grandma can use a trusted (decentralized) 3rd party to gain benefits from the system without even having to use a computer.  

 The only peace missing from this system is 'escrow' for long-distance trades between crypto-USD and USD.   As this piece doesn't involve a 'trading engine' I think it falls outside the scope of a p2p exchange.   I suspect that companies like BitInstant which already are licensed would enable such a service to complete the overall solution.  BitInstant would not be a requirement, but would serve to help while they are legal.
legendary
Activity: 1134
Merit: 1008
CEO of IOHK
Quote
Good, glad to see someone finally being serious about this.

I think you'd want to get demo of crosschain p2pt running before asking foundation to fund it, if I see repo with sensible code, I'll even help you. The wording in the paper is a bit unfortunate imho, it sounds a bit like heresy - your altchain is designed to support fragmentation of Bitcoin ecosystem and you're asking Bitcoin foundation to support that? Maybe you want to tweak your wording a bit. There are far more productive use cases for cp2pt than just faciliating BTC x LTC x otherscamltc p2ptrade.

I really do find this comment condescending. I've just received a 22 page whitepaper BTCLuke and I have numerous others. Some members here have been writing actual code to test their ideas. I have access to considerable funding and will spend it to ensure this project moves in the proper direction. I don't really understand your definition of serious, but I will inform you that the foundation's behavior and funding patterns are impossible to divine. I wouldn't ever get into bed with them on any project.
hero member
Activity: 770
Merit: 566
fractally
Has anyone else thought about applying for a grant from the Bitcoin Foundation?. I'm applying for one with Marketcoin; though only a little one to begin with. If anyone has systems they'd like to develop but don't have the funds I'd really encourage it. Peter, Gaving and Lindsay all encouraged me to write one for Marketcoin. You can find my application here: https://github.com/XertroV/MarketcoinWhitepaper/blob/master/GrantProposal-Q2-2013.md

Edit: Tumak has updated the crosschain p2ptrade algorithm to be clearer, please find the updated version here: https://github.com/bitcoinx/colored-coin-tools/wiki/crosschain-p2ptrade

Good, glad to see someone finally being serious about this.

I think you'd want to get demo of crosschain p2pt running before asking foundation to fund it, if I see repo with sensible code, I'll even help you. The wording in the paper is a bit unfortunate imho, it sounds a bit like heresy - your altchain is designed to support fragmentation of Bitcoin ecosystem and you're asking Bitcoin foundation to support that? Maybe you want to tweak your wording a bit. There are far more productive use cases for cp2pt than just faciliating BTC x LTC x otherscamltc p2ptrade.
Please enlighten me on these more productive uses?   

Would the 'bitcoin' foundation ever sponsor an alt-coin if it looked to solve problems that couldn't be added to or directly integrated with Bitcoin?
hero member
Activity: 770
Merit: 566
fractally

Unfortunately the only use ATM is trading to Litecoin or shitecoin, but I don't see these altcoins being particularly useful. Ultimately I'm looking to create infrastructure that will help exchange between Bitcoin and purposeful currencies, be they local currencies or for novel purposes (like Namecoin).


This is my primary concern with MarketCoin.    Assuming we had it built today it wouldn't provide that much value to the current system.   It also assumes that all alt-coins will be compatible with bitcoin-style RPC api and scripts.   Therefore, any alt-coin that wanted to integrate with MarketCoin would have to use some kind of 'plugin' system or be designed specifically for MarketCoin.

So my question is this:  suppose you were to create a new Alt Chain, what features should this chain support for best integration with MarketCoin?
member
Activity: 88
Merit: 12
Max Kaye
I think you'd want to get demo of crosschain p2pt running before asking foundation to fund it, if I see repo with sensible code, I'll even help you. The wording in the paper is a bit unfortunate imho, it sounds a bit like heresy - your altchain is designed to support fragmentation of Bitcoin ecosystem and you're asking Bitcoin foundation to support that? Maybe you want to tweak your wording a bit. There are far more productive use cases for cp2pt than just faciliating BTC x LTC x otherscamltc p2ptrade.

As I mentioned in the proposal I'm not looking to fund development, just community stuff at this stage. Once there's a community and some development then I'll consider asking for development funding. The whitepaper is very much a work in progress. I'm quitting one of my jobs at the end of June so I can work on Marketcoin part time.

Unfortunately the only use ATM is trading to Litecoin or shitecoin, but I don't see these altcoins being particularly useful. Ultimately I'm looking to create infrastructure that will help exchange between Bitcoin and purposeful currencies, be they local currencies or for novel purposes (like Namecoin).

Also, I don't expect this grant to be successful. Worst case is the board reads it and says no; I'll be working on it either way, though it might be a little slower without a grant. I'll be applying for another in 3 months in any case. At least they hear about it and there'll be some discussion.

I believe that Marketcoin will not fragment the Bitcoin ecosystem; rather it will help it flourish. The philosophy behind Bitcoin is present in Marketcoin, and will continue to be.

Edit: Grant Proposal submitted. View it here: https://github.com/XertroV/MarketcoinWhitepaper/blob/master/GrantProposal-Q2-2013.md
newbie
Activity: 35
Merit: 0
Has anyone else thought about applying for a grant from the Bitcoin Foundation?. I'm applying for one with Marketcoin; though only a little one to begin with. If anyone has systems they'd like to develop but don't have the funds I'd really encourage it. Peter, Gaving and Lindsay all encouraged me to write one for Marketcoin. You can find my application here: https://github.com/XertroV/MarketcoinWhitepaper/blob/master/GrantProposal-Q2-2013.md

Edit: Tumak has updated the crosschain p2ptrade algorithm to be clearer, please find the updated version here: https://github.com/bitcoinx/colored-coin-tools/wiki/crosschain-p2ptrade

Good, glad to see someone finally being serious about this.

I think you'd want to get demo of crosschain p2pt running before asking foundation to fund it, if I see repo with sensible code, I'll even help you. The wording in the paper is a bit unfortunate imho, it sounds a bit like heresy - your altchain is designed to support fragmentation of Bitcoin ecosystem and you're asking Bitcoin foundation to support that? Maybe you want to tweak your wording a bit. There are far more productive use cases for cp2pt than just faciliating BTC x LTC x otherscamltc p2ptrade.
member
Activity: 88
Merit: 12
Max Kaye
As my dad once said, "I find your lack of faith disturbing."  Wink

I am always ready to be proven wrong, especially when the benefit of the community is at stake.

 With that said, what is the logical result of a P2P exchange in the extreme?  Every individual *is* an exchange.

It seems to me this depends on how we look at that last sentence. Is Marketcoin a P2P exchange in the extreme? How do you then reconcile the idea of a unified single system such as Marketcoin. On the other hand, looking at systems like Bitcoin, one can argue that every individual *is* a bank, and so I can see that it can be resolved with a particular frame of reference.

Ultimately this is a small point to argue, but I'd like to see some academic investigation into it. (Though now is not the time or place to try and resolve such differences since I think we can all agree you're certainly correct enough for this conversation).

  I think there currently 4 categories of exchanges:  1) those like local-bitcoins or OTC  2) those like Mt. Gox  3) those based upon decentralized issuers of 'dollar-denominated crypto-currency'  that can be traded / exchanged via systems like MarketCoin or even anonymous exchanges. and last but not least, dollar-denominated crypto-currency without any specific issuer and that has value *independent* from any individual backing it.

  Assuming you can have a dollar-denominated crypto-currency with no issuers *then* you have already achieved the ultimate P2P exchange where *everyone* is an exchange you no longer require a system to 'pair' the highest USD/BTC bidder against the lowest 'ask'.   Everyone who wants into a dollar-denominated crypto-currency is a match against everyone who wants out of it and back into paper dollars.  Therefore, it is as decentralized as possible.

I agree that 4. is the ideal, though I'm not sure how easily it can be achieved. Still need to read the BitShares whitepaper though, so don't take my word for it. As a side point, I'd anticipate that Marketcoin would be compatible with such systems.

 I am going to go one-step further and claim that BTCLuke and I both require a nearly identical blockchain based trading platform.  We both require collateral with a crypto-currency.  All that remains to be solved is:
    1) how are new dollar-denominated crypto-bonds issued?
    2) how is the collateral requirement determined?
    3) how is default detected and the collateral paid out?
    4) how is the bond fulfilled?

A lot of 'ifs' there, though I look forward to your solutions Smiley

  I have answers to the 4 questions, and would like to see what answers BTCluke has.  

Cheesy

I think I've found a way around the 3rd party in one case. I'm sooooooooo close to having it all documented...

For normal trading, such as buying USD with Bitcoins, or Bitcoins with USD, I'm still planning to use the 3rd party to actually move the values of the currencies after the trade has "been made" in real time.

For purchasing the representation of the USD, I think there is a semi-trustless 2-way exchange option. (Yes, with no central authorities.) I'll detail it in my upcoming whitepaper.

more Cheesy. I look forward to it.

3a. It must match trades almost instantaneously.When you are watching a graph of trades in your region and want to trade at a very specific time, you must be able to do so.
3b. It must be possible to fulfill matched trades almost instantaneously if the chosen fiat transfer mechanism allows it.

I agree with this, it's certainly a two part issue, and I think this separation is important.



On the note of using SSL style systems, these are probably one of the better ways of dealing with the issues fiat raises, and it helps p2p trade of fiat without needing to buy into a cryptocurrency solution; as always there's two sides of the coin, but having more options is always beneficial.



Has anyone else thought about applying for a grant from the Bitcoin Foundation?. I'm applying for one with Marketcoin; though only a little one to begin with. If anyone has systems they'd like to develop but don't have the funds I'd really encourage it. Peter, Gaving and Lindsay all encouraged me to write one for Marketcoin. You can find my application here: https://github.com/XertroV/MarketcoinWhitepaper/blob/master/GrantProposal-Q2-2013.md



Edit: Tumak has updated the crosschain p2ptrade algorithm to be clearer, please find the updated version here: https://github.com/bitcoinx/colored-coin-tools/wiki/crosschain-p2ptrade
hero member
Activity: 770
Merit: 566
fractally

3. It must transact trades almost instantaneously. When you are watching a graph of trades in your region and want to trade at a very specific time, you must be able to do so. (This is extremely important for arbitragers and other traders who help keep the price fluctuation down.)
There are two parts to a trade - matching and locking the orders, and transferring value. "When you are watching a graph of trades in your region and want to trade at a very specific time, you must be able to do so." Really I think this means "When you are watching a graph of trades and you would like to make a trade at that current price, you must be able to do so, or have the same ability to do so as every other member of the exchange". Trades with fiat can't be instantaneous, but locking in a price can be.
You're shooting too low, it certainly is possible.

We must duplicate the instantaneous nature of fiat->crypto trading that mtgox currently offers.

In fact we must be even faster. The market demands it.

What this requires, of course, is that criteria 6 be an actual transference of value.

Or you use SSL logs to proof (almost) instantaneous transaction of fiat as described in https://bitcointalksearch.org/topic/tlsnotary-cryptographic-proof-of-fiat-transfer-for-p2p-exchanges-173220.

I think a perfect p2p-exchange should allow instantaneous AND non-instantaneous trade fulfilling because it is always a trade-off. The users should be able to choose what they prefer. If you place an order you should be able to specify to what terms you are willing to agree:
Quote
1) in case of dispute, the seller has to proof using SSL-logs that he didn't receive the fiat.
2) in case of dispute, the buyer has to proof using SSL-logs that he did send the fiat.
3) in case of dispute, both parties have to proof using SSL-logs that they send or didn't receive the money.
4) the bitcoin-buyer has to provide instant proof of payment using SSL-logs.
5) in case of dispute, nothing happens. Just use supplied user ratings similar to bitcoin-otc.
6) use 2-party shared bitcoin collateral and both loose if trade is not fulfilled.

Options 1-4 would involve an escrow and the recording of SSL logs of your banking session and sending it to the escrow.
Option 4 would even allow instantaneous trades between bitcoin and fiat without IOUs.
Option 5 would be based on user supplied ratings similar to bitcoin-otc
Option 6 would be possible without escrow.

I think there are many good reasons why some users might prefer one of these methods over another. Why not let each user decide which way to trade (speed vs. risk vs. price etc.). In this way, the exchange market will automatically determine different prices for different trust levels and order types.

So I would actually change #3 to:
Quote
3a. It must match trades almost instantaneously.When you are watching a graph of trades in your region and want to trade at a very specific time, you must be able to do so.
3b. It must be possible to fulfill matched trades almost instantaneously if the chosen fiat transfer mechanism allows it.


*EDIT* Btw, the options which I specified above obviously focus on direct trading of fiat vs bitcoin. Of course it would be nice to have in addition to this some IOU based trading or something like a peged crypto-fiat like bitshares.


I think that all of these ideas are great approaches to the escrow problem.    My ultimate goal would be to make local exchanges as easy and simple as possible by eliminating exchange-rate spread/risk from the local exchanges.   

I think that you could eliminate the need for escrow entirely with the following setup:

1) A trusted company will certify someone's identity (Name, Address, Government ID)
2) Both parties will digitally sign an arbitration agreement with someone like judge-me with their crypto-graphic identity.
3) Both parties then sign the 'exchange terms' with this ID.
4) Now they can trade with the knowledge that even without escrow they will end up with a court-enforceable judgment.
5) This arrangement could be made even more 'secure' if the trusted company would 'insure' the transaction for a small fee.

The result is that for most people, once they have a signed ID they can 'trust' others with a signed ID and therefore avoid escrow.   The 'trusted company' wouldn't actually have to accept any fiat or crypto-currency except as payment for the 'service' of signing/certifying their ID and agreement to arbitrate.    This will solve many of the 'legal' issues associated with operating as an escrow agent. 


 

newbie
Activity: 36
Merit: 0
So do we just add suggestions for inclusion at the site?
full member
Activity: 126
Merit: 100

3. It must transact trades almost instantaneously. When you are watching a graph of trades in your region and want to trade at a very specific time, you must be able to do so. (This is extremely important for arbitragers and other traders who help keep the price fluctuation down.)
There are two parts to a trade - matching and locking the orders, and transferring value. "When you are watching a graph of trades in your region and want to trade at a very specific time, you must be able to do so." Really I think this means "When you are watching a graph of trades and you would like to make a trade at that current price, you must be able to do so, or have the same ability to do so as every other member of the exchange". Trades with fiat can't be instantaneous, but locking in a price can be.
You're shooting too low, it certainly is possible.

We must duplicate the instantaneous nature of fiat->crypto trading that mtgox currently offers.

In fact we must be even faster. The market demands it.

What this requires, of course, is that criteria 6 be an actual transference of value.

Or you use SSL logs to proof (almost) instantaneous transaction of fiat as described in https://bitcointalksearch.org/topic/tlsnotary-cryptographic-proof-of-fiat-transfer-for-p2p-exchanges-173220.

I think a perfect p2p-exchange should allow instantaneous AND non-instantaneous trade fulfilling because it is always a trade-off. The users should be able to choose what they prefer. If you place an order you should be able to specify to what terms you are willing to agree:
Quote
1) in case of dispute, the seller has to proof using SSL-logs that he didn't receive the fiat.
2) in case of dispute, the buyer has to proof using SSL-logs that he did send the fiat.
3) in case of dispute, both parties have to proof using SSL-logs that they send or didn't receive the money.
4) the bitcoin-buyer has to provide instant proof of payment using SSL-logs.
5) in case of dispute, nothing happens. Just use supplied user ratings similar to bitcoin-otc.
6) use 2-party shared bitcoin collateral and both loose if trade is not fulfilled.

Options 1-4 would involve an escrow and the recording of SSL logs of your banking session and sending it to the escrow.
Option 4 would even allow instantaneous trades between bitcoin and fiat without IOUs.
Option 5 would be based on user supplied ratings similar to bitcoin-otc
Option 6 would be possible without escrow.

I think there are many good reasons why some users might prefer one of these methods over another. Why not let each user decide which way to trade (speed vs. risk vs. price etc.). In this way, the exchange market will automatically determine different prices for different trust levels and order types.

So I would actually change #3 to:
Quote
3a. It must match trades almost instantaneously.When you are watching a graph of trades in your region and want to trade at a very specific time, you must be able to do so.
3b. It must be possible to fulfill matched trades almost instantaneously if the chosen fiat transfer mechanism allows it.


*EDIT* Btw, the options which I specified above obviously focus on direct trading of fiat vs bitcoin. Of course it would be nice to have in addition to this some IOU based trading or something like a peged crypto-fiat like bitshares.
hero member
Activity: 770
Merit: 566
fractally
We are looking for the best combination of ideas
newbie
Activity: 19
Merit: 0
Do you have already ideas and need people to work on it or are you starting it from scratch?

cheers,
hero member
Activity: 770
Merit: 566
fractally
Both BTCLuke and I require a 3rd party escrow when trading crypto-usd-bonds for USD (except in person).  I submit that 3rd party escrow is ALWAYS required when exchanging with 'untrusted' parties when one side of the transaction involves something physical.   The only way to avoid the escrow step is if the crypto-usd-bonds were issued by a PUBLIC, trusted, and 'centralized' company.  
Oh man your timing bro....

I think I've found a way around the 3rd party in one case. I'm sooooooooo close to having it all documented...

For normal trading, such as buying USD with Bitcoins, or Bitcoins with USD, I'm still planning to use the 3rd party to actually move the values of the currencies after the trade has "been made" in real time.

For purchasing the representation of the USD, I think there is a semi-trustless 2-way exchange option. (Yes, with no central authorities.) I'll detail it in my upcoming whitepaper.

A take back my 'always' comment, the one exception I can think of is Nash Equilibrium where both parties require an initial amount of crypto-currency that they can 'lock-up' as backing for the exchange.

*if* you have something that works for BTC to USD without requiring a 3rd party ... then that would be awesome   
hero member
Activity: 526
Merit: 508
My other Avatar is also Scrooge McDuck
Both BTCLuke and I require a 3rd party escrow when trading crypto-usd-bonds for USD (except in person).  I submit that 3rd party escrow is ALWAYS required when exchanging with 'untrusted' parties when one side of the transaction involves something physical.   The only way to avoid the escrow step is if the crypto-usd-bonds were issued by a PUBLIC, trusted, and 'centralized' company.  
Oh man your timing bro....

I think I've found a way around the 3rd party in one case. I'm sooooooooo close to having it all documented...

For normal trading, such as buying USD with Bitcoins, or Bitcoins with USD, I'm still planning to use the 3rd party to actually move the values of the currencies after the trade has "been made" in real time.

For purchasing the representation of the USD, I think there is a semi-trustless 2-way exchange option. (Yes, with no central authorities.) I'll detail it in my upcoming whitepaper.
hero member
Activity: 770
Merit: 566
fractally
All,
    I would like to takes some time to get some basic understanding about the 'nature of fiat' because there is some kind of belief that there is such a thing as 'perfect representation' when even bank accounts are not a 'perfect representation'.

   1) All modern fiat is actually a defaulted gold certificate.  They continue to trade at slowly depreciating values, but this is the true nature of fiat.
   2) USD at Mt.Gox is different than USD in Bank of America is different than USD at JP Morgan.   USD at these banks are not perfectly fungible and they trade (in a very small) range based upon the supply and demand for 'credit' at various institutions.   Ask anyone who wants to get money into or out of Mt.Gox if a $1 in Gox is really worth $1 in your hand.  Sometimes it is more, sometimes it is less.   As a result, even something as traditional as Mt.Gox, Banks, etc are not 'perfect representations' of currency.
   3) All that exists in the current banking system is dollar denominated IOUs that are exchanged against one another at prices near par.  Ultimately these IOUs have no backing and the primary difference between them and bitcoin is that a central authority can create new IOU USD with no backing.

  With that out of the way, lets step back from focusing on a 'solution', namely a p2p exchange, and grab a clearer understanding of the 'problem' where the problem is not the lack of a p2p exchange.   The problem is the market demands a money that combines the best properties of Bitcoin and fiat.   So, I am going to define our problem in terms of creating a 'better' money than bitcoin.  'Money' *is* the ultimate P2P exchange through which all other goods are bought, sold, and compared.   So, lets define why money has value.

Money is 'valued' because of its ability to move 'purchasing power' through time and space with minimal losses and risks.   
 
   Fiat money suffers from counter-party risk and inflation.  Bitcoin solves those problems but suffers from exchange risk.   Real-time exchanges like Mt.Gox can mitigate the exchange risk by offering 'instant exchanges' and 'real-time' price discovery at the expense of re-introducing counter-party risk. 

  With that said, what is the logical result of a P2P exchange in the extreme?  Every individual *is* an exchange.   You could say that the free-market is the ultimate P2P exchange!  Why do centralized exchanges exist?  Because out of the billions of people in the world only those at the 'margin' can agree on a price and these people are hard to find and trust and unlikely to be local.  Because the market demands efficiency, particularly with money, any exchange based upon 'trust' tends to concentrate the 'trust' into LARGE organizations with sufficient common trust to produce an internal exchange with sufficient liquidity and small spreads.   A P2P system that only serves to facilitate trading among a larger number of smaller 'trusted' organizations... say issuers of crypto-USD-bonds will only serve to create a large number of dollar-denominated bonds that all trade AGAINST one another with some amount of spread.  'trust' in 1000 different 'anonymous' individuals cannot be aggregated any more than 'trust' in 1000 different fiat-currencies can be aggregated into a basket while allowing each 'currency' to claim that it *is* the same as all of the others.  In effect, simply aggregating many bank notes from many 'small' banks does not cause all notes to have equal value despite the desire of the banks for this to be so.   Trustworthy banks would subsidize less trustworthy banks.

   With all of that said, we can then conclude that any IOU system must be backed by crypto-currency collateral sufficient to maintain the purchasing power of the IOU even in the face of exchange rate fluctuations between the IOU and the backing crypto-currency.   All that is required is to define the set of rules for issuing, backing, and covering IOUs that does not depend upon a trusted 3rd party to assess defaults or arbitrate collateral payouts.

   I think there currently 4 categories of exchanges:  1) those like local-bitcoins or OTC  2) those like Mt. Gox  3) those based upon decentralized issuers of 'dollar-denominated crypto-currency'  that can be traded / exchanged via systems like MarketCoin or even anonymous exchanges. and last but not least, dollar-denominated crypto-currency without any specific issuer and that has value *independent* from any individual backing it.

  Assuming you can have a dollar-denominated crypto-currency with no issuers *then* you have already achieved the ultimate P2P exchange where *everyone* is an exchange you no longer require a system to 'pair' the highest USD/BTC bidder against the lowest 'ask'.   Everyone who wants into a dollar-denominated crypto-currency is a match against everyone who wants out of it and back into paper dollars.  Therefore, it is as decentralized as possible.

  Only once you have dollar-denominated crypto-currencies does it make sense to have a decentralized trading platform that allows you to convert between currencies denominated in other units like gold, silver, EUR, or bitcoin.   

  I am going to go one-step further and claim that BTCLuke and I both require a nearly identical blockchain based trading platform.  We both require collateral with a crypto-currency.  All that remains to be solved is:
    1) how are new dollar-denominated crypto-bonds issued?
    2) how is the collateral requirement determined?
    3) how is default detected and the collateral paid out?
    4) how is the bond fulfilled?

  Both BTCLuke and I require a 3rd party escrow when trading crypto-usd-bonds for USD (except in person).  I submit that 3rd party escrow is ALWAYS required when exchanging with 'untrusted' parties when one side of the transaction involves something physical.   The only way to avoid the escrow step is if the crypto-usd-bonds were issued by a PUBLIC, trusted, and 'centralized' company.   

   I have answers to the 4 questions, and would like to see what answers BTCluke has. 



 
 
hero member
Activity: 526
Merit: 508
My other Avatar is also Scrooge McDuck
How that's whitepaper coming along Luke.
Close!

You can't rush miracles! Wink
legendary
Activity: 1134
Merit: 1008
CEO of IOHK
Quote
I happen to know of one such solution now, although I can't be sure that everyone will agree it's "perfect." It will likely be "the best we can think of" again though.

I do too Smiley How that's whitepaper coming along Luke.
hero member
Activity: 526
Merit: 508
My other Avatar is also Scrooge McDuck
Criteria used to create an ideal P2P Distributed Exchange:
I'm really presuming the word 'ideal' isn't in the above line. I'm not even sure if an ideal p2p exchange could work. Ideally I could trade you my gold bar for bitcoins truslessly, but there are myriad issues that prevent that. I think we should compartmentalise what we want these exchanges to do, more so than just 'a p2p exchange', and more like 'a p2p fiat exchange', 'a p2p fiat and cryptocoin exchange', etc.
I put the word "ideal" in there to simply express "the best we can do."

No one is trading any gold bars trustlessly, so whomever comes up with the next best POSSIBLE thing, has figured out the "ideal."


3. It must transact trades almost instantaneously. When you are watching a graph of trades in your region and want to trade at a very specific time, you must be able to do so. (This is extremely important for arbitragers and other traders who help keep the price fluctuation down.)
There are two parts to a trade - matching and locking the orders, and transferring value. "When you are watching a graph of trades in your region and want to trade at a very specific time, you must be able to do so." Really I think this means "When you are watching a graph of trades and you would like to make a trade at that current price, you must be able to do so, or have the same ability to do so as every other member of the exchange". Trades with fiat can't be instantaneous, but locking in a price can be.
You're shooting too low, it certainly is possible.

We must duplicate the instantaneous nature of fiat->crypto trading that mtgox currently offers.

In fact we must be even faster. The market demands it.

What this requires, of course, is that criteria 6 be an actual transference of value.



6. It must hold and transfer a perfect representation of fiat currency. This encrypted device must be designed from the ground up to be transferable yet not counterfeitable, and be traded in the same denominations of real fiat money. It also must have a very high likelihood of being redeemable for the fiat money it represents, which makes it a 'digital IOU,' yet with all of the characteristics of sound money. (Divisibility, fungibility, Malleability, Scarcity, etc...)
Where did the 'value' term go? You've now removed the reference to generic money and are specifically talking about fiat.
I have intentionally loosened this wording in order to allow for some more creative alternatives. Since I wrote the last one, I've seen a couple of systems that have figured out ways to move the value, but the value didn't represent fiat very well at all. (A flexible amount in both cases.) No matter what, the "prime directive" of replacing fiat must be for it to have all the charachteristics of money... (Divisibility, durability, fungability, scarcity, portability & malleability) Those are being overlooked by people with otherwise very creative ideas... So I re-worded to both loosen for creativity's sake, yet enforce that requirement.


Also, a 'perfect representation of fiat' doesn't really mean anything because there is no perfect representation.
As my dad once said, "I find your lack of faith disturbing."  Wink

I happen to know of one such solution now, although I can't be sure that everyone will agree it's "perfect." It will likely be "the best we can think of" again though.
Pages:
Jump to: