Sementes, hashes, uma conferência
Checagem provably fair no Plinko: sementes, hashes e uma queda
Um tabuleiro provably fair se compromete com o segredo dele antes de você soltar a bola e o revela depois, para que qualquer um possa refazer a conta do resultado. Siga o esquema passo a passo e veja exatamente o que a conferência prova e o que ela deixa em aberto.
Jogos de Plinko provably fair permitem confirmar, depois do fato, que a casa alcançada pela sua bola foi fixada antes de você apertar o botão e não foi mudada depois. O método é um esquema de compromisso e revelação construído com hashing criptográfico comum. Esta página percorre o esquema um passo de cada vez, acompanha uma única queda por uma conferência e depois traça uma linha clara entre o que uma conferência aprovada prova e o que ela não pode provar.
O problema que o esquema resolve
Num jogo on-line o resultado é produzido por um programa que você não vê. Sem algum mecanismo extra, você teria de aceitar na confiança que o resultado não foi escolhido depois de a sua aposta ser conhecida. Um esquema de compromisso e revelação troca essa confiança por uma conta que você mesmo pode refazer. Esse problema de confiança está dentro de um jogo; escolher em qual cassino confiar uma conta, para começo de conversa, é para o que serve a ordenação em sites de apostas com plinko.
A ideia é mais velha que os computadores. Imagine alguém escrever um número num cartão, selá-lo num envelope e lhe entregar o envelope antes de você fazer a sua escolha. Depois que você escolhe, a pessoa o abre. Ela não poderia ter mudado o número, porque o envelope esteve com você o tempo todo. Um hash faz o papel do envelope selado.
Os três ingredientes
Semente de servidor
Uma sequência longa e aleatória produzida pelo servidor do jogo. Ela fica secreta enquanto você joga. Antes da primeira queda, o jogo mostra o hash dela: a saída de uma função de mão única como o SHA-256. Um hash é fácil de calcular a partir da semente mas, na prática, impossível de reverter, e mudar um único caractere da semente produz um hash completamente diferente.
Semente de cliente
Uma sequência do seu lado. Muitos jogos a preenchem sozinhos e deixam você substituí-la pelo seu próprio texto. Como ela também entra no cálculo, o servidor não pode saber o resultado final quando se compromete com a semente dele, a menos que controle também a sua.
Nonce
Um contador que começa em zero ou um e sobe de um em um a cada queda feita sob o mesmo par de sementes. Ele faz a entrada de cada queda ser diferente, então um par de sementes pode produzir milhares de resultados separados.
Como uma queda provably fair é produzida, passo a passo
- O jogo cria a semente de servidor secreta dele e põe o hash dela na tela. Anote o hash ou copie-o para fora do jogo.
- Você define ou aceita uma semente de cliente. Trocá-la depois de ver o hash é um hábito sensato, porque aí o compromisso do servidor foi feito antes de a sua entrada existir.
- Você solta uma bola. O jogo combina a semente de servidor, a semente de cliente e o nonce atual, passa tudo por uma função de hash e lê a saída como um fluxo de números.
- Para um tabuleiro de n linhas, o jogo transforma esse fluxo em n decisões de esquerda ou direita, uma por linha. A contagem de direitas é a casa. A receita exata está publicada na página de fairness do jogo, e uma conferência só funciona com essa receita.
- O nonce sobe de um e a queda seguinte repete o passo 3 com o novo contador.
- Quando você pede para girar o par de sementes, o jogo revela a semente de servidor antiga por inteiro e se compromete com uma nova mostrando o hash dela.
A animação da queda é desenhada para combinar com a casa já determinada no passo 4. Ela não carrega informação alguma de que a conferência precise.
Conferindo uma queda você mesmo
Depois que uma semente de servidor é revelada, toda queda feita sob ela pode ser recalculada. A conferência tem duas partes.
Parte 1: o selo estava intacto
Passe a semente de servidor revelada pela função que o jogo nomeia. Compare o resultado com o hash que você copiou antes de jogar. Se os dois baterem caractere a caractere, a semente de servidor que você tem agora é aquela com que o jogo se comprometeu. Se diferirem de qualquer forma, o compromisso foi rompido.
Parte 2: o resultado decorre das entradas
Escolha a queda que quer testar, por exemplo o nonce 42, e junte as três entradas dela: a semente de servidor agora pública, a semente de cliente em vigor na hora e esse nonce. Passe tudo pela receita da página de fairness do jogo, usando qualquer ferramenta independente que implemente a mesma função de hash. Converta a saída em decisões de esquerda ou direita exatamente como a receita manda, conte as direitas e compare o número da casa com o que está no seu histórico de apostas.
Se as duas partes passarem, a queda 42 parou onde as entradas comprometidas diziam que ela tinha de parar. Você pode repetir a Parte 2 para todo nonce sob aquele par de sementes.
O que uma conferência provably fair prova
Uma conferência aprovada estabelece duas coisas, e vale dizê-las com precisão.
- O resultado foi fixado antes da queda. A semente de servidor foi comprometida pelo hash dela antes de você jogar, e a sua semente de cliente e o nonce eram entradas conhecidas. A casa decorre só disso.
- O resultado não foi mudado depois. Qualquer alteração na semente de servidor teria produzido um hash diferente, e qualquer alteração no resultado falharia no recálculo.
Esses dois fatos descartam um jogo que escolhe o resultado depois de ver a sua aposta ou os seus ajustes. Isso é valioso, e é mais do que uma tela de resultado pelada consegue mostrar.
O que a conferência não prova
Uma conferência aprovada não diz nada sobre várias coisas que importam tanto quanto.
- O retorno da tabela de prêmios. A conferência confirma qual casa a bola alcançou, não quanto essa casa paga. O retorno de longo prazo é definido pelos multiplicadores impressos, e você o calcula a partir da tabela, como a página dos multiplicadores explica. Um tabuleiro pode ser perfeitamente verificável e ainda devolver menos do que outro.
- Se a receita divide por igual. A conferência confirma que a receita publicada foi seguida. Se essa receita dá a cada pino uma divisão igual é outra pergunta, que você pode testar recalculando muitas quedas e comparando a dispersão das casas com as contagens de rotas da página das tabelas de probabilidade.
- A aleatoriedade da semente de servidor. A conferência prova que a semente não foi trocada, não que ela foi bem escolhida. Definir a sua própria semente de cliente depois de o hash aparecer é o que impede um par de sementes conhecido de ser alinhado de antemão.
- As regras de conta do operador. Checagens de identidade, depósitos mínimos, tetos de saque e o resto dos termos ficam inteiramente fora do jogo. Isso está na página sobre checagens de identidade nos termos dos cassinos.
Leituras equivocadas comuns
Ver o hash da próxima semente de servidor não permite a ninguém prever quedas, porque o hash não pode ser revertido na semente. Qualquer coisa que diga ler casas futuras a partir de um hash exibido é falsa; ferramenta alguma consegue fazer isso, e aplicativos vendidos com essa promessa são golpe.
Do mesmo jeito, recalcular quedas passadas não diz nada sobre as futuras. Cada nonce novo produz uma saída sem relação com as outras, então uma sequência verificada de resultados não carrega padrão algum a seguir.
Uma rotina curta de conferência
- Antes da primeira queda, copie o hash da semente de servidor para fora do jogo.
- Substitua a semente de cliente pelo seu próprio texto.
- Jogue, anotando o nonce de qualquer queda que queira conferir.
- Gire o par de sementes para revelar a semente de servidor antiga.
- Passe a semente revelada pelo hash e compare; depois recalcule as quedas escolhidas com a receita publicada.
Apostar é para maiores de 18 anos. Um resultado verificado é um resultado honesto, não um motivo para apostar mais do que o planejado.