Roll Dice

Por que confiar?

Ninguém escolhe o resultado. Nem nós.

Cada rolagem usa um número sorteado em público, por uma rede independente, segundos depois do seu pedido. Quando você clica em Rolar, esse número ainda não existe. Depois que ele sai, qualquer pessoa refaz a conta e chega no mesmo dado.

Conferir uma rolagem
1

Você pede

Você escolhe o dado e seu navegador assina o pedido com uma chave que só ele tem. O pedido entra num registro público e fica preso a um sorteio do futuro: o próximo número que o drand vai publicar, daqui a uns 3 a 6 segundos.

2

O mundo sorteia

O drand é uma rede de organizações independentes (a League of Entropy, com Cloudflare, Protocol Labs, universidades e outras) que publica um número aleatório assinado a cada 3 segundos. Nenhuma delas sozinha consegue saber o próximo. Nós também não.

3

A conta é pública

O dado sai de uma conta simples e conhecida (SHA-256) sobre o número do drand, a sua seed e o número do pedido. Mesmos ingredientes, mesmo resultado, em qualquer computador. Seu navegador já refaz essa conta sozinho a cada rolagem.

O que nós não conseguimos fazer

Confira você mesmo

Cole o link de uma rolagem (ou só o código). Seu navegador baixa a prova, busca o número direto no drand, confere a assinatura e refaz a conta. Nada disso depende de confiar no nosso servidor.

Modo manual: sem o nosso servidor

Pegue o número (randomness) direto no drand, por exemplo em , e preencha com a seed, o nonce e a expressão da rolagem.

Perguntas

E se o servidor mentir sobre o resultado?

Seu navegador não acredita no servidor: ele busca o número direto no drand, confere a assinatura criptográfica do drand e refaz a conta. Se o servidor inventasse qualquer coisa, a conferência ficaria vermelha.

E se o servidor esperar o número sair e só depois gravar o pedido?

O pedido guarda o horário e o round alvo, que é sempre um round futuro. A conferência compara o horário do pedido com o horário em que o round foi publicado: o pedido tem de vir antes. E o round alvo é sempre dois à frente do mais recente: o servidor não escolhe um round a dedo.

E se o drand for comprometido?

O número só existe quando um mínimo de membros independentes da rede assina junto. Para prever o resultado, seria preciso corromper ao mesmo tempo várias organizações em países diferentes. Por isso o drand é usado por outros projetos para sorteios públicos.

Para que serve a seed?

É um texto seu que entra na conta. Você escolhe antes de rolar (o site sorteia uma por você, mas dá para trocar em Opções avançadas). Assim, duas rolagens no mesmo round dão resultados diferentes, e a sua rolagem é só sua.

O que é o nonce?

O número do pedido dentro da mesa: 1, 2, 3… Ele entra na conta e impede que o mesmo pedido seja reaproveitado. Como é sequencial, um pedido sumido deixaria um buraco visível.

Dá para esconder uma rolagem ruim?

Não. O registro da mesa é público e mostra até os pedidos que ainda esperam o drand. Em "Verificar a mesa inteira", no histórico, seu navegador confere cada elo da cadeia desde a primeira rolagem.