This is Part Five of the Enigma Solutions Series, examining real-world decentralized solutions that can be built with Enigma’s groundbreaking protocol.

Why do we use auctions?

Often it is to determine the price of goods where the value is not immediately known — a common quandary in the world of crypto. In theory, an auction can result in surplus value for a buyer, who pays less than they think an item is worth, as well as for the seller, who earns more than they think the item is worth.

Peer-to-peer auctions are poised to become a key part of the decentralized web. We see auctions used to sell and trade “non-fungible tokens” (NFT), tokens that cannot be partially sold (what type of monster would cut a Cryptokitty in half!?). Platforms like Rarebits or Opensea facilitate the purchase and sale of such assets through auctions. The Ethereum Name Service (ENS) allows ENS domains to be auctioned off. Decentraland has used auctions to divvy up parcels of virtual land. And of course, ICOs have used auction formats to inform their pricing schedules.

Outside of the nascent web3 ecosystem, we also see an increasing use of auctions that are not intended for humans, but rather for use with multi-agent computational systems. These have been used to control building heating systems, to allocate computer bandwidth, or find landing slots for airplanes.

This article describes the “sealed bid” auction and its generic implementation on Ethereum, and compares that mechanism to a generic implementation on Enigma where non-winning bids are never revealed. The ability to create a truly “secret auction” has appealing properties, such as deterring computational collusion and reducing incentives for “shill” bidding.

What is a “Sealed Bid Auction”?

First, a definition: a “sealed bid” auction means one in which bids are not revealed during the auction process. This can be desirable for a number of reasons, one of which is to prevent collusion among bidders. Governments use sealed-bid auctions for procurement contracts and sales of federal property. In a sealed bid auction, participants are motivated to bid what they wish to pay without knowledge of how other participants value the auction.

[NOTE: A “second price sealed bid” is when a winning bidder pays the second-highest price plus a small increment. It is not the generic implementation described here, but would be trivial to implement in the Enigma model.]

Secret Auctions on Enigma

It’s not possible to do true sealed-bid auctions on Ethereum alone. This is because the blockchain itself replaces the role of ‘auctioneer’. Even hashed bid amounts must be revealed and made visible on-chain in order for the auction to be decided. Ethereum uses the “commit-reveal” design to achieve auctions that are sealed until the end of the auction. Enigma allows non-winning bids to remain encrypted, protecting the bid amounts even after the auction ends, while still ensuring that the highest bid wins the auction.

Aside from an improved user experience, this is important to prevent bidding ring collusion: the practice of a group of powerful buyers agreeing not to compete against one another, and to either take turns or resell on a secondary market. This is important to both the seller, who loses money if high-value bidders cooperate instead of compete, and to less-powerful bidders, who can be more likely to win an auction at their value when high-value bidders do not know who they are competing against, and thus must bid their true value. In a collusion ring, a high-value bidder participating in a second-price auction can be relatively assured that they will win at a reasonable price with an overly large bid.

Below we outline two potential use cases and show how Enigma’s unique technology allows for a better decentralized auction solution.

Auction on Ethereum Use Case

Features of this generic design:

Relies on a “commit-reveal” scheme that is familiar from voting — two user interactions with the auction contract are required in order to successfully participate in an auction. Bids are sealed during the auction, but all revealed bids are public when they are revealed.

Enigma Secret Auction Design

Key features of this alternative design:

Commit-Reveal & hashing is replaced by use of the Enigma network and encryption. Non-winning bids are never visible, but the auction contract can still be trusted.

Summary

Auctions have many characteristics in common with voting, but there are important differences. The bids are an amount of cryptocurrency transferred on the network, not a qualitative result (such as a yes or no vote). This means that to create a sealed bid that is also binding (such that a user cannot back out of their bid), users must submit deposits alongside their bid. One possible challenge with this type of sealed-then-revealed bidding process is that over multiple games, bidder collusion can emerge even when individual games are sealed. The implications of this for dApps are not yet known, but the choice of a sealed vs open bid auction has been shown to have an impact on the type of participant and their likelihood to participate in and win an auction.

Sequence diagram for an auction use-case

Secret auctions — truly sealed auctions — have several interesting properties that will become more important as auctions achieve greater deployment in the blockchain ecosystem. They limit collusion through bid signaling, as well as prevent collusion across multiple games. In future articles, we will explore how this can play out in two-sided auctions and continuous auctions.

Thanks for reading!