نتیجه بازی Crash را بررسی کنید: الگوریتم، امنیت
1) هدف از تأیید: دقیقاً چه چیزی را تأیید می کنید
غیرقابل جابجایی: اپراتور نمی تواند نتیجه را پس از شرط شما تغییر دهد (به دلیل ارتکاب هش بذر سرور).
تکرارپذیری: با داشتن ورودی، شما همان multiplier که بازی نشان داد.
یکپارچگی روش: فرمت پیام، افزایش «nonce»، قانون گرد کردن و «لبه خانه» به شدت با توجه به مشخصات اعمال می شود.
2) داده هایی که بدون تأیید غیرممکن است
1. Server Seed Hash (commit) - قبل از استفاده از 'Server Seed' مربوطه منتشر شده است.
2. بذر سرور (بعداً/در پایان دوره فاش می شود).
3. بذر مشتری (بذر شما ؛ شما خودتان آن را تنظیم می کنید یا پلت فرم تولید می کند).
4. Nonce (شمارنده شرط های شما در «Server Seed» فعلی).
5. الگوریتم هش (معمولا «HMAC-SHA256» یا «SHA-256»).
6. فرمت پیام (به عنوان مثال: ': ')، دقیق محدود کننده/مورد/رمزگذاری.
7. فرمول نگاشت هش → یک ضریب (و یک قانون گرد کردن/کمینه).
3) الگوریتم تأیید (7 مرحله)
1. تعهد را مقایسه کنید: SHA-256 (ServerSeed) را شمارش کنید و با «ServerSeedHash» منتشر کنید.
2. جمع آوری پیام: به شدت در قالب پلت فرم (به عنوان مثال، 'msg = ClientSeed +': "+ Nonce ').
3. هش دور را بشمارید:
4) Pseudocode (می تواند برای Python/JS اقتباس شود)
"پایتون
در اینجا فرمول دقیق نقشه برداری از پلت فرم خود را به جای stub_mapping ()
واردات hmac، hashlib، ریاضی
def round_hash (server_seed: بایت، client_seed: str، nonce: int) -> بایت:
def take_u_from_hash (h: بایت، k_bits=52) -> شناور:
def stub_mapping (u: float) -> شناور:
def verify ( , , , nonce,:
مهم: به جای «stub _ mapping»، فرمول دقیق را از بخش Fairness پلت فرم خود اعمال کنید ؛ در غیر این صورت، چک نادرست خواهد بود.
5) موارد و مشکلات خاص
دو شرط در یک دور: بسیاری از سیستم عامل ها برای هر یک از شرط های شما «nonce» افزایش می دهند، حتی اگر آنها در همان دور قرار گیرند (مثال: شرط A → 'nonce = 42'، شرط B → 'nonce = 43'). تاریخ را بررسی کنید.
تغییر «مشتری دانه»: هنگام تغییر دانه، «nonce» معمولا تنظیم مجدد (یا یک جریان جدید شروع می شود). قوانین سایت خود را مقایسه کنید.
Batchy 'Server Seed': یک 'Server Seed' در یک سری از دوره ها عمل می کند، سپس یک کامیت جدید منتشر می شود ؛ دانه ها را از دوره های مختلف اشتباه نگیرید.
گرد کردن/حداقل: عدم تطابق در علامت دوم - در 90٪ موارد، خطا در گرد کردن/حداقل قوانین (به عنوان مثال، ثابت 1. 00 × در شرایط خاص)
رمزگذاری/فضاها: فضای اضافی/خط خوراک، مورد اشتباه، چک کردن شکاف non-UTF-8.
6) چک لیست سریع
1. آیا «SHA-256 (ServerSeed)» با «ServerSeedHash» منتشر شده مطابقت دارد ؟
2. آیا فرمت «message» و «nonce» به درستی شکل گرفته است ؟
3. الگوریتم ('HMAC-SHA256 '/' SHA-256') و ترتیب کلید/فیلد به شدت با توجه به مشخصات اعمال می شود ؟
4. آیا نقشه برداری و گرد کردن با مستندات یکسان است ؟
5. آیا موارد خاص (نادر «تصادف فوری»، حداقل 1. 00 ×، محافظ دهان)
6. آیا نتیجه همزمان با تاریخ بازی به پنی?
7) اتوماسیون کنترل (عمل)
سیاهههای مربوط: نگه داشتن 'client _ seed'، دنباله 'nonce'، برچسب زمان، ضریب نهایی.
نمونه برداری: پس از «سر و صدا» از «سرور بذر»، اجرای اسکریپت را از طریق تصادفی 20-50 دور ؛ ثابت درصد بازی (باید 100٪).
رگرسیون: هنگام تغییر نسخه بازی/ارائه دهنده، همان مجموعه را اجرا کنید.
صادرات: فروشگاه CSV/JSON با منابع - این «مسیر حسابرسی» شما است.
8) امنیت: چگونه به اشتباه و اجازه دهید خود را فریب خورده
بررسی محلی/آفلاین: فقط به اعتبار سنج وب اپراتور اعتماد نکنید. اسکریپت خود را نگه دارید
آیا دور بدون یک بسته داده کامل اعتماد نیست: هیچ فرمول/فرمت - بدون تایید.
قوی «مشتری دانه»: بپرسید به صورت تصادفی، تغییر دوره ای (این RTP را افزایش نمی دهد، اما مانع سوالات در مورد تکرارپذیری).
TLS/sessions: HTTPS-only login, 2FA, پیگیری تاریخچه ورود و آپلود.
«Server Seed» را به کسی ندهید: پس از دوره توسط اپراتور منتشر می شود ؛ وظیفه شما تأیید است، نه «گرفتن» آن از قبل.
9) نمونه «اشتباهات تازه کار»
نظم میدانی مخلوط («Nonce: ClientSeed» به جای «ClientSeed: Nonce»).
شمارش «هیچ» از صفر به جای یک (یا برعکس).
هش کل دور پلت فرم (nonce جهانی) مورد استفاده قرار گرفت، اما شما نیاز به «nonce» شخصی خود دارید.
گرد شدن بانکدار در مقابل کف/سقف.
در برابر «Server Seed» فعال، که قبلاً در معرض آن قرار نگرفته است، بررسی کنید.
10) «پرچم های قرمز» در اپراتور
بدون هش بذر سرور عمومی قبل از شروع دوره.
شما نمی توانید Seed مشتری خود را تنظیم کنید یا nonce را مشاهده کنید.
هیچ فرمول نقشه برداری هش عمومی وجود ندارد.
تاریخچه راندها حداقل داده ها را برای آشتی فراهم نمی کند.
فرمت و الگوریتم بدون اطلاع/مشخصات بایگانی تغییر یافت.
11) زمینه استرالیا (AU)
ارز: نگه داشتن سوابق برنده/شرط در AUD، نگه داشتن آپلود داستان (پشتیبانی، مسائل بحث برانگیز).
بازی مسئول (RG): سپرده/محدودیت زمانی, مکث و خود حذفی - موجود در برنامه های باحسن نیت; ازشون استفاده کن.
شیوه های پلت فرم: برای اپراتورهای معتبر، بلوک انصاف/منصفانه شامل توضیحات کامل و نمونه هایی از تأیید است. کمبود جزئیات دلیل انتخاب یک سرویس دیگر است.
12) خط پایین
بررسی نتیجه یک بازی Crash یک روش واضح است:
اسکریپت خود را نگه دارید، ورودی ورود به سیستم و دوره ای بررسی دور تصادفی. بنابراین شما صداقت را نه در کلمات، بلکه از نظر ریاضی تأیید می کنید.
غیرقابل جابجایی: اپراتور نمی تواند نتیجه را پس از شرط شما تغییر دهد (به دلیل ارتکاب هش بذر سرور).
تکرارپذیری: با داشتن ورودی، شما همان multiplier که بازی نشان داد.
یکپارچگی روش: فرمت پیام، افزایش «nonce»، قانون گرد کردن و «لبه خانه» به شدت با توجه به مشخصات اعمال می شود.
2) داده هایی که بدون تأیید غیرممکن است
1. Server Seed Hash (commit) - قبل از استفاده از 'Server Seed' مربوطه منتشر شده است.
2. بذر سرور (بعداً/در پایان دوره فاش می شود).
3. بذر مشتری (بذر شما ؛ شما خودتان آن را تنظیم می کنید یا پلت فرم تولید می کند).
4. Nonce (شمارنده شرط های شما در «Server Seed» فعلی).
5. الگوریتم هش (معمولا «HMAC-SHA256» یا «SHA-256»).
6. فرمت پیام (به عنوان مثال: '
7. فرمول نگاشت هش → یک ضریب (و یک قانون گرد کردن/کمینه).
💡کل مشخصات باید در بخش عدالت/منصفانه اپراتور باشد. اگر چیزی وجود ندارد، این یک پرچم قرمز است (نگاه کنید به § 10).
3) الگوریتم تأیید (7 مرحله)
1. تعهد را مقایسه کنید: SHA-256 (ServerSeed) را شمارش کنید و با «ServerSeedHash» منتشر کنید.
2. جمع آوری پیام: به شدت در قالب پلت فرم (به عنوان مثال، 'msg = ClientSeed +': "+ Nonce ').
3. هش دور را بشمارید:
- при 'HMAC-SHA256': 'RoundHash = HMAC_SHA256 (key = ServerSeed, msg = message)';
when 'SHA-256': 'RoundHash = SHA256 (ServerSeed | message) "یا همانطور که در مشخصات مشخص شده است. |
---|---|
4. استخراج تصادفی: اولین 'k' بیت (اغلب 52) → عدد صحیح 'r'، سپس 'u = r/2 ^ k'. | |
5. درخواست فرمول نقشه برداری: تبدیل 'u' به چند برابر (لبه خانه/موارد خاص به حساب با توجه به اسناد و مدارک بازی گرفته شده). | |
6. دور با توجه به قوانین بازی (به عنوان مثال، تا 2 کاراکتر، حداقل 1. 00 × و غیره) | |
7. مقایسه با مجموع در تاریخ. تصادف = صداقت صحیح |
4) Pseudocode (می تواند برای Python/JS اقتباس شود)
"پایتون
در اینجا فرمول دقیق نقشه برداری از پلت فرم خود را به جای stub_mapping ()
واردات hmac، hashlib، ریاضی
def round_hash (server_seed: بایت، client_seed: str، nonce: int) -> بایت:
- پیام = f "{client _ seed}: {nonce}. فرمت رمزگذاری (" utf-8 ") را ببینید مشخصات
- بازگشت HMAC. جدید (server_seed, پیام, hashlib. sha256) digest () یا Hashlib. sha256 (...)
def take_u_from_hash (h: بایت، k_bits=52) -> شناور:
- ما k مهمترین بیت ها را به عنوان کل r در نظر می گیریم
- r = int. from_bytes (h, «big»)> (۲۵۶ - k_bits)
- بازگشت r/( 1
def stub_mapping (u: float) -> شناور:
- خرد کردن! جایگزین با فرمول از اسناد بازی خود را
- به عنوان مثال، گاهی اوقات یک تبدیل از فرم استفاده می شود: crash = floor (((const/( r + 1)) 100 )/100
- و/یا «لبه خانه» به عنوان یک اجباری نادر 1. 00 × از آن در یک بررسی واقعی استفاده نکنید.
- بازگشت حداکثر (1. 00، دور (1. 0/حداکثر (1e-12، 1. 0 - u)، 2))
def verify ( , , , nonce,:
- server_seed = بایت fromhex (server_seed_hex)
- 1) تعهد
- اعتراف به هشليب. sha256 (server_seed). hexdigest () = server_seed_hash_hex. پایین تر ()
- 2-3) هش دور
- h = round_hash (server_seed، client_seed، نانس)
- 4) شما
- u = take_u_from_hash (ساعت)
- 5-6) نقشه برداری + گرد کردن
- calc_mult = stub_mapping (u)
- 7) مقایسه
- بازگشت abs (calc_mult - shown_multiplier) <1e-9
- ```
مهم: به جای «stub _ mapping»، فرمول دقیق را از بخش Fairness پلت فرم خود اعمال کنید ؛ در غیر این صورت، چک نادرست خواهد بود.
5) موارد و مشکلات خاص
دو شرط در یک دور: بسیاری از سیستم عامل ها برای هر یک از شرط های شما «nonce» افزایش می دهند، حتی اگر آنها در همان دور قرار گیرند (مثال: شرط A → 'nonce = 42'، شرط B → 'nonce = 43'). تاریخ را بررسی کنید.
تغییر «مشتری دانه»: هنگام تغییر دانه، «nonce» معمولا تنظیم مجدد (یا یک جریان جدید شروع می شود). قوانین سایت خود را مقایسه کنید.
Batchy 'Server Seed': یک 'Server Seed' در یک سری از دوره ها عمل می کند، سپس یک کامیت جدید منتشر می شود ؛ دانه ها را از دوره های مختلف اشتباه نگیرید.
گرد کردن/حداقل: عدم تطابق در علامت دوم - در 90٪ موارد، خطا در گرد کردن/حداقل قوانین (به عنوان مثال، ثابت 1. 00 × در شرایط خاص)
رمزگذاری/فضاها: فضای اضافی/خط خوراک، مورد اشتباه، چک کردن شکاف non-UTF-8.
6) چک لیست سریع
1. آیا «SHA-256 (ServerSeed)» با «ServerSeedHash» منتشر شده مطابقت دارد ؟
2. آیا فرمت «message» و «nonce» به درستی شکل گرفته است ؟
3. الگوریتم ('HMAC-SHA256 '/' SHA-256') و ترتیب کلید/فیلد به شدت با توجه به مشخصات اعمال می شود ؟
4. آیا نقشه برداری و گرد کردن با مستندات یکسان است ؟
5. آیا موارد خاص (نادر «تصادف فوری»، حداقل 1. 00 ×، محافظ دهان)
6. آیا نتیجه همزمان با تاریخ بازی به پنی?
7) اتوماسیون کنترل (عمل)
سیاهههای مربوط: نگه داشتن 'client _ seed'، دنباله 'nonce'، برچسب زمان، ضریب نهایی.
نمونه برداری: پس از «سر و صدا» از «سرور بذر»، اجرای اسکریپت را از طریق تصادفی 20-50 دور ؛ ثابت درصد بازی (باید 100٪).
رگرسیون: هنگام تغییر نسخه بازی/ارائه دهنده، همان مجموعه را اجرا کنید.
صادرات: فروشگاه CSV/JSON با منابع - این «مسیر حسابرسی» شما است.
8) امنیت: چگونه به اشتباه و اجازه دهید خود را فریب خورده
بررسی محلی/آفلاین: فقط به اعتبار سنج وب اپراتور اعتماد نکنید. اسکریپت خود را نگه دارید
آیا دور بدون یک بسته داده کامل اعتماد نیست: هیچ فرمول/فرمت - بدون تایید.
قوی «مشتری دانه»: بپرسید به صورت تصادفی، تغییر دوره ای (این RTP را افزایش نمی دهد، اما مانع سوالات در مورد تکرارپذیری).
TLS/sessions: HTTPS-only login, 2FA, پیگیری تاریخچه ورود و آپلود.
«Server Seed» را به کسی ندهید: پس از دوره توسط اپراتور منتشر می شود ؛ وظیفه شما تأیید است، نه «گرفتن» آن از قبل.
9) نمونه «اشتباهات تازه کار»
نظم میدانی مخلوط («Nonce: ClientSeed» به جای «ClientSeed: Nonce»).
شمارش «هیچ» از صفر به جای یک (یا برعکس).
هش کل دور پلت فرم (nonce جهانی) مورد استفاده قرار گرفت، اما شما نیاز به «nonce» شخصی خود دارید.
گرد شدن بانکدار در مقابل کف/سقف.
در برابر «Server Seed» فعال، که قبلاً در معرض آن قرار نگرفته است، بررسی کنید.
10) «پرچم های قرمز» در اپراتور
بدون هش بذر سرور عمومی قبل از شروع دوره.
شما نمی توانید Seed مشتری خود را تنظیم کنید یا nonce را مشاهده کنید.
هیچ فرمول نقشه برداری هش عمومی وجود ندارد.
تاریخچه راندها حداقل داده ها را برای آشتی فراهم نمی کند.
فرمت و الگوریتم بدون اطلاع/مشخصات بایگانی تغییر یافت.
11) زمینه استرالیا (AU)
ارز: نگه داشتن سوابق برنده/شرط در AUD، نگه داشتن آپلود داستان (پشتیبانی، مسائل بحث برانگیز).
بازی مسئول (RG): سپرده/محدودیت زمانی, مکث و خود حذفی - موجود در برنامه های باحسن نیت; ازشون استفاده کن.
شیوه های پلت فرم: برای اپراتورهای معتبر، بلوک انصاف/منصفانه شامل توضیحات کامل و نمونه هایی از تأیید است. کمبود جزئیات دلیل انتخاب یک سرویس دیگر است.
12) خط پایین
بررسی نتیجه یک بازی Crash یک روش واضح است:
- تأیید تعهد «سرور بذر هش»،
- بازیابی 'RoundHash' توسط 'Server Seed'، 'Client Seed'، 'nonce' و الگوریتم،
- فرمول نقشه برداری منتشر شده و قوانین گرد کردن را اعمال کنید
- چند برابر یکسان در بررسی شما و در تاریخ بازی.
اسکریپت خود را نگه دارید، ورودی ورود به سیستم و دوره ای بررسی دور تصادفی. بنابراین شما صداقت را نه در کلمات، بلکه از نظر ریاضی تأیید می کنید.