Bitcoin Forum

Economy => Securities => Topic started by: mgio on October 09, 2013, 05:09:00 PM



Title: Idea for a decentralized security exchange
Post by: mgio on October 09, 2013, 05:09:00 PM
I was thinking about this some yesterday and I think the simplest way to have a distributed exchange without modifying the bitcoin protocol at all would be something similar to the following (see below). It would require a peer-to-peer network built to facilitate finding buyers and sellers for trading and distributing information regarding the securities but the transactions themselves would be conducted using the blockchain. This basic idea could be extended to facilitate bonds with buyback in addition to stocks although I haven't though through the details yet. The concept is similar to the idea of colored coins.

I'm willing to start building this, but I don't have the time to do it all alone, so if there are any talented programmers out there, please let me know if you are interested.

Here are the details:


   * Each security would be represented by a single bitcoin address. The issuer of the security would hold the private key for this bitcoin address. Information regarding the security, including any news, announcements, or updates to the security would be signed by the issuer using the security's private key thus ensuring that the information is truly coming from the issuer.
   * Shares in the security would be represented by the bitcoins belonging to the bitcoin address. Each satoshi would represent a single share. The security must be funded by a single transaction that represents the number of shares for that security. The total number of shares can never be increased or decreased. Any additional deposits made to the bitcoin address representing the security will be ignored by the Distributed Security Exchange (DSE) protocol. If the issuer wishes to increase the number of shares available he must create a new security.
   * Shares are traded to investors by transacting bitcoins from this address to a investors bitcoin address. For simplicity sake, each investor should have a separate bitcoin address for each security he invests in. In that way, the value of the coins in his address with represent, in satoshis, the number of shares he holds for a given security. There is nothing to stop him or someone else from depositing more coins into an investors address but the DSE protocol will not count coins that come from an address that can not be traced back to the original security issuer's bitcoin address.
   * Transactions of shares of a security would be performed using contracts. In the simplest case, the contract would involve the security seller transferring a number of satoshis equal to the number of shares he is selling to the buyer and the buyer transferring a the cost in bitcoin back to the seller. The contract would only be valid if both transactions have been signed appropriately by both the buyer and seller. A description of how contracts work in the bitcoin protocol is outside the scope of this document. In this way, both the buyer and seller can be sure that neither one can be cheated.
   * The current price of a security can be determine by using a standalone app (or web service) that scans the blockchain and looks at the most recent price a security was traded for. It can also use this method to get average prices, daily highs and lows, and volumes in addition to other useful statistics on a security.
   * Finding a buyer or seller is a little more difficulty. It is necessary to a use peer-to-peer network for buyers and sellers to connect with each other. A seller or buyer will broadcast how many shares they are looking to buy or sell and what price they are willing to buy or sell at. When a match is found, the trading software can automatically perform the transaction as described above and both parties will be notified of the transactions success. Transactions can occur outside of this peer-to-peer network just as easily so buyers and sellers can be located using other methods such as IRC, forums, and word of mouth, if desired.


Title: Re: Idea for a decentralized security exchange
Post by: Come-from-Beyond on October 09, 2013, 05:13:03 PM
Each satoshi would represent a single share.

Won't work. Try to send 1 satoshi to any address.


Title: Re: Idea for a decentralized security exchange
Post by: LiteBit on October 09, 2013, 05:14:01 PM
Shares would have to be larger than a satoshi.

Quote
The “anti-dust” patch, as it has become known, imposed a minimum size on any output in a bitcoin transaction. An output is a unit in a bitcoin transaction that defines the new owner, and the amount of bitcoins that he or she receives. In the new setup, any amount fewer than 5,430 satoshis (0.00005430 bitcoins) is disregarded. The developers made this patch to stop people from stuffing the blockchain with lots of microscopic transactions.


Title: Re: Idea for a decentralized security exchange
Post by: mgio on October 09, 2013, 05:49:51 PM
Each satoshi would represent a single share.

Won't work. Try to send 1 satoshi to any address.

Good point. But there is an easy fix. Shares will have to be larger than a Satoshi. Not a huge problem.


Title: Re: Idea for a decentralized security exchange
Post by: Sukrim on October 09, 2013, 06:39:39 PM
You could simply use Ripple for this... Bitcoin is not really made to act as a marketplace from within, so you need an external network for trades anyways.


Title: Re: Idea for a decentralized security exchange
Post by: canuck on October 09, 2013, 07:08:35 PM
**Post deleted by Canuck**

Dont try to think of neat ideas with a nasty head cold.


Title: Re: Idea for a decentralized security exchange
Post by: glendall on October 09, 2013, 07:17:44 PM
Hey guys.. just wanted to let you know that there are two initiatives that I know of with similar goals under way.

open transactions http://opentransactions.org/wiki/index.php?title=Main_Page

& especially

bitcoinx   http://www.bitcoinx.org/


I'm sure they could use your help or at least promotion if you want to see them succeed (like myself, I think a decentralized security exchange is the way to go forward and avoid the entities which all ready have a monopoly control over most of the financial system.)


Title: Re: Idea for a decentralized security exchange
Post by: talnted on October 09, 2013, 07:20:22 PM
colored bitcoins

bitcoinx   http://www.bitcoinx.org/



Title: Re: Idea for a decentralized security exchange
Post by: Luckybit on October 09, 2013, 11:46:08 PM
I was thinking about this some yesterday and I think the simplest way to have a distributed exchange without modifying the bitcoin protocol at all would be something similar to the following (see below). It would require a peer-to-peer network built to facilitate finding buyers and sellers for trading and distributing information regarding the securities but the transactions themselves would be conducted using the blockchain. This basic idea could be extended to facilitate bonds with buyback in addition to stocks although I haven't though through the details yet. The concept is similar to the idea of colored coins.

I'm willing to start building this, but I don't have the time to do it all alone, so if there are any talented programmers out there, please let me know if you are interested.

Here are the details:


   * Each security would be represented by a single bitcoin address. The issuer of the security would hold the private key for this bitcoin address. Information regarding the security, including any news, announcements, or updates to the security would be signed by the issuer using the security's private key thus ensuring that the information is truly coming from the issuer.
   * Shares in the security would be represented by the bitcoins belonging to the bitcoin address. Each satoshi would represent a single share. The security must be funded by a single transaction that represents the number of shares for that security. The total number of shares can never be increased or decreased. Any additional deposits made to the bitcoin address representing the security will be ignored by the Distributed Security Exchange (DSE) protocol. If the issuer wishes to increase the number of shares available he must create a new security.
   * Shares are traded to investors by transacting bitcoins from this address to a investors bitcoin address. For simplicity sake, each investor should have a separate bitcoin address for each security he invests in. In that way, the value of the coins in his address with represent, in satoshis, the number of shares he holds for a given security. There is nothing to stop him or someone else from depositing more coins into an investors address but the DSE protocol will not count coins that come from an address that can not be traced back to the original security issuer's bitcoin address.
   * Transactions of shares of a security would be performed using contracts. In the simplest case, the contract would involve the security seller transferring a number of satoshis equal to the number of shares he is selling to the buyer and the buyer transferring a the cost in bitcoin back to the seller. The contract would only be valid if both transactions have been signed appropriately by both the buyer and seller. A description of how contracts work in the bitcoin protocol is outside the scope of this document. In this way, both the buyer and seller can be sure that neither one can be cheated.
   * The current price of a security can be determine by using a standalone app (or web service) that scans the blockchain and looks at the most recent price a security was traded for. It can also use this method to get average prices, daily highs and lows, and volumes in addition to other useful statistics on a security.
   * Finding a buyer or seller is a little more difficulty. It is necessary to a use peer-to-peer network for buyers and sellers to connect with each other. A seller or buyer will broadcast how many shares they are looking to buy or sell and what price they are willing to buy or sell at. When a match is found, the trading software can automatically perform the transaction as described above and both parties will be notified of the transactions success. Transactions can occur outside of this peer-to-peer network just as easily so buyers and sellers can be located using other methods such as IRC, forums, and word of mouth, if desired.



Sounds a lot like mastercoin. Why not just develop mastercoin?
http://www.mastercoin.org/
https://bitcointalk.org/index.php?topic=265488.0
You could simply use Ripple for this... Bitcoin is not really made to act as a marketplace from within, so you need an external network for trades anyways.

No you don't. Bitcoin had scripting capabilities built in from the start. It was always meant to do this.




Title: Re: Idea for a decentralized security exchange
Post by: glendall on October 09, 2013, 11:48:44 PM
What's Mastercoin?  Excuse my ignorance... with the over 100 scam coins out it's easy to lose track of every new coin.


Title: Re: Idea for a decentralized security exchange
Post by: mgio on October 10, 2013, 06:57:46 AM
I've read about many of the other ideas posted here and many of them are similar.

Many of them have a much larger scope than what I am proposing here and some involve either a new alt coin to be created (master coin) or require changes or additions to the bitcoin protocol.

What I'm proposing would be very simple and require no changes to bitcoin at all. I'm looking at the simples way to get a peer-to-peer distributed security exchange up and running as quickly as possible.

There are a lot of great ideas out there (colored coins, zero coin, etc.) but I've yet to actually see a working product. In the meantime I'm going to read about some more up about the other projects talked about in thi s thread.


Title: Re: Idea for a decentralized security exchange
Post by: Luckybit on October 10, 2013, 07:58:30 AM
What's Mastercoin?  Excuse my ignorance... with the over 100 scam coins out it's easy to lose track of every new coin.

Mastercoin is not an altcoin. It's a layer built on top of the Bitcoin protocol. http://www.mastercoin.org

I think Mastercoin has the most potential. Colored coin doesn't have the same kind of momentum because Mastercoin has thousands of Bitcoins to fund development and has already been crowdfunded. I suggest you all just go to the Mastercoin thread and work on that, the bounties are already set up. https://bitcointalk.org/index.php?topic=292628.0

https://bitcointalk.org/index.php?topic=265488.0


Title: Re: Idea for a decentralized security exchange
Post by: User705 on October 10, 2013, 08:28:01 AM
What about fees for transactions?


Title: Re: Idea for a decentralized security exchange
Post by: 🏰 TradeFortress 🏰 on October 10, 2013, 09:02:44 AM
Still works. Some miners still accept transactions less than 5430 satoshis. Any mining company that uses colored coins will happily accept those transactions too.


Title: Re: Idea for a decentralized security exchange
Post by: 18RATTT on October 10, 2013, 10:54:37 AM
Sounds a lot like mastercoin. Why not just develop mastercoin?
http://www.mastercoin.org/
https://bitcointalk.org/index.php?topic=265488.0
You could simply use Ripple for this... Bitcoin is not really made to act as a marketplace from within, so you need an external network for trades anyways.

No you don't. Bitcoin had scripting capabilities built in from the start. It was always meant to do this.

very disappointing when i go to mastercoin.org
the 52 seconds introductory video does not explain what Mastercoin is, its just showing a logo splash screen, wth?


Title: Re: Idea for a decentralized security exchange
Post by: Meni Rosenfeld on October 10, 2013, 11:16:44 AM
Colored coins do exactly what you want - they don't need a new blockchain or a change to the Bitcoin protocol, they allow representing arbitrary assets and contracts with atomic trades, and already have working (though experimental) implementations for a color-aware wallet and p2p trade.

bitcoinx.org is outdated, soon http://coloredcoins.org/ will be up to provide information. In the meantime here is a promotional video: http://www.youtube.com/watch?v=fmFjmvwPGKU

I see people have mentioned Mastercoin, it's much more ambitious but is also technically inferior, and more centralized (Mastercoins were issued with a time scale factor of 1 month).


Title: Re: Idea for a decentralized security exchange
Post by: jgarzik on October 10, 2013, 11:31:39 AM

RE OP:  designs for decentralized exchanges already exist.

Mike Hearn, years ago, posted this design:

          https://en.bitcoin.it/wiki/Distributed_markets

I implemented that design in pybond, which got renamed to smartcoin:

          https://github.com/jgarzik/smartcoin

However, some smart cookies came up with colored coins as an alternate transit method:

          https://bitcointalk.org/index.php?topic=106449.msg1203918#msg1203918

People should research existing material; this subject has been around for years before the Silk Road bust ;p



Title: Re: Idea for a decentralized security exchange
Post by: Luckybit on October 10, 2013, 01:03:04 PM
Colored coins do exactly what you want - they don't need a new blockchain or a change to the Bitcoin protocol, they allow representing arbitrary assets and contracts with atomic trades, and already have working (though experimental) implementations for a color-aware wallet and p2p trade.

bitcoinx.org is outdated, soon http://coloredcoins.org/ will be up to provide information. In the meantime here is a promotional video: http://www.youtube.com/watch?v=fmFjmvwPGKU

I see people have mentioned Mastercoin, it's much more ambitious but is also technically inferior, and more centralized (Mastercoins were issued with a time scale factor of 1 month).

It's also crowdfunded, which means Mastercoin will probably be developed faster and better. For that reason I don't think it can be considered technically inferior.

Maybe you mean conceptually inferior? But none of the colored coin implementations are going to be superior to Mastercoin when Mastercoin has so much momentum. I do agree that it is a bit too centralized, dacoinminster has most of the Mastercoins and it's almost like Ripple. The code is open source though so even if that is the case the code can be adapted as needed to other projects. I just think the code written for Mastercoin and the organization around developing it is far superior to colored coin which seems to be stalled in its progress by comparison.

very disappointing when i go to mastercoin.org
the 52 seconds introductory video does not explain what Mastercoin is, its just showing a logo splash screen, wth?
https://sites.google.com/site/2ndbtcwpaper/

Colored coin doesn't even have a site. See what I mean?


Title: Re: Idea for a decentralized security exchange
Post by: thehun on October 10, 2013, 01:26:15 PM
The idea is good but the problems I can see after a quick thought are:

a) as already pointed out, 1 satoshi transactions are banned
b) trust issues (how can a "contract" enforce that both parties keep their word)
c) bloating of bitcoin blockchain (if microtransactions are used for share movement)

I have been also having thoughts about this and presented my idea yesterday with a similar approach but creating instead a "share-coin" where 1 satoshi transactions are allowed (each one representing a share) and an in-build automatic escrow.

https://bitcointalk.org/index.php?topic=308841.0

Quote
I have spent some time reading through the different proposals which are around to implement a decentralized exchange system (Mastercoin, Bitshares, Colored Coins, Hops, Open Transactions). I haven’t had enough time to review them all thoroughly but I have the impression that all ideas are great in their own way but they either tend to aim quite high leaving many implementation questions still open or need to rely on middlemen/escrows to complete transactions. Since time is against us after the recent events related to BTCT and Bitfunder, I think what we should initially aim for is a “quick and dirty” solution which gives us the basic functionality necessary for trading shares between two persons, and nothing more.

I have given this a quick thought and come to what I can foresee as a fast solution to this. I have taken ideas from several people in the group and simplified them as much as possible and added some thoughts of my own. I’m sure there will be several flows as I have many things going on and I haven’t dedicated more than a few hours to this.

Ok, so I will explain the idea: basically a “Sharecoin” is to be created, which will be 100% pre-mined and one share will correspond to the lowest divisible amount of the coin (“share-satoshi” if you will). A wallet will be created in BTC fashion and have a balance of X shares in it, public/private keys, etc, plus a field indicating the number of shares which are "locked" (unconfirmed sale) or "pending" (unconfirmed purchase).

A share transaction shall be completed in 3 steps:
   
   1-   Share seller and buyer agree a price (initially in BTC, but other altcoins could be supported in the future) with each other using whichever means they prefer.
   
   2-   The share seller sends a Sharecoin “payment request” transaction with an embedded message indicating:
        a.   Number of shares to be sold
        b.   Price in BTC per share
        c.   BTC address where payment is to be sent
        d.   Sharecoin address of buyer
        e.   Timeout of the transaction
   This transaction is to be signed with the private key of the seller in order to prove the origin.
   
   3-   After the transaction is confirmed (one confirmation should do) the shares are “locked” so that they can’t be sold twice (any request transaction involving locked shares is to be rejected immediately) and added as "pending" to the buyer's wallet. The buyer takes note of its code and sends the payment to the indicated BTC address and posts a "payment confirmation" Sharecoin transaction (signed with his/her private key) indicating:
       a.   BTC transaction code
       b.   Sharecoin transaction code of the original request

Now all the network has to do is to check that the payment has really been made and confirmed (maybe it can even be confirmed by Sharecoin nodes prioritizing that particular BTC transaction to give some speed, although I’m not sure if this is possible) and immediately the shares of the transaction shall be confirmed by the Sharecoin network. The shares assigned to the buyer’s wallet will no longer be "pending" and the locked shares will be removed from the seller's wallet.

After the defined timeout no "payment confirmation" transaction shall be accepted by the network. If after this defined timeout no payment has been received, the seller must send an “unlock request” transaction to be able to sell the shares to someone else. After confirmation of this transaction, the shares can be put on sale again.

This approach solves trust issues and removes the need for any middlemen, as the Sharecoin protocol would implicitly function as an escrow. It also avoids bloating the BTC blockchain with additional micro-transactions used to send messages. It does however require a certain linkage between the BTC and Sharecoin networks, and the way it is devised Sharecoin miners would not receive any rewards for confirming transactions or generating blocks. A possible variation to solve this last point would be to allow subdividing the shares (for example, leaving 1/1000th of a share for the miner confirming the transaction)

I'll be glad to receive your comments/criticism

P.S. I have no experience in Bitcoin-related development and my knowledge of the intricacies of the protocol isn't at pro-level either so I do realize I might have made some dumb assumptions.


In any case, I hope that if we join our efforts we can come to a working solution


Title: Re: Idea for a decentralized security exchange
Post by: jgarzik on October 10, 2013, 03:06:35 PM
Please, instead of these endless discussions, write some code. Even it doesn't work very well. At least you'll see what are the issues.

I posted links to code, even...

Additionally, this code submission for upstream bitcoin is intended to help enable a standard way of encoding metadata -- such as stocks/bonds, rather than current ad hoc methods such as the one employed by mastercoin.

     Relay OP_RETURN data TxOut as standard transaction type.
     https://github.com/bitcoin/bitcoin/pull/2738


Title: Re: Idea for a decentralized security exchange
Post by: Meni Rosenfeld on October 10, 2013, 08:13:05 PM
It's also crowdfunded, which means Mastercoin will probably be developed faster and better. For that reason I don't think it can be considered technically inferior.
The "crowdfunding" method of Mastercoin is questionable, to say the least. Colored coins are supported by both companies such as eToro and volunteers.

Maybe you mean conceptually inferior? But none of the colored coin implementations are going to be superior to Mastercoin when Mastercoin has so much momentum.
I mean that the current design of how Mastercoin is supposed to work is inferior. I can't speculate about what Master coin may or may not evolve into in the future.

I just think the code written for Mastercoin and the organization around developing it is far superior to colored coin which seems to be stalled in its progress by comparison.
Mastercoin currently has almost no code at all. Code may or may not be developed in the future using collected funds. The code that already exists for colored coins is ahead and is still actively developed.

Colored coin doesn't even have a site. See what I mean?
Of course they do, weren't you listening? The old site was bitcoinx.org, now it's superseded by http://coloredcoins.org/ (which, by the way, is now live! Still being worked on though).


Edit: I followed up on recent developments on Mastercoin and it seems it's a bit further along than I thought. My points still stand though.


Title: Re: Idea for a decentralized security exchange
Post by: Luckybit on October 11, 2013, 05:45:22 AM
Mastercoin currently has almost no code at all. Code may or may not be developed in the future using collected funds. The code that already exists for colored coins is ahead and is still actively developed.
Here is the Mastercoin code for Python or Ruby.

https://github.com/maraoz/pymastercoin/blob/master/message.py
https://github.com/maran/mastercoin-ruby
https://github.com/maran/mastercoin-ruby/blob/master/lib/mastercoin-ruby.rb

It's being tested and it looks pretty good. I've seen Colored Coin code also and it looks good too but there is no implementation that I can find of Colored Coin which works. Maybe if you can find some implementation to show then I can change my mind but as of right now neither seem to have functional implementations.

Anyway let the best technology win. I'm following both.


Title: Re: Idea for a decentralized security exchange
Post by: Sukrim on October 11, 2013, 08:02:08 AM
You could simply use Ripple for this... Bitcoin is not really made to act as a marketplace from within, so you need an external network for trades anyways.
No you don't. Bitcoin had scripting capabilities built in from the start. It was always meant to do this.
They got disabled quite early and enabling them one by one is a soft-fork in many cases. Also to trade one needs a order book - are you really suggesting that the whole order book for several decentralized exchanges should be stored in the memorypool of Bitcoin clients?

I am aware that Bitcoin CAN work with scripts (and in some cases it might make sense to represent IOUs with Bitcoins). The trading + order books of the represented IOUs however should likely happen outside, either with blinded tokens on dedicated servers like OpenTransactions suggests, on a completely new alt-chain (several ideas flying around, never heard about actual implementations - maybe Namecoin could be viewed as one), on Ripple or a fork of it or on a centralized exchange (GLBSE, btct, bitfunder... you see how they end up!).

If you use BTC to issue IOUs (no matter if Mastercoin or colored coins), you anyways have the "trust issue" that a lot of people around here don't seem to like about Ripple. The only thing that's left aside from requiring trust (which any of these solutions will need) is that it is not sure if Ripple consensus really is as safe as advertised. Contrast that with the known problems/limitations of MasterCoin and colored coins and you might get why I suggested it in the first place.

Also it works _right now_ with a working open source client and server, order books, trades etc. as opposed to a lot of other technologies presented here which are in the best case just starting up with some funding and in the worst case some forum ramblings of people who think "a p2p exchange would be a nice idea, someone just has to do it!" (Edit: like the OP who re-invented colored coins).


Title: Re: Idea for a decentralized security exchange
Post by: Luckybit on October 11, 2013, 08:57:19 AM
You could simply use Ripple for this... Bitcoin is not really made to act as a marketplace from within, so you need an external network for trades anyways.
No you don't. Bitcoin had scripting capabilities built in from the start. It was always meant to do this.
They got disabled quite early and enabling them one by one is a soft-fork in many cases. Also to trade one needs a order book - are you really suggesting that the whole order book for several decentralized exchanges should be stored in the memorypool of Bitcoin clients?

I am aware that Bitcoin CAN work with scripts (and in some cases it might make sense to represent IOUs with Bitcoins). The trading + order books of the represented IOUs however should likely happen outside, either with blinded tokens on dedicated servers like OpenTransactions suggests, on a completely new alt-chain (several ideas flying around, never heard about actual implementations - maybe Namecoin could be viewed as one), on Ripple or a fork of it or on a centralized exchange (GLBSE, btct, bitfunder... you see how they end up!).

If you use BTC to issue IOUs (no matter if Mastercoin or colored coins), you anyways have the "trust issue" that a lot of people around here don't seem to like about Ripple. The only thing that's left aside from requiring trust (which any of these solutions will need) is that it is not sure if Ripple consensus really is as safe as advertised. Contrast that with the known problems/limitations of MasterCoin and colored coins and you might get why I suggested it in the first place.

Also it works _right now_ with a working open source client and server, order books, trades etc. as opposed to a lot of other technologies presented here which are in the best case just starting up with some funding and in the worst case some forum ramblings of people who think "a p2p exchange would be a nice idea, someone just has to do it!" (Edit: like the OP who re-invented colored coins).

Why not store the order book in the blockchain? There is also Hops which is completely trustless, or colored coin which is pretty darn good. Actually Colored coin has some advantages over Mastercoin and some disadvantages, Hops is trustless according to the whitepaper.


Title: Re: Idea for a decentralized security exchange
Post by: Sukrim on October 11, 2013, 10:55:53 AM
Because Bitcoin supports at max. ~7 transactions (or less, if they are complex) per second. Anything above that requires a hard fork to increase MAX_BLOCK_SIZE at least. Also storing market offers would lead to immense bloat and a lot of them would be pruned away after some time anyways as markets shift. If you charge (significant) fees for them, they will not really take on as the fees would be much higher than any centralized service.

I already mentioned colored coins and Hops is something I haven't heard about - could you link the current client for it, or is it just a whitepaper (then it falls into the "forum ramblings" category).


Title: Re: Idea for a decentralized security exchange
Post by: forevernoob on October 11, 2013, 11:18:02 AM
I was thinking about the legal aspect of trading anonymously the other day.

Obliviously the government cannot trace your earnings from trading. (if you don't convert it to FIAT)
But what about the companies that receive earnings from selling stock?

Surely they must convert it to FIAT. Would that be illegal?


Title: Re: Idea for a decentralized security exchange
Post by: Sukrim on October 11, 2013, 12:11:51 PM
In a lot of jurisdictions, you need to be able to name your investors. Decentralized does not mean "only unknown/pseudonymous/anonymous share holders" though - companies likely would require people to submit KYC data + a bitcoin address where shares are to be stored. Then they could publish a list of addresses known to them and customers can trade among each other as much as they want. Any share transferred to an unknown address is assumed to be invalid.


Title: Re: Idea for a decentralized security exchange
Post by: Luckybit on October 11, 2013, 12:53:36 PM
Because Bitcoin supports at max. ~7 transactions (or less, if they are complex) per second. Anything above that requires a hard fork to increase MAX_BLOCK_SIZE at least. Also storing market offers would lead to immense bloat and a lot of them would be pruned away after some time anyways as markets shift. If you charge (significant) fees for them, they will not really take on as the fees would be much higher than any centralized service.

I already mentioned colored coins and Hops is something I haven't heard about - could you link the current client for it, or is it just a whitepaper (then it falls into the "forum ramblings" category).

And that is why you can use Litecoins which doesn't have the MAX_BLOCK_SIZE limit. People are fine using any blockchain with colored coins on top if Bitcoin isn't acceptable.

Mastercoin can work for Bitcoin and colored coin can be used with Litecoin.

In a lot of jurisdictions, you need to be able to name your investors. Decentralized does not mean "only unknown/pseudonymous/anonymous share holders" though - companies likely would require people to submit KYC data + a bitcoin address where shares are to be stored. Then they could publish a list of addresses known to them and customers can trade among each other as much as they want. Any share transferred to an unknown address is assumed to be invalid.

A) We need KYC data to prevent money laundering and terrorist financing (correct?)
B) We need decentralized exchanges because the current regulations are impossible for US investors to comply with (correct?)

If both of are correct then read below for my opinions.

A distributed company isn't run from the USA and may not have to comply with US law. A company registered in the USA would have to comply. If it got big enough it would be pressured to comply because it would be capable of compliance.

But that is not likely to matter in the Bitcoin world. Bitcoin businesses will simply register anywhere but the USA and then there is no "name your investors" rule unless that rule exists in every country on earth.

The whole global economy isn't based in the USA and businesses are global. Bitcoin is a global currency. The Internet is a global communication system. We do not have laws and regulations which can easily regulate the Internet as it is and to have Bitcoin too and say everyone must name themselves is equal to saying everyone must have a drivers license to access the Internet. It's an unrealistic regulation if we were to try and do that because people wont follow it for many social reasons. KYC doesn't take effect usually unless you're dealing with beyond a certain amount of money, and in that case I would agree that money laundering becomes a serious danger. But we don't make people give their ID to send their cash back and forth offline, and we don't make people use their ID to send small amounts of money. Small businesses should not have the same level of regulation as large businesses because compliance is expensive. Little investors shouldn't have to give their ID to invest but I agree if they are accredited investors or trying to move over $10,000 then it should be just like with bank accounts and it should be flagged. So why not flag them when they try to cash out the $10,000 or more or when they try to withdraw more than a certain amount of Bitcoin? If someone is literally trading hundreds of dollars why should they have to give up pseudo-anonymity?

The main thing is to allow US investors to be able to take part in the Bitcoin economy. Issuers who happen to be US business owners will have to come into compliance. KYC is mainly for money laundering right? So it should focus on the large investors who want to deal with large amounts of money and right now none of the Bitcoin businesses are big enough to warrant the level of compliance and regulation that people are talking about.

Verified and Unverified status could be granted to allow large and small investors to invest. Verified investors should be able to invest as many Bitcoins as they want and withdraw as much as they want similar to coinbase. If the exchange is decentralized via the blockchain then corporations could make large investors verify themselves. But right now most of this is impossible because building an exchange which complies with the web of laws is impossible.

Compliance will have to wait until there are sensible laws to comply with. If you're setting regulations and compliance rules which are in a language which make it impossible for anyone to realistically comply whether decentralized or not, then Bitcoin will end up being decentralized and used in underground fashion until the law is something businesses can comply with. Money laundering sucks, and the possibility of terrorists financing also sucks, but the regulations currently on the books are regulations any technologist will tell you is unrealistic and unworkable.

If you want to have to send your drivers license and ssn just to send an email then keep promoting these sorts of anti-technology regulations and that is where it leads. If you want to be realistic about this then we have to figure out a way to do it which actually makes sense for the technology. KYC is fine and if a corporation is big enough and has a large enough amount of money then that makes sense. Corporations shouldn't be able to be hidden, so if you want to make corporations comply with KYC this would be perfectly fine for anyone trying to dump a bunch of shares or buy a bunch of shares of an established corporation.

It would not be fine to try one sized fits all. If someone is buying shares in a lemonade stand they shouldn't have to deal with KYC because the amount of money moving around might be too small to care. If there is a way to do it through some new legal setup then lets consider that but I don't think its possible to do it as if Bitcoin wallets are a bank and each Bitcoin company or Bitcoin users has to be under those regulations.

Conclusion: We need some form of KYC but the current form doesn't fit Bitcoin and must be customized. We need to build tools and mechanisms in the Bitcoin community to promote transparency and help to prevent terrorist financing and money laundering.

But in exchange for doing this the Bitcoin business community and its users need exemptions from the impossible to follow regulations. This means that a new set of customized laws have to be put in place specifically for cryptocurrencies and they should be carefully thought out. Until that happens there is no possibility of compliance so to discuss compliance at this point is silly. Congress needs to pass special laws to encourage compliance and make clear what the rules are. Smart people need to figure out how to do KYC in a way which is convenient for users. Before that happens it's impossible to build a compliant exchange when there are no laws set up to comply with to make it possible to build it.


Title: Re: Idea for a decentralized security exchange
Post by: Luckybit on October 11, 2013, 01:54:24 PM
I was thinking about the legal aspect of trading anonymously the other day.

Obliviously the government cannot trace your earnings from trading. (if you don't convert it to FIAT)
But what about the companies that receive earnings from selling stock?

Surely they must convert it to FIAT. Would that be illegal?


Possibly. But when you donate to non-profits do you have to give your identity to donate or can you send a bag of cash? if the answer is no, why would there be a different expectation if its a business? Money laundering? We need a lawyer to explain that difference.

Okay so money laundering is the actual problem and not anonymous trading, not Bitcoin, not a decentralized exchange. Money laundering is the problem along with terrorist finance. How do we isolate that problem and work with regulators to come up with regulations and technological solutions which everyone can live with?

The current set of regulation obviously the community cannot live with. That is why Bitfunder and btct are shutting down. If it were just a matter of KYC then Bitfunder would have no reason to shut down. Bitfunder could just verify the current shareholders and let them continue trading. None of this had to happen except for the fact that the current laws in place have a lot of other stuff added to it which go beyond solving the problem of terrorist financing and money laundering.

A lot of the laws exist because traditional banking institutions involve trusting people and so there needs to be a lot more regulation of the industry. Bitcoin doesn't have as many people who have to be trusted so there is just too much regulation which serves no good purpose for Bitcoin users.


Title: Re: Idea for a decentralized security exchange
Post by: mgio on October 11, 2013, 11:13:29 PM
The idea is good but the problems I can see after a quick thought are:

a) as already pointed out, 1 satoshi transactions are banned
b) trust issues (how can a "contract" enforce that both parties keep their word)
c) bloating of bitcoin blockchain (if microtransactions are used for share movement)


a) Yes, that's true but we can simply use larger transactions of a minimum size. In the future, I predict miners will accept these smaller transactions if they are a security trade because they will be known not to be simply spam on the blockchain. Or maybe they could include higher fees.

b) Read up on how contracts work for bitcoin transactions. Both parties need to sign the transaction in order for the transaction to be valid if it is written that way. The bitcoin protocol actually various kinds of contract through a simple scripting language. The only trust that is necessary is whether the issues actually has a legitimate business and will pay dividends as he claims. That is the same problem we have with the present centralized exchanges. The way around that is by people to do their due diligence through internet forums like this.

c) The bloat on the blockchain will be negligible. Which occurs more often these days: a security is traded on NYSE, or one of the other US exchanges, or a dollar is exchanged between two people. People spend and receive money far more often than than they buy and sell securities (unless they are in the business of day trading). Even in the bitcoin world, the number of people who actually buy bitcoin securities is just a tiny fraction of those who invest in bitcoins. That's why the price of bitcoin didn't move when BTCT announced it was closing or when BitFunder announced it was being closed to US residents. I also think the transaction fee for security trades should be higher than for normal bitcoin trades. Right now people pay 1% to buy and sell on bitfunder and other exchanges. With a real distributed security exchange fees will be much less but could still be more than the current transaction fee.


Title: Re: Idea for a decentralized security exchange
Post by: mgio on October 11, 2013, 11:20:04 PM
I realize what I am describing is very similar to Colored Coins. Like I said before there are many other projects which are similar.

But what I am proposing isn't just an abstract idea. I'm saying we need to actually start making a security using an idea like I proposed or maybe just following the colored coins proposal.

There are enough great protocol ideas out there, we need to actually implement one and start with a very simple trading API and get some securities on board.

What I proposed was the simplest and quickest way to get to that point as far as I can tell. Sure, it might not be elegant, but it would work and right now that is what we need as we are losing centralized exchanges left and right. If BitFunder ends up getting shut down, havelock won't be too far behind and bitcoin securities will be a thing of the past.

I'm a software engineer working in the finance industry and I'm going to start working on this in my spare time although I worry that I don't have enough spare time to make progress quick enough in this project.


Title: Re: Idea for a decentralized security exchange
Post by: Meni Rosenfeld on October 12, 2013, 05:33:46 PM
I realize what I am describing is very similar to Colored Coins. Like I said before there are many other projects which are similar.

But what I am proposing isn't just an abstract idea. I'm saying we need to actually start making a security using an idea like I proposed or maybe just following the colored coins proposal.

There are enough great protocol ideas out there, we need to actually implement one and start with a very simple trading API and get some securities on board.

What I proposed was the simplest and quickest way to get to that point as far as I can tell. Sure, it might not be elegant, but it would work and right now that is what we need as we are losing centralized exchanges left and right. If BitFunder ends up getting shut down, havelock won't be too far behind and bitcoin securities will be a thing of the past.

I'm a software engineer working in the finance industry and I'm going to start working on this in my spare time although I worry that I don't have enough spare time to make progress quick enough in this project.
I'm starting to repeat myself but colored coins aren't an abstract idea either. There are working implementations and highly talented people developing it further as we speak. A lot of effort was also placed in the design, with solutions to problems you haven't even thought of yet if you're just starting out.

You're welcome to join the development effort. coloredcoins.org is a good place to start, or https://groups.google.com/forum/#!forum/bitcoinx when you want to go into the details.
 
It's still too soon to list any major asset on it, but if you want to do some more active field testing, you should ask Alex if the software is ready for that.


Title: Re: Idea for a decentralized security exchange
Post by: Sukrim on October 13, 2013, 02:15:05 AM
But what I am proposing isn't just an abstract idea. I'm saying we need to actually start making a security using an idea like I proposed or maybe just following the colored coins proposal.
OpenSource software exists right now running on servers and being available for listing and trading assets denominated in BTC using Open Transactions (via blinded tokens), Colored Bitcoins and Ripple. Also there are centralized (often closed source) exchanges that put a strong focus on crypto (e.g. MPOE where every trade etc. is signed with PGP keys so it is externally verifiable and auditable).

In contrast your idea, even though a nice one and probably relatively easy to implement, is NOT implemented anywhere that I know of, even in a test/beta scenario.

The problem with these decentralized exchanges is that there are few incentives to operate one. Ripple solved it by creating XRP and they get a lot of hate because of that. Colored Coins seems to piggyback as much as possible on Bitcoin, so it wouldn't really need much anyways besides a note on the company website to trade this asset and OpenTransactions... well I have yet to see someone even using them, though the software exist for years now.

We need people starting a security on ANY existing platform and stop about designing ideas on how to come up with yet another decentralized trading platform. The platforms exist for months and years already, it is just that issuers of securities seem to be more happy with using centralized websites than not-so-nice but secure and distributed exchanges. Similar issue like Chaumian blinded money (which was even being tested live) compared to PayPal (or bitcoin-qt vs. inputs.io). Their selling point is simply "trust us, then all you need is username + pwd". People care about simple more than about security and privacy, even(!) in the Bitcoin ecosystem!


Title: Re: Idea for a decentralized security exchange
Post by: MPOE-PR on October 13, 2013, 02:00:46 PM
All of this development discussion is kinda cool. I don't know why it's in Securities though, because these ideas either skip over entirely or flat out ignore the problems and standards of finance, which no amount of technical architecture, however great, can address entirely on its own.

I am aware that Bitcoin CAN work with scripts (and in some cases it might make sense to represent IOUs with Bitcoins). The trading + order books of the represented IOUs however should likely happen outside, either with blinded tokens on dedicated servers like OpenTransactions suggests, on a completely new alt-chain (several ideas flying around, never heard about actual implementations - maybe Namecoin could be viewed as one), on Ripple or a fork of it or on a centralized exchange (GLBSE, btct, bitfunder... you see how they end up!).

"They" aren't "centralized exchanges", they are/were play exchanges operating on the notion that having a website and putting up the appearances of trading along with a lot of good intentions makes a thing real. They don't make it real.

OpenSource software exists right now running on servers and being available for listing and trading assets denominated in BTC using Open Transactions (via blinded tokens), Colored Bitcoins and Ripple. Also there are centralized (often closed source) exchanges that put a strong focus on crypto (e.g. MPOE where every trade etc. is signed with PGP keys so it is externally verifiable and auditable).

There'd be one, MPEx. MPOE is a bond (https://bitcointalk.org/index.php?topic=139017.0) through which the options trader finances itself, and the trader together with MPEx form the underlying for S.MPOE (traded here (http://mpex.co/?mpsic=S.MPOE)).

The platforms exist for months and years already, it is just that issuers of securities seem to be more happy with using centralized websites than not-so-nice but secure and distributed exchanges.

Issuers of real securities have no problem using the actually secure exchange, or with being held accountable, and so forth. People who either lack the requisite skill or knowledge, who simply don't have something of value to offer, or who are outright scamming on the other hand have a problem, and rightfully so, in terms of being accepted by MPEx and meeting its standards. A scenario in which this problem is removed and the only block to listing is messing around with some code or paying someone else a pittance to do it for you is doomed to as much spectacular failure as you've seen emanating from the previous "citizen finance" attempts.

The current set of regulation obviously the community cannot live with. That is why Bitfunder and btct are shutting down. If it were just a matter of KYC then Bitfunder would have no reason to shut down. Bitfunder could just verify the current shareholders and let them continue trading. None of this had to happen except for the fact that the current laws in place have a lot of other stuff added to it which go beyond solving the problem of terrorist financing and money laundering.

This is a rather skewed representation of what's happening. That a series of people not qualified to run a securities exchange have stepped up in an attempt to bring low-boundary, incredibly sketchy non-solutions to "the community" at large and have subsequently found themselves in over their heads does not mean the problem is "the current set of regulation". The problem is that finance is not a mass consumer thing to be packaged up and handed out by anyone at all with a hope and a dream.

There's a big difference between the sort of red tape regulation nonsense governments have no business injecting here and enforcing simple, established, powerful rules that keep scammy and otherwise worthless stuff out.

GPG contracts (http://trilema.com/2012/gpg-contracts/). Security that isn't based on the limitations of a "slick" website (http://trilema.com/2012/security-comparison-of-bitcoin-denominated-instruments-exchanges/). Actual IPOs (http://mpex.co/?mpsic=S.MPOE) from actually planned out, accountable entities (http://trilema.com/2013/mpoe-september-2013-statement/). Yes, there's a fee. You're paying for that which works, which in the end is all that's worth paying for. No, I'm not especially nice in that In-N-Out Burger sort of way (though I'm just PR, you don't have to deal with me at all to use the exchange). The lies, the sugar-coating, the beating around the bush, is exactly for cheap food service and has no place in BTC finance. Plenty of people have thrown a fit over these facts, I'm sure plenty of people will continue to do so, and will continue to lose their money. MPEx will be right here.


Title: Re: Idea for a decentralized security exchange
Post by: Luckybit on October 14, 2013, 09:29:37 AM

This is a rather skewed representation of what's happening. That a series of people not qualified to run a securities exchange have stepped up in an attempt to bring low-boundary, incredibly sketchy non-solutions to "the community" at large and have subsequently found themselves in over their heads does not mean the problem is "the current set of regulation". The problem is that finance is not a mass consumer thing to be packaged up and handed out by anyone at all with a hope and a dream.

There's a big difference between the sort of red tape regulation nonsense governments have no business injecting here and enforcing simple, established, powerful rules that keep scammy and otherwise worthless stuff out.

I agree with you. And you were right about Labcoin being a total scam. I do want regulation of issuers and I do think issuers should be checked and held accountable by the SEC if necessary. But what does regulating corporations have to do with preventing investors from investing?

I'm all for making corporations become transparent and regulated so that people aren't scammed and don't lose their money. The current set of SEC rules don't make any sense at all and don't apply very well for the particular situations you see in the Bitcoin community. Bitcoin investors do not want the SEC interfering with their ability to invest, region blocking, or invading their privacy. I also don't think Bitcoin investors want to mistakenly fund terrorism, or be involved in money laundering.

The problem is fraud, scams, money laundering and terrorist finance. The regulations of the SEC don't really apply to Bitcoin with it's decentralized concepts and P2P digital money. For example with Bitcoin everyone is pseudo-anonymous, does knowing an investor prevent money laundering? No not necessarily. But it does make sense if someone were trying to move large amounts of Bitcoins or to have suspicious activity which looks like money laundering to have an ability to look more closely at that. The fork in the road is between those developers who push for anonymity and those who don't. Anonymity means every individual will have to report directly to the government similar to how you have to report your earnings to the IRS while transparency on the blockchain would allow the blockchain to report it all. Either way we will have to interface with the government at some point.

The benefit of digital is that you can be selective. Small investors should not be scrutinized or forced to give up their privacy. That means if someone is not investing large amounts of Bitcoins at the time there shouldn't be a need for verification anyway. Money laundering is usually something which takes place with large amounts of Bitcoins. If all the Bitcoins are anonymous this presents a problem though, because if a terrorist or money laundering situation does happen it puts a bad light on the entire Bitcoin economy if every transaction is hidden from authorities and this forces authorities to detain, question, and eventually make everyone report their activities.

At this time while it is true that there are a lot of illicit Bitcoins floating around out there, and a lot of scams, a lot of fraud and theft, the SEC has no solutions and until the Bitcoin community takes it seriously it's not even the SEC's fault entirely.

What do you propose should be done to prevent scams? fraud and money laundering?  Should we have anonymity? if we do then how do we report a scam, a crime, or prove our innocence?


Title: Re: Idea for a decentralized security exchange
Post by: MPOE-PR on October 14, 2013, 05:59:31 PM
I agree with you. And you were right about Labcoin being a total scam. I do want regulation of issuers and I do think issuers should be checked and held accountable by the SEC if necessary. But what does regulating corporations have to do with preventing investors from investing?

I'm all for making corporations become transparent and regulated so that people aren't scammed and don't lose their money. The current set of SEC rules don't make any sense at all and don't apply very well for the particular situations you see in the Bitcoin community. Bitcoin investors do not want the SEC interfering with their ability to invest, region blocking, or invading their privacy. I also don't think Bitcoin investors want to mistakenly fund terrorism, or be involved in money laundering.

The problem is fraud, scams, money laundering and terrorist finance. The regulations of the SEC don't really apply to Bitcoin with it's decentralized concepts and P2P digital money. For example with Bitcoin everyone is pseudo-anonymous, does knowing an investor prevent money laundering? No not necessarily. But it does make sense if someone were trying to move large amounts of Bitcoins or to have suspicious activity which looks like money laundering to have an ability to look more closely at that. The fork in the road is between those developers who push for anonymity and those who don't. Anonymity means every individual will have to report directly to the government similar to how you have to report your earnings to the IRS while transparency on the blockchain would allow the blockchain to report it all. Either way we will have to interface with the government at some point.

The benefit of digital is that you can be selective. Small investors should not be scrutinized or forced to give up their privacy. That means if someone is not investing large amounts of Bitcoins at the time there shouldn't be a need for verification anyway. Money laundering is usually something which takes place with large amounts of Bitcoins. If all the Bitcoins are anonymous this presents a problem though, because if a terrorist or money laundering situation does happen it puts a bad light on the entire Bitcoin economy if every transaction is hidden from authorities and this forces authorities to detain, question, and eventually make everyone report their activities.

At this time while it is true that there are a lot of illicit Bitcoins floating around out there, and a lot of scams, a lot of fraud and theft, the SEC has no solutions and until the Bitcoin community takes it seriously it's not even the SEC's fault entirely.

What do you propose should be done to prevent scams? fraud and money laundering?  Should we have anonymity? if we do then how do we report a scam, a crime, or prove our innocence?

The SEC is a minor player (https://bitcointalk.org/index.php?topic=115693.0).


Title: Re: Idea for a decentralized security exchange
Post by: forevernoob on October 14, 2013, 10:42:46 PM
I thought terrorist finance was something made up by the government to scare us into more and more regulations...

Do you really think we can stop terrorists receiving funds?
The real terrorists are already funded by our tax money IMO.


Title: Re: Idea for a decentralized security exchange
Post by: Luckybit on October 15, 2013, 07:34:57 AM
I thought terrorist finance was something made up by the government to scare us into more and more regulations...

Do you really think we can stop terrorists receiving funds?
The real terrorists are already funded by our tax money IMO.


The government has a legitimate concern. Terrorist finance is real.
But I'm not in a position to know how much of a problem it is for Bitcoin.

I'm skeptical about it being a problem for Bitcoin but there aren't enough statistics to really know yet.

Anyway, instead of thinking of terrorist finance as something involving the Taliban think of it as more state sponsored violence, using Bitcoin. If you're concerned about states abusing Bitcoin and you understand many terrorist groups are state sponsored then you can understand it will be a legitimate threat at some point.


Title: Re: Idea for a decentralized security exchange
Post by: mgio on October 15, 2013, 09:13:57 PM
But what I am proposing isn't just an abstract idea. I'm saying we need to actually start making a security using an idea like I proposed or maybe just following the colored coins proposal.
OpenSource software exists right now running on servers and being available for listing and trading assets denominated in BTC using Open Transactions (via blinded tokens), Colored Bitcoins and Ripple. Also there are centralized (often closed source) exchanges that put a strong focus on crypto (e.g. MPOE where every trade etc. is signed with PGP keys so it is externally verifiable and auditable).

In contrast your idea, even though a nice one and probably relatively easy to implement, is NOT implemented anywhere that I know of, even in a test/beta scenario.

The problem with these decentralized exchanges is that there are few incentives to operate one. Ripple solved it by creating XRP and they get a lot of hate because of that. Colored Coins seems to piggyback as much as possible on Bitcoin, so it wouldn't really need much anyways besides a note on the company website to trade this asset and OpenTransactions... well I have yet to see someone even using them, though the software exist for years now.

We need people starting a security on ANY existing platform and stop about designing ideas on how to come up with yet another decentralized trading platform. The platforms exist for months and years already, it is just that issuers of securities seem to be more happy with using centralized websites than not-so-nice but secure and distributed exchanges. Similar issue like Chaumian blinded money (which was even being tested live) compared to PayPal (or bitcoin-qt vs. inputs.io). Their selling point is simply "trust us, then all you need is username + pwd". People care about simple more than about security and privacy, even(!) in the Bitcoin ecosystem!

Yes, I'm aware a lot of the software already exists. The more that I think about it, the more I feel like colored bitcoins is the way to go. But a real exchange is a lot more than that. You need everything else that goes along with it. Namely, a p2p way of distributing information regarding the available securities and finding people to trade with.

The thing is, no one runs a decentralized exchange. That's the point. Who runs Bitcoin? The only thing you need is a website or someplace for users to download the client software and there you go.

Now, the better question is why isn't there incentive for people (both traders and issuers) to use a decentralized exchange. Up until now there hasn't been. But BTCT is gone. Bitfunder can't be used by US residents so it might as well be gone. And Havelock Invesments is too small and will likely suffer the same fate as Bitfunder and BTCT if it gets bigger. There is now a HUGE incentive to a decentralized exchange that can't get shut down because we are almost out of options.

Here is what we need:

- Colored coins as the backend to deal with marking transactions as belonging to a specific security, etc. We need an API based on top of colored coins that let's a trader or issuer perform everything they'd need to do with a security and have it happen using colored coins. For example, create a security, trade shares from on address to another for a given price, get the last trade price of a security, etc. I'm working on specifying this API right now.

- A client that runs as a p2p system for distributing security data and facilitating trading. This can work like any other p2p system (gnutella, bit torrent, bitcoin, etc). It will be used to distribute information and updates about each security by the issuers and allow the traders to post orders for buying and selling which can be automatically filled by the network. This is the part that doesn't exist yet, but it is nothing novel, technology-wise. It is also the part that doesn't require the bitcoin network or the same level of security. All the security and anonymity are provided by the bitcoin network. Because this will be a p2p network with no central server, it can not get shut down.