Verificação

Como qualquer sorteio pode ser conferido

Um sorteio só é justo se ninguém, nem o organizador nem nós, puder escolher ou prever o vencedor. Veja exatamente como o GetSocialExport sorteia os vencedores e como qualquer pessoa pode conferir um sorteio a partir do certificado.

As quatro etapas de um sorteio

  1. A lista de participantes é bloqueada. A extensão do organizador coleta os comentários, aplica as regras do sorteio e envia a lista de participantes válidos ao nosso servidor. A lista é colocada em uma ordem fixa e a impressão digital SHA-256 dela é registrada junto com o horário. A partir daí, alterar um único nome mudaria a impressão digital.
  2. Um número aleatório futuro é escolhido. Nesse momento, o servidor escolhe uma rodada do drand que só será publicada cerca de 30 segundos depois. O drand é um farol de aleatoriedade pública mantido pela League of Entropy (Cloudflare, Protocol Labs, universidades e outros): os números dele não podem ser previstos nem manipulados, e cada um traz uma assinatura que qualquer pessoa pode verificar.
  3. Os vencedores são calculados. Quando a rodada é publicada, uma semente é gerada a partir do código do sorteio, do número do sorteio, da impressão digital da lista e do número aleatório. Os vencedores são escolhidos a partir dessa semente com SHA-256, sem viés, dando peso extra apenas aos participantes com cupons bônus definidos pelas regras.
  4. Tudo é publicado. O certificado mostra os vencedores, a impressão digital, a rodada, a semente, o horário em que a lista foi bloqueada, cada novo sorteio com o motivo e (a menos que o organizador a tenha deixado privada) a lista completa de participantes.

O que você pode conferir em um certificado

Abra qualquer certificado (escaneie o QR code) e o seu navegador faz a verificação sozinho, sem precisar confiar em nós:

  • a lista de participantes publicada corresponde à impressão digital registrada antes do sorteio;
  • o número aleatório vem do drand, com uma assinatura BLS válida da League of Entropy;
  • a lista foi bloqueada antes de esse número aleatório existir;
  • recalcular o sorteio dá exatamente os mesmos vencedores.

Você também pode digitar seu nome em Você participou? para confirmar que estava no sorteio, mesmo quando o organizador mantém a lista privada.

O que um certificado não prova

O sorteio em si é comprovadamente justo. O certificado não pode provar que o organizador aplicou regras razoáveis nem que entregou o prêmio. A lista de participantes vem da própria extensão do organizador: é por isso que ela é publicada para os participantes conferirem, e por isso cada novo sorteio aparece com o motivo.

Detalhes técnicos

  • Algoritmo: socialexport-draw-v1. Lista canônica: uma linha por participante, id⇥nome⇥cupons, ordenada por id, unida com quebras de linha; impressão digital = SHA-256 desse texto.
  • Aleatoriedade: rede drand quicknet, cadeia 52db9ba70e0cc0f6…, uma rodada a cada 3 s, assinaturas BLS em G1 (RFC 9380).
  • Semente: SHA-256 do nome do algoritmo, do código do sorteio, do número do sorteio, da impressão digital da lista, da rodada e da aleatoriedade, unidos com quebras de linha.
  • Escolha: SHA-256(semente ‖ contador) gera números de 64 bits; valores acima do maior múltiplo do intervalo são descartados (sem viés de módulo); cada escolha remove o vencedor e os cupons dele.
  • Os certificados são assinados pelo nosso servidor (ECDSA P-256) para provar quando cada lista foi registrada. Chave pública: MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEQdshCP/QsGG2k29W80CHSmWbwYpBNgrrIjTf0qPyQuB8cXXLxsCRaty97SO44XaM3aYr6PMwI4dYc/MnSQ3/aw==

Faça o seu próprio sorteio verificável →