Pages:
Author

Topic: P2P Exchange for bitcoin - page 11. (Read 42805 times)

sr. member
Activity: 364
Merit: 250
April 16, 2013, 06:30:17 PM
Hows about a name for this system?

What do you think of Bitcoin Open Exchange (BOX)?
sr. member
Activity: 364
Merit: 250
April 16, 2013, 06:28:20 PM
Tier Nolan, sounds like the colored coin idea.  The portable iou is the colored coin, you negotiate its exchange with other users.  Whoever ends up with the coin when it comes time to redeem though, would have to establish a relationship with the broker house (or already has one). 

So would this colored coin run on its own block chain or leech off the btc network?

i also wonder about liquidity.  for it to exist the items being exchanged must be fungile.  I might not want you gox colored coin, he might not want my bitinstant colored coin.


Also whatever exchange we start, it will be really hard for us to get it going.

1) There must be 1 broker first (see 5)
2)Miners/market makers who will process whatever order book system would have to be incentivized to run the software.
3) whats the hash reward early on when no one is trading, not a terribly hard one to overcome though
4) who will deposit the first cash and btc with the broker (unless we sign an established xchange on first, say one of the floundering non-goxxes looking for a new angle to fight the Gox)

5)  Why will this new broker ever extend trust (and thus clearing) with a 2nd exchange?  If the customer deposit/relationship is the revenue driver, why ever let any one else into the biz?  ( I have an idea for this, some one start the first broker as a non-profit, who will build a customer base, then freeze new accounts to make room for competition.  The Foundation would be the catalyst for forcing all the new players to let new ones in, as they will always be fair and clear with any legitimate new player.  If you refuse to clear with firms the foundation wants to include, foundation stops trading with you, isolating your customers from the big liquidity.)
legendary
Activity: 1232
Merit: 1094
April 16, 2013, 05:42:09 PM
The problems that need to be solved

- trust between the public and the brokers
- trust between brokers
- transaction system

The biggest difficulty is presenting a uniform platform to the public, but having it distributed.

I think the Ripple system may be the way to go, but at the broker level.

Two brokers will publish their trust level.  This is how much they trust each other.

If you have a signed chain from one broker to another broker, then the 2nd broker promises to payout.

The brokers can publish the state of the link between the periodically.

A broker would publish to the chain

- A list of other brokers and the maximum value of IOUs from those other brokers they will accept
- The maximum total amount of IOUs from any source they will accept

The 2nd rule makes it easier for a broker to have 100% backing of their promises.

Users could then trade these IOUs and they should all have the same value.  If you try to redeem them and the broker refuses to give the money, then you can move on to the next broker.
sr. member
Activity: 294
Merit: 250
You are a geek if you are too early to the party!
April 16, 2013, 05:31:53 PM
This is a great thread, so while we are getting some fantastic ideas, can I just reel it in a little with a suggestion?

This is open source in the best tradition, so can we consider the idea that if the basics can be made to be as close to perfect as possible, all the other stuff is made into add ons?

What I'm suggesting is that we have a basic exchange that does the price discovery very well, but some of the more specialist features are kept at the client side so we can keep the exchange as lean as possible?

Obviously, we are nowhere close to having all the ideas on the table yet, but if we keep in mind that some features might not be universally needed, they should be considered an add on feature.

Plus, if we are going to BE Satoshi, we also need to remember he spent a good year just thinking out his / their plan before starting to code.  We might not need that much time, but time spent planning is time well spent!

There is my refocus team speech done! Wink
sr. member
Activity: 364
Merit: 250
April 16, 2013, 05:05:59 PM
EDIT: Regarding further suggestions,
1) An exchange MUST be able to cancel trades.

If we are going to do a block chain, wherein buy and sell orders are cryptographically signed by the broker as being a valid order to buy or sell a certain amount at a certain price, miners would be paid a fee either for each tx, or a % of the tx value.  Whichever we chose doesn't matter.  Game this out if you are the miner.
Can you tell me why this system requires a blockchain and miners, as opposed to just a shared database anyone can add orders to? What are the miners trying to protect exactly?

Glad you asked, functionally nothing is being "secured" against with a PoW.  What they are doing is solving a hash which naturally creates a random window as to when da tradez go down.  People wanting liquidity will need to submit the order early in the window to have a quick execution, people more price sensitive might want to see how committed bids and offers shape up before deciding if they want to participate (trading off execution speed for price sensitivity).

 The difficulty of the hash function will adjust the rapidity of the blocks.  initially there will be little volume, so maybe a 10 or 15 minute initial difficulty window.  Then when trades pick up, volume triggers will drop the difficulty lower to allow for quicker blocks. 

The PoW also solves the who's trades meets who's.  Its the problem of the 3 generals using a delayed communications system trying to coordinate an attack on the enemy problem that Satoshi pointed out that was solved with PoW in Bitcoin.  Some relays will hear some tx's sooner than others, some relays/miners will not hear some at all.  Whatever miner hits the hash solution first decides (according to a standarized algo) the price and trades that go thru.  The brokers then look to this PoW chain to officially determine what client orders executed and in what amount.

A database that any one can access and isn''t stored in one place doesn't work b/c of the timing difference i point out above (unless you can explain how this tx engine would work), and if it is stored in one place you just Goxxed us all over again.

In short the PoW in Bitcoin solves the conundrum of not having a central mint/database to police 2x spends.  In this structure the PoW serves to:

1) Randomize slightly the execution window to incentive people to stand and make a firm order sooner
2) Settle the uncertainty of which orders made it to "market" first, by crossing all overlapping orders according to an averaging method that maximized liquidity and establishes a uniform price for all the trades in that block.  The same price matters cuz, how does one miner match and trade between two guys, then some other miner tries to match one of sides the other miner already executed with some other order which could also have been already by yet another miner elsewhere on the network.  That database the every one accesses (wherever it lives) gets corrupted quickly.  (The equivalent of an attempted 2x spend in Bitcoin is a 2x trade in block-trading).
3) allows miners to respect credit policies of competing brokers...no one wants do wind up being owed a lot of money by a shaky broker who may be quietly buying up Bitcoins from another broker's customer and then not able to pay.  A hash of the most recent relative credit positions between houses can be hashed into the PoW header.  When credit limits are hit, an over extended exchange would have his further buy orders rejected, or only matched with houses he has a surplus position with for a while.  The algo can seek to allocate money matches to reduce net usd debts between houses (as these take the longest to settle and are most tricky and costly), which could be tricky to code.
legendary
Activity: 1232
Merit: 1094
April 16, 2013, 04:33:38 PM
What about using POW to build up broker reputation.

We can estimate the BTC to POW ratio using average reward + fees per block / average hashes required per block.

A broker can create an identity by submitting a link in the chain which represents some kind of POW.  Another option would be to just provably destroy BTC in the main chain.

This represents the debt that the exchange chain owes this broker.  Initially, brokers probably wouldn't be willing to destroy any coins.

However, if they received fees for confirming their trades, then they could make a profit.

A broker would make claims that they have submitted transactions into the main chain.  This would be a small amount of signed info.  If another broker published proof that the statement was false, then the lying broker's reputation would be cancelled.  There would need to be some cover for chain re-orgs.  So, a broker could have their reputation restored by submitting the transaction again.

This assumes that the transactions can be verified digitally.  So, it still requires some way to convert fiat into a digital representation.
legendary
Activity: 1680
Merit: 1035
April 16, 2013, 04:26:19 PM
EDIT: Regarding further suggestions,
1) An exchange MUST be able to cancel trades.

If we are going to do a block chain, wherein buy and sell orders are cryptographically signed by the broker as being a valid order to buy or sell a certain amount at a certain price, miners would be paid a fee either for each tx, or a % of the tx value.  Whichever we chose doesn't matter.  Game this out if you are the miner.

Sorry, that was WAY too much to read, so, apologies, I just skimmed through it. Can you tell me why this system requires a blockchain and miners, as opposed to just a shared database anyone can add orders to? What are the miners trying to protect exactly?
hero member
Activity: 546
Merit: 500
April 16, 2013, 04:16:45 PM
This thread does not lack for ideas.. but some steps need to be taken to congeal them.

Nah broh, we're still, ahem, HASHING OUT the ins and outs of how this system needs to function and what the correct design parameters must be to meet the objectives.   



I had to highlight the "hashing out" part. Smiley That was good.
sr. member
Activity: 364
Merit: 250
April 16, 2013, 04:13:44 PM
1) Yes it should be possible to cancel a trade but with a time lag so you cant create fake orders that you never intend to fulfill.

Why? What is wrong with stating that you think the price should be X if you don't intend to pay for it? And what will stop people from going to someplace else that does allow one to freely cancel orders, if that place ends up attracting more customers? Free market. You have to compete on price and service, not START from figuring out how to make something less convenient and  more expensive.

Any system we come up with has to already beat what we got, which allow for fast trading (hahahahah, wait did i just say that).  The service in theory allows for fast trading.   All the brokers, could offer to match orders in house.  If orders are to hit the tx-blockchain if must offer something better than the old way.  I say--->more liquidity?  --> ridonculously cheaper fees? 0.05%?
sr. member
Activity: 364
Merit: 250
April 16, 2013, 04:09:20 PM
This thread does not lack for ideas.. but some steps need to be taken to congeal them.

Nah broh, we're still, ahem, HASHING OUT the ins and outs of how this system needs to function and what the correct design parameters must be to meet the objectives.   

I think we're almost there on the objectives:  we all want cheap, deeply liquid execution engine.  We want private firms to be reduced to the thin gruel of being undifferentiated low-margin glorified check cashing services--needed only untill most of the world abandons fiat at the point of singularity-style mass adoption of Bitcoin; Finally rendering their fiat bean counting biz to nothing but a temporarily needed transition service.  An interesting historical footnote of how a once mighty bumbling leviathan was pushed out of the way of screwing up adoption of the greatest social/economic innovation of the 21st century.  You can say it all started right here!

There remains debate about whether/how submitted trades can/should be canceled.  There is no consensus on how orders are matched (I say each block trades every one at the same price, which is determined by the weighted average of the quantity * price of matchable orders).

Some other dude is clueless and probably still talking about ripple tits.
sr. member
Activity: 364
Merit: 250
April 16, 2013, 04:01:09 PM
I wonder if MagicalTux is reading this thread with quivering lipps, worrying about how we're going to take his shit company off the map and reduce it to a  no barrier to entry check cashing service.  Nah...he's probably whipping the hamsters that power his trade engine to try to cut the lag down.
sr. member
Activity: 364
Merit: 250
April 16, 2013, 03:44:21 PM
EDIT: Regarding further suggestions,
1) An exchange MUST be able to cancel trades.

If we are going to do a block chain, wherein buy and sell orders are cryptographically signed by the broker as being a valid order to buy or sell a certain amount at a certain price, miners would be paid a fee either for each tx, or a % of the tx value.  Whichever we chose doesn't matter.  Game this out if you are the miner.  A broker submitted a cryptographically valid buy order to buy 100 btc at $50.  You can earn the fee on this valid tx by including it in your block solution if you win the hash race.  That broker than send  you a send message, hey ignore that valid order to buy 100 btc for $50,  i'm being a cheap fuck and would rather wiggle it down to 100 btc for $49.95.  Now you have a decision to make, ignore his cancel and stuff it in for  $50, or be nice and revise his bid lower.  Keep in mind that you do not know if any of the sellers you are relying on to make a match (and thus generate fee income that your completely depending)  might get pricy too and raise their offers, which means you will match up fewer share/orders to trade when you have a block discovery ---> less fee income for solving the block.  

Also, remember the miners are decentralized, so some might hear your revision and some wont.  there is no way you could confirm for the client that his old order is nix, and his new one is correctly advertised.  The broker is submitting the buy in his name, b/c there is no reason for any one to see the account origin of the buyer.  Wallstreet trading is anonymous.  you can submit and order to buy a stock every minute for a different amount and price, and no one knows its you who keeps buying.  Its just an anonymous order flow.  The broker then has to worry about both buy orders being executed, cuz remember, 1st order to buy for 50 is valid, and the 2nd order to buy at 49.95 is valid.  And why shouldn't a miner include all valid tx's?  His fee incentive is to include as many as possible, get it?  You need to rethink the block trade-hashing scheme.

Quote
Otherwise either everyone will be trading in the dark, just guessing at the price, or anyone who put in a bid of a price lower than the current one risks having their money locked up for ever.
Orders would be submitted with a block number in the signed message.  A protocol rule would be that a trade can only be executed in the block that the broker stated it could be.  So if miners are looking for block 250, the message to buy 100 btc for $50 would specify that its for block 250 only.  Once block 250 is transmitted and verified, the broker would see if it went thru.  If it didn't it can't go back in to block 251.  The broker would provide the client with the option to automatically resubmit, or resubmit with a higher bid, or wait for a new ticket from the client.

Quote
2) This P2P exchange MUST be able to handle high frequency trades. Otherwise, MtGox can easily put limits on trading and get rid of all HFT's, and as a result make this P2P exchange pretty pointless. Don't come up with a P2P that's even more limited than what's available, come up with something that can do what other centralized exchanges can't. Besides, despite what you might think, HFT bots actually help more than they hurt. They help narrow the price spread to a single point, so you don't have people selling for $120 and buying for $100, making the price jump all over the place like it has been when Gox got lagged.

I don't quite understand how MT Gox can put limits on trading.  In this world mt gox is not longer running an inhouse platform, b/c our blockchain is cheaper, and customers want execution.  They can always w/d their money and open a broker account with a competitor.

EDIT
PS I understand the value of the liquidity HFT short term churning can provide and i'm not intellectually against it.  I just don't think the current proposal of a P2P exchange with a trade-block PoW hash chain, will allow order cancellation, b/c you must ex-post factor convince miners to invalidate a perfectly valid tx that will earn them a larger fee if they include.   Its game theory bro.

Quote
So I still think the idea of focusing on a decentralized order book is a good one, with the follow-up of decentralized agents to deposit/withdraw money through.

You the brilliantly point out the goodness of 'separating church and state.'  We want every one to be able to submit orders to a single execution engine, because then all the liquidity is pooled in one place which benefits liquidity and price discovery.    That pooled execution engine is open source and has competing miners, no one can use it to "lock-in" customers by offering better flow (like gox does with 80%+ market share) in order to charge high commish rates and deal with shitty service, you either solve the block competitively fast or you don't eat.  The companies handling custody (brokers) may try to match orders in house, but the juicy liquidity will be on the p2p exchange so customers won't put up with shitty preferential order handling by brokers sitting on orders.  This is called 'best execution duty' and in an open market with free entry to be a broker market forces will dictate the orders pool up at the nexus of most liquidity and cheap tx fees.

As it think about this i think of all the additional details that need to be worked out.  I have an idea for how we can solve block header forks (when 2 miners produce a valid tx block at about the same time, and traders become unsure for what price and what amount the order will post for because the two competing hash chains have different execution parameters for the same order.  But as they say in airplane, "But that's not important right now."  When we reach bigger consensus on the other issues I can speak about some of the minutia of how we greatly reduce/eliminate reorgs.)

Edit:
I keep telling my self to BE the Satoshi when thinking this thru.  Satoshi didn't just figure out Bitcoin by throwing crypto together in a novel way, He could IMAGINE how it would work in practice and how the protocol rules would be shaped to prevent not just straight up attacks, but also failure do to perverse incentives that might have been introduced by his structure.  He nailed.  So we too must nail it!  

I love this discussion and am deeply engaged in discussing with you how I see it shaping up and listening to your input and ideas and trying to add to your vision.
legendary
Activity: 1680
Merit: 1035
April 16, 2013, 01:30:23 PM
1) Yes it should be possible to cancel a trade but with a time lag so you cant create fake orders that you never intend to fulfill.

Why? What is wrong with stating that you think the price should be X if you don't intend to pay for it? And what will stop people from going to someplace else that does allow one to freely cancel orders, if that place ends up attracting more customers? Free market. You have to compete on price and service, not START from figuring out how to make something less convenient and  more expensive.
hero member
Activity: 546
Merit: 500
April 16, 2013, 11:33:09 AM
When I see humans mentioned as "agents", I think, "They could be replaced with a computer".

The mining network has 700+ petaflops of computing power and it could replace human agents.


More ideas:


I also thought that since Firefox is free and open source, that a plugin could be created. Keeping it all free will help things spread.


This thread does not lack for ideas.. but some steps need to be taken to congeal them.


Machines are more trustworthy than humans... Shocked
sr. member
Activity: 434
Merit: 250
In Hashrate We Trust!
April 16, 2013, 10:49:35 AM
EDIT: Regarding further suggestions,
1) An exchange MUST be able to cancel trades. Otherwise either everyone will be trading in the dark, just guessing at the price, or anyone who put in a bid of a price lower than the current one risks having their money locked up for ever
2) This P2P exchange MUST be able to handle high frequency trades. Otherwise, MtGox can easily put limits on trading and get rid of all HFT's, and as a result make this P2P exchange pretty pointless. Don't come up with a P2P that's even more limited than what's available, come up with something that can do what other centralized exchanges can't. Besides, despite what you might think, HFT bots actually help more than they hurt. They help narrow the price spread to a single point, so you don't have people selling for $120 and buying for $100, making the price jump all over the place like it has been when Gox got lagged.

So I still think the idea of focusing on a decentralized order book is a good one, with the follow-up of decentralized agents to deposit/withdraw money through.

1) Yes it should be possible to cancel a trade but with a time lag so you cant create fake orders that you never intend to fulfill.
Canceling orders should have a fee of 1/10 of putting orders, so a quitter would need to pay 1,1x in total to the miners.

2) I dont think nanosecond trading is beneficial to regular traders and users. 1-second auctions is good enough for human traders and market makers but hurts HFT and fake orders.
legendary
Activity: 1680
Merit: 1035
April 16, 2013, 10:24:52 AM
Ok I have some ideas, so I'd like to contribute. I haven't read the entire thread, so perhaps of what I have to say is redundant.
... ideas...



Honestly, my first thought regarding the agents was that this sounds like trying to re-establish the Knights Templar, and that it could end in the same tragic way that the Catholic Church ended them all in one night. Intriguing nonetheless.


EDIT: Regarding further suggestions,
1) An exchange MUST be able to cancel trades. Otherwise either everyone will be trading in the dark, just guessing at the price, or anyone who put in a bid of a price lower than the current one risks having their money locked up for ever
2) This P2P exchange MUST be able to handle high frequency trades. Otherwise, MtGox can easily put limits on trading and get rid of all HFT's, and as a result make this P2P exchange pretty pointless. Don't come up with a P2P that's even more limited than what's available, come up with something that can do what other centralized exchanges can't. Besides, despite what you might think, HFT bots actually help more than they hurt. They help narrow the price spread to a single point, so you don't have people selling for $120 and buying for $100, making the price jump all over the place like it has been when Gox got lagged.

So I still think the idea of focusing on a decentralized order book is a good one, with the follow-up of decentralized agents to deposit/withdraw money through.
sr. member
Activity: 364
Merit: 250
April 16, 2013, 09:50:32 AM

That sounds great. Offices in the world that accept bitcoin in trades for fiat ( or whatever ). The 7-Eleven franchise should be included, in my opinion because they already have a system in place for the web:


Exactly THIS.  I expect that major businesses would set up their own broker/custodial server.  Imagine sending 10 BTC to the BitCoin Store.  Then when you want to buy a Wiener from Dave's Famous Wiener stand, Dave just whips it out, you scan it.  He may have an account at say Mt. Gox....but Mt. Gox trusts Bitcoin Store, so Bitcoin Store sends a signed message to Mt Gox servers telling them that customer XXX has just paid 0.1 BTC to Dave's Famous Wiener.  Dave's Smartphone alert pops up confirming nearly instantly the payment when Gox sends him a push notification.

Maybe far off into the future, you know when Walmart is accepting Bitcoin and decides "Why the fuck should we pay huge fees to MT. Gox for shitty laggy trade service."   They will set up their own P2P exchange server, every one who's every one will immediately endorse Walmart's pubkey, cause, hey you wanna do biz with all those future customers and Walmart is strong and reliable.  So then i walk into Walmart and hand them $1000 at the cash register and they instantly credit my account.  I can then buy btc, or even just leave it as fiat and spent it around to people who haven't jumped on btc yet, but are cool with a smartphone app that sends them money with a really low fee that they can pick p/u at walmart any time.

Of course this p2p network could be used to smash the visa/mastercards of the world and their usurious fees too, but this method would lend itself to each conversion to btc, which will displace fiat as soon as people realize its superior store of value properties.
hero member
Activity: 546
Merit: 500
April 16, 2013, 09:39:06 AM

Another way to do it would be to be even more careful with the agents, and perhaps strike deal with actual companies, or make divisions all over the world like Western Union, while the p2p exchange still provides the platform. Now a govt. could shut down the agents easily of such a system, but they would have a hard time shutting down the p2p exchange itself.


That sounds great. Offices in the world that accept bitcoin in trades for fiat ( or whatever ). The 7-Eleven franchise should be included, in my opinion because they already have a system in place for the web:


http://www.kioskmarketplace.com/article/170137/7-Eleven-adds-bill-payment-to-Vcom-kiosks

http://www.7-eleven.com/Financial/Payment-Services/Default.aspx

http://www.7-eleven.com/Financial/Payment-Services/PayNearMe/Default.aspx
sr. member
Activity: 364
Merit: 250
April 16, 2013, 08:36:35 AM
That is very interesting - I especially like the idea of poling all the same prices together to cut down on actual trades, that would make a big difference!

Under my system all the buys or sellers of usd/btc coming from one exchange are interpreted by the miner/exchanges as one order (if the price is all the same).

Remember, miners will not let you cancel tx's: to do so would be for the exchange to forgo a tx fee, bc remember an order submitted to miners is a sign message proving the ecxhange said it was okay to buy or sell a certain amount for a certain price on its account.  So why listen to an exchange who wants a 'backsy"?  You as the miner can stick the order in and if more stock executes you earn a bigger coinbase (tx fee).  

So I imagine that there will be an overlap in the price buyers bid and sellers offer at the time of the hash discovery,  a standard order matching algorithm is run.  All overlapping order get the SAME price (say weighted average price of overlapping bid/offers.  There is one price per block kids.  

EG

Buys                            Sells
A:200 for $11         C:100 @ $10
B:200 for  $10        D:100 @ $9

Trade 200 coins for $10.   Buyer A gets 100, buyer B gets 100 (Sellers  C, D execute all).   Buyer's A and B will have to submit new signed messages to buy the remaining 100 btc they each didn't get.

Now it turns out that there were 2 buyers at "A" exchange willing to pay up to $11/coin.  but this doesn't matter, because even if exchange "A" submitted two successive messages to buy 100 for $11, the miners combined the like-price orders within that exchange as if it was one order for the purpose of publishing a lighter block.
sr. member
Activity: 364
Merit: 250
April 16, 2013, 08:27:24 AM


Basically, a "mint" would create a coloured coin by sending you a coin from a particular address.  Initial marking of colour requires the mint to formally give info on which tx outputs are coloured as "roots".

The software tracks the coins as they go through the network.  They have rules for how to colour coins before and after a transaction.

For example, you might have

Inputs
0: 5 satoshi (mint1 colour)
1: 15 satoshi (mint1 colour)
2: 50 satoshi (mint2 colour)
3: 0.01 BTC (uncoloured - this is for the tx fee)

Outputs
0: 10 satoshi
2: 10 satoshi
1: 50 satoshi

If this is included in the block chain, the colour tracker will then mark the outputs as coloured to give

Output
0: 10 satoshi (mint1 colour)
1: 10 satoshi (mint1 colour)
2: 50 satoshi (mint2 colour)

If you want your coloured coin value to be preserved you need to make sure you have the right amounts for the coloured coins.

In this case, the first 2 inputs are the same colour and add up to 20.  Similar the first two outputs add to 20.  Your software would remember that those outputs are also coloured.

Likewise the 50 satoshi of mint2's colour are matched values.

These guys have defined a spec for this.

Quote
But how do we trade a basket of chicken eggs at the farmers market against a barrel of gasoline with colored coins / tokens ? Is it doable?

The mints act convert coloured coins to/from their backing.  A mint might send you 100 satoshi coloured by them in exchange for $1.  Likewise, they would do the reverse transaction.  There would be a fee in both directions.

This also works with other things like barrels of oil.  The farmer would sell the eggs for BTC and then buy the oil.

All kinds of problems here, specifically AML KYC.  The mint can't control who receives the coins, and will have coins presented that may have been issued against a reverse deposit etc.  

Forget the colored coin, you're shoehorning something into the block chain that doesn't need to be there.  The blockchain is slow 1 hour def-confirms.  NO NO NO.

I open account at gox with $1000.  You open account at bitinstant with 10 BTC.  In this brave new future the gox and instant are both running our open source server version.   we as clients are running the client version (which might include a background miner),

Gox inputs the $1000 deposit into his system and credits my account.  i query my account balance by loading the trading client and inputting my user/pass, results supplied by gox.  When i want to buy coins i submit an order to Gox to buy 10 coins at $100.  Gox sees the $1000 in my account, and then tx a signed message to the miner/exchange network that GOX wants to buy  10 coins @ $100 to be matched in block 2500 only (fill or kill).  There will be no HFT, cause miners will not let you cancel the contract.  Miners/exchanges are paid a fee, denominated in BTC (more on that later).

You see an order from gox to buy, and you decide to hurry up and submit your sell order before the next hash is found and the order book resets (who knows if i come back with a buy order next block or if some one else don't sell me the coins ahead of you, so you want to jump in now with a sell order).  

Now Bitinstant sends a signed message to sell 10 btc for $100 to all the miners.  The miners have copies of the Distributed Exchange Web of Trust Table.  Miners see that Bitinstant has endorsed MT Gox's Pubkey, and vice-versa.  They now know that they can match the orders.  They also keep track of the net flow of funds between these two companies, bc in Distributed WoT Table Bitinstant puts a limit of $10,000 as the max amount of money that Gox can wind up owing them before Gox has to "settle up."  This limit will stop miners from continuing to approve tx's after an exchange has failed, or been found to be fraudulent. A hash of this table is included in the headers of each trade block.

The miner/exchange match the orders and keep hashing till he finds a POW solution, then publish the blocks to the other miners.  The other miners make note that Gox now owes Bininstant $1000 ($9000 credit left) and Bitinstant now owes 10 btc to gox.

When gox sends fiat by international wire for $1000, gox will broadcast a signed message to the miner network indicating such,  upon acknowledgement of the money arriving,  Bitinstant will sign the tx and notify miners of the exchange.  Miners will include this in the next trade block as an "off-exchange block-trade" ( or "third market") trade between the two, and will receive a small fee for its inclusion.  Upon inclusion miners will then up Gox's credit limit with Bitinstant back to $10,000

If for any reason a broker decides he can't trust another counterparty (fraud financial failure, etc) he can sign a message to miners revoking said Exchange Web of Trust Table key endorsement (includes fee, goes into exchange block chain).

Miners, will be paid a tx fee, owed to them by each exchange who submits a tx that gets executed denominated in btc.  Our exchange software can charge a flat fee to include tx's.  And we can write this into the protocol.  A fee like 0.25% is nice and low enough to encourage people to use our exchange, but high enough to ensure enough fee revenue to keep the PoW hash strong.  So in this case the miner who scores the block with our 10btc/$1000 trade will publish his exchange account number as the coinbase address (say miner happens to be with Bitinstant), and Bitinstant will credit 0.05 to the miners exchange account (2 x 0.25% x 10 btc). Gox will owe $1000 for the buy,  and Bitinstand will owe gox 9.9725 BTC  (10 BTC - 0.025 BTC).   (Basically Bitinstant being the miner's preferred broker, lays out 0.25% fee charged to both sides of the trade).   Your account at Bitinstant is now credited for $997.50, and my account at Gox is credited for 9.975 BTC.

Payment network addresses: like the one the miner included in the solved block to redeem the block fees (coinbase) will be based on the broker code (First 5 digits of hash of broker pubkey) followed by the internal account number assigned to the miner by Bitinstant.  That address according to Bitinstant's records now has 0.05 BTC.

Did i miss anything?

Oh yeah, do you see what i did there with the miner being able to request an account number from Bitinstant and then include it in the solved block as the coinbase?

I now have like 9.975 BTC in my account at Gox.   I got to Dave Famous Wiener's.  Before Dave will let me put his Wiener in my mouth I have to pay and he doesn't want to wait for an hour for 6 BTC confirms.  He shows me a qr code on his smart phone that includes his account number at Bitinstant.  Encoded in the QR if the address's first 5 digits (Bitinstants broker code), the rest is Dave's assigned account number, the 0.1 BTC i owe him for his Wiener, along with a customer code of XXX.  

I scan the bar code and approve the tx by sending it to gox.  Gox sees the broker code and knows to contact Bitinstant's server, and send a signed message "i owe your exchange 0.1 BTC, and you should put it in some account number's account and the customer code is XXX".  

Dave's invoice of 0.1 BTC for customer XXX on his phone comes back instantly as paid (gasp, an instant off block chain payment has occurred!).  

Bitinstant submits a "Gox now owes me 0.1 BTC, reduce Gox's credit balance by 0.1 BTC due to an off-chain tx" signed message to the miners/exchanges with a small fee for inclusion into the next trade-block.  Or then just keep a side-book and wait to settle debts via the BTC block chain when the BTC owed gets large enough.

So not only can we buy and sell btc for currency, but we can use these account relationships with custody/brokers to do off blockchain, low fee, instant confirmation transactions as well! I SEE WHAT YOU DID THERE!

Now with a colored coin, how are earth do we do and instant payment or a fractional amount of the colored coin?  Besides colored coins spam the blockchain with messages the block chain does not need to see.  Only you and your custodian need to know when fiat is sent back and forth, and micropayments can be instantly done off block chain.

So we have the infrastructure for trading btc & currency and instant off-chain micro payment, which only involves the buyer's and seller's brokers, not announcing your bitdust tx to the whole world and making them each your bitdust unspent outputs.
 
Pages:
Jump to: