Rifama
Sistema Auditado y Verificado Matemáticamente

Transparencia Sin Intermediarios
Criptografía Autónoma

En Rifama la confianza no se promete, se demuestra matemáticamente. Hemos reemplazado los sorteos manuales propensos a errores y fraudes por un protocolo determinístico inalterable.

Sello SHA-256 de Inmutabilidad

Al crear cada rifa, generamos una huella digital criptográfica (hash SHA-256). Si se altera la cantidad de números, la fecha de sorteo, el premio o el creador, el sello se rompe alertando de la manipulación inmediatamente.

Ausencia Total de Control Humano

Nadie (ni el creador de la rifa, ni los compradores, ni los ingenieros de Rifama) tiene acceso físico ni lógico para elegir un ganador "a dedo". El sorteo se ejecuta mediante contratos determinísticos autónomos.

Auditoría 100% Autónoma

Creemos en la verificación independiente. Publicamos la Semilla única de la rifa y la fuente de entropía para que cualquier persona en el planeta pueda auditar y recalcular el ganador de forma externa en segundos.

¿Cómo se elige matemáticamente al ganador?

El motor de sorteos de Rifama utiliza una técnica matemática llamada Alineación Criptográfica Determinística. Cuando la rifa llega a su fin, el número ganador se calcula utilizando dos variables esenciales:

Variable 1: Semilla Inmutable (Seed)

Es un string Base64 generado en base a los parámetros fijos de tu rifa creados el primer día. Actúa como el ADN de la rifa.

Variable 2: Entropía Pública de Cierre

Un factor de aleatoriedad del mundo real tomado en el momento del sorteo a través de la API pública de Random.org (o una firma criptográfica interna si el servicio no está disponible). Es imposible de predecir o sesgar.

La Fórmula Matemática por Rondas

Para sorteos de múltiples premios (hasta 5 ganadores), el motor de sorteos de Rifama realiza el cálculo en rondas sucesivas de forma determinista para garantizar que un mismo comprador/número no pueda ganar más de un premio (exclusión mutua):

FÓRMULA POR RONDAS
Entrada_Ronda = Semilla + "-" + ID_Rifa + "-" + Total_Boletos_Restantes + "-" + Posicion_Premio
Ganador_Index = ( DecVal( SHA256( Entrada_Ronda ) ) % Total_Boletos_Restantes )

Luego de cada ronda, el boleto ganador en `Ganador_Index` es retirado de la lista de boletos participantes para la siguiente ronda.

¿Por qué es este método infalible?

  • Criptográficamente Seguro: El hash SHA-256 es una función matemática de un solo sentido. Es computacionalmente imposible revertirla o encontrar colisiones para forzar un ganador.
  • Verificable por Cualquiera: Debido al determinismo del algoritmo, si ingresas los mismos inputs en cualquier computadora del mundo, el resultado de todos los ganadores será exactamente el mismo.
  • Garantía de Exclusión Mutua: Al eliminar el número ganador de la lista de números disponibles para la siguiente ronda, garantizamos matemáticamente que no haya ganadores duplicados dentro de la misma rifa.

Auditoría Autónoma en tu PC

Copiá y ejecutá este script en Node.js para verificar cualquier sorteo multi-ganador de Rifama.

Consola del Desarrollador
// Script de Verificación Autónoma de Sorteos por Rondas - Rifama
const crypto = require("crypto");

/**
 * Simula el motor de sorteos oficial determinista de Rifama por rondas.
 * @param {string} finalSeed Semilla final del sorteo (generada por Random.org o interna)
 * @param {string} raffleId ID único de la rifa
 * @param {Array<number|string>} boletosVendidos Lista de números de boletos vendidos (ej: [0, 4, 12, 55, 99])
 * @param {number} totalPremios Cantidad de premios a sortear (1 a 5)
 */
function auditarSorteoMultiPremios(finalSeed, raffleId, boletosVendidos, totalPremios = 1) {
  // Clonar la lista y ordenar para asegurar el orden determinista inicial
  const poolParticipantes = [...boletosVendidos].sort((a, b) => Number(a) - Number(b));
  const resultados = [];

  console.log(`Participantes iniciales (${poolParticipantes.length}):`, poolParticipantes);

  for (let puesto = 1; puesto <= totalPremios; puesto++) {
    if (poolParticipantes.length === 0) {
      resultados.push({ puesto, ganador: "Vacante", hash: "" });
      continue;
    }

    // Fórmula oficial de Rifama por ronda
    const hashInput = `${finalSeed}-${raffleId}-${poolParticipantes.length}-${puesto}`;
    const hash = crypto.createHash("sha256").update(hashInput).digest("hex");

    // Convertir primer segmento de hash a BigInt para cálculo de módulo equiprobable
    const bigIntHash = BigInt("0x" + hash.slice(0, 16));
    const winnerIndex = Number(bigIntHash % BigInt(poolParticipantes.length));
    const boletoGanador = poolParticipantes[winnerIndex];

    resultados.push({
      puesto: `${puesto}° Premio`,
      boletoGanador: boletoGanador,
      hashInputUsado: hashInput,
      hashHex: hash
    });

    // Exclusión mutua: eliminar al ganador de esta ronda para la siguiente
    poolParticipantes.splice(winnerIndex, 1);
  }

  return resultados;
}

// --- DATOS DEL SORTEO A AUDITAR ---
const finalSeed = "ingresa_aqui_la_semilla_del_sorteo"; 
const raffleId = "ingresa_aqui_el_id_de_la_rifa";
const boletosVendidos = [10, 24, 35, 48, 59, 72, 85, 99]; // Lista ordenada de números vendidos
const cantidadPremios = 3; // Cantidad de premios configurados

console.log("--- RESULTADO DE LA AUDITORÍA DE RONDAS ---");
console.log(JSON.stringify(auditarSorteoMultiPremios(finalSeed, raffleId, boletosVendidos, cantidadPremios), null, 2));
* Para auditar un sorteo real, reemplazá las variables con los datos correspondientes que figuran en la pestaña de Auditoría de tu rifa finalizada.

Preguntas Frecuentes de Transparencia

¿Puede Rifama saber el ganador antes del sorteo?

Absolutamente no. La variable de entropía final sólo se conoce al momento del sorteo y proviene de un ente descentralizado e incorruptible del mundo exterior. Sin esa variable de entropía final, es imposible calcular el resultado del hash.

¿Qué pasa si el organizador de la rifa no vende todos los números?

El protocolo de Rifama siempre realiza el cálculo determinista equiprobable en base a los números participantes. Si la rifa fue configurada para sortearse al venderse todo, se esperará a completar el cupo. Si es por fecha, el cálculo se ajustará en base al total de números activos de forma justa.

¿Por qué este sistema es más seguro que un bolillero tradicional?

Los bolilleros manuales o sorteos en vivo pueden manipularse mediante técnicas físicas, edición de video o interrupción de transmisión. El sistema criptográfico de Rifama, al ser puramente matemático e inmutable, puede auditarse de forma retrospectiva por miles de personas en simultáneo asegurando un resultado inapelable.

Sorteá con la Confianza de Rifama

Creá tu rifa hoy y brindale a tus compradores seguridad criptográfica verificable.

Comenzar ahora