Kumicho DragonKumicho Dragon
Black LaminateBlack Laminate
DirectiveDirective
PhobosPhobos
GrinderGrinder
Condition ZeroCondition ZeroST
DarkwingDarkwing
POP AWPPOP AWP
Mud-SpecMud-Spec
Modest ThreatModest ThreatST
Pit ViperPit Viper
Candy AppleCandy Apple
ModuleModule2x
SerenitySerenity3x
Blood TigerBlood TigerST
Green MarineGreen Marine
PulsePulse2x
Jungle SlipstreamJungle Slipstream
CapillaryCapillary
ExothermicExothermic
FeatherweightFeatherweight
Classic CrateClassic Crate
DirectiveDirective
Elite BuildElite Build
Lapis GatorLapis Gator
HypnosisHypnosis

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