Provably Fair Draw Receipt Generator
Rozpočet: $800.0
FIXED /
⭐ 5.00 (9)
USA
javascript, python, technical-writing, cryptography
Build a “provably fair draw” receipt generator — sealed entrant list + drand public randomness + static proof pages (fixed scope, 7 days)
DESCRIPTION
I’m building trust infrastructure for online giveaways and random selections. When a winner is announced and someone screams “rigged,” the operator currently has nothing to show. This tool fixes that: it seals the entrant list BEFORE the random number exists, uses public randomness (drand), and produces a proof page any losing entrant can verify themselves — without trusting the operator, or us.
This is a small, sharply-scoped build from a complete spec. Seven calendar days. Fixed price. No scope additions — the descoping IS the design.
What you will build (all six, nothing else):
1. Seal tool — input: CSV of entrants (public handles). Normalizes per stated rules (trim, case, dedupe, stable index). Output: canonical list + SHA-256 pool digest.
2. Pre-draw commitment page — static HTML, published before the draw: pool hash, entrant count, cutoff timestamp, the named FUTURE drand round (or the rule selecting it), operator/campaign info, and the exact winner-selection rule.
3. Deterministic draw engine — script (Python or Node): input = drand round value + pool digest; output = winner index + 3 alternates. Must use unbiased rejection sampling (if you don’t know why naive modulo is wrong, this isn’t your job). Fully deterministic: same inputs → same outputs on any machine. This component ships open-source (MIT) — outsiders must be able to re-run it.
4. Public receipt page — static HTML. Top: a human-readable card a non-technical person understands in 10 seconds (“List locked 8:00 PM · 4,392 entries sealed · Random number published 8:01 PM (drand round #X) · Winner drawn by public formula”). Below, behind an expander: full technical detail (hashes, round signature link, rule).
5. Verify-my-entry + recompute — entrants check their handle is in the sealed list, and an in-browser widget (or dead-simple script) lets anyone paste the drand value and recompute the winner themselves.
6. Operator runbook + 3-command local tool — seal → draw → outputs the static pages. A non-developer (me) will run real draws with this. If I can’t operate it from your runbook alone, milestone 3 doesn’t close.
Explicitly OUT of scope (do not propose these): Merkle trees / inclusion proofs, user accounts, databases, admin dashboards, Discord bots, Shopify apps, APIs, email/privacy-hashing modes, hosting infrastructure (static files only — I’ll host), and anything blockchain.
Tech constraints: Python or Node/TypeScript for tooling. Static HTML/CSS/vanilla JS (or minimal build step) for pages. drand HTTP API (quicknet). Everything reproducible. Verifier components MIT-licensed.
Review: your cryptographic choices (commitment format, derivation, sampling) get a 30-minute review call with our core engineer before first public use. You should welcome this.
Milestones (fixed $800 total):
• M1 — $250: draw engine + commitment format + test vectors (day 3)
• M2 — $400: receipt page + verify page + local tool (day 6)
• M3 — $150: runbook + fixes from engineering review (day 7–8)
Follow-on: if this goes well, there is a clear paid roadmap behind it (privacy mode, platform integrations, productization). First hire on this codebase has the inside track.
DO NOT APPLY IF:
• You’re going to pitch blockchain, smart contracts, tokens, wallets, or “put it on-chain.” Instant disqualification — this is deliberately chain-free.
• You’re an agency or a team. Solo developers only.
• Your instinct is to expand this into a SaaS platform with dashboards and accounts. The constraint is the product.
• You can’t commit to 7 calendar days from a complete spec at the fixed price.
• Your profile is a wall of every skill that exists. I’m hiring a specialist for a scalpel job.
To apply, answer these four (short answers beat long ones):
1. A naive way to pick a winner is random_value % list_length. In 2–3 sentences: what’s wrong with that, and what do you do instead?
2. Have you used drand or any public randomness beacon? If not, skim drand.love and tell me in 2 sentences how you’d bind a draw to a round that doesn’t exist yet.
3. Link ONE thing you built that non-technical people actually use.
4. Confirm: 7 days, $800 fixed, scope as written, crypto review call included.
Otvoriť na Upwork