← Обяви

Provably Fair Draw Receipt Generator

Бюджет: $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.
Отвори в Upwork