پرش به محتوای اصلی

شفافیت قرعه‌کشی

قرعه‌کشی منصفانه چیست و چطور راستی‌آزمایی می‌شود

قفل شدن فهرست، وزن یکسان بلیت، و نقش عدد تصادفی عمومی مثل drand در بررسی بعدی نتیجه، به زبان ساده و بدون وعده برد.

تحریریه یاشانس۷ دقیقه مطالعه

هم‌رسانی

منصفانه بودن قرعه با هیجان صحنه یکی نیست. تماشاگر می‌تواند گردونه را ببیند و باز هم راهی برای فهمیدن نداشته باشد که نتیجه از قبل معلوم بوده یا بعد از دیدن نام‌ها عوض شده است. قرعه‌کشی منصفانه، در معنای قابل‌بررسی، چند ویژگی کسل‌کننده و مشخص دارد. این مقاله همان ویژگی‌ها را می‌گوید و یکی از ابزارهای عدد تصادفی عمومی، به نام drand، را در حدی که برای یک خواننده غیرفنی لازم است توضیح می‌دهد.

قبل از قرعه باید چه چیزی ثابت شده باشد

اول، فهرست شرکت‌کنندگان باید قبل از تولید عدد تصادفی بسته شود. بستن یعنی بعد از یک لحظه اعلام‌شده، نه بلیت تازه‌ای وارد انتخاب شود و نه بلیت موجودی حذف شود، مگر با قاعده‌ای که از قبل نوشته شده و خودش هم قابل‌حسابرسی است. اگر برگزارکننده بعد از دیدن تصادف بتواند نام اضافه کند، انصاف از بین رفته حتی اگر عدد تصادفی سالم باشد.

دوم، وزن هر بلیت باید معلوم باشد. ساده‌ترین حالت این است که هر بلیت یک سهم داشته باشد. اگر کسی با پرداخت بیشتر چند سهم دارد، آن تعداد باید در فهرست قفل‌شده دیده شود نه در ذهن برگزارکننده. سوم، تابع انتخاب باید پیش از قرعه نوشته شده باشد: از عدد تصادفی به یک شماره ردیف در همان فهرست. دو نفر که فهرست و عدد و تابع را دارند باید به یک برنده برسند.

سه شرطی که مقاله پیش از قرعه لازم می‌داند
شرطمعنی در این مقاله
بستن فهرستبعد از لحظه اعلام‌شده، بلیت تازه وارد انتخاب نمی‌شود
وزن معلومتعداد سهم در فهرست قفل‌شده دیده می‌شود، نه فقط در ذهن برگزارکننده
تابع از پیش نوشتهاز عدد تصادفی به یک ردیف؛ دو ناظر با همان ورودی به یک برنده می‌رسند

تصادفی بودن کافی نیست

عدد تصادفی اگر مخفی بماند، فقط ادعا است. عدد اگر پیش از بستن فهرست معلوم باشد، برگزارکننده یا هر کس دیگری که آن را دیده می‌تواند شرکت را طوری تنظیم کند که ردیف دلخواه در بیاید. پس دو شرط زمانی لازم است. عدد باید تا لحظه مقرر پیش‌بینی‌ناپذیر باشد، و بعد از انتشار باید بشود ثابت کرد همان عددی است که فرایند گفته بود، نه عددی که بعداً عوض شده است.

قرعه‌کشی تلویزیونی این دو شرط را با تشریفات و ناظر پر می‌کند. تشریفات بد نیستند، ولی برای کسی که پای تلویزیون نیست سخت‌تر بازسازی می‌شوند. روش‌های رمزنگاری تلاش می‌کنند بازسازی را به‌جای اعتماد به تصویر، به محاسبه بسپارند.

drand به زبان ساده

drand یک چراغ راهنمای تصادفی عمومی است که گروهی به نام League of Entropy آن را اداره می‌کنند. در هر دور، یک مقدار منتشر می‌شود. این مقدار امضایی است که با کلید عمومی همان گروه جور درمی‌آید. هر کس می‌تواند امضا را بررسی کند. لازم نیست به یک شرکت خاص اطمینان کند که «ما خودمان عدد را ساخته‌ایم»، چون ساختن مقدار به مشارکت چند طرف وابسته است و یک طرف به‌تنهایی نباید بتواند دور را جعل کند.

دورها طبق برنامه زمانی مشخص منتشر می‌شوند. فاصله دقیق را باید از پیکربندی همان شبکه خواند، چون ممکن است زنجیره‌های مختلف فاصله متفاوتی داشته باشند. برای فهم انصاف، همین کافی است که انتشار در زمان از پیش معلوم انجام شود و قبل از آن زمان، مقدار دور قابل پیش‌بینی نباشد. بعد از انتشار، دیر کردن یا زود ادعا کردن فایده ندارد: مقدار همان است که روی شبکه عمومی ثبت شده است.

چسباندن قرعه به یک دور مشخص

یک طرح ساده این است. برگزارکننده پیش از بستن ورودی‌ها اعلام کند برنده از دور شماره فلان drand، بعد از ساعت مقرر، محاسبه می‌شود. سپس فهرست را قفل و منتشر می‌کند، یا دست‌کم اثر انگشت رمزنگاری‌شده فهرست را منتشر می‌کند تا بعداً نشود سطری را بی‌صدا عوض کرد. وقتی مقدار آن دور منتشر شد، آن مقدار را به یک عدد در محدوده تعداد سهم‌ها تبدیل می‌کند و ردیف متناظر را برنده می‌خواند.

بررسی بعدی برای یک ناظر بیرونی سه فایل لازم دارد: فهرست قفل‌شده، مقدار و امضای همان دور، و شرح تابع تبدیل. اگر امضا با کلید عمومی اعلام‌شده نخواند، مقدار اعتباری ندارد. اگر فهرست با اثر انگشت قبلی نخواند، نام‌ها عوض شده‌اند. اگر تابع روی این دو ورودی برنده دیگری بسازد، اعلام برگزارکننده غلط است. هیچ‌کدام از این قدم‌ها نمی‌گوید جایزه نصیب شما می‌شود. فقط می‌گوید اگر نتیجه اعلام شد، می‌شود آن را دوباره حساب کرد.

چه چیزی هنوز به اعتماد نیاز دارد

عدد عمومی، درستی فهرست را جادو نمی‌کند. اگر اسمی از اول در فهرست نیامده باشد، بهترین تصادف جهان هم آن را برنمی‌گرداند. اگر نرم‌افزار برگزارکننده موقع ساخت فهرست تقلب کرده باشد و اثر انگشت همان فهرست بد را منتشر کرده باشد، ناظر تطابق را می‌بیند و تقلب را نه، مگر راه دیگری برای دیدن بلیت‌های اصلی داشته باشد. انصاف قابل‌بررسی یعنی کاهش نقطه اعتماد، نه حذف نیاز به ثبت درست ورودی‌ها.

همچنین drand جایگزین قاعده بازی نیست. باید از قبل معلوم باشد تساوی‌ها، بلیت‌های باطل، و قطع شبکه چطور حل می‌شوند. اگر در لحظه قرعه شبکه دیر کند، صبر برای همان دورِ اعلام‌شده درست‌تر است از عوض کردن منبع تصادف در سکوت. عوض کردن منبع بعد از دیدن فروش، همان مشکلی است که قفل فهرست می‌خواست جلویش را بگیرد.

اشتباه گرفتن شفافیت با احتمال

گاهی تبلیغ، قابل‌بررسی بودن را طوری می‌گوید که انگار شانس بازیکن بیشتر شده است. این دو موضوع بی‌ربط‌اند. یک قرعه کاملاً قابل‌حسابرسی همچنان می‌تواند احتمال یک بر چند میلیون داشته باشد. شفافیت جلوی دستکاری را می‌گیرد. توزیع جایزه را عوض نمی‌کند. اگر متنی این دو را قاطی کرد، یا نویسنده عجله داشته یا مخاطب را دست‌کم گرفته است.

برای محصولی که هنوز قرعه زنده را روشن نکرده، توضیح drand یک تعهد آینده است نه گزارش یک برد انجام‌شده. خواننده باید میان «می‌شود چنین ساخت» و «این قرعه خاص همین مسیر را رفته» فرق بگذارد. دومی فقط با مدرک همان قرعه ثابت می‌شود: شماره دور، فهرست و خروجی تابع.

یک مثال عددی بدون جادو

فرض کنید فهرست قفل‌شده هزار سهم دارد و سهم‌ها از صفر تا ۹۹۹ شماره‌گذاری شده‌اند. مقدار عمومی دور drand یک رشته بلند است. تابع از پیش نوشته‌شده، مثلاً، آن رشته را به یک عدد صحیح تبدیل می‌کند و باقیمانده تقسیم بر هزار را ردیف برنده می‌گیرد. ناظر لازم نیست به برگزارکننده اعتماد کند که «باقیمانده همین شد». خودش تقسیم را تکرار می‌کند. اگر نتیجه فرق داشت، اعلام غلط است. اگر یکی بود، دست‌کم این قدم سالم است.

همین مثال نشان می‌دهد چرا جزئیات تابع باید قبل از انتشار مقدار دور ثابت شده باشد. اگر برگزارکننده بعد از دیدن رشته تصمیم بگیرد به‌جای باقیمانده، رقم دیگری از میانه رشته را بردارد، دیگر راستی‌آزمایی معنی ندارد. انتخاب تابع بعد از دیدن تصادف، همان قدرت یک‌طرفه‌ای است که قفل فهرست می‌خواست حذف کند. کسل‌کننده بودن مثال عمدی است. انصاف قابل‌بررسی معمولاً کسل‌کننده است و نمایشی نیست.

همچنین باید معلوم باشد سهم‌های باطل کجا از شمارش حذف شده‌اند. اگر بعد از قفل، ده سهم به‌خاطر پرداخت ناموفق بیرون بروند، محدوده تقسیم عوض می‌شود و باید همان تغییر با قاعده قبلی قابل توضیح باشد. سکوت درباره سهم باطل، راه کلاسیکِ جابه‌جا کردن برنده بدون دست زدن به عدد تصادفی است. عدد سالم به فهرست ناسالم اعتبار نمی‌دهد.

برای خواننده‌ای که رمزنگاری نمی‌داند، معیار عملی این است: آیا می‌تواند از یک شخص ثالث بخواهد با ابزار عمومی، امضای دور را بررسی کند و ردیف را دوباره حساب کند؟ اگر پاسخ برگزارکننده این باشد که «فقط نرم‌افزار خودمان می‌فهمد»، ادعای عدد عمومی ناقص است. drand دقیقاً برای این ساخته شده که بررسی به یک شرکت منحصر نباشد. استفاده از اسم آن بدون منتشر کردن شماره دور و کلید عمومی مرجع، فقط واژه‌سازی است.

در محصولی که قرعه زنده هنوز پشت دروازه است، این شرح یک استاندارد است نه گزارش عملکرد دیروز. استاندارد را زود نوشتن بهتر از اختراع کردنش شب مسابقه است. بازیکن هم باید همین انتظار را داشته باشد: مدرک، نه اطمینان‌بخشی شفاهی.

جمع‌بندی

قرعه‌کشی منصفانه یعنی فهرست بسته، وزن معلوم، تابع از پیش نوشته‌شده، و عدد تصادفی‌ای که پیش از موعد قابل پیش‌بینی نباشد و بعداً قابل بررسی باشد. drand یکی از راه‌های تأمین آن عدد به‌صورت عمومی است، چون دورهایش امضا می‌شوند و یک اپراتور به‌تنهایی نباید بتواند مقدار را جعل کند. راستی‌آزمایی کار سختی برای نمایش است و کار روشنی برای محاسبه.

بازی مسئولانه کنار این بحث فنی باقی می‌ماند. فهمیدن امضا، دلیلی برای بیشتر بازی کردن نیست. مبلغ بازی را محدود و جدا از خرج ضروری نگه دارید. توضیح انصاف، احتمال برد شما را در هیچ قرعه‌ای بالا نمی‌برد.

پرسش‌های متداول

فهرست بسته، وزن معلوم هر بلیت، و تابع انتخاب که از قبل نوشته شده باشد و از عدد تصادفی به یک ردیف برسد.

چراغ راهنمای تصادفی عمومی که League of Entropy آن را اداره می‌کند. هر دور یک مقدار امضاشده منتشر می‌شود که با کلید عمومی گروه جور درمی‌آید. یک طرف به‌تنهایی نباید بتواند دور را جعل کند.

فهرست قفل‌شده، مقدار و امضای همان دور، و شرح تابع تبدیل.

سهم‌ها از صفر تا ۹۹۹ شماره‌گذاری شده‌اند و باقیمانده تقسیم عدد دور بر هزار، ردیف برنده است. ناظر خودش تقسیم را تکرار می‌کند.

نه. مقاله این دو را بی‌ربط می‌داند. شفافیت جلوی دستکاری را می‌گیرد و توزیع جایزه را عوض نمی‌کند.

منابع: درند، کلودفلر، آی‌تریپل‌ای، نیست

قرعه‌کشی منصفانه چیست و چطور راستی‌آزمایی می‌شود — یاشانس