Pular para o conteúdo

Conferir sorteio

Recebeu o link de um sorteio? Cole aqui e veja se o resultado confere.

Cole o link que você recebeu. A conferência roda no seu navegador.

Comprovante do sorteio

Guia e detalhes

Cole o link de conferência. Os ganhadores são recalculados a partir da semente e da lista, aqui no seu navegador.

O que a conferência faz

O link de conferência gerado pela roleta, pelo sorteador de nomes ou pelo sorteio do Instagram traz o horário do sorteio, a lista completa na ordem, os ganhadores, a semente e uma impressão digital. Esta página ignora os ganhadores registrados, calcula tudo de novo a partir da semente e da lista, e compara. A impressão digital também é recalculada.

O método, para você conferir sem depender de nós

A conta é curta o bastante para ser refeita em qualquer linguagem que tenha SHA-256.

  1. A semente são 32 bytes aleatórios de crypto.getRandomValues, escritos em 64 caracteres hexadecimais.
  2. O bloco i da sequência aleatória é o SHA-256 do texto semente:i, com i começando em 0. Cada bloco é lido como oito números de 32 bits, com o byte mais significativo primeiro.
  3. Cada sorteio consome dois números da sequência: os 21 bits mais baixos do primeiro seguidos dos 32 bits do segundo, um valor de 53 bits. Se o valor não for menor que o maior múltiplo de n que cabe em 253, ele é descartado e entram os dois números seguintes. O resultado é o valor módulo n.
  4. Para ganhadores sem repetição, parta das posições de 0 a n − 1. Para o ganhador de ordem k, contando do 0, sorteie um número menor que n − k, some k e troque essa posição com a posição k. As primeiras posições são os ganhadores, na ordem. Com repetição permitida, cada ganhador é só um sorteio menor que n.
  5. A impressão digital é o SHA-256 do texto JSON {"participants":[…],"seed":"…"}, com a lista na ordem e sem espaços extras.

Limites que vale conhecer

Uma conferência aprovada amarra os ganhadores à semente e à lista. Ela não diz nada sobre como a lista foi montada e não consegue mostrar que quem organizou sorteou uma vez só. Se o sorteio importa, peça que seja feito ao vivo e que o link de conferência seja publicado na hora.

Por que usar o Choose Tools

  • Uma única fonte de aleatoriedade

    Todo sorteio chama crypto.getRandomValues e descarta os valores que causariam viés de módulo. Um teste falha se Math.random aparecer no código.

  • O resultado vem antes

    A roleta, a moeda e os dados escolhem o resultado antes de se mexer. A animação tem sempre a mesma duração e só mostra o que foi sorteado.

  • Comprovante que dá para refazer

    Os ganhadores da roleta e do sorteador saem de uma semente de 256 bits, com SHA-256. A página Conferir sorteio repete a conta e compara.

  • A lista fica no seu aparelho

    Ela é guardada no armazenamento local. O link compartilhado leva a lista depois do #, que o navegador não envia ao servidor. Não há cadastro.

  • Discreto por padrão

    O som começa desligado, e com “reduzir movimento” ativado no sistema o resultado aparece sem animação.

Perguntas e respostas

O que uma conferência aprovada prova?

Que os ganhadores registrados são exatamente os que a semente registrada produz sobre a lista registrada, e que lista e semente batem com a impressão digital. Trocar um nome, a ordem ou o ganhador faz a conferência falhar.

O que ela não prova?

Que o sorteio foi feito uma única vez. A semente é criada na hora do sorteio, no aparelho de quem organiza, então a pessoa poderia sortear de novo e mostrar só o resultado que prefere. Sortear ao vivo ou gravar a tela cobre essa brecha.

A lista é enviada ao servidor de vocês quando eu confiro?

Não. O comprovante fica depois do # no link, e o navegador não envia esse trecho do endereço. A conferência roda na página.