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.
- A semente são 32 bytes aleatórios de
crypto.getRandomValues, escritos em 64 caracteres hexadecimais. - 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. - 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.
- 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.
- 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.