Truthcoin Talk 2.0

General Category => Design / Incentives / Game Theory => Topic started by: psztorc on May 30, 2014, 11:17:10 PM

Title: Getting Paid to Increase Beta
Post by: psztorc on May 30, 2014, 11:17:10 PM
 I'm just throwing this idea out here. Assuming it even makes sense, it certainly wouldn't be in version 0.1.

The design incorporates Markets that have a 'Beta', which adds liquidity to the Market at some upfront cost.

Its possible that someone (Alice) will see a market, and say "I'm interested in learning about this, I wish that market were more liquid." Currently, Alice can donate $ to the Market to increase its Beta, as easily as making a share purchase.

However, it might be better to reward Alice for doing this (more of "I think that more people would trade if the Beta were just a little higher."). Perhaps she can get a tiny fraction of any future trading volumes, if the original owner agrees? If some other condition is met? Any ideas?
Title: Re: Getting Paid to Increase Beta
Post by: zack on May 31, 2014, 01:59:56 AM
I think that the increase in accuracy of knowledge will be reward in itself more often than not. People dying of cancer REALLY want to be able to increase beta to save their life.

In the implementation I am working on, one of the transactions is called "prediction_market".
If you use a new marketID, then this creates a new market. If you reuse an old marketID, then this increases beta of the existing market.

The prediction_market transaction can have multiple buy_shares transactions within it, allowing the creator of the transaction to move the price simultaneously with increasing beta.
Title: Re: Getting Paid to Increase Beta
Post by: somnicule on June 07, 2014, 04:28:24 AM
The author of a market is partially paid according to the liquidity they provide to the market. Someone increasing Beta should probably be rewarded with trading fees proportional to the amount of liquidity they've provided. So if, say, 25% of trading fees go to the market author, after someone pays to increase Beta they get the amount they paid to increase beta, over the total maximum loss of the market maker.

So let's say the initial author provides 2000 TRU of liquidity to set the initial beta, they get 25% of all trading fees up until the point where someone increases the Beta via another 500 TRU, after which point the author receives 20% of trading fees after that point, and the other liquidity provider gets 5% of trading fees after that point.

Not sure how much sense this makes, I haven't checked out the math yet with regards to how much beta is shifted.
Title: Re: Getting Paid to Increase Beta
Post by: martinBrown on June 16, 2014, 11:34:10 PM
The abe & sandholm LMSR (http://www.eecs.harvard.edu/cs286r/courses/fall12/papers/OPRS10.pdf) basically does this. It automatically increases the beta parameter proportional to the cumulative trading volume. The downside to this "liquidity-sensitive" LMSR is that as the beta increases, the market becomes more resistant to price changes, so it won't adapt to "market shocks". See figure 1b in this paper (http://www.cse.wustl.edu/~sanmay/papers/bmm-ec.pdf).
Title: Re: Getting Paid to Increase Beta
Post by: psztorc on June 17, 2014, 03:02:38 PM
Yes, I've considered that paper. I actually already do what they do, and slightly overcharge the Trader to reward the Author (author-entrepreneurship). The Author himself could take this money and Amp Beta.

I guess I no longer think that my OP idea is efficient. Authors can take out loans to Amp Beta, which would be a little more organized, I think.
Title: Re: Getting Paid to Increase Beta
Post by: darkmatter7 on July 30, 2014, 06:32:09 PM
On a related side note:

Have we discussed

(2) Is most relevant here: I have been exploring secure multiparty computation protocols for this purpose and will explain more when I have time.



Title: Re: Getting Paid to Increase Beta
Post by: psztorc on July 30, 2014, 07:02:05 PM
Anonymity might make (1) incompatible with this project, but I suppose you could give out colored coins (via valid-participants rule) and only allow those to be traded. (Why would you want to exclude anyone, anyway?)

(2) is a little curious. Private firms ( GE, Best Buy, Google) already do this, but I can't see it being easy to 'hide' the market. People need to know what the market is, and what the prices are, in order for the idea to function. Any participant could leak that information.
Title: Re: Getting Paid to Increase Beta
Post by: Troy on October 14, 2014, 10:59:44 PM
I like this concept.

If some portion of the transaction fees could be allocated to pay dividends at certain intervals to those who hold an open position in the market on either side? This rate could be either fixed globally, or potentially specified by the author when a market is created. Allocation of dividends could be based on each participant's CashCoin cost basis of their open position. This would provide an incentive for individuals to open positions in a market early, and an incentive for market participants to encourage others to participate as well, increasing transaction fees and also the market liquidity. This way when you open a position in a market you also hold an interest in increasing the liquidity of the market itself.

If the rate were variable per market, then market authors might set the rate low for markets where they think they can do a good enough job generating interest in the market themselves (thus increasing their own transaction fee payout); however higher dividend rates are more appealing to potential participants to enter the market in the first place.

This would have to eat into the percentage of transaction fees allocated to other parties, but it might be worth it.
Title: Re: Getting Paid to Increase Beta
Post by: zack on October 15, 2014, 05:20:22 PM
If I simultaneously buy both share types, isn't that the same as increasing beta?
Title: Re: Getting Paid to Increase Beta
Post by: koeppelmann on October 15, 2014, 06:02:11 PM
What do you mean by simultaneously? And if you buy 1000 shares of state one and then 1000 shares of state two you do not change the Beta at all.
Try it out: https://cdetrio.github.io/prediction-market-lmsr/index.html

This is by the way the reason why I think this critique here is stall very valid:
http://forum.truthcoin.info/index.php/topic,130.msg510.html#msg510

The critique leads to this need:
"I think it would be necessary to place classical buy/sell orders in the truthcoin blockchain that either get active as soon as the market maker price goes below them or that could be matched by other orders directly."
Title: Re: Getting Paid to Increase Beta
Post by: Troy on October 15, 2014, 10:11:49 PM
Quote from: zack on October 15, 2014, 05:20:22 PM
If I simultaneously buy both share types, isn't that the same as increasing beta?

Yes, but if you buy both sides (matching with yourself), you would lose because you would have zero net position, and would only get back a fraction of any spent transaction fees if there are any dividends paid to shareholders
Title: Re: Getting Paid to Increase Beta
Post by: koeppelmann on October 15, 2014, 10:18:43 PM
Quote from: Troy on October 15, 2014, 10:11:49 PM
Quote from: zack on October 15, 2014, 05:20:22 PM
If I simultaneously buy both share types, isn't that the same as increasing beta?

Yes, but if you buy both sides (matching with yourself), you would lose because you would have zero net position, and would only get back a fraction of any spent transaction fees if there are any dividends paid to shareholders

No! Really - check it - it will not effect the Beta/ aka. it would not make the market more stable. The same transaction after this buy would move the market the same way as before the buy.
Title: Re: Getting Paid to Increase Beta
Post by: Troy on October 15, 2014, 10:33:41 PM
Quote from: koeppelmann on October 15, 2014, 10:18:43 PM
Quote from: Troy on October 15, 2014, 10:11:49 PM
Quote from: zack on October 15, 2014, 05:20:22 PM
If I simultaneously buy both share types, isn't that the same as increasing beta?

Yes, but if you buy both sides (matching with yourself), you would lose because you would have zero net position, and would only get back a fraction of any spent transaction fees if there are any dividends paid to shareholders

No! Really - check it - it will not effect the Beta/ aka. it would not make the market more stable. The same transaction after this buy would move the market the same way as before the buy.

Yes you are right. The only think you would really be influencing is the transaction volume. Although you might be able to get creative and place multiple bids at different prices and only match some of them on the other side. I think that would increase the beta?
Title: Re: Getting Paid to Increase Beta
Post by: zack on October 15, 2014, 11:20:23 PM
I was wrong.
Buying both types of shares doesn't increase liquidity. The price is just as easy to move as before.

B*ln(e^(q1/B)+e^(q2/B))
I buy X*B of both types of shares.
B*ln(e^(X+q1/B)+e^(X+q2/B)
B*ln(e^X(e^(q1/B)+e^(q2/B))
B*X+B*ln(e^(q1/B)+e^(q2/B))
Title: Re: Getting Paid to Increase Beta
Post by: psztorc on October 16, 2014, 01:49:55 AM
Interesting comments....

Are you all by any chance comparing scenarios where the market prices in the pre-buy-both and post-buy-both are at 50% 50%?  For example, are you using [5, 5] shares first, and buy 45 of each for [50, 50] shares, and looking then at the effect of buying one of the first share [+1, +0] on the market prices?

If you are, I would try it again with starting shares of [4, 6] and increasing to [40, 60].

Buying more shares of all states does have the same practical effect as increasing b, but the market scoring rules (logarithmic, spherical, quadratic) change the expression of that practical effect. The LMSR pumps in some extra 'practical liquidity' by draining liquidity from the center (".5", where it assumes individuals will be eager to trade) and dumping it into the edges.
Title: Re: Getting Paid to Increase Beta
Post by: koeppelmann on October 16, 2014, 05:22:29 PM
Quote from: psztorc on October 16, 2014, 01:49:55 AM
Buying more shares of all states does have the same practical effect as increasing b

I still think this is NOT true. The market never gets more "stable" when more shares are sold. The example you came up with [4,6] vs [40,60] is kind of misleading because it suggest that both markets result in the same price but the second on has a more stable one. But this is not true. In fact the first state is the same state as [0,2] and the second state is the same one as [0,20]. Thus the second one has a complete different price. And yes: it is true, the closer the price is to 0 or to 1 the more shares you need to buy to move it. But this is a hole different story than increasing the Beta.

All blame on me if I am wrong - but I am about 95% sure I am not.
Title: Re: Getting Paid to Increase Beta
Post by: zack on October 16, 2014, 05:53:45 PM
Price function from http://blog.oddhead.com/2006/10/30/implementing-hansons-market-maker/
price1 = e^(q1/B)/(e^(q1/B)+e^(q2/B))
using the magic of wolfram alpha
d/d(q1) price1=d/d(q2) price1= e^((q1+q2)/B)/(B*(e^(q1/B)+e^(q2/B)^2))
I try plugging in 100 for B and q1, and I graph for q2 in a range:
http://www.wolframalpha.com/share/clip?f=d41d8cd98f00b204e9800998ecf8427e1ukesc2vp8

It looks like Paul is right. So long as price isn't 0.5, the amount of money it costs to move the price 1% will increase as the total amount of money invested in the market increases.

Koeppelmann is right too. This is not identical to raising beta.

I am still not sure if a tool for increasing beta would be useful. Can't we run the same market in parallel? isn't that the same?
Title: Re: Getting Paid to Increase Beta
Post by: koeppelmann on October 16, 2014, 05:59:08 PM
Quote from: zack on October 16, 2014, 05:53:45 PM
Can't we run the same market in parallel? isn't that the same?

True, that would have the same effect as increasing the beta. Lets say you do a second market with the same Beta is would be the same as doubling the Beta since you can now buy at both markets. It can be covert by a UI so that users do not get bothered at all.

Good suggestions.
Title: Re: Getting Paid to Increase Beta
Post by: psztorc on October 16, 2014, 07:37:00 PM
I think we're having a miscommunication here.

I am not advising people to buy exactly the same number of shares of all states. These people should just use an increase-beta transaction to "donate liquidity" (which is as easy as any other transaction). I am just saying "more shares".

You are right that the MSRs, which need to get every full set (1 share of each state) paid a total of $1, essentially subtract out the minimum state, so adding +1 +1 to each market-state would do nothing.

However, my opinion (nothing about equations) is that, in practice, as more shares are created, the distance between the Q(shares of min-share state) and Q(shares of max-share state) will increase, knocking the prices away from uniform (50% - 50%). This is why I bring up [4 6] vs [40 60] .... more activity means the distance is more likely to change from 2 to 20 (this is related to your earlier point about the market being "too" unstable (easier to get from the dull [4 6] to the more-extreme prices caused by [40 60]).

My major intuition for this is simply that all of our traditional markets (which do not use MSRs at all) become more liquid as there are more outstanding shares and a higher trading volume. Market liquidity seems to be directly a function of scale, at every other place, so why not here?
Title: Re: Getting Paid to Increase Beta
Post by: koeppelmann on October 16, 2014, 07:56:03 PM
Quote from: psztorc on October 16, 2014, 07:37:00 PM
My major intuition for this is simply that all of our traditional markets (which do not use MSRs at all) become more liquid as there are more outstanding shares and a higher trading volume. Market liquidity seems to be directly a function of scale, at every other place, so why not here?

Well, maybe this is the reason why MSR is not used at all :) In traditional markets it is possible to increase the liquidity by placing "open" orders. So there are open orders in the book that lead to a kind of stability. With the pure MSR market maker model it is not possible to place an "open order".

That is why I am arguing it should be possible to place traditional orders.


To make it very concrete: Lets have a look at your cool xlsx demo - the first minimal Example with Hillary becoming president.
Quote from: psztorc on October 16, 2014, 07:37:00 PM
However, my opinion (nothing about equations) is that, in practice, as more shares are created, the distance between the Q(shares of min-share state) and Q(shares of max-share state) will increase, knocking the prices away from uniform (50% - 50%). This is why I bring up [4 6] vs [40 60] .... more activity means the distance is more likely to change from 2 to 20 (this is related to your earlier point about the market being "too" unstable (easier to get from the dull [4 6] to the more-extreme prices caused by [40 60]).
Lets say the real prob for Hillary is right now 40%. A [40,20] distribution or a [20,0] will result in a price of 0.054/ 5.4%. THIS IS NOT GOING TO HAPPEN. Or the person who buy so much shares is not action rational at all. The only way larger trade can be done is by a huge sequence of small "buy_state_1/buy_state_2/buy_state_1/buy_state_2/...".

Well, in theory this can be build on top of the blockchain (I would be an external program that buys shares as soon as a certain price is reached) However - I think it is clearly preferable to have this inside the blockchain.

Title: Re: Getting Paid to Increase Beta
Post by: psztorc on October 16, 2014, 07:59:28 PM
Quote from: koeppelmann on October 16, 2014, 07:56:03 PM
Well, maybe this is the reason why MSR is not used at all :) In traditional markets it is possible to increase the liquidity by placing "open" orders. So there are open orders in the book that lead to a kind of stability. With the pure MSR market maker model it is not possible to place an "open order".

That is why I am arguing it should be possible to place traditional orders.
It is! I mention it in the whitepaper somewhere as "transferring" shares...(e) Trading Activity Section (4)
Title: Re: Getting Paid to Increase Beta
Post by: psztorc on October 16, 2014, 08:01:04 PM
But the order books themselves, surely you would agree would be madness to place into the blockchain...they would be flooded with orders.

One can still have their software open, ready to make trades, and have a lot of non-blockchain stuff happen, but the trade would be on-blockchain.
Title: Re: Getting Paid to Increase Beta
Post by: koeppelmann on October 16, 2014, 08:18:38 PM
As far as I understand NXT, Counterparty, and BitsharesX are having exactly this: a decentralized marketplace/order book and a automatic matching by the blockchain/the consensus mechanism.

So I guess it is possible.

It might be even possible to use this infrastructure for the cashcoin / share trading part. The distribution of the cash coins than need to be interpreted with the help of the votecoin blockchain. And it would be still possible to reward votecoin holders in the way you proposed in the paper.
Title: Re: Getting Paid to Increase Beta
Post by: Bitcoinfan on October 16, 2014, 09:21:26 PM
Quote from: koeppelmann on October 16, 2014, 08:18:38 PM
As far as I understand NXT, Counterparty, and BitsharesX are having exactly this: a decentralized marketplace/order book and a automatic matching by the blockchain/the consensus mechanism.


I think the comparison is not the same.  NXT, XCP and BTS are only expected to handle several thousand different assets. TC on the other hand, since it is a information market can accommodate for millions upon millions of different prediction markets.  This is the way I've thought about it.   I'm sure NXT, XCP, or BTS asset ledger handle this type of volume with code tweaks, improvements in bandwidth, hd capacity, etc, but a bid ask table is always going to be demanding and limiting on a blockchain.  LMSR can handle this stressed usage right from the start.

LMSR is a move forward because its as simple as things can get.

Title: Re: Getting Paid to Increase Beta
Post by: koeppelmann on October 16, 2014, 10:12:50 PM
Quote from: psztorc on October 16, 2014, 07:59:28 PM
Quote from: koeppelmann on October 16, 2014, 07:56:03 PM
Well, maybe this is the reason why MSR is not used at all :) In traditional markets it is possible to increase the liquidity by placing "open" orders. So there are open orders in the book that lead to a kind of stability. With the pure MSR market maker model it is not possible to place an "open order".

That is why I am arguing it should be possible to place traditional orders.
It is! I mention it in the whitepaper somewhere as "transferring" shares...(e) Trading Activity Section (4)

Ok, even if a LMSR only approach is used: if you can place orders like Paul says here - how is that different than a order book? I argue it would have the same size/ blockchain bloat.

Title: Re: Getting Paid to Increase Beta
Post by: psztorc on October 17, 2014, 02:34:06 PM
Because the actual trade itself is could look exactly like a Bitcoin tx, whereas the order books would have to contain this contingencies of potentially-canceled orders.

Having the blockchain contain the order book, instead of the orders, would be a little like Bitcoin containing not just a "credit card statement" list, but also a complete "shopping list" of everything I'd like to buy at various prices at which I'd like to buy those things. If I buy something, I actually moved money (it was useful and I paid a transaction fee), but I can make all the shopping lists I want at my house without bothering Bank of America.

You want to put order books and order matching into the blockchain? That seems like an insane amount of work (re: Flash Boys) for no benefit whatsoever. Will you charge tx-fee for each order placement? Will all placed-but-not-filled orders need to be 100% funded? What about cancelling orders? What if someone front-runs a cancelled order? We are going to freeze whatever algorithm you use permanently into the blockchain block-validation requirements?

It really doesn't even compare to an atomic single state update involving only one party (and no strategy), but you're free to code something up and show it to us, of course.
Title: Re: Getting Paid to Increase Beta
Post by: zack on October 17, 2014, 04:17:02 PM
If people are willing to pay their way in tx fees, then there is no harm in letting them use the blockchain as an order book.
Every additional tx fee paid makes the blockchain more valuable.

paul>You want to put order books and order matching into the blockchain?

yes, but not until we have at least one established truthcoin blockchain already with hundreds of users.

paul>  That seems like an insane amount of work (re: Flash Boys) for no benefit whatsoever.
It would be a lot of work, but I think there is a benefit. Prices are harder to manipulate, and more people are burning tx fees, so the currency raises in value faster.

paul> Will all placed-but-not-filled orders need to be 100% funded?
At first, yes.

paul> What about cancelling orders?
another tx with another fee.

paul> What if someone front-runs a cancelled order?
Whichever tx gets into a block first wins.

paul> We are going to freeze whatever algorithm you use permanently into the blockchain block-validation requirements?
Yes, that particular blockchain would be frozen with a particular algorithm for handling orders. Just like how every other algorithm in a blockchain is frozen.

I expect that I will write the order book software in ~2 years, depending upon how other stuff goes.
If someone else does it before me, I would appreciate it.