@shotaro
commit-reveal is a common pattern in smart contracts to avoid front running in oracles. But sometimes even committing is enough signal that people can copy without compensating the oracle provider.
I was thinking how to avoid this and the solution seems to split the commit and reveal in separate contracts. Make the commitment in a stealth address (deploy contract as a commitment to a fresh address) and later point to it in a public reveal contract triggering any on-chain actions.
https://medium.com/@edmundedgar/the-parasite-and-the-whale-7cb3c87e9902
reminds me of @edmundedgar.eth 's post on the parasite and the whale.