<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های علی جوان</title><link>https://virgool.ir/feed/@m_47371444</link><description></description><language>fa</language><pubDate>2026-11-11 19:11:17</pubDate><image><url>https://virgool.ir/images/default-avatar.jpg</url><title>علی جوان</title><link>https://virgool.ir/@m_47371444</link></image><item><title>دوست دارم؛ اولین قرعه‌کشی Open Source در ایران چگونه کار می‌کند؟</title><link>https://virgool.ir/@m_47371444/دوست-دارم-اولین-قرعه-کشی-open-source-در-ایران-چگونه-کار-می-کند-qpiffbpijxlv</link><description>اگر عبارت «دوست دارم» را در گوگل جستجو کنید، احتمالاً قبل از هر چیز با آهنگ‌ها، شعرها و متن‌های عاشقانه روبه‌رو می‌شوید. اما «دوست دارم» نام یک پلتفرم ایرانی هم هست؛ پلتفرمی برای ثبت خواسته‌ها و آرزوهایی که آدم‌ها دوست دارند روزی به آن‌ها برسند.یکی از بخش‌های جالب این پلتفرم اما ارتباط مستقیمی با خود آرزوها ندارد.دوست دارم تلاش کرده قرعه‌کشی خود را از یک جعبه سیاه خارج کند و آن را به فرایندی متن‌باز و قابل بازسازی تبدیل کند.یعنی قرار نیست کاربران فقط نتیجه نهایی را ببینند و جمله همیشگی «قرعه‌کشی به‌صورت کاملاً تصادفی انجام شد» را باور کنند.فایل ورودی، اثر انگشت دیجیتال فایل، الگوریتم انتخاب و حتی نمونه کدهای برنامه‌نویسی برای بازسازی قرعه‌کشی در اختیار عموم قرار می‌گیرد.ایده ساده است:اگر نتیجه یک قرعه‌کشی واقعاً سالم است، چرا امکان بررسی آن را به مردم ندهیم؟مشکل قدیمی قرعه‌کشی‌های اینترنتیتقریباً همه ما این صحنه را دیده‌ایم.یک فروشگاه، صفحه اینستاگرامی، شرکت یا مجموعه‌ای اعلام می‌کند که مثلاً بین ۲۰ هزار نفر قرعه‌کشی کرده و چند نفر برنده شده‌اند.بعد هم فیلمی از گردونه، نرم‌افزار قرعه‌کشی یا صفحه مانیتور منتشر می‌شود.اما یک سؤال همچنان باقی است:از کجا معلوم؟کاربر نمی‌داند فهرست واقعی شرکت‌کنندگان چه بوده است.نمی‌داند الگوریتم انتخاب برنده چگونه کار می‌کند.نمی‌داند آیا امکان حذف یا اضافه کردن افراد وجود داشته است.و حتی نمی‌تواند مطمئن شود همان چیزی که در فیلم دیده، واقعاً مبنای اعلام نتیجه بوده است.در نهایت تقریباً همه‌چیز به یک جمله ختم می‌شود:به برگزارکننده اعتماد کنید.شاید وقت آن رسیده باشد این فرهنگ تغییر کند.اگر برگزارکنندگان قرعه‌کشی‌های بزرگ به‌جای درخواست اعتماد، امکان راستی‌آزمایی نتیجه را فراهم کنند، بخش بزرگی از بی‌اعتمادی کاربران به قرعه‌کشی‌های اینترنتی هم می‌تواند کم شود.قرعه‌کشی Open Source یعنی چه؟Open Source یا متن‌باز را بیشتر درباره نرم‌افزارها شنیده‌ایم.اما ایده آن را می‌توان در قرعه‌کشی هم به کار برد.در ساده‌ترین حالت، برگزارکننده به‌جای مخفی نگه‌داشتن الگوریتم انتخاب برنده، آن را منتشر می‌کند تا برنامه‌نویسان و متخصصان مستقل بتوانند بررسی کنند دقیقاً چه اتفاقی می‌افتد.ولی این تازه اول ماجراست.چون صرف انتشار چند خط کد هنوز یک مشکل اساسی دارد:از کجا معلوم همان کد روی همان اطلاعات اجرا شده باشد؟اینجاست که روش استفاده‌شده در قرعه‌کشی «دوست دارم» جالب‌تر می‌شود.دوست دارم چطور قرعه‌کشی را قابل بررسی کرده است؟در پلتفرم دوست دارم، هنگام ورود یک دوره به مرحله قرعه‌کشی، ورودی‌های آن دوره قفل می‌شوند.یعنی دریافت کوپن جدید، ورود آرزوی جدید به صندوق، مشاهده تبلیغ برای دریافت کوپن و ویرایش آرزوهای حاضر در آن دوره متوقف می‌شود.سپس یک فایل عمومی از کوپن‌های حاضر در قرعه‌کشی ساخته می‌شود.کاربر می‌تواند این فایل را دانلود کند و حتی شماره کوپن خودش را داخل آن پیدا کند.اما قسمت فنی جالب ماجرا از اینجا شروع می‌شود.اثر انگشت دیجیتال فایل با SHA256برای فایل رسمی کوپن‌ها یک SHA256 محاسبه می‌شود.اگر خیلی فنی نباشیم، می‌توان SHA256 را نوعی «اثر انگشت دیجیتال» برای فایل در نظر گرفت.حتی یک تغییر بسیار کوچک در فایل، خروجی SHA256 آن را تغییر می‌دهد.در سیستم دوست دارم، SHA256 دقیقاً از همان فایل عمومی گرفته می‌شود که کاربران امکان دانلود آن را دارند.بعد برای رتبه‌بندی هر کوپن از ترکیب هش فایل، شماره کوپن و رمز ثابت همان دوره استفاده می‌شود:SHA256(file_hash + coupon_code + slogan)خروجی‌های به‌دست‌آمده مرتب می‌شوند و همین ترتیب، ترتیب بررسی کوپن‌ها در قرعه‌کشی را مشخص می‌کند.یعنی با داشتن فایل عمومی و اطلاعات اعلام‌شده، یک برنامه‌نویس مستقل می‌تواند همان محاسبات را روی کامپیوتر خودش انجام دهد.این تفاوت مهمی با نمایش یک فیلم از اجرای نرم‌افزار قرعه‌کشی دارد.حتی لازم نیست حرف خود سایت را باور کنیدبه نظرم جذاب‌ترین قسمت این سیستم همین‌جاست.دوست دارم در صفحه راهنمای قرعه‌کشی خودش یک «آزمایشگاه قرعه‌کشی» قرار داده است.می‌توانید فایل نمونه را دانلود کنید، دوباره همان فایل را به ابزار بدهید و SHA256 و ترتیب بازسازی‌شده کوپن‌ها را مشاهده کنید.پردازش این آزمایش نیز طبق توضیح سایت داخل مرورگر انجام می‌شود و فایل برای محاسبه به سرور ارسال نمی‌شود.اما باز هم ممکن است کسی بگوید:«خب این ابزار هم روی سایت خودشان است؛ چرا باید به آن اعتماد کنم؟»پاسخش جالب است:لازم نیست.سورس را بردارید و خودتان قرعه‌کشی را اجرا کنیددر همان صفحه، نمونه کد مستقل برای سه زبان برنامه‌نویسی Python، PHP و JavaScript منتشر شده است.این کدها فایل نمونه را دریافت می‌کنند، SHA256 آن را بررسی می‌کنند و ترتیب کامل کوپن‌ها را دوباره می‌سازند.یعنی اگر برنامه‌نویس باشید، می‌توانید کد را بردارید و روی سیستم خودتان اجرا کنید.حتی لازم نیست از ابزار آنلاین خود پلتفرم استفاده کنید.این دقیقاً همان نقطه‌ای است که مفهوم «Open Source» از یک عبارت تبلیغاتی فاصله می‌گیرد و تبدیل به چیزی قابل آزمایش می‌شود.برای کسانی که دوست دارند جزئیات کامل روش را ببینند، فایل نمونه را دانلود کنند، SHA256 فایل را بررسی کنند یا نمونه سورس‌های Python، PHP و JavaScript را اجرا کنند، راهنمای کامل قرعه‌کشی متن‌باز دوست دارم در سایت این پلتفرم منتشر شده است.چرا SHA256 فایل مهم است؟فرض کنید برگزارکننده فهرستی شامل ۱۰۰ هزار کوپن منتشر کند.اگر بعداً بتواند یک کوپن را به این فایل اضافه کند، یکی را حذف کند یا ترتیب داده‌ها را تغییر دهد، امکان دستکاری ورودی قرعه‌کشی وجود خواهد داشت.اینجاست که هش فایل اهمیت پیدا می‌کند.SHA256 به خود فایل وابسته است.اگر حتی بخش کوچکی از فایل تغییر کند، هش جدید با هش قبلی متفاوت خواهد شد.بنابراین وقتی اثر انگشت فایل مشخص باشد، تغییر دادن مخفیانه همان فایل بدون تغییر هش ممکن نیست.این دقیقاً از آن چیزهایی است که دوست دارم سایر برگزارکنندگان قرعه‌کشی هم از آن استفاده کنند.قرار نیست همه دقیقاً سیستم «دوست دارم» را کپی کنند؛ مسئله مهم‌تر، فرهنگ قابل‌راستی‌آزمایی کردن قرعه‌کشی‌هاست.آیا این سیستم واقعاً Open Source است؟یک نکته ظریف اینجا وجود دارد.منظور از Open Source در قرعه‌کشی دوست دارم این نیست که کل سایت، دیتابیس، سیستم مالی یا اطلاعات خصوصی کاربران در اینترنت منتشر شده باشد.چیزی که برای راستی‌آزمایی قرعه‌کشی لازم است منتشر می‌شود:فایل ورودی قابل بررسی، الگوریتم، فرمول محاسبه و کد لازم برای بازسازی ترتیب قرعه‌کشی.اطلاعات خصوصی کاربران نیز قرار نیست برای رسیدن به این شفافیت عمومی شود؛ برای مثال شماره موبایل در فایل عمومی به‌صورت ماسک‌شده نمایش داده می‌شود.این تفکیک مهم است؛ چون شفافیت نباید به قیمت نقض حریم خصوصی کاربران تمام شود.آیا Open Source بودن یعنی دیگر هیچ امکانی برای تقلب وجود ندارد؟نه، و چنین ادعایی هم منطقی نیست.شفافیت یک سیستم را باید بر اساس تمام زنجیره بررسی کرد، نه فقط چند خط الگوریتم.مثلاً باید مشخص باشد ورودی چه زمانی قفل شده، فایل عمومی چگونه ساخته شده، چه داده‌ای در محاسبات استفاده شده و نتیجه نهایی چگونه به دست آمده است.اما مزیت سیستم قابل بازسازی این است که قسمت مهمی از این فرایند دیگر پشت درهای بسته اتفاق نمی‌افتد.هرچه بخش بیشتری از فرایند قابل بررسی مستقل باشد، نیاز به اعتماد کورکورانه کمتر می‌شود.کاش این روش تبدیل به فرهنگ شودشاید مهم‌ترین قسمت ماجرا اصلاً خود «دوست دارم» نباشد.مسئله مهم‌تر فرهنگی است که چنین روشی می‌تواند ایجاد کند.تصور کنید چند سال دیگر وقتی یک فروشگاه یا شرکت بزرگ اعلام می‌کند:«بین مشتریان قرعه‌کشی کردیم.»اولین سؤال مردم این نباشد که:«فیلم قرعه‌کشی رو گذاشتین؟»بلکه بپرسند:«امکان راستی‌آزمایی نتیجه کجاست؟»اگر این مطالبه شکل بگیرد، برگزارکنندگان هم به‌تدریج مجبور می‌شوند روش‌های شفاف‌تری طراحی کنند.و شاید بخشی از اعتمادی که طی سال‌ها نسبت به قرعه‌کشی‌های اینترنتی از بین رفته، دوباره برگردد.از این جهت، فارغ از اینکه کسی کاربر پلتفرم دوست دارم باشد یا نه، ایده‌ای که این پروژه اجرا کرده ارزش بررسی دارد.کاش مجموعه‌های بیشتری به‌جای ساختن یک «جعبه سیاه» و درخواست اعتماد از کاربران، اجازه دهند مردم و متخصصان مستقل سازوکار انتخاب برندگانشان را بررسی کنند.شفافیت باید قابل آزمایش باشدعبارت‌هایی مثل «کاملاً شفاف»، «صددرصد تصادفی» و «بدون دخالت انسانی» را تقریباً هر برگزارکننده‌ای می‌تواند بنویسد.نوشتن این جمله‌ها هزینه‌ای ندارد.چیزی که اهمیت دارد، قابل آزمایش بودن ادعاست.اگر فایلی وجود دارد، کاربر بتواند آن را دریافت کند.اگر الگوریتمی وجود دارد، متخصص بتواند آن را ببیند.اگر نتیجه‌ای تولید شده، تا جای ممکن امکان بازسازی مستقل آن وجود داشته باشد.پلتفرم دوست دارم با انتشار فایل نمونه، روش محاسبه SHA256، الگوریتم رتبه‌بندی و نمونه سورس‌های برنامه‌نویسی تلاش کرده قرعه‌کشی را در همین مسیر قرار دهد.امیدوارم این ایده محدود به یک پلتفرم باقی نماند.کاش روزی «قرعه‌کشی قابل راستی‌آزمایی» به‌جای یک ویژگی خاص، تبدیل به استانداردی عادی برای قرعه‌کشی‌های اینترنتی ایران شود.چون برای برگرداندن اعتماد مردم، شاید بهترین جمله این نباشد که:«به ما اعتماد کنید.»جمله بهتر این است:«لازم نیست اعتماد کنید؛ خودتان بررسی کنید.»منبع: https://doostdaram.com/draw-guide</description><category>علی جوان</category><author>علی جوان</author><pubDate>Fri, 04 Sep 2026 16:15:10 +0330</pubDate></item></channel></rss>