Replies: 1 comment
|
Following up with the concrete case behind this question, in case it helps decide. We built a commit/reveal/beacon round for fair random draws (dispute panels, reviewer selection, audit samples) as a single Tau spec and tested it on devel a9ca5c8: participants commit, then reveal, then one public random value seals the seed, and the panel is drawn from the sealed seed by reject-and-redraw. Proofs over every step show the seed cannot change once sealed, the last revealer cannot steer it, picks are distinct eligible members, and the round never reaches "no solution"; live rounds with pools up to 1,000 members matched an outside model step for step. Three places still rely on the host, all because there is no hash:
We realise a built-in hash would put a function designed to be hard to invert in front of the solver, so it may be a poor fit for sat/valid. For our use it would be enough if the value were computed on concrete inputs at run time and treated as opaque in proofs. Questions:
|
Uh oh!
There was an error while loading. Please reload this page.
Purpose: Provably fair games, sealed bids and similar "commit now, reveal later" designs need a binding commitment, and Tau has no hash. Knowing whether one is planned, or that the answer is "the host hashes and feeds the result in", decides how we design those products.
Commit-reveal designs (provably fair games, sealed-bid auctions) need a binding commitment: a player publishes H(seed) first and reveals seed later, and a rule checks that they match. Tau has bitvector arithmetic but no hash, so today the host would compute H and feed the result in as an input, and the spec has to trust the host for that step.
Is a hash or commitment construct planned for the language? If not, what is the recommended pattern on Tau Net: host-computed digests passed as custom inputs, or something else?
All reactions