گواه اثبات کار (Proof of work (POW)) سیستمی است که برای جلوگیری از کاربردهای مخرب از قدرت محاسبات شبکه بلاکچین استفاده میشود؛ مواردی مانند ارسال ایمیلهای اسپم (Spam) یا انجام حملات محرومسازی از سرویس (denial of service attacks). این مفهوم را، هال فینی (Hal Finney) سال ۲۰۰۴ برای امنیت داراییهای دیجیتال مطرح کرد. هرچند تولد POW به سال ۱۹۹۳ برمیگردد؛ زمانی که مونی نایر (Moni Naor) و سینتیا دورک (Cynthia Dwork) برای اولینبار آن را معرفی کردند.
بعد ازآنکه هال فینی گواهی اثبات کار (Proof of work) را مطرح کرد، بیت کوین اولین پلتفرمی بود که به طور گسترده از این ایده استفاده کرد. آقای فینی، کسی است که اولین تراکنش بیت کوین را به نام خود ثبت کرده است. بعد از بیت کوین، رمزارزهای معروف دیگری هم سراغ گواهی اثبات کار رفتند. این سیستم، امکان اجماع امن و غیرمتمرکز (Decentralized) را فراهم میکند.
فهرست مطالب
نکات کلیدی گواهی اثبات کار (Proof of work)
- POW یک مکانیزم اجماع غیرمتمرکز است. این الگوریتم، از اعضای شبکه میخواهد معماها و مسائل ریاضی را حل کنند تا از بازی دادن شبکه توسط خرابکارها، جلوگیری کنند.
- گواهی اثبات کار، به طور گسترده در استخراج (Mining) ارزهای دیجیتال استفاده میشود. به کمک این سیستم، میتوان اعتبار تراکنشها را سنجید و داراییهای دیجیتال جدید استخراج کرد.
- باتوجهبه ماهیت این الگوریتم، تراکنشهای بیت کوین و سایر رمزارزها میتوانند بدون نیاز به شخص ثالث مورد اعتماد، به شکل همتا به همتا (Peer-to-Peer) پردازش شوند.
- الگوریتم اثبات کار در مقیاس بزرگ، به مقدار زیادی انرژی نیاز دارد که با افزایش تعداد ماینرها و ملحق شدن آنها به شبکه، این انرژی بیشتر هم میشود.
- گواهی اثبات سهام (Proof-of-stake)، یکی از مکانیسمهای جدید است که برای جایگزینی با گواه اثبات کار ایجاد شد.
درک عمیقتر مفهوم گواه اثبات کار (Proof of work)
ازآنجاکه بیت کوین از اثبات گواه کار استفاده میکند، با یک مثال از این ارز دیجیتال، ادامه موضوع را دنبال میکنیم. بیت کوین یک ارز دیجیتال است که تراکنشهای خود را در یک دفتر کل توزیع شده (Distributed Ledger)، به نام بلاک چین (Blockchain) ذخیره میکند. در این بلاکچین، تمام تراکنشهای بیت کوین در بلوکهایی (Block) متوالی و پشتسرهم مرتب شدهاند. بهاینترتیب، هیچکس نمیتواند یک تراکنش را، دو بار ثبت کند و مشکل دو بار خرج کردن (Double Spending) حل میشود. برای جلوگیری از تقلب، بلاکچین باید عمومی (Public) یا توزیعشده (Distributed) باشد. بلاکچین دستکاری شده، بهسرعت توسط سایر اعضای شبکه تشخیص داده خواهد شد.
اعضای شبکه به کمک هشها، میتوانند تقلب را تشخیص دهند. هش، رشته طولانی از اعداد است که در قالب اثبات گواه کار، استفاده میشود. اگر مقادیر مشخصی داده (Data) را در یک تابع هش به کار بگیرید، (بیت کوین از الگوریتم SHA-256 استفاده میکند.) فقط یک هش جدید ایجاد میشود. باتوجهبه اثر بهمنی (Avalanche effect)، حتی اگر تغییر کوچکی در هر قسمتی از دادهها اعمال شود، یک هش غیرقابلتشخیص ساخته خواهد شد.
اندازه دادههای اولیه هرچقدر باشد، هش ایجاد شده توسط یک تابع مشخص، دارای طولی یکسان خواهد بود. دقت داشته باشید که هش، تابعی یکطرفه است؛ یعنی نمیتوان با آن به دادههای اولیه و اصلی، دسترسی پیدا کرد. از هش، فقط برای این استفاده میشود که متوجه شویم دادههایی که ایجاد کرده است، با دادههای اصلی تطابق دارند.
شبکه بیت کوین، سطح خاصی از دشواری (Difficulty) را مشخص میکند. بهاینترتیب اگر بلاک جدیدی استخراج شود، با ایجاد یک هش معتبر، این بلاک به بلاک چین اضافه خواهد شد. تقریباً هر ۱۰ دقیقه، میزان سختی باتوجهبه هدف (Target) موردنظر شبکه، تنظیم میشود.
ازآنجاکه مجموعهای از دادهها فقط میتوانند یک هش ایجاد کنند؛ چگونه ماینرها میتوانند مطمئن شوند هش ایجاد شده، متعلق به همان دادههای موردنظر است؟ آنها ورودی هش را، با اضافهکردن یک عدد صحیح به نام nonce (عددی که یکبار استفاده میشود) تغییر میدهند. هنگامی که یک هش معتبر پیدا شود، به شبکه اضافه و در بلاک چین ثبت میشود.
استخراج، فرایندی رقابتی است. از طرفی، میتوانیم استخراج را شبیه بختآزمایی (Lottery) در نظر بگیریم تا یک مسابقه! به طور متوسط، هر ۱۰ دقیقه یک نفر برنده میشود. گاهی ماینرها با همکار میکنند تا شانس استخراج بلوکها را بیشتر کنند.
گواهی اثبات کار، ایجاد هر نوع تغییری را در شبکه بسیار دشوار میکند. زیرا هر تغییری که ایجاد میشود، باید تمام بلوکهای بعد از آن هم تغییر کنند. برای مثال، اگر تا امروز ۱۰۰ بلوک بیت کوین استخراج شده باشد و یک نفر، بلوک اول را تغییر دهد؛ برای موفقیت در کار باید ۹۹ بلاک بعدی را هم تغییر دهد. همچنین POW انحصار قدرت را برای یک شخص یا گروهی از ماینرها، محدود میکند.
یک مثال از گواه اثبات کار (Proof of work)
گواه اثبات کار (Proof-of-work) برای اینکه درست کار کند، نیاز دارد یک کامپیوتر به شکل تصادفی (Random)، روی توابع هش کار کند تا در آخر به خروجی موردنظر با حداقل صفرهای موردنیاز برسد. برای مثال، بلاک #۶۶۰.۰۰۰ بیت کوین ۴ دسامبر ۲۰۲۰ میلادی استخراج شد. هش این بلاک را مشاهده کنید:
۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۸eddcaf078f12c69a439dde30dbb5aac3d9d94e9c18f6
پاداش شبکه برای ایجاد بلاک جدید و ساختن موفقیتآمیز هش بالا، ۶.۵ بیت کوین بود. این بلاک برای همیشه شامل ۷۴۵ تراکنش ثبتشده، بیشتر از ۱۶۶۶ واحد بیت کوین و اطلاعات سربرگ بلاک قبلی است. اگر کسی سعی کند، مبلغ تراکنشی را حتی ۰.۰۰۰۰۰۱ بیت کوین تغییر دهد، هش حاصلشده غیرقابلتشخیص شده و شبکه جلوی کلاهبرداری را میگیرد.
چرا رمزارزها به مکانیسم گواه اثبات کار نیاز دارند؟
ارزهای دیجیتال غیرمتمرکز هستند و به شکل همتا به همتا کار میکنند. برای درست کار کردن بلاک چین، نیاز به روشی است که اجماع و امنیت را تضمین کند. Proof of work یکی از روشهایی است که جلوی خرابکاری در شبکه را میگیرد. البته POW تنها مکانیسم موجود نیست. روشهای دیگری هم وجود دارند که البته هرکدام مزایا و معایب خودشان را دارند. برای مثال میتوانیم به گواهی اثبات سهام (Proof of stake (POS)) و الگوریتم اثبات سوزاندن (Proof of burn (POB)) اشاره کنیم. بدون داشتن یک مکانیسم اثبات، شبکه در برابر حملات مختلف و کلاهبرداریها آسیبپذیر خواهد بود.
مشکلات Proof of work چیست؟
مصرف زیاد انرژی: مصرف انرژی شبکه بیت کوین، بهاندازه کل مصرف برق کشور سوئیس است. یکی از دلایل این مصرف بالای انرژی، وجود مکانیسم اثبات گواه کار است. با زیادشدن تعداد ماینرها، مصرف انرژی هم بیشتر میشود. البته برخی از ماینرهای شبکه، از انرژیهای تجدیدپذیر استفاده میکنند.
وقوع حمله ۵۱%: اگر گروهی از ماینرها بتوانند بیشتر از ۵۱ درصد نرخ هش (Hashrate) شبکه بیت کوین را تصاحب کنند، میتوانند قوانین موجود را نادیده بگیرند. برای مثال، پولها را دو بار خرج کنند یا معاملات را مسدود سازند.
اجماع ماینرها: هدف اصلی Proof of work ساختن شکلی از دارایی است که توسط ارگانی خاص کنترل نشود. اما در واقعیت، متوجه میشویم که سیستم تقریباً متمرکز است. برای مثال فقط ۳ استخر استخراج، کنترل بیشتر از ۵۰ درصد نرخ محاسبات بیت کوین را در اختیار دارند. توسعهدهندگان بیت کوین، در تلاش هستند این مشکل را حل کنند.
کدام ارزهای دیجیتال از Proof of work استفاده میکنند؟
بیشتر رمزارزهای موجود در بازار، از مکانیسم گواه اثبات کار استفاده میکنند. هرچند بعضی از آنها، در تلاش هستند تا روشهای دیگر را هم امتحان کنند و امنیت شبکه خود را بالاتر ببرند. برای مثال اتریوم، در تلاش است بهجای الگوریتم اثبات کار (POW) از الگوریتم اثبات سهام (POS) استفاده کند. البته، هنوز این اتفاق نیفتاده است. بعضی از معروفترین رمزارزهایی که از Proof of work استفاده میکنند عبارتند از:
- بیت کوین
- اتریوم (آنطور که توسعهدهندگان آن اعلام کردهاند، قرار است در اتریوم ۲.۰ شاهد حضور POS باشیم.)
- بیت کوین کش (Bitcoin Cash)
- لایت کوین (Litecoin)
- مونرو (Monero)
- دش (dash)
- دوج کوین (DOGE)
https://www.coindesk.com/what-is-proof-of-work
https://www.investopedia.com/terms/p/proof-work.asp
https://coincodex.com/cryptocurrencies/sector/proof-of-work/