یکی از مهمترین اجزای تکنولوژی بلاکچین، وجود تصادفی بودن چیزها یا Randomness است. وجود اعداد تصادفی در بلاکچین اهمیت بسیاری زیادی دارد چرا که بدون آن، کریپتو گرافی نامتقارن نیز به آن شکلی که در کریپتو کارنسی مشاهده میکنیم وجود نخواهد داشت.
در واقع بدون اعداد تصادفی، کامپیوترها و اینترنت یا حتی موبایل شما از چیزی که امروز آن را مشاهده میکنید متفاوت خواهند بود که از نظر امنیت نیز در سطح پایینی دسته بندی میشوند.
اما دلیل این اهمیت چیست؟ چرا در دنیای دیجیتالی و به خصوص کریپتو کارنسی اعداد و مقدار تصادفی این چنین اهمیت دارند؟
عناوین مطلب:
سابقه استفاده از اعداد تصادفی در تاریخچه انسانها بسیار طولانی است. اعداد تصادفی از انداختن تاس، استخوان یا کارت برای پیشبینی آینده در زمانهای قدیم کاربرد داشته است. اما در قرون وسطا، اعداد تصادفی به شکل رسمیتری مورد مطالعه قرار گرفتند.
در واقع یکی از کاربردهای اصلی اعداد تصادفی مربوط به مطالعات عدد Pi و شکل بی نهایت تعداد اعشار آن بود. ریاضیدانان بسیاری توجهشان به این موضوع جلب شده بود که چگونه اعداد تصادفی در سایر فضاها و عرصهها نیز گاها در الگوهای یکسان تکرار میشوند.
اما با پیشرفت اصول ریاضیات و احتمالات در کنار اصول الگوریتمی، کاربردهای اعداد تصادفی به شکل چشمگیری افزایش پیدا کردند. برای مثال اعداد تصادفی برای مطالعات حوزه فیزیک ضروری هستند مخصوصا در فیزیک کوانتوم.
در واقع میتوان گفت اعداد تصادفی زیرساخت دنیای دیجیتال و امنیت آن هستند.
اعداد تصادفی و اهمیت آن
چرا تولید اعداد تصادفی اهمیت زیادی دارد؟ کاربرد این اعداد در بلاکچین چیست و چرا بدون آن تکنولوژی بلاکچین قادر به ادامه حرکت نخواهد بود؟
ابتدا باید این حقیقت را بپذیریم که تولید اعداد تصادفی در زمینه امنیت کامپیوتر امری ضروری و رایج است.
برای مثال، هر بار که شما وبسایت بورسینس را در موبایل یا کامپیوتر خود باز میکنید، ارتباط شما از طریق پروتکل ایمن HTTPS خواهد بود.
اتفاقی که در هر بار اتصال کامپیوتر شما به سرور وبسایت رخ میدهد این است که آنها برای ایجاد یک اتصال ایمن، پیامهایی را رد و بدل (تبادل کلید) میکنند.
این فرآیند فقط به لطف استفاده از اعداد تصادفی و نحوه پیاده سازی آنها در کریپتو گرافی امکان پذیر است. کریپتوگرافی مسئول محافظت از ارتباطات دیجیتال ما در دنیای وب است.
البته مثال بالا فقط یکی از کاربردهای اعداد تصادفی و اهمیت آن در دنیای دیجیتال ما است. با نگاه به هر گوشه از دنیای امروز، اعداد تصادفی را در سیستمها یا بازیهای گوناگون میتوان یافت.
اعداد تصادفی در بلاکچین
بلاکچین به عنوان تکنولوژی دیجیتال که با هدف ارائه امنیت به کاربران خود طراحی شده است نیز از اعداد تصادفی برای رسیدن به این مهم استفاده میکند.
در دنیای بلاکچین ما میتوانیم استفاده از اعداد تصادفی را در یکی از اصولیترین بخشهای آن یعنی کریپتو گرافی و رمز نگاری مشاهده کنیم.
برای نمونه، ساخت یک کلید در بیتکوین توسط الگوریتمهای ECDSA و Secp256k1 انجام میگیرد. کاری که یک ولت بیتکوینی انجام میدهد این است که یک عدد تصادفی بسیار بزرگ را تولید و آن را در فرمول ریاضی زیر به کار میبرد:
Y^2 = x^3 +ax +b
در این الگوریتم باید اطمینان حاصل شود که عدد تولید شده به اندازه کافی نامنظم و یکتا است. تولید این اعداد فقط توسط کامپیوترها امکانپذر است که در عین حال آنها محاسبات مربوط به حل فرمول ارائه شده را در کوتاهترین زمان ممکن انجام میدهند. این روش به ما یکی از ایمنترین اشکال کریپتو گرافی را ارائه خواهد داد.
همه این محاسبات و فرمولها فقط برای یک هدف صورت میگیرند و آن ایجاد دو کلید خصوصی و عمومی برای مدیریت داراییهای بیتکوینیمان در یک شبکه بدون نیاز به اعتماد (Trustless) است.
این کلیدها ما را در برابر انواع روشهای تهاجم محاسباتی و ریاضی سایر کامپیوترهای قدرتمند محافظت خواهد کرد. البته کریپتوگرافی و کلیدهای عمومی و خصوصی فقط به بلاکچین بیتکوین محدود نمیشوند و شما میتواند در همه بلاکچینها آن را بیابید.
تکامل اعداد تصادفی بلاکچین
البته تکنولوژی بلاکچین با آن چیزی که در 10 سال گذشته شاهد آن بودهایم بسیار متفاوت است و تحولات زیادی را تجربه کرده که باعث ایجاد روشهای جدید رمزنگاری و تولید اعداد تصادفی برای افزایش امنیت شده است.
ما میدانیم کامپیوترها نمیتوانند یک عدد واقعا تصادفی برای ما تولید کنند چرا که اعداد کاملا درهم ریخته و در عین حال همزیست را نمیتوان توسط یک الگوریتم تولید کرد.
از این رو، یکی از تحولات تولید اعداد تصادفی در بلاکچین این است که یک بلاکچین میتواند از تصادفی بودن واقعی اعداد اطمینان حاصل کند. در نتیجه چنین تکاملی، اعداد تولید شده را میتوان در فضاهای مختلفی مورد استفاده قرار داد.
برای کامپیوترها تولید یک عدد تصادفی واقعی تقریبا غیرممکن است. یک توسعه دهنده میتواند برای تولید اعداد تصادفی، یک الگوریتم جدید ایجاد کند اما اعداد تصادفی تولید شده، ورودیهای (پارامترها) تعیین شده در الگوریتم را دنبال خواهند کرد. در نهایت اعداد تصادفی تولید شده در مطالعه ریاضیات و احتمالات کاربرد خواهند داشت.
در واقع میتوان گفت از روی اعداد تصادفی تولید شده در هنگام مطالعات، میتوان به الگوریتم اصلی آن پی برد. این مسئله باعث حمله به الگوریتمهای تولید اعداد تصادفی خواهد شد چرا که با تحلیل الگوریتم میتوان اعدادی مانند آنها تولید کرد.
با در نظر گرفتن این مسئله، بسیاری از توسعه دهندگان بلاکچینها به دنبال راهی برای تبدیل دادههای درون شبکه به تولید کنندگان اعداد تصادفی هستند. این اعداد تصادفی را باید بتوان در سایر اپلیکیشنهای مرتبط به کار برد.
بیشتر بخوانید: بلاکچین چگونه توسعه پیدا میکند؟ 8 گام برای توسعه بلاکچین
سوال اصلی این است که چگونه میتوان به چنین الگوریتمهایی دست پیدا کرد؟ در حال حاضر چند مدل مختلف توسط بلاکچینها به کار میرود که در ادامه به مهمترین آنها اشاره خواهیم کرد:
Block Hash
یکی از روشهای تولید اعداد واقعا یکتا در بلاکچین، با استفاده از دادههای درون زنجیره هش بلاک است که در این فرآیند، یک بلاک، تراکنش یا ترکیب آنها تبدیل به هش (Hash) میشود که در ادامه از آن به عنوان منبع اعداد تصادفی استفاده خواهد شد.
از آنجایی که در دنیای کریپتو گرافی، هشها به صورت قطعی ایجاد میشود، اگر شما همان دادهها را دوباره تبدیل به هش کنید، نتیجه یکسان دریافت خواهید کرد.
با این حال این روش یک ایراد امنیتی بزرگ دارد و آن دستکاری هشها توسط ماینرها است. با این که دستکاری Hash توسط ماینرها قابل پیگیری و رهگیری است اما برای یک روش تولید اعداد تصادفی این مسئله غیر قابل تحمل است به همین دلیل، این سیستم چندان در تولید اعداد مورد استفاده قرار نمیگیرد.
بیشتر بخوانید: هش ریت (Hashrate) چیست و چه کاربردی در ارزهای دیجیتال دارد؟
Oracles
روش دیگر تولید اعداد واقعا تصادفی استفاده از اپلیکیشنهای ثانویه خارج از بلاکچین هستند.
البته ارتباط و انتقال داده از طریق اوراکلها صورت میگیرد. پروژههایی مانند Provable، Uniswap TWAP یا Chainlink VRF فقط چند نمونه بزرگ از این نوع سیستمها هستند.
بیشتر بخوانید: با اوراکلهای بلاکچین، نحوه کارکرد و انواع آنها آشنا شوید
عملیات پشت این سیستم ساده است، اوراکلها دادهها را از منابع بیرونی دریافت و پس از پردازش، آنها را به درون شبکه تزریق میکنند که این مسئله یک استخر بزرگ اعداد تصادفی را فراهم میکند. این دادهها را بعدا کاربران سیستم میتوانند استفاده کنند.
یکی از بهترین نقاط قوت این سیستم ماهیت غیرمتمرکز است که در کنار منابع موازی تولید اعداد تصادفی، مزایای زیادی برای بلاکچین و کاربران آن به همراه دارد.
نتیجه گیری
بدون شک، اعداد تصادفی نقش اساسی در دنیای دیجیتال و بلاکچین ایفا میکند. به لطف اعداد تصادفی امروز ما میتوانیم به صورت امن در اینترنت به ارتباط با سایر کامپیوتر و دستگاهها بپردازیم. این مسئله به ما امکان تولید تکنولوژیهایی که باعث بهبود امنیت خواهند شد را میدهد.
در کنار دنیای دیجیتال و اینترنت، اعداد تصادفی در بلاکچین به یکی از بهترین نمونههای تولید ابزار توسط اعداد تصادفی است که نقش اساسی در حریم خصوصی و امنیت ما در دنیای دیجیتال ایفا میکند.
در هنگام کار با قراردادهای هوشمند و اپلیکیشنهای غیرمتمرکز بلاکچینی باید این نکته را به خاطر داشته باشید که آنها نمیتوانند به صورت On-chain اعداد تصادفی تولید کنند چرا که اعداد تولید شده قابل حدس و توسط نودهای Validator قابل دستکاری و پیشبینی خواهند بود.
از این رو، قراردادهای هوشمندی که با اعداد تصادفی سر و کار دارند معمولا از اوراکلها برای دریافت اعداد یکتا استفاده خواهند کرد.
قصد خرید یا فروش ارز دیجیتال در ایران را دارید؟ در این سایت میتوانید با اطمینان و با چند کلیک خرید کنید:
نام | ویژگیها | امتیاز | لینک ثبتنام |
---|---|---|---|
نوبیتکس |
| ||
صرافی خارجی MEXC |
|