Fairness and Verification of Auctions
Ensuring the fairness of an auction is integral to our technology. Below, we outline the mechanisms and steps involved in proving that an auction was conducted fairly:
- 1.Encryption Source Declaration: A secret contract is declared the encryption source for all auctions.
- 2.Key Allocation: Each auction is allocated a dedicated encryption key.
- 3.Hash Generation: Hashes are generated from a bid amount and a nonce. When the ciphers are revealed, the bid amount and nonce must match their corresponding hash.
The integrity of the custom communication layer can be verified retroactively. It can be exposed at any time if it is found to have provided false information.
The steps to verify a finalized round are as follows:
- 1.Fetch all fed bid hashes and ciphers of a round (e.g., with SubGraph).
- 2.Decrypt all the ciphers using the designated auction ID in the secret contract.
- 3.Fetch all the bid values from the EVM contract hosted on the Polygon network.
- 4.The decrypted bid amounts should match the amounts in the EVM contract, given that the nonce and bid amount from a cipher match. If a cipher of an auction is decryptable via its designated key, but the bid amount is not present in the EVM contract, the custom communication layer is proven guilty.
Additional checks for the legitimacy of the custom communication layer include:
- 1.Each auction should have the same number of bids on the EVM and Secret Network, excluding bids with invalid ciphers.
- 2.The release of the encryption key should always occur after the final block of the auction has been executed.
These mechanisms and verification steps ensure the fairness and reliability of our cross-chain auction game, providing users with confidence in the integrity of the process.