प्रोविलिटी फेयर क्या है और खेल की अखंडता का परीक्षण कैसे करें
प्रोविलिटी फेयर (पीएफ) क्या है
प्रोविजनल फेयर एक प्रोटोकॉल है जो आपको क्रिप्टोग्राफिक रूप से सत्यापित करने की अनुमति देता है कि गोल परिणाम यादृच्छिक था और शर्त के बाद ऑपरेटर द्वारा प्रतिस्थापित नहीं किया जा सकता था।
विचार: पहले एक प्रतिबद्धता प्रकाशित की जाती है (छिपे हुए सर्वर बीज का हैश), फिर शर्त के बाद एक रिविल (सर्वर बीज स्वयं) का पता चलता है, और कोई भी खिलाड़ी के ग्राहक बीज और गोल पहचानकर्ता को देखते हुए आरएनजी की जांच और पुन कर सकता है।
बेस प्रोटोकॉल: प्रतिबद्ध → शर्त → प्रकट करें
1. कमिट: राउंड की शुरुआत से पहले, सर्वर एक यादृच्छिक 'सर्वर _ बीज' उत्पन्न करता है और इसका हैश प्रकाशित करता है:
कमिट = SHA-256 (server_seed नमक )//या Keccak-256
प्रतिबद्धता इतिहास/ब्लॉकचेन/पत्रिका में प्रदर्शित की जा सकती है।
2. शर्त: खिलाड़ी अपने 'क्लाइंट _ सीड' (यूआई या खुद से) का चयन या पुष्टि करता है, इसके साथ एक शर्त भेजता है:
client_seed, राउंडआईडी, नॉन
3. खुलासा: दांव बंद करने के बाद, सर्वर 'सर्वर _ सीड' (और 'नमक' वहाँ था) का खुलासा करता है ताकि हर कोई जांच कर सके:
SHA-256 (server_seed नमक) = = प्रतिबद्ध//अखंडता की जांच
4. RNG: यादृच्छिकता संख्या नियतात्मक और प्रजनन योग्य है:
rng = HMAC-SHA256 (कुंजी = server _ seed, msg = client _ seed राउंडआईडी अस्वस्थ)
//या rng = SHA-256 (server_seed client_seed राउंडआईडी अस्वस्थ)
5. परिणाम में मैपिंग: 'rng' को विस्थापन के बिना खेल की सीमा में परिवर्तित करें (नीचे देखें)।
पूर्वाग्रह मुक्त संख्या कैसे प्राप्
'rng% N' लेना गलत है - यह एक मॉड्यूलर ऑफसेट देता है यदि 2 ^ k एन का एक बहु नहीं है यह सही - अस्वीकृति नमूना है:छद्म
// rng_bytes = 32 बाइट्स हैश → uint256 x = uint256 (rng_bytes)
सीमा = मंजिल (2 ^ 256/N) N जबकि x> = सीमा:
= ()//" मिश्रण" फिर से निर्धारक x = uint256 ( )
परिणाम = x% N
इसलिए हमें एन परिणामों (रूले कोशिकाओं, ड्रम प्रतीकों, आदि) पर एक समान वितरण मिलता है।
मिनी उदाहरण (खिलाड़ीचरण सत्यापन)
मान लीजिए:
server_seed = "b2c6... e9 "//राउंड के बाद पता चला (हेक्स/utf8)
client_seed = "माई-क्लाइंट-सीड "//मैंने राउंडआईडी = "R-2025-10-17-001" चुना
नॉन = 42 कमिट = "c9a1... f3 "//publ। अग्रिम रूप से
1) प्रतिबद्धता की जाँच करें
'SHA-256 (server_seed)' की गिनती करें और सुनिश्चित करें कि यह 'प्रतिबद्ध' से मेल खाता है।
2) नियतात्मक आरएनजी
गणना:
rng = HMAC-SHA256 (कुंजी = सर्वर _ सीड, msg = client_seed ":" राउंडआईडी ":" अस्वस्थ)
3) परिणाम में रूपांतरण
रूले (37 संख्या) → एन = 37 के लिए, अस्वीकृति नमूना लागू करें और 'x% 37' लें।
एक स्लॉट के लिए, आवंटन तालिका के अनुसार रीलों/प्रतीकों को परिभाषित करने के लिए कई आरएनजी चंक का उपयोग करें।
4) इतिहास में परिणाम के खिलाफ जांच करें
साइट को वही इनपुट दिखाना चाहिए जो गणना में प्रयुक्त किए गए थे: 'सर्वर _ सीड', 'क्लाइंट _ सीड', 'राउंडआईडी', 'नॉनस', 'हैशलगो', 'rngAlgo', 'mAldayVersion'।
वैकल्पिक/लाभ: वीआरएफ (सत्यापन योग्य यादृच्छिक कार्य)
एक प्रतिबद्धता के बजाय, ऑपरेटर (या वैकल्पिक रूप से) वीआरएफ का उपयोग कर सकता है:1. एक स्मार्ट अनुबंध या सार्वजनिक रजिस्ट्री प्रदाता से 'वीआरएफ (बीज)' के लिए पूछती है।
2. '(यादृच्छिक, प्रमाण)' द्वारा प्रकाशित।
3. कोई भी एक ही सार्वजनिक वीआरएफ कुंजी जोड़ी द्वारा 'प्रूफ' की जांच कर सकता है।
4. इसके बाद, उसी आरएनजी मैपिंग परिणाम में कदम रखता है।
पेशेवरों: ऑपरेटर पर कम भरोसा। नुकसान: वीआरएफ प्रदाता/श्रृंखला और संभावित लागत पर निर्भरता।
कैसे एक कैसीनो पीएफ को सही ढंग से लागू करना चाहिए
संविदा (पीएफ डेटा अनुबंध)
गोल इतिहास में मार्जिन:- 'serverSeedHash', 'serverSeedRevive', 'ClientSeide', 'Gounce', 'Hashalgo', 'rngaVer', 'pr Url' ( ।) , 'calcVer'।
- मान - समय टिकटों (यूटीसी) के साथ WORM भंडारण (अपरिवर्तनीय) में।
बीज पीढ़ी
'सेवर _ सीड' क्रिप्टोग्राफिक PRNG (OS CSPRNG/HSM) द्वारा उत्पन्न होता है।
सिड्स को श्रृंखला (रोटेशन) के बीच कभी नहीं दोहराया जाना चाहिए।
'client _ seed' - खिलाड़ी द्वारा चुना गया या ग्राहक पर उत्पन्न और पुष्टि की गई।
प्रकाशन कमिट
कमिट दांव (इतिहास, आरएसएस, ऑन-चेन-एंकर) से पहले उपलब्ध हैं।- बहुत से के लिए, आप प्रतिदिन प्रकाशित रूट के साथ प्रतिबद्ध मर्कले पेड़ का उपयोग कर सकते हैं।
प्रकट करें
परिणाम प्रकाशित करने से पहले, 'सर्वर _ सीड' का विस्तार और लॉग किया जाता है।
एक सीट पर राउंड की एक श्रृंखला के लिए - श्रृंखला के अंत के बाद प्रकटीकरण (पहले से नीति का संकेत दें)।
पारदर्शी मानचित्रण
मैपिंग एल्गोरिथ्म संस्करण ('mationVer') निश्चित है।- कोई भी परिवर्तन ('MatyVer '/' rngAlgo') - केवल एक घोषणा और प्रतिबद्धताओं की एक नई श्रृंखला के साथ।
लेखा परीक्षा और विवाद
कच्चे इनपुट + गणना रिकॉर्ड सहेजे गए; बहस करते समय, एक रिपोर्ट उत्पन्न होती है: इनपुट्स → RNG → मैपिंग → परिणाम।
स्ट्रीम/लाइव: स्टोर CV/RFID इवेंट हैश एंकर, WORM में वीडियो।
एक खिलाड़ी ईमानदारी की जांच कैसे कर सकता है (चेकलिस्ट)
1. राउंड के इतिहास को खोलें और कॉपी करें: 'ServerSeedReveve', 'ClientSeed', 'राउंडआईडी', 'नॉनस', 'हैशलगो', 'rngalgo', 'mithed Ver'।
2. हैश 'serverSeedRevent' की गणना करें और 'ServerSeedHash' के साथ तुलना करें।
3. निर्दिष्ट एल्गोरिथ्म (HMAC/Hash + इनपुट) के अनुसार RNG की गणना करें।
4. परिणामों की संख्या के लिए "निष्पक्ष" मानचित्रण (अस्वीकृति नमूना) लागू करें।
5. सुनिश्चित करें कि परिणाम दिखाए गए के समान है।
6. यदि वीआरएफ घोषित किया जाता है, तो 'प्रूफ' ("सत्यापित करें" बटन या स्वतंत्र स्क्रिप्ट/ब्लॉक खोजकर्ता) की जांच करें।
विशिष्ट त्रुटियां (एंटी-पैटर्न)
'rng% N' without अस्वीकृति नमूना - पक्षपाती संभावनाएं।- 'क्लाइंट _ सीड' को छिपाना या बदलना (खिलाड़ीकी भागीदारी के बिना सर्वर द्वारा उत्पन्न)।
- शर्त के बाद 'server _ seed' की पुन: पीढ़ी (प्रतिबद्धता पूर्वव्यापी रूप से बदलती है)।
- अपारदर्शी एल्गोरिथ्म संस्करण/प्रकाशन के बिना बदलता है।
- श्रृंखला के बीच पक्षों की पुनरावृत्
- WORM/समय टिकटों की कमी - घटनाओं का क्रम साबित नहीं किया जा सकता है।
- पीएफ और व्यावसायिक तर्क को मिलाकर (उदाहरण के लिए, बोनस को इस तरह से लागू किया जाता है कि यह परिणाम स्थान को बदल देता है, लेकिन इसे 'madeVer' में वर्णित नहीं किया गया है)।
FAQ (छोटा)
क्या स्लॉट की जांच करना संभव है, न कि केवल रूले?
हाँ मैंने किया। पीएफ को चयन अनुक्रम (जैसे, रील पर प्रतीक सूचकांक) पर लागू किया जाता है। यह महत्वपूर्ण है कि आरएनजी संभावना तालिकाओं और पठन क्रम को प्रलेखित किया जाए।
और अगर मैंने अपने 'क्लाइंट _ सीड' में प्रवेश किया, तो ऑपरेटर अभी भी "सर्वर _ सीड" उठा सकता है?
ऐसा नहीं है कि बोली से पहले प्रतिबद्धता पोस्ट की गई थी। यह 'सर्वर _ सीड' को ठीक करता है और इसे रेट्रोएक्टिव रूप से बदलने की अनुमति नहीं देता है।
वे कभी-कभी बैचों में पक्षों को प्रकट क्यों करते हैं?
ताकि श्रृंखला में बीज को "छांटना" संभव न हो सके। यह स्वीकार्य है यदि प्रतिबद्धता अग्रिम में प्रकाशित की जाती है और प्रकटीकरण नीति पारदर्शी है।
मिनी-संदर्भ प्रारूप
हैश: SHA-256 या Keccak-256।
RNG: HMAC-SHA256 या concatenation SHA-256।
पहचानकर्ता: 'राउंडआईडी' (यूटीसी-स्टैम्प + गेम + वेतन वृद्धि), 'नॉन' (श्रृंखला में शर्त काउंटर)।
Версии: 'rngAlgo = HMAC-SHA256 @ 1', 'mudeVer = roulette। v2 ',' calcVer = बटुआ -7। 2`.
ऑपरेटर पीएफ कार्यान्वयन जांच सूची
क्रिप्टोग्राफी और सिड्स
- CSPRNG/HSM; अद्वितीय 'सर्वर _ सीड', प्रलेखित रोटेशन।
- 'क्लाइंट _ सीड' - खिलाड़ी द्वारा नियंत्रित, इतिहास में सहेजा गया।
प्रकाशन और भंडारण
- दांव लगाता है, इतिहास/प्रकाशन चैनल/एंकर तक पहुंच।
- WORM भंडारण, UTC टिकट, तराजू के लिए मर्कले बैच।
एल्गोरिदम
- आरएनजी और बिना पक्षपात के मैपिंग; वर्शनिंग 'rngAlgo/matyVer'।
- स्क्रिप्ट/पेज "चेक ईमानदारी" (ओपन-सोर्स वांछनीय है)।
लाइव और हाइब्रिड
- सीवी/आरएफआईडी/राउंड फेज हैश एंकर, लॉग "जब सट्टेबाजी विंडो बंद थी।"
- विवाद प्रक्रियाएं (vkhodov→iskhod रिपोर्ट, कमिट/वीआरएफ के लिंक)।
सुरक्षा और लेखा परीक्षा
- पीएफ प्रोटोकॉल का स्वतंत्र ऑडिट, बग बाउंटी।
- निर्णय लॉग अपरिवर्तनीय हैं; नियमित रीप्ले परीक्षण
निष्पक्ष रूप से मेला "हमें विश्वास करो" में बदल जाता है "अपने आप को जांचें। "कमिट/रिविल या वीआरएफ, नियतात्मक आरएनजी, और गैर-ऑफसेट मैपिंग को सही करने के साथ, कोई भी राउंड प्रजनन योग्य और सत्यापित हो जाता है। एक खिलाड़ी के लिए, यह पारदर्शिता और विश्वास है। ऑपरेटर के लिए - कम विवाद, मजबूत ब्रांड और नियामक आवश्यकताओं के अनुपालन। मुख्य बात अनुशासन है: अग्रिम में प्रकाशित करें, एल्गोरिदम के संस्करणों को ठीक करें, सबूतों को हमेशा संग्रहीत करें और उपयोगकर्ता को एक सरल सत्यापन उपकरण दें।