Faça uma compra no site da NeshaStore antes do tempo abaixo expirar.

Compre no site da NeshaStore, antes do tempo acima expirar.

Faça um tweet mostrando sua nova skin.
(Lembre-se de não exibir os dados da trade)

Enviaremos uma mensagem para confirmar os dados da compra.

Pronto! Você estará participando.

Faça uma compra no site da NeshaStore antes do tempo abaixo expirar.

Compre no site da NeshaStore, antes do tempo acima expirar.

Faça um tweet mostrando sua nova skin.
(Lembre-se de não exibir os dados da trade)

Enviaremos uma mensagem para confirmar os dados da compra.

Pronto! Você estará participando.

Resultados

Resultado
31/05/2022

Resultado
?? ?? ????

Resultado
?? ?? ????

Acompanhe os resultados em nossas redes sociais.

Como funciona o Provably Fair

Nosso compromisso é oferecer sorteios totalmente transparentes, confiáveis e seguros. Implementamos o sistema “Provably Fair” para que você possa acompanhar, de forma técnica e acessível, todo o processo. Antes de cada sorteio, geramos uma Server Seed única e divulgamos seu hash, garantindo que seu valor não possa ser alterado posteriormente. No momento do sorteio, uma Client Seed é gerada aleatoriamente e combinada com a Server Seed, formando o Final Hash através do algoritmo SHA-256. Essa combinação rigorosa assegura que qualquer tentativa de manipulação seja imediatamente detectada, pois qualquer alteração resultaria em um hash incompatível com o divulgado. Dessa forma, você tem acesso a um método auditável que reforça a integridade e a imparcialidade de cada sorteio.

1. Geração e Divulgação do Hash da Server Seed

1.1. O que é a Server Seed
A Server Seed é um texto (string) aleatório que criamos e guardamos antes de iniciar o sorteio. Costuma ser composta por:

  • Um prefixo que indica o propósito (ex.: "pub-" para semente oficial, "test-" em casos de teste, etc.).
  • Um UUID4 (identificador universal único), garantindo que seja praticamente impossível gerar duas seeds idênticas.
  • Opcionalmente, um sufixo de data/hora ou outro identificador.

Exemplo de Server Seed:

pub-20230415-b3e29fc2-71dd-4d19-9ecc-1690c6b023c4

  • "pub-20230415" indica que foi gerada publicamente em 15/04/2023.
  • "b3e29fc2-71dd-4d19-9ecc-1690c6b023c4" é um UUID4 (128 bits de entropia).

1.2. Por que divulgamos apenas o Hash dessa seed no começo
Não revelamos a Server Seed diretamente no início. Em vez disso, publicamos um “compromisso” na forma de um hash (cálculo feito com o algoritmo SHA-256). Por exemplo:

SHA-256("pub-20230415-b3e2...") => "c91d3f7e4a43906a65bc...f32b"

Ao publicar esse valor (64 caracteres hexadecimais), estamos nos obrigando a não modificar a Server Seed depois, pois qualquer mudança (mesmo de um caractere) mudaria completamente o hash. Assim, se alguém desconfiar que alteramos a seed, basta recalcular o hash para ver se bate com o que foi divulgado inicialmente.

2. Criação (ou Definição) da Client Seed

O segundo elemento é a Client Seed, que adiciona outra camada de segurança:

  • Pode ter um prefixo como "auto-", sinalizando que foi gerada automaticamente, ou "final-", se for a semente usada no resultado definitivo.
  • Em muitos casos, vem de um fator independente, seja tempo exato, aleatoriedade extra ou algo fornecido por usuários.

Por que precisamos de uma Client Seed?
Se a NeshaStore pudesse escolher sozinha a Server Seed após ver a do cliente, seria possível manipular o resultado final. Com a Client Seed, a chance de manipulação desaparece, pois a soma de ambas define o “número aleatório”. Se tentássemos mudar a Server Seed depois, o hash que anunciamos publicamente deixaria de bater.

3. Final Hash = SHA-256(ServerSeed + ClientSeed)

3.1. Concatenação das Seeds

No momento oficial do sorteio, concatenamos a Server Seed e a Client Seed em uma só string. Exemplo:

ServerSeed: "pub-20230415-b3e29fc2-71dd-4d19-9ecc-1690c6b023c4" ClientSeed: "auto-1680012345-9dbf316c-a21b-47f3-b414-d264f5203bec" ValorCombinado: "pub-20230415-b3e29fc2-71dd-4d19-9ecc-1690c6b023c4auto-1680012345-9dbf316c-a21b-47f3-b414-d264f5203bec"

3.2. Aplicação do algoritmo SHA-256

O algoritmo SHA-256 converte esse ValorCombinado em 256 bits (exibidos normalmente como 64 caracteres hex). Chamamos isso de Final Hash.

FinalHash = SHA-256( ValorCombinado )

Se qualquer caractere da Server Seed ou da Client Seed for alterado, o Final Hash muda completamente (propriedade de avalanche do SHA-256).

4. Como o Final Hash decide os vencedores

Digamos que temos um Final Hash de 64 caracteres (hexadecimais) após concatenar e hashear as duas seeds. Queremos, por exemplo, escolher 3 ganhadores dentre 100 participantes.

4.1. Conversão em números pseudoaleatórios

  1. Dividimos o Final Hash em blocos de 8 caracteres (cada bloco representa 32 bits).
  2. Convertendo esse bloco de 8 caracteres hex em decimal, obtemos um valor entre 0 e 0xFFFFFFFF (~4,29 bilhões).
  3. Dividimos o valor por 0xFFFFFFFF, obtendo um número entre 0 e 1.
  4. Multiplicamos esse número pela quantidade total de participantes (ex.: 100), para obter um índice.

Exemplo prático:

  • O Final Hash começa com "a4d9c6450e8ee215..."
  • Primeiro bloco de 8 chars: "a4d9c645". Em decimal, isso pode dar ~2763456325.
  • Dividindo por 4294967295, obtemos 0.6438.
  • Multiplicando por 100 (participantes), chegamos a 64,38. Arredondando para baixo, índice 64.
  • Esse índice (64) corresponde a um participante na lista (por exemplo, “João”). Ele é o 1º vencedor.

Para o segundo ganhador, usamos o próximo bloco de 8 hex. Para o terceiro, o seguinte, e assim por diante até atingir a quantidade de ganhadores necessária. Se algum índice sair duplicado (indicando a mesma pessoa novamente), aplicamos regra de não repetir (por exemplo, somar 1 e fazer % total).

5. Conferindo na prática (Verificação Independente)

Após a NeshaStore anunciar o resultado, nós revelamos:

  1. Server Seed real (aquela que antes tinha só o hash publicado).
  2. Client Seed usada.
  3. Como dividimos o Final Hash para escolher ganhadores.

Quem quiser conferir faz:

  1. Verifica se SHA-256(ServerSeed) bate com o hash publicado no início (garantindo que não trocamos de seed).
  2. Concatena ServerSeed + ClientSeed e calcula SHA-256 desse valor, para ver se obtém o mesmo Final Hash.
  3. Percorre o Final Hash em blocos de 8 caracteres para replicar a seleção de índices, confirmando os mesmos vencedores.

5.1. Ferramenta de verificação manual

Caso você deseje fazer essa checagem de maneira simples, a NeshaStore oferece um campo.

Verificação Manual – Cálculo de Final Hash

Insira a Server Seed e a Client Seed:







Basta inserir a Server Seed e a Client Seed nos espaços indicados, e o sistema exibirá o Final Hash calculado. Se esse hash bater com o oficial, comprova-se que as sementes divulgadas são legítimas.

6. O que é SHA-256 e por que ele garante confiabilidade?

  • SHA-256: uma função criptográfica de 256 bits que pega um texto de qualquer tamanho e produz um valor fixo de 64 caracteres hexadecimais.
  • Propriedades:
    • “Avalanche” – mudar um bit na entrada muda todo o resultado.
    • “Resistência a colisões” – achar duas entradas distintas que gerem o mesmo hash é virtualmente impossível.
    • “Irreversibilidade” – sabendo apenas o hash, não se consegue descobrir a mensagem original.

Assim, se anunciamos o hash da Server Seed antecipadamente, depois não podemos trocar a semente sem que todo o hash se altere, denunciando a fraude.

7. O que é UUID4 e por que usamos prefixos?

  • UUID4 (“Universally Unique Identifier” versão 4) é basicamente um identificador de 128 bits gerado aleatoriamente. É muito difícil dois UUID4 serem iguais, tornando a seed única.
  • Prefixos (como “pub-”, “auto-” ou “final-”) servem para indicar o contexto daquela seed. Exemplo: “pub-20230415-…” deixa claro que é a semente oficial gerada em 15/04/2023. Esses prefixos não afetam a entropia em si; apenas organizam e distinguem as seeds.

8. Benefícios da Abordagem Provably Fair na NeshaStore

  1. Impossibilidade de mudança de última hora: Já que a hash da Server Seed foi divulgada, não podemos trocá-la depois de conhecer a Client Seed.
  2. Transparência total: Você pode replicar todo o processo (desde o Final Hash até a extração de números pseudoaleatórios) com a mesma lógica e chegar aos mesmos ganhadores.
  3. Verificabilidade: A soma textual “ServerSeed + ClientSeed” e o uso de SHA-256 são passos matemáticos bem definidos, sem espaço para manipular o resultado quando as seeds já estão fixadas.
  4. Confiança: Mesmo quem não domina criptografia pode usar a verificação manual, ver a “mágica” do hash bater exatamente com o que anunciamos, e confirmar que não houve trapaça.

9. Resumo Final

  • Nós, da NeshaStore, geramos uma Server Seed (ex.: "pub-...-UUID4") e publicamos seu hash (SHA-256) para provar que não mudaremos esse valor depois.
  • Chega o momento do sorteio, combinamos essa semente com a Client Seed (ex.: "auto-...-UUID4").
  • Aplicamos SHA-256 na concatenação das duas strings, obtendo o Final Hash.
  • Dividimos o Final Hash em blocos de 8 caracteres para sortear os ganhadores (convertendo em decimal, normalizando 0..1, multiplicando pela quantidade de participantes, etc.).
  • Após o sorteio, revelamos a Server Seed real (para que todos confirmem se o hash confere) e a Client Seed, possibilitando que qualquer pessoa reproduza integralmente o resultado.
  • Para simplificar a checagem do hash, oferecemos os campos acima onde você insere as duas seeds e vê o Final Hash calculado na hora.

Essa estrutura mantém a integridade do processo, assegurando que nenhuma das partes possa unilateralmente forjar resultados. Com isso, garantimos a você uma experiência de sorteio justo, auditável e em conformidade com as melhores práticas de segurança e transparência.