Verificación pública de sorteo
Rifa en Memoria de Raul Paredes
Organizado por IkerParedes · Algoritmo RIFLY-CR-1
✓
Sorteo verificado
Comprobado en este mismo servidor, al cargar la página.
- ✓La semilla revelada produce exactamente el compromiso publicado antes de vender.
- ✓Cada ganador se reproduce al recalcular el HMAC con la semilla y la entropía de la venta.
Ganadores
1º premio
Lucero García
TK-WPNKKH2ND8
Boleto
114
2º premio
Hugo Brito Garcia Teruel
TK-UW2EXZXE8P
Boleto
186
3º premio
Hugo Brito Garcia Teruel
TK-UTKHHQ6TG7
Boleto
138
Datos para auditar
Con estos valores cualquiera puede reproducir el sorteo por su cuenta, sin acceso a la plataforma.
1 · Compromiso publicado antes de la venta
3dfbbfdbc4bdaf30db08b9f68713dce26e80518d9631b9297ac3f9f8d2cb5b202 · Semilla revelada al sortear
a612263c4a04d13d415207c63a3743d8f5fda5a8bea6e951e0bbd40154668e3c3 · Entropía de la venta (no la controla el organizador)
raffle:706a5b92-f91d-44ab-879b-813727e253bb|sold:231|last_order:RF-DUUT-R5DS|last_paid:2026-08-19T18:16:34.469ZBoletos en el pool
231
Ejecutado
20 ago 2026, 10:41 p.m.
Algoritmo
RIFLY-CR-1
Derivación de cada premio
| Premio | Pool | Índice | Recalculado | Boleto |
|---|---|---|---|---|
| 1º | 231 | 76 | 76 ✓ | 114 |
| 2º | 230 | 121 | 121 ✓ | 186 |
| 3º | 229 | 89 | 89 ✓ | 138 |
Reprodúcelo tú mismo
Copia esto en cualquier terminal con Node instalado. No necesitas nada de esta plataforma.
const crypto = require("crypto");
const semilla = "a612263c4a04d13d415207c63a3743d8f5fda5a8bea6e951e0bbd40154668e3c";
const compromiso = "3dfbbfdbc4bdaf30db08b9f68713dce26e80518d9631b9297ac3f9f8d2cb5b20";
const entropia = "raffle:706a5b92-f91d-44ab-879b-813727e253bb|sold:231|last_order:RF-DUUT-R5DS|last_paid:2026-08-19T18:16:34.469Z";
// 1 · la semilla corresponde al compromiso publicado
console.log(
crypto.createHash("sha256").update(semilla).digest("hex") === compromiso
);
// 2 · derivación del 1º premio
const etiqueta = entropia + "#premio:1";
const hmac = crypto.createHmac("sha256", semilla).update(etiqueta).digest("hex");
const indice = Number(BigInt("0x" + hmac.slice(0, 32)) % 231n);
console.log(indice); // → 76El índice apunta a la posición dentro de la lista de boletos vendidos ordenada por número de forma ascendente. Los premios se asignan sin reemplazo: un boleto que ya ganó sale del pool antes de derivar el siguiente.