الگوریتم اثبات کار (Proof of work) چیست؟
یکی از روشهای اجماع در رمز ارزها الگوریتم اثبات کار یا POW) proof of work) است که برای تایید تراکنشها، تولید بلوک و حفظ امنیت شبکه بلاک چین به کار گرفته میشود. اصول اساسی کار یک معمای پیچیده ریاضی است که وجود راه حل برای آن قابل اثبات است و برای حل آن نیروی پردازشی کامپیوتری زیادی به کار گرفته میشود که به همین دلیل استفاده از این روش اجماع برق و قدرت پردازشی زیادی را هدر میدهد. مشهورترین کاربرد این الگوریتم در شبکه بیتکوین و اتریوم است؛ در زمینه امنیت نیز این نوع الگوریتم اجماع تا حد ممکن ضد هک طراحی شده و حمله به شبکه مستلزم انرژی و هزینه بسیار زیادی است که انگیزه حملات به آن را از بین میبرد.
اثبات کار چیست؟
اثبات کار (Proof of Work) یا PoW الگوریتم اصلی اجماع در شبکهی بلاک چین است. این الگوریتم در بلاک چین برای تایید تراکنشها و تولید بلوکهای جدید در زنجیره مورد استفاده قرار میگیرد. استخراجکنندگان با استفاده از این الگوریتم با یکدیگر بر سر تکمیل تراکنشهای شبکه و گرفتن پاداش رقابت میکنند.
کاربران در یک شبکه برای یکدیگر توکن میفرستند. دفترکل (Ledger) غیرمتمرکز هم همهی تراکنشها را در بلوکها جمعآوری میکند. با این حال در تایید تراکنشها و آرایش بلوکها هم باید دقت داشت. مسئولیت این کار به عهدهی گرههای خاصی است که استخراجکننده نامیده میشوند و فرایند انجام آن هم استخراج نام دارد. اصول اساسی کار، پازلهای پیچیدهی ریاضی و امکان اثبات راهحل آن است.
منظور از” پازل ریاضی” چیست؟
این پازل مسئلهایست که حل آن نیازمند نیروی کامپیوتری زیادی است.
انواع زیادی از آنها وجود دارد که در اینجا بعضی از آنها را نام میبریم:
- تابع هش (Hash Function) یا روش پیدا کردن ورودی با دانستن خروجی.
- Integer Factorization، به عبارت دیگر روش ارائهی اعداد به عنوان ضریبی از دو عدد دیگر.
- پروتکل پازل Guided Tour. اگر سرور حملهای را تشخیص دهد، باید برای برخی از گرهها به ترتیبی مشخص تابع هش را محاسبه نمود. در این مورد مسئلهی ما “روش پیدا کردن زنجیرهی ارزشهای تابع هش” میباشد.
پاسخ مسئلهی اثبات کار یا معادلهی ریاضی، “هش” نام دارد. با رشد شبکه، دشواری مسائل هم بالا میرود و الگوریتمها برق بیشتری را برای حل کردن نیاز دارند، بنابراین میزان پیچیدگی کار مسئلهی حساسی است.
چطور؟
کار دقیق و سرعت سیستم بلاک چین به آن بستگی دارد.
مسئلهی موجود نباید خیلی دشوار باشد. اگر خیلی دشوار باشد، تولید بلوک جدید زمان زیادی میخواهد، تراکنشها بدون اینکه انجام شوند گیر میکنند و در نتیجه گردش کار مدتی متوقف میشود. اگر مسئله در بازهی زمانی مشخصی حل نشود، تولید بلوک هم نیاز به معجزه خواهد داشت.
اما اگر مسئله خیلی آسان باشد، در مقابل هک و کلاهبرداری شکننده خواهد شد.
راهحل را باید بتوان به راحتی بررسی کرد، وگرنه همه گرهها نمیتوانند درستی محاسبات انجام شده را تشخیص دهند.
پس باید به دیگر گرهها اعتماد کنید و آن هم یکی از مهمترین ویژگیهای بلاک چین، یعنی شفافیت را نقض میکند.
این الگوریتم چگونه در بلاک چین اجرا میشود؟
استخراجکنندگان پازل را حل میکنند، بلوک جدیدی شکل میدهند و تراکنشها را تایید میکنند.
دشواری یک پازل به شمار کاربران، نیروی جاری و بار شبکه بستگی دارد. هشِ هر بلوک هم شامل هش بلوک قبل است که امنیت را بالا میبرد و از تجاوز به بلوک جلوگیری میکند.
اگر استخراجکنندهای بتواند پازلی را حل کند، بلوک جدید شکل میگیرد. پس از تشکیل بلوک جدید، تراکنشها در این بلوک قرار میگیرند و با قرار گرفتن تراکنشها در این بلوک، صحت آنها تایید میشود.
الگوریتم اثبات کار معمولا کجا اجرا میشود؟
این الگوریتم در بسیاری از ارزهای رمزنگاری شده به کار گرفته شده است.
مشهورترین کاربرد آن در بیت کوین است و این بیت کوین بود که این نوع از اجماع را پایهریزی کرد. پازل آن هشکش (Hashcash) است. این الگوریتم اجازهی تغییر پیچیدگی یک پازل را بر اساس نیروی کل شبکه میدهد. زمان میانگین شکلگیری بلوک ۱۰ دقیقه است. ارزهای مبتنی بر بیت کوین، مانند لایتکوین، همین سیستم را دارند.
پروژهی بزرگ دیگری که از این الگوریتم استفاده میکند اتریوم است. با علم به اینکه سهچهارم پروژهها در پلتفرم اتریوم اجرا شدهاند، میتوان با اطمینان گفت که اکثر اپلیکیشنهای بلاک چین از مدل اجماع اثبات کار استفاده میکنند.
اصلا چرا باید از الگوریتم اجماع اثبات کار استفاده کرد؟
مزیت اصلی آن ضدهک بودن آن و تاثیر حداقلی سهام بر امکان استخراج در آن میباشد.
دفاع در مقابل حملات. الگوریتم اثبات کار محدودیتهایی را بر کنشهای موجود در شبکه اعمال میکند. اجرای این الگوریتم نیازمند تلاش زیادی است. حملات کارآمد برای انجام محاسبات نیازمند نیروی رایانشی و زمان زیادی هستند. بنابراین همیشه احتمال حمله وجود دارد اما چون هزینهها خیلی بالا هستند، این کار عملاً بیفایده میشود.
امکان استخراج. مهم نیست که چقدر پول در کیف پولتان دارید. مهم این است که نیروی رایانشی قویای برای حل پازلها و ایجاد بلوکهای جدید داشته باشید. بنابراین دارندگان مقادیر زیاد پول مسئول تصمیمگیری دربارهی کل شبکه نیستند.
نقصی در الگوریتم اجماع اثبات کار وجود دارد؟
معایب اصلی آن هزینههای بالای آن، بیهودگی محاسبات کامپیوتری و حملات “۵۱ درصد” هستند.
هزینههای بالا. استخراج نیازمند سختافزار کامپیوتری بسیار خاص است تا الگوریتمهای پیچیده را پیش ببرد. هزینههای آن بالا است و استخراج تنها توسط استخرهای خاص استخراج صورت میگیرد. این دستگاههای خاص برق زیادی مصرف میکنند که هزینهها را هم بالا میبرند. هزینههای بالا تمرکز سیستم را تهدید میکند. مشاهدهی این واقعیت در بیت کوین دشوار نیست.
(برای اطلاع بیشتر می توانید مقاله استخراج بیت کوین را مطالعه نمایید)
بیهودگی محاسبات کامپیوتری. استخراجکنندگان کار زیادی برای تولید بلوکها انجام میدهند و برق زیادی مصرف میکنند. با این حال محاسبات کامپیوتری آنها در هیچ جای دیگر قابل استفاده نیست. آنها امنیت شبکه را تضمین میکنند اما نمیتوانند در کسبوکار، علم و زمینههای دیگر مورد استفاده قرار بگیرند.
حملهی “۵۱ درصد” چیست؟
حملهی ۵۱ درصد یا حملهی اکثریت زمانی است که یک کاربر یا گروهی از کاربران کنترل اکثریت نیروی استخراج را به دست میگیرند و مهاجمان نیروی کافی برای کنترل اکثر رویدادهای شبکه را دارند.
آنها میتوانند تولید بلوکهای جدید را به انحصار خود دربیاورند و پاداش بگیرند چون میتوانند مانع تکمیل بلوکها توسط دیگران بشوند و میتوانند تراکنشها را هم رزرو کنند.
فرض کنید آلیس با استفاده از بلاک چین مقداری پول برای باب فرستاده است. آلیس در حملهی ۵۱ درصد درگیر شده است اما باب نه. این تراکنش در بلوک قرار میگیرد اما مهاجمان اجازهی انتقال پول را نمیدهند و در نتیجه در زنجیره “فورک” اتفاق میافتد.
استخراجکنندگان به یکی از شاخهها میپیوندند و چون بیشتر نیروی رایانشی را در اختیار دارند، از بلوکهای بیشتری برخوردارند.
در شبکه، شاخهای که بیشتر دوام بیاورد باقی میماند و بقیه رد میشوند. بنابراین تراکنش بین آلیس و باب اتفاق نمیافتد و باب پولی دریافت نمیکند.
مهاجمان با طی کردن این مراحل میتوانند تراکنشها را رزرو کنند.
حملهی “۵۱ درصد” گزینهی سودآوری نیست چون نیازمند نیروی استخراج خیلی زیادی دارد و به محض عمومی شدن، شبکه حمله را تشخیص میدهد و کاربران را اخراج میکند. این کار باعث کاهش قیمت ارز میشود و همهی سرمایهها ارزش خود را از دست میدهند.
انجام یک تراکنش در بلاک چینی مانند بیت کوین، مستلزم طی شدن مراحل زیر می باشد:
- تراکنش ها در یک فضای دیجیتالی بنام بلاک وارد می شوند.
- ماینرها، صحت و معتبر بودن تراکنش های ارسالی را تائید می کنند.
- ماینرها برای پیدا کردن جواب معادله ریاضی وارد یک فرآیند رقابتی می شوند.
- به اولین نفری که به جواب برسد، مقدار مشخصی از پاداش داده می شود.
- تراکنش های تائید شده در قالب یک بلوک جدید به زنجیره اصلی متصل می شوند.