बैकगैमौन के पासों की निष्पक्षता: सर्वर की तरफ़ का RNG असल में कैसे काम करता है
ऑनलाइन बैकगैमौन खेलने वाले हर खिलाड़ी ने कभी न कभी वही खोज टाइप की है, बस शब्द अलग-अलग रहे हैं: क्या पासे बेईमान हैं? इस सवाल का हक़ एक सच्चा जवाब है, कोई विज्ञापनी टालमटोल नहीं। यह रहा उसका तकनीकी रूप: डिजिटल पासा आता कहाँ से है, सचमुच क्या-क्या बिगड़ सकता है, और ठीक से बना हुआ खेल फेंके गए पासे को वादे से नहीं, अपनी बनावट से हर किसी की पहुँच के बाहर कैसे रख देता है।
डिजिटल पासा कहाँ जन्म लेता है
असली पासे को भौतिकी बेतरतीब करती है: लुढ़कना, उछलना, मेज़ की मख़मल। डिजिटल पासा इसके उलट बस एक संख्या है, जिसे यादृच्छिक संख्या जनित्र (RNG) पैदा करता है, यानी सॉफ़्टवेयर का वह टुकड़ा (अक्सर हार्डवेयर से पोषित) जिसका पूरा काम ऐसे मान देना है जिनका न कोई अनुमान लगा सके, न उन्हें दोहरा सके।
और हर RNG एक बराबर नहीं होता। संगीत की सूची फेंटने वाला साधारण छद्म-यादृच्छिक जनित्र जो शृंखला बनाता है, वह पूरी की पूरी अपने शुरुआती मान (बीज) से तय हो जाती है। जिसे बीज और कलनविधि पता हो, उसे वह हर ‘बेतरतीब’ संख्या पहले से पता है जो जनित्र कभी देगा। गानों की सूची के लिए यह काफ़ी है, दाँव वाले खेलों के लिए बेकार। गंभीर खेल कूटलेखन की दृष्टि से सुरक्षित जनित्र (CSPRNG) काम में लेते हैं, जिन्हें असली दुनिया की अव्यवस्था से लगातार दोबारा बीज मिलता रहता है: हार्डवेयर का शोर, समय की सूक्ष्म कँपकँपाहट, संचालन तंत्र की घटनाओं की अफ़रा-तफ़री। इनका जो लक्षण इन्हें परिभाषित करता है, ठीक वही पासों के खेल को चाहिए: वह हमलावर भी, जिसने पिछला हर परिणाम देखा हो, अगला परिणाम नहीं बता सकता।
इससे बड़ा सवाल: यह चलता कहाँ है?
अब वह हिस्सा, जो पूछने की बात ज़्यादातर खिलाड़ियों के मन में आती ही नहीं। आपका पासा किस जनित्र ने बनाया, इससे ज़्यादा मायने यह रखता है कि वह कहाँ चलता है। अगर पासे खिलाड़ी के अपने उपकरण पर बनते हैं तो कलनविधि चाहे कितनी भी बढ़िया हो, खेल बनावट से ही टूटा हुआ है: बदला हुआ क्लाइंट तब तक दोबारा फेंक सकता है जब तक नतीजा पसंद न आ जाए, स्मृति में पड़े परिणाम से छेड़छाड़ कर सकता है, या चाल पक्की करने से पहले मानों में झाँक सकता है। क्लाइंट की तरफ़ बने पासे एक वादा हैं, और वादे किसी ऐप से पैच लगाकर निकाले जा सकते हैं।
सही बनावट सर्वर-सत्ताधारी होती है: पासा खेल के सर्वर पर फिंकता है, ऐसे माहौल में जहाँ किसी खिलाड़ी का हार्डवेयर पहुँच ही नहीं सकता। आपका उपकरण उस फेंक को पाता है जो पहले से मौजूद है और बस उसे चलाकर दिखाता है। हमारे खेल में, जैसा हम निष्पक्ष खेल के पन्ने पर बताते हैं, बात पासों से आगे तक जाती है: सर्वर हर आज़माई गई चाल को नियमों पर परखता है, और दोनों क्लाइंट अपने बोर्ड को उस छाप से लगातार मिलाते रहते हैं जो सर्वर हर बदलाव के साथ भेजता है। ऐसा कोई क्षण नहीं आता जब किसी काम की बात पर खिलाड़ी के उपकरण पर भरोसा किया जाए।
यह अकेला डिज़ाइन-निर्णय बेईमानी की पूरी-पूरी श्रेणियाँ एक झटके में मिटा देता है। कोई दोबारा नहीं फेंक सकता, क्योंकि फेंक उसकी बारी से पहले हो चुकी है। कोई अगली संख्या अपने उपकरण से नहीं पढ़ सकता, क्योंकि वह वहाँ पढ़ने को है ही नहीं। और कोई चुपचाप बोर्ड नहीं मोड़ सकता, क्योंकि जो बोर्ड सर्वर के बोर्ड से मेल नहीं खाता वह एक ही आवाजाही में फेंक दिया जाता है और फिर से मिला दिया जाता है।
‘प्रमाणित रूप से निष्पक्ष’ का असल मतलब
‘क्या पासे ईमानदार हैं?’ का जवाब उद्योग बरसों तक एक प्रमाणपत्र देता रहा: कोई प्रयोगशाला जनित्र को एक बार जाँचती है और एक मुहर जारी कर देती है, जिस पर आपसे भरोसा करने को कहा जाता है। हमें लगता है आप मुहर से मज़बूत किसी चीज़ के हक़दार हैं। प्रमाणित रूप से निष्पक्ष होने का अर्थ है कि आपको हम पर भरोसा करना ही न पड़े, क्योंकि हर फेंक अपना सबूत अपने साथ लेकर आती है। तरीक़ा है बारी-दर-बारी चलने वाले आदान-प्रदान के साथ एक प्रतिबद्धता-योजना, और वह कुछ यों दिखती है: दोनों खिलाड़ियों की अपनी-अपनी बंद पर्चियों की गड्डी, और साथ में हमारा एक बंद लिफ़ाफ़ा।
- ताला। पहला पासा फिंकने से पहले सर्वर एक गुप्त बीज बनाता है और, नतीजा जब तक किसी को पता नहीं, तभी उसकी कूट-छाप (हैश) आपके हाथ में दे देता है। ठीक उसी घड़ी दोनों खिलाड़ियों का ऐप भी अपनी क्रमांकित पर्चियों की गड्डी बंद करता है और सिर्फ़ उस गड्डी की छाप प्रकाशित करता है। तीनों छापें एक ही अभिलेख में साथ जमा दी जाती हैं, ताकि बाद में इनमें से कोई भी बदली न जा सके, और कोई भी अपने भीतर छिपी चीज़ ज़ाहिर न करे।
- आदान-प्रदान। पासे पहले से तय नहीं होते। वे एक तयशुदा, सार्वजनिक सूत्र से एक-एक करके बनते हैं, और हर एक को दोनों गड्डियों से एक-एक पर्ची चाहिए। हर बारी में पहले वह खिलाड़ी अपनी अगली पर्ची प्रकाशित करता है जिसे फेंकना है, प्रतिद्वंद्वी अपनी पर्ची तभी छोड़ता है जब वह पहली पक्की हो चुकी हो, और पासा सबसे आख़िर में गिना जाता है, दोनों पर्चियों और बंद बीज से। हर पर्ची की मुहर उसकी गड्डी की अगली पर्ची से निकाली जाती है, इसीलिए कोई पर्ची बाद में बदली नहीं जा सकती। और चूँकि आख़िरी अनजान इनपुट हमेशा बोर्ड की दूसरी तरफ़ बैठा होता है, इसलिए कोई भी, हम भी नहीं, किसी पासे को तब तक नहीं जान सकता जब तक उसे बदल सकने वाला कोई फ़ैसला बाक़ी है।
- जाँच। खेल ख़त्म होने पर सर्वर अपना लिफ़ाफ़ा खोलता है, बीज दिखाता है, और पूरा अभिलेख प्रकाशित हो जाता है। आप बीज की हैश निकालकर मिलाते हैं कि वह उसी छाप से मेल खाती है जो शुरू में आपको दी गई थी, यही सबूत है कि उसे कभी बदला नहीं गया; फिर जाँचते हैं कि हर पर्ची उसी गड्डी की है जिसका वादा उस पक्ष ने किया था; और फिर वही सार्वजनिक सूत्र ख़ुद चलाकर हर फेंक अपने हाथ से दोबारा निकालते हैं। अगर एक भी पासा खिसकाया गया होता तो हिसाब मिलता ही नहीं, और छेड़छाड़ से मुकरना नामुमकिन हो जाता।
‘हमारे प्रमाणपत्र पर भरोसा कीजिए’ और ‘ख़ुद जाँच लीजिए’ के बीच का पूरा फ़र्क़ यही है। आपको यह मानने की ज़रूरत नहीं कि हमारे पासे ईमानदार हैं; आप उन्हें जाँच सकते हैं, एक-एक ख़त्म हुए खेल के हिसाब से, ऐसे गणित से जो कोई भी चला सकता है। निष्पक्ष खेल का पन्ना ठीक यही करने वाला औज़ार अपने साथ रखता है: उसे कोई ख़त्म हुआ खेल दीजिए और देखिए कि हर फेंक प्रकाशित अभिलेख से आपकी आँखों के सामने दोबारा निकल आती है। एक चीज़ जो कोई सार्वजनिक पन्ना नहीं कर सकता, वह है यह पुष्टि करना कि वह अभिलेख आपका ही मैच है, क्योंकि खेल से पहले जमी उन छापों की नक़ल सिर्फ़ आपके उपकरण ने रखी थी; वह आख़िरी जाँच ऐप के भीतर ही रहती है।
एक ईमानदार बात, जिसे यह सबूत भी नहीं बदलता: प्रमाणित रूप से निष्पक्ष पासे भी चिकने, शालीन, बारी-बारी आने वाले पासे नहीं होते। जाँचा जा सकने वाला बीज ठीक उसी बारंबारता से गुच्छे, लगातार लकीरें और सूखे दौर बनाता है जिसकी भविष्यवाणी संभावना करती है। जिस धारा में कोई लकीर ही न हो, संदेह उस पर होना चाहिए। असली यादृच्छिकता गुठलीदार होती है, और ठीक इसीलिए वह इतनी बार बेईमान लगती है।
निष्पक्ष पासे बेईमान क्यों लगते हैं
अब मनोविज्ञान की बारी, क्योंकि बेईमान पासों का एहसास तब भी असली होता है जब पासे नहीं होते। यह काम तीन ख़ूब दर्ज किए गए पूर्वाग्रह करते हैं:
छँटी हुई याद। आपको वह रात याद है जब आप लगातार चार बारी बार पर नाचते रहे। उससे पहले की सैकड़ों मामूली भीतर-आमदें याद नहीं। तकलीफ़ देने वाले नतीजे ज़्यादा गहरे दर्ज होते हैं, इसलिए हर मँजा हुआ खिलाड़ी अपने भीतर अन्यायों का एक निजी अजायबघर लिए घूमता है और साधारण का कोई रजिस्टर नहीं रखता।
छोटी संख्याओं का नियम। इंसान उम्मीद करता है कि नन्हे-से नमूने भी लंबी दौड़ के औसत जैसे दिखें। 36 फेंकों में हर फेंक ‘लगभग एक बार’ आनी चाहिए, पर असली 36 फेंकों के नमूने बेतहाशा असमान होते हैं, कुछ अंक ग़ायब और कुछ तीन गुना। बैकगैमौन की एक शाम एक नन्हा-सा नमूना है। उस पर प्रसरण राज करता है, और प्रसरण निजी दुश्मनी जैसा महसूस होता है।
नुक़सान की विषमता। जो 17/36 वाला शॉट आपको लग जाए वह अन्याय लगता है; जो 19/36 बार चूकता है, वह कुछ भी नहीं लगता। बैकगैमौन लगातार 30 से 70 प्रतिशत वाली घटनाएँ निपटाता रहता है, इसलिए ‘असंभव’ नतीजों की आपूर्ति कभी नहीं टूटती, और वे ठीक उसी दर से आते हैं जिस दर से संभव हैं।
इसका इलाज असली आँकड़े जानना है। कोई भी एक ख़ास अंक 36 में से 11 फेंकों पर आता है। दुगने पासे हर छठी फेंक पर आते हैं। छह पिप दूर पड़ा ब्लॉट लगभग आधी बार मारा जाता है। हमारी संभावना की बुनियादी गाइड पूरी तालिका खोलकर रख देती है, और ये आँकड़े एक बार दिमाग़ में बैठ जाएँ तो ‘बेईमानी’ के ज़्यादातर लम्हे ख़ुद को दोबारा एक आम मंगलवार के रूप में दर्ज कर लेते हैं।
फ़ायदे का सवाल
एक और ईमानदार बात: बैकगैमौन चलाने वाले को टेढ़े पासों से पाने को कुछ नहीं है और गँवाने को सब कुछ। प्रतियोगी खिलाड़ी, यानी वही लोग जो सालों टिकते हैं, ठीक वे हैं जो संभावनाएँ गिनते हैं और गड़बड़ी पकड़ लेते हैं। रेटिंग व्यवस्थाएँ साथ ही साथ सार्वजनिक जाँच-पथ भी हैं: अगर पासे व्यवस्थित रूप से किसी की तरफ़दारी करते तो रेटिंग का बँटवारा नापे जा सकने वाले ढंग से खिसकता। निष्पक्ष पासे कोई सद्गुण नहीं जो हम मंच पर दिखाते हैं; कौशल के खेल के पास टिकाऊ कारोबार का वही एक ढाँचा होता है।
ख़ुद को कैसे तसल्ली दें
किसी भी संचालक की बात यों ही न मानिए, हमारी भी नहीं। पहले संभावना गाइड से बुनियादी दरें सीखिए, फिर अपने ही खेल उन आँकड़ों को ध्यान में रखकर देखिए: दो बिंदुओं वाले बोर्ड के ख़िलाफ़ भीतर आने के मौक़े, किसी लंबी बैठक में दुगने पासों की बारंबारता, सीधे शॉटों पर मारने की दर। ईमानदार पासे तालिका की भविष्यवाणियों की तरफ़ हैरतअंगेज़ रफ़्तार से बढ़ते हैं। और अगर बनावट का ब्यौरा चाहिए, यानी प्रतिबद्धताएँ और बारी-दर-बारी का आदान-प्रदान, सर्वर की तरफ़ फिंकते पासे, हर चाल पर बोर्ड की पुष्टि, Glicko-2 से जोड़ी बनाना, तो निष्पक्ष खेल का पन्ना हमारी मेज़ की पूरी बनावट का बयान है, जाँच के औज़ार समेत। उसके बाद खेल का फ़ैसला वही चीज़ करती है जिसे करना चाहिए: जो पासे मिले, उन्हें आपने कितना अच्छा खेला। रणनीति गाइड ठीक इसी के लिए हैं।