Imparcialidad
Imparcialidad de los Dados Originales y los Dados de Rango
No queremos que solo creas en nuestra palabra cuando se trata de seguridad. En su lugar, vamos a explicar cómo garantizamos la imparcialidad de cada tirada.
Aleatorización en pocas palabras
Nuestros miembros pueden verificar sus apuestas en cualquier momento que deseen. Para esto, deben deducir un número de tirada.
Si agregas un tercer elemento – Nonce – al par de Semilla del Cliente y Semilla del Servidor, podrás deducir el resultado de la apuesta. Claro, si revelas tus resultados antes de tiempo, arruinarías todo el proceso. Por lo tanto, utilizamos SHA-256 hash para ocultar temporalmente tu Semilla del Servidor. Cada Semilla se revela después de que se haya realizado la última aleatorización. Esto brinda a nuestros usuarios la posibilidad de verificar sus tiradas de manera transparente.
Cómo se calculan los números de tirada
Las reglas del juego estipulan que necesitamos conocer el número de tirada. Para recibirlo, debemos hacer algunos cálculos. Combina tu número de apuesta, Server y Client Seeds. Como resultado, obtenemos una cifra entre 0 y 9,999.
Así es como funciona:
combinación = Server Seed + Client Seed + NonceA continuación, necesitamos una cadena hexadecimal de 128 caracteres utilizando el SHA-512 hash:
hash = SHA512(combinación)En este punto, convertimos 5 caracteres de ese hash a un llamado número decimal. Luego, son posibles tres escenarios. Si es igual a un millón o más, continuamos de la misma manera usando los siguientes 5 caracteres. Esto puede ocurrir hasta 25 veces. Si ninguna de estas pruebas dio un resultado de menos de un millón, los últimos 3 caracteres se convertirán en tu número de tirada. En caso contrario, lo dividimos entre 10K y consideramos el resultado de tu tirada.
Cómo se ve el código
Utiliza nuestro verificador en línea o echa un vistazo al ejemplo de código para ver cómo verificamos nuestra apuesta:
function getRoll(serverSeed, clientSeed, nonce) {
var hash = sha512(serverSeed + clientSeed + nonce);
var index = 0;
do {
var lucky = parseInt(hash.substr(index, 5), 16);
index += 5;
} while (lucky >= 1000000);
return lucky % 10000;
}