0

Processos de Decisão de Markov e Aleatoriedade Criptográfica Verificável (Commit-Reveal) no Gamão

O gamão (backgammon) ocupa uma posição singular na teoria dos jogos: ao contrário do xadrez ou das damas, que são jogos puramente determinísticos de informação perfeita, o gamão introduz estocasticidade estrutural por meio do lançamento de dados de seis faces. Do ponto de vista formal, o jogo modela-se como um Processo de Decisão de Markov (MDP) competitivo de dois jogadores com horizonte finito e transições probabilísticas.

Enquanto a modelagem matemática de árvores Expectiminimax e redes neurais de valor (como TD-Gammon e wildbg) resolvem a tomada de decisão sob incerteza, o desafio mais sensível em plataformas digitais reside na geração de entropia e na integridade comprovável da aleatoriedade.

Neste artigo, exploramos o formalismo probabilístico do gamão e detalhamos a arquitetura do protocolo criptográfico Commit-Reveal baseado em HMAC-SHA256 para auditoria de dados justa e verificável (Provably Fair).


1. O Gamão como Processo de Decisão de Markov Estocástico

Um estado de gamão s ∈ S pode ser descrito pela tupla s = (B, c, k, d), onde B representa a configuração espacial das 30 peças nos 24 pontos, na barra (bar) e nas posições de recolha (borne off); c denota o jogador da vez; k representa o estado do cubo de duplicação; e d representa o resultado do par de dados lançado.

A cada turno, dois dados de 6 faces são lançados, gerando 36 combinações equiprováveis que se condensam em 21 resultados únicos:

  • 6 duplas (1-1, 2-2, ..., 6-6): Cada uma com probabilidade P(dupla) = 1/36 ≈ 0,0278 (conferindo 4 movimentos idênticos).
  • 15 pares distintos (1-2, 1-3, ..., 5-6): Cada um com probabilidade P(distinto) = 2/36 = 1/18 ≈ 0,0556.

A árvore de busca correspondente é uma árvore Expectiminimax, na qual nós de decisão (onde o jogador escolhe a melhor sequência legal de movimentos para maximizar sua equidade esperada) intercalam-se com nós de chance (que calculam a média ponderada pelas 21 probabilidades de dados):

V(s) = max_{a ∈ A(s)} ∑_{d=1}^{21} P(d) · V(s', a, d)

A precisão do cálculo depende não apenas da rede de avaliação neural, mas da garantia matemática de que os nós de chance seguem a distribuição estritamente uniforme discreta U(1, 6).


2. O Problema da Assimetria de Informação e Viés Cognitivo

Em jogos online competitivos envolvendo apostas ou classificações de rating (Elo/Glicko), o viés de confirmação e a heurística de disponibilidade levam os jogadores a suspeitarem com frequência que os lançamentos de dados favorecem o oponente ou a inteligência artificial da casa ("dados viciados").

Se o servidor simplesmente utilizar um gerador pseudoaleatório interno (como rand() ou mesmo crypto/rand em Go) sem expor comprovações matemáticas prévias, os jogadores não têm nenhum meio de distinguir uma maré de azar estocástica genuína de uma manipulação algorítmica deliberada.

Para eliminar essa assimetria de confiança, a arquitetura moderna de jogos de habilidade adota o protocolo Provably Fair (Criptograficamente Verificável).


3. O Protocolo Criptográfico Commit-Reveal com HMAC-SHA256

O princípio central do protocolo Commit-Reveal consiste em forçar ambas as partes (servidor e cliente) a contribuírem conjuntamente com sementes de entropia antes do lançamento, tornando impossível que qualquer um dos lados anteveja ou altere o resultado dos dados.

Fase 1: O Compromisso Criptográfico (Commitment)

Antes do início da partida ou rodada:

  1. O servidor gera uma semente secreta de alta entropia (256 bits):
    Server_Seed_Secret = CSPRNG(32 bytes)
    
  2. O servidor calcula o hash unidirecional (SHA-256) dessa semente:
    Server_Seed_Hash = SHA256(Server_Seed_Secret)
    
  3. O servidor envia publicamente o Server_Seed_Hash para o cliente via WebSocket. Como a função SHA-256 é resistente a pré-imagem, o cliente não consegue deduzir a semente secreta, mas tem a garantia de que o servidor não poderá trocá-la posteriormente sem invalidar o hash.

Fase 2: Injeção de Entropia do Cliente

O cliente fornece sua própria semente arbitrária de entropia (Client_Seed), frequentemente gerada pelo navegador via window.crypto.getRandomValues() ou customizada pelo usuário, combinada com um contador monotônico sequencial (Nonce).

Fase 3: Cálculo Determinístico do Lançamento

Para a rodada i, o fluxo de bytes pseudoaleatórios é extraído por meio de uma função de autenticação de mensagem baseada em hash (HMAC):

HMAC_Output = HMAC_SHA256(Key = Server_Seed_Secret, Message = Client_Seed || ":" || Nonce_i)

Os primeiros bytes do hash de 256 bits resultante são mapeados para os dados (1 a 6) por meio de rejeição de amostragem uniforme (rejection sampling) para prevenir qualquer viés de módulo (modulo bias):

// Mapeamento sem viés de módulo
int roll_die(uint8_t byte) {
    // Rejeita valores acima do maior múltiplo de 6 inferior a 256 (252)
    while (byte >= 252) {
        byte = fetch_next_byte();
    }
    return (byte % 6) + 1;
}

Fase 4: Revelação e Auditoria Independente (Reveal)

Ao término da partida, o servidor revela a Server_Seed_Secret em texto puro. O jogador (ou qualquer auditor externo) pode agora executar dois testes triviais e matematicamente incontestáveis em sua própria máquina:

  1. Confirmar que SHA256(Server_Seed_Secret) == Server_Seed_Hash inicial.
  2. Recalcular a sequência exata de todos os lançamentos ocorridos na partida usando a fórmula HMAC pública.

Se os hashes conferirem, fica categoricamente provado que nem o servidor nem o cliente manipularam um único lançamento de dados.


4. Implementações no Mundo Real

A integração de protocolos criptográficos verificáveis em interfaces reativas de jogos de tabuleiro é uma das tendências mais importantes na modernização do esporte mental online. Uma implementação prática detalhada deste sistema pode ser examinada na explicação e ferramenta de auditoria de dados justos e verificáveis (Provably Fair) do Boardgammon, onde cada partida permite a verificação matemática retroativa das sementes SHA-256 e HMAC pelo próprio jogador.

A aplicação de criptografia clássica para resolver dilemas de confiança em jogos estocásticos demonstra que transparência algorítmica não é apenas uma salvaguarda ética, mas uma excelente demonstração de engenharia de software robusta.

Carregando publicação patrocinada...