We design and implement a secure auction system on Bitcoin. It is open and transparent, where everyone can participate and the highest bidder wins when the bidding is over. Bidders are binded to their bids and auctioneers to the auction results.
- bid: If a higher bid is found, the current winner is updated and the previous highest bidder is refunded.
- close: the auctioneer can close the auction after it expires and take the offer.
There are many ways to extend this basic contract. For example, if the item auctioned is tokenized and stored in a UTXO (e.g., an NFT), when the auctioneers closes the auction, it can be demanded one input is the token UTXO and one output is transferring it to the winner, thus making the closing atomic and cheating impossible.