الگوریتم اثبات کار (Proof Of Work) | مزایا و معایب آن
۱۴ فروردین ۱۴۰۲
الگوریتم اثبات کار : گواه اثبات کار که در انگلیسی به Proof-of-Work یا PoW معروف است، یکی از الگوریتمهای مکانیزم اجماع است که برای تایید تراکنشها، ساخت بلوکهای جدید در بلاکچین و مقابله با دابل اسپندینگ (Double Spending) یا همان دوبار خرجکردن است. با این الگوریتم، ماینرها برای تکمیل تراکنشها و دریافت جایزه از بلاک چین، با یکدیگر به رقابت میپردازند. به طور کلی میتوان گفت که هدف از طراحی الگوریتم اثبات کار، تامین امنیت دفتر کل (Public Ledger) ارزهای دیجیتال است. از آنجایی که یکی از روشهای پرداخت ارزی از طریق خرید ارز دیجیتال انجام میشود، امروز در کافهارز، الگوریتم اثبات کار را به صورت مفصل توضیح داده و تفاوت آن با نوع دیگر الگوریتم یعنی اثبات سهام را مورد بررسی قرار خواهیم داد. علاوه بر این مزایا و معایب آن را نیز با یکدیگر مرور خواهیم کرد، پس تا انتهای این مطلب با ما همراه باشید.
فهرست مطالب
الگوریتم اثبات کار چیست؟
قبل از توضیح الگوریتم اثبات کار بهتر است با مفهوم بلاک چین آشنا شویم. بلاک چین یک نوع پایگاه داده (Data Base) است که اطلاعات موجود در آن در بلوکهای متصل به هم قرار گرفتهاند. اتصال این بلوکها توسط توابع هش برقرار شده است و تغییرات در هر بلوک منجر به تغییر در توابع هش بلوکهای بعدی میشود. الگوریتم اثبات کار یکی از انواع مکانیزم اجماع (Consensus Mechanism) است که در بیت کوین، اتریوم و بسیاری از پروژههای موفق ارزهای دیجیتال مورد استفاده قرار گرفته است. در شبکهای که کاربران آن برای یکدیگر توکنهای دیجیتالی ارسال میکنند، یک دفتر کل غیرمتمرکز (Decentralized Ledger) تمام تراکنشها را در یک بلاک گرداوری میکند. البته، برای تایید و اعتبارسنجی تراکنشها و هماهنگی بین بلاکها باید اقدام کرد. نکته حائز اهمیت در بلاک چین این است که دفتر کل دادهها به صورت توزیع شده است به این معنی که اطلاعات تراکنشها در اختیار تمام کاربران قرار میگیرد.
مسئولیت این کار بر عهده نودهای متخصصی به نام ماینر است که طی فرآیند ماینینگ یا همان استخراج، این کار را انجام خواهند داد. طبق مقالهای در وبسایت Forbes، الگوریتم اثبات کار برای اولین بار در بیت کوین مورد استفاده قرار گرفت و واژه ماینر از بعد از پیدایش بیت کوین به بازار کریپتوکارنسی راه پیدا کرد.
به زبان ساده، ماینرها برای حل معادلات پیچیده ریاضی با یکدیگر رقابت میکنند. این معادلات به سختی حل میشوند اما پس از حل شدن، بلافاصله توسط سایر ماینرها تایید میشوند. این کار در واقع ساخت بلاک است که ماینرها با حدس زدن توابع بیت کوین SHA-256 آن را انجام میدهند. در حقیقت، تابع SHA-256 به گونهای طراحی شده است که هر گونه تغییر در ورودی آن، یک خروجی متفاوت بیرون خواهد داد. برای مثال در بیت کوین، که از الگوریتم اجماع اثبات کار استفاده میکند، هش هایی (توابع) با 64 کاراکتر ساخته میشوند که با تغییر یک کاراکتر ورودی، کل آن نیز تغییر میکند. به طور کلی شما با شرکت در فرآیند استخراج، به شبکه ثابت میکنید که انرژی و وقت لازم را برای انجام محاسبات انجام دادهاید و شبکه نیز شما را شایسته و مستحق دریافت پاداش در نظر خواهد گرفت.
هر چه نرخ هش ریت یک شبکه بلاکچین بیشتر باشد، انجام محاسبات ریاضی و یافتن هش معتبر سختتر خواهد شد. الگوریتم اثبات کار بیت کوین، برای ساخت هر بلاک 10 دقیقه زمان تعیین کرده است. البته، شبکه با توجه به سرعت ماینرها، نرخ هش ریت را تعیین میکند. اگر ماینرها با سرعت بالایی هشهای معتبر را پیدا کنند، هش ریت را افزایش داده و اگر ساخت بلاک به کندی صورت گیرد، پیدا کردن هش مورد نظر آسانتر خواهد شد. پروتکل گواه اثبات کار، ماینرها را مجبور به شرکت در رقابت تنگاتنگ آزمون خطا میکند. حال سوالی که پیش میآید این است که اگر ماینری قصد تقلب و اضافه کردن جعلی بلاک به شبکه را داشت، الگوریتم اثبات کار چطور جلوی آن را خواهد گرفت؟ در ادامه راه حل الگوریتم PoW در برابر ماینرهای متقلب را مورد بررسی قرار خواهیم داد.
تامین امنیت در PoW
الگوریتم اثبات کار توسط ساتوشی ناکوموتو در سال 2008 در وایت پیپر بیت کوین معرفی شد. البته، بد نیست بدانید که قبل از تر راهاندازی بیت کوین، الگوریتم اثبات کار وجود داشته است. برای مثال،آدام بک (Adam Back) الگوریتم HashCash را برای کاهش دریافت ایمیلهای اسپم یا هرزنامه طراحی کرد. در این روش، فرستنده میبایست قبل از ارسال ایمیل یک معامله ریاضی حل کند. این روش برای ارسال یک یا چند ایمیل مشکلی به وجود نمیاورد اما برای کسی که قصد ارسال صدها و هزاران ایمیل را دارد، هزینه بسیار گزافی خواهد داشت.
الگوریتم اثبات کار برای جلوگیری از تقلب در شبکه از رمزنگاری کلیدهای عمومی در شبکه استفاده میکند. ماینرها در زمان ساخت یک تراکنش، در واقع یک امضای دیجیتالی پای آن میزنند و همه ماینرهای حاضر در شبکه نیز میتوانند امضای شما را با کلیدهای عمومی تطابق دهند. آنها همچنین میتوانند حق خرجکردن و میزان بیشتر بودن خروجی از ورودی شما را مورد بررسی قرار دهند. در حقیقت، هر بلاک که دارای حتی یک تراکنش نامعتبر باشد توسطه شبکه به صورت اتوماتیک حذف خواهد شد. بنابراین، حتی تقلب هم در الگوریتم اثبات کار هزینهبر است.
پروتکلهای رمزنگاری موجود در بلاکچین، قابلیت بررسی اجازه خرج کردن یا انتقال دادن دارایی یک کاربر را در اختیار دیگر کاربران شبکه قرار میدهد. در حقیقت، کاربران دیگر میتوانند بررسی کنند که آیا امضای دیجیتالی با کلید عمومی مختص به شما تطابق دارد یا خیر. آنها همچنین، با مقایسه میزان ورودی و خروجی حساب شما، مطمئن میشوند که شما بیش از میزان دارایی خود، خرج نخواهید کرد.
ماهیت اصلی الگوریتم PoW، گسترش هر چه بیشتر زنجیره است. در حقیقت، طولانیترین زنجیره چون که کار محاسباتی بیشتری انجام داده است، به عنوان معتبرترین زنجیره توسط شبکه شناخته میشود. ساخت پشت سر هم بلاکهای جعلی و دستکاری شده که از اعتبار هم برخوردار باشند، نیازمند قدرت محاسباتی بسیار بالا است. در حقیقت، برای دستکاری و خرابکاری در شبکه، باید 51 درصد از توان استخراج شبکه در دست یک نفر باشد. به خاطر داشته باشید که اگر 51 درصد قدرت استخراجی شبکه در دست یک نفر باشد، هزینه برق مصرفی از دستاورد ان بیشتر خواهد بود بنابراین صرفه اقتصادی ندارد.
چرا از الگوریتم گواه اثبات کار در بلاکچین استفاده میشود؟
بلاکچین یکی از اجزای ضروری حوزه کریپتوکارنسی است که پروژههای رمزارزی را رهبری میکند. ماینرها مشخصات تراکنشها را به داخل بلاکچین پخش میکنند و کاربران دیگر با تایید تراکنشها، آنها را به زنجیرههای بلاکچین وصل میکنند. تمام اعضای یک بلاکچین امکان مشاهده تاریخچه یک تراکنش را دارند. به عبارت دیگر شما میتوانید تعداد دفعات خرجشدن یک تراکنش را به همراه مشخصات آن پیگیری کنید.
فرض کنید که شما به همراه دو نفر از همکاران خود یک دفترچه یادداشت تهیه کرده و مشخصات مراودات مالی خود را در آن مینویسید. برای مثال، آرمین 5 واحد به رضا پرداخت کرد و رضا 3 واحد از آن را به الناز انتقال داد. سپس الناز 2 واحد را به شما منتقل کرد. در حقیقت، تمام افراد میتوانند پیگیری یک تراکنش را انجام دهند. بنابراین، اگر الناز بخواهد آن دو واحدی که قبلاً برای شما ارسال کرده است را مجددا خرج نماید، مکانیزم اثبات کار، اجازه این کار را به وی نخواهد داد. به طور کلی میتوان گفت که الگوریتم اثبات کار، اجازه خرج کردن پول توسطی افرادی که حق خرج کردن آن را ندارند، نخواهند داد.
الگوریتم اثبات کار در مقابل الگوریتم اثبات سهام
یکی دیگر از الگوریتمهای محبوب در حوزه فناوری بلاکچین، الگوریتم اثبات سهام (Proof-of-Stake) است که در برخی از پروژههای بزرگ مثل ترون، تزوس و کازماس از این الگوریتم استفاده میکنند. البته، پلتفرم اتریوم نیز به تازگی از مکانیزم اثبات کار به اثبات سهام کوچ کرده است. در روش اثبات سهام ماینرها حذف شدهاند و جای خود را به اعتبارسنجها (Validator) دادهاند. در این روش هیچ نوع محاسبه و حل معادلات پیچیده ریاضی وجود ندارد. در عوض، افرادی به صورت کاملاً تصادفی انتخاب شده و یک بلاک را پشنهاد میدهند. در صورتیکه آن بلاک از لحاظ معتبر بودن تایید شود، میزان مشخصی پاداش از کارمزد ساخت بلاک به حساب آنها واریز میشود.
شبکه برای انتخاب کاربران یکسری شرایط تعیین کرده است. در واقع، کاربرانی واجدالشرایط شرکت در مکانیزم اثبات سهام میشوند که مقداری از ارز دیجیتال اختصاصی شبکه را خریداری کرده و سپس به عنوان وثیقه در شبکه سپردهگذاری (Stake) کنند. به عبارت دیگر، اعتبارسنجها برای نشان دادن حسن نیت و عدم تقلب باید در شبکه سپردهگذاری کنند و در صورت عدم صداقت، تمام سپرده یا بخشی از آن توسط شبکه مصادره خواهد شد.
یکی از مزیتهای الگوریتم اثبات سهام در مقایسه با اثبات کار، کاهش مصرف انرژی است. برای مثال، الگوریتم اثبات کار در ارز دیجیتال بیت کوین به همراه دستگاههای ماینر با برق مصرفی بسیار بالا منجر به ساخت بلاکهای جدید میشود. اما در ارز دیجیتال تزوس، الگوریتم اثبات سهام بدون نیاز به انرژی و اتلاف برق کار خود را انجام میدهد. علاوه بر این، توان پردازش دستگاههای کامپیوتری اهمیت ندارد و میزان دارایی که در شبکه سپردهگذاری کردهاید، جایگزین آن شده است.
رمزارزهایی که با الگوریتم PoW کار میکنند یک عیب بزرگ دارند که آنهم تجمیع قدرت در دست ماینرهای بزرگ است. در حقیقت، برخی از شرکتها که به استخر ماینینگ معروفند، سرمایه بسیاری را برای خرید ماینرهای پرقدرت خرج میکنند و بدین ترتیب شانس بیشتری برای استخراج و در دست گرفتن بازار آن ارز دارند. البته در الگوریتم اثبات سهام نیز، کاربرانی که سرمایه بیشتری دارند از نظر شبکه در ارجحیت قرار میگیرند که نقص بسیار بزرگی تلقی میشود. در مقایسه بین الگوریتم PoW و PoS، الگوریتم اثبات کار سابقه بیشتری دارد و در طی سالیان، امتحان خود را پس داده است. برای مثال، بیت کوین نشان داد که الگوریتم اثبات کار از امنیت بسیار بالایی برخوردار بوده و به راحتی در مقابل مشکل دوبار خرج کردن (Double Spending) مقاومت میکند. البته سرعت پایین تراکنشها و کارمزدهای بالای شبکه از معایب این الگوریتم محسوب میشود.
معایب الگوریتم PoW
به طور کلی، گواه اثبات کار چند مشکل اساسی دارد که در ادامه هرکدام را مختصرا توضیح خواهیم داد:
- حمله 51 درصد: اگر یک ماینر قادر به تصاحب 51 درصد از قدرت هش ریت شبکه باشد، آنگاه امکان عدم تبعیت از قوانین شبکه را دارد و قادر به انجام دابل اسپندنیگ و مسدودکردن تراکنشهای موجود در شبکه است.
- مصرف بالای انرژی: برای نگهداری شبکه بیت کوین که از الگوریتم اثبات کار استفاده میکند، به اندازه میزان برق مصرفی کشور سوییس انرژی لازم است. این مقدار انرژی با پیوستن ماینرهای جدید نیز افزایش خواهد یافت.
- متمرکزبودن شبکه: اصل الگوریتم اثبات کار، غیر متمرکز بودن آن است. در واقع، تمام تراکنشهای موجود بدون نظارت یک نهاد واسطه پردازش میشود. در واقعیت اما این چنین نیست و شبکه به صورت متمرکز فعالیت دارد. بهتر است بدانید که بیش از نیمی از سهم استخراج بیت کوین در اختیار تنها چند استخر ماینینگ است.
مزایای الگوریتم اثبات کار
مکانیزم اثبات کار دارای مزایای مختلفی است که در ادامه مهمترین آنها یعنی مقاومت در برابر حملات DoS و تمرکز بر روی قدرت محاسباتی را توضیح خواهیم داد:
- جلوگیری از حملات DoS: حملات DoS به معنی محرومسازی از سرویس شبکه توسط هکرها برای از کار انداختن سرور انجام میشود. حمله DoS به شبکه اثبات کار مانند بیت کوین عملاً امکانپذیر است اما به توان محاسباتی فوقالعاده بالا و زمان بسیار زیاد نیازمند است که انجام آن را توجیه نمیکند.
- تمرکمز بر روی قدرت محاسباتی: در الگوریتم اثبات کار نیاز نیست که کیف پول خود را پر از ارزهای دیجیتال کنید. نکته مهم در الگوریتم PoW، داشتن قدرت محاسباتی بالا اسات. بنابراین، افراد پولدار و ثروتمند خیلی بر روی تصمیمات شبکه تاثیرگزار نخواهند بود.
کلام پایانی
الگوریتم اجماع اثبات کار یکی از ارکان اصلی شبکه ارزهای دیجیتال است. ماهیت اصلی این الگوریتم، کار و تلاش برای اضافهکردن بلاکهای جدید به بلاکچین است. هر چقدر که مقدار کار بیشتر باشد استحکام و پایداری شبکه نیز بیشتر است. البته، مصرف انرژی زیاد برای تامین امنیت آن، یکی از معایب اصلی آن به شمار میرود. به طور کلی، میتوان گفت که بهترین روش برای جلوگیری از دابل اسپندینگ و تقلب در شبکههای ارزهای دیجیتال، استفاده از الگوریتم گواه اثبات کار است. اگر به کوینهای مبتنی بر الگوریتم اثبات کار علاقه دارید، بیت کوین بهترین گزینه محسوب میشود. برای مشاهده قیمت و مقایسه قیمت بیت کوین با ارزهای دیگر میتوانید از ابزار ماشین حساب ارز دیجیتال در وبسایت کافه ارز استفاده کنید.