مقدمه
مکانیزم اثبات کار، یک سیستم محافظتی است که برای جلوگیری از خطراتی مانند حمله بندآوری خدمات (DoS) استفاده میشود.
این مفهوم را بعدا هال فینی (Hal Finney) در سال ۲۰۰۴ از طریق نظریه “اثبات کار قابل استفاده مجدد” (reusable Proof of Work) با استفاده از الگوریتم هش SHA-256 برای تضمین پول دیجیتال به کار برد.
پس از معرفی بیت کوین در سال ۲۰۰۹، برای اولین بار شاهد اولین کاربرد گستردهی نظریه اثبات کار فینی بودیم. (فینی همچنین دریافت کننده اولین تراکنش بیت کوین بود). اثبات کار اساس بسیاری از ارزهای دیجیتال دیگر را نیز تشکیل میدهد. همچنین امکان اجماع ایمن و غیرمتمرکز را نیز فراهم میکند. با ادامه این مطلب از زرد نیوز همراه باشید.
نکات مهم
اثبات کار (PoW) یک مکانیسم اجماع غیرمتمرکز است. در این مکانیسم، اعضای یک شبکه ملزم هستند تا تلاش خود را برای حل یک معمای ریاضی انجام دهند. این امر باعث میشود تا از هر کسی نتواند سیستم را دستکاری کند.
اثبات کار به طور گسترده در استخراج ارزهای دیجیتال، برای اعتبارسنجی تراکنشها و استخراج توکنهای (token) جدید استفاده میشود.
به دلیل وجود مکانیسم اثبات کار، بیت کوین و سایر تراکنشهای ارزهای دیجیتال میتوانند به صورت همتا به همتا (Peer to Peer) و بدون نیاز به شخص ثالث قابل اعتماد پردازش شوند.
اثبات کار به طور کلی به مقادیر زیادی انرژی نیاز دارد. این باعث میشود ماینرهای بیشتری به شبکه بپیوندند.
اثبات سهام (POS) یکی از چندین مکانیسم جدید اجماع بود که به عنوان جایگزینی برای اثبات کار ایجاد شد.
مطلب مرتبط: استخراج بیت کوین چگونه انجام میشود؟
درک اثبات کار
در اینجا، توضیحی که در مورد اثبات کار ارائه خواهیم کرد بر مبنای کاربرد آن در شبکه بیت کوین است. بیت کوین یک ارز دیجیتال میباشد که زیربنای آن نوعی دفتر کل توزیع شده (distributed ledger) به نام بلاک چین (Blockchain) است. این دفتر کل، حاوی سابقهای از تمام تراکنشهای بیت کوین میباش. این سوابق، در بلاکهای (Block) متوالی ثبت شدهاند. طوری که هیچ کاربری اجازه ندارد هر یک از داراییهای خود را دو بار خرج کند. به منظور جلوگیری از دستکاری شدن، این دفتر کل (ledger) عمومی یا به عبارت دیگر “توزیع شده” است. اگر تغییری در این دفتر کل ایجاد شود، به سرعت توسط سایر کاربران رد میشود.
روشی که کاربران متوجه دستکاری در دفتر کل میشوند از طریق هشها (hash) میباشد. هشها رشتههای طولانی از اعداد هستند که به عنوان اثبات کار عمل میکنند. اگر مجموعهای از دادهها را در یک تابع هش قرار دهید (بیتکوین از تابع SHA-256 استفاده میکند)، فقط یک هش ایجاد میشود. با این حال، به دلیل وجود اثر بهمنی (Avalanche effect)، حتی یک تغییر کوچک در هر بخشی از دادههای اصلی، منجر به یک هش کاملاً غیرقابل تشخیص میشود.
اندازه کل داده اصلی هرچه باشد، هشی که تابع میسازد به همان اندازه خواهد بود. در واقع هش یک تابع یک طرفه است. نمیتوان از آن برای به دست آوردن دادههای اصلی استفاده کرد و فقط برای بررسی اینکه دادههایی که هش را ایجاد کرده با دادههای اصلی مطابقت دارند یا خیر کاربرد دارد.
نقش تابع هَش در مکانیسم اثبات کار

ایجاد هر هش برای مجموعهای از تراکنشهای بیتکوین برای یک رایانه مدرن کاری بسیار آسان است. بنابراین برای تبدیل این فرآیند به “کار”، شبکه بیت کوین سطح خاصی از “دشواری” را تعیین میکند. این امر به گونهای تنظیم میشود تا یک بلاک جدید “استخراج” شود. این بلاک جدید، تقریباً هر ۱۰ دقیقه – با ایجاد یک هش معتبر – به بلاک چین اضافه میشود. تعیین دشواری با ایجاد یک “هدف” برای هش انجام میگیرد.
هرچه آن هدف کمتر باشد، مجموعه هشهای معتبر نیز کم تر و به تبع آن، ایجاد آن سختتر میشود. در عمل، این یعنی هشی که با یک رشته بسیار طولانی از عدد صفر شروع میشود.
نکته جالب
مکانیسم اثبات کار در ابتدا برای این ساخته شده بود تا با معضل اسپَم ایمیلها مقابله کند.
مواردی ویژه در مورد اثبات کار
از آنجایی که یک مجموعه داده معین فقط میتواند تنها یک هش ایجاد کند، ماینرها چگونه مطمئن میشوند که هش زیر هدف تولید میکنند؟ آنها ورودی را با افزودن یک عدد صحیح تغییر میدهند. به آن عدد نانس (nonce) میگویند (عدد یک بار استفاده شده). هنگامی که یک هش معتبر پیدا شد، به همه اعضای شبکه اطلاع داده میشود و بلاک جدید به بلاک چین اضافه میشود.
در واقع، استخراج یک فرآیند رقابتی است. یعنی ماینرها برای اینکه سریعتر از یکدیگر هش زیر هدف را حدس بزنند، با هم مسابقه میدهند. با این حال، این فرآیند بیشتر شبیه به بخت آزمایی است تا یک مسابقه. به طور متوسط، یک کاربر هر ده دقیقه یک بار، یک سند قابل قبول از “کار” تولید میکند. اما اینکه آن کاربر چه کسی بوده، مشخص نیست.
ماینرها کنار هم میآیند تا شانس خود را برای استخراج بلاکها افزایش دهند. استخراج هر بلاک منجر به کارمزد تراکنش میشود. و برای مدت محدودی، ماینرها برای هر تراکنش که پردازش میکنند، بیت کوین جدید پاداش میگیرند.
مکانیسم اثبات کار، تغییر هر یک از ابعاد بلاک چین را بسیار دشوار میکند. زیرا چنین تغییری باعث میشود همه بلوکهای بعدی مجددا استخراج شوند.
همچنین انحصار قدرت محاسباتی شبکه را برای کاربر یا کاربران دشوار میکند. زیرا دستگاهها و قدرت مورد نیاز برای تکمیل توابع هش گران هستند.
مهم
اگر قسمتی از یک شبکه استخراج، یک اثبات کار دیگر را بپذیرد، هارد فورک (hard fork) نام میگیرد.
مثال اثبات کار
در مکانیسم اثبات کار، یک رایانه باید به طور تصادفی یک تابع هش بیابد. سپس باید به یک خروجی با حداقل مقدار درست صفر های ابتدایی برسد.
برای مثال، هش بلاک شماره #660000 که در ۴ دسامبر ۲۰۲۰ استخراجشده 0000000000000000008eddcaf078f12c69a439dde30dbb5aac3d9d94e9c18f6 است.
اولین ماینری که آن هش را پیدا کند ۶/۲۶ بیت کوین است.
این بلاک همیشه شامل ۷۴۵ تراکنش است. این مقدار تراکنش شامل کمی بیش از ۱۶۶۶ بیت کوین میشود. این بلاک همچنین، هِدِر (header) بلاک قبلی را نیز شامل میشود. اگر کسی سعی کند مبلغ تراکنش را حتی به میزان ۰/۰۰۰۰۰۱ بیت کوین تغییر دهد، هش حاصل غیرقابل تشخیص خواهد بود و شبکه آن تراکنش را تلاش برای کلاهبرداری تلقی میکند.
سوالات متداول در مورد اثبات کار
اثبات کار به چه معناست؟
اثبات کار به گرههای (node) یک شبکه نیاز دارد تا نشان دهد قدرت محاسباتی خود را صرف کرده (یعنی کار) تا از ورود بازیگران بد (مانند هکرها) به سیستم جلوگیری کند. این امر با اجماعی غیرمتمرکز بدست میآید.
اثبات کار چگونه یک تراکنش کریپتو را تأیید میکند؟
خود کار بیشتر دلخواه است (و شامل قانون خاصی نمیشود). این کار، برای بیت کوین شامل تکرار الگوریتمهای هشِ SHA-256 است. با این حال، “برنده” مرحله پردازش هش، تراکنشها را از mempool در بلاک بعدی جمعآوری و ثبت میکند. از آنجا که “برنده” به طور تصادفی متناسب با کار انجام شده انتخاب میشود، همه افراد در شبکه را تشویق میکند تا صادقانه عمل کنند و فقط تراکنشهای واقعی را ثبت کنند.
چرا ارزهای دیجیتال به اثبات کار نیاز دارند؟
از آنجایی که بلاک چینها از نظر طراحی غیرمتمرکز و همتا به همتا هستند، بلاک چینهایی مانند شبکههای ارزهای دیجیتال به روشی برای دستیابی به اجماع و امنیت نیاز دارند. اثبات کار یکی از این روشهاست. اما پیش از حد نیازمند منابع است.
مکانیسمهای اثبات دیگری نیز وجود دارند که به منابع کمتری نیاز دارند. اما دارای معایب یا اشکالات دیگری هستند، مانند اثبات سهام (PoS) و اثبات سوختگی (Proof of Burn). بدون مکانیزم اثبات، شبکه و دادههای داخل آن در برابر حمله یا سرقت آسیب پذیر خواهند بود.
آیا بیت کوین از اثبات کار استفاده میکند؟
بله. بیت کوین از یک الگوریتم اثبات کار (PoW) بر اساس تابع هش SHA-256 استفاده میکند. هدف از این کار اعتبارسنجی و تایید تراکنشها و همچنین تولید بیت کوینهای جدید میباشد.
اثبات سهام (PoS) چه تفاوتی با اثبات کار (PoW) دارد؟

اثبات سهام (PoS) یک مکانیسم اجماع است. این مکانیسم به طور تصادفی گرهای را انتخاب میکند که یا استخراج یا یک بلاک تراکنش را تایید میکند. این انتخاب بر اساس تعداد سکههایی است که هر گره در خود نگه میدارد. هر چه توکنهای بیشتری در یک کیف پول نگهداری شود، به طور حتم قدرت استخراج بیشتری به آن تعلق میگیرد. همانطور که گفتیم اثبات سهام (PoS) به مراتب کمتر به منابع نیاز دارد. اما چندین نقص دیگر دارد. از جمله احتمال حمله ۵۱ درصدی به آلتکوینهای (altcoin) کوچکتر و ایجاد انگیزه برای احتکار توکنها و عدم استفاده از آنها.
دیدگاهتان را بنویسید