الگوریتم های هشینگ در رمزنگاری
چنانچه در بازار ارز دیجیتال به خرید و فروش ارزهای دیجیتال می پردازید می دانید که هر ارز رمزنگاری شده از الگوریتم رمزگذاری خاص خود استفاده میکند. ماینرها الگوریتمها را رمزگشایی کرده و پاداشهایی را در قالب توکنهای یک ارز رمزنگاری شده خاص دریافت میکنند. برای آشنایی با الگوریتم های هشینگ در رمزنگاری همراه ما باشید.
الگوریتم رمزنگاری چیست؟ آشنایی با انواع آن
الگوریتم رمزنگاری مجموعهای از مکانیسمها و قوانین رمزنگاری خاص هستند که یک ارز دیجیتال را رمزگذاری میکنند. همانطور که در مقدمه اشاره کردیم ماینرها با استفاده از تجهیزات خاص الگوریتم یک ارز دیجیتال را رمزگشایی میکنند. این فرایند شامل یافتن یک هش است. به محض یافتن هش صحیح، بلاک جدیدی در بلاکچین ایجاد میشود که اطلاعات مربوط به تراکنشها، هش بلوک قبلی، مقدار دریافتی توسط ماینر را ذخیره میکند.
فرآیند رمزگشایی (یا استخراج ارز) مجموعهای از دادههای تصادفی را به اطلاعات منظم سیستماتیک تبدیل میکند که بعداً در بلاکچین ثبت میشود. امروزه حدود ۱۰ الگوریتم رمزنگاری وجود دارد. برخی از الگوریتمها محبوبیت بیشتری دارند و برای چندین ارز رمزنگاری شده مختلف (بلاکچین) استفاده میشوند. به عنوان مثال رایجترین الگوریتمها SHA-256، Scrypt، Equihash، Ethash، X11، RandomX و Lyra2z هستند. در زیر هر یک از این موارد را توضیح میدهیم.
الگوریتم SHA-256
لگوریتم SHA-256 یک الگوریتم رمزنگاری امن است که به دلیل استفاده بیت کوین محبوبیت زیادی پیدا کرده است. مخفف SHA الگوریتم هش امن است و ۲۵۶ به معنی این است که الگوریتم ارز رمزنگاری شده یک هش ۲۵۶ بیتی ایجاد میکند(یک رشته ۲۵۶ بیتی). نرخ هش برای ارزهای دیجیتال مبتنی بر SHA-256 بر حسب واحد گیگاهش در ثانیه (GH/s) محاسبه میشود. ایجاد یک بلوک شش تا ده دقیقه طول میکشد. بیت کوین و بعضی دیگر از ارزهای دیجیتال و به ویژه فورکهای بیت کوین از الگوریتم SHA-256 استفاده میکنند.
آژانس امنیت ملی ایالات متحده الگوریتم SHA-256 را در سال ۲۰۰۱ اختراع کرد. این الگوریتم بخشی از خانواده الگوریتمهای SHA است. در حال حاضر، این تنها الگوریتم از این خانواده است که از امنیت بیشتری برخوردار می باشد. الگوریتم SHA-256 علاوه بر ارزهای رمزنگاری شده، به طور گستردهای در برخی از فناوریهای دیگر استفاده میشود. به عنوان مثال عملکرد پروتکلهای امنیتی مانند TLS ،SSL ،PGP ،SSH بر اساس SHA-256 تکمیل می شود.
در سال ۲۰۰۹، زمانی که بیت کوین تنها برای چند نفر شناخته شده بود، از رایانههای معمولی برای استخراج بیت کوین استفاده میشد که محاسبات را با استفاده از پردازنده مرکزی انجام میداد. بعداً آنها شروع به استفاده از پردازندههای گرافیکی قویتر کردند. در حال حاضر محبوبیت بیت کوین بسیار زیاد است. با استفاده از ماینرهای ASIC، دستگاههای ویژه با قدرت محاسباتی بالا از نظر اقتصادی سودآور شده است.
ارزهای دیجیتالی که از الگوریتم SHA-256 استفاده میکنند عبارتند از:
بیت کوین (BTC)
بیت کوین کش (BCH)
بیت کوین اس وی (BSV)
پیر کوین (PPC)
بیت کوین دارک (BTCD)
لایت کوین کش (LCC)
الگوریتم Scrypt
الگوریتم Scrypt یکی دیگر از الگوریتم های هشینگ در رمز نگاری است. سرعت ایجاد بلاک در بلاکچین مبتنی بر Scrypt حدود ۳۰ ثانیه می باشد. میزان هش در مگاهش بر ثانیه (MH/s) اندازهگیری میشود. الگوریتم Scrypt به دلیل استفاده ارز دیجیتال لایت کوین Litecoin محبوب شد. سادگی عملکرد SHA-256 به شما امکان میدهد تا فرآیند استخراج را خودکار کنید. بنابراین، هدف اصلی ایجاد الگوریتم Scrypt این بود که مکانیسم تولید بلوک را به دلیل افزایش نیاز به منابع مورد استفاده برای عملیات محاسباتی، پیچیده کند. در فرآیند استخراج ارزهایی که از الگوریتم اسکریپت استفاده می کنند میزان RAM بسیار مهم است. در حالی که الزامات مصرف برق و قدرت پردازش در این الگوریتم بسیار کمتر از SHA-256 است. در ابتدا از پردازندههای مرکزی و گرافیکی برای استخراج ارزهای دیجیتال مبتنی بر Scrypt استفاده میشد اما این الگوریتم نتوانست با دستگاههای ماینر رقابت کند. بنابراین در سال ۲۰۱۴ اولین ماینر ASIC برای توکنهای با الگوریتم Scrypt ایجاد شد.
ارزهای دیجیتالی که از الگوریتم Scrypt استفاده میکنند عبارتند از:
لایت کوین (LTC)
دوج کوین (DOGE)
رد کوین (RED)
ویاکوین (VIA)
سیس کوین (SYS)
الگوریتم Equihash
الگوریتم Equihash یک الگوریتم ارز رمزنگاری ناشناس است که در سال ۲۰۱۶ منتشر شد. اولین ارز رمزنگاری شده که از الگوریتم Equihash به عنوان پایگاه خود استفاده کرد، Zcash بود. ایجاد بلوکها در این الگوریتم ۱۵۰ ثانیه طول میکشد و هش بر حسب مگاهش بر ثانیه (MH/s) اندازهگیری میشود. اساس این الگوریتم یک تابع هش است که بر اساس اصل مسأله تولد ساخته شده است. این یک قاعده ریاضی است که برای محاسبه احتمال استفاده میشود.
قاعده میگوید:
اگر ۲۳ نفر در یک اتاق باشند، احتمال اینکه حداقل دو نفر از آنها در یک روز تولد داشته باشند ۵۰% است. بر اساس این الگو، احتمال یافتن عدد nonce در فرآیند استخراج ۲ است.
این الگوریتم ارز رمزنگاری شده توسط Alex Biryukov و Dmitry Khovratovich، دانشمندان دانشگاه لوکزامبورگ که بخشی از گروه تحقیقاتی CryptoLUX هستند، ایجاد شده است. الگوریتم Equihash برعکس برخی الگوریتم ها که به سرعت پردازش محاسبات ریاضی نیاز دارند، فقط به ظرفیت RAM نیاز دارد. این باعث میشود که در برابر ماینرهای ASIC و غیر متمرکز بودن شبکه مقاوم باشد. برای استخراج ارزهای رمزنگاری شده مبتنی بر الگوریتم Equihash، از کارتهای گرافیک با حداقل ظرفیت حافظه ۲ گیگابایت استفاده میشود.
ارزهای دیجیتالی که از الگوریتم Equihash استفاده میکنند عبارتند از:
زی کش (ZEC)
بیت کوین گلد (BTG)
کومودو (KMD)
زی کلاسیک (ZCL)
هورایزن (ZEN)
بیت کوین پرایوت (BTCP)
الگوریتم Ethash
الگوریتم Ethash یک الگوریتم ارز رمزنگاری شده می باشد که برای استخراج اتریوم توسعه یافته و بر اساس دو الگوریتم متفاوت (Dagger و هاشیموتو) طراحی شده است. هش ریت الگوریتم Ethash بر حسب مگاهش بر ثانیه (MH/s) اندازهگیری میشود.
Dagger یک الگوریتم ارز رمزنگاری شده است که به حافظه کارت گرافیک نیاز دارد. اصل عملکرد آن مشابه Scrypt است، اما بهتر از آن عمل می کند. این امر به ویژه در شلوغی شبکه قابل توجه است. با این حال Dagger دارای معایبی نیز می باشد. بنابراین فقط در صورت جفت شدن با هاشیموتو میتواند موثر باشد.
الگوریتم هاشیموتو با عملیات ورودی/خروجی در حالت خاصی کار میکند. این الگوریتم سرعت تولید را محدود میکند زیرا میزان حافظه برای نوشتن و خواندن اطلاعات بینهایت نیست. هاشیموتو یک الگوریتم ارز رمزنگاری شده است که به مقدار زیادی حافظه نیاز دارد. به همین دلیل امکان انجام تعداد زیادی عملیات ورودی/خروجی وجود ندارد، یعنی برای رمزگشایی، استفاده از روش انتخاب نامحدود مقادیر تصادفی کار نخواهد کرد که این مهم ترین دلیل عدم استفاده دستگاههای ASIC برای استخراج اتریوم بود. الگوریتم Ethash برای اتریوم ایجاد شده است. با این حال، ارزهای دیگر نیز شروع به استفاده از این الگوریتم کردند.
ارزهای دیجیتالی که از الگوریتم Ethash استفاده میکنند عبارتند از:
اتریوم (ETH)
اتریوم کلاسیک (ETC)
یوبیک (UBQ)
اکسپنس (EXP)
پیرل (PIRL)
موزیک کوین (MUSIC)
کوارک چین (QKC)
الگوریتم X11
الگوریتم رمزگذاری X11 نیز جزو الگوریتم های هشینگ در رمز نگاری است که توسط ایوان دافیلد، خالق یکی از ارزهای رمزنگاری شده برتر یعنی ارز دش Dash، توسعه داده شد. او میخواست ناشناس بودن و قابلیت تبادل بیت کوین را بهبود بخشد، اما ایده او جایی پذیرفته نشد. مزیت الگوریتم X11 این است که استخراج ارزهای دیجیتال بر اساس آن از نظر مصرف انرژی بسیار اقتصادی است.
آزمایشها نشان داد که ماینینگ Dash روی کارتهای گرافیک ۳۰% تا ۵۰% کمتر از ماین بیت کوین در دستگاههای ASIC برق مصرف میکند. برای استخراج ارزهایی که بر اساس الگوریتم X11 کار میکنند، میتوانید نه تنها از GPU بلکه از CPU نیز استفاده کنید. این یکی از معدود الگوریتمهای امروزی است که اجازه استخراج با استفاده از پردازندهها را میدهد و این امر را برای ماینر های انفرادی و شرکتهای کوچک جذاب میکند. در حال حاضر، الگوریتمهای دیگری نیز ایجاد شدند که همانند الگوریتم X11 بر اساس ادغام چندین توابع هش ساخته شدهاند. الگوریتم های X12 ،X13 ،X14 ،X15 ،X16 و حتی X17 از این موارد هستند. با این حال، X11 هنوز محبوبترین الگوریتم این خانواده است.
ارزهای دیجیتالی که از الگوریتم X11 استفاده میکنند عبارتند از:
دش (DASH)
پورا (PURA)
تائو (XTO)
سینرژی (SNRG)
انیگما (ENG)
کن نابیس کوین (CANN)
الگوریتم RandomX
الگوریتم RandomX یک الگوریتم اثبات کار است که برای کارتهای گرافیک عمومی (GPU) و پردازندههای عمومی (CPU) بهینه شده است. ویژگی اصلی این نوآوری اجرای قطعات مختلف کد به ترتیب تصادفی و بارگذاری حافظه دستگاه است. الگوریتم RandomX از یک ماشین مجازی استفاده میکند که برنامهها را در یک مجموعه دستورالعمل ویژه اجرا میکند. این برنامهها را میتوان به سرعت به کد پردازنده تبدیل کرد. در نتیجه، خروجی برنامههای اجرا شده با استفاده از تابع هش رمزنگاری Blake2b به یک نتیجه ۲۵۶ بیتی ترکیب میشود.
Random X از استخراج با CPU و GPU (AMD و Nvidia) پشتیبانی میکند. اکثر مدلهای CPU اینتل و AMD و همچنین کارتهای گرافیک با حداقل ۲ گیگابایت حافظه برای استخراج ارزهای مبتنی بر الگوریتم RandomX بسیار کارآمد هستند.
ارزهای دیجیتالی که از الگوریتم RandomX استفاده میکنند عبارتند از:
مونرو (XMR)
کوانتوم رزیستنس لجر (QRL)
الگوریتم Lyra2z
الگوریتم Lyra2z یک الگوریتم رمزنگاری کارآمد می باشد که با CPU سازگار است. Lyra2Z و Lyra2REv2 الگوریتمهایی هستند که با استفاده از توابع Blake256 و Lyra2 به صورت متوالی یکدیگر را تغییر میدهند. آنها برای کاهش مصرف برق هنگام استخراج روی کارتهای گرافیک بهینه سازی شدهاند.
ارزهای دیجیتالی که از الگوریتم Lyra2z استفاده میکنند عبارتند از:
فایرو (XZC)
ورج (XVG)
ویلیس (VLS)