- O casino compromete-se com uma seed de servidor oculta antes de apostar, mostrando o respetivo hash SHA-256. Não pode trocar a seed depois sem que a verificação do hash falhe.
- Cada resultado é calculado a partir da seed do servidor, da seed do cliente e de um contador de apostas chamado nonce, normalmente com HMAC-SHA256.
- A verificação consiste em duas verificações: a seed revelada gera o hash que foi mostrado, e recalcular o resultado dá o desfecho obtido.
- O provably fair prova que os resultados não foram alterados. Não prova uma vantagem da casa justa, um operador sólido ou que os levantamentos serão pagos.
- Os jogos de terceiros usam antes RNG certificados por laboratórios. Ambas as abordagens são úteis; nenhuma substitui a outra.
O problema que o provably fair resolve
Num casino online tradicional, confia-se em que o gerador de números aleatórios é honesto, normalmente porque um laboratório de testes independente o certificou para um regulador. É um sistema sólido, mas não se pode verificar nenhum resultado individual por conta própria. Confia-se no laboratório, no regulador e na integração do jogo pelo casino.
O provably fair acrescenta uma verificação do lado do jogador. O casino fixa a sua parte da entrada aleatória antes da aposta e mostra uma impressão digital da mesma. Depois de jogar, revela a entrada. Pode então confirmar-se que corresponde à impressão digital e que produz exatamente o resultado obtido. Se o casino tivesse alterado algo depois de ver a aposta, as contas não bateriam certo.
A ideia nasceu com os sites de dados com Bitcoin no início da década de 2010, quando os jogadores não tinham regulador em que confiar, e é hoje padrão para os originals de casino nos casinos cripto. A nossa explicação de como funcionam os casinos de Bitcoin cobre o enquadramento mais amplo.
Os blocos de construção: hashes, HMAC, seeds e nonces
SHA-256: uma impressão digital de sentido único
O SHA-256 é uma função de hash normalizada pelo National Institute of Standards and Technology dos EUA. Converte qualquer entrada numa cadeia hexadecimal de 64 caracteres. A mesma entrada produz sempre a mesma saída, uma alteração mínima na entrada produz uma saída completamente diferente, e é computacionalmente inviável fazer o caminho inverso a partir da saída ou encontrar uma segunda entrada com o mesmo hash. É isso que o torna um compromisso seguro: publicar o hash não revela nada sobre a seed, mas vincula o casino a ela.
HMAC-SHA256: um hash com chave
O HMAC é uma forma padrão de combinar uma chave secreta com uma mensagem para produzir um hash, definida na RFC 2104 em 1997. Os casinos comprovadamente justos costumam usar a seed do servidor como chave e uma mensagem construída a partir da seed do cliente e do nonce. O resultado são 32 bytes, ou 64 caracteres hexadecimais, que parecem aleatórios mas são totalmente determinados por essas entradas.
Os três dados de entrada
- Server seed: um valor aleatório secreto gerado pelo casino. Antes de jogar, vê-se apenas o seu hash SHA-256.
- Client seed: um valor que controla. Pode manter o predefinido ou escrever o seu. Como o casino se compromete com a sua seed antes de conhecer a sua, nenhuma das partes pode orientar sozinha o resultado.
- Nonce: um contador que na maioria dos casinos começa em 0 (alguns começam em 1) e sobe uma unidade a cada aposta no mesmo par de seeds, de modo que cada aposta tem um resultado novo.
Alguns jogos precisam de mais números aleatórios do que os que uma saída de 32 bytes fornece, por exemplo uma bola de plinko que toma 16 decisões de esquerda ou direita. Os casinos resolvem isto com um contador adicional, muitas vezes chamado cursor ou round, que é anexado à mensagem para produzir blocos adicionais.
O ciclo commit–reveal, passo a passo
- O casino gera uma seed de servidor e mostra o respetivo hash SHA-256. Mostra também o hash da próxima seed de servidor que vai usar, pelo que o ciclo seguinte fica igualmente comprometido.
- Define-se a seed do cliente. O ideal é escrever algo novo em vez de aceitar a predefinida.
- Joga-se. Cada aposta usa o nonce 0, 1, 2 e assim sucessivamente com o mesmo par de seeds.
- Para verificar, roda-se o par de seeds. O casino revela a seed do servidor antiga e passa à seguinte, que já tinha comprometido.
- Aplica-se o hash à seed revelada e compara-se com o hash mostrado antes de se jogar.
- Recalcula-se qualquer aposta desse ciclo com a seed, a seed do cliente e o nonce da aposta, e compara-se com o histórico de apostas.
A ordem importa. Se um casino deixasse definir a client seed e só depois gerasse uma server seed, poderia em princípio escolher uma server seed que o favorecesse face à client seed já conhecida. Ver o hash da server seed antes de definir a client seed é o que impede isso.
Exemplo prático: verificar um lançamento de dados com HMAC-SHA256
O exemplo abaixo usa um esquema simples do tipo que muitos casinos cripto publicam: HMAC-SHA256 com a server seed como chave e a mensagem «clientSeed:nonce:0», os primeiros quatro bytes convertidos num número entre 0 e 1, e esse número escalado para um lançamento de dados entre 0,00 e 100,00. As seeds são deliberadamente legíveis para que se possa reproduzir cada número. As server seeds reais são cadeias longas e aleatórias, e a fórmula exata de cada casino está na sua página de equidade.
Semente do servidor: bgb-example-server-seed-2026. Semente do cliente: my-own-client-seed. Antes do jogo, o casino mostra o SHA-256 da semente do servidor: 8549a6e339607e8972ebb83c975ddf5fe39858ec8d4b6784917dda6bcc538070. Para o nonce 0, a mensagem é my-own-client-seed:0:0, e o HMAC-SHA256 dá uma cadeia hexadecimal que começa por 929c51ca. Esses primeiros quatro bytes são 0x92 = 146, 0x9c = 156, 0x51 = 81 e 0xca = 202. O valor decimal é 146/256 + 156/256² + 81/256³ + 202/256⁴ = 0,5703125 + 0,0023804 + 0,0000048 + 0,00000005 ≈ 0,5726977. Multiplicar por 10 001 dá 5727,55; arredondando para baixo obtém-se 5727 e, dividindo por 100, o lançamento é 57,27. Repetindo com o nonce 7, obtém-se uma cadeia hexadecimal que começa por 13ca30f5, um valor decimal de cerca de 0,0773039 e um lançamento de 7,73.
Para verificar, fazem-se duas coisas. Primeiro, calcula-se o hash da semente do servidor revelada e confirma-se que se obtém exatamente 8549a6e3… Segundo, recalcula-se o resultado para o nonce de uma aposta do historial e confirma-se que coincide. Se ambas as verificações passarem, o resultado dessa aposta ficou fixado antes de ela ser feita.
Porquê 10.001 e não 10.000? A escala dá 10.001 resultados igualmente prováveis, de 0,00 a 100,00 inclusive. Alguns casinos usam uma escala diferente ou um número diferente de bytes, o que altera os números mas não o princípio. Por isso convém usar sempre a fórmula que o casino publica para o jogo em causa.
Verificar por si numa só linha
Com o Node.js instalado, este comando reproduz a jogada do nonce 7 sem qualquer ferramenta do casino. Substituam-se as seeds e o nonce pelos próprios:
- node -e "const c=require('crypto');const h=c.createHmac('sha256','bgb-example-server-seed-2026').update('my-own-client-seed:7:0').digest();let f=0;for(let i=0;i<4;i++)f+=h[i]/Math.pow(256,i+1);console.log(Math.floor(f*10001)/100)"
- Para verificar o compromisso: node -e "console.log(require('crypto').createHash('sha256').update('bgb-example-server-seed-2026').digest('hex'))"
Os módulos integrados hmac e hashlib do Python fazem o mesmo em poucas linhas. A ideia não é que seja preciso programar. É que o cálculo usa funções públicas e padrão, pelo que qualquer pessoa o pode verificar.
Como os jogos transformam o hash num resultado
| Jogo | Utilização típica do resultado aleatório | O que verificar |
|---|---|---|
| Dados | Um valor float escalado para uma jogada, por ex. de 0,00 a 100,00 | Os lançamentos coincidem; a probabilidade de ganhar e o pagamento correspondem à vantagem indicada |
| Limbo | Um valor float convertido num multiplicador com a vantagem incorporada | O multiplicador corresponde à fórmula |
| Plinko | Um valor float ou um bit por linha decide esquerda ou direita | O trajeto e a casa de chegada coincidem; a tabela de pagamentos do nível de risco escolhido |
| Mines | Valores de vírgula flutuante usados para baralhar as posições das peças | As posições das minas coincidem com o tabuleiro revelado |
| Cartas (blackjack, bacará, hilo) | Valores de vírgula flutuante usados para tirar ou baralhar cartas | Cada carta, por ordem, corresponde |
| Crash | Uma cadeia de hashes pré-gerada, muitas vezes com um salt público | O ponto de crash coincide e o hash liga à ronda anterior |
Um casino de confiança publica a fórmula exata de cada jogo original, incluindo quantos bytes usa por número e como os escala. Se um casino anuncia jogos provably fair mas não explica como as saídas se tornam resultados, pode verificar que a seed não foi trocada, mas não que o seu resultado foi calculado corretamente.
Mesmo float, jogo diferente: um exemplo de limbo
O mesmo número aleatório pode alimentar um jogo diferente. O Limbo, por exemplo, converte muitas vezes o valor decimal num multiplicador com a vantagem da casa incorporada. Uma forma comum é multiplicador = 0,99 ÷ valor, arredondado por defeito a duas casas decimais. Como o valor é uniforme entre 0 e 1, a probabilidade de um multiplicador de pelo menos M é 0,99 ÷ M, a mesma curva usada pela maioria dos jogos crash.
Com os valores decimais do exemplo dos dados: o nonce 0 deu 0,5726977, logo 0,99 ÷ 0,5726977 = 1,7287, arredondado por defeito para 1,72x. O nonce 7 deu 0,0773039, logo 0,99 ÷ 0,0773039 = 12,807, arredondado por defeito para 12,80x. Se tivesse sido definido um alvo de 2x, a primeira aposta perde e a segunda ganha. Ao longo de muitas apostas, um alvo de 2x ganha 0,99 ÷ 2 = 49,5 % das vezes, o que, com um pagamento de 2x, devolve 99 %.
Isto é ilustrativo. Os casinos diferem no número de bytes que leem, na forma como limitam o multiplicador máximo e na forma como arredondam, pelo que convém verificar a fórmula na página de equidade do jogo antes de confiar no cálculo próprio.
Provably fair no Telegram e em casinos on-chain
O provably fair não se limita aos casinos de navegador. Muitos casinos do Telegram usam o mesmo sistema de seeds dentro de um bot ou mini-app, e as verificações são idênticas: é preciso ver o hash da server seed antes de apostar, poder definir uma client seed e obter a server seed antiga quando se faz a rotação. Se um bot mostra resultados sem forma de ver ou exportar as seeds, não há nada a verificar.
Um grupo mais pequeno de jogos é resolvido numa blockchain. Em vez de uma server seed na posse do casino, a aleatoriedade pode vir de um serviço de aleatoriedade on-chain ou de um smart contract, e o resultado fica registado numa transação que qualquer pessoa pode inspecionar. Isso elimina a necessidade de confiar na base de dados do casino, mas transfere a confiança para o código do contrato e para a fonte de aleatoriedade, que a maioria dos jogadores não consegue auditar. On-chain não significa automaticamente justo, e também nada diz sobre a vantagem da casa.
Seja qual for a forma que assuma, aplicam-se as mesmas perguntas. É possível ver ao que o casino se comprometeu antes de apostar? É possível reproduzir o resultado com ferramentas públicas? A tabela de pagamentos dá um retorno razoável? Se a resposta a alguma delas for não, a etiqueta por si só vale pouco. O nosso guia de depósitos e levantamentos trata da outra metade da confiança num casino cripto: retirar o dinheiro.
O que o provably fair não prova
- A vantagem da casa. A vantagem está na tabela de pagamentos, não na aleatoriedade. Uma aposta de dados com 49,5% de probabilidade que paga 2x devolve 99% a longo prazo; o mesmo lançamento a pagar 1,9x devolve 94,05%. Ambos têm equidade comprovável. O nosso guia do RTP explica como compará-los.
- Que a fórmula seja a realmente usada para os pagamentos. É possível recalcular o resultado, mas também é preciso verificar se o valor creditado corresponde à tabela de pagamentos desse resultado.
- Nada dos jogos de terceiros. As slots, o casino ao vivo e a maioria dos jogos de mesa de estúdios não são provably fair; dependem de RNG certificados.
- Que o operador seja solvente ou licenciado. Um jogo de dados perfeitamente justo de nada serve se o casino não pagar. O nosso guia de licenças trata desse lado.
- Que haja um tratamento justo nas disputas. Os termos dos bónus, os encerramentos de conta e os limites de levantamento ficam fora da criptografia.
- Que os resultados que não se podem verificar sejam justos. Se o casino nunca revela um server seed porque nunca se roda, ou repõe o historial, não há nada para verificar.
O provably fair torna a batota detetável depois do facto. Não torna o jogo favorável. Cada original de casino tem uma vantagem incorporada, pelo que, quanto mais se joga, mais os resultados se aproximam da perda esperada. Convém encará-lo como entretenimento pago e definir um limite antes de começar.
Sinais de alerta num sistema provably fair
- Não é possível alterar a client seed, ou o casino define-a sem opção de edição.
- O hash da server seed só é mostrado depois de apostar.
- Rodar a semente não revela a semente anterior do servidor.
- A página de equidade não dá nenhuma fórmula, ou dá uma fórmula que não reproduz os resultados do histórico de apostas.
- O único verificador está no próprio site do casino e aceita qualquer valor sem mostrar os passos intermédios.
- A designação «provably fair» é reivindicada para slots ou jogos em direto de terceiros em que não são expostas seeds.
Nada disto prova batota, mas cada ponto retira parte do que torna o sistema verificável. Um casino confiante na sua implementação não tem motivo para esconder os dados de entrada.
Certificação de RNG por terceiros: eCOGRA, iTech Labs e GLI
A maioria dos jogos de qualquer casino, cripto ou não, vem de estúdios externos. Esses jogos são testados por laboratórios independentes antes de os reguladores permitirem que entrem em funcionamento. Os laboratórios examinam o gerador de números aleatórios, a forma como o seu resultado é escalado para os resultados do jogo e se o retorno a longo prazo coincide com o RTP indicado em quantidades muito grandes de rondas simuladas.
| Laboratório | Contexto | O que testa |
|---|---|---|
| eCOGRA | Laboratório de testes sediado no Reino Unido fundado em 2003; diz estar acreditado em 47 jurisdições | RNG, RTP, motores de jogo, plataformas e sistemas de crupiês ao vivo; oferece também resolução alternativa de litígios |
| iTech Labs | Laboratório de testes independente ao serviço de mercados regulados | Certificação de RNG, testes matemáticos e de pagamento, auditorias de RTP com base em registos do servidor |
| GLI (Gaming Laboratories International) | Publica as normas técnicas da GLI usadas por muitos reguladores | Testes segundo normas como a GLI-11 (dispositivos de jogo) e a GLI-19 (sistemas de jogo interativos) |
| BMM Testlabs | Laboratório consolidado que trabalha com muitos reguladores | RNG e testes de jogos para jogos em estabelecimentos físicos e online |
Um certificado de laboratório indica que o jogo foi testado numa versão específica, para uma jurisdição específica, com uma definição de RTP específica. Não indica que versão de RTP o casino utiliza, já que muitos estúdios oferecem várias. Convém consultar o ecrã de informação do próprio jogo para ver o RTP e, sempre que possível, procurar o certificado no site do laboratório em vez de confiar num logótipo no rodapé do casino. Para saber mais sobre como as definições de RTP variam entre casinos, consulte-se o nosso guia do RTP.
Provably fair versus RNG certificado
| Característica | Provably fair | RNG certificado |
|---|---|---|
| Usado para | Originais de casino: dice, crash, limbo, plinko, mines | Slots, jogos de mesa e casino ao vivo de terceiros |
| Quem verifica | Você, aposta a aposta | Laboratórios independentes, para reguladores |
| O que mostra | Que um resultado específico não foi alterado depois da aposta | Que o sistema e as taxas de pagamento se comportam como indicado ao longo de milhões de rondas |
| Quando | Após cada rotação de seed | Antes do lançamento e nas atualizações |
| Ponto fraco | Não diz nada sobre a vantagem, os pagamentos ou o operador | Não pode verificar um resultado individual por si |
As duas abordagens visam o mesmo objetivo por caminhos diferentes. Um casino com jogos de terceiros certificados em laboratório e originals provably fair com fórmulas publicadas oferece os dois tipos de garantia.
Usar o provably fair ao escolher um casino
Um casino que oferece originais provably fair, publica as suas fórmulas, mostra antecipadamente o hash da próxima seed do servidor e deixa definir a seed do cliente está a ser transparente sobre como os resultados são produzidos. Grandes operadores com originais próprios, como a Stake, a BC.Game, a Roobet e a Shuffle, promovem os seus originais como provably fair, tal como marcas mais recentes centradas em originais, como a Duel. Convém verificar pessoalmente a página de justiça de cada jogo, porque as fórmulas e as vantagens diferem entre títulos, mesmo no mesmo casino.
Encarar o provably fair como mais um sinal de confiança, a par da licença (ver as nossas análises de casinos para a licença de cada operador), de condições de levantamento claras e de ferramentas de jogo responsável, e não como garantia por si só. Os nossos rankings de casinos cripto assinalam os operadores com ferramentas provably fair, e o nosso guia de alternativas à Stake compara casinos centrados em jogos originais.
Não é preciso verificar todas as apostas. Define-se a própria client seed, joga-se, roda-se o par de seeds e verifica-se por amostragem um punhado de apostas de cada ciclo, incluindo pelo menos uma ganhadora e uma perdedora. Fazê-lo ocasionalmente chega para confirmar que o sistema funciona como descrito.
Se se dá por si a verificar resultados para provar que o jogo «está na altura» de pagar, é sinal de que convém fazer uma pausa. Cada ronda é independente. O nosso guia de jogo responsável enumera os limites e o apoio disponíveis, e o nosso centro de jogo seguro aponta para serviços de ajuda gratuitos.
Fontes
- IETF RFC 2104 — HMAC: Keyed-Hashing for Message Authentication
- NIST FIPS 180-4 — Secure Hash Standard
- bustabit — quarto evento de seeding (Bitcointalk, 2025)
- bustabit — verificador de jogos de código aberto
- eCOGRA – serviços de teste e certificação
- iTech Labs — testes de RNG e de jogos
- GLI — normas técnicas
Apenas maiores de 18 anos. O jogo envolve risco e deve ser encarado como entretenimento pago, nunca como rendimento. Confirme que o jogo online é legal onde vive antes de jogar. Procure ajuda e defina limites →