Bitcoin Forum
December 15, 2024, 11:50:37 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Decentralized order execution of colored coin securities  (Read 1251 times)
jothan (OP)
Full Member
***
Offline Offline

Activity: 184
Merit: 100


Feel the coffee, be the coffee.


View Profile
October 24, 2012, 03:41:00 AM
 #1

Colored coins have been talked a lot recently, I apologize in advance if a proposal like this has already been made.

I suggest a way to execute orders without a trusted third party using colored coins. Here is how it would work.


  • Buyers and sellers of a security would publish the trades they are willing to make via a distributed medium (such as an overlay network, IRC, whatever).
  • Once an order match has been detected by either peer, they establish communication.
  • The security buyer (offering regular bitcoins) chooses a list of outputs and a change address for the coins that will be sent to the seller. The buyer also chooses a receiving address for receiving the colored coins. These parameters are communicated to the seller.
  • Using the parameters provided by the buyer, the seller builds a transaction transferring the colored coins to the buyer and transferring the regular coins to himself. The seller signs the colored coin inputs and leaves the regular bitcoin inputs from the buyer unsigned.
  • The seller transmit the partial transaction to the buyer.
  • The buyer validates that the trade is conform to the agreed trade and signs the regular bitcoins in the transaction over to the seller. The transaction is now fully signed.
  • The buyer publishes the transaction on the bitcoin network.

With a system like this, trades would be executed on a first-to-propagate basis and two parties competing for the same securities will look like a double spend.

What do you guys think ?

Bitcoin: the only currency you can store directly into your brain.

What this planet needs is a good 0.0005 BTC US nickel.
cunicula
Legendary
*
Offline Offline

Activity: 1050
Merit: 1003


View Profile
October 24, 2012, 03:54:54 AM
 #2

Both parties need to commit to trades at the same time. Otherwise,

1) seller offers bitcoin for coloredUSD
2) buyer accepts offer
3) seller signs his side of txn (seller can no longer back out)
4) buyer watches bitcoin price
        If bitcoin price goes up, sign txn -> profit
        If bitcoin price goes down, do not sign txn -> find new seller offering more better exchange rate.

You need to force people to move simultaneously. Otherwise the party who moves first will always take a loss. (i.e. it is like the seller is giving away a free option)


jothan (OP)
Full Member
***
Offline Offline

Activity: 184
Merit: 100


Feel the coffee, be the coffee.


View Profile
October 24, 2012, 04:25:25 AM
 #3

Both parties need to commit to trades at the same time. Otherwise,

1) seller offers bitcoin for coloredUSD
2) buyer accepts offer
3) seller signs his side of txn (seller can no longer back out)
4) buyer watches bitcoin price
        If bitcoin price goes up, sign txn -> profit
        If bitcoin price goes down, do not sign txn -> find new seller offering more better exchange rate.

You need to force people to move simultaneously. Otherwise the party who moves first will always take a loss. (i.e. it is like the seller is giving away a free option)

Ouch reality hits hard.

It would only be an "option" as long as there is no other party that could swoop in and actually execute the trade.

I'll go back to messing with my RepRap printer and solving the halting problem. Thanks for the reality check.  Grin

Bitcoin: the only currency you can store directly into your brain.

What this planet needs is a good 0.0005 BTC US nickel.
jothan (OP)
Full Member
***
Offline Offline

Activity: 184
Merit: 100


Feel the coffee, be the coffee.


View Profile
October 24, 2012, 04:27:33 AM
 #4

The first mover could always invalidate the unpublished transaction by sending the coins to himself ? In the worst case, both parties would attempt a double-spend.

Bitcoin: the only currency you can store directly into your brain.

What this planet needs is a good 0.0005 BTC US nickel.
cunicula
Legendary
*
Offline Offline

Activity: 1050
Merit: 1003


View Profile
October 24, 2012, 08:42:53 AM
 #5

The first mover could always invalidate the unpublished transaction by sending the coins to himself ? In the worst case, both parties would attempt a double-spend.
Suppose you can send coins to yourself as a free txn.

Bots will constantly place offers, wait for buyers to accept them. When advantageous, they will then send the coins to themselves invalidating the offers. First and second movers are on a level playing field. However, first movers broadcast a large volume of useless txns. This would most likely be a big nuisance for the network. So you could move to a situation where txns require a fee or they get ignored completely.

Suppose you cannot send coins to yourself as a free txn. You need to pay a fee.

Bots will constantly place offers, wait for buyers to accept them. When advantageous, they will then send the coins to themselves invalidating the offers. The threshold will be higher because the advantage will have to be greater than the txn fee. Since second movers back out through inaction, they will be able to back out for free. Again, it sucks to be a first mover and you want to move second.

Backing out needs to have a strictly positive cost. The cost needs to be the same on both sides.





killerstorm
Legendary
*
Offline Offline

Activity: 1022
Merit: 1033



View Profile
October 24, 2012, 10:28:42 AM
 #6

Yes, this is more-or-less how we are going to do it. There is probably some discussion in "Atomic coin swapping" thread.

The fact that one of parties can cancel order isn't a huge problem.  It can be alleviated with a reputation system, for example. Or a spam-filtering moderator.

Chromia: a better dapp platform
cunicula
Legendary
*
Offline Offline

Activity: 1050
Merit: 1003


View Profile
October 24, 2012, 10:38:14 AM
 #7

Yes, this is more-or-less how we are going to do it. There is probably some discussion in "Atomic coin swapping" thread.

The fact that one of parties can cancel order isn't a huge problem.  It can be alleviated with a reputation system, for example. Or a spam-filtering moderator.
I explain how I think anonymous trading might be enabled here:
https://bitcointalk.org/index.php?topic=120175.msg1294255#msg1294255


Isn't anonymous trading desirable? Why give up on it?
killerstorm
Legendary
*
Offline Offline

Activity: 1022
Merit: 1033



View Profile
October 24, 2012, 05:21:52 PM
 #8

I explain how I think anonymous trading might be enabled here:
https://bitcointalk.org/index.php?topic=120175.msg1294255#msg1294255

This relies on features not yet present in protocol, but it is possible to make something similar with existing features.

Isn't anonymous trading desirable? Why give up on it?

Nobody is giving up on anything, there are many options.

Bitcoin isn't 100% anonymous either, so reputation system based on pseudonyms won't be significantly worse.

Chromia: a better dapp platform
cunicula
Legendary
*
Offline Offline

Activity: 1050
Merit: 1003


View Profile
October 25, 2012, 02:02:03 AM
 #9


Bitcoin isn't 100% anonymous either, so reputation system based on pseudonyms won't be significantly worse.
If you are not a frequent trader, you will be better of paying a broker to execute your trade rather than doing it yourself.
You have to trust the broker.

That is significantly worse.
killerstorm
Legendary
*
Offline Offline

Activity: 1022
Merit: 1033



View Profile
October 25, 2012, 10:46:48 AM
 #10

If you are not a frequent trader, you will be better of paying a broker to execute your trade rather than doing it yourself.

No reputation is ever required for a party which agrees to sign first because there is no way he can hurt anyone.

On the other hand, the only risk for such party is that trade won't be finalized, which simply means longer execution time.

If you simply buy something to own it doesn't matter much how much you wait, so it would be perfectly fine to fire an order and wait until somebody actually finalizes trade.

Execution time really matters only to daytraders/HFT bots, and they can use reputation system among themselves.

Quote
You have to trust the broker.

Not really, broker won't ever touch your coins, he can only help to speed up the trade by either finding a match or providing his reputation, for a fee.

You will only sign something only when you see that you're getting something in return. So it is fundamentally secure. But how exactly trade is facilitated doesn't matter much.

Chromia: a better dapp platform
cunicula
Legendary
*
Offline Offline

Activity: 1050
Merit: 1003


View Profile
October 25, 2012, 12:14:27 PM
Last edit: October 25, 2012, 12:24:36 PM by cunicula
 #11

Okay, I'm with you now. This system is still inefficient because there is a middleman extracting reputational rents, but it will be a big improvement.
I don't think the middleman can be easily removed unless bitcoin is altered to accomodate this.

The system looks much like GLBSE except that they don't hold any user funds or assets.

The "GLBSE" website lists assets and the bid-ask data for each asset.

User clicks a link to buy or sell an asset, specifies volume, price comes from bid-ask data. Price would incorporate brokerage fees.
There is no need for user accounts this is an anonymous txn.

"GLBSE" sends a 2-of-2 multisig txn to user for 1st signature. User signs and returns to "GLBSE". They should do this immediately.
If they do it immediately, then "GLBSE" signs and broadcasts txn. "GLBSE" could cheat user, but they want to maintain a good reputation, so they won't do this.

Most likely "GLBSE" holds an inventory of assets and acts as a market maker.

One broker is most efficient, but there is free entry so they will face competition if they jack up brokerage fees too high, cheat, or provide bad service.

Bots can trade with "GLBSE" if they like, but they won't be able to trade with each other directly.

killerstorm
Legendary
*
Offline Offline

Activity: 1022
Merit: 1033



View Profile
October 25, 2012, 12:51:05 PM
 #12

Okay, I'm with you now. This system is still inefficient because there is a middleman extracting reputational rents, but it will be a big improvement.
I don't think the middleman can be easily removed unless bitcoin is altered to accomodate this.

Middleman is not required, he can be used to speed up trading. We don't know yet whether speed will be a problem for typical user.

Quote
The system looks much like GLBSE except that they don't hold any user funds or assets.

The "GLBSE" website lists assets and the bid-ask data for each asset.

Yes, this is probably the easiest way to implement it, but it is not the only way.

Chromia: a better dapp platform
cunicula
Legendary
*
Offline Offline

Activity: 1050
Merit: 1003


View Profile
October 25, 2012, 02:01:18 PM
 #13

Yes, this is probably the easiest way to implement it, but it is not the only way.


I think the strongest criticism of this is that "GLBSE" is a legal target. If you had some decentralized P2P brokering, then the gov't would have to fire buckshot to hit everyone.
They couldn't just go after one person and do significant (though temporary) damage.

That said, I don't see any reason not to start with "GLBSE" and then figure out P2P brokering later. The gov't will take a dim view of either. P2P brokering will be more complex and take more time.

I suspect that in terms of the innovations' usefulness:

P2P Brokering > "GLBSE" with colored coins >>>>>>> GLBSE

 
Pages: [1]
  Print  
 
Jump to:  

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