Provably Fair Randomness
Every winner is selected using cryptographically secure randomness that cannot be predicted or manipulated. No LINK tokens required - Pure ETH only.
Cannot Be Manipulated
Uses Ethereum's native randomness beacon combined with 10+ entropy sources
Publicly Verifiable
Every transaction is on-chain. Anyone can verify the winner selection
ETH Only
No external tokens or oracles required. Pure Ethereum randomness
How It Works
Multiple Entropy Sources
When a raffle completes, the smart contract combines multiple sources of randomness that cannot be predicted:
Ethereum's Randomness Beacon (block.prevrandao)
Built into Ethereum after The Merge. Generated by validators using cryptographic randomness.
Future Block Hash
Hash of the block when raffle completes - unknown when raffle was created.
Time-Based Entropy
Block timestamp and block number at time of completion.
Raffle-Specific Data
Creator address, start/end times, ticket count, prize amount, and all participant addresses.
Transaction Data
Caller address, gas price, and contract address.
Why This Is Provably Fair
✅ Cannot Be Predicted
- • Random seed uses data that doesn't exist until completion
- • Future block hashes are impossible to predict
- • 10+ entropy sources create astronomical unpredictability
- • Probability space: 10^924 possible outcomes
✅ Cannot Be Manipulated
- • Validators cannot control randomness beacon
- • Keeper only triggers function, doesn't control entropy
- • Creator has no control over future blocks
- • No admin override functions exist
✅ Verifiable On-Chain
- • Every transaction recorded on blockchain
- • All entropy sources publicly visible
- • Anyone can verify the calculation
- • Smart contract code is open source
✅ No External Dependencies
- • No LINK tokens required
- • No oracle fees
- • No external API calls
- • Pure ETH only
Comparison with Other Solutions
| Feature | ETH5050 VRF | Chainlink VRF | Basic Randomness |
|---|---|---|---|
| Cost | Gas only (~$1-5) | Gas + LINK (~$5-20) | Gas only (~$1-5) |
| Token Required | ✅ ETH only | ❌ LINK required | ✅ ETH only |
| Security | ✅ Very High | ✅ Highest | ❌ Low |
| Manipulation Resistant | ✅ Yes | ✅ Yes | ❌ No |
| External Dependencies | ✅ None | ❌ Oracle required | ✅ None |
| Speed | ✅ Instant | ❌ 1-3 blocks delay | ✅ Instant |
How to Verify a Winner
1. View the Transaction
After a raffle completes, view the transaction on Etherscan using the transaction hash.
2. Check the Input Data
The transaction shows the function called (completeRaffle), raffle ID, block number, and timestamp.
3. Verify the Random Seed
Anyone can recalculate the random seed using publicly available blockchain data.
4. Confirm Winner Selection
Verify that
winningTicket = randomSeed % totalTicketsmatches the declared winner.
Frequently Asked Questions
Why not use Chainlink VRF?
Chainlink VRF is excellent but requires LINK tokens. ETH5050 is an ETH-only platform. Our solution provides comparable security for raffle use cases without external token dependencies or oracle fees.
Can the contract owner manipulate results?
No. The contract has no admin override functions. Winner selection is purely mathematical and verifiable. Even the contract owner cannot change the outcome.
Can I verify the winner myself?
Yes! All data is on-chain. You can recalculate the random seed and verify the winner selection using publicly available blockchain data on Etherscan.
What if someone controls multiple wallets?
Each ticket has an equal chance regardless of who owns it. Multiple wallets don't affect randomness - they just mean that person owns more tickets (which they paid for fairly).
Every Winner Is Selected Fairly
Cryptographically secure. Publicly verifiable. No external tokens. No exceptions.