۱. ثبت تعهد پیش از هر تاس
در بازی آنلاین، هر بار که قرار است تاس ریخته شود، سرور بذر محرمانهٔ تازهای میسازد: عددی تصادفی که فقط همان یک بار به کار میرود. پیش از آشکار شدن تاس، تنها هش رمزنگاری این بذر را منتشر میکند؛ تعهد همین هش است. هش یکطرفه است: بذر را در همان لحظه قطعی میکند، بیآنکه چیزی از آن را فاش کند. از آن لحظه به بعد اگر سرور بذر را عوض کند، هش بذر جدید با هش منتشرشده یکی نیست و تاس در بررسی رد میشود.
۲. ترکیب با عدد دوم
وقتی شما در بازی زنده تاس میریزید، دستگاه خودتان هم عددی تصادفی میسازد و برای سرور میفرستد؛ عدد دوم همین است. تاس با HMAC حساب میشود: هشی کلیددار که کلیدش بذر محرمانهٔ سرور است و ورودیاش شناسهٔ بازی، شناسهٔ همان تاس، یک شمارنده و عدد دوم است. وقتی سرور خودش تاس را میریزد، مثلاً در بازی مکاتبهای، عدد دوم را هم خودش میدهد.
۳. تولید بدون سوگیری
خروجی رمزنگاری به اعداد ۱ تا ۶ تبدیل میشود. نتیجههایی که میتوانند توزیع تاس را منحرف کنند کنار گذاشته میشوند تا همهٔ اعداد شانس یکسانی داشته باشند.
۴. صفحهٔ راستیآزمایی
سرور بذر محرمانه را همراه با خودِ تاس افشا میکند و دستگاه خودتان در پسزمینه هر تاسی را که میریزید با همین بذر بررسی میکند. لازم نیست به همین بسنده کنید: هر بازی آنلاینی که میکنید صفحهٔ راستیآزمایی عمومی خودش را هم دارد. رسید تکتک تاسها آنجاست: تعهد، بذر افشاشده، عدد دوم، شمارنده و نتیجهٔ تاس. خودِ صفحه هش و نتیجهٔ هر تاس را دوباره حساب میکند و برنامهٔ کوتاهی هم دارد که میتوانید خودتان اجرا کنید.
بازی عادلانه، با داوری سرور
داور بازی آنلاین سرور است: دستگاه هیچ بازیکنی تاس نمیسازد و سرور تکتک حرکتها را با قوانین میسنجد. برای همین نسخهٔ دستکاریشدهٔ بازی هم نه میتواند از خودش تاس بسازد و نه حرکت غیرقانونی بکند. با رسید منتشرشده هم میتوانید بررسی کنید که هر تاس از اعداد ثبتشده در آن به دست آمده است.
آنچه رسید نشان میدهد و آنچه نشان نمیدهد
رسید هر تاس نشان میدهد که بذر افشاشده با تعهدش مطابقت دارد و تاس از همان اعدادی به دست میآید که در رسید آمده است. رسید بهتنهایی نمیگوید که بذر پیش از تاس قطعی شده بود؛ اما برای تاسی که خودتان میریزید، تعهد پیش از تاس به دستگاهتان رسیده است و دستگاهتان این را هم میتواند ببیند. وقتی عدد دوم را هم خودِ سرور میدهد، رسید همچنان نشان میدهد که تاس پس از ثبت عوض نشده است؛ اما اینکه سرور آن تاس را از پیش نمیدانسته یا خودش انتخاب نکرده، چیزی است که رسید نمیتواند نشان دهد. ترجیح میدهیم همین را بیپرده بگوییم تا اینکه بیش از آنچه رسید ثابت میکند ادعا کنیم.