मैं सुरक्षित गेमिंग के लिए P2P आर्किटेक्चर पर काम कर रहा हूं और मैंने इस समस्या को पांच उप-समस्याओं में विभाजित किया है:
- भेजे गए खेल राज्य का गैरकानूनी संशोधन
- सटीक रूप से ड्रॉप थिएटर
- एक खेल राज्य पर सहमत होना
- "आगे देखो" धोखा से बचना
- विरोधियों से संवेदनशील जानकारी छिपाना
पहले चार मैं बहुत ज्यादा हल है, लेकिन यह आखिरी है जिसके साथ मैं परेशान हूं।
इससे पहले कि मैं विवरण में जाऊं, मैं पूछना चाहता हूं कि क्या कोई चीज है जो मैंने "धोखा सबूत" पी 2 पी नेटवर्क बनाने की अपनी सूची में याद की है। मुझे धोखा देने में कोई दिलचस्पी नहीं है जैसे कि aimbots का उपयोग करना, मैं केवल p2p नेटवर्क को एक केंद्रीकृत सर्वर के रूप में सुरक्षित बनाने में दिलचस्पी रखता हूं।
इसलिए मेरे प्रयास में अब तक संवेदनशील जानकारी छुपाने के लिए मैंने एक ऐसे खेल में खिलाड़ियों की स्थिति पर ध्यान केंद्रित किया है जहाँ आपके प्रतिद्वंद्वी की स्थिति को हमेशा नहीं जाना चाहिए। तब समस्या यह हो जाती है कि कैसे निर्धारित किया जाए कि आपको अपने प्रतिद्वंद्वी की स्थिति को जाने बिना आपको अपने प्रतिद्वंद्वी को स्थिति भेजनी चाहिए।
मैंने ऐसे तरीकों को खारिज कर दिया है, जैसे विरोधी आपकी तुलना करने के लिए कई झूठे पदों को भेज रहा है, क्योंकि आपका प्रतिद्वंद्वी आसानी से इस तरह की व्यवस्था का दुरुपयोग कर सकता है क्योंकि वह आपकी स्थिति को प्राप्त कर लेगा यदि कोई गलत स्थिति आपके स्थान से "दृश्यमान" हुई।
जिस विधि पर मैं ध्यान केंद्रित कर रहा हूं, उसमें आपको अपने प्रतिद्वंद्वी से "दृश्य क्षेत्र" प्राप्त होता है और यह निर्धारित कर सकता है कि आपको अपनी स्थिति भेजनी चाहिए या नहीं। यह हालांकि लीग ऑफ लीजेंड्स जैसे खेलों में एक समस्या है जहां आपके प्रतिद्वंद्वी का दृश्य क्षेत्र भी अत्यधिक संवेदनशील जानकारी है। मैंने एक विलक्षण मैट्रिक्स का उपयोग करके विज़ुअल फ़ील्ड को परिवर्तित करके इसे हल करने का प्रयास किया है जिसका अर्थ है कि आप विज़ुअल फ़ील्ड के परिवर्तित संस्करण से मूल संस्करण पर वापस नहीं जा सकते हैं, लेकिन चूंकि यह एक रैखिक परिवर्तन है, तब भी आप यह पता लगा सकते हैं कि आपकी स्थिति अंदर है या नहीं दृश्य क्षेत्र या नहीं।
हालांकि यह पूरी तरह से काम नहीं करता है, परिवर्तन के बाद सटीक दृश्य क्षेत्र को बहाल नहीं किया जा सकता है, लेकिन दृश्य क्षेत्र में "ढलान" के बारे में जानकारी (दृश्य क्षेत्र कई लाइनों द्वारा निर्मित है, और प्रत्येक पंक्ति का ढलान निर्धारित किया जा सकता है) बहाल किया गया और इसका उपयोग मूल दृश्य क्षेत्र को अपेक्षाकृत सस्ते में पुनर्निर्माण के लिए किया जा सकता है।
संक्षेप में, मुझे जो चाहिए वह एक फ़ंक्शन है जो यह निर्धारित कर सकता है कि कोई पद "दृश्यमान" है या नहीं, और इस फ़ंक्शन / विज़ुअल फ़ील्ड को फिर से संगठित करना इतनी कम्प्यूटेशनल रूप से मांग करना है कि एक बार जब आप विज़ुअल फ़ील्ड का पुनर्निर्माण कर रहे हों तो यह अब प्रासंगिक नहीं है कार्रवाई में खेल। क्या कोई सुपर स्मार्ट व्यक्ति है जो इस तरह की विधि के बारे में जानता है?
संपूर्ण "विज़न फ़ील्ड" के बारे में लोगों को सीम की तरह संपादित करें ताकि मैं यहाँ अधिक विस्तृत विवरण देना चाहूँ। दृष्टि क्षेत्र में लाइनों के एक समूह के समूह होते हैं, आप आसानी से देख सकते हैं कि क्या कोई स्थिति इन समूहों में से किसी एक के अंदर है बस जाँच करके कि आपकी स्थिति रेखा के किस तरफ है, यदि यह उस समूह की सभी पंक्तियों के लिए एक ही तरफ है, जिसे आप जानते हैं यह उस समूह के अंदर है और इस प्रकार दृष्टि क्षेत्र के अंदर है।
हालाँकि भेजी जा रही जानकारी यह रेखा नहीं है, लेकिन लाइन का रूपांतरण और परिवर्तन (2 बाय 2 एक मैट्रिक्स), आप अभी भी जाँच कर सकते हैं कि आपके द्वारा प्राप्त किए गए परिवर्तन का उपयोग करते हुए आपकी स्थिति किस लाइन पर पहली बार बदल रही है। और उस मान को रूपांतरित रेखा से तुलना करना। यहां कुंजी यह है कि परिवर्तन एकवचन है, जिसका अर्थ है कि मूल रेखा पर वापस जाने के लिए एक व्युत्क्रम खोजना असंभव है। हालाँकि, यह उस रेखा के ढलान को निर्धारित करना संभव है जो लाइन को फिर से जाँच कर बनाता है, जिस पर परिवर्तित लाइन के किस तरफ बहुत सारे पॉइंट झूठ होते हैं, जब तक आपने लाइन की उत्पत्ति को बहुत कम कम्प्यूटेशनल रूप से सस्ता कर दिया हो अगर आपको पता नहीं है रेखा का ढलान।
मैं जिस चीज की तलाश कर रहा हूं, वह यह निर्धारित करने के लिए एक विधि है कि अगर कोई बिंदु किसी क्षेत्र के अंदर है, जहां विधि से क्षेत्र का पुनर्निर्माण या तो असंभव है (जो मुझे संदेह है क्योंकि आप हमेशा इसे बाध्य कर सकते हैं) या बहुत कम्प्यूटेशनल रूप से भारी है।