News

منصفانہ سرور کسی پر بھروسہ نہیں کرتا، ہم پر بھی نہیں

سرور کے اختیار کا مطلب: تختہ سرور کے پاس ہے، ہر چال منبع پر جانچی جاتی ہے، اور کمٹ ریویل پانسے گھر کو بھی ایماندار رکھتے ہیں۔

engineeringfairnessmultiplayer

سرور کے اختیار کا مطلب ہے کہ بازی کی جو اکلوتی نقل شمار ہوتی ہے وہ سرور کے پاس ہے۔ آپ کا آلہ وہ چال بھیجتا ہے جو آپ کھیلنا چاہتے ہیں، سرور اسے اپنے پانسوں اور اپنے قواعد کے سامنے آزماتا ہے، اور تب جا کر تختہ بدلتا ہے۔ بدلی ہوئی ایپ کچھ بھی دعویٰ کر سکتی ہے: سچائی وہاں رہتی ہے جہاں اس کی پہنچ نہیں۔

بیک گیمن اسی سختی کا مستحق ہے۔ یہ سیڑھی اور پاٹ والا پانسوں کا کھیل ہے، یعنی دھوکہ دینے کے دو راستے ہیں: چالیں گھڑنا یا پانسے موڑنا۔ منصفانہ سرور کو دونوں دروازے بند کرنے ہوں گے۔ دوسرے دروازے میں ہم خود شامل ہیں، اور اُس تک ہم آئیں گے۔

سرور کے اختیار کا اصل مطلب کیا ہے؟

Orion کی ہر جاری بازی ایک ہی جگہ موجود ہوتی ہے: ہمارے سرور پر۔ آپ کے فون کا تختہ ایک کھڑکی ہے، بازی نہیں۔ جب آپ مہرہ کھینچتے ہیں، ایپ اسے ہلاتی نہیں۔ وہ ایک مختصر پیغام بھیجتی ہے جو کہتا ہے: میں یہ کھیلنا چاہتا ہوں۔ سرور اُس ارادے کو اپنے تختے پر، اپنے قواعد کے انجن سے، اُسی باری کے لیے پھینکے اپنے پانسوں کے ساتھ دہراتا ہے۔ جائز چالیں بازی آگے بڑھاتی ہیں، اور دونوں کھلاڑیوں کو وہی نئی پوزیشن ملتی ہے۔ ناجائز چالیں کبھی ہوئی ہی نہیں۔

یہ سب کے لیے ایک ہی سرور ہے۔ iOS ایپ خالص SwiftUI ہے، Android ایپ خالص Jetpack Compose ہے، اور دونوں اُسی بیک اینڈ اور اُسی کھلاڑی برادری کی کھڑکیاں ہیں۔ شیشہ مختلف، سچائی وہی۔

کلائنٹ پر بھروسہ کرنے والے کھیلوں میں دھوکہ کیوں ہوتا ہے؟

کیونکہ آپ کے حریف کا آلہ آپ کے حریف کا ہے۔ اس پر جو کچھ چلتا ہے، بدلا جا سکتا ہے۔ پیوند لگا کلائنٹ ایسی چالیں بھیج سکتا ہے جو کبھی جائز تھیں ہی نہیں۔ میموری ایڈیٹر موقع پر کوئی عدد دوبارہ لکھ سکتا ہے، اور سکرین اُس جھوٹ کو وفاداری سے دکھا دے گی۔ ان میں سے کچھ بھی عجیب نہیں۔ اوزار مفت ہیں، دستاویزی ہیں اور سمارٹ فون سے پرانے ہیں۔

کلائنٹ پر بھروسہ کرنے والا کھیل ہر کھلاڑی سے یہ وعدہ مانگتا ہے کہ وہ بونٹ کے نیچے نہیں جھانکے گا۔ کچھ جھانکتے ہیں۔ اس لیے ہم نے کلائنٹ کی رائے کو بےمعنی بنا دیا۔ Orion میں ایپ کے پاس ٹھیک تین کام ہیں:

  • بنانا: تختہ، مہرے، کیوب، گھڑی۔
  • مانگنا: سرور سے چال کھیلنے کو کہنا، ڈبل پیش کرنا، ہار ماننا۔
  • پانا: وہ پوزیشن دکھانا جسے سرور اصلی کہتا ہے۔

پانسے پھینکنا، جواز طے کرنا اور ایک سکہ بھی ہلانا اُس فہرست میں نہیں۔ نتیجہ طے کرنے والی کوئی چیز کسی آلے پر جنم نہیں لیتی۔

جب میں چال چلتا ہوں تو کیا ہوتا ہے؟

آپ چلتے ہیں۔. آپ کی ایپ ارادہ بھیجتی ہے: یہ مہرہ، یہ پوائنٹ۔ آپ کے آلے پر کچھ بھی اصلی تختہ نہیں بدلتا۔

سرور اسے دہراتا ہے۔. ہمارا قواعد کا انجن اُس چال کو سرور کے تختے اور سرور کے پانسوں کے سامنے چلاتا ہے۔ جائز ہو تو بازی آگے بڑھتی ہے۔ نہ ہو تو وہ منبع پر ہی رد ہو جاتی ہے، چاہے اسے کسی بھی ایپ نے بھیجا ہو۔

دونوں فریقوں کو وہی سچ ملتا ہے۔. نئی پوزیشن دونوں کھلاڑیوں تک جاتی ہے۔ اگر آپ کا رابطہ ٹوٹے، تو باری کی گھڑی کی دوبارہ جڑنے کی مہلت آپ کی جگہ بچائے رکھتی ہے، اور آپ تختے پر ویسے لوٹتے ہیں جیسا وہ واقعی ہے، ویسا نہیں جیسا آپ کے فون کو آخری بار یاد تھا۔

داؤ پر لگی رقم بھی یہی قاعدہ مانتی ہے۔ جب داخلہ فیس والی بازی شروع ہوتی ہے، سرور دونوں کی فیس اپنے پاس امانت رکھتا ہے۔ پاٹ ایک ہی کھاتے میں رہتا ہے، سرور پر، اور بازی ختم ہونے پر وہیں چکتا ہوتا ہے۔ کسی کلائنٹ سے کبھی نہیں پوچھا جاتا کہ اُسے لگتا ہے اُس نے کتنا جیتا۔ سکے اور جواہر مجازی ہیں، حقیقی دنیا میں ان کی کوئی قدر نہیں اور انہیں بھنایا نہیں جا سکتا، پھر بھی ہم وہ کھاتہ ایسے رکھتے ہیں جیسے اس میں کچھ قیمتی ہو، کیونکہ ہے: تختے کی پوزیشن پر آپ کا بھروسہ۔

خود سرور کو دھوکہ دینے سے کیا روکتا ہے؟

یہی صحیح سوال ہے، اور زیادہ تر کھیل امید کرتے ہیں کہ آپ اسے کبھی نہ پوچھیں۔ جو سرور خفیہ طور پر پانسے پھینکتا ہے، وہ جس کی طرفداری کر رہا ہو اُس کے لیے مہربان پانسے پھینک سکتا ہے، اور آپ کو کبھی پتہ نہیں چلے گا۔ ہر چال قابلِ یقین لگتی ہے۔ پانسے ایسے ہی ہوتے ہیں۔

اس لیے ہم نے وہ طاقت خود سے چھین لی۔ بازی شروع ہونے سے پہلے سرور ایک خفیہ بیج بناتا ہے اور اس کا SHA-256 عہد شائع کرتا ہے۔ پھر ہر چال اُسی بیج سے HMAC-SHA256 کے ذریعے نکالی جاتی ہے، ایک ایک کر کے، ترتیب سے۔ بازی ختم ہونے پر سرور بیج ظاہر کر دیتا ہے۔ کوئی بھی جانچ سکتا ہے کہ بیج پہلی چال سے پہلے دیے گئے عہد سے میل کھاتا ہے اور بازی کی ہر چال اُسی سے نکلتی ہے۔ خفیہ نگاری کے معنوں میں آپ کے پانسے تب طے ہو چکے تھے جب دونوں کھلاڑیوں میں سے کسی نے مہرہ چھوا بھی نہیں تھا۔ ہم بارہویں چال کو اُس وعدے کو توڑے بغیر نہیں موڑ سکتے تھے جو ہم نے صفر ویں چال پر شائع کیا تھا۔

ان میں سے کسی بات کے لیے آپ کو ہماری بات ماننے کی ضرورت نہیں۔ orion.arthea.ai/verify کی تصدیق پوری کڑی آپ کے براؤزر میں، Web Crypto سے، آپ کی مشین پر، بازی کے عوامی ریکارڈ سے دوبارہ گنتی ہے۔ کوئی اکاؤنٹ نہیں، کوئی تنصیب نہیں۔ orion.arthea.ai/go کا دروازہ App Store اور Google Play کے لنک لیے ہوئے ہے اور ہمیشہ دکھاتا ہے کہ اِس وقت کیا دستیاب ہے۔