News

لماذا لا يثق خادم لعب عادل بأحد، بمن فيهم نحن

ما معنى أن يكون الخادم صاحب السلطة: الخادم يحتفظ بالرقعة، ويتحقق من كل حركة عند مصدرها، ونرد الالتزام والكشف يبقي البيت نفسه نزيها.

fair playengineeringprovably fair

أن يكون الخادم صاحب السلطة يعني أنه يحتفظ بالنسخة الوحيدة من المباراة التي يُعتد بها. جهازك يرسل الحركة التي تريد لعبها، والخادم يفحصها بنرده هو وقواعده هو، وعندها فقط تتغير الرقعة. التطبيق المعدَّل يستطيع ادعاء ما يشاء: الحقيقة تعيش في مكان لا يبلغه.

الطاولة تستحق هذا الانضباط. إنها لعبة نرد لها سلم وقِدر، ما يعني أن هناك طريقتين للغش: تزييف حركاتك، أو ثني الرميات. والخادم العادل عليه إغلاق البابين معا. والباب الثاني يشملنا نحن، وسنصل إليه.

ما معنى أن يكون الخادم صاحب السلطة، عمليا؟

كل مباراة أوريون حية توجد في مكان واحد بالضبط: على خادمنا. الرقعة على هاتفك نافذة، لا اللعبة. حين تسحب قطعة، لا يحركها التطبيق. يرسل رسالة صغيرة تقول: هذا ما أريد لعبه. يعيد الخادم تشغيل هذه النية على رقعته هو، بمحرك قواعده هو، بالنرد الذي رماه لذلك الدور. الحركات القانونية تدفع المباراة إلى الأمام، ويستلم اللاعبان الوضع الجديد نفسه. أما الحركات غير القانونية فلم تحدث أصلا.

هذا خادم واحد للجميع. تطبيق iOS مبني بـ SwiftUI أصلي، وتطبيق Android بـ Jetpack Compose أصلي، وكلاهما نافذتان على الواجهة الخلفية نفسها وعلى تجمع اللاعبين نفسه. زجاج مختلف، وحقيقة واحدة.

لماذا تتعرض الألعاب التي تثق بالعميل للغش؟

لأن جهاز خصمك ملك لخصمك. كل ما يعمل عليه يمكن تغييره. عميل معدَّل يستطيع إرسال حركات لم تكن قانونية قط. ومحرر ذاكرة يستطيع إعادة كتابة رقم في مكانه، وستعرض الشاشة الكذبة بأمانة. لا شيء من هذا غريب. الأدوات مجانية وموثقة وأقدم من الهواتف الذكية.

اللعبة التي تثق بالعميل تطلب من كل لاعب أن يَعِد بألا ينظر تحت الغطاء. وبعضهم سينظر. لذلك جعلنا رأي العميل بلا أهمية. في أوريون للتطبيق ثلاث وظائف بالضبط:

  • الرسم: الرقعة والقطع ومكعب المضاعفة والمؤقت.
  • الطلب: أن يطلب من الخادم لعب حركة، أو عرض مضاعفة، أو الانسحاب.
  • الاستلام: عرض الوضع الذي يقول الخادم إنه الحقيقي.

رمي النرد، والحكم على قانونية الحركة، وتحريك قطعة واحدة ليست على تلك القائمة. لا شيء مما يحسم نتيجة ينشأ على جهاز.

ماذا يحدث حين ألعب حركة؟

أنت تلعب.. يرسل تطبيقك النية: هذه القطعة، وهذه النقاط. لا شيء على جهازك يغيّر الرقعة الحقيقية.

الخادم يعيد تشغيلها.. يشغّل محرك قواعدنا الحركة على رقعة الخادم ونرد الخادم. فإن كانت قانونية تقدمت المباراة. وإن لم تكن، رُفضت عند المصدر، أيا كان التطبيق الذي أرسلها.

الطرفان يستلمان الحقيقة نفسها.. يذهب الوضع الجديد إلى اللاعبين معا. وإن انقطع اتصالك، حفظت مهلة إعادة الاتصال في مؤقت الدور مقعدك، وعدت إلى الرقعة كما هي فعلا، لا كما تذكرها هاتفك آخر مرة.

والرهانات تتبع القاعدة نفسها. حين تبدأ مباراة برسم دخول، يحجز الخادم الرهانين الأوليين. ويعيش القِدر في دفتر واحد، على الخادم، ويُسوَّى هناك حين تنتهي المباراة. ولا يُسأل عميل قط عما يظن أنه ربحه. العملات والجواهر افتراضية، بلا قيمة حقيقية وبلا صرف نقدي، ومع ذلك نمسك ذلك الدفتر وكأنه يحمل شيئا ثمينا، لأنه كذلك: ثقتك بالنتيجة.

ما الذي يمنع الخادم نفسه من الغش؟

هذا هو السؤال الصحيح، ومعظم الألعاب تأمل ألا تطرحه أبدا. فخادم يرمي النرد سرا يستطيع أن يرميه بلطف لمن يحابيه، ولن ترى ذلك أبدا. كل رمية تبدو معقولة. هذا ما يفعله النرد.

لذلك انتزعنا تلك القدرة من أنفسنا. قبل أن تبدأ المباراة، يولّد الخادم بذرة سرية وينشر التزام SHA-256 عليها. ثم تُشتق كل رمية من تلك البذرة بـ HMAC-SHA256، رمية بعد رمية، بالترتيب. وعند انتهاء المباراة يكشف الخادم البذرة. ويستطيع أي شخص التحقق من أن البذرة تطابق الالتزام الذي قُطع قبل أول رمية، ومن أن كل رمية في المباراة تنبع منها. وبالمعنى التشفيري، كان نردك محددا قبل أن يلمس أي لاعب قطعة. ولم يكن بوسعنا ثني الرمية الثانية عشرة دون كسر الوعد الذي نشرناه عند الرمية صفر.

ولستَ مضطرا لتصديق كلامنا في أي من هذا. أداة التحقق على orion.arthea.ai/verify تعيد حساب السلسلة كاملة في متصفحك، عبر Web Crypto، على جهازك، انطلاقا من السجل العلني للمباراة. لا حساب مطلوب. ولا تطبيق مطلوب.

كيف يتعشق النصفان معا؟

سلطة الخادم ونرد الالتزام والكشف نصفان من تصميم واحد، وكل منهما يغطي النقطة العمياء للآخر. فخادم يتحقق من الحركات لكنه يرمي سرا يطلب منك الوثوق بالبيت. ونرد ملتزم به على خادم واثق يطلب منك الوثوق بتطبيق كل غريب. وهما معا يغلقان الدائرة. العميل لا يستطيع تزييف حركة، لأن الخادم يعيد تشغيل كل حركة عند مصدرها. والخادم لا يستطيع التلاعب برمية، لأن كل رمية مقيدة بالتزام نُشر قبل المباراة. لا أحد على الطاولة، بمن فيهم من بنوها، يملك سلطة غير مفحوصة على النتيجة.

العميل لا يستطيع تزييف حركة. الخادم لا يستطيع تزييف رمية. وكل ما عدا ذلك زينة.

باب orion.arthea.ai/go يحمل رابطي App Store وGoogle Play، ويُظهر دائما ما هو متاح الآن. وقد جاءت أداة التحقق أولا، عن عمد: ينبغي أن يوجد برهان العدل قبل أن يُلعب أول قِدر حقيقي.

مقالات بالعربية