Conferir se o jogo é justo
Tudo o que o site diz sobre o contrato pode ser conferido nos dados abertos da rede. Abaixo estão as verificações, da mais simples (dois minutos) à mais profunda (compilação do código). Para a maioria, não é preciso saber programar.
Como funciona a verificação
Um site pode ser falsificado ou cometer erros, mas o registro no blockchain não. Por isso, verifique não no site do projeto, e sim em um explorador de blocos: um site independente que mostra o conteúdo do blockchain (Solscan, Solana Explorer, SolanaFM e semelhantes). Abra qualquer um deles por conta própria, e não por links de mensagens de outras pessoas.
Para as verificações são necessários dois endereços: o do programa (contrato) e o do token. Eles aparecem na página “Segurança”. Compare-os em pelo menos mais dois lugares independentes (repositório, canais oficiais): se os endereços divergirem, estão tentando enganar você.
Verificações rápidas (2 a 10 minutos)
| O que verificar | Onde ver | Como deve estar | Se for diferente |
|---|---|---|---|
| 1. É possível emitir novos tokens? | Página do token no explorador, campo Mint Authority | Vazio (revogada) | Quem tiver o endereço indicado pode emitir quantos tokens quiser e desvalorizar os seus. |
| 2. É possível congelar tokens? | A mesma página, campo Freeze Authority | Vazio | O titular pode congelar qualquer carteira, inclusive a sua. |
| 3. Quem pode alterar o código | Página do programa, campo Upgrade Authority | Vazio (código congelado) ou o endereço de um multisig com atraso nas atualizações | Um endereço comum significa que o titular pode, a qualquer momento, enviar regras diferentes. |
| 4. Emissão total do token | Página do token: Supply | Não mais que 100.000.000.000 e só diminui por causa da queima | Mais que isso significa que a emissão foi aumentada. |
| 5. O token confere? | O endereço do token na sua carteira em comparação com a página “Segurança” | Os endereços são idênticos, caractere por caractere | Este não é o FAIRDRUM verdadeiro. Não compre nem deposite. |
| 6. Há tokens suficientes no cofre? | Endereço do cofre da página “Segurança”, saldo do token; valores dos potes em “Economia” | O saldo do cofre não é menor que a soma dos potes (e também dos saldos de jogo dos jogadores) | O contrato deve estar sempre coberto por tokens. Uma divergência é um sinal sério. |
A tabela do topo da página “Segurança” lê esses mesmos campos direto da rede e marca ✔ ou ⚠, mas não confie apenas nela: confira você mesmo pelo menos uma vez.
Conferir o seu giro
Cada giro deixa um registro na rede, e o resultado na tela pode ser comparado com ele.
Encontre a transação
Depois do giro, abaixo do botão aparece o link “Transação”, que abre o registro no explorador. Ou então abra o histórico da sua carteira no explorador e escolha a transação com o programa FAIRDRUM.
Deve aparecer: status Success e uma lista de instruções.
Encontre os dois pares de chamadas
Na primeira transação há uma chamada ao Switchboard (solicitação de aleatoriedade, commit) e uma chamada ao programa FAIRDRUM
spin_commit(aposta). Na segunda: uma chamada ao Switchboard (revelação, reveal) espin_settle(cálculo). O nome aparece de formas um pouco diferentes nos exploradores (SpinCommit, spinCommit).Compare a ordem
A aposta foi registrada antes de o número ser revelado: a primeira transação tem um número de bloco (Slot) menor que a segunda. Isso significa que nem você nem o projeto sabiam o resultado no momento da aposta.
Veja o log (Logs) da segunda transação
Ali está registrado o evento
SpinSettled, com o número de giros, os prêmios e os acertos no minijackpot, no jackpot e no superjackpot. São os mesmos números que a roda mostrou.Confira o dono da aleatoriedade
A conta de aleatoriedade indicada na transação deve pertencer ao programa Switchboard. O próprio contrato rejeita qualquer outra, mas vale conferir: abra a conta e veja o campo Owner.
Verificações aprofundadas
Compilar o código e comparar o hash
Pegue o repositório do projeto no GitHub (o link aparecerá após a publicação), compile o programa em modo reprodutível (anchor build --verifiable) e compare o hash com o que está na rede (solana-verify). Se coincidirem, o que está na rede é exatamente esse código aberto.
Ler as constantes
Todos os números do jogo estão reunidos em um único arquivo, consts.rs: parcelas, chances, escada de prêmios, taxas, prazos. O site monta as suas tabelas justamente a partir dele, e não deve haver divergências entre o site e o contrato.
Executar os testes
O repositório tem testes das regras e dos cálculos (cargo test) e do cliente (npm test). Eles verificam, por exemplo, que a soma de todos os pools e saldos não excede os tokens do cofre.
Entender como o resultado é escolhido
A partir dos 32 bytes da aleatoriedade revelada, o contrato obtém números por meio de SHA-256. Para a roda principal, são blocos SHA-256("FDRM-M" + aleatoriedade + número do bloco), dos quais se toma, em grupos de 4 bytes (little-endian), um número para cada giro executado. Para a roda dourada: SHA-256("FDRM-G" + aleatoriedade + número do giro executado). O número é comparado com limiares em frações de 232; os próprios limiares dependem do volume semanal e do tamanho dos potes no momento do cálculo, por isso só é possível recalcular um giro antigo por inteiro junto com o estado do programa naquele slot. As fórmulas estão em math.rs e engine.rs.
Ler o registro de um período
Qualquer pessoa pode extrair da rede todos os eventos SpinSettled de um período e calcular por conta própria a frequência do ouro e o tamanho dos potes. Compare com as “Chances”. Com poucos giros, a dispersão é enorme: para enxergar uma chance de 1%, são necessários milhares de giros.
O que não dá para verificar
- A honestidade do oráculo. A aleatoriedade vem da rede Switchboard. O contrato verifica que o número vem da conta correta e foi revelado depois da aposta, mas não consegue verificar que os nós do oráculo não combinaram entre si. É uma dependência externa.
- A ausência de erros no código. Os testes e o código aberto aumentam a confiança, mas não substituem uma auditoria independente. Enquanto não houver um link para a auditoria, ela não existe.
- O futuro. Enquanto a autoridade de atualização não for revogada, as regras podem mudar com uma nova versão. Acompanhe as transações de atualização do programa.
- O que o administrador faz fora do contrato. O contrato não controla as vendas dos tokens dele, o marketing nem as decisões sobre listagens. Os pagamentos do fundo de promoção são públicos, mas o contrato não verifica “para quê”.