مقدمه
افرادی که در بازیهای آنلاین فعالیت دارند، همواره با دغدغهی کلاهبرداری، تقلب و یا دستکاری مواجه هستند و این موضوع با توجه به افشا شدن تعداد زیادی از اسناد تقلب در فضای مجازی باعث افزایش بیاعتمادیها گردیده است. البته این موضوع صرفا محدود به فضای آنلاین نمیشو د و همانطور که مطلع هستید در بازیهای حضوری نیز روشهای گوناگونی برای تقلب مورد استفاده قرار میگیرد.
با این حال مسئلهی تقلب در فضای آنلاین حساسیت بسیار بیشتری پیدا میکند، چرا که در سالهای اخیر مجموعههای زیادی با کلاهبرداری و هدایت بازی به یک سمت و سوی قابل برنامهریزی بازیکنان را سرکیسه کردند. زمانی که شفافیت کافی وجود نداشته باشد، احتمال تقلب دور از ذهن نیست و این موضوع منحصر به مجموعههای بی اعتبار نمیشود و آنهایی که سالها قدمت دارند از این موضوع مستثنی نمیشوند.
نکستگمون به عنوان پیشرو در زمینهی بازی آنلاین تختهنرد همواره کوشیده است تا بستری امن و قابل اعتماد به بازیکنان خود ارائه کند و نوآوریهای زیادی برای حفظ امنیت و شفافیت انجام داده است. ما در نکستگمون با بررسی تمامی روشهای موجود و ضرورت ایجاد راهکاری جهت شفافسازی فرآیند تولید اعداد تصادفی، توانستهایم روشی منحصر به فرد و ۱۰۰٪ مطمئن را پیادهسازی کنیم و در این مقاله به نحوهی علمکرد این سیستم خواهیم پرداخت، اما پیش از اینکه به سراغ نحوهی عملکرد تاس قابل اثبات بپردازیم، به چند سوال پراهمیت پاسخ میدهیم.
آیا راهی برای اثبات عدم تقلب یا دستکاری در تاس وجود دارد؟
پاسخ مثبت است، البته اگر برخی از نکات که در ادامه به آن اشاره خواهیم کرد، رعایت شود. در حال حاضر روشهای مختلفی ارائه شده، اما طبق بررسی ما هیچکدام از این روشها عملکرد درستی ندارد و ایرادات اساسی به آنها وارد است.
هر بازیکن تخته نرد میداند که در بازیهای حضوری به جهت جلوگیری از تقلب باید تاسها را در درون جام قرار دهد، آن را به خوبی تکان داده و سپس تاسها را طوری به سمت صفحهی تخته نرد پرتاب کند که تاسها همزمان از جام خارج شوند و علاوه بر این نوع تاس و جام نیز باید استاندارد باشد. حتی اگر بازیکنان قصد انجام تقلب نداشته باشند، رعایت این شرایط باعث میشود تا بازیکنان با خیال آسودهتری به بازی بپردازند. جهت حصول شفافیت، مشابه چنین شرایطی باید در فضای آنلاین نیز فراهم شود تا بازیکنان از بابت تقلب هیچگونه نگرانی نداشته باشند.
چه مواردی برای اثبات عدم تقلب در تاس باید مد نظر قرار بگیرد؟
برخی از پلتفرمها صرفا مدعی بر عدم تقلب هستند و با ارائه توضیحات در مورد نحوهی تولید اعداد و با اشتراک گذاشتن بخشهایی از کدهای برنامهنویسی که به منظور تولید اعداد تصادفی مورد استفاده قرار گرفته، سعی دارند کاربران خود را متقاعد کنند که این روش صرفا جز جنبهی تبلیغاتی هیچ ارزش دیگری ندارد. همچنین مطمئن باشید هیچگونه گواهی از موسسات تاییدهی اعداد تصادفی اعتبار ندارد و صرفا نمایشی میباشد.
نکتهی ۱: صحت تصادفی بودن تاس باید توسط بازیکنان قابل پیگیری و اعتبارسنجی باشد و هیچ موسسه یا شخص ثالثی صلاحیت ارائهی تاییده را ندارد.
در محاسبات رایانهای جهت ایجاد اعداد تصادفی از برخی ورودیهای پویا (داینامیک) استفاده میشود، بطور معمول از زمان و تاریخ رایانه برای محسابهی اعداد تصادفی استفاده میشود، این روش تولید اعداد تصادفی چندان مطلوب نیست، چرا که کاربران هیچ تاثیری بر تولید این اعداد ندارند. در حالت ایدهآل باید علاوه بر استفاده از چندین متغییر، یک ورودی از هر بازیکن برای ایجاد اعداد تصادفی دریافت شود.
نکته ۲: بهتر است چندین متغییر ورودی برای تولید اعداد تصادفی دریافت شود و پیش از شروع بازی، یک ورودی توسط بازیکنان که بر نتیجهی تاس تاثیر گذار است، ارائه شود.
در راهکاری دیگر، پیش از شروع بازی یک فایل شامل هزاران عدد توسط سرور ایجاد شده و بصورت رمزدار برای بازیکنان ارسال میشود. در زمان بازی، از اعداد آن فایل به ترتیب استفاده میشود و پس از پایان بازی رمز فایل در اختیار بازیکنان قرار میگیرد تا بت وانند محتویات فایل را مشاهده کنند و مطمئن شوند در حین بازی اعداد دستکاری نشدهاند. این روش خیال کاربران را از عدم دستکاری در اعداد راحت میکند، اما اگر شخصی پیش از پایان بازی به رمز فایل دسترسی داشته باشد، بدون شک برندهی بازی خواهد بود چرا که میتواند براحتی از تاسهای پیشرو در بازی آگاهی پیدا کند.
نکته ۳: اعداد تصادفی نباید پیش از زمان پرتاب تاس ایجاد شوند و نه تنها بازیکنان، حتی سرور و نه هیچ شخص دیگری نباید امکان پیشبینی تاس را داشته باشد.
اینها نکات ضروری برای تولید اعداد تصادفی قابل اثبات میباشد و اگر در جایی این موارد رعایت نشود، احتمال تقلب یا دستکاری دور از دسترس گرداندگان آن پلتفرم نیست.
نحوهی تولید اعداد تصادفی تاس در نکستگمون
اعداد تصادفی در نکستگمون با روشی منحصر و خلاقانه تولید میشوند که به ما اجازهی میدهد تا ادعا کنیم که اعداد به معنای واقعی تصادفی هستند و بازیکنان به راحتی میتوانند پس از پایان بازی تک تک اعداد را بررسی و اعتبارسنجی کنند تا مطمئن شوند هیچگونه تقلب یا دستکاری در تولید اعداد رخ نداده است.
بهتر است برای شروع، به سراغ ماشینحساب تاس برویم و با بررسی ورودیهایی که جهت تولید اعداد تصادفی مورد استفاده قرار میگیرد، شروع کنیم. برای دسترسی به ماشینحساب از منو بر روی «بیشتر» بزنید و «ماشینحسابها» را انتخاب کنید. ماشینحسابها کاملا مستقل طراحی شدهاند و اگر ورودیهایی که در هنگام بازی برای ایجاد اعداد استفاده گردید را در این فرم قرار بدهید، باید دقیقا همان عددی محسابه شود که در زمان بازی دریافت کرده بودید.
عبارت بازیکن
هر بازیکن یک عبارت ۱۰ کلمهای به عنوان ورودی در شروع بازی ارائه میکند تا از آن برای تولید اعداد تصادفی در نوبت خودش استفاده شود. بازیکن میتواند این عبارت را در تنظیمات تغییر دهد تا در تمامی مسابقات از عبارت ثابتی که به دلخواه تعیین کرده استفاده شود و یا از عبارت پویا استفاده کند که در این صورت در ابتدای هر مسابقه یک عبارت ۱۰ کلمهای بطور اتفاقی برای او در نظر گرفته میشود.
هش بلوک حلکننده
این مقدار شامل یک عدد بطول ۶۴ بر مبنای شانزده میباشد . در ادامه نحوهی محسابه شدن این مقدار در بلاکچین و چگونگی عملکرد آن را توضیح خواهیم داد.
ترتیب
یک شمارندهی ساده است که شمارهی ردیف تاس را مشخص میکند، برای مثال سومین باری که تاس بر روی تخته نرد پرتاب میشود، مقدار ترتیب ۳ خواهد بود و به همین شکل برای نهمین بار این مقدار برار با ۹ در نظر گرفته میشود.
تاس شروع
برای تاس شروع یک تفاوت جزئی در محاسبات وجود دارد، باید مشخص کنید که میخواهید عدد تاس بازیکن سفید محسابه شود یا بازیکن مشکی. دلیل این تفاوت نیز رفع مشکل برابری عبارات دو بازیکن میباشد که توضیحات کامل آن را در بخش «مشکل برابری عبارات دو بازیکن در تاس شروع» مطالعه کنید.
اینها تمامی اطلاعات مورد نیاز برای محسابهی مقدار تاس است، این ورودیها با استفاده از تابع محاسباتی تبدیل به اعداد ۱ تا ۶ میشوند. اگر مرور دوبارهای به ورودیهای مورد نیاز برای محاسبهی عدد تاس داشته باشیم، عبارت بازیکن در شروع بازی مشخص میشود و تا پایان مسابقه تغییری نخواهند داشت، ترتیب نیز صرفا عدد میباشد که با مقدار ۱ شروع و با هر پرتاب تاس یک واحد به آن اضافه میشود. اما «هش بلوک حلکننده» چیست و چگونه محاسبه میشود؟ برای پاسخ دادن به این سوال در ادامه به سراغ زنجیرهی تاس (بلاکچین) خواهیم رفت که نقش مهمی را در غیرقابل پیشبینی کردن اعداد ایفا میکند.
زنجیرهی تاس
زنجیرهی تاس در نکستگمون با استفاده از ساختار بلاکچین پیادهسازی شده است، احتمالا بیتکوین را میشناسید، جایی که اولین بار مفهموم بلاکچین ایجاد شد. در بلاکچین با استفاده از رمزنگاری و ایجاد زنجیرهای از بلوکها، امکان هک، حذف و دستکاری اطلاعات ثبت شده از بین میرود. واژه بلاکچین (Blockchain) ترکیبی از دو کلمه Block (بلوک) و Chain (زنجیره) است. این فناوری در حقیقت زنجیرهای از بلوکهاست، در هر بلوک میتواند هر نوع اطلاعاتی ثبت شود، مثلا میتواند خاطرات روزانهی یک شخص یا تراکنشهای مالی باشد. زمانی که یک بلوک به زنجیره اضافه میشود، تمامی اطلاعات آن با استفاده از توابع ریاضی به یک رشتهی متنی به نام هش تبدیل شده و در بلاک ذخیره میشوند. همچنین جهت ایجاد زنجیره، هر بلاک باید هش بلاک قبلی را در اطلاعات خودش ذخیره کند. حالا اگر کوچکترین دستکاری در اطلاعات بلوک اتفاق بیفتند، هش تغییر میکند و کل بلاکچین را نامعتبر میکند. اگر مایل هستید دربارهی بلاکچین اطلاعات بیشتری کسب کنید مقالهی «بلاکچین چیست؟ توضیحات ساده همراه با مثالهای کاربردی» را بخوانید.
در نکستگمون هر زمان که بازیکنی بر روی پرتاب تاس بزند، یک بلوک در زنجیرهی تاس با اطلاعاتی از قبیل زمان ایجاد، نام کاربری بازیکن، شناسهی بازی، ارتفاع بلوک و شماره ردیف تاس ایجاد میشود. از برآیند اطلاعاتی که در بلوک ذخیره شده، هش بلوک بدست میآید که صحت هش محاسبه شده با مراجعه به ماشینحساب هش بلوک قابل اعتبارسنجی میباشد.
هنگامی که یک بلوک جدید به زنجیرهی تاس اضافه میشود در وضعیت «پردازش...» قرار میگیرد و بلوک قبلی خود را از وضعیت «پردازش...» خارج میکند، یعنی برای تکمیل پردازش یک بلوک، باید بلوکی دیگر به زنجیره اضافه شود و از هش آن برای حل محاسبات تاس مرتبط با بلوک قبلی استفاده شود.
زمانی که بلوک در وضعیت در حال پردازش قرار میگیرد (دقیقا شبیه زمانیست که بازیکن تاسها را در جام قرار داده و در حال تکان دادن آن است)، این وضعیت تا زمانی ادامه پیدا میکند که بلوک بعدی در زنجیره ایجاد شود و با ایجاد بلوک جدید پردازش بلوک قبلی به اتمام میرسد و با اتمام پردازش اعداد تصادفی تاسها محاسبه میشوند.
در حال تکمیل...