Picking up right where we left, we are going to be looking at the fundamentals of Mechanism Design. This is particularly foundational given the massive role tokens play in designing crypto-economies. Mechanism design is obviously an entire discipline in itself and has been studied extensively. This post merely attempts to give you a taste of its usefulness to web3. Also, we are complete noobs when it comes to the specifics of some of the concepts discussed here. Do feel free to comment your thoughts on any kind of gaps you might find in the discussion.
In game theory, we are given a situation or a game and are presented with the task of analyzing its outcomes and utilities to its players. Mechanism design can be thought of as the opposite. We start with the desirable outcomes for players and design a game / mechanism to incentivize players towards those outcomes. If you think about it, human beings are goal oriented machines that react to incentives. We often break our goals down to sub goals. If your goal was say, to eat ice cream, you then start thinking about the sub goals like going to a store, purchasing it and so on. While goals and sub-goals might be diverse depending upon the context, money can often be a unifying sub-goal. Money is like one of the earliest mechanism designs that solved the problem of double coincidence of wants. Everyone wants money. So if we can design a mechanism that gives people money, we can then insert ourselves on the path to pretty much any goal that those humans want to achieve.
One of the coolest things about a good mechanism design is how it can push individual selfish actors to exhibit behaviours that are desirable to the group by getting them to think about the question of how to play the ‘game’ most effectively. This reduces a lot of central planning effort.
Mechanism design basics
This segment borrows from Tim Roughgarden’s algorithmic game theory lecture series and it discusses mechanism design through single-item auctions. Let’s now build a model for how participants would act in such auctions. Consider a typical eBay style auction of a single item which has ‘n’ bidders. Let the maximum willingness of a bidder ‘i’ to pay for the item be ‘Vi’ (called valuation). Another assumption we make here is that individual bids are private - it is unknown to the seller and the other bidders and each bidder privately communicates their bid to the seller during the auction. Our model to calculate the utility for the bidder is as follows:
Utility to the bidder is 0 if the bidder loses the auction
Utility to the bidder is Vi - p if the bidder wins at a price p
There are now broadly two ways in which the seller can decide on the selling price once they pick the winning bidder: First-price auctions and second-price auctions. In first-price auctions, the winner has to pay the amount that they originally placed in the bid whereas in a second-price or a Vickrey auction, the highest bidder wins and pays a price equal to the second-highest bid (like on eBay). We will focus on the latter as it is easier to analyze.
Firstly, in a Vickery auction it can be proven that the dominant strategy for the bidders is to set their bids equal to their private valuations Vi (this is not the case for first-price auctions as Vi - p would go to 0 if p = Vi). This makes second-price auctions easier to participate as this dominant strategy is independent of others’ bids. Secondly, a truth-telling bidder would never regret participating in this type of auction as Vi - p ≥ 0 always. We now note the three important properties of the Vickery auction:
Strong incentive guarantees: It is Dominant Strategy Incentive Compatible (DSIC). Incentive compatibility is when the best outcome is achieved by being true to your preference. This means that it is in the bidders’ best interest to be truthful about their valuations as it never leads to negative utility
Strong performance guarantees: The auction maximizes social surplus, which is the sum of the valuations of the winners. Basically this means that the bidder with the highest valuation wins the auction
Computational efficiency: Computationally, it can be implemented in linear time
It is worthy to note that these 3 properties are pretty desirable for mechanisms in general. To extend these benefits to more complex allocation problems, Tim proposes a two step design approach:
Assuming bidders bid truthfully, how do we ensure strong performance guarantees and computational efficiency?
Given the answer to the above step, how do we set selling prices to ensure strong incentive guarantees?
This is barely scratching the surface but hopefully it gives you a flavour of how to approach mechanism design. Do check out the entire lecture series if you’d like to learn more about this. As a designer, you get to control the mechanism but not the players or their preferences:
The central task in mechanism design is to specify a mechanism that incentivizes rational agents to behave in certain ways, based upon their private information, that lead to socially desired outcomes
Auction design mechanisms have been extensively studied in computer science probably because giant tech companies like Google and eBay capture most of their revenues from such auctions. At around 2006, Google generated roughly 98% of its revenue from sponsored auctions. One of the most obvious applications of auction design in the world of decentralized protocols would be token sales (or tokenomics in general). Direct application of these principles can be a pretty effective way to arrive at a fairly accurate token value. See you tomorrow!