
Provably Fair
Aleatorización
Nuestra plataforma utiliza bloques de blockchain de EOS para generar un hash secreto que determina los resultados en batallas. Este proceso es completamente externo, descentralizado y fuera de nuestro control, impulsado únicamente por las acciones de los mineros y validadores. Influenciar los resultados del juego requeriría dominar toda la red blockchain de EOS, lo cual no es factible. Si tienes alguna pregunta, por favor contacta a nuestro equipo de soporte.
Cronología
Cuando creas una batalla, no se genera ningún resultado hasta que todos los demás jugadores o bots se unan. Una vez que todos los jugadores y/o bots se han unido, determinamos el número del último bloque y seleccionamos un bloque de EOS que aún no ha sido minado.
Por ejemplo, si el último bloque minado es #371315767, le sumamos 5 a ese número dándonos el bloque #371315770, que esperaremos para obtener el hash único del ID de Bloque EOS, el cual no puede ser conocido de antemano.
Después de que el bloque ha sido minado, obtenemos su hash único (ID de Bloque EOS), que usamos como parte del Seed del Cliente y realizamos el primer tiro.
Hay muchos sitios web de blockchain que pueden verificar esto. Usamos eosflare.io pero hay otras opciones disponibles desde aquí: https://eosauthority.com. Una vez seleccionas el proveedor, puedes verificar que el bloque estuvo realmente algunos segundos en el futuro. Un bloque de ejemplo se puede encontrar aquí: https://eosflare.io/block/359689419.
Términos y definición
- ID de Bloque EOS - Obtenido del bloque de EOS minado inmediatamente antes del inicio de la primera ronda en la batalla.
- Slot - Básicamente la posición del jugador en la batalla, si apareces 2º desde la izquierda, tu posición sería 2.
- Seed del Cliente - Una combinación del ID de Bloque EOS y Slot, separados por un guion. Esencial para crear el hash del tiro.
- Seed del Servidor - Una cadena generada aleatoriamente asignada cuando se crea una batalla.
- Seed del Servidor Hasheada - La versión hasheada del Seed del Servidor.
- Nonce - Equivalente al número de ronda en el modo de batalla.
- Número de bloque - Un número único para cada bloque de EOS.
- Hash del Tiro - Producido usando el seed del cliente, nonce y el seed del servidor.
- Boleto del Tiro - Un número de boleto del ítem derivado de convertir el hash del tiro en el rango de 1 a 10,000,000.
Lanzamiento
Este código ilustra la lógica para generar un ticket para cada lanzamiento y jugador. Cada nueva ronda (lanzamiento) produce tickets de ítems que los usuarios reciben en el inventario del juego. lanzamiento - se refiere al número de ticket que determina el ítem que un usuario obtiene en ese lanzamiento.
<?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}";Esto se puede ejecutar localmente o en cualquier ejecutor de scripts PHP encontrado en línea. Dirigimos a los clientes a: https://3v4l.org/bRN5v para esto, pero hay muchas opciones disponibles como:
El cliente deberá editar las variables server_seed, nonce y client_seed en el script para verificar los resultados.
Esta información se puede encontrar aquí: https://csdrop.com/profile/game-history bajo "Batallas".
Tiraje de empate
A veces, tras el recuento final de todos los objetos de los jugadores, dos o más jugadores pueden tener el mismo valor de objetos ganados durante la batalla.
Para resolver este empate, se lleva a cabo una mini-ronda adicional llamada Tiraje de empate. Es esencialmente un giro de ruleta dentro del juego que selecciona a un ganador entre los jugadores empatados, asegurando una determinación justa y honesta de la victoria.
En este caso, el Tiraje de empate también es Probablemente Justo usando:
- Semilla del servidor - La generada para la batalla.
- Semilla del cliente - El ID del bloque de EOS vinculado a la batalla.
- Nonce - Número total de rondas en la batalla más uno.
En caso de empate donde los jugadores tienen objetos de igual valor, el ganador se determina por la posición que ocupa cada jugador y un billete generado aleatoriamente que va de 1 a 10,000,000. La posición corresponde a la ubicación del jugador en el juego, contando de izquierda a derecha.
Para un empate que involucra a dos jugadores:
- Si el resultado está entre 1 y 5,000,000, el jugador en la posición 1 se declara ganador.
- Si el resultado está entre 5,000,001 y 10,000,000, el jugador en la posición 2 se declara ganador.
Para un empate que involucra a tres jugadores:
- Si el resultado está entre 1 y 3,333,333, el jugador en la posición 1 se declara ganador.
- Si el resultado está entre 3,333,334 y 6,666,666, el jugador en la posición 2 se declara ganador.
- Si el resultado está entre 6,666,667 y 10,000,000, el jugador en la posición 3 se declara ganador.
Para un empate en el modo Jackpot:
Los rangos asociados con cada jugador dependen de la cantidad que ganaron. Por ejemplo, con 4 jugadores (1V1V1V1 o 2V2), tenemos:
- El jugador en la posición 1 ganó 2.000€ (lo que representa 20% de la ganancia total): los rangos ganadores asociados a este jugador estarán entre 1 y 2.000.000
- El jugador en la posición 2 ganó 6.000€ (lo que representa 60% de la ganancia total): los rangos ganadores asociados a este jugador estarán entre 2.000.001 y 8.000.000
- El jugador en la posición 3 ganó 500€ (lo que representa 5% de la ganancia total): los rangos ganadores asociados a este jugador estarán entre 8.000.001 y 8.500.000
- El jugador en la posición 4 ganó 1.500€ (lo que representa 15% de la ganancia total): los rangos ganadores asociados a este jugador estarán entre 8.500.001 y 10.000.000
En caso de batallas en equipo, el jugador que ganó hace que su equipo gane el sorteo.
Batalla Double
Una vez que la batalla ha terminado, el usuario puede elegir duplicar sus ganancias. Ya sea que gane y duplique el valor que ganó en la batalla, o pierda la Batalla Double y sus ganancias de la batalla.
El sistema de Provably fair para la Batalla Double es el mismo que para la apertura de cajas. Esto significa que el resultado se generará de la misma manera que en la apertura de cajas usando la semilla del cliente, la semilla del servidor y el nonce. Por favor refiérase a la pestaña "Apertura de cajas" para saber más sobre cómo se genera el resultado.
Se genera un resultado entre 1 y 10.000.000.
Si el resultado es inferior a 4.500.000 (incluido) el usuario gana y duplica sus ganancias.
Si el resultado está entre 4.500.001 (incluido) y 10.000.000, el usuario pierde.























