
Provably Fair
Randomização
Nossa plataforma utiliza blocos da blockchain EOS para gerar um hash secreto que determina os resultados nas batalhas. Este processo é totalmente externo, descentralizado e fora de nosso controle, conduzido unicamente pelas ações de mineradores e validadores. Influenciar os resultados do jogo exigiria dominar toda a rede blockchain EOS, o que não é viável. Se você tiver alguma dúvida, entre em contato com nossa equipe de suporte.
Linha do Tempo
Quando você cria uma batalha, nenhum resultado é gerado até que todos os outros jogadores ou bots participem. Uma vez que todos os jogadores e/ou bots tenham entrado, determinamos o número do último bloco e selecionamos um bloco EOS ainda não minerado.
Por exemplo, se o último bloco minerado for #371315767, adicionamos 5 a esse número nos dando o bloco #371315770, que aguardaremos para obter o hash único do ID do Bloco EOS, o qual não pode ser conhecido antecipadamente.
Após o bloco ter sido minerado, obtemos seu hash único (ID do Bloco EOS), que usamos como parte do Client Seed e fazemos a primeira jogada.
Existem muitos sites de blockchain que podem verificar isso. Usamos eosflare.io, mas há outras opções disponíveis daqui: https://eosauthority.com. Assim que você selecionar o provedor, pode verificar que o bloco estava de fato alguns segundos no futuro. Um bloco de exemplo pode ser encontrado aqui: https://eosflare.io/block/359689419.
Termos e definições
- ID do Bloco EOS - Obtido do bloco EOS minerado imediatamente antes do início da primeira rodada na batalha.
- Slot - Basicamente a posição do jogador na batalha. Se você aparecer 2º da esquerda, sua posição seria 2.
- Client Seed - Uma combinação do ID do Bloco EOS e Slot, separados por hífen. Essencial para criar o roll hash.
- Server Seed - Uma string gerada aleatoriamente atribuída quando uma batalha é criada.
- Server Hashed Seed - A versão com hash do Server Seed.
- Nonce - Equivalente ao número da rodada no modo batalha.
- Número do Bloco - Um número único para cada Bloco EOS.
- Roll Hash - Produzido usando client seed, nonce e o server seed.
- Roll Ticket - Um número de ticket do item derivado da conversão do roll hash no intervalo de 1 a 10.000.000.
Rolagem
Este código ilustra a lógica para gerar um ingresso para cada rolagem e jogador. Cada nova rodada (rolagem) produz ingressos de itens que os usuários recebem no inventário do jogo. rolagem - refere-se ao número do ingresso que determina o item que um usuário recebe dentro dessa rolagem.
<?php
// //
// CsDrop Provably Fair Case Battles //
// //
/*
* Fill in all three below and click the blue 'eval();' button.
------------------ */
$server_seed = '';
$client_seed = '';
$nonce = $roundNumber = 0;
/* ------------------ */
if ($server_seed == '' || $client_seed == '' || $nonce < 0) {
echo "Fill in details";
return;
}
define('MIN_RESULT', 0.00001);
define('MAX_RESULT', 100);
define('CONVERT_RATE', 100000);
define('HASH_TYPE', 'sha256');
function getProvablyFairResult(string $client_seed, string $server_seed, int $nounce)
{
$hash = hash_hmac(HASH_TYPE, "{$client_seed}-{$nounce}", $server_seed);
$normalized = hexdec($hash) / (16 ** strlen($hash));
$roll = MIN_RESULT + $normalized * (MAX_RESULT - MIN_RESULT);
return convertDecimalValue($roll);
}
function convertDecimalValue(float $value): int
{
return round($value * CONVERT_RATE);
}
$result = getProvablyFairResult($client_seed, $server_seed, $nonce);
echo "Result: {$result}";Isso pode ser executado localmente ou em qualquer executor de script PHP encontrado online. Nós direcionamos os clientes para: https://3v4l.org/bRN5v para isso, mas há muitas opções disponíveis, como:
O cliente precisará editar as variáveis server_seed, nonce & client_seed no script para verificar os resultados.
Esta informação pode ser encontrada aqui: https://csdrop.com/profile/game-history em "Batalhas".
Rolagem de desempate
Às vezes, após a contagem final de todos os itens dos jogadores, dois ou mais jogadores podem ter o mesmo valor de itens ganhos durante a batalha.
Para resolver este empate, é realizada uma mini-rodada adicional chamada Rolagem de Desempate. É essencialmente uma rodada de roleta dentro do jogo que seleciona um vencedor entre os jogadores empatados, garantindo uma determinação justa e honesta do vencedor.
Neste caso, a Rolagem de Desempate também é Provably Fair usando:
- Semente do servidor - A gerada para a batalha.
- Semente do cliente - O ID do Bloco EOS vinculado à batalha.
- Nonce - Número total de rodadas na batalha mais um.
No caso de um empate onde os jogadores têm itens de valor igual, o vencedor é determinado pela posição que cada jogador ocupa e por um ticket gerado aleatoriamente variando de 1 a 10.000.000. O slot corresponde à posição do jogador no jogo, contando da esquerda para a direita.
Para um empate envolvendo dois jogadores:
- Se o resultado estiver entre 1 e 5.000.000, então, o jogador no slot 1 é declarado vencedor.
- Se o resultado estiver entre 5.000.001 e 10.000.000, então, o jogador no slot 2 é declarado vencedor.
Para um empate envolvendo três jogadores:
- Se o resultado estiver entre 1 e 3.333.333, então, o jogador no slot 1 é declarado vencedor.
- Se o resultado estiver entre 3.333.334 e 6.666.666, então, o jogador no slot 2 é declarado vencedor.
- Se o resultado estiver entre 6.666.667 e 10.000.000, então, o jogador no slot 3 é declarado vencedor.
Para um empate no modo Jackpot:
Os intervalos associados a cada jogador dependem do valor que ganharam. Por exemplo, com 4 jogadores (1V1V1V1 ou 2V2), temos:
- O jogador na posição 1 ganhou 2.000€ (o que representa 20% do total ganho): os intervalos de vitória associados a este jogador estarão entre 1 e 2.000.000
- O jogador na posição 2 ganhou 6.000€ (o que representa 60% do total ganho): os intervalos de vitória associados a este jogador estarão entre 2.000.001 e 8.000.000
- O jogador na posição 3 ganhou 500€ (o que representa 5% do total ganho): os intervalos de vitória associados a este jogador estarão entre 8.000.001 e 8.500.000
- O jogador na posição 4 ganhou 1.500€ (o que representa 15% do total ganho): os intervalos de vitória associados a este jogador estarão entre 8.500.001 e 10.000.000
Em caso de batalhas em equipe, o jogador que venceu faz seu time vencer o sorteio.
Battle Double
Assim que a batalha termina, o usuário pode escolher dobrar seus ganhos. Ou ele ganha e dobra o valor que ganhou na batalha, ou ele perde o Battle Double e seus ganhos da batalha.
O sistema provably fair para o Battle Double é o mesmo que a abertura de caixas. Isso significa que o resultado será gerado da mesma forma que a abertura de caixas, usando client seed, server seed e nonce. Consulte a aba "Abertura de Caixas" para saber mais sobre como o resultado é gerado.
Um resultado é gerado entre 1 e 10.000.000.
Se o resultado for inferior a 4.500.000 (incluído), o usuário ganha e dobra seus ganhos.
Se o resultado estiver entre 4.500.001 (incluído) e 10.000.000, o usuário perde.























