ep 3 – Auction Design for web3
10 Sept 2023 · 1:06:33
a16z crypto's Sonal Chokshi hosts Scott Kominers, a16z crypto research partner and Harvard Business School professor, and Tim Roughgarden, head of research at a16z crypto and a Columbia professor who helped found algorithmic game theory, for a tour of auction design in web3. They cover NFT mints, the mechanics behind EIP-1559, gas wars, and the incentive design choices builders face when running permissionless, market-clearing mechanisms.
Speakers
Topics
Transcript
Welcome to Web3 with a16z, a show about the next internet from the team at a16z crypto. That includes me, your host, Sonal Chokshi. This show is for anyone, whether developer, artist, community leader, or other builder, seeking to understand and go deeper on all things crypto and Web3. In this episode, we go into all things auctions, which broadly defined are simply ways of selling and allocating scarce things, which applies in Web3 context to everything from NFT mints to blockchains, which we'll go into in this episode, including an overview of the technical challenges specific to mechanism design in a permissionless context. We also provide a quick overview of auction types and incentive design and how it works in
both theory and practice, including the nuances of market clearing prices, gas wars, and more, sharing trade-offs, choices, and principles for builders designing these systems throughout. Our expert guests are Scott Kominers, a16z crypto research partner and professor at Harvard Business School who specializes in market, marketplace, and incentive design, and Tim Roughgarden, head of research at a16z crypto and professor at Columbia, who led the development of the field of algorithmic game theory, which brings together computer science and economics to solve real-world computing problems. Among other things, both are experts in market designs and auction theory and are also advisers to several crypto projects and protocols. Before we begin, this conversation includes a
brief mention of lotteries, which are sometimes used in conjunction with auctions, and which we kept for educational purposes only. Note there are some questions about the legality of such mechanisms like sweepstakes that narrow participants by requiring them to do something to enter, so builders should not use those without consulting a lawyer. As a reminder, none of the following is legal, business, tax, or investment advice. Please see a16z.com/disclosures for more important information. And with that, we kick off the big picture. The first voice you'll hear is Scott's, followed by Tim's after mine.
The key is, when you have an auction, you whenever you're trying to allocate scarce resources, you have to think hard about how the design of the auction itself impacts people's incentives. And we've seen lots of contexts where that design can create virtuous incentives where people interact in a way that maximizes value and makes sure that the people who have the highest demand for the resource get access to it. But you also see contexts where, for whatever reason, the auction isn't designed correctly and chaos can result, right? You know, you sometimes end up with broken NFT sales in different forms or just general misallocation or a lot of value that's lost through the process.
And so market design, of which auction design is a big component, is sort of the science of designing these sorts of systems to optimize the incentives. You know, before we continue with the types of auctions, what are common misconceptions that you've come across from crypto builders or what should they be aware of here, like big picture, before we drill down? You know, they think the most common misconception is that the design of the sale is sort of a closed ecosystem that you get to sort of decide how people are going to react to it. Rather than thinking about it as something that happens in equilibrium, right? Like you announce how the sale will happen and then people respond. If you're selling in a fixed price sale below what you expect the market price to be, people
will start writing bots and will engage in gas wars. If you're selling in an auction where people have strong incentives to try and learn the density of other bids before they cast their bids, maybe they'll wait it out and see who else is jumping in. The incentives that are shaped by the sale mechanism are a consequence of the mechanism you choose, but you don't get to like choose how people are going to react to your mechanism. You get to choose the mechanism that they're going to react to. I think that's literally the crux of the issue that literally every person is contending with. They're going to listen to this episode, have a lot of great ideas for here's what we should do, but there's actually this reality that they also have to think about.
Yeah, exactly. Like Tim and I spent a lot of time working on incentive design, and we help lots of different people, entrepreneurs, centralized institutions, think about how the market is going to react to the incentives you create. And you should have to game it out in your head. It's a little bit like an adversarial model. We assume adversarial models in cryptography all the time, but here it's like you're assuming sort of an adversarial, you know, everybody is trying to maximize their own outcome given the system you've set up. And so you have to think about how they're going to respond and what the equilibrium will look like, and then you go from there to what type of system you want.
Yeah, I just hit on the two points that I think are the most important. So the first one just being the inevitability of an equilibrium of game theory. You may wish in your heart of hearts that you could hold people's behavior fixed, and then sort of change the system in some way so that if the behavior stayed the same, things would be great, but that's not how it works. The behavior is going to change. The classic example is usually when people first encounter first-price and second-price auctions. In a first-price auction, the winner pays their bid. In a second-price auction, the winner pays the second highest bid. It seems like obvious that clearly you make more money in a first-price auction, right? You're charging a higher price. Okay, but that's only true if you hold the bidders' bids fixed.
The point is that if you price more aggressively, like in a first-price auction, bidders will naturally respond by shading their bid. In fact, under some sets of assumptions, there winds up being no difference. It actually just completely cancels out at equilibrium. So I agree that's the number one high-level thing to always remember, right? It's inconvenient, right? It's It's frustrating, right? But just like someone building a bridge has to deal with the forces of gravity, right? Someone built a a market or a mechanism has to deal with the forces of speak with the bear. You really just cannot escape it. And the second thing Scott said, which I also think is really important, is just the strategy, as he called it, gaming it out. I also really liked the analogy of the adversarial mindset in cryptography. So, if you're
designing some cryptographic system or blockchain protocol for that matter, it's important that you sit down and you genuinely, truly put yourself in the role of someone who wants nothing more than to break your system. That's really important if you're doing it in cryptography and security. If you're doing market design, same kind of thing, but just put yourself in the mindset of someone who wants nothing more than to maximize their own utility. So, for example, to get stuff at the lowest possible price. Genuine we put yourself in that person's shoes and come up with the cleverest thing you could do to sort of attack and manipulate your mechanism.
And that should be part of the process of anyone doing sort of auction or mechanism design. You know, policy makers get this wrong all the time, incidentally. Like, often you state a system that satisfies some specific design objectives that you want to achieve. Yep. Right? Like, you want to make the sale accessible. So, you're going to sell it at 0.1 instead of 0.3. But, those objectives don't hold up in equilibrium. You thought you were making the sale accessible by selling at 0.1 instead of 0.3, but instead, you made it accessible only to people who could write bot armies. And all the surplus, you know, all the money that you could have raised in that spread between 0.1 and 0.3, instead goes to the people with the bot armies.
Right, right. This is also like when the money went to the gas fees instead of Or exactly, where it goes to the gas fees or, you know, the transaction costs. And so, it's important to not just specify the design objectives you want to have, but think about whether those will hold in equilibrium. What do you mean when you say hold in equilibrium? By in equilibrium, I mean when people respond to the incentives that are produced by the system. So, again, you get to pick the system people will react to, but you don't get to choose their reactions. You have to sort of assume they're going to react to maximize their return given the information they have.
And so the question is where does that behavior lead us? Like where do those incentives take people in terms of behavior and how does that affect outcomes? Great. So why don't we quickly now do a sort of auctions 101 sharing some of the types of auction design sort of a loose taxonomy to start? So the simplest place to start thinking about auctions is where you have literally just one good that you want to allocate to one winner of the auction. And even there there's really quite different formats you can use. So there are ascending auctions. So this is what you would see at an art house like Christie's or Sotheby's where you start with a relatively low price and then the price sort of goes up over time.
Everyone in the audience kind of raises their hand if they'd be willing to pay the current price. It's very dramatic. It's fun and entertaining. Exactly. And you have a charismatic auctioneer hopefully that makes it a lot more fun. And then when only one person has their hand left up, that's when the auction ends. The winner is the last person standing and they pay the last price that was announced. Right. But in a crypto context it's very common to see Dutch auctions which operate in the opposite direction where you start with a super high price and everybody starts with their hand down because the price is so high. And the price drops at a steady rate and then the first person who raises their hand is the one who wins the auction and they win it at the price at which they raised their hand.
And so both English and Dutch auctions are common in practice. And just to quickly clarify the English is the ascending price auction and the Dutch auction is a descending price auction? That's exactly right. English auctions that's what you're used to from sort of movies or estate sales or auctions. Dutch auctions the name comes from the tulip auctions. Oh no. Not a great connotation. Well tulip mania notwithstanding, that is how a huge fraction of the world's cut flowers are sold daily to this day. So, in the Netherlands, there's this gigantic building. It's like mostly one room. There's like couple of side rooms where the auctions are held, but the entire rest of the building is just flowers being moved back and forth and
processed, and they go on these conveyor belts, they go to the auction room, people bid on them, they go off the conveyor belts straight onto like trucks that put them on planes. Anyhow, so it's true, there's this negative connotation with tulip mania, but these auctions are in fact used in massive numbers every single day to literally sell flowers, as well as many other things. That was fantastic, Scott. Yeah, great digression. So, taking Dutch auctions as an example, if you want to allocate not just one thing, but maybe a hundred things, or maybe it's an NFT drop which is a hundred NFTs that you're selling, there's ways of extending a Dutch auction that setting which work well, and there are other ways which work less well. So, to loop back to something Scott said that was very important, which is how small changes in
how you run the auction can make a really big difference on the experience of the participants and the incentives that they face. So, Scott, maybe that's something you could add some details on. So, let's think about how this works strategically. So, first of all, how do you think about what to bid in an ascending auction? Well, sounds like it could be complicated, right? You know, there's all this stuff going on in the room or in the online auction room or whatever, and you've got to keep track of all the other bidders, but at some fundamental level, you have some value for the good, and let me temporarily shelve the possibility that you might have some uncertainty about how much you value the good for, cuz that changes a lot of the thinking, but there's some value for the good, and as other people are bidding, as long
as the current high bid is below your value, you're willing to keep bidding, and the second it gets above your value, you should stop bidding. If it's below your value, if you win the auction, you're always gaining something on net, right? Like you think this painting is worth, I don't know, 5,000 to you, and the bidding, it's 5,001, well, you should be out. It's actually a very simple strategic problem. With a descending auction, a Dutch auction, you're actually solving a different strategic problem. Like if you're the one who like puts up your hand and says, "I want it at the current price," you're going to pay that price.
And so that means if the price is right at your value, you might not want to bid. You might want to wait until it goes down a little bit further. But you have to reason in your head about how much further it's going to go before somebody else bids, right? So your value for the painting is 5,000, the price is clicking down, 4999, now suddenly you can make a dollar, but maybe you'd rather wait till like 4800 if you're reasonably confident that other people aren't going to bid. Right. And so you're doing this sort of like simultaneous estimation of how do I maximize my expected value given the bid I'm going to enter at and the probability that somebody else jumps ahead of me.
And about Scott's discussion incentives. So some listeners may be familiar with first price auctions or second price or victory auctions. Oh, I know what those are from eBay. Exactly. Exactly. So eBay is like a second price auction. And so from Scott's discussion, you can actually see how the incentives in a Dutch auction are really quite similar to what you see in a first price auction, where you're basically trying to get away with the lowest bid that you can, and doing so forces you to reason about what your competition might be bidding. Yep. Whereas in English auction, because there's this kind of obvious strategy to drop out once the price hits your maximum willingness to pay, that's very akin to a second price auction, where you're sort of guaranteed that bidding your maximum willingness to pay is an
optimal strategy. Yes, I was going to sort of now bring this to how we think about different extensions of the Dutch auction. So once you've sort of absorbed this idea that in a Dutch auction you have to reason about other people's bidding, there are a A different ways you could imagine extending it, right? So, one that's very common when you see NFT drops running and it's often what they call a Dutch auction in the NFT drop contextual. It's actually better to specify precisely what's going on cuz it turns out these are all extensions of what's called the Dutch auction for single item auctions. So, a descending pay as bid auction is like the single item Dutch auction, the price starts high, starts descending, people pay their bids. You raise your hand at some point and say,
"Hey, I'm in it at this price." And then you pay whatever bid was and if there are still units remaining, the price keeps ticking down and new people can enter, but the price they pay is frozen at the moment they bid. That's very common in NFT drops. It's a descending pay as bid auction. Descending cuz the price is descending, pay as bid because you pay what you bid. Yep. Different winners pay different prices. Note, as we talked about in the single item Dutch auction context, you have to reason about what other people are willing to bid, but here, if your reasoning is off, you can be way off. So, let's imagine there's 100 units for sale and you expect the sale to be pretty popular and the price starts at, you know, 5,000. Or I guess we're at NFT auctions, so maybe the price starts at
like one ETH. Right. Well, if you really want to lock in an object, you want to get one of those NFTs for sure and you're concerned there's going to be a lot of competition, maybe you bid it at one ETH. But then maybe there wasn't nearly as much competition as you were expecting and you see the price keep ticking down further and further and further and maybe the final sale is at like 0.3 or something like that. Right. Right. So, now you have people paying potentially wildly different prices and the price dispersion is really driven by a mixture of their demand, like how much they really want to win, and their estimate of the degree of competition.
And we've seen these things, they can leave a really bad taste in people's mouths. You have four people who each paid ETH and then everyone else pays 0.3. And it's particularly ironic cuz the most passionate supporters might well be the ones paying the highest prices. Exactly what I was going to say. It's like the people who are the most excited about the project are the ones who end up overpaying in some sense. Right, but that's not different than like me and me to moralize. It doesn't sound bad to me. The whole point of this is people are finding the value that they value, right? Like if you are overpaying it's because you actually love that thing that much, you know? So it's actually very logical.
Definitely. And the magic of auctions is that they are in some sense very logical. It's about allocating goods to people as a function of their demand. And the higher a bid you're willing to place, the more you're representing your demand and the more likely you are to win the good. Yep. So that's one way you could run an extension of the Dutch auction to multiple objects. You have this descending pay as bid structure where people enter and they'll end up paying potentially different prices with the people with the strongest demand paying higher prices, at least in in equilibrium. There's also what's called a descending clearing price auction or often it's called a uniform price auction, which is very similar in style, except for a difference in the way the pricing
works. Say that you start at that high price, you know, maybe it's an ETH, and you let the price descend and people announce, "Okay, I'm willing to buy at this price." But you actually keep running until all the supply is spoken for. And then at the end, everyone pays the last price that was named, right? So there are 100 units, we had sold three units, so people enter at like one ETH and they're it's guaranteed basically that you're going to pay one ETH or less for your units. And we keep going until we hit what's called the market clearing price, the price at which in this format supply is meeting demand. We've sold 100 units and like we have this stack of people demanding those 100 units. And then everyone pays that lower price. And this is the advantage that it sort of
discovers an actual market price, right? It tells us sort of the supply and demand crossing. Like if you think back to like econ 101 diagrams, it finds a price at which supply and demand cross, and then it has everybody pay this equilibrium price instead of potentially having heterogeneous prices across all the different bidders. Yeah. And this is the advantage that if you enter early, you're sort of safe, right? So long as you enter at a price that you're willing to pay, you'll never pay more than the price at which you entered, and you've already sort of reserved however many units you've reserved by bidding. And so that actually can like encourage people to bid earlier. Like that can sort of incentivize people to say, "I'm really in at one ETH because this thing is worth an ETH to me if that's what I end up having to pay." Instead of having
this dynamic that you see in these descending pay as bid auctions, where people try to wait out the auction and sort of like guess what the demand is as they watch the price fall to try and not end up overpaying relative to the clearing price. And footnote, by the way, these descending clearing price auctions aren't quite strategy proof. There's a small amount of impact every person has on the price, and so there's a little bit of an incentive to misrepresent your value, but it's very small. And if there are a large number of bidders relative to the number of items you're selling, mostly the incentives are straightforward. It's again, you'd bid at your true value.
Right. This is super helpful, by the way. I actually want to ask you guys a high-level question here, and then bring it back, which is this is obviously how auctions work, and the strategy and all of it makes a lot of sense. But in crypto, we have a lot of weird nuances. So two points here. One is when you actually don't really know what the value of the particular NFT is, there's a discovery aspect. So there's a lot of interesting behavior that happens there. I have a question about that. But the other question is where you talked about kind of strategically knowing what you want. Don't bots kind of mess with that? Like how do the real dynamics of crypto mess up this logic, basically, is what I'm asking.
So one of the beautiful things about auctions is that because they discover the market clearing price, but again, well-structured auctions, because they discover market clearing prices, they're actually sort of not susceptible to the same types of bot concerns you tend to see in these sort of fixed price sales. And the reason is that the bots are about to try to get the NFTs or whatever the object is below the market price to then immediately turn around and sell at the market price. exactly. Right? So here, so long as you set the starting price higher than what the market is willing to pay, again, it like at the market clearing level, maybe a small number of people are willing to pay an ETH for the NFT, but if most people are only willing to pay 0.3, well, what's the price at which a bot wants to buy it? It's anything
below 0.3. And so here, running the auction basically disincentivizes the bots from showing up in the first place. Like there's nothing to gain if the market is going to end up clearing at the price that the bot would later want to resell at. arbitrage for them there to exploit. Exactly. There's no arbitrage. Got it. I wonder if it's worth drilling down a little bit on the fixed price sale. Maybe that's even like a good way to understand auctions and their price discovery properties through this direct contrast. Let's do it. So Scott used an example of a descending auction where the initial price is one ETH and the clearing price ended up being 0.3 ETH. So just thinking step-by-step, like what would have happened if instead of running an auction, they had just said each NFT is going to be worth 0.1 ETH and first come, first
serve. Yeah, what would have happened? I want to know. So at this low price, which is sort of fixed at something below where supply would meet demand, it's a lower price and therefore demand is going to be bigger than supply, and because it's designed first come, first serve, there's basically going to be a race to be one of the first 100 people to spend 0.1 ETH and actually purchase an NFT. And what's really interesting, what happens inevitably, as inevitable as sort of gravity in the blockchain setting, is the market price, you can't escape it.
It's just that you've sort of moved where the payments of the market clearing price goes. So what's going to happen is is going to be basically a so-called gas war. So you will have for people who want to buy one of these over demanded NFTs at 0.1 ETH, they're going to be willing to pay pretty high transaction fees to block producers in order to have the privilege of being in the first block, being one of the people who can claim one of those. And so, you still sort of expect people to be paying roughly 0.3 ETH for each NFT, but obviously only 0.1 ETH of that is going to the projects. And the remainder, the 0.2 ETH, we expect that to show up at equilibrium in the transaction fees that people pay.
Right. So, another way to kind of simply say that is that you may be paying less for the thing, but the money in the system, more of it's going to the gas fees. That's right. In effect, it redirects, in some sense, the revenue from the sale remains the same. It's just that it used to all go to the project, and now all of a sudden 2/3 has been redirected to the block producers. Yeah. And incidentally, another place that some value gets burned, to slightly overload the chart, is in all the effort people go to to get to the front, right? So, one of the ways that they are going to that effort is by paying gas fees. is. Another one is by writing bots and things. Like, basically, if the good is, you know, if the NFTs are being sold at 0.1 and the market price is 0.3, people are willing
to spend up to 0.2 per unit to get a hold of them. Because they can immediately turn around and resell them at a profit again, you know, modulo some like small tweaks around the transaction cost of doing the resale or whatever. So, maybe they're willing to spend up to 0.19 or something like that. So, whenever you create this, seems like a great idea, right? It's like you're you're going to reward everyone. Like, the initial sale is going to be super cheap. Like, we know we're underpricing. It's going to generate a bunch of hype to get this nice pop as the price quickly jumps to the market-clearing price. But, the fact of the matter is the market finds market-clearing prices, right? It's a force of nature.
Gravity. Exactly. It's gravity, exactly as Tim said. It's this like constant force pushing in that direction. And when the good is underpriced relative to market clearing, there's going to be all sorts of work, both in the form of people bidding in the gas price auction and people expending raw effort to try and figure out how to get to the front so they can take advantage of that spread. Yeah. Well, I do have a question cuz this does come up a lot because as you know, a common ethos in crypto is that people want to kind of lower they want to go below market price initially because they want to be accessible or be fair. There's a lot of discussion about that. But you guys are saying that well, actually what's happening instead is you know, the money's going to the gas fees instead in this context at at least on
Ethereum. How do I don't want to only talk about the bots actually. Like what happens with the builders who are trying to design these systems in a way that doesn't do that. How could they actually give people accessibility and avoid the gas fees escalating and going to this problem where people are actually then willing to pay up in gas fees because of that. Like using your expertise, what could they do in this particular example? Well, one definition is avoiding gas wars can mean two possible things. One could mean that the price paid by consumers remains the market clearing price 0.3 ETH and it's just that all of that revenue is captured by the project rather than sort of wasted in gas wars.
Right. And so for that, the clearing price auction that Scott talked about would be a good solution because that just auction mechanism naturally discovers the appropriate market clearing price. Pretty much the number of end users that are going to be willing to pay that price is exactly equal to the supply so there's no contention amongst those willing to pay the market clearing price. They'll get a copy of the item. A second version of the goal would be like, no, no, no, no. Suppose we actually really want every NFT to go to somebody for 0.1 ETH and we also don't want a gas war.
Yeah. And that is a very interesting question. In principle, you could imagine running some kind of lottery at least if you you in the real world. Let's So, imagine you had 100 NFTs, you priced them at 0.1 ETH, but actually 1,000 people would have been willing to pay 0.1 ETH. Well, then, you sort of take those 1,000 people, pick a random subset of 100 of them, give them the NFTs at the price of 0.1 ETH. That's if you were talking about in real life, where you sort of know who you're working with. The blockchain environment is very challenging for mechanism design, and so it's not a trivial engineering problem to figure out how to implement one of these lotteries. Right?
So, for example, how do you prevent Sybils? How do you prevent sort of a single entity from entering multiple times? That's one example that comes up. And even if you're using proof of unique personhood somehow, how do you stop them for like going and just getting a bunch of their friends or employees to sign up for the right? You know, the current NFT market is a small fraction of all people, and so even in places where you see attempts to just to lock each person into one entry, you still might have people who collect 1,000 people in order to access 1,000 entries.
That's exactly right. You'd love to just sort of allocate one lottery ticket, no, per person, per sort of legitimate participant. It's hard enough in the real life that you sort of sift through who are the legitimate participants, but then in a permissionless blockchain setting, it's quite a bit more difficult. Right. Right. Will you going to add anything more here, Scott, to answer that question in addition to what Tim said? Yeah, so the lottery thing, first of all, one way to try and make the lottery strategy a little bit more implementable in a world where you don't know people's identities, is to run a lottery with an escrow. So, basically, require people to take on a lottery ticket by escrowing like a non-trivial amount of money.
Now, again, just like with the competition to bring in the bots, market clearing prices are discovered here, too, right? People will, so long as they have the liquidity, they'll keep opening new accounts with new escrow to units to get into the lottery exactly up until like their expected return from the lottery equals to or their their marginal expected benefit rather lines up with the marginal cost of of escrowing a little bit more money. And so, as far as accessibility goes, this is better on some dimensions because it means you don't have bot armies up against individuals, but it still means you have some individuals who have much more liquidity and sort of much greater means entering many, many times. And so, they're likely to receive many more of the lottery slots. So, like escrow can help, but it doesn't necessarily help as
much with accessibility as you would like. A different thing that we've seen that's currently very much in the NFT meta is of course this like allow list where you take members of the community who have in one fashion or another been distinguished and give them access and ensure that the number of total mints that will happen during the allow list minting period is below, preferably far below, the total number of available mints, so that there's no competition in speed in that period. And first of all, that on its face can do better because you're somehow trying to align who gets the good at below the market clearing price with who's contributing the most to the community in some fashion or another. But note here once again,
people are paying, right? Like it's not like we're sort of escaping the market clearing price. We're just paying some of it in work. There's literally like a proof of work going on where people are inviting people to Discords or like creating cool fan art or something of the sort. The one advantage of the allow list strategy over the lottery strategy on that dimension is in the context of allow list if you design it correctly, the cost could be cheaper for people who really want to be part of the community than for those who don't. Right? If you're like really, really into the art and you're super engaged in whatever's going on, maybe it's much easier for you to like be producing fan art cuz that's what you would be doing anyway. Or it's easier for you to show up to the midnight radio event cuz you
would be tuning in all the time no matter what. Whereas somebody who's just buying the thing to flip, taking again advantage of that 0.1 to 0.3 spread, sticking with the example from earlier, they have to put in all of this effort that they wouldn't otherwise be doing. They're like creating fan art where they don't actually care at all about the art, they just want to buy the token to resell it. And if there's a big spread between 0.1 and 0.3, people are willing to put in a lot of effort, and you can get this weird sort of inversion where the people who you thought were going to be the most engaged in your community are actually just flipping the thing and then they disappear. And so you haven't actually sort of built up the right sort of behavior and engagement that you thought.
This is another place where bots can really make the mechanism design harder. So the question is, could you even program a bot that behaves in a way that gets you on the allow list? And that's actually kind of a pretty cheap way of doing it. Totally. When Taylor Swift launched her inaugural ticket sale using verified fans. Yeah, like an allow list basically, a verified fan. literally an allow list for for people who Ticketmaster has this product called verified fan where an artist can pre-sell tickets to people who've engaged a bunch of fan activities. So Taylor Swift was going to do this, and the fan activities were things like watching Taylor Swift videos over and over again, and posting about Taylor Swift on Twitter, and buying many copies of Taylor Swift's albums.
And like, on the one hand, these are things that Taylor Swift fans of course do. They post about Taylor Swift on Twitter quite a lot. Right. other hand, these are sort of things that bots are really good at doing, too. The second you know that you need to post on Twitter about Taylor Swift 10 times a day, suddenly like everyone on Twitter is a bot posting about Taylor Swift. And so you could get into these funny horse races where especially if you design whatever your allow list activities are in a way that is sort of bottable or or doable by third parties, again you end up with the wrong people winning the contest, and so your attempt to make the thing accessible actually can backfire.
Backfire on you, right. What's this recurring theme I keep hearing, which is the very incentive, the very intention these designers have can actually backfire on you because it's all a matter of trade-offs. So along those lines, I want to circle back So, if we did a quick taxonomy of types of auctions, we've already talked about the difference between single unit versus multiple units, and we talked already about like the reasoning that people have. We briefly touched a little bit, very briefly, on price discovery. We talked about challenges in what happens when you're trying to go for market-clearing price, and when people have things like lotteries and allow lists and all these different things.
So, now, one thing I want to come back to, just big picture for a moment, is Tim, you mentioned in general how blockchains introduce complexity, and we already mentioned bots. We already talked about Sybil attacks and the fact that people can essentially pretend to be multiple different people, when in fact might just be the same person who's angling to do something. And certainly that could happen in a real-life context, like someone shows up at a Christie's auction and sends like three or four deputies, you know, with their bank account. Could you talk high-level for a bit about some of the other things that are unique about blockchains that add so much complexity to this whole topic?
Sure. I will say as a uh mechanism designer, that's one of the very fun things about sort of working in crypto. On the one hand, knowing the traditional theory is helpful. There are, as we've sort of been talking about, lessons you can learn traditional auction theory, which are helpful in the crypto world. On the other hand, there's so many idiosyncrasies in the crypto world that it actually forces you to sort of rethink key parts of mechanism design from first principles because of the distinct incentive constraints. So, the examples you mentioned are really good ones, like the prevalence of bots and just in general programmatic participation in mechanisms. The lack of identities, so Sybils is another big issue. Maybe the other really major one I would point out is collusion tends to be more worrisome in a blockchain crypto
context than it is traditionally. And there's two reasons for that. One reason is again because things are programmatic with blockchain. You can actually really have smart contracts that facilitate, even enforce, types of collusive agreements. So, if a bunch of parties get together and say, "Okay, you do X, I do Y, good things will happen, and then we'll sort of split our rewards, you know, you get half, I get half." All of that can actually be encoded into a contract which will enforce whatever that agreement was. And then the second thing is just if you ask a professional kind of auction designer about collusion, the most common answer you'll get will be, "Oh, well, that's really sort of an issue for the legal system."
So, it turns out that in mechanism design, if you try to make mechanisms themselves collusion-resistant, it depends on the setting, depends on sort of how strong a resistance you want, but it tends to tie your hands quite a bit as a mechanism designer. It takes a lot of options off the table and if you insist that the mechanism itself was intrinsically sort of non-manipulable by cartels of players. And then a permissionless blockchain at least, if you're talking about Ethereum or something like that, like you don't have this legal channel to resist Right exactly. So, in a traditional setting, you'd be like, "Well, if we we're going to make people sign a contract to participate in our auction, if we catch them colluding, we're going to kick them out, we're going to take their money in escrow."
And like none of those are kind of real options in the context of say Ethereum. Okay, awesome. So, just going back to a thread earlier, so we talked about like all the different unique challenges in blockchain, you know, mechanism design for blockchain context. We talked about bots, identity, collusion, in this case it's hard-coded collusion. And then what are some of the other technical challenges? A big one is if you're going to run a clearing price auction on chain, then when people announce their bids, the price is descending or descending clearing price auction on chain, the price is at 0.9 and I put in a bid at 0.9, but remember I'm going to pay say 0.3, whatever the clearing price is. In order for that to be sort of functionally valid, I have to escrow ETH at 0.9.
And then after we get to the clearing price of 0.3, the system has to refund me 0.6, the difference between .9 and .3. And that makes the Technic's much harder. And similarly, why do we see these sort of continuous auctions instead of sealed bid auctions? Well, if you're doing sealed bid auctions, typically you want to make people's bids private, but you also need to be able to probably confirm that the winning bidder is whoever you say it is, and that the clearing price or the winning price or whatever is is whatever you claimed. And so you have this funny tension between wanting to enable people to like lock in their bids, and also having to make those sort of non-public somehow, even though they're being stored in a public blockchain. And then, even though you've made them non-public, you have to be able to make them sort of verifiable,
like who actually bid the most and give them the goods. And there are technical frameworks for doing this, but adapting it to work on chain is much, much harder than than if you were just sort of running this on a classical computer system. Following up on what you just said, the one you guys didn't mention when it comes to technical challenges, and maybe it's almost too obvious to you both, but it's just actually this whole point of auction design is essentially about efficient allocation of scarce resources. And yet we're talking about a substrate, blockchains, which themselves are still developing, and so there are a lot of constraints with the efficiency and the scaling of blockchains themselves. And so, what more would you add on this at a metal layer in terms of what's challenging or an opportunity as well
when it comes to applying auction theory to blockchain context? So, if you've interacted with a blockchain like say Ethereum, you've probably participated in an auction whether you know it or not. And it's exactly getting to your point that actually not only are sort of scarce digital goods being sold at the smart contract layer of a blockchain, but also even the block space itself is a scarce resource, buried in the plumbing of blockchains. So, for example, on the Ethereum blockchain, every sort of 12 seconds or so, an auction in effect is run to sell Ethereum block space to determine which transactions are going to be included in a given block in the blockchain. And so that means computation in the Ethereum virtual machine is very scarce.
That's why you have transaction fee mechanisms which sort of figure out basically the prices of the transactions need to pay in order to get included. And I love how you frame it as kind of like an opportunity because the fact that there's mechanism design opportunities at the L1 layer, I mean that would be like as if you could do mechanism design in the internet for BGP routing, you know, or TCP/IP congestion control. All this stuff is sort of embedded deeply in the plumbing. And like game theory is certainly very relevant in the internet context but market designers didn't really have an opportunity to sort of help with the design of the core internet protocols whereas the crypto community generally embraced mechanism design quite early on. And so mechanism design has played an important role even in kind of the
lowest layers of the blockchain stack. That's great, you know, on the history of the internet. It's you basically are like hypothetically what if we could have done this back then, you know, 25, 30 years ago. One of the people I edited when I was at Xerox PARC is Van Jacobson who's widely considered the father of TCP/IP and that was a unique case because he was reacting to the fact that there were massive traffic jams happening. But it's also kind of fascinating because just as a meta comment, I've always been struck by this design by Band-Aids and tape but it actually just works and that just is good enough because it's always networking computer scientists who always want things to have like a perfect logic to them. The messy reality is some a lot of these systems actually work in very messy ways. And that was
one of the big takeaways for me in terms of looking at the internet back then. And I'm curious for if you think we're going to get to a similar place here or if a lot of this is going to require like well, here's why it's different. I'm I just a kind of a side there. No, I I think it's a great point because from a theoretical perspective, the internet does not satisfy most of the mathematical properties. You have to concede most things it does pretty well, right? And I love your description of sort of a bunch of Band-Aids. And so when I think about, right, there's a lot of technical challenges we need to overcome for blockchains to realize their full potential around scalability and robustness and so on, but as you say, Sonal, like ultimately we kind of only need it to work in the
same sense that the internet works, which frankly is pretty good on most days. And so I I think it's on the one hand it's very important for sort of researchers to pick off bite-size pieces where you can have a really deep and proper understanding of part of the design. But if you're talking about sort of the full-blown system, I mean, I think what we're aspiring toward is something that is {quote} only as functional as the internet. Yeah, that's great. I love it because this to me is exactly a very meta narrative about how innovation happens in general, which I consider to be a premise and a theme and a motif that will kind of run throughout the show. So I'm excited to keep pulling that thread as we talk about it across multiple episodes. So back to this note though about L1s and L2s. Layer one, layer two,
we're talking infrastructure layer, a layer above that where we're talking about more application layer, etc. Let's talk specifically about the unique applications of auction design and theory in practice with L1s and the ability to design at that level. And what is also a specific constraint to now versus say when X, Y, and Z changes in the near future in terms of better performance, etc. Do you want to talk here about EIP-1559? Sure, I can talk about it briefly. So Ethereum has always been very courageous in its willingness to do major upgrades pretty frequently.
And about early August of 2021, they made a major upgrade to their transaction fee mechanism. Prior to August '21, it was the same transaction fee mechanism that's always been used in Bitcoin. People usually refer to it as a first-price auction. And it's a very reasonable design, very natural first cut where the point of the transaction mechanism is to try to identify the transactions for whom inclusion would have the most value. Are you trying to make again efficient use of the scarce block space, so you want to pack it with the transactions that benefit from inclusion the most.
Now, you can't expect the blockchain to really quote-unquote know which transactions are the valuable ones. So, that suggests you might want to ask the users submitting those transactions to say exactly how valuable it is to them, so to attach a bid to the transaction. And that is in fact what happens, and then in the first price auction, upon inclusion in a block, that bid gets transferred to the producer of that block. So, like in a proof-of-work blockchain, there'd be some miner that creates a block, chooses to include your transaction instead of others, and then that's going to be the recipient of your bid in a first price auction.
That's great. And there's a lot of nice things about it, but if you study a little bit of auction theory, this already really came up in the discussion, which is that first price auctions, just like Dutch auctions, from a strategic perspective, they're a little tricky, cuz you're really trying to get away with the lowest bid that you can, but that requires reasoning about your competition. And so, in a first price auction, if you're using a a wallet like MetaMask, they would be basically using some kind of algorithm to look at recent bidding data to make a suggestion on your behalf of what bid you hope would be about right. But someone who used the theory a lot in say 2020 and 2021 may have had the experience where MetaMask sort of got the recommendation wrong.
Like maybe there was just a sudden demand spike that it didn't notice, submitted a very low bid on your behalf, and then all of a sudden, you're being outbid by all these other people, and your transaction just hangs for 30 minutes before confirmation. So, that was the additional motivation for possibly replacing in the first price auction in Ethereum. Is you really wanted to take the cognitive burden off of either the wallet software or the end user, and just have something which is kind of extremely easy to participate in. Ideally, something as easy as like shopping on Amazon. Where you go to a product page, there's a book, it's 35 bucks.
If it's worth it, buy it. If it's not, don't. End of story. And so, you'd love to have that same kind of quote unquote posted price mechanism for block space. Where really, for a given block, you just sort of ask Ethereum, how much would it be to be included in this block? The blockchain says 200 gray per unit of gas. And either it's worth it to you and you take it and you're guaranteed inclusion, or the price is too high, maybe you wait to see if it gets lower later. So, that's the goal of EIP-1559 is to make it sort of as simple as shopping at Amazon. We'll have this posted price.
And then, one question though is, okay, but like, what should that price be exactly? The book was $35, like, what's the price of Ethereum block space? And moreover, demand is fluctuating for block space. Like, spikes way up for an NFT mint. It would be lower under normal circumstances. And so, the price you really want, the ideal price would be exactly the market clearing price that we were talking about in the context of multi-unit Dutch auctions. So, market clearing price meaning where the amount of transactions that would be willing to pay that price, so the demand at that price is exactly equal to supply. So, the total gas consumed by all transactions willing to pay the price would exactly fill up an
Ethereum block. So, that's the aspiration point. You would like to just offer everybody the current market clearing price, and then everything would sort itself out. Now, the question is, how does the protocol track the market clearing price? And so, basically, it uses sort of local search. So, if it appears that the current price is too low, it bumps it up a bit. And if it looks like it's too high, it bumps it down a bit. How do you know whether it's too high or too low? Well, you have a target block size. It's measured in gas, so it would be 15 million gas. And basically, block by block, you just say, okay, was the last block bigger or less than the target?"
And if the last block was really big, that means there were a lot of transactions willing to pay for a price, which suggests that the current price is too low. So, if you see a big block, you're going to increase the price. Conversely, if you see a really small block, you conclude that your price might be too high, very few transactions were willing to pay it. And so, then you would decrease it. So, there's definitely some more details to design, but that's the EIP-1559 from 30,000 ft. That was awesome. And I have to just laugh cuz I was just thinking to myself, like, "Oh, wow. Now I get how a mathematician got to computer science, got to blockchain, got to this." Just the way you think about it. It's like really fascinating to me.
Yeah, that was spectacular, Tim. Tim is the world expert on this stuff. Yeah, it was really great. Why don't we go up a layer and talk about the application layer? And we already talked about NFTs as an example of where auction theory really plays out in crypto. But, Scott, you own so many NFTs. I don't know that many NFTs. Come on. Well, I don't know when we were going through it. You were like posting a PFP for the website. It was like, "Wait, you know, Scott has a lot of NFTs." And they're all kind of funny, it's a little random, honestly, to an outsider's eyes. So, tell us more about beyond just understanding the types of auctions, which we already went through that taxonomy. Can you talk more about where auction theory applies in crypto to the application layer, including NFT mints?
So, we talked about the incentives created by auctions at the bidding stage. That's actually sort of a narrow way to view auctions. But, if you look at the history of auction theory in economics, it started with people studying, "What are the equilibrium bidding strategies?" Like, "To what extent do different auctions generate different amounts of revenue or efficiency in the allocation depending on what bidders know about the goods or each other and so forth. And so, that's the layer of auction theory we've just talked about. But, in fact, the choice of auction has many other impacts on the structure of the market. For example, Yeah, I was about to ask you for an example. Go.
Yeah, don't worry, we've got some. So, for example, your auction might affect who shows up to bid. The way in which you choose to sell a good, if you're selling something on a weekend rather than on a, you know, Tuesday at 3:00 p.m., lots of aspects about how you choose to sell a good might affect who shows up to bid. But, the auction format might as well. So, for example, if the auction seems like it's going to be so competitive that you're unlikely to get an opportunity to bid or to buy at a price that's meaningful to you, you might choose not to show up, right? If you think whatever's happening is going to be at a price point way above your willingness to pay.
But, in NFT markets, the value of the good is pretty uncertain up front, so a lot of people might make that estimate incorrectly in either direction, right? Right. And in fact, one of the most fundamental and sort of robust facts in modern auction theory is that as far as revenue goes, competitiveness of the auction is first order. If the auctioneer is trying to make as much money as possible out of the market, you want a lot of people bidding at once because some people have higher value, some people have lower values, but the chance that you have a bunch of people with high values competing with each other is higher the more people you bring into the room. And so, if you run an auction, or if your selling process is one where people might think, oh, you know, this is going to like be way
outside of my range, I shouldn't even show up. If enough people don't show up, the auctioneer might actually lose out. And we see this happen, right? Sometimes you have these descending auctions that start at absurdly high prices and are sort of pre-announced, we're going to be selling this at 5 ETH, and nobody shows up, and then they end up selling at like 0.5 or something because nobody was there. And then in the secondary market, maybe the price goes to 1.5 or something like that. And by the way, that secondary price, you know, it's funny, right? We've just spent a lot of time talking about how essential it is to discover the market clearing price in your initial sale, and now I just said, well, maybe you can have a situation where you started a price of five, the auction clears at 0.5, and then the
market price ends up being 1.5. What the heck's going on there? Well, it's because not enough of the potential buyers actually showed up to participate in the auction because they actually expected they were going to be priced out. Interesting. This idea that the competitiveness of an auction is really important that actually touches on one of my favorite personal theorems from auction theory, the Revenue Equivalence Theorem. What Revenue Equivalence basically said is that when you're setting up the rules of an auction, what's actually more important than getting the details of the auction rules exactly right, what's much more important is making sure there's sufficient demand, making sure you have a sufficient amount of participation in your auction. In effect, if you have high demand, you can gloss over perhaps imperfections, the details of the auction's rules. So,
certainly you want to stay away from auction formats or any kind of way of setting up a sale that winds up discouraging participation. Everything you do should really be in the name of bringing people in, making sure there are lots of participants taking place in the auction. That's how you can really maximize your chances of a good result. Another thing that matters is the type of information that's revealed by the auction. So, you know, we talked about this problem with the descending pay-as-bid auction that you end up with potentially a small number of people paying much more than everybody else. We've seen this over and over again. Also, though, auctions have different types of information they reveal, right?
And for example, there's a big difference between an ascending auction and a sealed-bid auction, you know, the sealed-bid second-price auction. They seem like they should be the same, right? Tim mentioned earlier that they're very, very closely linked because at least under what are called private values, where everyone has their own individual value for the good, they actually have the same equilibrium bids. Everyone states their true value, and the price is the same. It's the value of the second-highest bidder. But, in one context, when it's an ascending auction, and you just keep bidding until all but one person drop out, you never learn that top bidder's willingness to pay. You never learn what their maximum bid would have been.
Whereas at a sealed bid auction, you do. And in government procurement context, there's often concern. It's like, if everybody submitted their bids and we saw that the highest bidder for wireless spectrum or something like that was so much higher than the price they actually end up paying because there's a big gap between the first and second highest bidder, then you're upset. You're like, wait, look at all this money we left on the table. And so, you can also think about toggling the auction format as a way of changing what information about the bidders is revealed by the auction itself.
I was actually literally thinking of spectrum allocation when you said that example. Anything more to add, Tim? Sure, yeah. I would draw a distinction between auctions that are iterative, that proceed sort of in rounds or in steps, versus auctions that are sealed bid, which all happen sort of one shot. So, the ascending English auctions that we discussed, those are iterative auctions that take place over rounds. Same thing for the Dutch or descending auctions, they take place over rounds. First and second price auctions, they're sealed bid auctions. Whereas we discussed, the incentives in the Dutch auction is pretty similar to first price. In English, the strategic aspects are pretty similar to second price. As Scott discussed, there's other interesting distinctions in terms of information disclosure and other topics.
But that's definitely a first order distinction between different auction formats. Do you just collect bids from everybody and then one shot sort of figure out everybody's allocation and everybody's prices? Or do you have this more kind of gradual discovery process in an iterative format? Okay. So, I have a question here. On something you said earlier about with NFTs and NFT minting, like it's actually a good way to get revenue because you can actually have competition. But I do want to make sure that we push back on the nuances of how this plays out in practice. Is there anything more to say on that note because people don't only buy NFTs for the financial aspect at all, but sometimes it's a ticket to a community, in fact.
Totally. Indeed. I mean, that's why I have this wacky collection, right? It's all these different communities I've participated in, like these are not investment assets to me. They are sort of membership and rewards and like all the stuff that comes from being a holder. Exactly. You mentioned earlier actually that in NFTs in particular, so much of the auction is about value discovery. It's not just about figuring out the market clearing price. It's sort of establishing like an initial sense of what the value of these things actually is. And classically, that's what auctions have always been about, right? That's why we have art auctions, too.
And it's why when a given piece of art by some artist, like if a I don't know, a given X copy sells for some amount at auction. Sorry, let me think of a a better artist for for this use case. I was like Basquiat. That too. Yeah, yeah. I feel like it should be specifically trendy. I would put Banksy as a trendy example. Beautiful. Banksy's perfect. Okay. So, this is why we've historically sold art at auction. And it's why if a given Banksy sells for twice the expected sale price at auction, it raises the value of all the other Banksys. The value of the other Banksys hasn't gone up because suddenly one Banksy sold for a lot and now we think Banksys are worth a lot.
It's like we have discovered that there is a bigger market for Banksys than we thought there was before, right? The expectation was based on our understanding of how many people wanted the good. We've learned there are many more people or a few people with much more significant willingness to pay, which means that all of the Banksys we've sort of discovered have a larger market than before. And so a lot of the point of auctions and NFT sales is about the social discovery of value, which like sort of early sociology studies of auctions, that was what they said auctions were about. These are a fundamental social mechanism for figuring out what things are worth. Like it's the cohesion of everyone together that determines that value. The community together is sort of jointly discovering what the value of something
is. And later creating that value frankly in the case of crypto as well. Exactly, creating that value like through the cross engagement and interaction. In crypto very much the shared value of the community is agreeing on like what a digital asset is worth. NFTs are a very strong embodiment of that and auctions are a way of socially discovering that value. I think it could be interesting to tie together the few of these threads. So as I was Sky was discussing how the choice of the auction format among other things can also alter the amount of disclosure, the amount of information that bidders learn about each other, the person running the mechanism learns about bidders and so on.
But especially in the NFT context, what's really interesting is you can also decide how much information to disclose about the goods being sold. So if you have 100 NFTs, like at one extreme, you could treat them as basically you're selling 100 fungible goods, right? This is each one is sort of a vantage stream 256 bits, you get one of them at random. Then later, when you actually render the NFT, they will be different. But at the time of sale, then they look indistinguishable to the buyers.
The other extreme would be you just tell people everything. Like, "No, no, no, this is really like the full-blown NFT you would be bidding on complete with all of the information about the rarity of its traits and so on." And so that would be a sort of the extreme where you treat the goods as non-fungible. You can obviously imagine sort of hybrid versions where you have class A NFTs, class B, or class C. But then within a class, you get sort of a randomly sampled version. So this is another, I think, really interesting, as far as I know, not super well understood question. Exactly how much for different objectives you might have, what is the {quote} optimal policy for disclosing information about the NFTs that you're selling.
And maybe even what's the optimal hybrid mechanism too, like Right. thinking back to the Taylor Swift tickets, musical artists often sell some tickets at a below market price like sort of rush the door and others in a primary market auction for the best seats and reserve some to give to their favorite fans in the area or something of the sort. And so there's also like the mixture not just of the disclosure, but how you sell the different types of units in it you could potentially use a hybrid. You might sometimes want to set up a system whereby some people face different prices. Right? A common misconception about auctions is that everyone sort of has to be priced exactly the same way. And that's that's commonly how they're run, but not always. Like you might have preferential pricing for people who have been really
engaged in the project or for people who were part of some group you really want to make sure you involve. And you can implement that all at once. So even if you're running sort of a single auction, you can have a clearing price of .3 say, but like some people's bids get converted by some factor that's their like preferential price. So like maybe if you're in some select group, like every bid you put in is like treated as if you've bid 20% more, like 1.2 times as much. And to give a web two example of that, the way that the auctions for online advertising tend to work is the payments are scaled by the quality of the ad.
Exactly. Web two companies do a ton of machine learning to try to estimate things like the click-through rate of an ad. And so if you have an ad with a high click-through rate, you're actually going to get a discount on the price that you pay. What's the reason that they do that? Like why would the more valuable ad get discounted that way? I mean it's kind of a double reason. One is just from the user side, it's a better experience if you see ads that are relevant as opposed to spammy. Yep. But the other aspect of it is that most of these platforms collect revenue per click rather than per impression. And so they really want to display ads that are likely to be clicked on.
That makes so much sense. Yeah. And then moreover, it sort of incentivizes investment on the side of the advertisers, right? So it basically gives them a good incentive to make their sort of as relevant and as effective as possible. Yeah, it's actually really is a good example of good incentive alignment all around in fact. I love that example. So you guys both came to the space as experts in this, but you work with and talk to a lot of people actually building systems at scale or trying to do it at scale. Tim, when you were saying earlier about how people have to almost reason about like the dumbest things people might do or the most adversarial things they might do, is there a way to simulate this like tactically cuz you can't reason about this stuff in real time with all the expenses and community activity
happening. Like what are things that people can do to kind of test their assumptions out concretely? Yeah, that's a great question. I mean I've been in these sort of stages. Stage one is maybe staring at the wall for a few hours and doing your best. Stage two is you get maybe your colleagues together and you go to a whiteboard and you all try to kind of poke holes in it. And you're absolutely right that if you want to escalate further, simulations definitely be helpful. This sometimes goes by the name agent-based modeling. So if you really want to escalate further, it can be a very effective tool depending on the specific application. And the idea is you basically program and you can think of it as bots actually if you want. But you basically sort of program agents to respond and mess around with your system. And these two
tricky parts of doing agent-based modeling which is first of all you need to figure out like what's the strategy space. The sort of dark art around doing this well is exactly what kinds of strategies should your agents be experimenting with to stress test your mechanism. On the one hand, if you make the space of possible agent strategies too small, you worry that you're sort of missing the attack vectors. On the other hand, if you make the space of possible strategies too large, you're not going to be in a feasible amount of time able to sort of explore a very large part of that space.
But definitely, it's obviously a more costly exercise to implement than just you and your colleagues at the whiteboard. But that can definitely increase your confidence in a mechanism if you stress test It doesn't seem to account for what you don't know. I guess that you broadcast would account for that, but I was just thinking of like things that you really have no idea. Like builders have no idea how things are going to play out in practice. Yeah, it's always an issue, I mean, what's missing in your model. And again, there's an analogy here with cryptography, right? So, a long time ago, people proved that certain cryptographic constructions were quote-unquote secure, but they weren't thinking of things like, you know, side channel or timing attacks. And so then, okay, that's an attack outside the model. And so then, that throws the gauntlet back to the researchers and
say, "Okay, let's actually now enrich our model and allow sort of more types of manipulations and prove security of schemes under that richer adversary model." And it's the same thing when you're studying manipulations that are motivated by, say, profit maximization rather than adversary behavior, there may be stuff outside of your model. The best you can do as a researcher is have some kind of airtight mathematical proof that certain properties hold at least within the confines of your model under the assumptions that you've stated. Okay, so what are some of the other concrete advice or observations you'd give?
One other thing that's important to remember is that most of what we've said about auctions and other sorts of ways of thinking about doing initial sales are basically the same for fungible and non-fungible assets, right? Like the same principles of incentive design and pricing still apply. There is a big difference in that non-fungible assets are individually unique and as a result, they're heterogeneous goods, right? Tim mentioned this idea that a lot of NFT sales are sold with this randomness factor where you're you're buying basically a probability draw. You're buying one of a set of 100 or 10,000 or something of the sort and you get a randomly chosen one from the collection.
Right. You know, market prices sort of assume that goods are commoditized, right? There's a single market price. And so when you're buying a random draw from a collection, there is a single market price, whatever the value of the random element is, but once it's revealed that they're all heterogeneous goods, now suddenly you can have individualized prices as a function of the characteristics. And that's why you hear about like trade floors, right? What's the cheapest price at which you can buy a Sub Duck with a given hat versus a Sub Duck with a given set of glasses or something like that. And so, all of these principles of market design, they have more nuance when you're thinking about heterogeneous objects for sale.
And maybe that'll be the subject of our next podcast. Love it. By the way, on that note about trade floors, I'm a big fan of the Crypto Coven community and the line they use all the time is lore not floor. Because at the end of the day, like the power of storytelling is where the game changes actually, because the value changes so drastically when you add that layer as well, you know, like it's not about the traits and the floor and everything else. Totally. Okay, um final question, just as a quick like lightning round list, what are areas of research, interest, or technologies coming on the horizon that you think will really change the game here? Another way of asking this is what excites you most that's ahead for the future or near future?
So, it's a cliché to say it, but it's still very early. So, usually when people say that, they usually mean it either in terms of investing or in adoption. But just from a purely research perspective, we have so many more questions than we have answers. So, for example, one thing that came up in our conversation was this idea that some auction formats may be less desirable because they leak information. And so, one important research direction is to have auction formats which can be run on chain, which have better privacy properties. And so, there's certainly research on that topic, but we've got a ways to go.
By the way, I had to say when you were talking about we do say it a lot and it's cliché, I almost made a joke that we need to make it like a drinking game for this podcast cuz I suspect it's going to be like a thing that does come up a lot. But in this case, you're right, technically it's it's very much connected in terms of the advancements. I'll stick with the we're early theme. People are still discovering what all these different types of assets are and how to make markets in them and how to sell them, how to trade them, how to exchange them. And so far, they're building frameworks off of a mixture of what's intuitive from the outside world, like what's been used for other types of sales and other types of products, and what's easy to implement on chain. Like,
it's not a coincidence that you end up with descending pay-as-bid auctions before you end up with descending clearing price auctions cuz descending clearing price auctions are much harder to implement. Mhm. And so, I think just as Tim said, we're going to see tremendous development and expansion of the tools and technology for doing different types of sale and marketplace mechanisms sitting in crypto. And most likely, as sort of with every other major technical innovation that's boarded on auction design, we've discovered new auction formats. We've found new ways to do these fundamental processes of discovering value and discovering price.
And so, you know, I'm expecting we'll see new ones here, too. It's just going to be a really exciting decade plus for people who care about market design applications in the Web3 world. We're talking about the transaction fee mechanism that Ethereum now uses for EIP-1559. And I think that's a great example of a mechanism that you just literally would never come up with unless you were designing explicitly for the blockchain L1 setting. There's aspects of it like the revenues being burned rather than passed on to the block producer, using past block sizes as an input to price adjustment process. I mean, these are just not things you would ever come up with but for the unique challenges of blockchain setting.
Yeah. I love that. I think there's an opportunity for researchers interested in market design to get in on the ground floor of something that would be extremely important and awesome technically quite deep. And there's going to be very important work over the next couple of years by the researchers that really kind of take the bull by the horns and tackle these problems head-on. 100%. I think there's a lot of value here for people listening and building so they realize they don't have to reinvent a lot of things that have already been discussed in your world and expertise, and then they can actually reason about the things that they should be focused on like the adversarial examples you gave or other things that they should be doing. I just want to say thank you so much for joining this episode of Web3 with a16z crypto. Thank you guys for
joining today. Thank you Sonal. Super fun. Thanks so much. Yeah, this was great fun. Thank you for listening to Web3 with a16z. You can find show notes with links to resources, books, or papers discussed, transcripts, and more at a16zcrypto.com. This episode was produced and edited by Sonal Chokshi, that's me. The episode was technically edited by our audio editor Justin Golden with Seven Morris. Credit also to Moonshot Design for the art and all thanks to support from a16z crypto. To follow more of our work and get updates, resources from us, and resources from others, be sure to subscribe to our Web3 weekly newsletter.
You can find it on our website at a16zcrypto.com. Thank you for listening and for subscribing. Let's go.