Central de Ajuda/Confiança e segurança/Sorteios comprovadamente justos
Confiança e segurança4 min de leituraAtualizado em 05 de abril de 2026

Sorteios comprovadamente justos

Commit-and-reveal, ancoragem na blockchain EOS e como verificar.

Todo sorteio da Skincash é feito com um esquema que qualquer pessoa pode verificar de forma independente depois do fato. Ninguém na Skincash — nem a equipe — consegue prever ou manipular o resultado.

Antes do sorteio: commit

Quando criamos um sorteio, geramos um server seed aleatório de 256 bits. A gente não publica o seed em si — publica só o hash SHA-256 dele. Esse hash é o commit, e ele é congelado no banco de dados no momento em que o sorteio começa. Como o SHA-256 é unidirecional, saber o hash não permite que ninguém adivinhe o seed.

Entropia externa: bloco EOS

No momento do sorteio, nosso worker de cron consulta a blockchain EOS em busca do bloco irreversível mais recente e registra o hash dele. Blocos EOS são produzidos a cada meio segundo por uma rede independente, então o hash do bloco em qualquer instante futuro é imprevisível na hora do commit. Isso significa que nem a Skincash consegue influenciar o sorteio.

Reveal e sorteio

O ticket vencedor é calculado como: winningTicket = (BigInt(sha256(serverSeed + publicSeed + eosBlockId)) mod BigInt(totalTickets)) + 1. Depois do sorteio, publicamos o server seed junto com o block ID, o public seed e o total de tickets, pra qualquer um reproduzir o hash e confirmar o ticket vencedor.

js
const crypto = require('crypto');

// Published data (visible on the giveaway card)
const serverSeed   = '<revealed after draw>';
const publicSeed   = '<published at draw>';
const eosBlockId   = '<EOS block hash at draw time>';
const totalTickets = <total sold>;

const hash = crypto
  .createHash('sha256')
  .update(serverSeed + publicSeed + eosBlockId)
  .digest('hex');

const winning =
  (BigInt('0x' + hash) % BigInt(totalTickets)) + 1n;
console.log('Winning ticket:', winning.toString());

Como verificar

Em qualquer card de sorteio passado, clique em Verificar Justiça. O modal mostra as quatro entradas, roda um SHA-256 no lado do cliente para provar que o par commit-reveal é válido, e disponibiliza um snippet pra copiar e colar que você pode rodar no Node ou no console do navegador para reproduzir o ticket vencedor localmente.

Este artigo foi útil?
Seu feedback nos ajuda a melhorar a Central de Ajuda.

Mais em Confiança e segurança

Ainda precisa de ajuda?

Nossa equipe de suporte ao vivo está online 24/7. Abra um chat direto da página, e nós cuidamos do resto.