ما هو عادل بشكل يمكن إثباته وكيفية اختبار نزاهة اللعبة
ما هو عادل بشكل يمكن إثباته (PF)
Profable Fair هو بروتوكول يسمح لك بالتحقق بشكل مشفر من أن النتيجة المستديرة كانت عشوائية ولا يمكن استبدالها بالمشغل بعد الرهان.
الفكرة: أولاً يتم نشر التزام (تجزئة بذرة الخادم المخفية)، ثم بعد الكشف عن الرهان، يتم الكشف عن الشر (بذرة الخادم نفسها)، ويمكن لأي شخص التحقق من التجزئة وإعادة إنتاج RNG، نظرًا لبذرة عميل اللاعب و معرفات دائرية.
بروتوكول القاعدة: ارتكب → الرهان → كشف
1. ارتكب: قبل بدء الجولات، يقوم الخادم بإنشاء «خادم _ بذرة» عشوائي وينشر التجزئة:
الالتزام = SHA-256 (server_seed الملح )/أو Keccak-256
يمكن عرض الالتزام في التاريخ/blockchain/journal.
2. الرهان: يختار اللاعب أو يؤكد «عميله _ بذرة» (من واجهة المستخدم أو الخاصة)، ويرسل رهانًا مع:
client_seed, roundId, nonce
3. كشف: بعد إغلاق الرهانات، يكشف الخادم عن «الخادم _ البذور» (و «الملح» إذا كان هناك) حتى يتمكن الجميع من التحقق:
SHA-256 (server_seed الملح) = = الالتزام//فحص النزاهة
4. RNG: رقم العشوائية قطعي وقابل للتكرار:
rng = HMAC-SHA256 (المفتاح = الخادم _ البذور، msg = العميل _ البذور RoundId nonce)
//أو rng = SHA-256 (server_seed client_seed RoundId nonce)
5. رسم خرائط للنتيجة: تحويل 'rng' إلى نطاق اللعبة دون إزاحة (انظر أدناه).
كيفية الحصول على رقم خالٍ من التحيز
من الخطأ أخذ «rng٪ N» - هذا يعطي تعويضًا معياريًا إذا لم يكن 2 ^ k مضاعفًا لـ N. هذا صحيح - أخذ عينات الرفض:زائفة
// rng_bytes = 32 بايت هاش → uint256 x = uint256 (rng_bytes)
الحد = الطابق (2 ^ 256/N) N بينما X> = الحد:
rng_bytes = SHA-256 (rng_bytes )/» مزيج« مرة أخرى بشكل حاسم x = uint256 (rng_bytes)
النتيجة = x% N
لذلك نحصل على توزيع موحد على نتائج N (خلايا الروليت ورموز الأسطوانة وما إلى ذلك).
مثال مصغر (التحقق من خطوة اللاعب)
لنفترض:
server_seed = "b2c6... e9 "//كشف بعد جولة (hex/utf8)
client_seed = «my-client-seed «//اخترت roundId = »R-2025-10-17-001«
nonce = 42 commission = "c9a1... f3 "//publ. مقدما
1) تحقق من الالتزام
عد «SHA-256 (server_seed)» وتأكد من تطابقها مع «الالتزام».
2) RNG الحتمية
العد:
rng = HMAC-SHA256 (key = server _ seed, msg = client_seed ":" RoundId ":" nonce)
3) التحويل إلى نتيجة
بالنسبة للروليت (37 رقمًا) → N = 37، طبق عينات الرفض وخذ 'x٪ 37'.
للحصول على فتحة، استخدم قطع RNG متعددة لتحديد البكرات/الرموز وفقًا لجدول التخصيص.
4) تحقق من النتيجة في التاريخ
يجب أن يعرض الموقع نفس المدخلات التي تم استخدامها في الحساب: «الخادم _ البذور»، «العميل _ البذور»، «المعرف المستدير»، «nonce»، «hashAlgo»، «rngAlgo»، «mappingVersion».
البديل/الربح: VRF (وظيفة عشوائية قابلة للتحقق)
بدلاً من الالتزام، يمكن للمشغل (أو اختياريًا) استخدام VRF:1. يسأل العقد الذكي أو السجل العام المزود عن «VRF (البذور)».
2. نشرته «(عشوائي، دليل)».
3. يمكن لأي شخص التحقق من «الدليل» بواسطة نفس زوج مفاتيح VRF العام.
4. بعد ذلك، يخطو نفس رسم خرائط RNG في النتيجة.
الإيجابيات: ثقة أقل في المشغل. العيوب: الاعتماد على مزود/سلسلة VRF والتكلفة المحتملة.
كيف يجب على الكازينو تنفيذ PF بشكل صحيح
عقد (عقد بيانات PF)
الهوامش في التاريخ المستدير:- «serverSeedHash» و «ServerSeedReveal» و «clientSeed» و «roundId' و» nonce «و» hashAlgo «و» rngAlgo «و» mappingVer «و» profrofUrl' (опц). ، «calcVer».
- القيم - في تخزين WORM (ثابت)، مع طوابع زمنية (UTC).
جيل البذور
«server _ seed» يتم إنشاؤه بواسطة التشفير PRNG (OS CSPRNG/HSM).
يجب ألا تتكرر Sids أبدًا بين السلسلة (التناوب).
«lient _ seed» - تم اختياره من قبل اللاعب أو تم إنشاؤه على العميل وتم تأكيده.
التزامات النشر
الالتزامات متاحة قبل الرهانات (التاريخ، RSS، على السلسلة).
بالنسبة للكثير، يمكنك استخدام شجرة ميركلي الملتزمة مع نشر الجذر يوميًا.
كشف
قبل نشر النتيجة، يتم توسيع وتسجيل «الخادم _ البذور».
لسلسلة من الجولات على مقعد واحد - الكشف بعد نهاية السلسلة (ذكر السياسة مسبقًا).
رسم خرائط شفافة
تم إصلاح إصدار خوارزمية رسم الخرائط («mappingVer»).
أي تغيير («mappingVer »/« rngAlgo») - فقط بإعلان وسلسلة جديدة من الالتزامات.
مراجعة الحسابات والمنازعات
المدخلات الخام + سجل الحساب المحفوظ ؛ عند الجدال، يتم إصدار تقرير: مدخلات → الغاز الطبيعي المسكن → رسم خرائط → النتائج.
البث/البث المباشر: متجر مذيعات التجزئة للحدث CV/RFID، فيديو في WORM.
كيف يمكن للاعب التحقق من الصدق (قائمة مرجعية)
1. افتح تاريخ الجولة ونسخ: "ServerSeedReveal" و "clientSeed" و "roundId' و" nonce "و" hashAlgo "و" rngAlgo "و" mappingVer ".
2. عد التجزئة «serverSeedReveal» وقارن بـ «ServerSeedHash».
3. احسب RNG وفقًا للخوارزمية المحددة (HMAC/Hash + المدخلات).
4. تطبيق رسم الخرائط «غير المتحيز» (أخذ عينات الرفض) على عدد النتائج.
5. تأكد من أن النتيجة هي نفسها كما هو موضح.
6. إذا تم الإعلان عن VRF، تحقق من «الإثبات» (زر «التحقق» أو مستكشف النص/الكتلة المستقل).
الأخطاء النموذجية (الأنماط المضادة)
'rng% N دون أخذ عينات الرفض → الاحتمالات المتحيزة.
مخفي أو متغير «العميل _ البذور» (يتم إنشاؤه بواسطة الخادم دون مشاركة اللاعب).
إعادة توليد «server _ seed» بعد الرهان (يتغير الالتزام بأثر رجعي).
تتغير الخوارزمية غير الشفافة بدون إصدار/نشر.
إعادة الجوانب بين السلسلة.
عدم وجود طوابع دودية/زمنية - لا يمكن إثبات ترتيب الأحداث.
خلط PF ومنطق العمل (على سبيل المثال، يتم تطبيق المكافأة بطريقة تغير مساحة النتيجة، ولكن لم يتم وصف ذلك في «mappingVer»).
الأسئلة الشائعة (قصيرة)
هل من الممكن التحقق من الفتحات وليس الروليت فقط ؟
نعم فعلت. يتم تطبيق PF على تسلسل الاختيار (على سبيل المثال، فهرس الرمز على البكرة). من المهم توثيق جداول احتمالية RNG وترتيب القراءة.
وإذا دخلت «عميلي _ البذور»، فلا يزال بإمكان المشغل «التقاط» «الخادم _ البذور» ؟
ليس إذا تم نشر الالتزام قبل العرض. يقوم بإصلاح «الخادم _ البذور» ولا يسمح باستبداله بأثر رجعي.
لماذا يكشفون أحيانًا عن جوانب على دفعات ؟
لذلك لم يكن من الممكن «ترتيب» البذرة في السلسلة. هذا مقبول إذا تم نشر الالتزام مسبقًا وكانت سياسة الكشف شفافة.
صيغ مرجعية مصغرة
الحشيش: SHA-256 أو Keccak-256.
RNG: HMAC-SHA256 SHA-256 أو التوفيق.
المعرفات: "roundId' (UTC-stamp + game + increment)،" nonce "(عداد الرهان في السلسلة).
Версии: 'rngAlgo = HMAC-SHA256 @ 1'، 'mappingVer = roulette. v2 ',' calcVer = wallet-7. 2`.
قائمة مراجعة تنفيذ المشغل PF
التشفير و Sids
- CSPRNG/HSM ؛ «server _ seed» الفريد، التناوب الموثق.
- «العميل _ البذور» - يسيطر عليه اللاعب، تم حفظه في التاريخ.
المنشورات والتخزين
- يلتزم بالرهانات والوصول إلى قناة التاريخ/النشر/المذيع.
- تخزين WORM، طوابع UTC، دفعات ميركلي للمقاييس.
الخوارزميات
- RNG ورسم الخرائط دون تحيز ؛ إصدار «rngAlgo/mappingVer».
- نص/صفحة «تحقق من الصدق» (المصدر المفتوح مرغوب فيه).
حي وهجين
- CV/RFID/round phase hash anchors، log «عندما تم إغلاق نافذة الرهان».
- إجراءات المنازعات (تقرير vkhodov→iskhod، وصلات بالالتزامات/صندوق التبرعات الاستئماني).
الأمن ومراجعة الحسابات
- مراجعة مستقلة لبروتوكول PF، مكافأة الأخطاء.
- سجلات القرارات غير قابلة للتغيير ؛ اختبارات إعادة التشغيل المنتظمة.
يحول Profable Fair "ثق بنا" إلى "تحقق من ذلك بنفسك. "مع الالتزام/الشجب أو VRF، و RNG الحتمي، ورسم الخرائط الصحيحة غير التعويضية، تصبح أي جولة قابلة للتكرار ويمكن التحقق منها. بالنسبة للاعب، إنها الشفافية والثقة. بالنسبة للمشغل - أقل جدلاً، وعلامة تجارية أقوى وامتثال للمتطلبات التنظيمية. الشيء الرئيسي هو الانضباط: نشر الالتزامات مسبقًا، وإصلاح إصدارات الخوارزميات، وتخزين الأدلة دائمًا وإعطاء المستخدم أداة تحقق بسيطة.