Provadamente Justo
O que é "Provadamente Justo"
Os jogadores sempre têm medo de serem enganados em jogos online.
Isso é compreensível, pois é tecnicamente muito fácil para um provedor de jogos online fazer você perder.
No Jemlit, temos uma solução para isso que se chama provadamente justo. Provadamente justo é uma ferramenta que permite a você (o jogador) verificar cada resultado e garantir que não está sendo enganado!
Como Provadamente Justo funciona?
Neste método, cada resultado é calculado pelas seguintes variáveis:
- Server Seed - Uma sequência aleatória de caracteres fornecida por nós
- Client Seed - Uma sequência de caracteres gerada pelo seu navegador que você pode alterar
- Nonce ou Contador de jogadas - Um número que aumenta a cada jogada
Você receberá um hash criptografado do Server Seed antes de começar a jogar.
Como você o recebe antecipadamente, não podemos alterá-lo depois.
No entanto, ele está criptografado, então você não pode calcular seus próprios resultados antecipadamente (apenas depois, se receber o Server Seed sem hash).
O Server Seed é criptografado usando o algoritmo SHA512.
Seu navegador irá gerar um Client Seed aleatório. No entanto, você pode (e deve) ajustar esse Client Seed antes de começar. Assim, garante que o site não saiba seu Client Seed antecipadamente.
Agora, ao fazer uma aposta, o Nonce começa com 1. A cada aposta, o número nonce aumenta em 1.
Calculando o resultado
Agora vem a parte técnica! Existem 3 etapas que levam ao número final da jogada.
Etapa 1 - Gerando o hash das variáveis
Nesta etapa, calculamos o HMAC com o algoritmo SHA512/256 usando o Server Seed como chave, e o Client Seed e o Nonce como dados, concatenados por um hífen (-).
Você pode calcular por conta própria; acesse aqui e execute este código:
echo hash_hmac('sha512/256', seu client seed-seu nonce', 'server seed');
O resultado será 38611068f6936027c4657138536fb5bb8f82a6cb2d883f1acb47cb24013f9e93
Etapa 2 - Convertendo o hash em número
Na etapa 2, pegamos o resultado obtido e o transformamos em número; acesse aqui e execute este código:
echo number_format(hexdec('38611068f6936027c4657138536fb5bb8f82a6cb2d883f1acb47cb24013f9e93'), 0, ".", "");
Você obterá 25501016943689873370561741542489390377389678092728534236058081515070178721792, um número muito longo.
Etapa 3 - Calculando o resultado final
Como queremos um número decimal entre 0 e 100, primeiro dividimos o número da etapa anterior pelo número máximo possível, 1664 (64 é o comprimento da string obtida na Etapa 1).
Por fim, o resultado é calculado:
roll = 0 + número dividido * 100.
Neste exemplo, o resultado é 22.0231.
Como o prêmio é escolhido?
Quando você acessa a página de uma eBox, pode alternar as chances clicando em Mostrar chances, e pode ver os resultados clicando em "Ver resultados" no final da página.
Para cada item na caixa, você verá o número necessário para ganhar o prêmio, ex.: 95.54 a 97.22. Isso significa que, se você tirar um número maior que 95.54 e menor ou igual a 97.22, você ganhará o prêmio.
Como posso verificar que tudo é justo?
Para verificar que não houve trapaça, basta seguir as etapas ilustradas acima.
Claro, você só poderá verificar um jogo depois de revelar o Server Seed.
Você encontra seu Server Seed, Client Seed e Nonce in the "Fairness" popup na janela "Fairness" no topo da página (ou no menu superior esquerdo se estiver acessando o JemLit pelo celular).