Uczciwość
Uczciwość oryginalnych kostek i kostek zakresowych
Nie chcemy, abyś po prostu wierzył naszym słowom, jeśli chodzi o bezpieczeństwo. Zamiast tego wyjaśnimy, jak gwarantujemy uczciwość każdego rzutu.
Losowość w skrócie
Nasi członkowie mogą weryfikować swoje zakłady w dowolnym momencie. W tym celu powinni wywnioskować numer rzutu.
Jeśli dodasz trzeci element – Nonce – do pary Klient Seed i Server Seed, będziesz w stanie wywnioskować wynik zakładu. Oczywiście, jeśli ujawnisz swoje wyniki z wyprzedzeniem, zepsuje to cały proces. Dlatego używamy hasha SHA-256, aby tymczasowo ukryć Twój Server Seed. Każdy Seed jest ujawniany po zakończeniu ostatniej losowości. To daje naszym użytkownikom możliwość weryfikacji swoich rzutów w sposób przejrzysty.
Jak obliczane są numery rzutów
Zasady gry przewidują, że musimy znać numer rzutu. Aby go uzyskać, powinniśmy wykonać pewne obliczenia. Połącz swój numer zakładu, Server i Client Seeds. W rezultacie otrzymujemy liczbę między 0 a 9,999.
Tak to działa:
kombinacja = Server Seed + Client Seed + NonceNastępnie potrzebujemy 128-znakowego łańcucha heksadecymalnego używając SHA-512 hasha:
hash = SHA512(kombinacja)Na tym etapie konwertujemy 5 znaków tego hasha na tzw. liczbę dziesiętną. Następnie mogą wystąpić trzy scenariusze. Jeśli jest równa milionowi lub więcej, kontynuujemy to samo, używając następnych 5 znaków. Dzieje się to maksymalnie 25 razy. Jeśli żadne z tych prób nie dało wyniku poniżej miliona, ostatnie 3 znaki zostaną przekonwertowane na twój numer rzutu. W przeciwnym przypadku dzielimy to przez 10K i uznajemy twój wynik rzutu.
Jak wygląda kod
Użyj naszego internetowego weryfikatora lub zapoznaj się z przykładem kodu, aby zobaczyć, jak weryfikujemy nasz zakład:
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;
}