معرفی الگوریتم ProgPow برای استخراج اتریوم

  شنبه، 22 خرداد 1400   زمان مطالعه 10 دقیقه
معرفی الگوریتم ProgPow برای استخراج اتریوم
توسعه‌‌دهندگان اتریوم تاکید دارند که این ارز از طریق ای‌‌‌‌سیک‌‌‌‌ها قابل استخراج نباشد. در راستای این هدف، آن‌‌ها تصمیم دارند الگوریتم ProgPow را که بر اساس پروتکل اثبات انجام کار عمل می‌‌کند، برای استخراج این ارز استفاده کنند. در ادامه مطلب بیشتر با این الگوریتم آشنا می شوید.

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

توسعه دهندگان اتریوم درباره پروژه ProgPow هنوز مردد هستند و اخیرا آن را به یک تیم فنی سپرده اند تا از عدم وجود باگ و خطر برای پروتکل اطمینان حاصل شود. تاکنون در رای گیری بین توسعه دهندگان چندین بار با این طرح موافقت شده اما هنوز هیچ تاریخ دقیقی درباره زمان اجرای آن اعلام نشده است. گمانه زنی ها حاکی از آن است که احتمالا سال ۲۰۲۰ زمان پیاده سازی آن باشد.

در این مقاله شما را با الگوریتم ProgPow و طرز کارکرد آن آشنا کنیم و بفهمیم که این الگوریتم چه خصوصیاتی دارد که می تواند به کارایی دستگاه های ای سیک، آسیب بزند. با ما همراه باشید.

الگوریتم ProgPoW چیست؟

الگوریتم ProgPoW یک فرم کوتاه از الگوریتم اثبات کار قابل برنامه نویسی است و در واقع مخفف Programmable proof of work است. گاهی به طور عامیانه به آن PorgyPoW می گویند. این الگوریتم، یک الگوریتم توسعه یافته از الگوریتم ای تی هش (Ethash) است که با GPU سازگار شده تا شکاف کارآیی را در سخت افزار های با تابع ثابت به حداقل برساند.

در این مقاله مشخصات تکنیکی و معیارهای کارآیی این الگوریتم بررسی شده است. این مقاله توجیه یا منطقی را برای استفاده از این الگوریتم در یک ارز دیجیتال ارائه نمی دهد و هر ارز دیجیتالی باید بر اساس تحقیقات خود الگوریتم متناسب با شبکه اش را استفاده کند.

تاکنون برای بهبود کارآیی استخراج، الگوریتم اثبات کار را ثابت می گرفتند و سخت افزار را توسعه می دادند. اما ProgPow برعکس این فرآیند را انجام داده است و سخت افزار را ثابت گرفته و الگوریتم را اصلاح کرده است.

اگر یک الگوریتم بخواهد کارآمد باشد، باید با الگوهای دسترسی (Access patterns) و فضای موجود در سخت افزار استخراج هماهنگ باشد. به همین دلیل پردازنده های گرافیکی AMD شاهد افزایش کارآیی زیادی در اتریوم بودند؛ زیرا الگوهای دسترسی تراشه های حافظه با الگوریتم استخراج Ethash مطابقت داشتند.

الگوریتم ProgPoW

الگوریتم Ethash هم اکنون توسط اتریوم استفاده می شود. این الگوریتم یک الگوریتم اثبات کار است که با GPU به خوبی کار می کند. این الگوریتم به بافر تقریباً زیادی نیاز دارد (در حال حاضر حدود 2.5 گیگا بایت) و همچنین پهنای باند زیادی هم می خواهد که هر دوی اینها در GPU فراهم است.

یکی از چالش های الگوریتم Ethash این است که فقط 128 بایت از حافظه اصلی را می خواند که این مقدار خیلی کم است. این مقدار دسترسی کم باعث می شود که GPU هایی که از حافظه GDDR5x استفاده می کنند، در اجرای الگوریتم Ethash کارآمد نباشند.

مسئله دیگری که هنگام استفاده از کارت GPU بیان می شود این است که Keccak (تابع هشی که در ابتدا و انتهای Ethash فراخوانی می شود) می تواند با استفاده از FPGA یا ASIC بسیار کارآمدتر اجرا شود.

line Acorn از FPGA ها به طور خاص برای انجام محاسبات Keccak به صورت آفلاین طراحی شده اند تا در مصرف انرژی سیستم صرفه جویی شود و کارایی نیز افزایش یابد.

با توجه به این مسائل می توان یک ASIC تخصصی برای Ethash طراحی کرد که ویژگی های زیر را داشته باشد:

  • یک رابط حافظه با پهنای باند بالا (معمولاً از GDDR6 یا HBM2 استفاده می شود)
  • یک موتور Keccak
  • یک هسته محاسباتی کوچک برای انجام حلقه داخلی FNV
  • ASIC حاصل از این طراحی هم کوچک تر خواهد بود و هم مصرف انرژی بسیار کمتری نسبت به GPU های موجود دارد.

نوآوری الگوریتم ProgPoW

طراحی ProgPoW با Ethash شروع شد. این الگوریتم به گونه ای اصلاح شده تا بیشترین استفاده را از GPU داشته باشد.

هش هایی که تابع Keccak تولید می کرد و در ابتدا و انتهای Ethash استفاده می شد، از f1600 که طول هر کلمه آن 64 بایت بود به f800 با طول کلمه 32 بیت تبدیل شد. F1600 برای اینکه بتواند روی کارت گرافیکی اجرا شود، حداقل به دو بار اجرای دستورالعمل نیاز دارد؛ چون مسیر داده دستگاه های GPU، برابر با 32 بیت است و برای اینکه یک کلمه 64 بیتی را بخواند نیاز به حداقل دو بار خواندن دارد. الگوریتم Ethash از داده های اضافی که توسط f1600 پردازش می شود استفاده نمی کند؛ بنابراین کم کردن مقدار بایت داده و طول کلمه در این الگوریتم تأثیری روی امنیت این الگوریتم نمی گذارد.

نیاز های الگوریتم Keccak

یک دستگاه ایسیک (Asic) برای اجرای ProgPoW باید شامل موارد زیر باشد:

  • یک رابط حافظه با پهنای باند بالا.
  • یک هسته محاسباتی با یک فایل رجیستری بزرگ.
  • یک هسته محاسباتی با توان بالای حل ریاضی.
  • بهره وری بالا؛ حافظه کش بالا.
  • موتورهای کوچک Keccak + KISS99.

این ایسیک های مخصوص بسیار شبیه دستگاه های GPU هستند؛ فقط کمی کوچک ترند ولی عملکرد مشابهی دارند.

خالق ProgPow چه کسی بوده است؟

این الگوریتم توسط گروه توسعه IfDefElse ساخته شده است. این گروه از سه نفر با نام های Ms. If، Mr Def و Mr. Else تشکیل شده است. غیر از خانم ایف با نام اصلی کریستی لی مینهان (Kristy Leigh Minehan)، بقیه اعضای گروه توانسته اند هویت خود را مخفی نگه دارند. این گروه به طور تخصصی در زمینه توسعه الگوریتم های استخراج اثبات کار فعالیت دارند.

لازم به ذکر است که کریستی همان خالق نرم افزارهای معروف استخراج «OhGodAnETHlargementPill» برای اورکلاک کارت های گرافیک انویدیا ست.

چگونگی عملکرد الگوریتم ProgPow

ابتدا بهتر است ببینیم نام این الگوریتم از کجا می آید. Progpow به این معنی ست که هر حلقه (loop) داخلی از دسترسی حافظه (memory)، که همان تکرار روند حل مسئله است، یک برنامه تولیدشده بر پایه شماره بلاک موردنظر است که به صورت تصادفی تولید می شود. این برنامه طوری طراحی شده است که با استفاده وسیع تر از کارکردهای کارت گرافیک های موجود در بازار، باعث کارآمدتر شدن آن ها در عملیات استخراج شود.

این تولید تصادفی مسائل، کار راه اندازی خط تولید سخت افزارهای تک کاربردی را غیرممکن می کند، همان کاری که تولیدکنندگان سخت افزارهای ای سیک در آن تخصص دارند. به طور خلاصه باید بگوییم که در الگوریتم ProgPow، ماینرها به یک سخت افزار انعطاف پذیر و چندکاره نیاز دارند و ای سیک ها فاقد چنین قابلیتی هستند.

نرخ هش در الگوریتم Progpow

یکی از مهم ترین فاکتورها برای بررسی الگوریتم های استخراج، نرخ هش این الگوریتم ها است. نرخ هش در واقع سرعت عملکرد الگوریتم را نشان می دهد. به بیان دیگر نرخ هش مشخص می کند که این الگوریتم با چه سرعتی می تواند داده ها را هش کند. البته سرعت هش فقط به الگوریتم استخراج بستگی ندارد بلکه سخت افزار استخراج نیز بسیار بر سرعت هش تأثیرگذار است. در جدول زیر نرخ هش الگوریتم Ethash و الگوریتم ProgPow روی سخت افزار های مختلف آورده شده است. همچنین میزان مصرف پهنای باند حافظه نیز در این دو الگوریتم محاسبه شده است. در ستون میزان مصرف پهنای باند، درصد میزان نرخ هش واقعی، به میزان نرخ هش تئوری، در صورتی که 100 درصد پهنای باند حافظه GPU استفاده شود، محاسبه شده است که در دنیای واقعی چنین چیزی غیرممکن است.

نرخ هش در الگوریتم Progpow

نرخ هش به صورت تئوری از تقسیم میزان پهنای باند بر میزان داده بر هش محاسبه می شود، به بیان دیگر:

Bandwidth / Data-per-hash

این مقدار در الگوریتم Ethash برابر با 8 کیلو بایت و برای الگوریتم ProgPoW برابر با 16 کیلوبایت است.

انتظار کلی این است که ProgPoW باید تقریباً نصف نرخ هش Ethash را داشته باشد؛ زیرا این الگوریتم به ازای هر هش دو برابر Ethash نیاز به دسترسی به حافظه دارد. این مسئله در دستگاه های GPU که از حافظه GDDR5 ،RX 580 و GTX 1070 استفاده می کنند بیشتر دیده می شود. GPU هایی که از حافظه HBM2 ،GDDR6 و GDDR5X استفاده می کنند در اجرای الگوریتم ProgPoW کارآمدتر هستند.

قدرت کارت گرافیک ها روی الگوریتم ProgPow

ما این الگوریتم را روی چند کارت گرافیک از دو تولید کننده اصلی بازار آزمایش کردیم. به دلیل استفاده کامل این الگوریتم از منابع کارت های گرافیک، نتایج به دست آمده در این آزمون شباهت زیادی به کارایی کارت ها در زمان اجرای بازی های کامپیوتری و نرم افزارهای طراحی سه بعدی داشت.

نرخ های هش به دست آمده روی الگوریتم ProgPow:

  1. AMD RX 580: از ۸٫۵ تا ۱۰ مگاهش در ثانیه
  2. AMD RX Vega 56: از ۱۴٫۵ تا ۱۶٫۵ مگاهش در ثانیه
  3. AMD RX Vega 64: از ۱۵٫۵ تا ۱۷٫۵ مگاهش در ثانیه
  4. Nvidia Geforce GTX 1070 TI: حدود ۱۱ مگاهش در ثانیه
  5. Nvidia Geforce GTX 1080 : حدود ۱۶ مگاهش در ثانیه
  6. Nvidia Geforce GTX 1080 TI: حدود ۲۱ مگاهش در ثانیه
  7. AMD Radeon Vii: حدود ۳۰ مگاهش در ثانیه
  8. AMD Rx 560: حدود ۳ مگاهش در ثانیه
  9. Nvidia 2080 TI 11 GB: حدود ۳۴ مگاهش در ثانیه

البته در نظر داشته باشید که میزان سوددهی هر کارت تا زمان تثبیت نرخ هش شبکه، بعد از اعمال الگوریتم جدید، مشخص نخواهد شد.

در ادامه با مقایسه نرخ هش ای سیک های الگوریتم Ethash روی ProgPow به این نتیجه رسیدیم که برتری ای سیک ها بر کارت های گرافیک روی الگوریتم جدید تا ۲٫۶ برابر کاهش می یابد.

این طور که به نظر می رسد صاحبان ریگ های استخراج با عرضه این الگوریتم دیگر لازم نیست نگران آینده خود و متمرکز شدن احتمالی پروژه های ارز دیجیتال مورد علاقه شان باشند.

در حال حاضر تنها ارزی که با این الگوریتم قابل استخراج است، ارز بیت کوین اینترست (BCI) است. درصورتی که قصد دارید کارت های خود را روی ProgPow امتحان کنید می توانید به استخر سوپرنووا مراجعه کرده و مراحل ذکر شده را تا انتها انجام دهید.

نظرات کارشناسان درباره ProgPow

پیاده سازی این الگوریتم از آگوست سال ۲۰۱۸ مدنظر بوده است اما توسعه دهندگان هسته اتریوم اولین بار این بحث را در چهارم ژانویه ۲۰۱۹ مطرح کردند. اکثریت عمده برنامه نویسان تصمیم گیرنده با این ایده موافق هستند، اما عقیده دارند که باید زمان بیشتری برای آزمودن و پیاده سازی آن صرف شود.

البته این الگوریتم مخالفانی هم دارد که معتقدند پیاده سازی این الگوریتم به معنای پیروی کورکورانه از مصالح شرکت های AMD و Nvidia، انحراف از نقشه پیش بینی شده برای عرضه الگوریتم اثبات سهام اتریوم و احتمال تقسیم شدن شبکه و اعمال هادرفورک های دیگری رو شبکه خواهد بود.

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

سخن پایانی

در این مقاله الگوریتم ProgPoW و ویژگی های این الگوریتم را توضیح دادیم. یکی از نگرانی هایی که در مورد این الگوریتم وجود دارد این است که با استفاده از این الگوریتم شرکت های AMD و Nvidia بتوانند نظرات خود را روی شبکه اتریوم اعمال کنند و هاردفورکی روی شبکه اتریوم به وجود آید.

همچنین برخی منتقدان اعتقاد دارند که دستگاه های ایسیک باعث امن تر شدن شبکه می شوند و ایجاد الگوریتم هایی مثل ProgPoW و تلاش برای حذف اسیک ها بی فایده است؛ زیرا تولیدکنندگان ایزیک هم فناوری های جدیدی برای استخراج ارزهای دیجیتال طراحی می کنند.


دیدگاه ها

  دیدگاه ها
نظر خود را به اشتراک بگذارید
پربازدیدترین ویدئوهای روز   
آخرین ویدیو ها   
آخرین تصاویر