
Provably Fair
Randomisation
Notre plateforme utilise les blocs de la blockchain EOS pour générer un hash secret qui détermine les résultats dans les batailles. Ce processus est entièrement externe, décentralisé et hors de notre contrôle, uniquement piloté par les actions des mineurs et des validateurs. Influencer les résultats du jeu nécessiterait de dominer l'ensemble du réseau blockchain EOS, ce qui n'est pas faisable. Si vous avez des questions, veuillez contacter notre équipe de support.
Chronologie
Lorsque vous créez une bataille, aucun résultat n'est généré tant que tous les autres joueurs ou bots n'ont pas rejoint. Une fois que tous les joueurs et/ou bots ont rejoint, nous déterminons le numéro du dernier bloc et sélectionnons un bloc EOS pas encore miné.
Par exemple, si le dernier bloc miné est #371315767, nous ajoutons 5 à ce numéro pour obtenir le bloc #371315770, que nous allons attendre pour obtenir le hash unique de l'ID du bloc EOS, qui ne peut être connu à l'avance.
Après que le bloc a été miné, nous obtenons son hash unique (ID du Bloc EOS), que nous utilisons comme partie de la graine du client et effectuons le premier roulement.
Il existe de nombreux sites web blockchain qui peuvent vérifier cela. Nous utilisons eosflare.io mais d'autres options sont disponibles ici : https://eosauthority.com. Une fois le fournisseur sélectionné, vous pouvez vérifier que le bloc était bien quelques secondes dans le futur. Un bloc d'exemple peut être trouvé ici : https://eosflare.io/block/359689419.
Termes et définition
- ID du Bloc EOS - Obtenu à partir du bloc EOS miné juste avant le début du premier tour dans la bataille.
- Emplacement - Fondamentalement la position du joueur dans la bataille, si vous apparaissez 2ème à partir de la gauche, votre position serait 2.
- Graine du Client - Une combinaison de l'ID du Bloc EOS et de l'Emplacement, séparée par un tiret. Essentiel pour créer le hash du roulement.
- Graine du Serveur - Une chaîne générée aléatoirement attribuée lors de la création d'une bataille.
- Graine Hachée du Serveur - La version hachée de la graine du serveur.
- Nonce - Équivalent du numéro de manche en mode bataille.
- Numéro de block - Un numéro unique pour chaque block EOS.
- Hash du Roulement - Produit en utilisant la graine du client, le nonce et la graine du serveur.
- Ticket de Roulement - Un numéro de ticket d'article dérivé en convertissant le hash du roulement dans la plage de 1 à 10 000 000.
Lancer
Ce code illustre la logique pour générer un ticket pour chaque lancer et joueur. Chaque nouveau tour (lancer) produit des tickets d'objets que les utilisateurs reçoivent dans l'inventaire du jeu. 'lancer' - fait référence au numéro du ticket qui détermine l'objet qu'un utilisateur reçoit dans ce lancer.
<?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}";Cela peut être exécuté localement ou sur n'importe quel interpréteur de script PHP trouvé en ligne. Nous dirigeons les clients vers : https://3v4l.org/bRN5v pour cela, mais il existe de nombreuses options disponibles comme suit :
Le client devra modifier les variables server_seed, nonce & client_seed dans le script pour vérifier les résultats.
Cette information est disponible ici : https://csdrop.com/profile/game-history sous « Batailles ».
Tirage au sort
Parfois, après le décompte final de tous les objets des joueurs, deux ou plusieurs joueurs peuvent avoir la même valeur d'objets gagnés pendant la bataille.
Pour résoudre cette égalité, un mini-tour supplémentaire appelé Tirage au sort est effectué. C'est essentiellement une rotation de roulette dans le jeu qui sélectionne un gagnant parmi les joueurs à égalité, assurant une détermination équitable et honnête de la victoire.
Dans ce cas, le Tirage au sort est également « Provably Fair » en utilisant :
- Grain du serveur - Celui généré pour la bataille.
- Grain du client - L'ID du block EOS lié à la bataille.
- Nonce - Nombre total de manches dans la bataille plus un.
En cas d'égalité où les joueurs ont des objets de valeur égale, le gagnant est déterminé par l'emplacement de chaque joueur et un ticket généré aléatoirement entre 1 et 10,000,000. L'emplacement correspond à la position du joueur dans le jeu, en comptant de gauche à droite.
Pour une égalité impliquant deux joueurs :
- Si le résultat est entre 1 et 5,000,000, alors le joueur à l'emplacement 1 est déclaré gagnant.
- Si le résultat est entre 5,000,001 et 10,000,000, alors le joueur à l'emplacement 2 est déclaré gagnant.
Pour une égalité impliquant trois joueurs :
- Si le résultat est entre 1 et 3,333,333, alors le joueur à l'emplacement 1 est déclaré gagnant.
- Si le résultat est entre 3,333,334 et 6,666,666, alors le joueur à l'emplacement 2 est déclaré gagnant.
- Si le résultat est entre 6,666,667 et 10,000,000, alors le joueur à l'emplacement 3 est déclaré gagnant.
Pour une égalité en mode Jackpot :
Les plages associées à chaque joueur dépendent du montant qu'ils ont gagné. Par exemple, avec 4 joueurs (1V1V1V1 ou 2V2), nous avons :
- Le joueur slot 1 a gagné 2 000 € (ce qui représente 20% du gain total) : les plages gagnantes associées à ce joueur seront entre 1 et 2,000,000
- Le joueur slot 2 a gagné 6 000 € (ce qui représente 60% du gain total) : les plages gagnantes associées à ce joueur seront entre 2,000,001 et 8,000,000
- Le joueur slot 3 a gagné 500 € (ce qui représente 5% du gain total) : les plages gagnantes associées à ce joueur seront entre 8,000,001 et 8,500,000
- Le joueur slot 4 a gagné 1 500 € (ce qui représente 15% du gain total) : les plages gagnantes associées à ce joueur seront entre 8,500,001 et 10,000,000
En cas de batailles par équipe, le joueur qui a gagné fait gagner son équipe au tirage.
Battle Double
Une fois la bataille terminée, l'utilisateur peut choisir de doubler ses gains. Soit il gagne et double la valeur qu'il a gagnée dans la bataille, soit il perd le Battle Double et ses gains de bataille.
Le système de provably fair pour le Battle Double est le même que pour l'ouverture des box. Cela signifie que le résultat sera généré de la même manière que pour l'ouverture des box en utilisant la graine client, la graine serveur et nonce. Veuillez vous référer à l'onglet "Boxes opening" pour en savoir plus sur la manière dont le résultat est généré.
Un résultat est généré entre 1 et 10,000,000.
Si le résultat est inférieur à 4,500,000 (inclus), l'utilisateur gagne et double ses gains
Si le résultat est entre 4,500,001 (inclus) et 10,000,000 l'utilisateur perd.























