Transaction Order Dependence

Why is this important?

Race Conditions can have tremendous impacts in the context of smart contracts. Transaction Order Dependence is a type of race condition inherent to Blockchains and relies on the fact that the order of transactions themselves can be easily manipulated.

Fixing Transaction Order Dependence

A possible way to fix race conditions is by submitting information in exchange for a reward. This is called a commit reveal hash scheme. Instead of submitting the answer, the party who has the answer submits hash(salt, address, answer), where the salt is a number of their choosing. The contract stores this hash and the sender's address. To claim the reward the sender then submits a transaction with the salt, and answer. The contract hashes (salt, msg.sender, answer) and checks the hash produced against the stored hash, if the hash matches the contract then the reward is released.

More information: