tweag / cooked-validators

MIT License
39 stars 11 forks source link

Auction clarification #161

Closed carlhammann closed 1 year ago

carlhammann commented 1 year ago

This PR closes #153. The new design of the contract that was necessary in order to accomplish this is explained in this comment.

Before this gets merged, I'd like to cooperate with someone on coming up with a few interesting test cases.

facundominguez commented 1 year ago

The new design of the contract that was necessary in order to accomplish this is explained in this comment.

If I follow the comment, I find this description of the problem:

That version of the contract had the following problem, which we think is fundamentally unsolve with only one transaction: If we want to use only one transaction to mint some tokens with a policy P and make sure that they end up at the correct validator V,

The text then goes immediately to discuss the implementation. But it distills that the problem is "ensuring that minted tokens are only paid to a specific validator V".

If I look at the new version of the Auction, the minting policy still allows tokens to be paid to any address. This minting policy can still be used in a transaction that doesn't use validator V. Which begs the question, how does the new design solve the problem?

facundominguez commented 1 year ago

Oh, I think I get it.

Since the minting policy requires offerTxOut to be spent, and this output has a known validator (unlike in the previous design), that would imply that the transaction needs to pay the minted tokens to the script in order to satisfy the validator.

Maybe there is room to articulate the problem and this argument clearer.

carlhammann commented 1 year ago

Maybe there is room to articulate the problem and this argument clearer.

That's a very good observation! I'll reformulate.