سازوکارِ اصلیِ سامانه
قرعهکشیِ مهمانسرا و ظرفیتِ رفاهی که هر کارمند خودش دوباره اجرا و بررسی میکند
قرعهکشیِ معمولی یک جعبهٔ سیاه است: فهرست میرود تو، برنده میآید بیرون، و بینِ این دو هیچکس چیزی نمیبیند. اعتماد در این حالت یعنی «حرفِ ما را قبول کن» — و دقیقاً همینجاست که گمانِ پارتیبازی متولد میشود.
قرعهکشیِ قابلِ راستیآزمایی همان جعبه را شیشهای میکند: پیش از قرعه چند چیز را علنی و قفل میکنیم، پس از قرعه بقیهاش را فاش میکنیم، و آنوقت هر کارمندی میتواند خودش همان قرعه را از نو اجرا کند. اگر نتیجهٔ اجرای او با نتیجهٔ اعلامشده یکی بود، دستکاری ممکن نبوده است. اگر یکی نبود، همه میفهمند.
- این صفحه چیزی را پنهان نمیکند: تمامِ سازوکار، از جمله نقطههای ضعفش، همینجا نوشته شده است.
- برای خواندنش دانشِ فنی لازم نیست.
در یک نگاه
چه چیزی پیش از قرعه قفل میشود و چه چیزی پس از آن فاش
سه بازیگر و یک تابلوی عمومی. هرچه روی تابلو مینشیند با زمانِ ثبت برای همه دیدنی است و برداشتنی نیست؛ کارمند در پایان با همان چیزهای روی تابلو — نه با چیزی که از سرورِ ما بگیرد — قرعه را دوباره اجرا میکند.
مسئله
چرا «اعلامِ نتیجه» هرگز کافی نیست
وقتی نتیجه اعلام میشود، کارمند سه چیز را نمیداند: فهرستِ ورودی دقیقاً چه بوده، عددِ تصادفیِ قرعه از کجا آمده، و آیا این عدد بعد از دیدنِ فهرست انتخاب شده یا قبل از آن. تا وقتی این سه سؤال بیپاسخ است، هیچ صورتجلسهای گمان را از بین نمیبرد.
ورودی چه بود؟
با قفلِ فهرست و انتشارِ اثرانگشتِ آن پاسخ داده میشود.
عددِ قرعه از کجا آمد؟
با پاکتِ دربسته و سهمِ شاهدان.
چطور از ورودی به خروجی رسیدیم؟
با الگوریتمِ قطعیِ منتشرشده.
راستیآزمایی یعنی هر سهٔ اینها را از پیش قفل کنیم و بعد کلیدش را به همه بدهیم.
یک واژه، پیش از هر چیز
«اثرانگشت» یعنی چه؟
اثرانگشتِ یک فایل، عددِ بلندی است که از رویِ محتوای همان فایل ساخته میشود؛ ما از تابعِ استانداردِ SHA-256 استفاده میکنیم که سالهاست در بانکداری و امضای دیجیتال بهکار میرود. دو ویژگی دارد که تمامِ این روش روی آنها بنا شده است. یک: اگر یک نقطه از فایل عوض شود، اثرانگشت بهکلی عوض میشود. دو: از روی اثرانگشت نمیتوان محتوای فایل را بازسازی کرد.
پس با انتشارِ اثرانگشتِ یک فایل، خودتان را به آن فایلِ مشخص متعهد میکنید بیآنکه محتوایش را لو بدهید. این همان «پاکتِ دربسته» است: پاکت را جلوی همه روی میز میگذارید، ولی هنوز باز نکردهاید.
- اثرانگشت را میشود منتشر کرد، بدونِ افشای محتوا — این همان «پاکتِ دربسته» است.
- تغییرِ یک حرف در فهرست، اثرانگشت را بهکلی عوض میکند؛ پس دستکاریِ بیسروصدا ممکن نیست.
- هر ابزارِ استانداردی در دنیا همین اثرانگشت را میسازد؛ اثرانگشتِ ما اختصاصی و ساختگی نیست.
سازوکار، گام به گام
هشت گام، بهترتیب
ترتیبِ زمانیِ این هشت گام مهمتر از خودِ گامهاست. زمانِ ثبتِ هر گام هم منتشر میشود، چون تمامِ قوتِ روش در این است که ثابت شود چه چیزی پیش از چه چیزی اتفاق افتاده است.
گام ۱: فهرست بسته میشود
پس از پایانِ مهلتِ اعتراض به شرایط و امتیازها، فهرستِ متقاضیان قفل میشود: نامِ هر نفر (یا کدِ مستعارش)، امتیازش، و سهمیه یا گروهی که در آن قرار دارد. این فهرست یک فایلِ متنیِ ساده است با ترتیبِ ثابت — مثلاً مرتبشده بر اساسِ شمارهٔ پرسنلی — تا هر کسی که آن را میسازد به همان فایلِ دقیقاً یکسان برسد. از این لحظه به بعد، فهرست دیگر تغییر نمیکند.
گام ۲: اثرانگشتِ فهرست منتشر میشود
فهرستِ قفلشده و اثرانگشتش در صفحهٔ عمومیِ آن دوره قرار میگیرد، با زمانِ ثبت. اهمیتش این است: اگر بعداً کسی یک نفر را اضافه کند، حذف کند، یا امتیازِ کسی را یک واحد بالا ببرد، اثرانگشتِ فهرست دیگر با عددِ منتشرشده نمیخواند و این تغییر برای هر کسی که بررسی کند آشکار میشود.
گام ۳: پاکتِ دربسته
سامانه یک رشتهٔ تصادفیِ بلند میسازد و آن را پنهان نگه میدارد؛ فقط اثرانگشتِ آن رشته را با زمانِ ثبت منتشر میکند. حالا سامانه به یک عددِ مشخص متعهد شده است بیآنکه کسی بداند آن عدد چیست، و دیگر نمیتواند نظرش را عوض کند.
گام ۴: سهمِ شاهدان
پس از آنکه پاکت بسته شد، شاهدانِ دوره — نمایندهٔ کارکنان، بازرسی، حراست، و هر کسِ دیگری که سازمان تعیین کند — هرکدام یک عدد یا عبارتِ دلخواهِ خودشان را علنی اعلام میکنند. لازم نیست تصادفیِ حرفهای باشد؛ «۱۴۰۵ بهارِ من» هم کافی است. مهم فقط ترتیب است: سامانه اول قفل شده، بعد شاهدان حرف زدهاند.
گام ۵: پاکت باز میشود
سامانه رشتهٔ پنهانش را فاش میکند. هر کسی میتواند اثرانگشتِ آن رشته را بگیرد و ببیند با عددی که در گامِ ۳ منتشر شده بود یکی است. اگر یکی نبود، یعنی سامانه رشته را عوض کرده و کلِ قرعه باطل است.
گام ۶: بذرِ نهایی ساخته میشود
رشتهٔ فاششدهٔ سامانه و سهمِ همهٔ شاهدان، به همان ترتیبِ اعلامشده، پشتِ سرِ هم گذاشته و اثرانگشتشان گرفته میشود. حاصل، «بذرِ قرعه» است: یک عددِ واحد که سهمِ همه در آن هست و هیچکس بهتنهایی تعیینش نکرده است.
گام ۷: قرعه اجرا میشود، با قاعدهای که همیشه یک جواب دارد
امتیازِ هر نفر به «بلیت» تبدیل میشود و الگوریتمِ منتشرشده با همان بذر و همان فهرست اجرا میشود. در تمامِ این محاسبه هیچ عددِ تصادفیِ دیگری دخالت نمیکند؛ همهچیز از بذر میآید. یعنی هر کسی با همان بذر و همان فهرست، همیشه به همان فهرستِ برندگان میرسد — نه چیزی شبیه آن، بلکه دقیقاً همان. سازوکارِ بلیتها در بخشِ بعد باز شده است.
گام ۸: پروندهٔ راستیآزمایی منتشر میشود
یک فایلِ متنیِ ساده که پنج چیز در آن است: فهرستِ قفلشده، اثرانگشتِ منتشرشدهٔ آن، اثرانگشتِ پاکت با زمانش، رشتهٔ فاششده و سهمِ همهٔ شاهدان، و فهرستِ نهاییِ برندگان و ذخیرهها. قالبش عمداً ساده است تا برای خواندنش هیچ ابزارِ اختصاصی لازم نباشد. از این لحظه، هر کارمند میتواند همان قرعه را در مرورگرِ خودش تکرار کند.
نقطهٔ اتکای روش
چرا ترتیبِ پاکت و شاهدان اهمیت دارد
اگر فقط سامانه عددِ قرعه را میساخت، حتی با تعهدِ قبلی میتوانست پیشاپیش هزاران عدد را امتحان کند و آن یکی را که برندهٔ دلخواهش را بالا میآورد در پاکت بگذارد.
اما وقتی سامانه در لحظهٔ بستنِ پاکت نمیداند شاهدان چه خواهند گفت، این حسابکتاب بیفایده میشود. از آن طرف، شاهدان هم رشتهٔ پنهانِ سامانه را نمیدانند، پس آنها هم نمیتوانند سهمشان را طوری انتخاب کنند که نتیجه به سمتِ کسی برود. تا وقتی دستِکم یکی از طرفها صادق باشد، نتیجه غیرقابلِ هدایت است.
- سامانه اول متعهد میشود، بعد شاهدان حرف میزنند — این ترتیب قابلِ جابهجایی نیست.
- هرچه شاهدان متنوعتر و مستقلتر باشند، تبانی سختتر میشود.
- سهمِ شاهدان لازم نیست تصادفیِ حرفهای باشد؛ یک عبارتِ دلخواه هم کافی است.
درونِ گامِ ۷
قرعه چطور کشیده میشود: بلیتها
این تنها جای صفحه است که کمی وارد جزئیاتِ محاسبه میشویم. اگر آن را رد کنید، هیچ بخشِ دیگری از صفحه ناقص نمیماند.
امتیازِ هر نفر به «بلیت» تبدیل میشود: هرکس امتیازِ بیشتری دارد بلیتِ بیشتری میگیرد، اما هیچکس بردِ تضمینی ندارد و هیچکس هم با امتیازِ کم بهکلی حذف نمیشود. بلیتها به ترتیبِ ثابتِ فهرست شماره میخورند: مثلاً اگر نفرِ اول ۱۲ بلیت داشته باشد، بلیتهای ۱ تا ۱۲ مالِ اوست.
برای کشیدنِ نفرِ اول، سامانه اثرانگشتِ «بذر بهعلاوهٔ شمارهٔ گام» را میگیرد، آن را به عددِ صحیح تبدیل میکند و بر تعدادِ کلِ بلیتها باقیمانده میگیرد؛ صاحبِ آن بلیت، نفرِ اول است. سپس همهٔ بلیتهای او کنار گذاشته میشود و همین کار با شمارهٔ گامِ بعدی تکرار میشود، تا ظرفیت پر شود. بعد از پرشدنِ ظرفیت، همین روند ادامه پیدا میکند و فهرستِ ذخیره را به ترتیب میسازد — پس اگر برندهای انصراف داد، جایگزین از پیش و با همان بذر تعیین شده و نیازی به قرعهٔ تازه نیست.
یک ریزهکاری که پنهانش نمیکنیم: برای اینکه باقیماندهگرفتن بختِ بلیتهای ابتدایی را ذرهای بیشتر نکند، عددهایی که در بازهٔ لبهای بیفتند دور انداخته و گامِ بعدی برداشته میشود.
عددهای این مثال فرضیاند و فقط برای روشنشدنِ کار آورده شدهاند.
- امتیازِ بیشتر یعنی بلیتِ بیشتر یعنی شانسِ بیشتر — نه بردِ قطعی.
- هیچ عددِ تصادفیِ دیگری در اجرا دخالت نمیکند؛ همهچیز از بذر میآید.
- فهرستِ ذخیره در همان اجرا و با همان بذر ساخته میشود؛ جایگزینیِ بعدی نیازی به قرعهٔ تازه ندارد.
- نفراتِ برنده و ترتیبِ ذخیرهها هر دو بخشی از خروجیِ قابلِ راستیآزماییاند.
از نگاهِ کارمند
کارمند دقیقاً چه میبیند و چه میکند
همهچیز باید در حدِ یک دکمه باشد، وگرنه راستیآزمایی فقط روی کاغذ وجود دارد.
او پیامکِ اعلامِ نتیجه را میگیرد و صفحهٔ نتیجهٔ دوره را باز میکند. بالای صفحه فهرستِ برندگان است و پایینش جعبهای با عنوانِ «راستیآزماییِ این قرعهکشی». در آن جعبه دو دکمه هست: «دانلودِ پروندهٔ راستیآزمایی» و «اجرای دوبارهٔ قرعهکشی در همین مرورگر». دکمهٔ دوم را که میزند، محاسبه روی دستگاهِ خودش انجام میشود و در چند ثانیه چهار خط نمایش داده میشود، هرکدام سبز یا قرمز.
چهار خطی که نمایش داده میشود
بررسیِ ۱: اثرانگشتِ فهرست با اثرانگشتی که پیش از قرعه منتشر شده بود یکی است.
یعنی فهرست بعد از قفلشدن دست نخورده است.
بررسیِ ۲: رشتهٔ فاششده با پاکتِ دربستهٔ پیش از قرعه میخواند.
یعنی بذر بعد از دیدنِ فهرست انتخاب نشده است.
بررسیِ ۳: بذرِ نهایی واقعاً از همان رشته و همان سهمِ اعلامشدهٔ شاهدان ساخته شده است.
بررسیِ ۴: اجرای دوباره همان فهرستِ برندگان و همان ترتیبِ ذخیرهها را تولید میکند.
اگر هر کدام قرمز شود، صفحه بهجای پیامِ مبهم دقیقاً میگوید کدام بررسی و در کدام سطر شکست خورده است.

چه چیزی او را قانع میکند
چهار پایه، که هیچکدامشان به اعتماد به ما تکیه ندارد
ابزارِ اجرای دوباره تماماً در مرورگر اجرا میشود و در طولِ محاسبه هیچ درخواستی به سرورِ ما نمیفرستد.
ترتیبِ زمانی
اثرانگشتِ فهرست و پاکتِ دربسته پیش از قرعه منتشر شدهاند و زمانشان ثبت است؛ پس نه فهرست بعداً دستکاری شده و نه بذر بعد از دیدنِ فهرست انتخاب شده است.
تکثرِ شاهدان
بذر از سهمِ چند طرفِ مستقل ساخته شده است، پس هیچکدام بهتنهایی نمیتوانسته نتیجه را به سمتِ کسی ببرد.
محاسبه روی دستگاهِ خودِ او
میتواند صفحه را ذخیره کند، اینترنت را قطع کند و دوباره اجرایش کند؛ اگر باز هم درست درآمد، یعنی جواب از سرورِ ما نیامده است. سادهترین آزمونِ صداقتِ ما همین است.
پیادهسازیِ مستقل
اگر به این صفحه هم اعتماد ندارد، متنِ الگوریتم منتشر شده و هر برنامهنویسی میتواند آن را در هر زبانی بازنویسی کند و باید به همان نتیجه برسد.
اعتماد به ما، در هیچکدام از این چهار مرحله لازم نیست.
پروندهٔ راستیآزمایی هم یک فایلِ متنیِ ساده است، نه قالبِ اختصاصی؛ باز کردنش به هیچ نرمافزارِ ما وابسته نیست.
مرزهای روش
این روش چه چیزی را ثابت نمیکند
صادق باشیم: راستیآزمایی ثابت میکند قرعه روی فهرستِ اعلامشده و با بذرِ ازپیشقفلشده درست اجرا شده است. ثابت نمیکند که آییننامهٔ امتیازدهی عادلانه بوده یا فهرست از ابتدا درست تنظیم شده؛ آن، کارِ شفافیتِ امتیازها و مهلتِ اعتراضِ پیش از بستنِ فهرست است.
- ثابت نمیکند آییننامهٔ امتیازدهی عادلانه بوده است؛ برای همین ریزِ امتیازِ هر نفر پیش از قرعه به خودش نشان داده میشود و مهلتِ رسمیِ اعتراض تعیین میشود.
- اگر همهٔ شاهدان با هم تبانی کنند، روش نمیتواند جلویشان را بگیرد؛ راهِ مقابله، انتخابِ شاهدانِ مستقل و متنوع است.
- سامانه میتواند از فاشکردنِ پاکت خودداری و قرعه را باطل کند؛ اما این کار علنی و ثبتشده است و خودِ انجامنشدنش سند بهشمار میرود.
- زمانِ فاشسازی از پیش اعلام میشود تا تأخیر قابلِ تشخیص باشد.
صریح میگوییم تا کسی بعداً حس نکند بیش از آنچه هست به او فروختهایم.
ممیزی
چه کسی میتواند ممیزی کند
پروندهٔ راستیآزمایی بهعمد در قالبی منتشر میشود که هیچ ابزارِ اختصاصی برای خواندنش لازم نباشد. هر کسی که پرونده را داشته باشد میتواند ممیزِ آن قرعه باشد و برای این کار نه اجازهٔ ما لازم است نه حسابِ کاربری.
- نمایندهٔ کارکنان و تشکلهای صنفی
- بازرسی، حراست و حسابرسِ داخلی
- حسابرس یا مشاورِ بیرونیِ موردِ اعتمادِ سازمان
- خودِ کارمندِ معترض، بدونِ واسطه
در خودِ سامانه هم نقشِ «ناظر» با دسترسیِ فقطخواندنی به همهٔ مراحل تعریف شده است.
قابلیتهایی که زیرِ این روش مینشینندپرسشهای پرتکرار
آنچه دربارهٔ قرعه بیشتر پرسیده میشود
برای راستیآزمایی، کارمند باید سوادِ فنی داشته باشد؟
خیر. کارمند صفحهٔ نتیجهٔ دوره را باز میکند و یک دکمه میزند: «اجرای دوبارهٔ قرعهکشی در همین مرورگر». محاسبه روی دستگاهِ خودش انجام میشود و در چند ثانیه چهار خطِ سبز یا قرمز نشان داده میشود که هرکدام به زبانِ ساده میگوید چه چیزی بررسی شده است. برای کسانی که میخواهند عمیقتر بروند، متنِ الگوریتم هم منتشر شده تا هر برنامهنویسی بتواند مستقل بازنویسیاش کند.
اگر کارمندی به نتیجهٔ قرعه کشی اعتراض کند، چه میکنیم؟
اعتراضها دو نوعاند و پاسخِ هرکدام فرق میکند. اگر اعتراض به امتیاز یا شرایط است، جایش پیش از بستنِ فهرست و در مهلتِ رسمیِ اعتراض است؛ پس از قفلشدنِ فهرست دیگر چیزی تغییر نمیکند و همین محدودیت است که به همه اطمینان میدهد فهرست بعداً دستکاری نشده. اگر اعتراض به خودِ قرعه است، کافی است پروندهٔ راستیآزمایی را بردارد و قرعه را دوباره اجرا کند؛ اگر نتیجه یکی درآمد، پاسخ بدونِ نیاز به بحث داده شده، و اگر یکی درنیامد، این یک ایرادِ واقعی است و باید فوراً متوقف و بررسی شود.
پاسخِ مفصل: اعتراض به نتیجهٔ قرعهکشیِ مهمانسرای کارکنان؛ دو نوع اعتراض، دو پاسخِ متفاوت
چه کسی میتواند قرعهکشی را ممیزی کند؟
هر کسی که پروندهٔ راستیآزمایی را داشته باشد — و این پرونده عمومی است. نمایندهٔ کارکنان و تشکلهای صنفی، بازرسی و حراست، حسابرسِ داخلی یا مشاورِ بیرونیِ موردِ اعتمادِ سازمان، و خودِ کارمندِ معترض بدونِ واسطه. برای ممیزی نه اجازهٔ ما لازم است، نه حسابِ کاربری، نه ابزارِ اختصاصی. در خودِ سامانه هم نقشِ «ناظر» با دسترسیِ فقطخواندنی به همهٔ مراحل تعریف شده است.
پاسخِ مفصل: چکلیستِ بازرسی و حسابرسیِ داخلیِ امورِ رفاهی؛ پانزده پرسش برای یک دورهٔ تخصیصِ مهمانسرا
آیا نامِ کارکنان بهصورتِ عمومی منتشر میشود؟
بهصورتِ پیشفرض، فهرستِ عمومی با کدِ مستعار منتشر میشود، نه با نام و شمارهٔ پرسنلی؛ هر کارمند کدِ خودش را میبیند و میتواند خودش را در فهرست پیدا کند. توصیهٔ ما این است که کدها پیش از بستنِ فهرست به خودِ افراد اعلام شود تا هر کس از قبل بداند کدش چیست. اگر سازمان بخواهد فهرست با نام منتشر شود، این یک تنظیم است و انتخابش با شماست؛ راستیآزمایی در هر دو حالت یکسان کار میکند.
ما سهمیههای مصوب داریم. آیا سهمیه با بیطرفیِ قرعه تعارض ندارد؟
تعارضی ندارد، به یک شرط: سهمیه باید پیش از قرعه اعلام و بخشی از فهرستِ قفلشده باشد. در آن صورت سهمیه هم زیرِ همان اثرانگشتِ منتشرشده میرود و قابلِ راستیآزمایی میشود. سامانه در گزارشِ دوره، «سهمِ قطعی» را از «سهمِ قرعه» جدا نشان میدهد تا معلوم باشد هر تخصیص از کدام مسیر آمده است. آنچه پذیرفتنی نیست سهمیهٔ اعلامنشده یا تغییرِ سهمیه پس از دیدنِ نتیجه است — و دقیقاً همین است که این روش جلویش را میگیرد.
پاسخِ مفصل: سهمیهٔ مهمانسرای کارکنان و قرعهکشی؛ چطور هر دو را در یک دوره داشته باشیم
اگر برندهای انصراف بدهد، باید دوباره قرعهکشی کنیم؟
خیر. فهرستِ ذخیره در همان اجرای اول و با همان بذر ساخته میشود، پس ترتیبِ جایگزینها از پیش مشخص و خودش هم قابلِ راستیآزمایی است. انصراف با ثبتِ دلیل و زمان انجام میشود و نفرِ بعدیِ فهرستِ ذخیره بهصورتِ خودکار جایگزین میشود؛ واحدِ مهمانسرا خالی نمیماند. این یکی از نقطههایی است که در روشهای سنتی بیشترین گمان را ایجاد میکند، چون جایگزینی معمولاً پشتِ درِ بسته انجام میشد.
میخواهید روی دورهٔ خودتان ببینیدش؟
در جلسهٔ نمایش، یک دورهٔ فرضی با ساختارِ امتیازِ خودِ سازمانِ شما تعریف میکنیم و کلِ چرخه — از بستنِ فهرست تا اجرای دوباره در مرورگر — جلوی چشمِ شما انجام میشود.