# Strategyproofness

In mechanism design, a strategyproof (SP) mechanism is a game form in which each player has a weakly-dominant strategy, so that no player can gain by "spying" over the other players to know what they are going to play. When the players have private information (e.g. their type or their value to some item), and the strategy space of each player consists of the possible information values (e.g. possible types or values), a truthful mechanism is a game in which revealing the true information is a weakly-dominant strategy for each player.$^{:244}$ An SP mechanism is also called dominant-strategy-incentive-compatible (DSIC),$^{:415}$ to distinguish it from other kinds of incentive compatibility.
A SP mechanism is immune to manipulations by individual players (but not by coalitions). In contrast, in a group strategyproof mechanism, no group of people can collude to misreport their preferences in a way that makes every member better off. In a strong group strategyproof mechanism, no group of people can collude to misreport their preferences in a way that makes at least one member of the group better off without making any of the remaining members worse off.

## Examples

Typical examples of SP mechanisms are:
* a majority vote between two alternatives;
* a second-price auction when participants have quasilinear utility;
* a VCG mechanism when participants have quasilinear utility
Typical examples of mechanisms that are not SP are:
* any deterministic non-dictatorial election between three or more alternatives;
* a first-price auction

### SP in network routing

SP is also applicable in network routing. Consider a network as a graph where each edge (i.e. link) has an associated cost of transmission, privately known to the owner of the link. The owner of a link wishes to be compensated for relaying messages. As the sender of a message on the network, one wants to find the least cost path. There are efficient methods for doing so, even in large networks. However, there is one problem: the costs for each link are unknown. A naive approach would be to ask the owner of each link the cost, use these declared costs to find the least cost path, and pay all links on the path their declared costs. However, it can be shown that this payment scheme is not SP, that is, the owners of some links can benefit by lying about the cost. We may end up paying far more than the actual cost. It can be shown that given certain assumptions about the network and the players (owners of links), a variant of the VCG mechanism is SP.

## Formal definitions

There is a set $X$ of possible outcomes.
There are $n$ agents which have different valuations for each outcome. The valuation of agent $i$ is represented as a function:
    $v_{i}:X\longrightarrow R_{+}$
which expresses the value it has for each alternative, in monetary terms.
It is assumed that the agents have Quasilinear utility functions; this means that, if the outcome is $x$ and in addition the agent receives a payment $p_{i}$ (positive or negative), then the total utility of agent $i$ is:
    $u_{i}:=v_{i}(x)+p_{i}$
The vector of all value-functions is denoted by $v$.
For every agent $i$, the vector of all value-functions of the other agents is denoted by $v_{-i}$. So $v\equiv (v_{i},v_{-i})$.
A mechanism is a pair of functions:
* An $Outcome$ function, that takes as input the value-vector $v$ and returns an outcome $x\in X$ (it is also called a social choice function);
* A $Payment$ function, that takes as input the value-vector $v$ and returns a vector of payments, $(p_{1},\dots ,p_{n})$, determining how much each player should receive (a negative payment means that the player should pay a positive amount).
A mechanism is called strategyproof if, for every player $i$ and for every value-vector of the other players $v_{-i}$:
    $v_{i}(Outcome(v_{i},v_{-i}))+Payment_{i}(v_{i},v_{-i})\geq v_{i}(Outcome(v_{i}',v_{-i}))+Payment_{i}(v_{i}',v_{-i})$

## Characterization

It is helpful to have simple conditions for checking whether a given mechanism is SP or not. This subsection shows two simple conditions that are both necessary and sufficient.
If a mechanism with monetary transfers is SP, then it must satisfy the following two conditions, for every agent $i$:$^{:226}$
1. The payment to agent $i$ is a function of the chosen outcome and of the valuations of the other agents $v_{-i}$ - but not a direct function of the agent's own valuation $v_{i}$. Formally, there exists a price function $Price_{i}$, that takes as input an outcome $x\in X$ and a valuation vector for the other agents $v_{-i}$, and returns the payment for agent $i$, such that for every $v_{i},v_{i}',v_{-i}$, if:
    $Outcome(v_{i},v_{-i})=Outcome(v_{i}',v_{-i})$
then:
    $Payment_{i}(v_{i},v_{-i})=Payment_{i}(v_{i}',v_{-i})$
PROOF: If $Payment_{i}(v_{i},v_{-i})>Payment_{i}(v_{i}',v_{-i})$ then an agent with valuation $v_{i}'$ prefers to report $v_{i}$, since it gives him the same outcome and a larger payment; similarly, if $Payment_{i}(v_{i},v_{-i})<Payment_{i}(v_{i}',v_{-i})$ then an agent with valuation $v_{i}$ prefers to report $v_{i}'$.
As a corollary, there exists a "price-tag" function, $Price_{i}$, that takes as input an outcome $x\in X$ and a valuation vector for the other agents $v_{-i}$, and returns the payment for agent $i$ For every $v_{i},v_{-i}$, if:
    $Outcome(v_{i},v_{-i})=x$
then:
    $Payment_{i}(v_{i},v_{-i})=Price_{i}(x,v_{-i})$
2. The selected outcome is optimal for agent $i$, given the other agents' valuations. Formally:
    $Outcome(v_{i},v_{-i})\in \arg \max _{x}[v_{i}(x)+Price_{i}(x,v_{-i})]$
where the maximization is over all outcomes in the range of $Outcome(\cdot ,v_{-i})$.
PROOF: If there is another outcome $x'=Outcome(v_{i}',v_{-i})$ such that $v_{i}(x')+Price_{i}(x',v_{-i})>v_{i}(x)+Price_{i}(x,v_{-i})$, then an agent with valuation $v_{i}$ prefers to report $v_{i}'$, since it gives him a larger total utility.
Conditions 1 and 2 are not only necessary but also sufficient: any mechanism that satisfies conditions 1 and 2 is SP.
PROOF: Fix an agent $i$ and valuations $v_{i},v_{i}',v_{-i}$. Denote:
    $x:=Outcome(v_{i},v_{-i})$ - the outcome when the agent acts truthfully.
    $x':=Outcome(v_{i}',v_{-i})$ - the outcome when the agent acts untruthfully.
By property 1, the utility of the agent when playing truthfully is:
    $u_{i}(v_{i})=v_{i}(x)+Price_{i}(x,v_{-i})$
and the utility of the agent when playing untruthfully is:
    $u_{i}(v_{i}')=v_{i}(x')+Price_{i}(x',v_{-i})$
By property 2:
    $u_{i}(v_{i})\geq u_{i}(v_{i}')$
so it is a dominant strategy for the agent to act truthfully.

### Outcome-function characterization

The actual goal of a mechanism is its $Outcome$ function; the payment function is just a tool to induce the players to be truthful. Hence, it is useful to know, given a certain outcome function, whether it can be implemented using a SP mechanism or not (this property is also called implementability).
The monotonicity property is necessary for strategyproofness.

## Truthful mechanisms in single-parameter domains

A single-parameter domain is a game in which each player $i$ gets a certain positive value $v_{i}$ for "winning" and a value 0 for "losing". A simple example is a single-item auction, in which $v_{i}$ is the value that player $i$ assigns to the item.
For this setting, it is easy to characterize truthful mechanisms. Begin with some definitions.
A mechanism is called normalized if every losing bid pays 0.
A mechanism is called monotone if, when a player raises his bid, his chances of winning (weakly) increase.
For a monotone mechanism, for every player i and every combination of bids of the other players, there is a critical value in which the player switches from losing to winning.
A normalized mechanism on a single-parameter domain is truthful if the following two conditions hold:$^{:229–230}$
* The assignment function is monotone in each of the bids, and:
* Every winning bid pays the critical value.

## Truthfulness of randomized mechanisms

There are various ways to extend the notion of truthfulness to randomized mechanisms. They are, from strongest to weakest:$^{:6–8}$
* Universal truthfulness: for each randomization of the algorithm, the resulting mechanism is truthful. In other words: a universally-truthful mechanism is a randomization over deterministic truthful mechanisms, where the weights may be input-dependent.
* Strong stochastic-dominance truthfulness (strong-SD-truthfulness): The vector of probabilities that an agent receives by being truthful has first-order stochastic dominance over the vector of probabilities he gets by misreporting. That is: the probability of getting the top priority is at least as high AND the probability of getting one of the two top priorities is at least as high AND ... the probability of getting one of the m top priorities is at least as high.
* Lexicographic truthfulness (lex-truthfulness): The vector of probabilities that an agent receives by being truthful has lexicographic dominance over the vector of probabilities he gets by misreporting. That is: the probability of getting the top priority is higher OR (the probability of getting the top priority is equal and the probability of getting one of the two top priorities is higher) OR ... (the probability of getting the first m-1 priorities priority is equal and the probability of getting one of the m top priorities is higher) OR (all probabilities are equal).
* Weak stochastic-dominance truthfulness (weak-SD-truthfulness): The vector of probabilities that an agent receives by being truthful is not first-order-stochastically-dominated by the vector of probabilities he gets by misreporting.
Universal implies strong-SD implies Lex implies weak-SD, and all implications are strict.$^{:Thm.3.4}$

### Truthfulness with high probability

For every constant $\epsilon >0$, a randomized mechanism is called truthful with probability $1-\epsilon$ if for every agent and for every vector of bids, the probability that the agent benefits by bidding non-truthfully is at most $\epsilon$, where the probability is taken over the randomness of the mechanism.$^{:349}$
If the constant $\epsilon$ goes to 0 when the number of bidders grows, then the mechanism is called truthful with high probability. This notion is weaker than full truthfulness, but it is still useful in some cases; see e.g. consensus estimate.

## False-name-proofness

A new type of fraud that has become common with the abundance of internet-based auctions is false-name bids – bids submitted by a single bidder using multiple identifiers such as multiple e-mail addresses.
False-name-proofness means that there is no incentive for any of the players to issue false-name-bids. This is a stronger notion than strategyproofness. In particular, the Vickrey–Clarke–Groves (VCG) auction is not false-name-proof.
False-name-proofness is importantly different from group strategyproofness because it assumes that an individual alone can simulate certain behaviors that normally require the collusive coordination of multiple individuals.