WingshotWingshot
BriefingBriefing
Oxide BlazeOxide BlazeST
SlagSlag
MagnesiumMagnesium
Warm BloodedWarm Blooded
Wild SixWild Six
ScavengerScavenger
Big IronBig Iron
BI83 SpectrumBI83 SpectrumST
XOXOXOXO
Food ChainFood Chain
Green EnergyGreen Energy
System LockSystem Lock
Night OpsNight Ops
Emerald PinstripeEmerald Pinstripe
Serpent StrikeSerpent Strike
Cyber ShellCyber Shell
Wild SixWild Six
SolitudeSolitude
SolitudeSolitude2x
GnarledGnarled
PolymerPolymer
PolymerPolymer
Rocket PopRocket Pop
Condition ZeroCondition Zero

ЩО ТАКЕ СИСТЕМА ПРОЗОРОСТІ?

Наша система прозорості дозволяє перевірити правильність кожного відкриття.

Результат відкриття не є випадковим, а розраховується на основі трьох значень:

  • server seed - фраза, визначена сервером,

  • client seed - фраза, визначена користувачем,

  • nonce - унікальний номер, який використовується для забезпечення безпеки обчислень.

Фраза "Server seed" прихована від користувача і показується лише як ("Public hash"), щоб унеможливити передбачення вмісту наступного кейсу.

Завдяки використанню даних, введених як сервером, так і користувачем, можливо забезпечити прозорість відкриття кейсу, одночасно виключаючи втручання з обох сторін.

КОНФІГУРАЦІЯ

CLIENT SEED

SERVER SEED

Зашифрований server seed методом HMAC SHA-512.

NONCE

КОД, ЩО ВЕРИФІКУЄ ПРОЗОРІСТЬ ВІДКРИТТЯ

Після розкриття Server seed можна скористатися наведеним нижче кодом для верифікації прозорості відкриття. Можна запустити його безпосередньо у своєму браузері, використовуючи будь-який інструмент типу JavaScript Compiler. Використовуючи наведений нижче код, підготуй власний верифікаційний скрипт, а потім натисни кнопку "Запустити". Після виконання скрипту буде представлено результат відкриття, який має відповідати результату, розміщеному на нашому сайті.



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

ВЕРИФІКУВАТИ ВІДКРИТТЯ