الگوریتم اسکریپت در بلاک چین چیست؟ آموزش الگوریتم scrypt

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

اسکریپت در ابتدا s-crypt نامیده می‌شد، اما حالا همان اسکریپت تلفظ می‌شود. برای درک بهتر به سراغ ادامه مطلب بروید.

الگوریتم اسکریپت Scrypt چیست؟

اسکریپت Scrypt از جمله موضوعاتی است که در تمام صنعت کریپتو استفاده می‌شود و ماینرها از آن برای تایید بلاک تراکنش‌ها بهره می‌برند. اسکریپت Scrypt یکی از اولین الگوریتم‌های هش است که در شبکه‌های بلاک چین اجرا شد. الگوریتم scrypt تلاشی برای بهبود الگوریتم هش قبلی؛ به ویژه الگوریتم SHA-256 است. از اسکریپت در بلاک چین‌های اثبات کار (POW) استفاده می‌شود که اولین بار با راه اندازی Tenebrix (TBX) در سال ۲۰۱۱ معرفی شد.

از آن زمان، الگوریتم اسکریپت توسط تعدادی از پروژه‌های مختلف بلاک چین پذیرفته شده است. در میان سه بلاک چین اسکریپت بر اساس ارزش بازار، الگوریتم اسکریپت Scrypt از بیش از ۳ میلیارد دلار ارز دیجیتال را پشتیبانی می‌کند.

مزایا و کاربردهای الگوریتم اسکریپت در بلاک چین

تابع مشتق کلید مبتنی بر رمز عبور (Key Derivation Function)

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

با این حال، قبل از توسعه اسکریپت‌ها، KDFهایی مانند تابع استخراج کلید مبتنی بر رمز عبور ۲ (PBKDF2) در توانایی خود برای مقاومت در برابر FPGA و ASIC محدود بودند. PBKDF2 و سایر KDFهای مبتنی بر رمز عبور از نظر محاسباتی سنگین بودند، اما حافظه سنگین نداشتند. اسکریپت به گونه‌ای طراحی شده است که هم از نظر محاسباتی و هم حافظه سنگین باشد.

مقاومت ای سیک ASIC

اسکریپت به‌عنوان راه‌حلی برای کاهش ظهور و تسلط ریگ‌های استخراج ASIC و متعاقب آن متمرکزسازی استخراج ارزهای دیجیتال ایجاد شد. از آنجایی که اسکریپت به بلاک چین مربوط می‌شود، قرار است SHA-256 را که در شبکه بیت کوین و سایر شبکه‌های اثبات کار پشتیبان ارزهای دیجیتال اجرا می‌شود، بهبود بخشد.

مطلب مرتبط: لیست بهترین ارز های دیجیتال قابل استخراج

طراحی اسکریپت به ماینرها نیاز دارد که اعداد تصادفی را به سرعت تولید کنند. این اعداد باید در حافظه دسترسی تصادفی (RAM) پردازنده ذخیره شوند که قبل از ارسال نتیجه باید به طور مداوم به آن دسترسی داشت. شبکه‌های رمزگذاری عموماً دارای نرخ هش بسیار کمتری نسبت به شبکه‌های SHA-256 هستند. به عنوان مثال، لایت کوین (LTC) دارای هش ریت در حدود ۱۳۸ TH/s و بیت کوین دارای هش ریت در حدود ۹۳,۰۰۰,۰۰۰ TH/s است.

تاریخچه اسکریپت Scrypt

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

استخراج کلید قوی‌تر از طریق توابع متوالی

در می ۲۰۰۹، کالین پرسیوال مقاله‌ای با عنوان «مشتق کلید قوی‌تر از طریق توابع متوالی حافظه سخت» منتشر کرد. در این مقاله، پرسیوال الگوریتم Scrypt را برای سرویس پشتیبان آنلاین تارسنپ پیشنهاد کرد. بیت کوین در آن زمان هنوز در مراحل ابتدایی خود بود؛ بنابراین هیچ اشاره‌ای به نحوه استفاده بالقوه Scrypt در شبکه‌های بلاک چینی که از ارزهای دیجیتال پشتیبانی می‌کنند وجود نداشت. با این حال، مفاهیم اساسی الگوریتم به وضوح تعریف شد.

Tenebrix اسکریپت را معرفی می‌کند

در سال ۲۰۱۱، تنبریکس (TBX) توسط یک برنامه نویس ناشناس معروف به Artfortz توسعه یافت. تنبریکس اولین پروژه بلاک چین بود که از اسکریپت به عنوان یک الگوریتم هش استفاده کرد. این پروژه در نهایت شکست خورد، اما با ارائه یک گزینه سازگار با CPU برای استخراج کنندگان ارزهای دیجیتال، یک سابقه مهم ایجاد کرد. امروزِ حتی تنبریکس (TBX) را در سایت هایی برای ردیابی ارزهای دیجیتال مختلف پیدا نخواهید کرد. با این وجود، نقش مهمی را به عنوان یک تأثیرگذار برای ارزهای Scrypt آینده و همچنین رمزارزهایی با استفاده از سایر الگوریتم‌های هش مقاوم در برابر ASIC ایفا کرد.

فیربریکس (FBX) و لایت کوین (LTC) را دنبال کنید

فیربریکس (FBX) توسط چارلی لی به عنوان یک کلون تنبریکس (TBX) ساخته شد. این پروژه با دو مشکل اساسی مواجه بود. ابتدا، یک اشکال در کلاینت کوین، ایجاد ارزهای جدید را ممنوع کرد. دوم، یک حمله ۵۱ درصدی منجر به تقریباً ۱۶۰۰ بلوک سرقتی شد. در نتیجه، فیربریکس (FBX) نیز شکست خورد.

چارلی لی تصمیم گرفت از ایده الگوریتم اسکریپت در بلاک چین دست نکشد. او بسیاری از کارهای تکمیل شده برای فیربریکس را همراه با کد بیت کوین برای ایجاد یک ارز فورک شده بیت کوین به نام لایت کوین (LTC) انجام داد، که از آن زمان تاکنون بزرگترین ارز دیجیتال بر اساس مارکت کپ باقی مانده است.

چه ارزهایی قابلیت استخراج با الگوریتم اسکریپت در بلاک چین را دارند؟

لایت کوین (LTC)، دوج کوین (DOGE) و اینشتینیم (EMC2) سه پروژه معروفی هستند که از الگوریتم Scrypt در بلاک چین استفاده می‌کنند. در این بخش، نحوه استفاده هر یک از این شبکه‌ها از الگوریتم اسکریپت و اثربخشی الگوریتم اسکریپت در حفظ امنیت شبکه را بررسی خواهیم کرد. ما همچنین به چند پروژه نگاه خواهیم کرد که در ابتدا از الگوریتم Scrypt در بلاک چین استفاده می‌کردند، اما از آن زمان به دیگر الگوریتم‌های هش تغییر کرده‌اند.

لایت کوین (LTC) در اکتبر ۲۰۱۱ راه اندازی شد و خود را به عنوان یک شبکه مقاوم در برابر ASIC معرفی کرد. این نکته جای بحث دارد. پارامترهای انتخاب شده برای الگوریتم اسکریپت لایت کوین N=1024، r=1 p=1 بودند. کالین پرسیوال، خالق الگوریتم اسکریپت، بیان کرده است که لایت کوین اسکریپت را ضعیف اجرا کرده است. مقاله Percival’s Scrypt استفاده از r=8 را توصیه می‌کند که ماینرها باید از RAM بیشتری استفاده کنند. این امر از نظر تئوری تسلط ASIC بر شبکه را بسیار دشوارتر می‌کند.

به گفته چارلی لی، پارامترهای بیشتر حافظه باعث کاهش سرعت مشتری شبکه می‌شود. هنگام آزمایش با پارامترهای سخت‌تر، لی متوجه شد که هر بار که یک بلوک وارد می‌شود، کلاینت مسدود می‌شود. لایت کوین پارامترهای کمتری را به عنوان یک مبادله اجرا کرد. این یک تجربه بهتر برای کاربر نهایی ایجاد کرد. علاوه بر این، در آن زمان هیچ GPU، ASIC یا FPGA شناخته شده‌ای وجود نداشت که قادر به استخراج مبتنی بر اسکریپت باشد، بنابراین شبکه در زمان راه اندازی فقط CPU بود.

در ماه می ۲۰۱۴، اولین دستگاه‌های ماینینگ ASIC Scrypt در دسترس عموم قرار گرفت. به نظر می‌رسد لایت کوین از آن زمان موضع خود را در مورد مقاومت ASIC تغییر داده است. بسیاری از ماینرهای LTC اکنون از استخراج ASIC پشتیبانی می‌کنند و استدلال می‌کنند که داشتن ASIC به حفظ امنیت شبکه کمک می‌کند.

پس از هاوینگ شبکه در آگوست ۲۰۱۹، به دلیل کاهش نرخ هش Scrypt از ۵۰۰ TH/s به ۱۵۰ TH/s، نگرانی‌هایی در مورد حمله احتمالی ۵۱٪ وجود داشت. در زمان نگارش این مقاله، Crypto51 نشان می‌دهد که هزینه یک حمله یک ساعته به شبکه ۸۹۰۰ دلار با فرض نرخ هش ۱۳۸ TH/s است.

خوشبختانه، شبکه لایت کوین تنها حدود ۶ درصد قابلیت NiceHash دارد؛ به این معنی که یک مهاجم یا گروهی از مهاجمان می‌توانند تنها ۶ درصد از نرخ مورد نیاز برای حمله را اجاره کنند. مهاجم(ها) باید به اندازه کافی اسکریپت ASIC بخرد تا ۹۴% دیگر از قدرت هش مورد نیاز برای انجام یک حمله را پوشش دهد. برای بیان این موضوع، برخی از شبکه‌های دیگر بیش از ۱۰۰۰% قابلیت NiceHash دارند؛ به این معنی که می‌توان آن‌ها را به راحتی با اجاره قدرت هش در Nicehash و بدون نیاز به خرید ASIC کنترل کرد.

تجزیه و تحلیلی از نوامبر ۲۰۱۹ نشان می‌دهد که با فرض اینکه نرخ هش ۱۵۳ TH/s باشد، در واقع تقریباً ۷۰۰ میلیون دلار برای انجام یک حمله ۵۱ درصدی به شبکه لایت کوین هزینه خواهد داشت. این تجزیه و تحلیل شامل هزینه‌های خرید اسکریپت ASIC و مصرف برق و همچنین ارزش LTC است. از آنجایی که این رقم شامل قیمت خرید سخت افزار مورد نیاز برای حمله است، بسیار دقیق تر از تخمین Crypto51 است.

در دسامبر ۲۰۱۳، دوج کوین (DOGE) به عنوان هارد فورک لایت کوین راه اندازی شد. اگرچه دوج کوین قرار بود یک “ارز برای سرگرمی” باشد، اما به سرعت طرفداران زیادی را با مارکت کپ بزرگ به دست آورد. پارامترهای استخراج شبکه با لایت کوین متفاوت است. به عنوان مثال، زمان ایجاد بلاک دوج کوین ۱ دقیقه است، در حالی که زمان بلاک لایت کوین ۲٫۵ دقیقه است.

مطلب مرتبط: آموزش کامل استخراج دوج کوین

تهدید حمله احتمالی ۵۱ درصدی به شبکه دوج کوین باعث شد که چارلی لی لایت کوین استخراج ادغام شده بین این دو شبکه را در آوریل ۲۰۱۴ پیشنهاد کند. این مدل در ژوئیه ۲۰۱۴ در بلوک ۳۱۷,۳۳۷ دوج کوین به کار گرفته شد و به ماینرها امکان می‌داد هم دوج و هم لایت کوین را هم‌زمان استخراج کنند. در نتیجه، هر دو شبکه از سپتامبر ۲۰۱۴ ضرایب همبستگی بسیار بالایی برای سختی استخراج و نرخ هش داشتند.

انیشتینیوم (EMC2) در مارس ۲۰۱۴ به عنوان انشعابی از کد منبع بیت کوین راه اندازی شد. در حالی که شبکه بیت کوین از SHA-256 استفاده می‌کند، انیشتینیوم با استفاده از اسکریپت به عنوان الگوریتم هش خود، مسیر مشابهی را به سمت لایت کوین در پیش گرفت.

برای برابر کردن فرآیند استخراج، انیشتینیوم Kimoto Gravity Well را اجرا کرد که یک الگوریتم تنظیم مجدد سختی شبکه است و برای جلوگیری از افزایش استخراج چند ارز استفاده می‌شود. شبکه یک کاهش ۵۰ درصدی بلوک و زمان بلوک ۶۰ ثانیه را اجرا می‌کند.

در اکتبر ۲۰۱۸، یک هکر به نام GeoCold اعلام کرد که قصد خود برای اجرای یک حمله یک ساعته به شبکه انیشتینیوم تنها حدود ۲۰ دلار هزینه دارد. در حالی که این مقدار ممکن است در یک برهه زمانی دقیق باشد، اما پس از اینکه انیشتینیوم اثبات کار تاخیری کومودو (dPoW) را اجرا کرد، در واقع اینطور نبود.

مکانیسم امنیتی dPoW کومودو با بازیافت هش ریت عظیم شبکه بیت کوین، ۵۱ درصد مقاومت حمله را به انیشتینیوم اضافه می‌کند. فرآیندی به نام notarization، ذخیره کردن نسخه پشتیبان از بلوک‌های EMC2 در بلاکچین بیت کوین، این امکان را فراهم می‌کند. این بدان معنی است که هزینه یک حمله یک ساعته به شبکه انیشتینیوم از نظر تئوری با حمله به شبکه بیت کوین حدود ۴۰۰۰۰۰ دلار است. در نتیجه، GeoCold تصمیم به حمله به انیشتینیوم گرفت و به جای آن بیت کوین خصوصی (BTCP) را انتخاب کرد.

الگوریتم اسکریپت چقدر در مقاومت ASIC موثر بوده است؟

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

استخراج CPU و GPU

با راه اندازی اولین ریگ‌های تجاری ASIC در می ۲۰۱۴، CPU‌ها به سرعت توانایی خود را برای استخراج ارزهای اسکریپت از دست دادند. همانطور که قبلاً گفته شد، اجرای لایت کوین از Scrypt به اندازه‌ای که می‌توانست به حافظه فشرده نباشد. دشوار است که بگوییم اگر از ابتدا پارامترهای سخت‌تر انتخاب می‌شدند چقدر زمان می‌برد تا ASIC در دسترس قرار گیرد.

Scrypt-ChaCha، Scrypt-N و Scrypt² همگی انواعی از اسکریپت‌ها هستند که سختی حافظه بیشتری را به اجرای اصلی Scrypt اضافه می‌کنند. با این حال، این طرح‌ها هنوز مورد استقبال قابل توجهی قرار نگرفته اند. پروژه‌های بلاک چین که از زمان ظهور Scrypt ASIC راه اندازی شده اند، بیشتر الگوریتم‌های هش اثبات کار دیگری مانند الگوریتم استخراج CryptoNight یا الگوریتم Equihash را انتخاب کرده‌اند.

سودآوری استخراج با ASIC

Bitmain Antminer L3++ و Innosilicon A6+ LTC Master دو ریگ ماینینگ محبوب ASIC برای استخراج لایت کوین و دوج کوین در دسترس هستند. مطمئنا گزینه‌های ASIC بیشتری برای استخراج ارزهای SHA-256 وجود دارد. این نتیجه تسلط بیت کوین و این واقعیت است که SHA-256 هرگز برای دستیابی به مقاومت ASIC در نظر گرفته نشده است. بنابراین، اسکریپت گزینه‌های نسبتا کمی ASIC دارد.

با این وجود، احتمالاً برای داشتن شانس رقابت برای پاداش بلوک و رسیدن به سود استخراج برای لایت کوین، دوج کوین و سایر ارزهای دیجیتال مبتنی بر Scrypt، لازم است که یک ریگ ASIC داشته باشید.

بهینه سازی اجماع با کومودو

لایت کوین و دوج کوین؛ به ویژه پس از تصمیم دو شبکه برای پذیرش استخراج ادغام شده در برابر تهدید حملات ۵۱ درصدی به خوبی عمل کرده اند. با این وجود، حملات ۵۱ درصدی بسیاری از شبکه‌های دیگر مبتنی بر اسکریپت را تهدید کرده است. علاوه بر این، Scrypt سطح مقاومت ASIC را که در ابتدا انتظار می‌رفت در زمان اجرای الگوریتم در شبکه لایت کوین ارائه نکرده است.

تمرکز استخراج ارزهای دیجیتال به دلیل ظهور ASIC و تهدید حملات ۵۱ درصدی، چالش‌های رایج برای همه بلاک‌چین‌های اثبات کار است؛ به همین دلیل است که کومودو امنیت معادل بیت کوین را برای تمام پروژه‌هایی که یک زنجیره هوشمند با فناوری کومودو راه اندازی می‌کنند، ارائه می‌دهد.

با شبکه چند زنجیره‌ای کومودو، توسعه دهندگان می‌توانند یک زنجیره هوشمند راه اندازی کنند و مکانیسم اجماع بلاک چین خود مانند اثبات کار، اثبات سهام یا هر ترکیبی از این دو را انتخاب کنند. پروژه‌هایی که اثبات کار را انتخاب می‌کنند می‌توانند الگوریتم هش Equihash یا VerusHash را انتخاب کنند. شبکه‌های اثبات سهام این قابلیت را دارند که قواعد اجماع اثبات کار را در خود جای دهند. توسعه دهندگان کومودو در حال برنامه ریزی برای اضافه کردن گزینه‌های الگوریتم بیشتری در آینده هستند.