النرد
الألعاب الخمس هنا كلّها معلّقة على النردين ذاتهما. تبيّن هذه الصفحة من أين تأتي أرقامهما، ولماذا لا يستطيع أحد اختيارها — ونحن أقلّ الناس قدرةً على ذلك — وكيف تتحقّق من ذلك بنفسك.
لماذا وُجِدت هذه الصفحة
31–45 % من مجموع الشكاوى في مراجعات تطبيقات الطاولة الكبرى تدور حول النرد — أكثر من أيّ موضوع آخر.
ليس هذا الشكّ رأيًا هامشيًا. إنه مكتوب في المراجعات بكل لغة يتحدّث بها هذا الموقع: النرد مزوَّر، والخصم يحصل تمامًا على الرمية التي يحتاجها، وبعد الشراء تخسر المباراة التالية. كل من لعب عبر الإنترنت خطرت له هذه الجملة — وفي الغالب لم يوجد من يأخذها على محمل الجدّ.
الجواب المعتاد شهادةٌ: جهةُ تدقيقٍ تؤكّد أن مولّد الأرقام العشوائية سليم. ومعنى ذلك «صدِّق المدقّق» — عند النقطة نفسها التي لا تريد فيها تصديق أحد. لذلك لا خَتْمَ هنا، بل حسابٌ تستطيع إعادته بنفسك، عن كل شوط منتهٍ على حدة.
لماذا لا تُختار أي رمية بعد وقوعها
كل شوط يثبّت رمياته قبل أن تقع. ينشر الخادم في البداية بصمة تحقّق، ولا ينشر إلا في النهاية العدد الذي حُسبت منه كل الرميات — فإن لم يطابق أحدهما الآخر كان ذلك قابلًا للإثبات.
-
قبل الشوط: الظرف المختوم
يسحب الخادم قيمةً ابتدائية من 32 بايتًا عشوائيًا وينشر بصمتها فقط — وهي مجموع تحقّق لا يمكن استرجاع القيمة منه. ومن تلك اللحظة تصير القيمة مثبَّتة، ولا يستطيع أحد تبديلها دون أن تختلّ البصمة.
-
يضيف اللاعبان كلاهما شيئًا من عندهما
يُسهم كلٌّ منكما بمعرِّفٍ خاصّ به، وهو يدخل في كل رمية. هذه هي الخطوة التي تُسقطها الوعود المكتفية بمجموع التحقّق — ومن دونها يصير كل ما عداها تمثيلًا: فخادمٌ يختار قيمكما أيضًا يستطيع أن يجرّب قيمًا ابتدائية حتى تعجبه الرميات، ثم ينشر البصمة عندئذٍ فقط.
-
مِرساة من الخارج
ويُضاف إلى ذلك رقمٌ من drand، وهو منارة عشوائية عامّة يُنتجها عدّة مشغّلين مستقلّين معًا. والجولة المسمّاة هي جولةٌ لم تكن قد وُجدت بعدُ لحظةَ الختم. وبذلك تُسدّ الثغرة الأخيرة: فحتى لو تواطأ الخادم واللاعبان معًا، لما استطاعوا اختيار الرميات سلفًا.
-
يجري الشوط
تُحسب كل رمية من هذه الأجزاء بحسب رقمها التسلسلي. ولا يُقرَّر شيء في اللحظة التي تضغط فيها على الكأس — فقد كان مثبَّتًا قبل أن يبدأ الشوط.
-
بعد المباراة: يُفتح الظرف
ينشر الخادم القيمة الابتدائية. والآن يمكن التحقّق من الأمرين معًا: هل تطابق البصمةَ السابقة، وهل تُنتج بالضبط الرميات التي وقعت؟ فإن اختلّ أحدهما فذلك لم يعد شكًّا بل دليلًا — دليلًا يستطيع كل امرئٍ أن يقيمه دون أن يسألنا.
1 البصمة 2·3 مرتبط بـ 5 البذرة
الحساب مبسوطًا للعيان
ها هو كاملًا. لا جزء ثانيَ خفيّ — فما هنا هو كل ما تحتاجه الرمية.
كل رمية هي HMAC-SHA256(البذرة، الربط ‖ الرقم). البايتات من 252 فما فوق تُهمَل حتى تبقى الأوجه الستة متساوية الاحتمال؛ والباقي هو باقي القسمة على ستة، زائد واحد.
القيمة الابتدائية هي المفتاح، والارتباط هو الرسالة: رقم المباراة، ورقم الشوط، ومعرِّفا اللاعبَين، والمِرساة — وأمام كل جزءٍ طولُه. والأطوال ليست زخرفة: فبدونها يعطي المعرِّفان «ab» و«c» الرسالةَ نفسها التي يعطيها «a» و«bc»، فيستطيع لاعبٌ أن يُسقِط زوجَين مختلفَين على مجرى النرد نفسه.
لماذا تُطرَح أربع قيم من أصل 256
العدد 256 لا يقبل القسمة على ستة. ومن يكتفِ بأخذ الباقي تظهر له الوجوه من 1 إلى 4 في 43 حالة من 256، بينما لا يظهر الـ5 والـ6 إلا في 42 — فائضٌ نحو اثنين ونصف في المئة، يسهل إثباته على مئة ألف رمية. وهذا بالضبط هو الفضيحة التي تريد هذه الصفحة منعها. لذلك تُطرَح قيم البايت الأربع العليا ويُسحب من جديد، فتبقى الوجوه الستة متساوية الاحتمال.
تُستعمَل موزَّعةً بالتساوي على ستة وجوه تُطرَح ويُسحَب بايت آخر
ثلاث طرق للتحقّق بنفسك
كلّ ما يلزم للتحقّق منشورٌ للعموم — ولا يمرّ أيٌّ من الطرق الثلاث بنا.
-
أُعيد الحساب في متصفحك
لكل مباراة منتهية صفحةٌ خاصة بها تحت «تحقَّق من النرد»: البصمة والارتباط والقيمة الابتدائية وكل الرميات. وجهازك يعيد الحساب هناك بدالّة التعمية في متصفّحك أنت — فيأتي الحكم من جهازك لا من جهازنا.
-
nard.gg — تحقّق من النرد
يعيد هذا الملف حساب نرد مباراة من القيم المنشورة. لا يحوي منّا سوى الحساب نفسه — لا تحميل، ولا اتصال، ولا إحصاء.
نزِّل برنامج التحقق — ملف واحد، بلا شبكة، وبلا شيء منّا. احفظه وشغّله على أي سجل منشور متى شئت.
-
يدويًا أو بأداةٍ من عندك
الصيغة أعلاه هي المواصفة كاملة، و HMAC-SHA256 موجودة في كل لغة برمجة. ومن شاء كتب المدقّق بنفسه في عشرين سطرًا، ولا يحتاج منّا إلا الأرقام المنشورة. ولهذا بالضبط هي موجودة.
ما لا نَعِد به
منذ لحظة الختم يعرف الخادم رميات الشوط الجاري سلفًا. ولا سبيل إلى إزالة ذلك إلا بأن يلتزم الطرفان قبل كل رميةٍ على حدة ثم يكشفا بعدها — وذلك يكلّف جولةَ إرسالٍ في كل دور ويغري بالامتناع عن الكشف. نحن لا نفعل ذلك، ونكتبه هنا بدل أن نسكت عنه.
في المقابل يصحّ هذا: تُسحب لكل مباراة قيمةٌ ابتدائية خاصة بها مستقلّة عن سواها — ولا يُستدلّ من واحدةٍ على التالية. والدليل مبسوط لكل مباراة منتهية، لا عند الطلب بل من تلقاء نفسه.
الرميات الستّ والثلاثون
ولماذا يبقى الشعور رغم ذلك بأن النرد ضدّك؟ لأن العشوائية تبدو متكتّلة في الكميّات الصغيرة. النردان يقعان بستٍّ وثلاثين طريقة، ومن يحتاج واحدةً بعينها كثيرًا ما ينتظرها طويلًا. واللوحتان هنا تُظهران ذلك: الأولى كم رميةً تبلغ مسافةً بعينها أصلًا، والثانية كم تبدو العشوائية الحقيقية غير متساوية في الأعداد الصغيرة.
يقع حجرا النرد بستّ وثلاثين صورة متساوية الاحتمال. اختر مسافة، فيُظهر الجدول أي الرميات تنقل حجرًا هذه المسافة — على طريق خالٍ، بلا نقاط مغلقة في الوسط.
لم تُختَر مسافة — يعرض الجدول الرميات الستّ والثلاثين كلّها.
21 رمية مختلفة، منها 6 دبل. والعدّ يبقى من ستّ وثلاثين: كل دبل يقع مرّة واحدة، وكل رمية أخرى مرّتين.
ارمِ بنفسك
هذا الجدول يرمي داخل متصفّحك، بعشوائيته هو. بعد ستّ وثلاثين رمية يبقى نصف المربّعات فارغًا — وهذا ليس خللًا، بل هكذا تبدو العشوائية.
مجموع الرميات 0
الدبل
إذا أظهر الحجران العدد نفسه لُعِب أربع مرّات بدل مرّتين. يقع الدبل في ستّ رميات من ستّ وثلاثين — أي في نقلة من كل ستّ.
لذلك يبلغ الدبل أبعد من أي رمية أخرى: 6–6 ينقل أربعًا وعشرين نقطة.
الرمية الأولى
في البداية يرمي كل لاعب حجرًا واحدًا؛ يبدأ صاحب العدد الأكبر ويلعب هذين العددين بالضبط. وعند التساوي تُعاد الرمية. لذلك لا تكون النقلة الأولى في الشوط دبلًا أبدًا — تبقى 30 رمية من الستّ والثلاثين.