SchellingCoin vs TruthCoin, differences and similarities

Previous topic - Next topic

martinBrown

The Ethereum blog has a new SchellingCoin post, its a follow-up to the first.

The core idea in the first post is this:
Quote
5. Every user who submitted a correctly submitted value between the 25th and 75th percentile gains a reward of N tokens (which we'll call "schells")

I see the core idea in TruthCoin as, basically, an extension to this. In TruthCoin, users who submitted consensus votes get a reward of N tokens ("TruthCoins" or "VoteCoins" depending on the naming scheme). With SchellingCoin, users are submitting a value (voting) of a single outcome, and the consensus is measured by taking the simple median value of all the votes. With TruthCoin, users are voting on a whole set of decisions, and the consensus is measured by taking the principal eigenvector (SVD) of the vote matrix. Taking the principal eigenvector is just a way to do dimensionality reduction on the multi-dimensional matrix of voter-decisions, the result is a multi-dimensional mean: "the first principal component corresponds to a line that passes through the multidimensional mean..."

SchellingCoin measures the consensus vote over a single decision. TruthCoin measures the consensus vote over multiple decisions. Both reward users for submitting consensus votes, and punish users for submitting outliers.


The second SchellingCoin post describes users sending a deposit along with their vote:
Quote
At the end of the epoch (or, more precisely, at the point of the first "ping" during the next epoch), everyone who submitted a value for P between the 25th and 75th percentile, weighted by deposit, gets their deposit back plus a small reward, everyone else gets their deposit minus a small penalty, and the median value is taken to be the true UScent/wei price. Everyone who failed to submit a valid value for P gets their deposit back minus a small penalty.

This deposit system introduces stake to prevent sybil attacks. TruthCoin also uses stake as a defense against sybil attacks: users have to own truthcoins in order to vote, and votes are weighted by the amount of truthcoins at stake. The difference here is that the TruthCoin "deposit" is made up-front: its just the user's purchase of some TruthCoins. In SchellingCoin, each and every vote carries its own separate deposit. TruthCoin votes are also weighted by reputation - another extension of the SchellingCoin model.


Quote from: psztorc on June 30, 2014, 12:14:59 AM
Now I'm going to repeat some things I said before:

Quote from: martinBrown
TruthCoin is basically an extension of SchellingCoin.

Quote from: martinBrown on June 27, 2014, 04:14:46 AM
"Price-pegging" by portfolio replication is totally different, would be better called price-tracking. Tokens are issued which would track the price of BTC (or USD, or any other asset) through a decentralized hedging contract, described by vbuterin in SchellingCoin.
"""Whatever helps you think about it. I think SchellingCoin makes no sense, and misuses the Schelling Point idea, which requires a completely symmetric and simultaneous game with one information set and multiple equilibria all with exactly the same payout. Nothing even close to what Vitalik wrote about."""

Well, I guess Vitalik is looking for a succinct name of the underlying principle, at risk of pedantic inaccuracy (he faced similar criticism when he distinguished the Ethereum scripting language by calling it Turing-complete).

My argument is that it is the same underlying idea behind SchellingCoin and TruthCoin, and even the bitcoin blockchain:

Quote
Thus, knowing only that the only value that other people's answers are going to be biased towards is the actual wei/UScent, the rational choice to vote for in order to maximize one's chance of being near-median is the wei/UScent itself. Hence, it's in everyone's best interests to come together and all provide their best estimate of the wei/UScent price. An interesting philosophical point is that this is also the same way that proof-of-work blockchains work, except that in that case what you are voting on is the time order of transactions instead of some particular numeric value;

Is there a better name for this than Schelling Point?

psztorc

gwern made Buterin aware of what I published, back when he made his previous post. The fact that his reaction was NOT "Wow, this would make a great Ethereum application" and was instead "I need to try again to defend my idea / make another imperfect-copy of the idea" leads me to believe that he either has an overlarge ego (ie one that interferes with his work), or that all of this (extraordinarily harmful) cult-like following is finally done the inevitable and damaged his judgement. Is it not clear from his blog, that he could code Truthcoin himself in as much time as he spent on those two posts?

My Truthcoin paper is already a win for Ethereum (just as it was for the Bitshares toolkit). (It was [the only] answer to "What would you need Ethereum for?"). The fact that it isn't playing out like that over there, except to you (martinBrown), is kind of a red flag (for me).

I haven't read the post yet (and don't particularly look forward to it), but from what you've told me, its still true that a group of rich individuals comprising a large amount of money have an incentive to contact each other and set an alternative coordination point. It is (now) more-similar to TC in that "there is a slight incentive to trick other people into voting falsely to take their money" (double-agent idea), which is an improvement. If Buterin "made" SC more similar to TC it would improve even more, because the addition of multiple decisions would greatly increase the importance of a unique solution (as it gives fully-honest-voters much-needed extra weight), and makes it much more difficult for attackers to coordinate.

Quote from: martinBrown on July 01, 2014, 12:31:55 AM
Well, I guess Vitalik is looking for a succinct name of the underlying principle, at risk of pedantic inaccuracy (he faced similar criticism when he distinguished the Ethereum scripting language by calling it Turing-complete).

My argument is that it is the same underlying idea behind SchellingCoin and TruthCoin, and even the bitcoin blockchain:

Quote
Thus, knowing only that the only value that other people's answers are going to be biased towards is the actual wei/UScent, the rational choice to vote for in order to maximize one's chance of being near-median is the wei/UScent itself. Hence, it's in everyone's best interests to come together and all provide their best estimate of the wei/UScent price. An interesting philosophical point is that this is also the same way that proof-of-work blockchains work, except that in that case what you are voting on is the time order of transactions instead of some particular numeric value;

Is there a better name for this than Schelling Point?
Yes, because the name is wrong. I don't know what the new name should be, "StakeCoin", "BetCoin", "PlutocracyCoin", "VitalikCoin", possibly a new word needs to be invented.

A Schelling Point has the following characteristics:
1] >1 Players are in a Game, where they must make one or more selections ("up", "left", 35, etc).
2] The players can't talk to each other at all (note that Truthcoin breaks this assumption, but attempts to contain the damage with encryption, double-agent-incentive, and careful construction of the payout function, to make communication non-credible).
3] The players would all do their personal best if all players made the same selection.
4] The selection itself is irrelevant to the players, any fully-coordinated selection would do. Payoff-wise, no one knows anything about someone's preference for a certain equilibrium.

3 and 4 are the main problems.  They're true for each Truthcoin subgame of one Voting Round, mainly because of the separation of Votecoins and money. 4 most of all is false for SchellingCoin (which is my main problem with calling it a Schelling focal point), as the players will, at any point in time, prefer very different and specific equilibria (they'd like to win on all their investments). Specifically, his first sentence is obviously false, and is practically plagiarized from BitsharesX anyway (its false for BitsharesX as well).

I agree that the choice of 'most work' would be a better candidate for Schelling Point, but the effect is ruined by having everyone purposefully download software which explicitly does this (see 4 and especially 2 above).


I have a small problem with you referring to Truthcoin as an 'extension' of SchellingCoin. Its clear from your writing that you don't mean to imply this, but I think, taken alone, the word 'extension' implies that I saw an existing SchellingCoin and 'extended' it (as you can't extend something which doesn't exist). In reality, I wrote Truthcoin in January, after researching all existing crypto attempts at PMs (which was time-consuming), and after writing the first proof-of-concept code over the previous two months. Buterin wrote months later and (on this instance) did not do any of this scholarly work, so "SchellingCoin is a reduction of Truthcoin".
Nullius In Verba

psztorc

Since there are two sides (often zero-sum by definition) to every trade/bet, a better game-theoretic metaphor might be: http://en.wikipedia.org/wiki/Battle_of_the_sexes_(game_theory)

Note that the "fair" mixed strategy equilibrium implies alternating between Opera and Football, ie an unstable and unrealistic price.

This analysis/criticism applies to BitsharesX as well.
Nullius In Verba

martinBrown

#3
The old comments at blog.ethereum.org were apparently lost when they moved to new CMS/comment software, but they were archived. For completeness, I'll quote here what vbuterin said about TruthCoin:
Quote
That’s a futarchy protocol, for predicting the future, although it does use Schelling points to determine the truth of boolean facts. It’s interesting, although tackling a somewhat different problem. Here I’m specifically focused on a small number of inexact scalar values, with the challenge of dealing with players who benefit from the value being slightly higher or lower, and environments where reputation is known to be problematic to rely upon. Different animals IMO.

As for the scheme not being as thought-out, that’s just my style; I take things from 0 to 1, and rely on others to do the 1 to n. I think it’s much more important for ideas to be simple and accessible than to be optimal right out of the box.


Quote from: psztorc on July 01, 2014, 03:46:32 PM
gwern made Buterin aware of what I published, back when he made his previous post. The fact that his reaction was NOT "Wow, this would make a great Ethereum application" and was instead "I need to try again to defend my idea / make another imperfect-copy of the idea" leads me to believe that he either has an overlarge ego (ie one that interferes with his work), or that all of this (extraordinarily harmful) cult-like following is finally done the inevitable and damaged his judgement.

A couple things. First, I don't get the impression that he's defending anything, he even admits that it isn't very "thought-out". To my mind, the SchellingCoin blog posts have two basic goals: introducing the concept of a decentralized data feed (most people aren't familiar with the idea, m-of-n oracles still dominate the discussion), and introducing Serpent (an Ethereum scripting language) as a way of writing blockchain contracts. He wrote the SchellingCoin blog posts as basic coding tutorials, not a series of whitepapers. They actually follow earlier ones he wrote on "NameCoin", where he gives 4 lines of code as an example namecoin implementation. Is he saying that his version is a complete and superior decentralized name registry? Nope, just a basic example contract for scripting tutorial purposes.

Second, if he engenders a cult-like following its probably because he's quite personable for a geek. He seems to enjoy patiently explaining (to a general audience) everything from how crypto algos and blockchain mining work, to monetization strategies for open source projects. Granted, expository writing is his primary skill (it was his job at bitcoinmagazine). But he continues to produce new tutorials, most recently the SchellingCoin blog post and a hot-off-the-press Ethereum Development Tutorial. This interaction style (personable and patient as a saint) seems to be working well at recruiting developers & followers.

Contrast that with Peter Todd, who some describe as an arrogant asshole, and was even called out publicly on the bitcoin mailing list by Mike Hearn (with nods of agreement from jgarzik, slush, and others). Peter Todd claims he's just pushing back against Satoshi idol worship, but talking down to people and yelling at them to RTFM is also harmful to collaboration. I would agree with him though, Satoshi worship is going on and it is harmful. Quite the contrary in Buterin's case, he's still humbly willing to engage any degree of criticism, major or minor (for a recent example, look how he responded to a minor criticism of the SchellingCoin vote commitment scheme).

I can appreciate Peter Todd's blunt (or rude) style, but a lot of others take criticism personally and would prefer to receive it in friendly, sugar-coated wrapping. Jgarzik notes that this is an "unsolved problem" in open-source projects. I would say its a lesson which often goes unlearned (and add the adage, "those who fail to learn from history are doomed to repeat it").


Quote from: psztorc on July 01, 2014, 03:46:32 PM
Is it not clear from his blog, that he could code Truthcoin himself in as much time as he spent on those two posts?

Maybe, but then most people would neither understand the code (ethereum script) nor the design (decentralized oracle)! It would just be a hunk of obscure code sitting in some github repo. Such tutorials are invaluable IMO, users don't adopt something if they can't understand it.


Quote from: psztorc on July 01, 2014, 03:46:32 PM
My Truthcoin paper is already a win for Ethereum (just as it was for the Bitshares toolkit). (It was [the only] answer to "What would you need Ethereum for?"). The fact that it isn't playing out like that over there, except to you (martinBrown), is kind of a red flag (for me).

But the Truthcoin paper doesn't specify it as an Ethereum DApp, so I guess people (or me at least) hesitate to hijack a brand if its meant to be something else and only something else. If Vitalik titled his blog post "a TruthCoin pre-alpha version on Ethereum" instead of "SchellingCoin" (assuming he took another look at TruthCoin and understood how its different from futarchy and similar to SchellingCoin), that might appear to be a little self-serving. Also, Ethereum is a win for all kinds of DApps, not just off-chain oracles, but evangelizing that message to other communities seems to mainly generate controversy. Most entrepreneurs are already set on their service being implemented on bitcoin strictly, or on MasterCoin, or NXT, or whatever happens to be their favored platform, and so aren't receptive to the idea of their baby being born on Ethereum. On the other hand, if somebody comes to an Ethereum channel/forum proposing a DApp, pretty much anything is warmly received.

Anyway, Ethereum can't be singled out here. TruthCoin was also overlooked by Gavin Andresen, for m-of-n oracles. A fully decentralized oracle is still too novel of a concept, and its playing out in an environment of skepticism and extreme favoritism in a market which is overwhelmed with innumerable pushers peddling some pet coin which promises the sky.

martinBrown

Quote from: psztorc on July 01, 2014, 03:46:32 PM
I haven't read the post yet (and don't particularly look forward to it), but from what you've told me, its still true that a group of rich individuals comprising a large amount of money have an incentive to contact each other and set an alternative coordination point. It is (now) more-similar to TC in that "there is a slight incentive to trick other people into voting falsely to take their money" (double-agent idea), which is an improvement. If Buterin "made" SC more similar to TC it would improve even more, because the addition of multiple decisions would greatly increase the importance of a unique solution (as it gives fully-honest-voters much-needed extra weight), and makes it much more difficult for attackers to coordinate.

Yes, I think you are right. The new SchellingCoin post doesn't address those subtle (but important) game-theory issues/incentives. Good thing too, as you mention, it would probably be duplicated effort at approaching an imperfect copy of TruthCoin. Rather, its focused on explaining mundane implementation details, stuff like how to use the Ethereum Virtual Machine to sort arrays. Its most useful in helping deal with the kind of issues somnicule faced in how to loop over user accounts.


Quote from: psztorc on July 01, 2014, 03:46:32 PM
Quote from: martinBrown on July 01, 2014, 12:31:55 AM
Well, I guess Vitalik is looking for a succinct name of the underlying principle, at risk of pedantic inaccuracy (he faced similar criticism when he distinguished the Ethereum scripting language by calling it Turing-complete).

My argument is that it is the same underlying idea behind SchellingCoin and TruthCoin, and even the bitcoin blockchain:

Quote
Thus, knowing only that the only value that other people's answers are going to be biased towards is the actual wei/UScent, the rational choice to vote for in order to maximize one's chance of being near-median is the wei/UScent itself. Hence, it's in everyone's best interests to come together and all provide their best estimate of the wei/UScent price. An interesting philosophical point is that this is also the same way that proof-of-work blockchains work, except that in that case what you are voting on is the time order of transactions instead of some particular numeric value;

Is there a better name for this than Schelling Point?
Yes, because the name is wrong. I don't know what the new name should be, "StakeCoin", "BetCoin", "PlutocracyCoin", "VitalikCoin", possibly a new word needs to be invented.

A Schelling Point has the following characteristics:
1] >1 Players are in a Game, where they must make one or more selections ("up", "left", 35, etc).
2] The players can't talk to each other at all (note that Truthcoin breaks this assumption, but attempts to contain the damage with encryption, double-agent-incentive, and careful construction of the payout function, to make communication non-credible).
3] The players would all do their personal best if all players made the same selection.
4] The selection itself is irrelevant to the players, any fully-coordinated selection would do. Payoff-wise, no one knows anything about someone's preference for a certain equilibrium.

3 and 4 are the main problems.  They're true for each Truthcoin subgame of one Voting Round, mainly because of the separation of Votecoins and money. 4 most of all is false for SchellingCoin (which is my main problem with calling it a Schelling focal point), as the players will, at any point in time, prefer very different and specific equilibria (they'd like to win on all their investments). Specifically, his first sentence is obviously false, and is practically plagiarized from BitsharesX anyway (its false for BitsharesX as well).

I agree that the choice of 'most work' would be a better candidate for Schelling Point, but the effect is ruined by having everyone purposefully download software which explicitly does this (see 4 and especially 2 above).

Thanks, this explanation helps a lot. It makes sense, where he says "the only value that other people's answers are going to be biased towards is the actual wei/UScent", that is false because if a group of rich people collude, their answer will be biased toward whatever value they use to manipulate the outcome and collect everyone else's deposits. However, it would be true under the assumption that there's no entity coordinating >51% of the stake for a collusion attack, I think.

I still need to think more about how TruthCoin resists that by the separation of Votecoins and money, that's actually what I was trying to get at when I started this thread.


Quote from: psztorc on July 01, 2014, 03:46:32 PM
I have a small problem with you referring to Truthcoin as an 'extension' of SchellingCoin. Its clear from your writing that you don't mean to imply this, but I think, taken alone, the word 'extension' implies that I saw an existing SchellingCoin and 'extended' it (as you can't extend something which doesn't exist). In reality, I wrote Truthcoin in January, after researching all existing crypto attempts at PMs (which was time-consuming), and after writing the first proof-of-concept code over the previous two months. Buterin wrote months later and (on this instance) did not do any of this scholarly work, so "SchellingCoin is a reduction of Truthcoin".

Yeah, I used the word extension to mean that the TruthCoin model "extends" the basic idea of a decentralized oracle that rewards users for consensus votes. In its most basic form, its vulnerable to all sorts of collusion attacks to manipulate the outcomes, but TruthCoin extends the basic model (adding reputation, SVD, etc) to give it resistance to attacks. (not insisting here, just using it in more context to clarify).

I was alternatively going to use "SchellingCoin as a step to TruthCoin" as the thread topic. I'm not sure what the best verbiage would be (SchellingCoin 2.0? ;) ), just trying to get the point across that there's the basic concept of a decentralized oracle, and a well thought-out version that's a lot more resistant to attack.