निष्पक्षता खुद जांचें
साइट कॉन्ट्रैक्ट के बारे में जो भी कहती है, वह सब नेटवर्क के खुले डेटा से मिलाया जा सकता है। नीचे जांचें हैं, सबसे आसान (दो मिनट) से सबसे गहरी (कोड की बिल्ड) तक। ज़्यादातर के लिए प्रोग्रामिंग की ज़रूरत नहीं।
जांच की बनावट
साइट नकली हो सकती है या गलती कर सकती है, पर ब्लॉकचेन की एंट्री नहीं। इसलिए प्रोजेक्ट की साइट पर नहीं, नेटवर्क एक्सप्लोरर में जांचें: वह स्वतंत्र साइट, जो ब्लॉकचेन की सामग्री दिखाती है (Solscan, Solana Explorer, SolanaFM वगैरह)। उनमें से कोई भी खुद खोलें, दूसरों के संदेशों के लिंक से नहीं।
जांच के लिए दो पते चाहिए: प्रोग्राम (कॉन्ट्रैक्ट) और टोकन। उन्हें “सुरक्षा” पेज दिखाता है। उन्हें कम से कम दो और स्वतंत्र जगहों (रिपॉज़िटरी, आधिकारिक चैनल) से भी मिलाएं: पते मेल न खाएं, तो आपको ठगने की कोशिश हो रही है।
तुरंत जांचें (2–10 मिनट)
| क्या जांचें | कहां देखें | कैसा होना चाहिए | अगर अलग है |
|---|---|---|---|
| 1. क्या नए टोकन छापे नहीं जा सकते | एक्सप्लोरर में टोकन का पेज, Mint Authority फ़ील्ड | खाली (वापस लिया गया) | जिसका पता वहां लिखा है, वह चाहे जितने टोकन जारी करके आपके टोकन की कीमत गिरा सकता है। |
| 2. क्या टोकन फ्रीज़ नहीं किए जा सकते | वही पेज, Freeze Authority फ़ील्ड | खाली | मालिक कोई भी वॉलेट फ्रीज़ कर सकता है, आपका भी। |
| 3. कोड कौन बदल सकता है | प्रोग्राम का पेज, Upgrade Authority फ़ील्ड | खाली (कोड फ्रीज़ है) या अपडेट पर देरी वाले मल्टीसिग का पता | एक साधारण पता यानी मालिक किसी भी समय दूसरे नियम चढ़ा सकता है। |
| 4. टोकन की कुल जारी मात्रा | टोकन का पेज: Supply | 1,00,00,00,00,000 से ज़्यादा नहीं, और बर्न की वजह से केवल घटती है | ज़्यादा है, तो जारी मात्रा बढ़ाई गई है। |
| 5. क्या टोकन वही है | आपके वॉलेट में टोकन का पता बनाम “सुरक्षा” पेज | पते अक्षर-दर-अक्षर एक जैसे हैं | यह असली FAIRDRUM नहीं है। न खरीदें, न जमा करें। |
| 6. क्या वॉल्ट में टोकन पर्याप्त हैं | “सुरक्षा” पेज से वॉल्ट का पता, टोकन का बैलेंस; पॉट की रकमें “इकोनॉमी” पर | वॉल्ट का बैलेंस पॉट के योग (और खिलाड़ियों के गेम बैलेंस) से कम नहीं | कॉन्ट्रैक्ट हमेशा टोकन से ढका होना चाहिए। अंतर एक गंभीर संकेत है। |
“सुरक्षा” पेज की ऊपरी तालिका यही फ़ील्ड सीधे नेटवर्क से पढ़ती है और ✔ या ⚠ लगाती है, लेकिन केवल उस पर भरोसा न करें: एक बार खुद मिलाएं।
अपना स्पिन जांचें
हर स्पिन नेटवर्क में एक एंट्री छोड़ता है, और स्क्रीन पर दिखे नतीजे को उससे मिलाया जा सकता है।
ट्रांज़ैक्शन खोजें
स्पिन के बाद बटन के नीचे “ट्रांज़ैक्शन” लिंक दिखता है। वह एक्सप्लोरर में एंट्री खोलता है। या एक्सप्लोरर में अपने वॉलेट का इतिहास खोलें और FAIRDRUM प्रोग्राम वाला ट्रांज़ैक्शन चुनें।
होना चाहिए: Success स्टेटस और इंस्ट्रक्शनों की सूची।
कॉल की दो जोड़ियां खोजें
पहले ट्रांज़ैक्शन में Switchboard का कॉल (रैंडमनेस का अनुरोध, commit) और FAIRDRUM प्रोग्राम का कॉल
spin_commit(दांव) है। दूसरे में: Switchboard का कॉल (उजागर करना, reveal) औरspin_settle(हिसाब)। एक्सप्लोरर में नाम थोड़ा अलग-अलग दिखता है (SpinCommit, spinCommit)।क्रम मिलाएं
दांव नंबर उजागर होने से पहले दर्ज हुआ था: पहले ट्रांज़ैक्शन का ब्लॉक नंबर (Slot) दूसरे से छोटा है। इसका मतलब है कि दांव के समय न आप नतीजा जानते थे, न प्रोजेक्ट।
दूसरे ट्रांज़ैक्शन का लॉग (Logs) देखें
वहां
SpinSettledइवेंट दर्ज है, जिसमें स्पिन की संख्या, इनाम, मिनी जैकपॉट, जैकपॉट और सुपर जैकपॉट के हिट हैं। ये वही नंबर हैं जो व्हील ने दिखाए।रैंडमनेस का मालिक जांचें
ट्रांज़ैक्शन में दिया गया रैंडमनेस अकाउंट Switchboard प्रोग्राम के स्वामित्व में होना चाहिए। कॉन्ट्रैक्ट कोई भी दूसरा अकाउंट खुद ठुकरा देता है, पर तसल्ली कर लेना अच्छा है: अकाउंट खोलें और Owner फ़ील्ड देखें।
गहरी जांचें
कोड बिल्ड करके हैश मिलाएं
GitHub पर प्रोजेक्ट की रिपॉज़िटरी (लिंक प्रकाशन के बाद दिखेगा) लें, प्रोग्राम को पुनरुत्पादन-योग्य मोड में बिल्ड करें (anchor build --verifiable) और हैश को नेटवर्क वाले से मिलाएं (solana-verify)। हैश मिल जाएं, तो नेटवर्क पर ठीक यही खुला कोड है।
कॉन्स्टेंट पढ़ें
खेल के सारे नंबर एक ही फ़ाइल consts.rs में हैं: हिस्से, संभावनाएं, इनामों की सीढ़ी, शुल्क, अवधियां। साइट अपनी तालिकाएं उसी से बनाती है, और साइट और कॉन्ट्रैक्ट के बीच अंतर नहीं होना चाहिए।
टेस्ट चलाएं
रिपॉज़िटरी में नियमों और गणनाओं के टेस्ट (cargo test) और क्लाइंट के टेस्ट (npm test) हैं। वे, उदाहरण के लिए, जांचते हैं कि सारे पूल और बैलेंस का योग वॉल्ट के टोकन से ज़्यादा न हो।
समझें कि नतीजा कैसे चुना जाता है
उजागर हुई रैंडमनेस के 32 बाइट से कॉन्ट्रैक्ट SHA-256 के ज़रिए नंबर निकालता है। मुख्य व्हील के लिए ये ब्लॉक हैं SHA-256("FDRM-M" + रैंडमनेस + ब्लॉक नंबर), जिनमें से हर किए गए स्पिन के लिए 4 बाइट (little-endian) का एक नंबर लिया जाता है। गोल्ड व्हील के लिए: SHA-256("FDRM-G" + रैंडमनेस + किए गए स्पिन का नंबर)। नंबर की तुलना 232 के हिस्सों में दिए थ्रेशोल्ड से होती है; थ्रेशोल्ड खुद साप्ताहिक मात्रा और हिसाब के समय पॉट के आकार पर निर्भर हैं, इसलिए पुराने स्पिन को पूरा दोबारा गिनना केवल उस स्लॉट की प्रोग्राम-स्थिति के साथ ही संभव है। सूत्र math.rs और engine.rs में हैं।
किसी अवधि का लॉग पढ़ें
कोई भी किसी अवधि के सारे SpinSettled इवेंट नेटवर्क से निकालकर गोल्ड की आवृत्ति और पॉट का आकार खुद गिन सकता है। “संभावनाओं” से मिलाएं। कम स्पिन पर उतार-चढ़ाव बहुत बड़ा होता है: 1% की संभावना देखने के लिए हज़ारों स्पिन चाहिए।
क्या जांचा नहीं जा सकता
- ऑरेकल की ईमानदारी। रैंडमनेस Switchboard नेटवर्क से आती है। कॉन्ट्रैक्ट जांचता है कि नंबर सही अकाउंट से है और दांव के बाद उजागर हुआ है, लेकिन यह नहीं जांच सकता कि ऑरेकल के नोड आपस में मिले हुए तो नहीं। यह एक बाहरी निर्भरता है।
- कोड में गलतियों का न होना। टेस्ट और खुला कोड भरोसा बढ़ाते हैं, लेकिन स्वतंत्र ऑडिट की जगह नहीं ले सकते। जब तक ऑडिट का लिंक नहीं दिया गया है, ऑडिट नहीं हुआ है।
- भविष्य। जब तक अपडेट का अधिकार वापस नहीं लिया जाता, नियम नए वर्शन से बदल सकते हैं। प्रोग्राम-अपडेट के ट्रांज़ैक्शनों पर नज़र रखें।
- एडमिन कॉन्ट्रैक्ट के बाहर क्या करता है। उसके टोकन की बिक्री, मार्केटिंग और लिस्टिंग के फ़ैसले कॉन्ट्रैक्ट के नियंत्रण में नहीं हैं। प्रमोशन फंड के भुगतान सार्वजनिक हैं, लेकिन “किस पर खर्च हुआ” कॉन्ट्रैक्ट नहीं जांचता।