FameBet

O que é comprovadamente justo?

Comprovadamente justo significa que o resultado de cada jogo é gerado por um valor aleatório que os jogadores podem verificar independentemente. Isso garante transparência e justiça, assegurando que nem o jogador nem o cassino possam manipular o resultado.

Como funciona?

VRF (função aleatória verificável) para gerar um valor verdadeiramente aleatório, usamos um VRF. Esta função recebe várias entradas, incluindo o ID do usuário, nome do jogo, nonce do jogo e a chave secreta do cassino. Ela realiza cálculos criptográficos e produz tanto um valor aleatório quanto uma prova. Esta prova permite que qualquer pessoa verifique que o valor foi gerado de forma justa e não foi adulterado. Seguimos a implementação VRF RFC6979 usando o conjunto de cifras SECP256K1_SHA256_TAI para aleatoriedade segura e verificável.

Verificando a justiça

Os jogadores podem verificar independentemente o valor aleatório usando o seguinte código:

const { verify } = require('@roamin/ecvrf')
const toHex = require('string-hex')

const publicKey = '03c41192ba26b7efafa9c69c941f759690d4fd46761c8424edbad1d5fc2c5c0947'
const request = 'e1bc2c47-9b42-4409-8a21-d4c4f46455be|rollbit:mines|25|1234costam'
const random = 'e2983665217b5aaebf11c886ef31e001c9615362b0aa6c3e49de9057f8979e1d'
const proof = '03008cd333b153dddcffc64abf357222d31cd6e6f85ddbbe9227a60d2d0edcf9e6ab0f088c1f4402e6b4fa0ef430612d3ca86a686fc857ff412a8fe1553c821f47fcc21f4b2ca1d4c3b09b59a7e4fe1b8a'

try {
  const result = verify(publicKey, proof, toHex(request))
  console.log(result === random ? 'Is Verified' : 'Not Verified')
} catch (error) {
  console.log(error)
}

Calculando o resultado do jogo

Uma vez verificado o valor aleatório, ele é convertido em um número:

import * as crypto from 'crypto';
function bytesToUniformFloat(xs) {
    const hash = crypto.createHash('blake2b512').update(xs).digest();
    const value = hash.readBigUInt64LE(0);
    return Number(value) / Number(BigInt(2 ** 64 - 1));
  }

Este número convertido é então usado para gerar o resultado final do jogo com base na lógica específica do jogo.

function calcMinesIxs({ size, mines, randomValue }) {
  const remainingIxs = Array.from({ length: size }, (_, i) => i);
  const mineIxs = [];
  for (let i = 0; i < mines; i++) {
    const seedI = Buffer.from(randomValue + '-' + i, 'ascii');
    const ixI = Math.floor(bytesToUniformFloat(seedI) * remainingIxs.length);
    mineIxs.push(remainingIxs[ixI]);
    remainingIxs.splice(ixI, 1);
  }
  return mineIxs;
}

const calcMinesWin = ({ size, mines, reveals, bet }) => {
  let mult = 1.0;
  for (let i = 0; i < reveals; i++) {
    const lossProbability = mines / (size - i);
    mult *= 1.0 / (1.0 - lossProbability);
  }
  return Math.floor(100.0 * bet * mult * 0.98) / 100.0;
};

function generateBoard({ size, mines, randomValue }) {
  const mineIxs = calcMinesIxs({ size, mines, randomValue });
  const sizeSqrt = Math.sqrt(size);
  const board = Array.from({ length: sizeSqrt }).map(() => Array(sizeSqrt).fill(0));
  for (const index of mineIxs) {
    const row = Math.floor(index / sizeSqrt);
    const col = index % sizeSqrt;
    if (row < sizeSqrt && col < sizeSqrt) {
      board[row][col] = -1;
    }
  }
  console.log('Board:', board);
  return board;
}

generateBoard({ size: 25, mines: 2, randomValue: 'be87e890f696aad0aad28bef78a3f2322c7687a76ff6f86b6dadb4f2aa00eeb9' });
console.log('Multipliers:');
for (let i = 1; i < 24; i++) {
  console.log(i, ': ', calcMinesWin({ size: 25, mines: 2, reveals: i, bet: 1 }));
}
Famebet

Famebet.com é propriedade e operado pela Better Fame LTD. número de registro: 15907, endereço registrado: Hamchako, Mutsamudu, Ilha Autônoma de Anjouan, União das Comores. Entre em contato conosco support@famebet.com. Famebet.com é licenciado e regulamentado pelo Governo da Ilha Autônoma de Anjouan, União das Comores e opera sob a Licença No. ALSI-202509070-FI2. Famebet.com passou por toda conformidade regulatória e está legalmente autorizado a conduzir operações de jogos para todos os jogos de azar e apostas.

DiscordTelegramTikTokYouTubeInstagramX

Contato

support@famebet.com

Parceiros

partners@famebet.com

Afiliados

18+

© 2025 Famebet. Todos os direitos reservados.