Ice CoaledIce Coaled
PulsePulse
EpicenterEpicenter
Tooth FairyTooth Fairy
Food ChainFood Chain
Ice CoaledIce Coaled
The OutsidersThe Outsiders
MuertosMuertos
ConnexionConnexion
GrimGrim
Saibā OniSaibā Oni
Black & TanBlack & Tan
FranklinFranklin
Mainframe 001Mainframe 001
PeeklePeekle2x
Fruit FlyFruit Fly
BananartBananart
Ruby Stream (Lenticular)Ruby Stream (Lenticular)
NostalgiaNostalgia
Danger CloseDanger CloseST
RippleRipple
Halftone WhorlHalftone Whorl
Steel WorkSteel Work
Head ShotHead Shot
Tiger MothTiger Moth
From The VineFrom The Vine

MI A TRANSPARENCIA RENDSZER?

Az általunk használt átláthatósági rendszer lehetővé teszi minden nyitás helyességének ellenőrzését.

Egy nyitás eredménye nem véletlenszerű, hanem három érték alapján kerül kiszámításra:

  • szerver seed - a szerver által meghatározott kifejezés,

  • kliens mag - a felhasználó által meghatározott kifejezés,

  • nonce - a számítások biztonságának biztosítására használt egyedi szám.

A „Szerver seed" kifejezés rejtve van a felhasználó előtt, és csak „(Nyilvános hash)" formájában jelenik meg, hogy megakadályozzák a következő doboz tartalmának megjósolását.

A szerver és a felhasználó által biztosított adatok felhasználásával biztosítható a megnyitott doboz átláthatósága, miközben mindkét fél beavatkozása kizárható.

KONFIGURÁCIÓ

CLIENT SEED

SERVER SEED

Titkosított szerver seed a HMAC SHA-512 módszerrel.

NONCE

KÓD A NYITÁS ÁTLÁTHATÓSÁGÁNAK ELLENŐRZÉSÉHEZ

Miután a szerver seed fel van fedve, az alábbi kóddal ellenőrizhető a nyitás átláthatósága. Közvetlenül a böngészőben futtathatod bármilyen JavaScript fordító eszközzel. Az alábbi kód segítségével készítsd el a saját ellenőrző scriptedet, majd kattints a „Futtatás" gombra. A script végrehajtása után megjelenik a nyitás eredménye, amelynek meg kell egyeznie a weboldalunkon közzétett eredménnyel.



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));

NYITÁS ELLENŐRZÉSE