موضوع این مطلب در خصوص آشنایی با مفهوم نتایج تصادفی (Randomness) در بلاک چین و وب 3 است اما اعداد تصادفی چیست و چرا در بلاک چین و وب 3 اهمیت دارند؟ به دلیل اهمیت آن، بدون تصادفی بودن، هیچ رمزنگاری نامتقارن وجود نخواهد داشت که طرح امنیتی ارزهای دیجیتال را ممکن کند. در واقع، بدون تصادفی بودن، رایانهها، اینترنت و حتی تلفن همراه شما با آنچه امروز هستند بسیار متفاوت خواهند بود و احتمالاً دستگاههایی ناامن نیز خواهند بود.
مقدمه ای بر نتایج تصادفی
یک عدد تصادفی عددی است که به طور تصادفی از یک توزیع مشخص انتخاب شده است، به طوری که انتخاب مجموعه بزرگی از این اعداد توزیع زیربنایی را بازتولید می کند. تقریباً همیشه لازم است چنین نتایجی مستقل باشند، به طوری که بین اعداد متوالی همبستگی وجود نداشته باشد.
نتایج تصادفی از زمان وجود کامپیوترها مشکل ساز بوده اند. ممکن است فکر کنید که استفاده از یک تابع تصادفی در زبان برنامه نویسی مورد علاقه شما یک عدد واقعا تصادفی تولید می کند اما همه این روش ها از نظر علمی مولدهای شبه تصادفی نامیده می شوند. مواردی وجود داشته است که برخی از برنامههای وابسته به شدت تصادفی، ماهیت قطعی نشان میدهند و شامل الگوهایی می شوند که به راحتی قابل تشخیص هستند.
با قراردادهای هوشمند و بلاک چین، مشکل نتایج تصادفی از این هم فراتر می رود. اگر پروژه شما به شدت به اعداد تصادفی وابسته نباشد، میتوان با هش کردن برخی از دادههای منحصربهفرد، اعداد تصادفی را در بلاک چین تقلید کرد. اما اگر NFTها را توزیع کنید و محصول شما توجه جامعه قابل توجهی را به خود جلب کند و منابع مالی قابل توجهی را به خود جلب کند، هدف هکرها خواهید بود.
آغاز نتایج تصادفی در دنیای دیجیتال
تصادفی بودن برای مدت طولانی توسط بشر مورد استفاده قرار گرفته است. از پرتاب تاس، استخوان یا کارت خوانی برای دانستن آینده خود تا سایر کاربردهای آیینی. با این حال، تا قرون وسطی، (زمانی که تصادفی بودن به طور رسمی مورد مطالعه قرار گرفت)، مطرح نبود.
در واقع یکی از کاربردهای اصلی تصادفی بودن مربوط به بررسی عدد پی و شکل تصادفی و نامتناهی اعداد اعشاری آن بود. ریاضیدانان علاقه مند به این واقعیت شروع به مشاهده چگونگی تکرار این پدیده در فضاهای دیگر کردند.
اما با ظهور پایه های ریاضی احتمال و مبانی الگوریتمی، کاربرد تصادفی به طور تصاعدی رشد کرد. به عنوان مثال، تصادفی بودن برای مطالعات فیزیک، به ویژه فیزیک کوانتومی، ابتدایی است. در محاسبات، استفاده از تصادفی بودن برای ساخت الگوریتم ها، تراشه ها و البته رمزنگاری، یکی از فناوری های اساسی در ایجاد دنیای دیجیتال و امنیت آن، ابتدایی است.
تصادفی بودن و اهمیت آن
حال، چرا تولید نتایج تصادفی اینقدر مهم است؟ نتایج تصادفی در بلاک چین و وب 3 چه کاربردی دارد؟ حقیقت این است که تولید یک عدد تصادفی چیزی بسیار رایج و ضروری در مورد امنیت کامپیوتر است.
به عنوان مثال، هر بار که با استفاده از اتصال HTTPS (اتصال HTTP ایمن) به یک وب در اینترنت وصل میشوید، اتفاقی که میافتد این است که رایانه/موبایل شما به وب سرور متصل میشود و آنها پیامهایی را مبادله میکنند تا یک اتصال ایمن بین آن دو رایانه ایجاد کنند. این فرآیند به لطف استفاده از اعداد تصادفی و اجرای آنها در رمزنگاری که از ارتباطات دیجیتال ما محافظت می کند، امکان پذیر است.
البته این تنها یک نمونه از اهمیت تصادفی بودن در دنیای دیجیتال ماست. تصادفی بودن در موارد ساده ای وجود دارد مانند کارت اعتباری شما، اتصال بی سیم تلفن همراه شما. (اتصالات 3G، 2G و 5G از رمزنگاری نامتقارن استفاده می کنند.)
نتایج تصادفی در بلاک چین
اکنون از آنجایی که بلاک چین یک فناوری دیجیتالی است که برای تامین امنیت کاربرانش طراحی شده است، تصادفی بودن در این زمینه نیز وجود دارد. ما میتوانیم استفاده از تصادفی بودن در بلاک چین را در یکی از نکات اساسی این فناوری ببینیم: رمزنگاری و چون رمزنگاری نامتقارن مورد استفاده ارزهای دیجیتال به لطف استفاده از نتایج تصادفی ساخته شده است اهمیت نتایج تصادفی در بلاک چین مشهود است. به عنوان مثال، هنگام ایجاد یک بیتکوین کلیدی با استفاده از طرح ECDSA و منحنی secp256k1، کاری که کیف پول بیتکوین انجام میدهد این است که یک عدد تصادفی (یک عدد بسیار بزرگ) را انتخاب کرده و از آن عدد در این فرمولبندی ریاضی استفاده میکند:
y^2 = x^3 + ax + b
اطمینان از اینکه تصادفی بودن به اندازه کافی "بی نظم و منحصر به فرد" است، کاری است که کامپیوترها می توانند به خوبی انجام دهند. و در عین حال، آنها می توانند محاسبات لازم را برای حل این فرمول در زمان بسیار کوتاهی انجام دهند و به ما امکان دسترسی به یکی از امن ترین اشکال رمزنگاری شناخته شده تا به امروز را بدهند.
همه اینها برای یک هدف: ایجاد دو کلید (عمومی و خصوصی) برای مدیریت ایمن BTC ما در یک شبکه غیرقابل اعتماد و با اطمینان از اینکه BTC ما توسط اصول محاسباتی و ریاضی به طور گسترده آزمایش شده محافظت می شود.
تکامل تصادفی بودن بلاک چین
البته فناوری بلاک چین نیز در حال تکامل است و استفاده از تصادفی بودن آن نیز در حال پیشرفت است. با علم به اینکه کامپیوترها نمی توانند یک مولد تصادفی واقعی را نشان دهند (هرج و مرج و نظم نمی توانند در یک الگوریتم همزیستی داشته باشند)، یکی از آن تحولات تصادفی در بلاک چین این است که از همان بلاک چین برای اطمینان از تولید "نتایج تصادفی" استفاده کنیم تا بتوانند در فضاهای مختلف استفاده می شود.
این موضوع را کمی توضیح می دهیم: برای کامپیوترها، نمایش اعداد تصادفی واقعی تقریبا غیرممکن است. یک توسعه دهنده می تواند یک الگوریتم تولید نتایج تصادفی ایجاد کند. اما این مولد از "پارامترهای" (الگوریتمی) تعیین شده پیروی می کند که در نهایت می توان آنها را با روش های ریاضی و احتمالی مورد مطالعه قرار داد. این به این معنی است که این الگوریتم های تولید اعداد تصادفی (یا شبه تصادفی) را می توان تجزیه و تحلیل و شکسته کرد و منجر به حمله معروف تولید کننده نتایج تصادفی شد.
با در نظر گرفتن این موضوع، بسیاری از توسعهدهندگان بلاک چین به دنبال تبدیل دادههای درون این شبکهها به تولیدکنندههای تصادفی هستند که میتوانند در برنامههای کاربردی دیگر مورد استفاده قرار گیرند. ولی چطور این ممکن است؟
برخی از این مدل ها عبارتند از:
هش بلوک
یکی از ابزارهای دستیابی به این هدف، هش کردن بلوک است که در آن از هش بلوک ها، تراکنش ها یا ترکیبی از آنها به عنوان منبع تصادفی استفاده می شود. از آنجایی که هش قطعی است، همه به یک نتیجه خواهند رسید. یک بلوک، پس از اضافه شدن به بلاک چین، برای همیشه در آنجا باقی می ماند، بنابراین همه می توانند صحت اعداد تولید شده را تأیید کنند.
با این حال، این روش یک مشکل امنیتی جدی دارد: هش ها را می توان توسط ماینرها دستکاری کرد. در حالی که این مشکل کوچک و قابل تشخیص است، در یک تولید کننده نتایج تصادفی امن غیرقابل تحمل است. به همین دلیل از این سیستم بسیار کم استفاده می شود.
اوراکل
یکی دیگر از راه های ممکن برای ایجاد نتایج تصادفی در بلاک چین برای برنامه های شخص ثالث از طریق اوراکل ها است. پروژه هایی مانند Provable، Uniswap TWAP یا Chainlink VRF تنها نمونه هایی از این سیستم هستند.
عملیات ساده است. این سیستم ها داده ها را از منابع خارجی جمع آوری می کنند، آن ها را در شبکه خود پردازش می کنند و مجموعه عظیمی از داده های تصادفی تولید می کنند. سپس این داده ها می توانند توسط کاربران سیستم استفاده شوند. بهترین چیز این است که این سیستم نه تنها غیرمتمرکز است، بلکه از تعداد زیادی منابع تصادفی به صورت موازی استفاده می کند. علاوه بر این، تمام این کار با یک تست رمزنگاری برای تأیید داده های تصادفی تولید شده همراه است.
نتایج تصادفی در وب 3
وقتی مردم به بازی های بلاک چین، پروژه های NFT یا هنر دیجیتال فکر می کنند، ممکن است اهمیت تصادفی بودن را در تعیین نتایج در نظر نگیرند. خواه در تعیین مکان دارایی های درون بازی در متاورس باشد یا افزودن تنوع به الگوریتم هنری مولد، ضرب NFT، توزیع جوایز بین برندگان، تأیید اعتبار بلیط های رویداد، یا تعیین دوره ای که کدام شرکت کننده DAO انتخاب می شود و ... برای یک نقش حاکمیتی خاص، برنامه های کاربردی Web3 به منبع امن تصادفی نیاز دارند تا نتایج منصفانه و غیرقابل پیش بینی ایجاد کنند.
از آنجایی که این سیستم ها می توانند مقدار قابل توجهی از ارزش واقعی را جمع آوری کنند، نتایج قابل بهره برداری از راه حل های تصادفی نابهینه می تواند منجر به عدم تقارن اطلاعات و مزیت ناعادلانه برای زیرمجموعه ای از شرکت کنندگان شود. این سناریوها اغلب میتوانند حلقههای بازخورد منفی ایجاد کنند که منجر به عدم تعادل قدرت در تعاملات میشود و منجر به شکست کامل مکانیسمهای اقتصادی و نظری بازی طراحیشده برای تسهیل فعالیتهای اقتصادی و هماهنگی اجتماعی میشود.
دسترسی به یک منبع تصادفی که برای همه شرکتکنندگان غیرقابل پیشبینی و قابل بازرسی باشد، کار سادهای نیست. با این حال، میل به عدالت و شفافیت در صنعت Web3 قفل بسیاری از برنامهها و پروتکلها را که در مقایسه با همتایان Web2 خود برجسته هستند را باز کرده است. توانایی دسترسی به یک منبع تصادفی منصفانه و بیطرفانه به شیوهای ایمن و قابل تأیید، تعداد زیادی از موارد استفاده جدید را در بازیهای بلاک چین، NFT، حکومت غیرمتمرکز، رسانههای اجتماعی Web3، جمعآوری سرمایه و خیریه، توکن های اجتماعی و موارد دیگر باز میکند.