اتریوم قصد دارد برای مقابله با گسترش دستگاههای ایسیک (ASIC)، الگوریتم جدیدی روی نرم افزار خود پیادهسازی کند تا این دستگاهها از دور خارج شوند. این الگوریتم ProgPow نام دارد.
توسعه دهندگان اتریوم درباره پروژه ProgPow هنوز مردد هستند و اخیرا آن را به یک تیم فنی سپردهاند تا از عدم وجود باگ و خطر برای پروتکل اطمینان حاصل شود. تاکنون در رای گیری بین توسعه دهندگان چندین بار با این طرح موافقت شده اما هنوز هیچ تاریخ دقیقی درباره زمان اجرای آن اعلام نشده است. گمانهزنیها حاکی از آن است که احتمالا سال ۲۰۲۰ زمان پیادهسازی آن باشد.
در این مقاله که در وبسایت «۲ماینرز» منتشر شده است، شما را با الگوریتم ProgPow و طرز کارکرد آن آشنا کنیم و بفهمیم که این الگوریتم چه خصوصیاتی دارد که میتواند به کارایی دستگاههای ایسیک، آسیب بزند. با ما همراه باشید.
مشکلی به نام ایسیک
اجازه بدهید که ابتدا به گذشته نگاهی بیندازیم. ماینرهای اتریوم و دیگر کوینهای الگوریتمهای Etash و Dagger Hashimoto، سالها با کارتهای گرافیک خود در آرامش به کار استخراج مشغول بودند. درست است که مدلهای مختلف کارت گرافیک از کارایی و نرخ هش متفاوتی برخوردار هستند، اما این تفاوتها همیشه معقول بوده است و هیچ کارت گرافیکی نبوده است که برتری مطلقی بر بقیه داشته باشد و به همین دلیل همه راضی بودهاند.
اما شرایط در آوریل سال ۲۰۱۸ و با عرضه دستگاه Antminer E۳ توسط شرکت بیت مین عوض شد. این دستگاه ۱۸۰ مگا هش در ثانیه قدرت داشت و مصرف برق آن تنها ۸۰۰ وات بود. بعد از آن بود که کمپانیهای دیگر نیز خیلی سریع به تولید ایسیک برای این الگوریتم پرداختند.
شاید خیلی از شما سؤال کنید که اگر قدرت پردازشی این دستگاهها بیشتر است، پس جنبه منفی و بد این ابزارها چیست؟ توسعه دهندگان اتریوم معتقدند که با ورود ASICها به شبکه اتریوم:
- صاحبان ریگهای کارت گرافیک به شدت از این اتفاق متضرر شده و از پشتیبانی و نگهداری شبکه اتریوم دست میکشند.
- استفاده از ایسیکها باعث میشود که نرخ هش و قدرت پردازشی شبکه در دست اقلیتی ثروتمند قرار بگیرد.
- تمرکززدایی که یکی از مهمترین اصول و ویژگیهای هر ارزهای دیجیتال است، مورد تهدید قرار میگیرد. با ایسیکها یک گروه ماینر بزرگ میتوانند برگشتناپذیری در شبکه را به خطر بیاندازند
البته برای اجرای یک حمله موفق ۵۱ درصدی به شبکه اتریوم باید تعداد بسیار زیادی، بسیار بیشتر از صد یا هزار دستگاه ایسیک در اختیار داشته باشید، اما چشمانداز آینده اصلاً امیدوارکننده نیست. مفهوم جنگ اتریوم با ایسیکها به همین شکل آغاز و منجر به شکلگیری سه ایده اساسی در این رابطه شد:
- مقابله با تهدید متمرکز شدن شبکه.
- مقابله با انحصارگرایی در میان تولیدکنندگان
تجهیزات استخراج. - امکان ساخت جامعهای از کاربران که ترسی از
تهدیدات خارجی نداشته باشند.
بهعلاوه بسیاری از ماینرها هستند که هزینه زیادی برای خرید ریگ خود متقبل شدهاند و سرمایه آنها هنوز بازگشتی نداشته است و تعداد زیاد ایسیکهای موجود در شبکه اتریوم، زمان بازگشت سرمایه آنها را از این هم طولانیتر خواهد کرد.
مشکل ایسیکها تمام الگوریتمهای مختص کارت گرافیک را با مشکل روبهرو کرده است. توسعهدهندگان الگوریتمهای استخراج از روشهای متفاوتی برای مبارزه با ایسیکها استفاده میکنند. برای مثال میتوان به پروژههای مبتنی بر الگوریتم Equihash اشاره کرد که برخی از آنها در حال کوچ به نسخه ۱۴۴٫۵ آن هستند، چراکه هنوز هیچ دستگاه ایسیکی برای این نسخه ساخته نشده است.
در این میان برنامهنویسان BitcoinZ جزو اولین کسانی بودند که برای بیرون انداختن ایسیکها از شبکه خود، هاردفورکی ترتیب دادند. توسعهدهندگان مونرو هم معمولاً چند بار در سال این کار را انجام میدهند. هرچند این کار کمک چندانی به آنها نکرد و بعد از چند ماه مجدداً سروکله ایسیکها در شبکه پیدا میشود.
البته الگوریتم ProgPow از روش بسیار بهتری برای این کار استفاده میکند. در این روش بهجای بیرون راندن ایسیکها، کارایی آنها کاهش خواهد یافت. واحدی که قدرت پردازش آنها باکارتهای گرافیک معمولی یکسان خواهد شد. به این ترتیب مردم با مشاهده کارایی ایسیکها در الگوریتم جدید، تمایل کمتری به صرف هزینههای سرسامآور برای خرید آنها از خود نشان خواهند داد و این درنهایت به نفع مالکان ریگهای کارت گرافیک تمام خواهد شد. با استفاده از این روش هم توسعهدهندگان به هدف خود میرسند و هم نگرانی کاهش سوددهی ریگها ماینرهای گرافیکی را رها خواهد کرد.
آشنایی با الگوریتم ProgPow
ProgPow کوتاهشدهی عبارت Programmatic Proof Of Work یا اثبات کار برنامهنویسی شده است. این الگوریتم در واقع افزونهای برای الگوریتم حال حاضر اتریوم یعنی Ethash محسوب میشود و با این هدف طراحیشده است که با قویتر کردن کارتهای گرافیک، تمرکززایی در شبکه اتریوم را به حداقل برساند. این اهداف با استفاده از دو ویژگی اصلی این الگوریتم محقق میشود:
- تغییر منظم طرح مسئله در استخراج
- استفاده کامل از تمام قابلیتهای کارتهای گرافیک برای استخراج
در این میان مورد دوم از اهمیت بیشتری برخوردار است، چرا که همه ایسیکها در این مورد یک نقطه ضعف مشترک دارند که این ضعف در اسم آنها هم کاملاً مشخص و پیدا است. مدارهای مجتمع با کاربرد خاص. ایسیکها تنها برای انجام یک کار به خصوص طراحی شدهاند و به همین دلیل است که میتوانند به راحتی کلید راهحلهای بلاکها را به دست آورند؛ اما این تنها کاری است که آنها از عهدهاش برمیآیند و شما نمیتوانید از آنها برای انجام بازیهای کامپیوتری استفاده کنید.
اما کارتهای گرافیک از انعطافپذیری بالایی برخوردار هستند و میتوان از آنها علاوه بر استخراج برای انجام بازیهای کامپیوتری نیز استفاده کرد. علاوه بر این، کد این الگوریتم بر روی گیتهاب منتشرشده و همهچیز آن کاملاً شفاف است. بد نیست با هم نگاهی به کد این الگوریتم بیندازیم.
خالق ProgPow چه کسی بوده است؟
این الگوریتم توسط گروه توسعه IfDefElse ساخته شده است. این گروه از سه نفر با نام های Ms. If، Mr Def و Mr. Else تشکیلشده است. غیر از خانم ایف با نام اصلی کریستی لی مینهان (Kristy Leigh Minehan)، بقیه اعضای گروه توانستهاند هویت خود را مخفی نگه دارند. این گروه بهطور تخصصی در زمینه توسعه الگوریتمهای استخراج اثبات کار فعالیت دارند.
لازم به ذکر است که کریستی همان خالق نرم افزارهای معروف استخراج «OhGodAnETHlargementPill» برای اورکلاک کارتهای گرافیک انویدیا ست.
چگونگی عملکرد الگوریتم ProgPow
ابتدا بهتر است ببینیم نام این الگوریتم از کجا میآید. Progpow به این معنی ست که هر حلقه (loop) داخلی از دسترسی حافظه (memory)، که همان تکرار روند حل مسئله است، یک برنامه تولیدشده بر پایه شماره بلاک موردنظر است که به صورت تصادفی تولید میشود. این برنامه طوری طراحیشده است که با استفاده وسیعتر از کارکردهای کارت گرافیکهای موجود در بازار، باعث کارآمدتر شدن آنها در عملیات استخراج شود.
این تولید تصادفی مسائل، کار راهاندازی خط تولید سختافزارهای تک کاربردی را غیرممکن میکند، همان کاری که تولیدکنندگان سختافزارهای ایسیک در آن تخصص دارند. بهطور خلاصه باید بگوییم که در الگوریتم ProgPow، ماینرها به یک سختافزار انعطافپذیر و چندکاره نیاز دارند و ایسیکها فاقد چنین قابلیتی هستند.
این الگوریتم بهطور منظم طرح مسئله ریاضی در طی استخراج را تغییر میدهد و قابلیت انطباق سریعتر کارتهای گرافیک در شرایط متغیر باعث میشود که فاصله آنها و ایسیکها از نظر کارایی کاهش پیدا کند.
الگوریتم ProgPow تمام اجزای کارت گرافیک، به جز کانالهای ارتباطی و واحدهای پردازش شناور را برای استخراج به کار میگیرد. سازندگان این الگوریتم برای سازگاری آن با همه تولیدکنندهها از جمله AMD و Nvidia، مجبور شدند که این دو را از محاسبات خود خارج کنند.
البته گروه IfDefElse برای حفظ بیطرفی خود در توسعه این الگوریتم با مهندسان این دو شرکت همکاری کردند. هر دوی این شرکتها از این ایده استقبال کردند زیرا مقاومت در برابر ایسیکها، کاربرد کارتهای گرافیک در زمینه استخراج را توجیهپذیرتر میکند و توجیهپذیرتر شدن صرف هزینه برای ماینرهای به معنای فروش بیشتر برای این دو کمپانی است، کاری که این دو اخیراً در انجام آن عملکرد مناسبی از خود نشان ندادهاند.
نوآوریهای ProgPow
اجازه بدهید شما را با پنج نوآوری بنیادی این الگوریتم که آن را از الگوریتم Dagger Hashimoto متمایز میکند، آشنا کنیم. نوآوریهایی که باعث میشود این الگوریتم برای حل مسائل به قدرت پردازش، پهنای باند و میزان حافظه سختافزار وابسته باشد.
- سایز Keccak در این الگوریتم از Keccak-f1600 شصت و چهار بیتی به Keccak-f800 سی و دو بیتی کاهش یافته است که این یعنی برای پلتفرمهای ۳۲ بیتی بهینهسازی شده است و برای معماری کارتهای گرافیک عالی است.
- بزرگتر بودن mix state که به معنی بیشتر بودن تعداد رجیستریهای پردازنده که میتوانند مقادیر میانی را ذخیره کنند است. این رجیستریها به دلیل آنکه درون خود پردازنده گرافیکی قرار گرفتهاند، سریعتر از حافظههای با دسترسی تصادفی (RAM) عمل میکنند. چیپهای ایسیکها بسیار کوچک هستند و تعداد رجیستریهای آنها بسیار کمتر از کارتهای گرافیک است. به همین دلیل ایسیکها مجبورند برای حل این مشکل از RAM استفاده کنند که بسیار کندتر است و این تفاوت باعث میشود که ایسیکها برتری خود را از دست بدهند.
- افزودن یک توالی پردازشی تصادفی به حلقه اصلی. این ویژگی کار راهاندازی خط تولید ایسیکهایی که بتوانند سرعت عملیاتی بیشتر یا مصرف کمتری داشته باشند را غیرممکن میکند.
- پشتیبانی از خوانشهای سریع و کوچک تصادفی از کَش (حافظه داخلی پردازنده) با کمترین تأخیر ممکن. این خوانشهای سریع از کش علاوه بر وادار کردن ایسیکها به دنبال کردن سلسله قوانین مخصوص حافظههای کارت گرافیک، ظرفیت و کارایی این دستگاهها را هم محدود خواهد کرد.
- افزایش DRAM (حافظه تصادفی پویا) لازم از ۱۲۸ به ۲۵۶ بایت. این تغییری است که تنها کارتهای گرافیک میتوانند از آن بهره ببرند، زیرا ایسیکهای تخصصی نمیتوانند بدون فدا کردن کارایی دستگاه، اقدام به بهینهسازی کنترلکننده حافظه برای چنین مقادیر پایینی کنند.
قدرت کارت گرافیکها روی الگوریتم ProgPow
ما این الگوریتم را روی چند کارت گرافیک از دو تولیدکننده اصلی بازار آزمایش کردیم. به دلیل استفاده کامل این الگوریتم از منابع کارتهای گرافیک، نتایج بهدستآمده در این آزمون شباهت زیادی به کارایی کارتها در زمان اجرای بازیهای کامپیوتری و نرمافزارهای طراحی سه بعدی داشت.
نرخهای هش به دست آمده روی الگوریتم ProgPow:
- AMD RX ۵۸۰: از ۸٫۵ تا ۱۰ مگاهش در ثانیه
- AMD RX Vega ۵۶: از ۱۴٫۵ تا ۱۶٫۵ مگاهش در ثانیه
- AMD RX Vega ۶۴: از ۱۵٫۵ تا ۱۷٫۵ مگاهش در ثانیه
- Nvidia Geforce GTX ۱۰۷۰ TI: حدود ۱۱ مگاهش در ثانیه
- Nvidia Geforce GTX ۱۰۸۰ : حدود ۱۶ مگاهش در ثانیه
- Nvidia Geforce GTX ۱۰۸۰ TI: حدود ۲۱ مگاهش در ثانیه
- AMD Radeon Vii: حدود ۳۰ مگاهش در ثانیه
- AMD Rx ۵۶۰: حدود ۳ مگاهش در ثانیه
- Nvidia ۲۰۸۰ TI ۱۱ GB: حدود ۳۴ مگاهش در ثانیه
البته در نظر داشته باشید که میزان سوددهی هر کارت تا زمان تثبیت نرخ هش شبکه، بعد از اعمال الگوریتم جدید، مشخص نخواهد شد.
در ادامه با مقایسه نرخ هش ایسیکهای الگوریتم Ethash روی ProgPow به این نتیجه رسیدیم که برتری ایسیکها بر کارتهای گرافیک روی الگوریتم جدید تا ۲٫۶ برابر کاهش مییابد.
اینطور که به نظر میرسد صاحبان ریگهای استخراج با عرضه این الگوریتم دیگر لازم نیست نگران آینده خود و متمرکز شدن احتمالی پروژههای ارز دیجیتال مورد علاقهشان باشند.
در حال حاضر تنها ارزی که با این الگوریتم قابل استخراج است، ارز بیت کوین اینترست (BCI) است. درصورتیکه قصد دارید کارتهای خود را روی ProgPow امتحان کنید میتوانید به استخر سوپرنووا مراجعه کرده و مراحل ذکر شده را تا انتها انجام دهید. لینک نرمافزارهای استخراج موردنیاز و روش استفاده از آنها در این صفحه قابلدسترسی است.
نظرات کارشناسان درباره ProgPow
پیادهسازی این الگوریتم از آگوست سال ۲۰۱۸ مدنظر بوده است اما توسعهدهندگان هسته اتریوم اولین بار این بحث را در چهارم ژانویه ۲۰۱۹ مطرح کردند. اکثریت عمده برنامهنویسان تصمیمگیرنده با این ایده موافق هستند، اما عقیده دارند که باید زمان بیشتری برای آزمودن و پیادهسازی آن صرف شود.
البته این الگوریتم مخالفانی هم دارد که معتقدند پیادهسازی این الگوریتم به معنای پیروی کورکورانه از مصالح شرکتهای AMD و Nvidia، انحراف از نقشه پیشبینیشده برای عرضه الگوریتم اثبات سهام اتریوم و احتمال تقسیم شدن شبکه و اعمال هادرفورک های دیگری رو شبکه خواهد بود.
منتقدان همچنین بر این باور هستند که تاکنون هیچ سندی که متمرکز شدن استخراج را ثابت کند در دسترس نیست و ایسیکها باعث امنتر شدن شبکه میشوند. نکته مهمتر مد نظر آنها این است که فعال شدن ProgPow هم نخواهد توانست از تولید مخفیانه یک فناوری جدید توسط تولیدکنندگان ایسیکها و استفاده از آن برای استخراج ارزهای دیجیتال، جلوگیری کند. به عقیده آنها الگوریتم جدید قرار نیست هیچچیز را عوض کند.
جمعبندی
الگوریتم مقابله با ایسیک ProgPow هماکنون در مرحله بررسی توسط تیمهای فنی قرار دارد و اخیرا اخباری مبنی بر عدم وجود مشکل در آن اعلام شده است. این الگوریتم میتواند پایانی باشد بر سلطهی ایسیکها روی شبکه و باعث شود که هزینه راهاندازی یک ریگ استخراج برای بسیاری توجیهپذیر باشد. با پایین ماندن هزینه راهاندازی، تمرکززدایی از شبکه دیگر یک رؤیا نخواهد بود. اگر همه چیز خوب پیش برود، احتمالا در ابتدای سال ۲۰۲۰ این الگوریتم پیادهسازی شود.