الگوریتم ProgPow چیست؟
یکی از مهمترین ارکان شبکه ارزهای دیجیتال، الگوریتم هش است. الگوریتم های هشینگ امنیت شبکه را تامین می کنند و تاثیر بسزایی در سرعت تراکنش های شبکه دارند. الگوریتم ProgPoW یکی از محبوب ترین الگوریتم های هش بر اساس الگوریتم Ethash است که در شبکه ارز دیجیتال اتریوم استفاده می شود. این الگوریتم یکی از الگوریتم های استخراج اتریوم محسوب می شود. الگوریتم های ProgPoW و Ethash ماینینگ الگوریتم های ProgPoW هستند که اثبات کار قابل برنامه ریزی است و هر شبکه می تواند روش اثبات کار بهینه خود را برنامه ریزی کند.
معرفی الگوریتم ProgPoW
الگوریتم ProgPoW شکل کوتاهی از اثبات کار قابل برنامه ریزی در نظر گرفته می شود و مخفف Promable proof of work است. گاهی اوقات PorgyPoW نامیده می شود. این الگوریتم مبتنی بر الگوریتم Ethash است که با پردازندههای گرافیکی سازگار است تا تفاوت عملکرد سختافزار با کارایی ثابت را به حداقل برساند. به طور کلی، الگوریتمهای اثبات کار و سختافزار توسعهیافته برای بهبود کارایی ماینینگ استفاده میشوند. ولی الگوریتم ProgPoW برعکس عمل می کند و سخت افزار و الگوریتم را اصلاح می کند. اگر قرار است یک الگوریتم کارآمد باشد، باید با الگوهای دسترسی و فضای موجود در سخت افزار ماینینگ سازگار باشد. به همین دلیل است که AMD شاهد افزایش عملکرد قابل توجهی در اتریوم بود و الگوهای دسترسی به حافظه و تراشهها با الگوریتم استخراج Ethash سازگار بودند.
این الگوریتم یک الگوریتم اجماع پروتکل بلاک چین است که برای کاهش مزیت بهره وری استخراج سخت افزارهای تخصصی مانند ماینرهای ASIC نسبت به ماشین های کمتر پیشرفته مانند پردازنده های استاندارد طراحی شده است. این بدان معناست که شرکت کنندگان متوسط می توانند سکه استخراج کنند. از زمانی که اولین ماشینهای استخراج بیت کوین ASIC ساخته و مورد استفاده قرار گرفت، پیشرفتهای جدیدی در الگوریتم اصلی Proof of Work انجام شد تا آن را در برابر ASIC مقاوم کند. هدف انعطاف پذیری ASIC جلوگیری از تمرکز قدرت استخراج اثبات کار است که باعث می شود پروتکل به راحتی توسط چند بازیگر برتر دستکاری شود.
نوآوری الگوریتم ProgPoW
دو نکته در مورد الگوریتم ProgPow مهم است. طراحی ProgPoW با Ethash شروع شد و این الگوریتم برای استفاده حداکثری از GPU ایجاد شد. هش های تولید شده توسط تابع Keccak و استفاده شده در ابتدا و انتهای Ethash از f1600 و 64 بایت در هر کلمه به f800 و 32 بایت تغییر یافت. همچنین F1600 برای اجرا بر روی کارت گرافیک به حداقل دو دستورالعمل نیاز دارد. از آنجایی که پردازندههای گرافیکی دارای مسیر داده ۳۲ بیتی هستند، یک کلمه ۶۴ بیتی باید حداقل دو بار خوانده شود تا خوانده شود. الگوریتم Ethash از داده های اضافی پردازش شده توسط f1600 استفاده نمی کند. بنابراین کاهش حجم بایت داده و طول کلمه در این الگوریتم تاثیری بر امنیت ندارد.
چه کسی الگوریتم ProgPow را ایجاد کرد؟
الگوریتم مذکور توسط تیم IfDefElse توسعه یافته است. این تیم متشکل از خانم اگر، آقای دف، و آقای السی است. جالب اینجاست که همه اعضای تیم هویت خود را پنهان کرده اند، به جز خانم اگر که نام اصلی او کریستی لی مینهان است. این تیم فقط بر روی الگوریتمهای استخراج اثبات کار تمرکز دارد. کریستی لی ماینرهای معروف OHGODANETHLARGEMENTPILL را برای اورکلاک کردن پردازندههای گرافیکی انویدیا ایجاد کرد.
الگوریتم ProgPow چگونه کار می کند؟
الگوریتم ProgPoW به این معنی است که هر چرخه دسترسی به حافظه داخلی که تکرار فرآیند حل مسئله است، برنامه ای در نظر گرفته می شود که بر اساس شماره بلوک مورد نظر تولید شده و به صورت تصادفی تولید می شود. این برنامه به گونه ای طراحی شده است که بر روی پردازنده های گرافیکی مناسب برای ماینینگ و ماینینگ به طور موثر کار کند و بیش از عملکرد کارت های گرافیک استفاده می کند. این ویژگی باعث کارآمدتر شدن فرآیند می شود.
ایجاد یک توالی تصادفی از مشکلات، ایجاد یک خط تولید سخت افزار با عملکرد پایدار را غیرممکن می کند. این کاری است که سازندگان ASIC انجام می دهند و در آن تخصص دارند. به عبارت دیگر می توان گفت که الگوریتم ProgPoW به انعطاف پذیری نیاز دارد و ASIC ها نمی توانند از این نظر انعطاف پذیر باشند. در واقع یک سخت افزار چند منظوره و انعطاف پذیر می تواند راه حل خوبی باشد. ProgPoW در این مورد بسیار محبوب است و به طور کامل از قابلیت های کارت گرافیک (به جز کانال های ارتباطی و پردازنده های شناور) استفاده می کند و به طور مرتب مسائل ریاضی را در طول فرآیند ماینینگ تغییر می دهد. پردازندههای گرافیکی میتوانند به سرعت تطبیق دهند، بنابراین شکاف عملکرد را در مقایسه با ASIC کاهش میدهند.
بد نیست بدانید که سازندگان ProgPow مجبور شدند AMD و Nvidia را کنار بگذارند تا الگوریتم را با تجهیزات ساخته شده توسط سازندگان مختلف از جمله AMD و Nvidia تطبیق دهند. به هر حال، در پایان، تیم IfDefElse با مهندسان Nvidia و AMD برای اطمینان از بی طرفی کار کرد. هر دو شرکت این ایده را دوست دارند و از آن استقبال می کنند. دلیل این امر این است که پایداری ASIC باعث می شود عملکرد کارت های گرافیک بهتر و معقول تر شود. در نتیجه، این مشکل می تواند منجر به فروش بیشتر برای Nvidia و AMD شود. البته لازم به ذکر است که AMD و Nvidia در حال حاضر عملکرد چندان خوبی در این زمینه ندارند.
هاشرت در الگوریتم ProgPow
یکی از مهم ترین عوامل برای تایید الگوریتم های ماینینگ، سرعت هش آن الگوریتم ها است. در واقع، نرخ هش سرعت عملکرد الگوریتم را نشان می دهد و تعیین می کند که الگوریتم با چه سرعتی می تواند داده ها را هش کند. البته سرعت هش تنها به الگوریتم ماینینگ بستگی ندارد، بلکه سخت افزار ماینینگ نیز تاثیر زیادی بر سرعت هش دارد. جدول بالا میزان هش الگوریتم Ethash را نشان می دهد الگوریتم ProgPow در سخت افزارهای مختلف نمایش داده می شود. مصرف پهنای باند حافظه نیز در این دو الگوریتم محاسبه می شود. درصد هش واقعی در ستون پهنای باند به عنوان هش ریت نظری در صورت استفاده از 100 درصد پهنای باند حافظه GPU محاسبه می شود که در دنیای واقعی غیرممکن است.