O problema que a verificação resolve
Todo jogo de cassino é uma afirmação: "este resultado foi aleatório, e não escolhemos depois de ver sua aposta." Numa sala física você audita essa afirmação com seus olhos — baralhos frescos, dados transparentes, uma roda que você pode observar. Online, a aleatoriedade acontece no computador de outra pessoa. Provably fair é o substituto criptográfico para observar as mãos do dealer.
O mecanismo central é commit-reveal. Antes de apostar, a casa bloqueia sua aleatoriedade em lugar e mostra a você uma impressão digital dela — um hash SHA-256 da seed do servidor. Um hash funciona em um único sentido: a casa não consegue encontrar uma segunda seed correspondente à mesma impressão digital, e você não consegue ler a seed a partir dela. Depois que a seed é revelada mais tarde, você a verifica contra a impressão digital que lhe foi mostrada, e recomputa cada rodada que ela produziu.
Os três inputs de cada rodada
| INPUT | QUEM ESCOLHE | O QUE FAZ |
|---|---|---|
| Server seed | A casa — comprometida como um hash antes do jogo | A metade da aleatoriedade da casa |
| Client seed | Você — editável no painel de fairness | Sua metade; a casa não consegue prever isso |
| Nonce | Ninguém — conta 0, 1, 2, … | Torna cada rodada única sob as mesmas seeds |
A aleatoriedade bruta da rodada é HMAC-SHA256(server seed, client seed : nonce) — um hash com chave misturando os inputs de ambas as partes. Como sua client seed entra na mistura, a casa teria precisado prever sua escolha para viciar um resultado; porque a server seed foi comprometida primeiro, não pode ser trocada depois sem quebrar a impressão digital que você já possui.
A partir desse digest, bytes se tornam números. Nossos engines leem os primeiros bytes como um valor uniforme em [0,1) — com o arredondamento feito bit-a-bit da mesma forma no gerador e no verificador — e cada jogo mapeia valores uniformes para resultados através de suas regras publicadas: uma curva de rolagem de dados, um sorteio de carta de um pool encolhedor, dados chinchiro em posições de cursor fixas.
O guia passo a passo
- Abra qualquer original e abra o painel de fairness. Anote o hash da server seed atual — este é o compromisso. Defina sua própria client seed se desejar.
- Jogue uma ou duas rodadas. Cada rodada liquidada registra seu triplo (hash, client seed, nonce) no seu histórico de apostas.
- Rotacione seu par de seeds no painel. A rotação aposentar a seed do servidor anterior e — este é o momento-chave — a revela.
- Hash a seed do servidor revelada com SHA-256 e compare com a impressão digital da etapa 1. Elas devem corresponder exatamente.
- Recompute a rodada: HMAC-SHA256(revealed seed, "clientSeed:nonce"), mapeie o digest através da regra publicada do jogo e compare com o resultado que você recebeu.
- Qualquer ferramenta independente funciona para as etapas 4–5 — uma calculadora SHA-256 online, três linhas de Python, ou o verificador embutido do painel. A matemática não tem opinião sobre quem a executa.
ENGINE-VERIFIEDUm detalhe é incomum na implementação da Betkyo: o engine de demo que gera resultados e o painel de fairness que os verifica importam o mesmo módulo de derivação — uma implementação, não duas. Um verificador que compartilha seu código com o gerador não pode divergir do acordo com ele.
O que a verificação não afirma
A honestidade exige marcar os limites. Provably fair prova que os resultados foram fixos no momento do commitment e mapeados através da regra publicada. Isso não prova que a regra é generosa — um jogo poderia ser provably fair e ainda pagar mal, e é por isso que publicamos cada paytable e house edge ao lado. Isso não impede perdas, encurta sequências de perdas, ou faz qualquer promessa sobre a próxima rodada; promete apenas que a próxima rodada não foi escolhida contra você.
E não pode verificar o que não pode ver: o esquema cobre os resultados do jogo, não, digamos, a ordem em que eventos externos ao vivo são resolvidos. Quando um dos nossos jogos depende de um feed externo, a página de fairness diz explicitamente ao invés de estender a afirmação.
Glossário
| TERMO | SIGNIFICADO |
|---|---|
| SHA-256 | Um hash unidirecional: qualquer entrada → uma impressão digital de 256-bit; infeasível de reverter ou colidir |
| HMAC | Um hash com chave — mistura uma chave secreta (server seed) com uma mensagem (client seed : nonce) |
| Commit-reveal | Publique a impressão digital primeiro, o valor depois; a impressão digital prova que o valor nunca mudou |
| Nonce | "Número usado uma vez" — um contador que torna o digest de cada rodada único |
| Rotação de seed | Aposentando um par de seeds: a seed do servidor antiga é revelada para auditoria, um novo compromisso começa |
FAQ
Preciso conhecer criptografia para verificar uma rodada?
Não. O painel de fairness automatiza cada etapa, e o caminho manual não precisa de nada além de colar strings em qualquer calculadora SHA-256/HMAC. Entender por que funciona leva um parágrafo; executar leva um minuto.
Por que tenho que rotacionar minha seed para verificar?
Porque a seed do servidor deve permanecer secreta enquanto ainda está produzindo rodadas — revelá-la cedo permitiria que um jogador computasse resultados futuros. A rotação encerra a vida da seed, o que é exatamente o que torna seguro revelá-la e auditá-la.
A casa poderia gerar uma seed sortuda para si mesma?
O compromisso bloqueia a versão útil disso: a seed é fixada antes de suas apostas e misturada com uma seed do cliente que você controla. A casa precisaria prever sua seed, sua aposta e seu timing — nesse ponto não está mais gerenciando um cassino, mas um ato de leitura de mentes.
Provably fair é a mesma coisa que ser licenciado ou auditado?
Não — eles respondem a perguntas diferentes. Auditorias e licenças são confiança institucional; provably fair é confiança matemática em cada resultado individual. Publicamos a matemática e nossas tabelas de pagamentos completas para que as duas afirmações nunca sejam confundidas.
FONTES & REFERÊNCIAS
- HMAC — RFC 2104, a construção keyed-hash usada por rodada
- SHA-2 family — FIPS 180-4, o hash de compromisso
- Betkyo engine source: RNG primitivas compartilhadas e os módulos de derivação generator/verifier único
OS JOGOS NESTE ARTIGO
Limbo — regras e jogo grátis →Dice — regras e jogo grátis →Chinchiro — regras e jogo grátis →