केस ओपनिंग का नतीजा कैसे जांचें
केस ओपनिंग जांचने के लिए पांच इनपुट और करीब दो मिनट चाहिए। आपको खोलने से पहले देखा गया hashed server seed, खुला हुआ server seed, आपका client seed (या बैटल के लिए ब्लॉक hash), nonce, और बॉक्स की टिकट रेंज चाहिए। यह गाइड Packdraw के प्रकाशित तरीके को उदाहरण के रूप में लेती है, क्योंकि उसका fairness पेज पूरा कोड दिखाता है, फिर बताती है कि CSGORoll और Skinrave कैसे अलग हैं।
कदम 1: खोलने से पहले प्रतिबद्धता नोट करें
कुछ भी खोलने से पहले hashed server seed नोट करें। Packdraw इसे आपकी अकाउंट प्रोफ़ाइल में दिखाता है और कहता है कि यह server seed का SHA-512 hash है। Skinrave सक्रिय seed को तब तक लाल दिखाता है जब तक वह hashed है। hash को तारीख के साथ साइट के बाहर कहीं कॉपी करें। लोग यही कदम छोड़ देते हैं, और यही बाकी सबको मायने देता है।
अपना client seed भी नोट करें। Packdraw और CSGORoll पर आप इसे खुद सेट कर सकते हैं। डिफ़ॉल्ट नहीं, अपनी पसंद का कुछ चुनें।
कदम 2: खोलें, फिर seed खुलवाएं
अपना बॉक्स या केस खोलें। जांचने के लिए साइट को server seed खोलना होगा। Packdraw कहता है कि वह खरीद के बाद बिना hash वाला seed दिखाता है। Skinrave और CSGORoll के Roll गेम पर seed तब खुलता है जब आप अपना client seed बदलते हैं, जिससे नई seed जोड़ी शुरू होती है।
अपनी हिस्ट्री में वह ओपनिंग ढूंढें। आपको उसी ओपनिंग का server seed, client seed और nonce चाहिए। Nonce एक काउंटर है जो 0 से शुरू होता है और एक ही seed जोड़ी पर हर ओपनिंग के साथ 1 बढ़ता है, इसलिए पांच बॉक्स की multi-open पांच nonce इस्तेमाल करती है।
कदम 3: जांचें कि hash मेल खाता है
खुले server seed का hash निकालें और कदम 1 में नोट किए hash से मिलाएं। Packdraw इसके लिए SHA-512 इस्तेमाल करता है। अगर दोनों मेल नहीं खाते, तो रुक जाएं: नतीजे पर भरोसा नहीं किया जा सकता, अपने नोट्स रखें और सपोर्ट से संपर्क करें।
हमारा SHA-256 hash generator SHA-256 वाली साइटों के लिए है। SHA-512 के लिए नीचे दिया Node.js स्निपेट या कोई लोकल टूल इस्तेमाल करें।
कदम 4: टिकट दोबारा निकालें
Packdraw का fairness पेज यह फ़ंक्शन प्रकाशित करता है। यह client seed, server seed और nonce को colon से जोड़ता है, उस string का SHA-512 लेता है, hex को एक बड़े integer की तरह पढ़ता है, और 1,000,000 से भाग देने पर बचा शेष रखता है। 1 जोड़ने पर 1 से 1,000,000 तक का टिकट मिलता है।
const crypto = require('crypto');
const sha512 = (v) => crypto.createHash('sha512').update(v).digest('hex');
function ticket(clientSeed, serverSeed, nonce) {
const hash = sha512(`${clientSeed}:${serverSeed}:${nonce}`);
return Number((BigInt('0x' + hash) % 1000000n) + 1n);
}
const serverSeed = '4f1c9a7e2b6d8035c1e9f7a4b2d6083e5c7a9f1b3d5e7092c4a6b8d0e2f41357';
console.log(sha512(serverSeed).slice(0, 16)); // अपने नोट किए hash से मिलाएं
for (let n = 0; n < 3; n++) console.log(n, ticket('maple-leaf-77', serverSeed, n));
हमने इसे इन उदाहरण seeds के साथ चलाया। hash 39b562dbe6b54d6b से शुरू होता है, और तीन टिकट हैं:
| Nonce | टिकट |
|---|---|
| 0 | 674,184 |
| 1 | 910,929 |
| 2 | 231,914 |
seeds और nonce को अपने वाले से बदलें और Node.js में चलाएं। एक जैसे इनपुट पर हर बार एक जैसा आउटपुट आता है, और यही इसका मकसद है।
कदम 5: टिकट को आइटम से मिलाएं
बॉक्स के हर आइटम के पास उसकी संभावना के बराबर टिकटों की रेंज होती है। Packdraw कहता है कि रेंज पैक डिटेल में दिखती हैं। एक उदाहरण 25 $ का बॉक्स लें:
| आइटम की वैल्यू | संभावना | टिकट |
|---|---|---|
| 1,000 $ | 0.4% | 1 से 4,000 |
| 100 $ | 5% | 4,001 से 54,000 |
| 30 $ | 20% | 54,001 से 254,000 |
| 12 $ | 35% | 254,001 से 604,000 |
| 5 $ | 39.6% | 604,001 से 1,000,000 |
टिकट 674,184 5 $ वाली रेंज में आता है, टिकट 910,929 भी, और टिकट 231,914 30 $ वाली रेंज में आता है। अगर साइट ने इनमें से किसी ओपनिंग के लिए कोई दूसरा आइटम दिखाया, तो नतीजा प्रकाशित तरीके से मेल नहीं खाता।
टेबल खुली हो तो दो और बातें जांचें। रेंज बिना किसी गैप या ओवरलैप के ठीक 1 से 1,000,000 तक होनी चाहिए। और expected value आसानी से निकलती है: 1,000 x 0.004 + 100 x 0.05 + 30 x 0.20 + 12 x 0.35 + 5 x 0.396 = 21.18 $, यानी यह बॉक्स औसतन अपनी कीमत का करीब 84.7% लौटाता है।
बैटल: ब्लॉक hash से जांच
बैटल में Packdraw आपके client seed की जगह EOS ब्लॉकचेन के एक भविष्य के ब्लॉक का hash इस्तेमाल करता है, जो बैटल शुरू होते समय चुना जाता है। Skinrave और CSGORoll भी ऐसा ही करते हैं। जांचने के लिए आपको वह ब्लॉक नंबर चाहिए जिस पर साइट ने प्रतिबद्धता की, फिर किसी सार्वजनिक EOS block explorer से उस ब्लॉक का hash। उस hash को client seed की जगह रखें और दोबारा निकालें।
Packdraw के jackpot बैटल अलग तरह से काम करते हैं। हर खिलाड़ी को पॉट में उसके हिस्से के अनुपात में raffle टिकटों की एक रेंज मिलती है। जीतने वाला टिकट ब्लॉक hash का SHA-256 है, integer के रूप में, कुल टिकटों की संख्या का modulo, जोड़ 1। जिसकी रेंज में वह टिकट है, वह जीतता है।
जांचें कि बैटल बनाते समय वह ब्लॉक भविष्य में था। अगर ब्लॉक नंबर ब्लॉक बनने के बाद चुना गया, तो नतीजा पहले से पता हो सकता था।
दूसरी साइटें कैसे अलग हैं
CSGORoll। नए गेम के लिए CSGORoll हर गेम का server seed बनाता है, उसका SHA-256 hash प्रकाशित करता है, और गेम शुरू होने से पहले भविष्य के EOS ब्लॉक नंबर पर प्रतिबद्ध होता है। वह ब्राउज़र में चलने वाले verifier का लिंक देता है। अपने Roll गेम के लिए वह seeds और nonce का SHA-512 लेता है, पहले पांच hex अक्षरों को नंबर के रूप में पढ़ता है, वैल्यू 10,000 से ऊपर हो तो अगले पांच पर जाता है, और 100 से भाग देकर 0 से 99.99 तक का roll देता है। पुराने गेम 1 करोड़ लंबी SHA-256 hash chain और पुराने RNG संस्करणों पर थे, और पेज बताता है कि कौन सा संस्करण किन nonces को कवर करता है।
Skinrave। Skinrave हर गेम का कोड प्रकाशित करता है। बैटल server seed, भविष्य के EOS block id, slot नंबर और round नंबर से 0 से 9,999 तक के टिकट निकालते हैं। अकेले खेले जाने वाले गेम में पुराना server seed खुलवाने के लिए client seed बदलें, फिर अपनी हिस्ट्री के seeds और nonce से जांचें।
जांच क्यों फ़ेल होती है
- गलत nonce। Multi-open कई nonces इस्तेमाल करती है। उस seed जोड़ी पर पहली ओपनिंग से गिनें।
- इनपुट का गलत क्रम। Packdraw की string पहले client seed, फिर server seed, फिर nonce है। इन्हें उलटने से सब बदल जाता है।
- बदला हुआ seed। अगर आपने ओपनिंग के बीच client seed बदला, तो हर समूह अलग server seed इस्तेमाल करता है।
- बदली हुई रेंज। बॉक्स का सामान और odds अपडेट हो सकते हैं। खोलते समय बॉक्स पेज का स्क्रीनशॉट लें।
- असली गड़बड़ी। अगर ऊपर का कुछ भी इसे नहीं समझाता, तो नोट किया hash, खुला seed और स्क्रीनशॉट रखें, और साइट के सामने मामला उठाएं।
casino गेम्स के आम तरीके के लिए हमारी गाइड provably fair bet कैसे जांचें देखें।
कौन सी साइटें ऐसा तरीका प्रकाशित करती हैं जिसे इस तरह जांचा जा सके, यह जानने के लिए पढ़ें provably fair मिस्ट्री बॉक्स और केस ओपनिंग साइटें।
स्रोत
- Packdraw का fairness पेज: https://packdraw.com/fairness
- CSGORoll का provably fair पेज: https://www.csgoroll.com/info/provably-fair/
- Skinrave का fairness पेज: https://skinrave.gg/en/fairness
- NIST FIPS 180-4, Secure Hash Standard: https://csrc.nist.gov/pubs/fips/180-4/upd1/final
- Node.js crypto डॉक्यूमेंटेशन: https://nodejs.org/api/crypto.html
मुख्य शर्तें
- Provably fair
- एक सिस्टम जो खिलाड़ियों को cryptographically जांचने देता है कि गेम का नतीजा दांव से पहले तय था और बाद में बदला नहीं गया।
- सर्वर सीड
- casino द्वारा बनाई गई एक गुप्त रैंडम वैल्यू जो आपके क्लाइंट सीड और nonce के साथ मिलकर दांव के नतीजे तय करती है।
- हैश किया गया सर्वर सीड
- casino के गुप्त सर्वर सीड का SHA-256 हैश, जो खेलने से पहले इस प्रतिबद्धता के रूप में दिखाया जाता है कि सीड नहीं बदलेगा।
- क्लाइंट सीड
- खिलाड़ी द्वारा चुनी या बदली जा सकने वाली वैल्यू जो हर नतीजे में मिलाई जाती है, ताकि casino अकेले नतीजे पहले से न निकाल सके।
- Nonce
- एक काउंटर जो एक ही सीड पेयर से लगे हर दांव के साथ एक बढ़ता है, ताकि हर दांव को अलग नतीजा मिले।
- सीड रोटेशन
- सक्रिय सर्वर सीड को नए सीड से बदलना, जिससे पुराना सीड सामने आता है ताकि उसके दांव वेरिफाई किए जा सकें।
- SHA-256
- एक cryptographic हैश फंक्शन जो किसी भी इनपुट को तय 256-bit आउटपुट में बदलता है; सर्वर सीड के लिए प्रतिबद्धता देने में इस्तेमाल होता है।
- मिस्ट्री बॉक्स
- तय कीमत पर बिकने वाला बॉक्स जो आइटम और odds की प्रकाशित सूची में से एक आइटम रैंडम तरीके से खोलता है।
- केस बैटल
- एक मोड जिसमें कई खिलाड़ी एक जैसे केस या बॉक्स खोलते हैं और आम तौर पर सबसे ज़्यादा कुल वैल्यू वाला सारे आइटम ले जाता है।