Pages:
Author

Topic: RFC -- Distributed Bitcoin Stock Exchange (DBSE) - page 3. (Read 10994 times)

legendary
Activity: 1102
Merit: 1014
Basically it would be like adding a MtGox to your Bitcoin client, instead of having to go an exchange on the web.

I think you might be confusing this stock exchange idea with the idea of a distributed currency exchange which is discussed more often. I believe the goal here is to develop a distributed generalization of the blockchain that can be used for pretty much any asset. A distributed currency exchange may be a special case of a distributed stock exchange but I still think one should keep the trading logic out of this first version and focus on the problem of allowing users to issue assets like shares of stock, bonds, options and to be able to transfer ownership to other users of the system.
hero member
Activity: 717
Merit: 501
I love this.  Don't understand it all but it seems like a good addition to a coin.
legendary
Activity: 1372
Merit: 1002
I don't remember well. If you can't drop them you can at least not renew them.
But it can be implemented inside bitcoin too. Isn't not interfering with the host chain the reason for starting the new one?
Is it really better to implement it inside namecoin instead of inside bitcoin or in its own chain?
legendary
Activity: 2940
Merit: 1090
I suppose. I was thinking of simply re-issuing them later possibly.

I kind of like the idea of buying them back at higher price than I issued them at instead of dividends, because if you have to actually part with shares to realise income/profit the percentage of total shares you own would change if, and as, you cash out. So someone with 51% would have good reason to stay invested instead of cashing out if they want to retain a "controlling interest".

Truthfully though I am not really enamoured of the idea of issuing "common stock", that is, voting shares. I actually thought most share issues nowadays are "preferred shares", used just to raise capital not to dilute control of the company by handing out votes.

Doesn't namecoin have any way of dropping names? Surely one could simply not pay to renew them when they expire if one no longer needs them?

-MarkM-
legendary
Activity: 1372
Merit: 1002
I see. Yes, that could work. Don't sure why but I don't like it.
I guess I would want the shares to be destroyed if they return to the original issuer.
legendary
Activity: 2940
Merit: 1090
I was thinking pretty simplistic, something like d/knotwork to register my knotwork.bit domain then use subdomain-like strings maybe like d/share001.knotwork, d/share002.knotwork etc.

I expect that is not ideal, but since domains can be transferred to new owners presumably shares structured like domains would also be transferable.

Using the actual domain namespace would allow each share to have its own website as a side-effect I guess.

But maybe other namespaces in the chain can also be transferred from owner to owner?

-MarkM-
legendary
Activity: 1372
Merit: 1002
Namecoin might be able to handle ownership of shares pretty easily without modification.

I've heard this before but I don't get how it would work.
Let's say I want to issue 10 shares (or units or whatever) with address A and give them to address B. Then B gives the shares to address C.
How is it done in namecoin?
hero member
Activity: 742
Merit: 500
I originally liked the idea of using namecoin, but I think some of the asset handling would be better suited for another chain.

So you think we should share addresses across BTC and TT? Interesting. People are still going to have a bunch of addresses though.

How far are we going to take anonymity.  Will it be possible to tell who owns what shares?  Or could someone have a bunch of accounts.  Should we have something like namecoin's personal namespace that allows people to list all of their addresses?
legendary
Activity: 2940
Merit: 1090
Namecoin might be able to handle ownership of shares pretty easily without modification.

It is a pity that namecoin addresses are forced to look different from bitcoin address though, as that means you cannot simply use the same address as a bitcoin address to send dividends or whatever to. You'd have to eat up space in the namecoin chain to specify a bitcoin address if you wanted to use bitcoin along with it. On the other hand though, you could simply pay all dividends and such in namecoin and let people trade them on exchanges for any other kind of coin they would prefer to have.

-MarkM-
hero member
Activity: 742
Merit: 500
If the dividends and the shares are going to be paid in bitcoins, why do you need the TT at all?
The fees can be paid with bitcoins too.

I mean, I see it cleaner and more logic if everything is paid for either in bitcoins or in TT, but not this hybrid. Or you could allow both currencies in all cases.

I didn't think about having even the fees be bitcoin.  I think I like that idea.  So would there be no block reward in that system since we wouldn't need TT?  That seems kinds of strange and might make it hard to get the chain going.

Quote
The big problem I fear are DoS attacks. What prevents me from issuing a thousand types of shares and a million of each share and trade between one another like crazy?
Only fees? I'm not sure that's enough.
Aren't fees the only things that keep you from doing the same thing on any of the other chains?
legendary
Activity: 1372
Merit: 1002
The blockchain would serve as the back end.  It would show all shares in existence and who owns them, and allow changing the ownership.  But the actual trading of shares would be left to trusted centralized parties that would serve as clearing houses for buy/sell orders and serve as a trusted escrow service.

You don't need centralized exchanges, you just need contracts for the trades.

Edit: For paying dividends, we could include a BTC dividend payment address along with the ownership of each share, and it would be paid there.

If the dividends and the shares are going to be paid in bitcoins, why do you need the TT at all?
The fees can be paid with bitcoins too.

I mean, I see it cleaner and more logic if everything is paid for either in bitcoins or in TT, but not this hybrid. Or you could allow both currencies in all cases.

This same chain could be used for other interesting things beside the stock exchange without adding anything. Examples:
1) Decentralized currency exchange: An exchange could issue usdCoins to have its btc/usd exchange decentralized.
2) Distributed ripple: the shares can be viewed as IOUs. An example of ripple transaction:

A trusts B who trusts C. C wants to pay 10 to A.
within the same transaction, they sign:
A gives 10 aShares to B
B gives 10 bShares to C

with this A can prove that he has paid to C.

And I'm sure we can think of many other fancy things.

The big problem I fear are DoS attacks. What prevents me from issuing a thousand types of shares and a million of each share and trade between one another like crazy?
Only fees? I'm not sure that's enough.
donator
Activity: 1736
Merit: 1014
Let's talk governance, lipstick, and pigs.
I love this idea. It's a much more developed version of the idea I had regarding a decentralized exchange for purposes of creating a ticker type service.

It's not like we need a full exchange that reports the volume of transactions. All we need is a general idea of the price bitcoin is being traded at.
  • An Exchange Coin is created. The coins generated from it include pricing of all included crypto-currencies. More can be added if everyone agrees.
  • Each coin client (including bitcoin) allows a price value in various fiat currencies to be reported to Exchange Coin.
  • The Exchange Coin factors in the reported prices and runs a statistics algorithm that finds the current mean values.
  • HST and bot trades could be filtered out statistically.

This would be organic and require trust of not a central reporting authority, but of all bitcoin users to volunteer honest reporting.
hero member
Activity: 602
Merit: 513
GLBSE Support [email protected]
This is of interest to me.

Good luck with it, this is not going to be an easy task.

If you can get this rolling I'd be happy to have existing shares on GLBSE enter the genesis block if the share issuers want, although I'm not too sure how that could be done.

Nefario.
legendary
Activity: 1358
Merit: 1003
Ron Gross
+1 I'd really like to see this implemented. I was thinking of using either Bitcoin or Namecoin as underlying backend (since they both have a huge hash power behind them), but a separate chain offers a lot more flexibility.

A few comments:

1. I wouldn't limit assets to stocks only - I suggest creating other types of assets, like bonds, options and futures as 1st class citizens in the protocol. That would allow stuff like creating a bond that is backed by stocks ... the protocol can guarantee that dividends on a bond are paid on a set date (or block ID) ... or else certain stocks are transferred to the bond issuer.

2. I'm concerned with 51% attacks. Until merged mining, this network will be easy to attack. So, I can sell you shares for 5000 BTC, and 51% attack the new blockchain for a cost of up anywhere up to 4999BTC (just rent a few machines in an Amazon GPU cluster), producing me a net gain.

3. Why not use the Namecoin algorithm where the block reward never changes?

4. How about putting this up on a wiki page? Or is it too soon?
full member
Activity: 154
Merit: 102
Bitcoin!
I think it's useful to minimize the feature set as much as possible to make the underlying protocol as robust as possible.  Would you make dividend payment as part of the protocol?
legendary
Activity: 1102
Merit: 1014
Upon further thought, and I'm not trying to minimize the feature set more than necessary, you might want to remove the motions as well. There are probably tons of rights ownership of a share may grant and this could vary widely from one issuance to another.

Does anyone else have an idea of the rights granted to those owning shares of a publicly traded company on the NYSE/Nasdaq for example? Voting is one, introducing motions, but perhaps shares could even be issued that can't be transferred until after some date in the future. The private key enables all kinds of actions granted by the issuing company to be signed and honored only during the duration of ownership.
full member
Activity: 154
Merit: 102
Bitcoin!
I think you can greatly simplify this system and increase the chance of it working by leaving the trading logic(buy,sell,etc,) out of it. Instead, you would be better off focusing on the problem of having arbitrary numbers of issuers creating shares and motions that can be owned and voted upon by arbitrary numbers of investors. Even ticker symbols can be an overlay though it's not too disruptive to include it.

By simplifying the system to create the bare minimum required to function, you allow exchanges to pop up that can all be working on the same data. You also offload the escrow to those exchanges or other trusted third parties. Successful transfer can be defined by having your transaction in the longest blockchain(so you defend against a double-sale of shares).

This does bring up a problem similar to running the same wallet on multiple machines. Exchanges will need to check orders against available shares for the associated private key and monitor for transfers that would force that order to be inactive/cancelled.

I'm thinking you may want to go distributed to a fault but the above is how I see the goal of distributed ownership being achieved. Good luck. Subbed.
That hadn't even occurred to me, but it sounds very appealing.  

So the blockchain and protocol would only concern itself with:

1. Creating ticker symbols / companies / stocks (I'm using these interchangeably, it's just a unique identifier for an entity that issues shares)
2. Creating shares
3. Owning shares
4. Sending shares from one address to another (this would be like sending bitcoin from one address to another, it would not be all the trade transactions above)
5. Creating motions
6. Voting on motions

The blockchain would serve as the back end.  It would show all shares in existence and who owns them, and allow changing the ownership.  But the actual trading of shares would be left to trusted centralized parties that would serve as clearing houses for buy/sell orders and serve as a trusted escrow service.

I like this a lot.

Note: I think the ticker symbol needs to be in the block chain as the identifier for any associated shares that are issued for that company.

Edit: For paying dividends, we could include a BTC dividend payment address along with the ownership of each share, and it would be paid there.
legendary
Activity: 1102
Merit: 1014
Quote
12. All Transaction Types

I think you can greatly simplify this system and increase the chance of it working by leaving the trading logic(buy,sell,etc,) out of it. Instead, you would be better off focusing on the problem of having arbitrary numbers of issuers creating shares and motions that can be owned and voted upon by arbitrary numbers of investors. Even ticker symbols can be an overlay though it's not too disruptive to include it.

By simplifying the system to create the bare minimum required to function, you allow exchanges to pop up that can all be working on the same data. You also offload the escrow to those exchanges or other trusted third parties. Successful transfer can be defined by having your transaction in the longest blockchain(so you defend against a double-sale of shares).

This does bring up a problem similar to running the same wallet on multiple machines. Exchanges will need to check orders against available shares for the associated private key and monitor for transfers that would force that order to be inactive/cancelled.

I'm thinking you may want to go distributed to a fault but the above is how I see the goal of distributed ownership being achieved. Good luck. Subbed.
full member
Activity: 154
Merit: 102
Bitcoin!
anything it will take to get this RFC spec completed, server space, ideas, funding, let me know and I will help.
Thank you.


3. Public and private keys

Public and private key pairs would be used to identify who owns TickerSymbols ("TS"), Shares, and TradeTokens.  The public key (technically a shorter address derived from it) will be known as a "DBSE Address", and the corresponding private key will be the "DBSE PrivKey".  Any of the three items--TickerSymbols, Shares, or TradeTokens-- can be associated to a given DBSE PrivKey, and are thus owned by the owner of that private key.

If needed, three separate types of public/private key pairs could be created with distinct looking public addresses: One for ticker symbols, one for shares/assets, and one for TradeTokens. TBD.

I really like the sound of this, one of the things that currently bother me about GLBSE is actually proving that I own particular shares. Having a public address would make this a lot easier.
Yes.  Even if there were centralized exchanges built on top of DBSE, the shares you own would still forever be immortalized in the public blockchain that all the peers have.

Quote
7. Motions and voting

Anyone who owns at least one share of a given stock (TickerSymbol) can create a Motion concerning it, and all other stockholders can vote on it.  When submitting the Motion, an expiry date from 1 to 90 days is given.  When the expiry date is reached, the Motion is defined by the protocol as having passed if (a) at least 50% of stockholders have voted and at least 2/3 of votes are for the motion, OR (b) at least 1/3 of stockholders have voted and at least 3/4 of votes are for the motion.  These percentages can be discussed, but should then be hard-coded into the protocol.

Would there be good faith deposits for issuing motions? I wouldn't like seeing a bunch of spam motions from someone who owns one share in an asset.

Perhaps instead of a deposit, only allow a non-issuer (someone who issues an asset may need to have multiple up for the asset they put out) to have one motion up per asset at a time.
Good ideas.  The idea of only allowing a non-issuer to have one motion up at a time might be good, but I can't see any way to enforce it.  I could own 10 shares of a given stock under 10 different TT addresses, and there would be no way for the blockchain or client to know that those 10 shares are owned by the same person.

But motion spam might still be a problem. How about just having a transaction fee for it?  If a motion is important to you, pay the fee and submit it.
hero member
Activity: 826
Merit: 1000
3. Public and private keys

Public and private key pairs would be used to identify who owns TickerSymbols ("TS"), Shares, and TradeTokens.  The public key (technically a shorter address derived from it) will be known as a "DBSE Address", and the corresponding private key will be the "DBSE PrivKey".  Any of the three items--TickerSymbols, Shares, or TradeTokens-- can be associated to a given DBSE PrivKey, and are thus owned by the owner of that private key.

If needed, three separate types of public/private key pairs could be created with distinct looking public addresses: One for ticker symbols, one for shares/assets, and one for TradeTokens. TBD.

I really like the sound of this, one of the things that currently bother me about GLBSE is actually proving that I own particular shares. Having a public address would make this a lot easier.

Quote
7. Motions and voting

Anyone who owns at least one share of a given stock (TickerSymbol) can create a Motion concerning it, and all other stockholders can vote on it.  When submitting the Motion, an expiry date from 1 to 90 days is given.  When the expiry date is reached, the Motion is defined by the protocol as having passed if (a) at least 50% of stockholders have voted and at least 2/3 of votes are for the motion, OR (b) at least 1/3 of stockholders have voted and at least 3/4 of votes are for the motion.  These percentages can be discussed, but should then be hard-coded into the protocol.

Would there be good faith deposits for issuing motions? I wouldn't like seeing a bunch of spam motions from someone who owns one share in an asset.

Perhaps instead of a deposit, only allow a non-issuer (someone who issues an asset may need to have multiple up for the asset they put out) to have one motion up per asset at a time.
Pages:
Jump to: