निष्पक्षता
ओरिजिनल डाइस और रेंज डाइस की निष्पक्षता
हम चाहते हैं कि आप सुरक्षा के मामले में सिर्फ हमारी बात पर विश्वास न करें। इसके बजाय, हम समझाएंगे कि प्रत्येक रोल की निष्पक्षता की गारंटी कैसे दी जाती है।
संयोग का सारांश
हमारे सदस्य कभी भी अपने दांवों की पुष्टि कर सकते हैं। इसके लिए, उन्हें एक रोल नंबर निकालना चाहिए।
यदि आप क्लाइंट सीड और सर्वर सीड के जोड़े में एक तीसरा तत्व - नॉनस - जोड़ते हैं, तो आप दांव के परिणाम का अनुमान लगा सकेंगे। निश्चित रूप से, यदि आप अपने परिणामों को समय से पहले प्रकट करते हैं, तो इससे पूरे प्रक्रिया का मंजर खराब हो जाएगा। इसलिए, हम आपके सर्वर सीड को अस्थायी रूप से छिपाने के लिए SHA-256 हैश का उपयोग करते हैं। प्रत्येक सीड को अंतिम संयोग होने के बाद प्रकट किया जाता है। यह हमारे उपयोगकर्ताओं को पारदर्शिता से अपने रोल की पुष्टि करने की संभावना प्रदान करता है।
रोल नंबर कैसे कैलकुलेट किए जाते हैं
खेल के नियमों के अनुसार, हमें रोल नंबर जानना है। इसे प्राप्त करने के लिए, हमें कुछ गणनाएँ करनी चाहिए। अपने दांव संख्या, सर्वर और क्लाइंट सीड को मिलाएं। इससे, हमें 0 और 9,999 के बीच एक संख्या मिलती है।
यह इस तरह काम करता है:
संयोग = सर्वर सीड + क्लाइंट सीड + नॉनसइसके आगे, हमें SHA-512 हैश का उपयोग करके 128-चरित्र का हेक्स स्ट्रिंग चाहिए:
हैश = SHA512(संयोग)इस बिंदु पर, हम उस हैश के 5 वर्णों को एक प्रकार की दशमलव संख्या में परिवर्तित करते हैं। फिर, तीन परिदृश्य संभव हैं। यदि यह एक मिलियन या उससे अधिक है, तो हम अगले 5 वर्णों का उपयोग करते हुए वही प्रक्रिया जारी रखते हैं। यह 25 बार तक हो सकता है। यदि इनमें से किसी भी प्रयास ने एक मिलियन से कम वाला परिणाम नहीं दिया, तो अंतिम 3 वर्ण आपके रोल नंबर में परिवर्तित होंगे। इसके विपरीत स्थिति में, हम इसे 10K से विभाजित करते हैं और आपके रोल परिणाम को मानते हैं।
कोड कैसा दिखता है
हमारे ऑनलाइन वेरीफायर का उपयोग करें या देखें कि हम अपने दांव की जांच कैसे करते हैं:
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;
}