الگوریتم اثبات کار (PoW) اولین و محبوبترین مکانسیم اجماع است که ارزهای دیجیتال برای حفظ امنیت و حل مشکلاتی مانند دابل اسپندینگ از آن استفاده میکنند. بلاک چین یک شبکه غیر متمرکز توزیع شده است که تغییر ناپذیری، ناشناسی و امنیت مهمترین ویژگیهای آن هستند. شما در شبکه بلاک چین بدون نیاز به یک مرجع مرکزی برای اعتبار سنجی و تامین امنیت تراکنشها میتواند معاملاتی امن انجام دهید. تمامی این ویژگیها با استفاده از مکانیسم اجماع در شبکه بلاک چین امکانپذیر است.
مکانیسم اجماع در بلاک چین
مکانیسم اجماع روشی است که کاربران شبکه بلاک چین با استفاده از آن در مورد وضعیت دفتر کل توزیع شده به توافق میرسند. بلاک چین از این سازوکار برای حفظ امنیت شبکه و ایجاد اعتماد میان نودها – در یک شبکه همتا به همتا – استفاده میکند. نودها با استفاده از الگوریتم اجماع در مورد درستی یک بلاک استخراج شده جدید پیش اضافه شدن به بلاک چین به توافق میرسند.
اثبات کار | اثبات سهام | |
استخراج / اعتبارسنجی |
میزان توان محاسباتی احتمال استخراج یک بلاک را مشخص میکند |
مقدار کوینهای استیک شده احتمال اعتبارسنجی یک بلاک را مشخص میکند |
توزیع پاداش | اولین فردی که بلاک را استخراج کند | به جای پاداش استخراج، کارمزد شبکه پرداخت میشود |
رقابت | ماینرها باید با استفاده از توان محاسباتی یک معادله ریاضی را حل کنند | الگوریتم دریافت کننده پاداش را براساس مقدار دارایی که استیک کرده مشخص میکند |
تمرکز فعالیت شبکه | برای استفاده در ساختارهای بزرگ مناسب است | برای استفاده در ساختارهای کوچک هم مناسب است |
تجهیزات مورد نیاز | سخت افزار اختصاصی ASIC | کارت گرافیک و پردازنده معمولی |
بهره وری | مصرف زیاد انرژی و پرهزینه اما بهره وری بیشتر | کم مصرف و با هزینه کمتر اما با بهره وری پایینتر |
امنیت | هش بیشتر برابر با امنیت بیشتر | دارایی استیک شده بیشتر |
الگوریتم اثبات کار چیست؟
الگوریتم اثبات کار (Proof of Work) توسط ساتوشی ناکاموتو و در وایت پیپر بیت کوین (سال ۲۰۰۸) معرفی شد. اثبات کار یا PoW اولین الگوریتم اجماع است که بیت کوین و دیگر ارزهای دیجیتال از آن در بلاک چین خود استفاده کردند. در حقیقت این فناوری از سالها پیش وجود داشته و ناکاموتو برای اولین بار از آن – برای ایجاد یک سیستم پول الکترونیکی همتا به همتا – استفاده کرده است.
اولین مفهوم اثبات کار توسط دو دانشمند کامپیوتر به نام سینتیا ورک (Cynthia Dwork) و مونی نور (Moni Naor) در سال ۱۹۹۳ مطرح شد. آنها به دنبال راهی برای جلوگیری از حملات DOS و سایر حملاتی بودند که منابع محاسباتی سرور را از دسترس کاربران خارج میکند. این مفهوم بعدها در سال ۲۰۰۴، توسط هال فینی (Hal Finney) برای ایمنسازی پول دیجیتال توسعه داده شد. او برای ایجاد امنیت از الگوریتم هش SHA-۲۶۵ در مکانیسم اثبات کار مجدد (Reusable Proof of Work) خود استفاده کرد.
مسأله فرماندهان بیزانسی
فرض کنید گروهی از فرماندهان قصد حمله به یک دشمن مشترک را دارند. فرماندهان با نیروهای خود در نقاط مختلفی در اطراف دشمن مستقر شدهاند همچین خائنانی نیز وجود دارند که ما نمیدانیم چه کسانی هستند. فرماندهان از طریق پیام رسانهایی با یکدیگر در ارتباطاند و هر یک باید برای حمله یا عقب نشینی تصمیم بگیرد.
پیروزی تنها در صورتی ممکن است که اکثریت آنها برای حمله به توافق برسند در غیر این صورت از دشمن شکست خواهند خورد. در شب حمله فرماندهان برای تصمیمگیری با یکدیگر ارتباط برقرار میکنند اما ممکن است پیام رسانها دروغ بگویند. در این شرایط و با وجود احتمال سربازان خائن این فرماندهان چگونه میتوانند به اجماع برسند؟
اثبات کار چه مشکلی را حل میکند؟
وجود بیاعتمادی میان کاربران در شبکههای غیر متمرکز مانند بیت کوین، مشکل مشابهی را ایجاد میکند. الگوریتم اثبات کار راه حل بیت کوین برای این مشکل است، این الگوریتم به نودها (Nodes) اجازه میدهد تا بدون نیاز به یک نهاد مرکزی متمرکز در شبکه بلاک چین به اجماع برسند. الگوریتم PoW با (تقریبا) غیرممکن کردن امکان تغییر پیامها این مشکل را حل میکند. بلاک چین یک دفتر کل توزیع شده است که سازوکاری شبیه حمله فرماندهان بیزانسی دارد.
ارسال بلاکهای جدید توسط نودها برای ثبت در بلاک چین شبیه فرستادن پیام حمله توسط فرماندهان است. با استفاده از مکانیسم اثبات کار میتواند به سایر اعضای شبکه اعتماد کرد و از درستی و با اعتبار بودن پیامها مطمئن شد. در این الگوریتم، ماینرها پیش از ارسال پیام خود به شبکه باید یک مسأله پیچیده ریاضی به نام پازل اثبات کار (Proof Of Work Puzzle) را حل کنند.
بلاکهای جدید در صورتی برای تمام اعضای شبکه معتبر هستند که حاوی یک پروتکل اثبات کار معتبر به شکل یک عبارت هش معتبر باشد. این سازوکار باعث میشود تا نودها – در یک شبکه غیر متمرکز – برای اضافه کردن یک بلاک جدید به توافق برسند. الگوریتم اثبات کار اعتبار صرفاً نشان میدهد که برای تولید یک بلاک انرژی مصرف شده اما اعتبار آن را ثابت نمیکند.
نودها اعتبار بلاکهای جدیدی را که بدون مصرف انرژی ایجاد شده باشند، رد میکنند و همین باعث جلوگیری از ساخت بلاکهای نامعتبر توسط ماینرها میشود. البته سازوکاری به نام «پاداش استخراج» وجود دارد که انگیزه ماینرها را برای ایجاد بلوکهای معتبر را افزایش میدهد.
الگوریتم اثبات کار چگونه کار میکند؟
مکانیسم اثبات کار امکان دستکاری در بلاک چین را از بین میبرد و به نودها اجازه میدهد تا نسخههای تغییر یافته بلاکها را تأیید نکنند. به عبارت دیگر نودها میتوانند دستکاری در مقدار هش ایجاد شده توسط PoW را تشخیص دهند. یک تابع هش – مانند هش SHA-۲۵۶ که بیت کوین از آن استفاده میکند – هر مقدار داده ورودی را به یک مقدار خروجی با طول مشخص تبدیل میکند.
تمام توابع هش یک طرفه هستند یعنی با استفاده از خروجی هش نمیتواند دادههای اولیه را بدست آورد. این توابع مانند اثر انگشت منحصر به فرد هستند زیرا کوچکترین تغییر در دادههای ورودی، نتیجه خروجی را تغییر خواهد داد. به همین دلیل تابع هش، تنها راه برای تأیید مطابقت دادههای ورودی و دادههای اصلی است. در شبکه بلاک چین، مقدار هش هر بلاک – که داخل آن ذخیره میشود – براساس دادههای درون بلاک و مقدار هش بلاک قبلی محاسبه میشود.
این سازوکار که بلاکها را به زنجیرهای از دادهها به یکدیگر متصل میکند، امنیت شبکه را افزایش داده و از دستکاری اطلاعات جلوگیری میکند زیرا با تغییر دادههای هر بلاک، مقدار هش آن تغییر کرده و اعتبار آن در درون بلاک چین از بین خواهد رفت. در چنین شرایطی تنها راهکار محاسبه هش تمام بلاکهای دیگر براساس هش بلاک جدید – که اطلاعات آن دستکاری شده – است.
پس اگر فردی توان محاسباتی لازم برای محاسبه مقدار هش جدید تمام بلاکها را داشته باشد، میتواند اطلاعات بلاک چین را دستکاری کند. اثبات کار برای حل این مشکل از مهم «سختی استخراج» استفاده میکند.
امنیت الگوریتم PoW
پیشتر گفتیم که دستکاری اطلاعات یک بلاک باعث تغییر مقدار هش و از بین رفتن اعتبار آن میشود. بنابراین اگر فردی بخواهد دادههای یک بلاک را تغییر دهد باید هش تمامی بلاکهای شبکه را مجدد استخراج کند. شبکه بیت کوین سختی استخراج یا ماینینگ را به گونهای تنظیم میکند که زمان محاسبه هش هر بلاک به حدود ۱۰ دقیقه زمان نیاز داشته باشد.
این کار با طولانی کردن زمان محاسبه مقدار هش جدید تمام بلاکهای شبکه – در صورت داشتن هش ریت کافی – عملاً دستکاری در اطلاعات را بسیار سخت میکند. همچنین در الگوریتم اثبات کار به دست آوردن توان محاسباتی کافی – حمله ۵۱ درصدی – برای تغییر اطلاعات شبکه به هزینه و انرژی قابل توجهی نیازمند است.
هرچه شبکه بلاک چین بزرگتر باشد و تعداد کاربران بیشتری داشته باشد، احتمال یک حمله ۵۱ درصدی به آن کمتر خواهد بود، زیرا به دست آوردن توان هش مورد نیاز عملاً غیر ممکن است. در حال حاضر و در دنیای واقعی بیت کوین تنها شبکه بلاک چین است که احتمال حمله ۵۱ درصدی به آن غیر ممکن خواهد بود زیرا هزینه حمله ۵۱ به این شبکه چیزی در حدود ۱.۵ میلیون دلار برای هر ساعت خواهد بود.
چرا به اثبات کار نیاز داریم؟
فرض کنید یک ماینر تصمیم میگیرد تا هش یک بلاک نامعتبر – با تراکنشهای جعلی – را محاسبه و به بلاک چین اضافه کند. در این شرایط، شبکه اعتبار آن بلاک را رد میکند و ماینر عملاً برق و توان محاسباتی خود را برای محاسبه هش هدر داده است. مکانیسم اثبات کار ماینرها را تشویق میکند از قوانین پیروی کنند و به استخراج بلاکهای معتبر بپردازند.
اگر استخراج بلاکها به توان محاسباتی و انرژی زیادی نیاز نداشت، انگیزه ماینرها برای رفتار صادقانه در شبکه از بین میرفت. حالا که شبکه به طور خودکار بلاکهای حاوی تراکنشهای نامعتبر را رد میکند، تقلب کردن و دستکاری در دادههای تراکنشها برای ماینرها نیز گران تمام میشود.
مشکلات الگوریتم اثبات کار
مهمترین مشکل الگوریتم اثبات کار، میزان انرژی مورد نیاز برای محاسبه هش بلاک در شبکه بلاک چین است. در حقیقت، امنیت بلاک چین مبتنی بر PoW را مقدار انرژی مصرفی آنها تضمین میکند نه مقدار هش شبکه. ماینرها در بلاک چین هایی مانند بیت کوین برای محاسبه مقدار هش و بهدست آوردن پاداش استخراج نیازمند دستگاههای ماینر قدرتمند و میزان زیادی انرژی برق هستند در نتیجه آنها برای رقابت با یکدیگر و به دست آوردن شانس بیشتر برای دریافت پاداش اسخراج به سختافزارهای قویتری و انرژی بیشتری نیاز داشته باشند.
در این الگوریتم هرچه سرعت استخراج بیشتر باشد، محاسبه مقدار هشهای جدید نیز سختتر خواهد شد بنابراین برای انجام یک کار یکسان میزان انرژی مورد نیاز مرتباً افزایش خواهد داشت. این افزایش نیاز مداوم به قدرت محاسباتی و انرژی بیشتر، الگوریتم اثبات کار را به یک نگرانی زیست محیطی تبدیل کرده است. علاوه بر مصرف زیاد انرژی، الگوریتم اثبات کار یک مشکل مهم دیگر نیز دارد: انگیزش. هدف این سازوکار حفظ امنیت شبکه است، در حالی که هدف ماینرها کسب درآمد از استخراج است. ماینرها هرکاری را برای افزایش سود خود و جلوگیری از رقابت دیگران انجام خواهند داد، در حالی که این کارها به شبکه کمکی نمیکند.
ارزهای دیجیتالی که از PoW استفاده میکنند
راهاندازی بیت کوین در سال ۲۰۰۹ نشان داد که الگوریتم اثبات کار یک مکانیسم اجماع امن و مناسب برای ارزهای دیجیتال است. این الگوریتم در حال حاضر رایجترین مکانیسم اجماع مورد استفاده توسط ارزهای دیجیتال است. بیت کوین و اتریوم دو رمز ارز بزرگ بازار، دوج کوین، لایت کوین و مونرو نیز از دیگر ارزهای دیجیتالی هستند که الگوریتم PoW استفاده میکنند. البته اتریوم با بروزرسانی اتریوم ۲.۰ در حال مهاجرت از اثبات کار به اثبات سهام است.
- بیت کوین
- اتریوم
- دوج کوین
- لایت کوین
- بیت کوین کش
- اتریوم کلاسیک
- مونرو
- دش
- دکرد
- زی کش
اثبات کار در مقایسه با اثبات سهام
اثبات سهام (Proof of Stake) به عنوان یک راه حل جدید برای رفع مشکلات مکانسیم اجماع اثبات کار در سال ۲۰۱۱ در انجمن Bitcointalk پیشنهاد شد. در بلاک چینهایی که از الگوریتم اثبات سهام استفاده میکنند، نودها به اختصاص منابع محاسباتی خود به «استخراج» از آن برای اعتبارسنجی بلاکها استفاده میکنند. مهمترین تفاوت میان اثبات کار و اثبات سهام در نحوه حکومرانی شبکه و پرداخت پاداش برای تایید تراکنشها است.
سوالات متداول
مهمترین مزیت الگوریتم اثبات کار چیست؟
مزیت اصلی PoW، امنیت بسیار بالا این الگوریتم است.
مهمترین دلایل برای منسوخ شدن PoW چیست؟
مصرف زیاد انرژی و آسیب رساندن به سلامت طبیعت مهمترین دلیل برای از دور خارج کردن الگوریتم PoW است و از طرف دیگر برای ماینینگ، سرمایه اولیه نسبتا زیادی برای راهاندازی دستگاههای ماینینگ نیاز است.