BlueprintBlueprint
Old RootsOld Roots
Space RaceSpace Race
Wicked SickWicked Sick
DevourerDevourer
Arctic WolfArctic WolfST
IsaacIsaac
PowercorePowercore2xST
AntiqueAntiqueST
Evil DaimyoEvil Daimyo
AcheronAcheron
MomentumMomentum
Dark BlossomDark Blossom
Halftone WashHalftone Wash
ControlControl
VandalVandal2x
RippleRipple2x
WeaselWeasel
NitroNitro
ConnexionConnexion
Elite BuildElite Build
Food ChainFood Chain
XOXOXOXOST
SlateSlate
HydraHydra
Flame TestFlame TestST

CE ESTE SISTEMUL DE TRANSPARENȚĂ?

Sistemul de transparență pe care îl folosim permite verificarea corectitudinii fiecărei deschideri.

Rezultatul deschiderii nu este aleatoriu, ci calculat pe baza a trei valori:

  • server seed - o expresie determinată de server,

  • client seed - o frază determinată de utilizator,

  • nonce - un număr unic folosit pentru a asigura securitatea calculelor.

Fraza „Server seed" este ascunsă utilizatorului și afișată doar ca („Public hash"), pentru a împiedica previzionarea conținutului următoarei cutii.

Prin utilizarea datelor introduse atât de server, cât și de utilizator, este posibilă asigurarea transparenței cutiei deschise, excludând în același timp interferența din ambele părți.

CONFIGURARE

CLIENT SEED

SERVER SEED

Server seed criptat prin metoda HMAC SHA-512.

NONCE

COD DE VERIFICARE A TRANSPARENȚEI DESCHIDERII

După dezvăluirea Server seed-ului, poți folosi codul de mai jos pentru a verifica transparența deschiderii. Îl poți rula direct în browserul tău, folosind orice instrument de tip JavaScript Compiler. Folosind codul de mai jos, pregătește propriul script de verificare, apoi dă clic pe „Rulează". După executarea scriptului, va fi afișat rezultatul deschiderii, care ar trebui să corespundă cu rezultatul afișat pe site-ul nostru.



async function getRoll(serverSeed, serverNonce, clientSeed) {
	const enc = new TextEncoder();
	const key = enc.encode(serverSeed);
	const message = enc.encode(clientSeed + '-' + serverNonce.toString());

	const cryptoKey = await crypto.subtle.importKey(
		'raw',
		key,
		{ name: 'HMAC', hash: 'SHA-512' },
		false,
		['sign']
	);

	const signature = await crypto.subtle.sign('HMAC', cryptoKey, message);
	const hashArray = Array.from(new Uint8Array(signature));
	const hex = hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
	const rollHex = hex.substring(0, 7);
	const number = parseInt(rollHex.replace(/[^a-f0-9]/gi, ''), 16);

	return (number % 100000) + 1;
}

serverSeed = '';
serverNonce = 1;
clientSeed = '';

getRoll(serverSeed, serverNonce, clientSeed).then(roll => console.log('Roll result:', roll));

VERIFICĂ DESCHIDEREA