Transparência

Como confirmar que o jogo é justo

Não tens de confiar em nós. Nesta página vês quanto a casa ganha em cada jogo e podes confirmar, no teu próprio browser, que cada resultado foi decidido antes da aposta e nunca foi mudado.

Em três passos

  1. Antes de jogaresO servidor escolhe um código secreto e mostra-te só o selo dele. Com o selo à vista, o código já não pode ser trocado.
  2. Enquanto jogasCada resultado é calculado a partir desse código, de um código teu e do número da jogada. Ninguém escolhe o resultado à mão.
  3. DepoisO código é revelado. O teu browser confirma que bate com o selo e volta a calcular todas as jogadas. No casino isto é automático: procura o ✓.
Como funciona por dentro (para quem quer os detalhes)
  1. Compromisso. Antes de apostares, o servidor escolhe uma server seed secreta e mostra-te só o seu hash SHA-256 (o "selo"). Um hash é uma impressão digital: não revela a seed, mas qualquer alteração à seed mudaria completamente o hash.
  2. A tua parte. Tu escolhes a client seed (o teu código; podes mudá-lo quando quiseres). Como entra na conta, o servidor não consegue prever o resultado final sozinho.
  3. Nonce. Cada aposta usa um contador (0, 1, 2…), para que a mesma combinação de seeds dê um resultado diferente em cada jogada.
  4. Resultado. Os números aleatórios saem de HMAC-SHA256(chave = server seed, mensagem = "client seed:nonce:bloco"). Cada bloco dá 8 números de 4 bytes; dividir cada um por 2³² dá um decimal entre 0 e 1, que cada jogo transforma em resultado.
  5. Revelação. Quando trocas de código, a server seed antiga é revelada. O SHA-256 dela tem de ser igual ao selo mostrado antes, e todas as jogadas feitas com ela têm de dar o mesmo resultado quando recalculadas.

Crash: o ponto de rebentamento sai do primeiro número, com a mesma fórmula do Limbo. Blackjack: cada número dá uma carta (de 52, baralho infinito), pela ordem jogador, banca, jogador, banca escondida e depois as jogadas. Com um Ás à vista da banca, a primeira jogada é o seguro (sim ou não), que não gasta cartas. Copos: o primeiro número diz em que copo fica a bola (a contar da esquerda); fica decidido quando apostas, antes de os copos se misturarem, e o servidor só o mostra depois de escolheres.

Pedra, papel, tesoura contra a casa: o primeiro número decide a jogada da casa (⅓ para cada uma) e o segundo a tua, se não escolheres em 10 segundos. Como só dependem das seeds e do número da jogada, ficam decididas antes de escolheres e a casa não as pode adaptar à tua escolha. Ganhar paga 3 × (1 − margem) − 1, o empate devolve a aposta. Desafios entre jogadores: as jogadas são dos jogadores; a quem não escolher a tempo, a casa escolhe com HMAC-SHA256(seed do desafio, "referência:creator|joiner"). No cara ou coroa, a moeda sai de HMAC-SHA256(seed do desafio, "semente de quem criou:semente de quem aceitou"). A seed de cada desafio é selada antes e revelada no fim (verificador mais abaixo).

O dinheiro é calculado com números inteiros (margem em "bps": 100 bps = 1 %), por isso o servidor e o teu browser chegam exatamente ao mesmo resultado. O código é o mesmo nos dois lados: fair.js (SHA-256 …).

Crash e Roleta: as últimas rondas

Estas rondas são da casa e iguais para todos. Cada código revelado dá o selo da ronda anterior, por isso a sequência inteira ficou fixada antes de começar o jogo e nenhuma ronda pode ser trocada. A tabela é conferida aqui, no teu browser.

A carregar as últimas rondas…

Comboio: as viagens e o verificador

Os três comboios (Fácil, Médio e Difícil) são da casa e iguais para todos. Cada viagem usa um código da sequência da sua linha, selado antes de o comboio partir, e o número de estações que a viagem consegue fazer sai desse código. Quando há o acidente, o código é revelado: aqui o teu browser refaz a viagem.

A carregar as últimas viagens…

Como se calculam as estações e os multiplicadores

Quanto a casa ganha em cada jogo

A margem da casa é a parte de cada aposta que a casa fica, a longo prazo. Com uma margem de 2 %, um jogo devolve em média 98 $ por cada 100 $ apostados (é o RTP, retorno ao jogador). A margem nunca passa de 7 % e fica gravada em cada ronda, por isso uma alteração nunca afeta jogadas já feitas.

JogoMargem da casaRTP teóricoRTP medidoAposta mín. – máx.
A carregar…

O RTP medido só aparece depois de 100 rondas no jogo (com poucas rondas a sorte domina e o número não quer dizer nada). Prémio máximo por ronda: —.

Histórico de alterações da margem

A carregar…

Verificar uma jogada

No casino, abre uma jogada do histórico e usa "Abrir no verificador independente": os campos ficam preenchidos. Também os podes copiar à mão. Tudo é calculado aqui, no teu browser: nada é enviado ao servidor.

Queres verificar mais a fundo? Sem problema!

Descarrega o verificador offline: um só ficheiro, com o mesmo código que decide os resultados no site, para abrires no teu computador, sem internet. Pede-te três coisas e refaz a jogada do princípio ao fim.

  1. O jogoEscolhes o jogo que jogaste: Blackjack, Crash, Minas, Póquer…
  2. Antes do jogoO que te mostrámos antes de a jogada começar: o selo (hash) da server seed, a tua client seed, o número da jogada e as tuas escolhas.
  3. Depois do jogoO que revelámos depois: a server seed e o que fizeste durante a jogada. O ficheiro diz-te se tudo bate certo.

Porque é que isto te protege. O selo fica à vista antes de apostares e a conta é sempre a mesma. Como refazes a jogada sozinho, no teu aparelho e sem internet, a casa não tem como interferir: se mudasse um resultado ou a probabilidade de ganhar, a tua verificação deixava de bater certo. A única forma de tudo bater certo é jogar limpo, por isso a casa é obrigada a ser transparente.

Descarregar o verificador offline

Um ficheiro HTML de cerca de 0,2 MB. Abre-se com duplo clique, no browser de qualquer computador (Windows, Mac ou Linux), sem instalar nada. Para teres a certeza de que nada sai do teu computador, desliga a internet antes de o abrir.

No fundo, o ficheiro mostra o SHA-256 do motor que traz dentro (fair.js). Tem de ser este: …

Porquê um ficheiro HTML e não um programa (Python, PowerShell, .bat)?

É o formato com menos dependências: qualquer computador já tem um browser. Um script em Python precisava do Python instalado; um em PowerShell ou .bat só corre em Windows e pede permissões. O HTML corre igual em Windows, Mac e Linux, sem instalar nada. E é texto: podes abri-lo num editor e ler cada linha. A política de segurança do próprio ficheiro proíbe qualquer ligação à internet.

Confirmar um desafio entre jogadores

Nos desafios de pedra, papel, tesoura e de cara ou coroa, o casino sela uma seed antes do resultado (publica só o SHA-256) e revela-a quando o desafio fecha. Aqui o teu browser confirma que a seed é a que foi selada e volta a calcular o que sai dela: as jogadas que a casa escolheu por quem não escolheu a tempo, ou o lado da moeda. No fim de cada desafio, "Abrir no verificador" preenche tudo.

Desafios antigos de pedra, papel, tesoura (com a jogada de quem criou selada)

Nos desafios criados antes da versão 0.15, quem criava escolhia logo a jogada e ficava publicado o selo SHA-256("jogada:chave"). Copia a jogada e a chave reveladas e o selo: se bater certo, a jogada não foi trocada depois de alguém aceitar.

Verificar uma mão de póquer

Cada mão de póquer usa um baralho novo, feito com a seed da mesa (selada antes da mão) e as sementes de todos os jogadores sentados. Depois da mão, a seed é revelada: aqui o teu browser volta a baralhar e mostra as cartas de cada lugar e da mesa. Nas mãos anteriores de uma mesa, "Abrir no verificador independente" preenche tudo.

Verificar uma ronda de blackjack em mesa

Nas mesas de blackjack, cada ronda usa a seed da mesa (selada antes das apostas) e as sementes de quem apostou, por ordem de lugar. Depois da ronda, a seed é revelada: aqui o teu browser volta a tirar as cartas do sapato pela ordem da mesa. Nas rondas anteriores de uma mesa, "Abrir no verificador independente" preenche tudo e volta a jogar a ronda inteira, com as decisões de cada jogador.