You probably heard that GLBSE went down recently. I am hoping someone out there can code software that uses BTC address signed contracts and allows companies to issue and track their own stock shares instead of relying on a single third party. In short:
1) Company announces a number of shares for sale.
2) Users bid on shares
3) Once bidders win, they pay for shares, and their BTC addresses become the owners/signature for their shares. I.e. shares are tied to a BTC address, not to users.
4) Company issuing the shares stores the ledger that states "Bitcoin address X owns so many shares," and any dividends get paid directly to those addresses
5) If a user wants to sell/transfer their stock, he sends a transaction message signed by the BTC address that owns those shares, telling the company ledger that the sold shares now belong to a different address
6) Company updates their ledger, and pays dividends to the new address.
This way
- you only have to trust the company issuing shares (and if you can't, you wouldn't buy those shares anyway)
- there are no costs associated with registering or trading stocks unless the issuing company takes a fee themselves
- stocks traded on the open market can be traded through third party auction houses similar to and as simple as eBay style bidding, and can be traded privately among users using OTC.
- shares can be sold by any company in any country, without concern about what regulatory jurisdiction a specific exchange falls under.
I wouldn't think something like this would be TOO difficult, since it doesn't even rely on Bitcoin transactions and blockchain, just signed messages and any means to see what address payments came from. Comments/suggestions/improvements?
Using Open-Transactions, you would still have to build your website or user client (we only have a test GUI and a command line utility.) But OT would save you a lot of work and re-inventing the wheel that you would otherwise additionally end up having to do.
OT provides an easy API for financial transactions, specifically allowing you to:
--- Issue a currency or shares. (Similar to GLBSE I'm sure.)
--- Trade account balances on markets against other asset types. (Similar to MtGox or other market exchanges. I assume GLBSE as well.)
--- Pay funds between users (with or without accounts, since a variety of instruments are available, including cash.)
--- All account balances are unforgeable and the server cannot change them without the user signing-off first. (This all happens behind the scenes as you perform your transactions.)
---
Dividends are functional now, and are paid as a cheque sent to the inbox for any Nyms who are shareholders. (Based on number of shares owned.)
After all transactions, each user has the "last signed receipt" which proves the balance of his account. (Even if the server disappears...)
I think Open Transactions may be a hell of an overkill for this. Since a single entity is being invested in, that single entity can be the centralized source that keeps all the ledgers and keeps track of all transactions. It doesn't really matter if they decide to change their system or use a different database, either, since all that they have to store is "Address so-and-so owns so many shares, until we get a BTC signed message to tell us otherwise." And if the company goes down, it won't matter which exchange manages the stocks, since they would be worthless. Admittedly, I am only barely familiar with Open Transactions. I just could never figure out the point of using a second layer to send Bitcoin to someone when you can just send Bitcoin directly. Maybe there is a module in OT that already does most of what I described?
Regarding not being able to change someone's balance, I'm not sure why that is required. A centralized exchange can also arbitrarily change people's balances, though that would not be very, um, nice. And not having restrictions on changing balances means a company that controls the stock can do stock splits etc. without needing permission from everyone.
The point is, yes, there would be a single point of failure, and a single entity to trust, but that point of failure and trust is also the company being invested in, meaning the trust is redundant. If you can't trust the company to do basic accounting, you likely shouldn't trust them with your investment. And to get something like this off the ground, I imagine all that's needed is a simple database, and a not-so-simple front-end.
You are correct that a single entity could act as the "issuer" for any given stock, and manage the books offline without needing any software.
OT manages the lower-level details for you, such as account security and balances, market trades, paying dividends, etc. You could also do all that stuff by hand if you really wanted to. But OT's API is pretty easy to use, if you check it out. It will probably only save you a lot of time and effort.
The reason for using a second layer is because you get instant transactions, and you get a variety of instruments (including market trades.)
>"Maybe there is a module in OT that already does most of what I described?"
Yes, I believe it does everything described above, although OT currently doesn't directly do anything on the blockchain itself. You will have to make your own scripts to interface between the two.
He lied.
I don't think so. He had clear vision about the future of GLBSE. Problems must came after the conference.
No he didn't. It needs 4 glbse shareholders to decrypt the database backups in the event of nefarios death. There is nothing in place prior to this in case nefario was lent on by the government and the 4 shareholders disagree on whether hes been compromised or not.
Nefario always seemed cool to me, I'm curious to find out what happened.
Regarding "needing 4 shareholders to decrypt the database" I think using OT this wouldn't be necessary, since all users would already hold their "last signed receipt" by which balances can be proven.
I think Open Transactions may be a hell of an overkill for this.
...
I believe that #assets-otc or #otc-assets project does pretty much what you describe in your original specs minus any automated trading capacity ie open bid/ask.
I would much prefer the flexibility of trading market functionality over an OTC functionality.
Re: OT. What I like about OT is that it already has P2P asset transfers + a trading market. I'm not sure how mature, robust or resistant to attack this market functionality would be.
It is certainly possible to have a single GUI for Nym management and stock market. My only doubt is that OT creates it's own set of virtual assets for trading. Those virtual assets would be backed by BTC and BTC would have to flow in/out of the OT system.
Re: Trust. What's nice about digitally signed p2p asset transfers is that parties can prove ownership in cases of malfeasance. A centralized record of ownership, in the example case being held by the asset issuer, creates an opportunity for fraud that the public would be unable to scrutinize. This wouldn't be an effective measure for wholesale fraud (as you point out would be an inherent risk in any of the approaches), but for individual cases where either party can prove ownership or payment with signatures.
OT has real markets with bid/ask offers and automated trading.
All trades are accompanied by a server-signed
receipt (which includes the user's original signed offer.) These receipts also prove the user's current balance.